From 1ba6a3268b220cc99e9ed993553fa6f34f111a39 Mon Sep 17 00:00:00 2001 From: liamfallon Date: Fri, 22 Feb 2019 17:30:59 +0000 Subject: [PATCH] Change versions of Zookeeper and C3P0 This review changes the versions of Zookeeper and C3P0 to resolve security issues. It also merges the context test utils module into the context test because that module was misplaced and put an incompatible Zookeeper dependency in the APEX context module. Issue-ID: POLICY-1540 Change-Id: I86048ae1fc8b818611f423d6fd1f4a9fcc3f76f9 Signed-off-by: liamfallon --- context/context-test-utils/pom.xml | 107 --- context/context-test-utils/src/site/css/site.css | 100 --- .../context-test-utils/src/site/images/logos.png | Bin 162383 -> 0 bytes context/context-test-utils/src/site/site.xml | 28 - .../test/concepts/ConceptUncoveredTest.java | 715 --------------------- .../test/distribution/ContextAlbumUpdateTest.java | 100 --- .../distribution/ContextInstantiationTest.java | 105 --- .../test/distribution/ContextUpdateTest.java | 106 --- .../SequentialContextInstantiationTest.java | 109 ---- .../test/entities/ArtifactKeyTestEntityTest.java | 113 ---- .../test/entities/ReferenceTestEntityTest.java | 114 ---- .../test/locking/ConcurrentContextTest.java | 181 ------ .../PersistentContextInstantiationTest.java | 224 ------- context/pom.xml | 4 +- .../plugins-context-locking-curator/pom.xml | 5 +- .../locking/curator/CuratorLockManager.java | 33 +- .../curator/CuratorLockManagerParameters.java | 9 +- .../plugins-persistence-jpa-hibernate/pom.xml | 45 +- pom.xml | 2 +- .../integration/integration-context-test/pom.xml | 7 +- .../integration/context/TestConcurrentContext.java | 104 ++- .../context}/concepts/TestContextBooleanItem.java | 3 +- .../context}/concepts/TestContextByteItem.java | 3 +- .../context}/concepts/TestContextDateItem.java | 3 +- .../concepts/TestContextDateLocaleItem.java | 5 +- .../context}/concepts/TestContextDateTzItem.java | 3 +- .../context}/concepts/TestContextDoubleItem.java | 3 +- .../context}/concepts/TestContextFloatItem.java | 3 +- .../context}/concepts/TestContextIntItem.java | 3 +- .../context}/concepts/TestContextLongItem.java | 3 +- .../concepts/TestContextLongObjectItem.java | 3 +- .../context}/concepts/TestContextStringItem.java | 3 +- .../context}/concepts/TestContextTreeMapItem.java | 3 +- .../context}/concepts/TestContextTreeSetItem.java | 3 +- .../context}/concepts/TestExternalContextItem.java | 3 +- .../context}/concepts/TestGlobalContextItem.java | 3 +- .../context}/concepts/TestPolicyContextItem.java | 3 +- .../context}/concepts/package-info.java | 3 +- .../context}/distribution/ContextAlbumUpdate.java | 9 +- .../distribution/ContextInstantiation.java | 79 +-- .../context}/distribution/ContextUpdate.java | 27 +- .../SequentialContextInstantiation.java | 51 +- .../context}/distribution/package-info.java | 3 +- .../context}/entities/ArtifactKeyTestEntity.java | 21 +- .../context}/entities/ReferenceKeyTestEntity.java | 21 +- .../context}/entities/package-info.java | 3 +- .../context}/factory/TestContextAlbumFactory.java | 33 +- .../integration/context}/factory/package-info.java | 3 +- .../context}/lock/modifier/AlbumModifier.java | 9 +- .../context}/lock/modifier/LockType.java | 9 +- .../lock/modifier/NoLockAlbumModifier.java | 13 +- .../lock/modifier/ReadLockAlbumModifier.java | 13 +- .../SingleValueWriteLockAlbumModifier.java | 15 +- .../lock/modifier/WriteLockAlbumModifier.java | 13 +- .../context}/lock/modifier/package-info.java | 3 +- .../context}/locking/ConcurrentContext.java | 9 +- .../context}/locking/ConcurrentContextJvm.java | 13 +- .../locking/ConcurrentContextJvmThread.java | 7 +- .../context}/locking/ConcurrentContextThread.java | 16 +- .../integration/context}/locking/package-info.java | 3 +- .../context}/utils/ConfigrationProvider.java | 13 +- .../context}/utils/ConfigrationProviderImpl.java | 49 +- .../integration/context}/utils/Constants.java | 11 +- .../context}/utils/IntegrationThreadFactory.java | 9 +- .../integration/context}/utils/NetworkUtils.java | 11 +- .../utils/ZooKeeperServerServiceProvider.java | 3 +- .../integration/context}/utils/package-info.java | 3 +- .../src/test/resources/META-INF/persistence.xml | 1 + testsuites/integration/pom.xml | 14 +- .../performance-context-metrics/pom.xml | 93 --- .../context/metrics/ConcurrentContextMetrics.java | 322 ---------- .../performance/context/metrics/package-info.java | 27 - .../src/site/css/site.css | 100 --- .../src/site/images/logos.png | Bin 162383 -> 0 bytes .../performance-context-metrics/src/site/site.xml | 28 - .../performance/context/metrics/MetricsTest.java | 94 --- .../src/test/resources/hazelcast/hazelcast.xml | 63 -- .../resources/infinispan/default-jgroups-tcp.xml | 76 --- .../src/test/resources/infinispan/infinispan.xml | 41 -- testsuites/performance/pom.xml | 4 +- 80 files changed, 432 insertions(+), 3167 deletions(-) delete mode 100644 context/context-test-utils/pom.xml delete mode 100644 context/context-test-utils/src/site/css/site.css delete mode 100644 context/context-test-utils/src/site/images/logos.png delete mode 100644 context/context-test-utils/src/site/site.xml delete mode 100644 context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/concepts/ConceptUncoveredTest.java delete mode 100644 context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/distribution/ContextAlbumUpdateTest.java delete mode 100644 context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/distribution/ContextInstantiationTest.java delete mode 100644 context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/distribution/ContextUpdateTest.java delete mode 100644 context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/distribution/SequentialContextInstantiationTest.java delete mode 100644 context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/entities/ArtifactKeyTestEntityTest.java delete mode 100644 context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/entities/ReferenceTestEntityTest.java delete mode 100644 context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/locking/ConcurrentContextTest.java delete mode 100644 context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/persistence/PersistentContextInstantiationTest.java rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/concepts/TestContextBooleanItem.java (95%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/concepts/TestContextByteItem.java (95%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/concepts/TestContextDateItem.java (97%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/concepts/TestContextDateLocaleItem.java (97%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/concepts/TestContextDateTzItem.java (97%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/concepts/TestContextDoubleItem.java (95%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/concepts/TestContextFloatItem.java (95%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/concepts/TestContextIntItem.java (95%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/concepts/TestContextLongItem.java (95%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/concepts/TestContextLongObjectItem.java (95%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/concepts/TestContextStringItem.java (96%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/concepts/TestContextTreeMapItem.java (96%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/concepts/TestContextTreeSetItem.java (96%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/concepts/TestExternalContextItem.java (99%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/concepts/TestGlobalContextItem.java (99%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/concepts/TestPolicyContextItem.java (98%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/concepts/package-info.java (88%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/distribution/ContextAlbumUpdate.java (92%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/distribution/ContextInstantiation.java (87%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/distribution/ContextUpdate.java (84%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/distribution/SequentialContextInstantiation.java (86%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/distribution/package-info.java (88%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/entities/ArtifactKeyTestEntity.java (97%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/entities/ReferenceKeyTestEntity.java (97%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/entities/package-info.java (88%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/factory/TestContextAlbumFactory.java (88%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/factory/package-info.java (89%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/lock/modifier/AlbumModifier.java (91%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/lock/modifier/LockType.java (95%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/lock/modifier/NoLockAlbumModifier.java (89%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/lock/modifier/ReadLockAlbumModifier.java (91%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/lock/modifier/SingleValueWriteLockAlbumModifier.java (89%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/lock/modifier/WriteLockAlbumModifier.java (92%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/lock/modifier/package-info.java (88%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/locking/ConcurrentContext.java (95%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/locking/ConcurrentContextJvm.java (95%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/locking/ConcurrentContextJvmThread.java (95%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/locking/ConcurrentContextThread.java (88%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/locking/package-info.java (89%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/utils/ConfigrationProvider.java (92%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/utils/ConfigrationProviderImpl.java (93%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/utils/Constants.java (94%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/utils/IntegrationThreadFactory.java (93%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/utils/NetworkUtils.java (94%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/utils/ZooKeeperServerServiceProvider.java (96%) rename {context/context-test-utils/src/main/java/org/onap/policy/apex/context/test => testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/testsuites/integration/context}/utils/package-info.java (89%) rename {context/context-test-utils => testsuites/integration/integration-context-test}/src/test/resources/META-INF/persistence.xml (98%) delete mode 100644 testsuites/performance/performance-context-metrics/pom.xml delete mode 100644 testsuites/performance/performance-context-metrics/src/main/java/org/onap/policy/apex/testsuites/performance/context/metrics/ConcurrentContextMetrics.java delete mode 100644 testsuites/performance/performance-context-metrics/src/main/java/org/onap/policy/apex/testsuites/performance/context/metrics/package-info.java delete mode 100644 testsuites/performance/performance-context-metrics/src/site/css/site.css delete mode 100644 testsuites/performance/performance-context-metrics/src/site/images/logos.png delete mode 100644 testsuites/performance/performance-context-metrics/src/site/site.xml delete mode 100644 testsuites/performance/performance-context-metrics/src/test/java/org/onap/policy/apex/testsuites/performance/context/metrics/MetricsTest.java delete mode 100644 testsuites/performance/performance-context-metrics/src/test/resources/hazelcast/hazelcast.xml delete mode 100644 testsuites/performance/performance-context-metrics/src/test/resources/infinispan/default-jgroups-tcp.xml delete mode 100644 testsuites/performance/performance-context-metrics/src/test/resources/infinispan/infinispan.xml diff --git a/context/context-test-utils/pom.xml b/context/context-test-utils/pom.xml deleted file mode 100644 index 37b4e6932..000000000 --- a/context/context-test-utils/pom.xml +++ /dev/null @@ -1,107 +0,0 @@ - - - 4.0.0 - - org.onap.policy.apex-pdp.context - context - 2.1.0-SNAPSHOT - - - context-test-utils - ${project.artifactId} - [${project.parent.artifactId}] module contain default distributor tests and common test utils - - - - org.onap.policy.apex-pdp.model - context-model - ${project.version} - - - org.onap.policy.apex-pdp.context - context-management - ${project.version} - - - com.google.code.gson - gson - - - org.apache.derby - derby - ${version.derby} - test - - - junit - junit - compile - - - org.apache.curator - curator-test - 4.0.0 - - - log4j - log4j - - - org.apache.zookeeper - zookeeper - - - - - org.apache.zookeeper - zookeeper - 3.5.4-beta - - - - log4j - log4j - - - org.slf4j - slf4j-log4j12 - - - - - - - - apexSite - - - apexSite - - - - - ${project.artifactId}-site - ${apex.adsite.prefix}/modules/${project.parent.artifactId}/${project.artifactId}/ - - - - - \ No newline at end of file diff --git a/context/context-test-utils/src/site/css/site.css b/context/context-test-utils/src/site/css/site.css deleted file mode 100644 index ef8bd4d15..000000000 --- a/context/context-test-utils/src/site/css/site.css +++ /dev/null @@ -1,100 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -@import url(http://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.0/css/font-awesome.css); - - -/*************** Table definitions *******************/ - -tableblock > .title, .tableblock > caption { line-height: 1.4; color: #7a2518; font-weight: 300; margin-top: 0.2em; margin-bottom: 0.5em; } - -.tableblock > caption { text-align: left; font-weight: bold; white-space: nowrap; overflow: visible; max-width: 0; } - -table.tableblock { background: white; margin-bottom: 1.25em; border: solid 1px #dddddd; } -table.tableblock thead, table.tableblock tfoot { background: whitesmoke; font-weight: bold; } -table.tableblock thead tr th, table.tableblock thead tr td, table tfoot tr th, table tfoot tr td { padding: 0.5em 0.625em 0.625em; font-size: inherit; color: #222222; text-align: left; } -table.tableblock tr th, table.tableblock tr td { padding: 0.5625em 0.625em; font-size: inherit; color: #222222; } -table.tableblock tr.even, table.tableblock tr.alt, table.tableblock tr:nth-of-type(even) { background: #f9f9f9; } -table.tableblock thead tr th, table.tableblock tfoot tr th, table.tableblock tbody tr td, table.tableblock tr td, table.tableblock tfoot tr td { display: table-cell; line-height: 1.6; } - -table.tableblock #preamble > .sectionbody > .paragraph:first-of-type p { font-size: inherit; } - -table.tableblock.grid-all { border-collapse: separate; border-spacing: 1px; -webkit-border-radius: 4px; border-radius: 4px; border-top: 1px solid #dddddd; border-bottom: 1px solid #dddddd; } - -table.tableblock.frame-topbot, table.tableblock.frame-none { border-left: 0; border-right: 0; } - -table.tableblock.frame-sides, table.tableblock.frame-none { border-top: 0; border-bottom: 0; } - -table.tableblock td .paragraph:last-child p, table.tableblock td > p:last-child { margin-bottom: 0; } - -th.tableblock.halign-left, td.tableblock.halign-left { text-align: left; } - -th.tableblock.halign-right, td.tableblock.halign-right { text-align: right; } - -th.tableblock.halign-center, td.tableblock.halign-center { text-align: center; } - -th.tableblock.valign-top, td.tableblock.valign-top { vertical-align: top; } - -th.tableblock.valign-bottom, td.tableblock.valign-bottom { vertical-align: bottom; } - -th.tableblock.valign-middle, td.tableblock.valign-middle { vertical-align: middle; } - -p.tableblock.header { color: #222222; font-weight: bold; } - - - -/*************** KBD Macro definitions *******************/ - -kbd.keyseq { color: #555555; } - -kbd:not(.keyseq) { display: inline-block; color: #222222; font-size: 0.75em; line-height: 1.4; background-color: #F7F7F7; border: 1px solid #ccc; -webkit-border-radius: 3px; border-radius: 3px; -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; margin: -0.15em 0.15em 0 0.15em; padding: 0.2em 0.6em 0.2em 0.5em; vertical-align: middle; white-space: nowrap; } - -kbd kbd:first-child { margin-left: 0; } - -kbd kbd:last-child { margin-right: 0; } - - -/*************** Admontion Blocks definitions *******************/ -.admonitionblock td.content > .title, .exampleblock > .title, .imageblock > .title, .videoblock > .title, .listingblock > .title, .literalblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, .sidebarblock > .title, .tableblock > .title, .verseblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title { text-align: left; font-weight: bold; } - -.admonitionblock > table { border: 0; background: none; width: 100%; margin-top: 1em; margin-bottom: 1em;} -.admonitionblock > table td.icon { text-align: center; width: 80px; } -.admonitionblock > table td.icon img { max-width: none; } -.admonitionblock > table td.icon .title { font-weight: bold; text-transform: uppercase; } -.admonitionblock > table td.content { padding-left: 1.125em; padding-right: 1.25em; border-left: 1px solid #dddddd; color: #6f6f6f; } -.admonitionblock > table td.content > :last-child > :last-child { margin-bottom: 0; } - -.admonitionblock td.icon [class^="fa icon-"]:before {font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default} -.admonitionblock td.icon .icon-note:before { content: "\f05a"; color: #005498; color: #003f72; } -.admonitionblock td.icon .icon-tip:before { content: "\f0eb"; text-shadow: 1px 1px 2px rgba(155, 155, 0, 0.8); color: #111; } -.admonitionblock td.icon .icon-warning:before { content: "\f071"; color: #bf6900; } -.admonitionblock td.icon .icon-caution:before { content: "\f06d"; color: #bf3400; } -.admonitionblock td.icon .icon-important:before { content: "\f06a"; color: #bf0000; } - - - -/*************** Misc definitions *******************/ - -*:not(pre) > code { font-size: 0.9375em; padding: 1px 3px 0; white-space: nowrap; background-color: #f2f2f2; border: 1px solid #cccccc; -webkit-border-radius: 4px; border-radius: 4px; text-shadow: none; } - -pre, pre > code { line-height: 1.4; color: inherit; font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; } - -code { font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; color: #6d180b; } - diff --git a/context/context-test-utils/src/site/images/logos.png b/context/context-test-utils/src/site/images/logos.png deleted file mode 100644 index 915d6e59d42a39d262c209cdcc9801969a236c3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162383 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 M$f!tHNSXxw4 - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/concepts/ConceptUncoveredTest.java b/context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/concepts/ConceptUncoveredTest.java deleted file mode 100644 index eca9cb72e..000000000 --- a/context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/concepts/ConceptUncoveredTest.java +++ /dev/null @@ -1,715 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2018 Ericsson. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.apex.context.test.concepts; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import java.time.Instant; -import java.util.Date; -import java.util.Locale; -import java.util.TreeMap; -import java.util.TreeSet; - -import org.junit.Test; - -/** - * Cover uncovered code in concepts. - * - */ -public class ConceptUncoveredTest { - - @SuppressWarnings("unlikely-arg-type") - @Test - public void testInt() { - TestContextIntItem intItem = new TestContextIntItem(123); - assertEquals(123, intItem.getIntValue()); - - assertFalse(intItem.equals(null)); - assertTrue(intItem.equals(intItem)); - - TestContextBooleanItem booleanItem = new TestContextBooleanItem(); - assertFalse(intItem.equals(booleanItem)); - - TestContextIntItem otherIntItem = new TestContextIntItem(intItem); - assertTrue(intItem.equals(otherIntItem)); - otherIntItem.setIntValue(321); - assertFalse(intItem.equals(otherIntItem)); - } - - @SuppressWarnings("unlikely-arg-type") - @Test - public void testByte() { - TestContextByteItem byteItem = new TestContextByteItem((byte) 123); - assertEquals(123, byteItem.getByteValue()); - - assertFalse(byteItem.equals(null)); - assertTrue(byteItem.equals(byteItem)); - - TestContextBooleanItem booleanItem = new TestContextBooleanItem(); - assertFalse(byteItem.equals(booleanItem)); - - TestContextByteItem otherByteItem = new TestContextByteItem((byte) 123); - assertTrue(byteItem.equals(otherByteItem)); - otherByteItem.setByteValue((byte) 321); - assertFalse(byteItem.equals(otherByteItem)); - } - - @SuppressWarnings("unlikely-arg-type") - @Test - public void testLong() { - TestContextLongItem longItem = new TestContextLongItem((long) 123); - assertEquals(123, longItem.getLongValue()); - - assertFalse(longItem.equals(null)); - assertTrue(longItem.equals(longItem)); - - TestContextBooleanItem booleanItem = new TestContextBooleanItem(); - assertFalse(longItem.equals(booleanItem)); - - TestContextLongItem otherLongItem = new TestContextLongItem((long) 123); - assertTrue(longItem.equals(otherLongItem)); - otherLongItem.setLongValue((long) 321); - assertFalse(longItem.equals(otherLongItem)); - } - - @SuppressWarnings("unlikely-arg-type") - @Test - public void testFloat() { - TestContextFloatItem floatItem = new TestContextFloatItem((float) 123); - assertEquals(new Float("123"), (Float) floatItem.getFloatValue()); - - assertFalse(floatItem.equals(null)); - assertTrue(floatItem.equals(floatItem)); - - TestContextBooleanItem booleanItem = new TestContextBooleanItem(); - assertFalse(floatItem.equals(booleanItem)); - - TestContextFloatItem otherFloatItem = new TestContextFloatItem((float) 123); - assertTrue(floatItem.equals(otherFloatItem)); - otherFloatItem.setFloatValue((float) 321); - assertFalse(floatItem.equals(otherFloatItem)); - } - - @SuppressWarnings("unlikely-arg-type") - @Test - public void testDouble() { - TestContextDoubleItem doubleItem = new TestContextDoubleItem((double) 123); - assertEquals(new Double("123"), (Double) doubleItem.getDoubleValue()); - - assertFalse(doubleItem.equals(null)); - assertTrue(doubleItem.equals(doubleItem)); - - TestContextBooleanItem booleanItem = new TestContextBooleanItem(); - assertFalse(doubleItem.equals(booleanItem)); - - TestContextDoubleItem otherDoubleItem = new TestContextDoubleItem((double) 123); - assertTrue(doubleItem.equals(otherDoubleItem)); - otherDoubleItem.setDoubleValue((double) 321); - assertFalse(doubleItem.equals(otherDoubleItem)); - } - - @SuppressWarnings("unlikely-arg-type") - @Test - public void testBoolean() { - TestContextBooleanItem booleanItem = new TestContextBooleanItem(true); - assertEquals(true, booleanItem.getFlag()); - - assertFalse(booleanItem.equals(null)); - assertTrue(booleanItem.equals(booleanItem)); - - TestContextDoubleItem doubleItem = new TestContextDoubleItem(); - assertFalse(booleanItem.equals(doubleItem)); - - TestContextBooleanItem otherBooleanItem = new TestContextBooleanItem(true); - assertTrue(booleanItem.equals(otherBooleanItem)); - otherBooleanItem.setFlag(false); - assertFalse(booleanItem.equals(otherBooleanItem)); - - assertEquals(1262, booleanItem.hashCode()); - assertEquals(1268, otherBooleanItem.hashCode()); - } - - @SuppressWarnings("unlikely-arg-type") - @Test - public void testString() { - TestContextStringItem stringItem = new TestContextStringItem("A String"); - assertEquals("A String", stringItem.getStringValue()); - - assertFalse(stringItem.equals(null)); - assertTrue(stringItem.equals(stringItem)); - - TestContextDoubleItem doubleItem = new TestContextDoubleItem(); - assertFalse(stringItem.equals(doubleItem)); - - TestContextStringItem otherStringItem = new TestContextStringItem("A String"); - assertTrue(stringItem.equals(otherStringItem)); - otherStringItem.setStringValue("Some Other String Value"); - assertFalse(stringItem.equals(otherStringItem)); - - otherStringItem.setStringValue(null); - assertEquals(-1859249905, stringItem.hashCode()); - assertEquals(31, otherStringItem.hashCode()); - - assertFalse(otherStringItem.equals(stringItem)); - } - - @SuppressWarnings("unlikely-arg-type") - @Test - public void testLongObject() { - TestContextLongObjectItem longItem = new TestContextLongObjectItem((long) 123); - assertEquals((Long) 123L, longItem.getLongValue()); - - assertFalse(longItem.equals(null)); - assertTrue(longItem.equals(longItem)); - - TestContextBooleanItem booleanItem = new TestContextBooleanItem(); - assertFalse(longItem.equals(booleanItem)); - - TestContextLongObjectItem otherLongItem = new TestContextLongObjectItem((long) 123); - assertTrue(longItem.equals(otherLongItem)); - otherLongItem.setLongValue((long) 321); - assertFalse(longItem.equals(otherLongItem)); - - otherLongItem.setLongValue(null); - assertEquals(154, longItem.hashCode()); - assertEquals(31, otherLongItem.hashCode()); - assertFalse(otherLongItem.equals(longItem)); - } - - @SuppressWarnings( - { "unlikely-arg-type", "rawtypes", "unchecked" }) - @Test - public void testTreeMap() { - TestContextTreeMapItem treeMapItem = new TestContextTreeMapItem(); - assertEquals(new TreeMap(), treeMapItem.getMapValue()); - - assertFalse(treeMapItem.equals(null)); - assertTrue(treeMapItem.equals(treeMapItem)); - - TestContextBooleanItem booleanItem = new TestContextBooleanItem(); - assertFalse(treeMapItem.equals(booleanItem)); - - TestContextTreeMapItem otherTreeMapItem = new TestContextTreeMapItem(); - assertTrue(treeMapItem.equals(otherTreeMapItem)); - otherTreeMapItem.getMapValue().put("Key", "Value"); - assertFalse(treeMapItem.equals(otherTreeMapItem)); - - treeMapItem.setMapValue(new TreeMap()); - otherTreeMapItem.setMapValue(null); - assertNotNull(otherTreeMapItem.getMapValue()); - otherTreeMapItem.setMapValue(null); - assertEquals(31, treeMapItem.hashCode()); - assertEquals(31, otherTreeMapItem.hashCode()); - assertFalse(otherTreeMapItem.equals(treeMapItem)); - treeMapItem.setMapValue(null); - assertTrue(otherTreeMapItem.equals(treeMapItem)); - } - - @SuppressWarnings( - { "unlikely-arg-type", "rawtypes", "unchecked" }) - @Test - public void testTreeSet() { - TestContextTreeSetItem treeSetItem = new TestContextTreeSetItem(); - assertEquals(new TreeSet(), treeSetItem.getSetValue()); - - assertFalse(treeSetItem.equals(null)); - assertTrue(treeSetItem.equals(treeSetItem)); - - TestContextBooleanItem booleanItem = new TestContextBooleanItem(); - assertFalse(treeSetItem.equals(booleanItem)); - - TestContextTreeSetItem otherTreeSetItem = new TestContextTreeSetItem(); - assertTrue(treeSetItem.equals(otherTreeSetItem)); - otherTreeSetItem.getSetValue().add("Value"); - assertFalse(treeSetItem.equals(otherTreeSetItem)); - - treeSetItem.setSetValue(new TreeSet()); - otherTreeSetItem.setSetValue(null); - assertNotNull(otherTreeSetItem.getSetValue()); - otherTreeSetItem.setSetValue(null); - assertEquals(31, treeSetItem.hashCode()); - assertEquals(31, otherTreeSetItem.hashCode()); - assertFalse(otherTreeSetItem.equals(treeSetItem)); - treeSetItem.setSetValue(null); - assertTrue(otherTreeSetItem.equals(treeSetItem)); - - String[] stringArray = - { "hello", "goodbye" }; - TestContextTreeSetItem treeSetItemFromArray = new TestContextTreeSetItem(stringArray); - assertTrue(treeSetItemFromArray.getSetValue().contains("hello")); - assertTrue(treeSetItemFromArray.getSetValue().contains("goodbye")); - } - - @SuppressWarnings( - { "unlikely-arg-type" }) - @Test - public void testDate() { - TestContextDateItem dateItem = new TestContextDateItem(); - assertTrue(new Date().getTime() >= dateItem.getDateValue().getTime()); - - assertFalse(dateItem.equals(null)); - assertTrue(dateItem.equals(dateItem)); - - TestContextBooleanItem booleanItem = new TestContextBooleanItem(); - assertFalse(dateItem.equals(booleanItem)); - - TestContextDateItem otherDateItem = new TestContextDateItem(dateItem.getDateValue()); - assertTrue(dateItem.equals(otherDateItem)); - otherDateItem.setDateValue(Date.from(Instant.now())); - assertFalse(dateItem.equals(otherDateItem)); - - dateItem.setDateValue(new Date()); - otherDateItem.setDateValue(null); - assertNotNull(otherDateItem.getDateValue()); - otherDateItem.setDateValue(new Date(12345678)); - assertEquals(939444071, otherDateItem.hashCode()); - assertFalse(otherDateItem.equals(dateItem)); - dateItem = new TestContextDateItem(null); - otherDateItem = new TestContextDateItem(null); - assertTrue(otherDateItem.equals(dateItem)); - - dateItem = new TestContextDateItem(new Date(1538394566123L)); - assertEquals(2018, dateItem.getYear()); - assertEquals(9, dateItem.getMonth()); - assertEquals(1, dateItem.getDay()); - assertEquals(11, dateItem.getHour()); - assertEquals(49, dateItem.getMinute()); - assertEquals(26, dateItem.getSecond()); - assertEquals(123, dateItem.getMilliSecond()); - - dateItem = new TestContextDateItem(new Date(0L)); - otherDateItem = new TestContextDateItem(new Date(1L)); - assertFalse(dateItem.equals(otherDateItem)); - - otherDateItem = new TestContextDateItem(new Date(1000L)); - assertFalse(dateItem.equals(otherDateItem)); - - otherDateItem = new TestContextDateItem(new Date(60000L)); - assertFalse(dateItem.equals(otherDateItem)); - - otherDateItem = new TestContextDateItem(new Date(3600000L)); - assertFalse(dateItem.equals(otherDateItem)); - - otherDateItem = new TestContextDateItem(new Date(86400000L)); - assertFalse(dateItem.equals(otherDateItem)); - - otherDateItem = new TestContextDateItem(new Date(2678400000L)); - assertFalse(dateItem.equals(otherDateItem)); - - dateItem = new TestContextDateItem(123L); - assertEquals(123, dateItem.getTime()); - - assertEquals("TestContextItem008 [time=123, year=1970, month=0, day=1, " - + "hour=0, minute=0, second=0, milliSecond=123]", dateItem.toString()); - } - - @SuppressWarnings("unlikely-arg-type") - @Test - public void testDateTz() { - TestContextDateItem dateItem = new TestContextDateItem(new Date(0L)); - - TestContextDateTzItem dateTzItem = new TestContextDateTzItem(dateItem, "UTC", true); - assertEquals("Coordinated Universal Time", dateTzItem.getTzValue()); - assertEquals(true, dateTzItem.getDst()); - - assertFalse(dateTzItem.equals(null)); - assertTrue(dateTzItem.equals(dateTzItem)); - - TestContextDoubleItem doubleItem = new TestContextDoubleItem(); - assertFalse(dateTzItem.equals(doubleItem)); - - TestContextDateTzItem otherDateTzItem = new TestContextDateTzItem(dateItem, "UTC", true); - assertTrue(dateTzItem.equals(otherDateTzItem)); - otherDateTzItem.setDst(false); - assertFalse(dateTzItem.equals(otherDateTzItem)); - otherDateTzItem.setDst(true); - otherDateTzItem.setTzValue("IST"); - assertFalse(dateTzItem.equals(otherDateTzItem)); - otherDateTzItem.setTzValue(null); - assertFalse(dateTzItem.equals(otherDateTzItem)); - otherDateTzItem.setTzValue("UTC"); - assertTrue(otherDateTzItem.equals(dateTzItem)); - - dateTzItem.setDateValue(null); - assertFalse(dateTzItem.equals(otherDateTzItem)); - otherDateTzItem.setDateValue(null); - assertTrue(otherDateTzItem.equals(dateTzItem)); - - TestContextDateItem otherDateItem = new TestContextDateItem(new Date(1L)); - dateTzItem.setDateValue(dateItem); - otherDateTzItem.setDateValue(otherDateItem); - assertFalse(dateTzItem.equals(otherDateTzItem)); - otherDateTzItem.setDateValue(dateItem); - - dateTzItem.setTzValue(null); - assertFalse(dateTzItem.equals(otherDateTzItem)); - otherDateTzItem.setTzValue(null); - assertTrue(otherDateTzItem.equals(dateTzItem)); - - dateTzItem.setTzValue("UTC"); - otherDateTzItem.setTzValue("IST"); - assertFalse(dateTzItem.equals(otherDateTzItem)); - - dateTzItem.setDateValue(null); - dateTzItem.setTzValue(null); - dateTzItem.setDst(true); - assertEquals(67952, dateTzItem.hashCode()); - - dateTzItem.setDst(false); - assertEquals(68138, dateTzItem.hashCode()); - } - - @SuppressWarnings("unlikely-arg-type") - @Test - public void testDateLocale() { - TestContextDateItem dateItem = new TestContextDateItem(new Date(0L)); - - TestContextDateLocaleItem dateLocaleItem = new TestContextDateLocaleItem(dateItem, "UTC", true, 1, "EN", "IE"); - assertEquals("Coordinated Universal Time", dateLocaleItem.getTzValue()); - assertEquals(true, dateLocaleItem.getDst()); - - assertFalse(dateLocaleItem.equals(null)); - assertTrue(dateLocaleItem.equals(dateLocaleItem)); - - TestContextDoubleItem doubleItem = new TestContextDoubleItem(); - assertFalse(dateLocaleItem.equals(doubleItem)); - - TestContextDateLocaleItem otherDateLocaleItem = new TestContextDateLocaleItem(dateItem, "UTC", true, 1, "EN", - "IE"); - assertTrue(dateLocaleItem.equals(otherDateLocaleItem)); - otherDateLocaleItem.setDst(false); - assertFalse(dateLocaleItem.equals(otherDateLocaleItem)); - otherDateLocaleItem.setDst(true); - otherDateLocaleItem.setTzValue("IST"); - assertFalse(dateLocaleItem.equals(otherDateLocaleItem)); - otherDateLocaleItem.setTzValue(null); - assertFalse(dateLocaleItem.equals(otherDateLocaleItem)); - otherDateLocaleItem.setTzValue("UTC"); - assertTrue(otherDateLocaleItem.equals(dateLocaleItem)); - - dateLocaleItem.setDateValue(null); - assertFalse(dateLocaleItem.equals(otherDateLocaleItem)); - otherDateLocaleItem.setDateValue(null); - assertTrue(otherDateLocaleItem.equals(dateLocaleItem)); - - TestContextDateItem otherDateItem = new TestContextDateItem(new Date(1L)); - dateLocaleItem.setDateValue(dateItem); - otherDateLocaleItem.setDateValue(otherDateItem); - assertFalse(dateLocaleItem.equals(otherDateLocaleItem)); - otherDateLocaleItem.setDateValue(dateItem); - - dateLocaleItem.setTzValue(null); - assertFalse(dateLocaleItem.equals(otherDateLocaleItem)); - otherDateLocaleItem.setTzValue(null); - assertTrue(otherDateLocaleItem.equals(dateLocaleItem)); - - dateLocaleItem.setTzValue("UTC"); - otherDateLocaleItem.setTzValue("IST"); - assertFalse(dateLocaleItem.equals(otherDateLocaleItem)); - - dateLocaleItem.setDateValue(null); - dateLocaleItem.setTzValue(null); - dateLocaleItem.setDst(true); - dateLocaleItem.setLocale(new Locale("EN", "IE")); - assertEquals(-1567427636, dateLocaleItem.hashCode()); - - dateLocaleItem.setDst(false); - assertEquals(-1567248890, dateLocaleItem.hashCode()); - - dateLocaleItem.setLocale(null); - assertEquals(65480619, dateLocaleItem.hashCode()); - - dateLocaleItem.setLocale(new Locale("EN", "IE")); - assertEquals(new Locale("EN", "IE"), dateLocaleItem.getLocale()); - assertEquals(1, dateLocaleItem.getUtcOffset()); - - dateLocaleItem = new TestContextDateLocaleItem(dateItem, "UTC", true, 1, "EN", "IE"); - otherDateLocaleItem = new TestContextDateLocaleItem(dateItem, "UTC", true, 1, "EN", "IE"); - dateLocaleItem.setLocale(null); - assertFalse(dateLocaleItem.equals(otherDateLocaleItem)); - otherDateLocaleItem.setLocale(null); - assertTrue(otherDateLocaleItem.equals(dateLocaleItem)); - - dateLocaleItem.setUtcOffset(0); - assertFalse(otherDateLocaleItem.equals(dateLocaleItem)); - } - - @SuppressWarnings("unlikely-arg-type") - @Test - public void testPolicyContextItem() { - TestPolicyContextItem item0 = new TestPolicyContextItem(); - TestPolicyContextItem item1 = new TestPolicyContextItem(); - - assertTrue(item0.equals(item0)); - assertTrue(item0.equals(item1)); - assertFalse(item0.equals(null)); - - TestContextBooleanItem booleanItem = new TestContextBooleanItem(); - assertFalse(item0.equals(booleanItem)); - - assertEquals(887503681, item0.hashCode()); - item0.setTestPolicyContextItem000(new TestContextStringItem()); - item0.setTestPolicyContextItem001(new TestContextLongItem()); - item0.setTestPolicyContextItem002(new TestContextDoubleItem()); - item0.setTestPolicyContextItem003(new TestContextBooleanItem()); - item0.setTestPolicyContextItem004(new TestContextLongItem()); - item0.setTestPolicyContextItem005(new TestContextTreeMapItem()); - assertEquals(1805779574, item0.hashCode()); - - assertFalse(item1.equals(item0)); - - item1.setTestPolicyContextItem000(new TestContextStringItem("Hello")); - assertFalse(item1.equals(item0)); - item1.setTestPolicyContextItem000(item0.getTestPolicyContextItem000()); - assertFalse(item1.equals(item0)); - - item1.setTestPolicyContextItem001(new TestContextLongItem(123L)); - assertFalse(item1.equals(item0)); - item1.setTestPolicyContextItem001(item0.getTestPolicyContextItem001()); - assertFalse(item1.equals(item0)); - - item1.setTestPolicyContextItem002(new TestContextDoubleItem(123.45)); - assertFalse(item1.equals(item0)); - item1.setTestPolicyContextItem002(item0.getTestPolicyContextItem002()); - assertFalse(item1.equals(item0)); - - item1.setTestPolicyContextItem003(new TestContextBooleanItem(true)); - assertFalse(item1.equals(item0)); - item1.setTestPolicyContextItem003(item0.getTestPolicyContextItem003()); - assertFalse(item1.equals(item0)); - - item1.setTestPolicyContextItem004(new TestContextLongItem(123L)); - assertFalse(item1.equals(item0)); - item1.setTestPolicyContextItem004(item0.getTestPolicyContextItem004()); - assertFalse(item1.equals(item0)); - - item1.setTestPolicyContextItem005(new TestContextTreeMapItem()); - item1.getTestPolicyContextItem005().getMapValue().put("Key", "Value"); - assertFalse(item1.equals(item0)); - item1.setTestPolicyContextItem005(item0.getTestPolicyContextItem005()); - assertTrue(item1.equals(item0)); - } - - @SuppressWarnings("unlikely-arg-type") - @Test - public void testExternalContextItem() { - TestExternalContextItem item0 = new TestExternalContextItem(); - TestExternalContextItem item1 = new TestExternalContextItem(); - - assertTrue(item0.equals(item0)); - assertTrue(item0.equals(item1)); - assertFalse(item0.equals(null)); - - TestContextBooleanItem booleanItem = new TestContextBooleanItem(); - assertFalse(item0.equals(booleanItem)); - - assertEquals(-505558625, item0.hashCode()); - item0.setTestExternalContextItem000(new TestContextBooleanItem()); - item0.setTestExternalContextItem001(new TestContextByteItem()); - item0.setTestExternalContextItem002(new TestContextIntItem()); - item0.setTestExternalContextItem003(new TestContextLongItem()); - item0.setTestExternalContextItem004(new TestContextFloatItem()); - item0.setTestExternalContextItem005(new TestContextDoubleItem()); - item0.setTestExternalContextItem006(new TestContextStringItem()); - item0.setTestExternalContextItem007(new TestContextLongObjectItem()); - item0.setTestExternalContextItem008(new TestContextDateItem()); - item0.setTestExternalContextItem009(new TestContextDateTzItem()); - item0.setTestExternalContextItem00A(new TestContextDateLocaleItem()); - item0.setTestExternalContextItem00B(new TestContextTreeSetItem()); - item0.setTestExternalContextItem00C(new TestContextTreeMapItem()); - assertTrue(item0.hashCode() != 0); - - assertFalse(item1.equals(item0)); - - item1.setTestExternalContextItem000(new TestContextBooleanItem(true)); - assertFalse(item1.equals(item0)); - item1.setTestExternalContextItem000(item0.getTestExternalContextItem000()); - assertFalse(item1.equals(item0)); - - item1.setTestExternalContextItem001(new TestContextByteItem((byte) 123)); - assertFalse(item1.equals(item0)); - item1.setTestExternalContextItem001(item0.getTestExternalContextItem001()); - assertFalse(item1.equals(item0)); - - item1.setTestExternalContextItem002(new TestContextIntItem(123)); - assertFalse(item1.equals(item0)); - item1.setTestExternalContextItem002(item0.getTestExternalContextItem002()); - assertFalse(item1.equals(item0)); - - item1.setTestExternalContextItem003(new TestContextLongItem(123L)); - assertFalse(item1.equals(item0)); - item1.setTestExternalContextItem003(item0.getTestExternalContextItem003()); - assertFalse(item1.equals(item0)); - - item1.setTestExternalContextItem004(new TestContextFloatItem((float) 123.45)); - assertFalse(item1.equals(item0)); - item1.setTestExternalContextItem004(item0.getTestExternalContextItem004()); - assertFalse(item1.equals(item0)); - - item1.setTestExternalContextItem005(new TestContextDoubleItem(123.45)); - assertFalse(item1.equals(item0)); - item1.setTestExternalContextItem005(item0.getTestExternalContextItem005()); - assertFalse(item1.equals(item0)); - - item1.setTestExternalContextItem006(new TestContextStringItem("Hello")); - assertFalse(item1.equals(item0)); - item1.setTestExternalContextItem006(item0.getTestExternalContextItem006()); - assertFalse(item1.equals(item0)); - - item1.setTestExternalContextItem007(new TestContextLongObjectItem(123L)); - assertFalse(item1.equals(item0)); - item1.setTestExternalContextItem007(item0.getTestExternalContextItem007()); - assertFalse(item1.equals(item0)); - - item1.setTestExternalContextItem008(new TestContextDateItem(new Date(124))); - assertFalse(item1.equals(item0)); - item1.setTestExternalContextItem008(item0.getTestExternalContextItem008()); - assertFalse(item1.equals(item0)); - - item1.setTestExternalContextItem009( - new TestContextDateTzItem(new TestContextDateItem(new Date(124)), "UTC", true)); - assertFalse(item1.equals(item0)); - item1.setTestExternalContextItem009(item0.getTestExternalContextItem009()); - assertFalse(item1.equals(item0)); - - item1.setTestExternalContextItem00A(new TestContextDateLocaleItem(new TestContextDateItem(new Date(124)), "UTC", - true, 1, "EN", "IE")); - assertFalse(item1.equals(item0)); - item1.setTestExternalContextItem00A(item0.getTestExternalContextItem00A()); - assertFalse(item1.equals(item0)); - - item1.setTestExternalContextItem00B(new TestContextTreeSetItem()); - item1.getTestExternalContextItem00B().getSetValue().add("Hello"); - assertFalse(item1.equals(item0)); - item1.setTestExternalContextItem00B(item0.getTestExternalContextItem00B()); - assertFalse(item1.equals(item0)); - - item1.setTestExternalContextItem00C(new TestContextTreeMapItem()); - item1.getTestExternalContextItem00C().getMapValue().put("Key", "Value"); - assertFalse(item1.equals(item0)); - item1.setTestExternalContextItem00C(item0.getTestExternalContextItem00C()); - assertTrue(item1.equals(item0)); - } - - @SuppressWarnings("unlikely-arg-type") - @Test - public void testGlobalContextItem() { - TestGlobalContextItem item0 = new TestGlobalContextItem(); - TestGlobalContextItem item1 = new TestGlobalContextItem(); - - assertTrue(item0.equals(item0)); - assertTrue(item0.equals(item1)); - assertFalse(item0.equals(null)); - - TestContextBooleanItem booleanItem = new TestContextBooleanItem(); - assertFalse(item0.equals(booleanItem)); - - assertEquals(-505558625, item0.hashCode()); - item0.setTestGlobalContextItem000(new TestContextBooleanItem()); - item0.setTestGlobalContextItem001(new TestContextByteItem()); - item0.setTestGlobalContextItem002(new TestContextIntItem()); - item0.setTestGlobalContextItem003(new TestContextLongItem()); - item0.setTestGlobalContextItem004(new TestContextFloatItem()); - item0.setTestGlobalContextItem005(new TestContextDoubleItem()); - item0.setTestGlobalContextItem006(new TestContextStringItem()); - item0.setTestGlobalContextItem007(new TestContextLongObjectItem()); - item0.setTestGlobalContextItem008(new TestContextDateItem()); - item0.setTestGlobalContextItem009(new TestContextDateTzItem()); - item0.setTestGlobalContextItem00A(new TestContextDateLocaleItem()); - item0.setTestGlobalContextItem00B(new TestContextTreeSetItem()); - item0.setTestGlobalContextItem00C(new TestContextTreeMapItem()); - assertTrue(item0.hashCode() != 0); - - assertFalse(item1.equals(item0)); - - item1.setTestGlobalContextItem000(new TestContextBooleanItem(true)); - assertFalse(item1.equals(item0)); - item1.setTestGlobalContextItem000(item0.getTestGlobalContextItem000()); - assertFalse(item1.equals(item0)); - - item1.setTestGlobalContextItem001(new TestContextByteItem((byte) 123)); - assertFalse(item1.equals(item0)); - item1.setTestGlobalContextItem001(item0.getTestGlobalContextItem001()); - assertFalse(item1.equals(item0)); - - item1.setTestGlobalContextItem002(new TestContextIntItem(123)); - assertFalse(item1.equals(item0)); - item1.setTestGlobalContextItem002(item0.getTestGlobalContextItem002()); - assertFalse(item1.equals(item0)); - - item1.setTestGlobalContextItem003(new TestContextLongItem(123L)); - assertFalse(item1.equals(item0)); - item1.setTestGlobalContextItem003(item0.getTestGlobalContextItem003()); - assertFalse(item1.equals(item0)); - - item1.setTestGlobalContextItem004(new TestContextFloatItem((float) 123.45)); - assertFalse(item1.equals(item0)); - item1.setTestGlobalContextItem004(item0.getTestGlobalContextItem004()); - assertFalse(item1.equals(item0)); - - item1.setTestGlobalContextItem005(new TestContextDoubleItem(123.45)); - assertFalse(item1.equals(item0)); - item1.setTestGlobalContextItem005(item0.getTestGlobalContextItem005()); - assertFalse(item1.equals(item0)); - - item1.setTestGlobalContextItem006(new TestContextStringItem("Hello")); - assertFalse(item1.equals(item0)); - item1.setTestGlobalContextItem006(item0.getTestGlobalContextItem006()); - assertFalse(item1.equals(item0)); - - item1.setTestGlobalContextItem007(new TestContextLongObjectItem(123L)); - assertFalse(item1.equals(item0)); - item1.setTestGlobalContextItem007(item0.getTestGlobalContextItem007()); - assertFalse(item1.equals(item0)); - - item1.setTestGlobalContextItem008(new TestContextDateItem(new Date(124))); - assertFalse(item1.equals(item0)); - item1.setTestGlobalContextItem008(item0.getTestGlobalContextItem008()); - assertFalse(item1.equals(item0)); - - item1.setTestGlobalContextItem009( - new TestContextDateTzItem(new TestContextDateItem(new Date(124)), "UTC", true)); - assertFalse(item1.equals(item0)); - item1.setTestGlobalContextItem009(item0.getTestGlobalContextItem009()); - assertFalse(item1.equals(item0)); - - item1.setTestGlobalContextItem00A(new TestContextDateLocaleItem(new TestContextDateItem(new Date(124)), "UTC", - true, 1, "EN", "IE")); - assertFalse(item1.equals(item0)); - item1.setTestGlobalContextItem00A(item0.getTestGlobalContextItem00A()); - assertFalse(item1.equals(item0)); - - item1.setTestGlobalContextItem00B(new TestContextTreeSetItem()); - item1.getTestGlobalContextItem00B().getSetValue().add("Hello"); - assertFalse(item1.equals(item0)); - item1.setTestGlobalContextItem00B(item0.getTestGlobalContextItem00B()); - assertFalse(item1.equals(item0)); - - item1.setTestGlobalContextItem00C(new TestContextTreeMapItem()); - item1.getTestGlobalContextItem00C().getMapValue().put("Key", "Value"); - assertFalse(item1.equals(item0)); - item1.setTestGlobalContextItem00C(item0.getTestGlobalContextItem00C()); - assertTrue(item1.equals(item0)); - } -} diff --git a/context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/distribution/ContextAlbumUpdateTest.java b/context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/distribution/ContextAlbumUpdateTest.java deleted file mode 100644 index 218a8f9af..000000000 --- a/context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/distribution/ContextAlbumUpdateTest.java +++ /dev/null @@ -1,100 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.apex.context.test.distribution; - -import java.io.IOException; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.onap.policy.apex.context.impl.distribution.jvmlocal.JvmLocalDistributor; -import org.onap.policy.apex.context.impl.schema.java.JavaSchemaHelperParameters; -import org.onap.policy.apex.context.parameters.ContextParameterConstants; -import org.onap.policy.apex.context.parameters.ContextParameters; -import org.onap.policy.apex.context.parameters.SchemaParameters; -import org.onap.policy.apex.model.basicmodel.concepts.ApexException; -import org.onap.policy.apex.model.basicmodel.handling.ApexModelException; -import org.onap.policy.common.parameters.ParameterService; -import org.slf4j.ext.XLogger; -import org.slf4j.ext.XLoggerFactory; - -public class ContextAlbumUpdateTest { - // Logger for this class - private static final XLogger logger = XLoggerFactory.getXLogger(ContextAlbumUpdateTest.class); - - private SchemaParameters schemaParameters; - private ContextParameters contextParameters; - - /** - * Set up context data. - */ - @Before - public void beforeTest() { - contextParameters = new ContextParameters(); - - contextParameters.setName(ContextParameterConstants.MAIN_GROUP_NAME); - contextParameters.getDistributorParameters().setName(ContextParameterConstants.DISTRIBUTOR_GROUP_NAME); - contextParameters.getLockManagerParameters().setName(ContextParameterConstants.LOCKING_GROUP_NAME); - contextParameters.getPersistorParameters().setName(ContextParameterConstants.PERSISTENCE_GROUP_NAME); - - ParameterService.register(contextParameters); - ParameterService.register(contextParameters.getDistributorParameters()); - ParameterService.register(contextParameters.getLockManagerParameters()); - ParameterService.register(contextParameters.getPersistorParameters()); - - schemaParameters = new SchemaParameters(); - schemaParameters.setName(ContextParameterConstants.SCHEMA_GROUP_NAME); - schemaParameters.getSchemaHelperParameterMap().put("JAVA", new JavaSchemaHelperParameters()); - - ParameterService.register(schemaParameters); - } - - /** - * Clear down context data. - */ - @After - public void afterTest() { - ParameterService.deregister(schemaParameters); - - ParameterService.deregister(contextParameters.getDistributorParameters()); - ParameterService.deregister(contextParameters.getLockManagerParameters()); - ParameterService.deregister(contextParameters.getPersistorParameters()); - ParameterService.deregister(contextParameters); - } - - @Test - public void testContextAlbumUpdateJvmLocalVarSet() throws ApexModelException, IOException, ApexException { - logger.debug("Running testContextAlbumUpdateJVMLocalVarSet test . . ."); - - contextParameters.getDistributorParameters().setPluginClass(JvmLocalDistributor.class.getCanonicalName()); - new ContextAlbumUpdate().testContextAlbumUpdate(); - - logger.debug("Ran testContextAlbumUpdateJVMLocalVarSet test"); - } - - @Test - public void testContextAlbumUpdateJvmLocalVarNotSet() throws ApexModelException, IOException, ApexException { - logger.debug("Running testContextAlbumUpdateJVMLocalVarNotSet test . . ."); - - new ContextAlbumUpdate().testContextAlbumUpdate(); - - logger.debug("Ran testContextAlbumUpdateJVMLocalVarNotSet test"); - } -} diff --git a/context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/distribution/ContextInstantiationTest.java b/context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/distribution/ContextInstantiationTest.java deleted file mode 100644 index d635be441..000000000 --- a/context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/distribution/ContextInstantiationTest.java +++ /dev/null @@ -1,105 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.apex.context.test.distribution; - -import java.io.IOException; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.onap.policy.apex.context.impl.distribution.jvmlocal.JvmLocalDistributor; -import org.onap.policy.apex.context.impl.schema.java.JavaSchemaHelperParameters; -import org.onap.policy.apex.context.parameters.ContextParameterConstants; -import org.onap.policy.apex.context.parameters.ContextParameters; -import org.onap.policy.apex.context.parameters.SchemaParameters; -import org.onap.policy.apex.model.basicmodel.concepts.ApexException; -import org.onap.policy.apex.model.basicmodel.handling.ApexModelException; -import org.onap.policy.common.parameters.ParameterService; -import org.slf4j.ext.XLogger; -import org.slf4j.ext.XLoggerFactory; - -/** - * The Class TestContextInstantiation. - * - * @author Sergey Sachkov (sergey.sachkov@ericsson.com) - */ -public class ContextInstantiationTest { - // Logger for this class - private static final XLogger logger = XLoggerFactory.getXLogger(ContextInstantiationTest.class); - - private SchemaParameters schemaParameters; - private ContextParameters contextParameters; - - /** - * Set up context for tests. - */ - @Before - public void beforeTest() { - contextParameters = new ContextParameters(); - - contextParameters.setName(ContextParameterConstants.MAIN_GROUP_NAME); - contextParameters.getDistributorParameters().setName(ContextParameterConstants.DISTRIBUTOR_GROUP_NAME); - contextParameters.getLockManagerParameters().setName(ContextParameterConstants.LOCKING_GROUP_NAME); - contextParameters.getPersistorParameters().setName(ContextParameterConstants.PERSISTENCE_GROUP_NAME); - - ParameterService.register(contextParameters); - ParameterService.register(contextParameters.getDistributorParameters()); - ParameterService.register(contextParameters.getLockManagerParameters()); - ParameterService.register(contextParameters.getPersistorParameters()); - - schemaParameters = new SchemaParameters(); - schemaParameters.setName(ContextParameterConstants.SCHEMA_GROUP_NAME); - schemaParameters.getSchemaHelperParameterMap().put("JAVA", new JavaSchemaHelperParameters()); - - ParameterService.register(schemaParameters); - } - - /** - * Clear down context for tests. - */ - @After - public void afterTest() { - ParameterService.deregister(schemaParameters); - - ParameterService.deregister(contextParameters.getDistributorParameters()); - ParameterService.deregister(contextParameters.getLockManagerParameters()); - ParameterService.deregister(contextParameters.getPersistorParameters()); - ParameterService.deregister(contextParameters); - } - - @Test - public void testContextInstantiationJvmLocalVarSet() throws ApexModelException, IOException, ApexException { - logger.debug("Running testContextInstantiationJVMLocalVarSet test . . ."); - - contextParameters.getDistributorParameters().setPluginClass(JvmLocalDistributor.class.getCanonicalName()); - new ContextInstantiation().testContextInstantiation(); - - logger.debug("Ran testContextInstantiationJVMLocalVarSet test"); - } - - @Test - public void testContextInstantiationJvmLocalVarNotSet() throws ApexModelException, IOException, ApexException { - logger.debug("Running testContextInstantiationJVMLocalVarNotSet test . . ."); - - new ContextInstantiation().testContextInstantiation(); - - logger.debug("Ran testContextInstantiationJVMLocalVarNotSet test"); - } -} diff --git a/context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/distribution/ContextUpdateTest.java b/context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/distribution/ContextUpdateTest.java deleted file mode 100644 index 0eaf591e3..000000000 --- a/context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/distribution/ContextUpdateTest.java +++ /dev/null @@ -1,106 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.apex.context.test.distribution; - -import java.io.IOException; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.onap.policy.apex.context.impl.distribution.jvmlocal.JvmLocalDistributor; -import org.onap.policy.apex.context.impl.schema.java.JavaSchemaHelperParameters; -import org.onap.policy.apex.context.parameters.ContextParameterConstants; -import org.onap.policy.apex.context.parameters.ContextParameters; -import org.onap.policy.apex.context.parameters.SchemaParameters; -import org.onap.policy.apex.model.basicmodel.concepts.ApexException; -import org.onap.policy.apex.model.basicmodel.handling.ApexModelException; -import org.onap.policy.common.parameters.ParameterService; -import org.slf4j.ext.XLogger; -import org.slf4j.ext.XLoggerFactory; - -/** - * The Class TestContextUpdate. - * - * @author Sergey Sachkov (sergey.sachkov@ericsson.com) - */ -public class ContextUpdateTest { - // Logger for this class - private static final XLogger logger = XLoggerFactory.getXLogger(ContextUpdateTest.class); - - private SchemaParameters schemaParameters; - private ContextParameters contextParameters; - - /** - * Set up context for tests. - */ - @Before - public void beforeTest() { - contextParameters = new ContextParameters(); - - contextParameters.setName(ContextParameterConstants.MAIN_GROUP_NAME); - contextParameters.getDistributorParameters().setName(ContextParameterConstants.DISTRIBUTOR_GROUP_NAME); - contextParameters.getLockManagerParameters().setName(ContextParameterConstants.LOCKING_GROUP_NAME); - contextParameters.getPersistorParameters().setName(ContextParameterConstants.PERSISTENCE_GROUP_NAME); - - ParameterService.register(contextParameters); - ParameterService.register(contextParameters.getDistributorParameters()); - ParameterService.register(contextParameters.getLockManagerParameters()); - ParameterService.register(contextParameters.getPersistorParameters()); - - schemaParameters = new SchemaParameters(); - schemaParameters.setName(ContextParameterConstants.SCHEMA_GROUP_NAME); - schemaParameters.getSchemaHelperParameterMap().put("JAVA", new JavaSchemaHelperParameters()); - - ParameterService.register(schemaParameters); - } - - /** - * Clear down context for tests. - */ - @After - public void afterTest() { - ParameterService.deregister(schemaParameters); - - ParameterService.deregister(contextParameters.getDistributorParameters()); - ParameterService.deregister(contextParameters.getLockManagerParameters()); - ParameterService.deregister(contextParameters.getPersistorParameters()); - ParameterService.deregister(contextParameters); - } - - @Test - public void testContextUpdateJvmLocalVarSet() throws ApexModelException, IOException, ApexException { - logger.debug("Running testContextUpdateJVMLocalVarSet test . . ."); - - contextParameters.getDistributorParameters().setPluginClass(JvmLocalDistributor.class.getCanonicalName()); - new ContextUpdate().testContextUpdate(); - - logger.debug("Ran testContextUpdateJVMLocalVarSet test"); - } - - @Test - public void testContextUpdateJvmLocalVarNotSet() throws ApexModelException, IOException, ApexException { - logger.debug("Running testContextUpdateJVMLocalVarNotSet test . . ."); - - new ContextUpdate().testContextUpdate(); - - logger.debug("Ran testContextUpdateJVMLocalVarNotSet test"); - } -} diff --git a/context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/distribution/SequentialContextInstantiationTest.java b/context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/distribution/SequentialContextInstantiationTest.java deleted file mode 100644 index 21ab6ef9e..000000000 --- a/context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/distribution/SequentialContextInstantiationTest.java +++ /dev/null @@ -1,109 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.apex.context.test.distribution; - -import java.io.IOException; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.onap.policy.apex.context.impl.distribution.jvmlocal.JvmLocalDistributor; -import org.onap.policy.apex.context.impl.schema.java.JavaSchemaHelperParameters; -import org.onap.policy.apex.context.parameters.ContextParameterConstants; -import org.onap.policy.apex.context.parameters.ContextParameters; -import org.onap.policy.apex.context.parameters.SchemaParameters; -import org.onap.policy.apex.model.basicmodel.concepts.ApexException; -import org.onap.policy.apex.model.basicmodel.handling.ApexModelException; -import org.onap.policy.common.parameters.ParameterService; -import org.slf4j.ext.XLogger; -import org.slf4j.ext.XLoggerFactory; - -/** - * The Class TestContextInstantiation. - * - * @author Sergey Sachkov (sergey.sachkov@ericsson.com) - */ -public class SequentialContextInstantiationTest { - // Logger for this class - private static final XLogger logger = XLoggerFactory.getXLogger(SequentialContextInstantiationTest.class); - - private SchemaParameters schemaParameters; - private ContextParameters contextParameters; - - /** - * Set up context for tests. - */ - @Before - public void beforeTest() { - contextParameters = new ContextParameters(); - - contextParameters.setName(ContextParameterConstants.MAIN_GROUP_NAME); - contextParameters.getDistributorParameters().setName(ContextParameterConstants.DISTRIBUTOR_GROUP_NAME); - contextParameters.getLockManagerParameters().setName(ContextParameterConstants.LOCKING_GROUP_NAME); - contextParameters.getPersistorParameters().setName(ContextParameterConstants.PERSISTENCE_GROUP_NAME); - - ParameterService.register(contextParameters); - ParameterService.register(contextParameters.getDistributorParameters()); - ParameterService.register(contextParameters.getLockManagerParameters()); - ParameterService.register(contextParameters.getPersistorParameters()); - - schemaParameters = new SchemaParameters(); - schemaParameters.setName(ContextParameterConstants.SCHEMA_GROUP_NAME); - schemaParameters.getSchemaHelperParameterMap().put("JAVA", new JavaSchemaHelperParameters()); - - ParameterService.register(schemaParameters); - } - - /** - * Clear down context for tests. - */ - @After - public void afterTest() { - ParameterService.deregister(schemaParameters); - - ParameterService.deregister(contextParameters.getDistributorParameters()); - ParameterService.deregister(contextParameters.getLockManagerParameters()); - ParameterService.deregister(contextParameters.getPersistorParameters()); - ParameterService.deregister(contextParameters); - } - - @Test - public void testSequentialContextInstantiationJvmLocalVarSet() - throws ApexModelException, IOException, ApexException { - logger.debug("Running testSequentialContextInstantiationJVMLocalVarSet test . . ."); - - contextParameters.getDistributorParameters().setPluginClass(JvmLocalDistributor.class.getCanonicalName()); - - new SequentialContextInstantiation().testSequentialContextInstantiation(); - - logger.debug("Ran testSequentialContextInstantiationJVMLocalVarSet test"); - } - - @Test - public void testSequentialContextInstantiationJvmLocalVarNotSet() - throws ApexModelException, IOException, ApexException { - logger.debug("Running testSequentialContextInstantiationJVMLocalVarNotSet test . . ."); - - new ContextParameters(); - new SequentialContextInstantiation().testSequentialContextInstantiation(); - - logger.debug("Ran testSequentialContextInstantiationJVMLocalVarNotSet test"); - } -} diff --git a/context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/entities/ArtifactKeyTestEntityTest.java b/context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/entities/ArtifactKeyTestEntityTest.java deleted file mode 100644 index 486252517..000000000 --- a/context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/entities/ArtifactKeyTestEntityTest.java +++ /dev/null @@ -1,113 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2018 Ericsson. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.apex.context.test.entities; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; -import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey; -import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult; -import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult.ValidationResult; - -/** - * Test the AxArtifactKey test entity. - * - */ -public class ArtifactKeyTestEntityTest { - - @Test - public void testTestEntity() { - ArtifactKeyTestEntity testEntity = new ArtifactKeyTestEntity(); - - ArtifactKeyTestEntity testEntityCopy = new ArtifactKeyTestEntity(); - assertEquals(120390253, testEntityCopy.hashCode()); - - testEntity.setKey(null); - testEntity.copyTo(testEntityCopy); - assertTrue(testEntity.equals((testEntityCopy))); - assertFalse(testEntity.checkSetKey()); - AxArtifactKey key = new AxArtifactKey("TestKey", "0.0.1"); - - testEntity.setKey(key); - testEntity.clean(); - AxValidationResult result = testEntity.validate(new AxValidationResult()); - assertEquals(ValidationResult.VALID, result.getValidationResult()); - assertEquals(key, testEntity.getKey()); - assertEquals(key, testEntity.getKeys().get(0)); - assertEquals(key.getId(), testEntity.getId()); - assertEquals((Double) 0.0, (Double) testEntity.getDoubleValue()); - assertTrue(testEntity.checkSetKey()); - assertEquals((Double) 0.0, (Double) testEntity.getDoubleValue()); - testEntity.setDoubleValue(3.14); - assertEquals((Double) 3.14, (Double) testEntity.getDoubleValue()); - assertTrue(testEntity.checkSetKey()); - assertEquals("ArtifactKeyTestEntity [key=AxArtifactKey:(name=TestKey,version=0.0.1), doubleValue=3.14]", - testEntity.toString()); - ArtifactKeyTestEntity testEntityClone = new ArtifactKeyTestEntity(); - testEntity.copyTo(testEntityClone); - assertTrue(testEntity.equals(testEntity)); - assertTrue(testEntity.equals(testEntityClone)); - ArtifactKeyTestEntity testEntityNew = null; - testEntityNew = (ArtifactKeyTestEntity) testEntity.copyTo(testEntityNew); - assertTrue(testEntityNew.equals(testEntityNew)); - assertTrue(testEntity.equals(testEntityNew)); - ReferenceKeyTestEntity testEntityBad = new ReferenceKeyTestEntity(); - testEntityBad = (ReferenceKeyTestEntity) testEntity.copyTo(testEntityBad); - assertNull(testEntityBad); - - testEntityBad = new ReferenceKeyTestEntity(); - assertEquals(-1036664728, testEntity.hashCode()); - assertFalse(testEntity.equals(null)); - assertEquals(-1, testEntity.compareTo(null)); - assertTrue(testEntity.equals(testEntity)); - assertEquals(0, testEntity.compareTo(testEntity)); - assertFalse(testEntity.equals(testEntityBad)); - assertEquals(-1, testEntity.compareTo(testEntityBad)); - assertFalse(testEntityCopy.equals(testEntity)); - assertEquals(1, testEntityCopy.compareTo(testEntity)); - testEntityClone.setKey(key); - testEntityNew.setKey(AxArtifactKey.getNullKey()); - assertFalse(testEntityNew.equals(testEntityClone)); - assertEquals(-6, testEntityNew.compareTo(testEntityClone)); - testEntityClone.setKey(null); - testEntityNew.setKey(null); - assertTrue(testEntityNew.equals(testEntityClone)); - assertEquals(0, testEntityNew.compareTo(testEntityClone)); - testEntityCopy.setKey(AxArtifactKey.getNullKey()); - assertFalse(testEntityCopy.equals(testEntity)); - assertEquals(-6, testEntityCopy.compareTo(testEntity)); - testEntityClone.setKey(key); - testEntityClone.setDoubleValue(1.23); - assertFalse(testEntity.equals(testEntityClone)); - assertEquals(1, testEntity.compareTo(testEntityClone)); - - ArtifactKeyTestEntity entity2 = new ArtifactKeyTestEntity(3.14); - assertEquals((Double)3.14, (Double)entity2.getDoubleValue()); - ArtifactKeyTestEntity entity3 = new ArtifactKeyTestEntity(key, 3.14); - assertEquals(key, entity3.getKey()); - - entity3.setKey(null); - assertEquals(31, entity3.hashCode()); - } -} diff --git a/context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/entities/ReferenceTestEntityTest.java b/context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/entities/ReferenceTestEntityTest.java deleted file mode 100644 index ce9073431..000000000 --- a/context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/entities/ReferenceTestEntityTest.java +++ /dev/null @@ -1,114 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2018 Ericsson. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.apex.context.test.entities; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; -import org.onap.policy.apex.model.basicmodel.concepts.AxReferenceKey; -import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult; -import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult.ValidationResult; - -/** - * Test the AxArtifactKey test entity. - * - */ -public class ReferenceTestEntityTest { - - @Test - public void testTestEntity() { - ReferenceKeyTestEntity testEntity = new ReferenceKeyTestEntity(); - - ReferenceKeyTestEntity testEntityCopy = new ReferenceKeyTestEntity(); - assertEquals(-192063539, testEntityCopy.hashCode()); - - testEntity.setKey(null); - testEntity.copyTo(testEntityCopy); - assertTrue(testEntity.equals((testEntityCopy))); - assertFalse(testEntity.checkSetKey()); - AxReferenceKey key = new AxReferenceKey("TestKey", "0.0.1", "ParentLocalName", "LocalName"); - - testEntity.setKey(key); - testEntity.clean(); - AxValidationResult result = testEntity.validate(new AxValidationResult()); - assertEquals(ValidationResult.VALID, result.getValidationResult()); - assertEquals(key, testEntity.getKey()); - assertEquals(key, testEntity.getKeys().get(0)); - assertEquals(key.getId(), testEntity.getId()); - assertEquals((Double) 0.0, (Double) testEntity.getDoubleValue()); - assertTrue(testEntity.checkSetKey()); - assertEquals((Double) 0.0, (Double) testEntity.getDoubleValue()); - testEntity.setDoubleValue(3.14); - assertEquals((Double) 3.14, (Double) testEntity.getDoubleValue()); - assertTrue(testEntity.checkSetKey()); - assertEquals("ReferenceKeyTestEntity [key=AxReferenceKey:(parentKeyName=TestKey,parentKeyVersion=0.0.1," - + "parentLocalName=ParentLocalName,localName=LocalName), doubleValue=3.14]", - testEntity.toString()); - ReferenceKeyTestEntity testEntityClone = new ReferenceKeyTestEntity(); - testEntity.copyTo(testEntityClone); - assertTrue(testEntity.equals(testEntity)); - assertTrue(testEntity.equals(testEntityClone)); - ReferenceKeyTestEntity testEntityNew = null; - testEntityNew = (ReferenceKeyTestEntity) testEntity.copyTo(testEntityNew); - assertTrue(testEntityNew.equals(testEntityNew)); - assertTrue(testEntity.equals(testEntityNew)); - ArtifactKeyTestEntity testEntityBad = new ArtifactKeyTestEntity(); - testEntityBad = (ArtifactKeyTestEntity) testEntity.copyTo(testEntityBad); - assertNull(testEntityBad); - - testEntityBad = new ArtifactKeyTestEntity(); - assertEquals(-49094350, testEntity.hashCode()); - assertFalse(testEntity.equals(null)); - assertEquals(-1, testEntity.compareTo(null)); - assertTrue(testEntity.equals(testEntity)); - assertEquals(0, testEntity.compareTo(testEntity)); - assertFalse(testEntity.equals(testEntityBad)); - assertEquals(-1, testEntity.compareTo(testEntityBad)); - assertFalse(testEntityCopy.equals(testEntity)); - assertEquals(1, testEntityCopy.compareTo(testEntity)); - testEntityClone.setKey(key); - testEntityNew.setKey(AxReferenceKey.getNullKey()); - assertFalse(testEntityNew.equals(testEntityClone)); - assertEquals(-6, testEntityNew.compareTo(testEntityClone)); - testEntityClone.setKey(null); - testEntityNew.setKey(null); - assertTrue(testEntityNew.equals(testEntityClone)); - assertEquals(0, testEntityNew.compareTo(testEntityClone)); - testEntityCopy.setKey(AxReferenceKey.getNullKey()); - assertFalse(testEntityCopy.equals(testEntity)); - assertEquals(-6, testEntityCopy.compareTo(testEntity)); - testEntityClone.setKey(key); - testEntityClone.setDoubleValue(1.23); - assertFalse(testEntity.equals(testEntityClone)); - assertEquals(1, testEntity.compareTo(testEntityClone)); - - ReferenceKeyTestEntity entity2 = new ReferenceKeyTestEntity(3.14); - assertEquals((Double) 3.14, (Double) entity2.getDoubleValue()); - ReferenceKeyTestEntity entity3 = new ReferenceKeyTestEntity(key, 3.14); - assertEquals(key, entity3.getKey()); - - entity3.setKey(null); - assertEquals(31, entity3.hashCode()); - } -} diff --git a/context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/locking/ConcurrentContextTest.java b/context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/locking/ConcurrentContextTest.java deleted file mode 100644 index 7274f0d57..000000000 --- a/context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/locking/ConcurrentContextTest.java +++ /dev/null @@ -1,181 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.apex.context.test.locking; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.onap.policy.apex.context.test.lock.modifier.LockType.WRITE_LOCK_SINGLE_VALUE_UPDATE; -import static org.onap.policy.apex.context.test.utils.Constants.TEST_VALUE; - -import java.util.Map; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.onap.policy.apex.context.impl.distribution.jvmlocal.JvmLocalDistributor; -import org.onap.policy.apex.context.impl.locking.jvmlocal.JvmLocalLockManager; -import org.onap.policy.apex.context.impl.schema.java.JavaSchemaHelperParameters; -import org.onap.policy.apex.context.parameters.ContextParameterConstants; -import org.onap.policy.apex.context.parameters.ContextParameters; -import org.onap.policy.apex.context.parameters.SchemaParameters; -import org.onap.policy.apex.context.test.concepts.TestContextLongItem; -import org.onap.policy.apex.context.test.utils.ConfigrationProvider; -import org.onap.policy.apex.context.test.utils.ConfigrationProviderImpl; -import org.onap.policy.apex.context.test.utils.Constants; -import org.onap.policy.common.parameters.ParameterService; -import org.slf4j.ext.XLogger; -import org.slf4j.ext.XLoggerFactory; - -/** - * The Class TestConcurrentContext tests concurrent use of context. - * - * @author Liam Fallon (liam.fallon@ericsson.com) - */ -public class ConcurrentContextTest { - - // Logger for this class - private static final XLogger logger = XLoggerFactory.getXLogger(ConcurrentContextTest.class); - - // Test parameters - private static final int ALBUM_SIZE = 16; - private static final int TEST_JVM_COUNT_SINGLE_JVM = 1; - private static final int TEST_JVM_COUNT_MULTI_JVM = 3; - private static final int TEST_THREAD_COUNT_SINGLE_JVM = 64; - private static final int TEST_THREAD_COUNT_MULTI_JVM = 20; - private static final int TEST_THREAD_LOOPS = 100; - - private SchemaParameters schemaParameters; - private ContextParameters contextParameters; - - /** - * Set up context for tests. - */ - @Before - public void beforeTest() { - contextParameters = new ContextParameters(); - - contextParameters.setName(ContextParameterConstants.MAIN_GROUP_NAME); - contextParameters.getDistributorParameters().setName(ContextParameterConstants.DISTRIBUTOR_GROUP_NAME); - contextParameters.getLockManagerParameters().setName(ContextParameterConstants.LOCKING_GROUP_NAME); - contextParameters.getPersistorParameters().setName(ContextParameterConstants.PERSISTENCE_GROUP_NAME); - - ParameterService.register(contextParameters); - ParameterService.register(contextParameters.getDistributorParameters()); - ParameterService.register(contextParameters.getLockManagerParameters()); - ParameterService.register(contextParameters.getPersistorParameters()); - - schemaParameters = new SchemaParameters(); - schemaParameters.setName(ContextParameterConstants.SCHEMA_GROUP_NAME); - schemaParameters.getSchemaHelperParameterMap().put("JAVA", new JavaSchemaHelperParameters()); - - ParameterService.register(schemaParameters); - } - - /** - * Clear down context for tests. - */ - @After - public void afterTest() { - ParameterService.deregister(schemaParameters); - - ParameterService.deregister(contextParameters.getDistributorParameters()); - ParameterService.deregister(contextParameters.getLockManagerParameters()); - ParameterService.deregister(contextParameters.getPersistorParameters()); - ParameterService.deregister(contextParameters); - } - - @Test - public void testConcurrentContextJvmLocalVarSet() throws Exception { - logger.debug("Running testConcurrentContextJVMLocalVarSet test . . ."); - - contextParameters.getLockManagerParameters().setPluginClass(JvmLocalLockManager.class.getCanonicalName()); - - final ConfigrationProvider configrationProvider = getConfigrationProvider("JVMLocalVarSet", - TEST_JVM_COUNT_SINGLE_JVM, TEST_THREAD_COUNT_SINGLE_JVM, TEST_THREAD_LOOPS); - - final ConcurrentContext concurrentContext = new ConcurrentContext(configrationProvider); - final Map result = concurrentContext.testConcurrentContext(); - - assertFalse(result.isEmpty()); - final int expected = TEST_JVM_COUNT_SINGLE_JVM * TEST_THREAD_COUNT_SINGLE_JVM * TEST_THREAD_LOOPS; - final TestContextLongItem actual = result.get(TEST_VALUE); - assertNotNull(actual); - assertEquals(expected, actual.getLongValue()); - - - logger.debug("Ran testConcurrentContextJVMLocalVarSet test"); - } - - @Test - public void testConcurrentContextJvmLocalNoVarSet() throws Exception { - logger.debug("Running testConcurrentContextJVMLocalNoVarSet test . . ."); - - final ConfigrationProvider configrationProvider = getConfigrationProvider("JVMLocalNoVarSet", - TEST_JVM_COUNT_SINGLE_JVM, TEST_THREAD_COUNT_SINGLE_JVM, TEST_THREAD_LOOPS); - - final ConcurrentContext concurrentContext = new ConcurrentContext(configrationProvider); - final Map result = concurrentContext.testConcurrentContext(); - - assertFalse(result.isEmpty()); - final int expected = TEST_JVM_COUNT_SINGLE_JVM * TEST_THREAD_COUNT_SINGLE_JVM * TEST_THREAD_LOOPS; - final TestContextLongItem actual = result.get(TEST_VALUE); - assertNotNull(actual); - assertEquals(expected, actual.getLongValue()); - - logger.debug("Ran testConcurrentContextJVMLocalNoVarSet test"); - } - - @Test - public void testConcurrentContextMultiJvmNoLock() throws Exception { - logger.debug("Running testConcurrentContextMultiJVMNoLock test . . ."); - - contextParameters.getDistributorParameters().setPluginClass(JvmLocalDistributor.class.getCanonicalName()); - contextParameters.getLockManagerParameters().setPluginClass(JvmLocalLockManager.class.getCanonicalName()); - - final ConfigrationProvider configrationProvider = getConfigrationProvider("testConcurrentContextMultiJVMNoLock", - TEST_JVM_COUNT_MULTI_JVM, TEST_THREAD_COUNT_MULTI_JVM, TEST_THREAD_LOOPS); - - final ConcurrentContext concurrentContext = new ConcurrentContext(configrationProvider); - final Map result = concurrentContext.testConcurrentContext(); - - // No concurrent map so result will be zero - assertFalse(result.isEmpty()); - final TestContextLongItem actual = result.get(TEST_VALUE); - assertNotNull(actual); - assertEquals(0, actual.getLongValue()); - - logger.debug("Ran testConcurrentContextMultiJVMNoLock test"); - } - - private ConfigrationProvider getConfigrationProvider(final String testType, final int jvmCount, - final int threadCount, final int threadLoops) { - return new ConfigrationProviderImpl(testType, jvmCount, threadCount, threadLoops, ALBUM_SIZE, - WRITE_LOCK_SINGLE_VALUE_UPDATE.getValue()) { - @Override - public Map getContextAlbumInitValues() { - final Map initValues = super.getContextAlbumInitValues(); - initValues.put(Constants.TEST_VALUE, new TestContextLongItem(0L)); - return initValues; - } - }; - } -} diff --git a/context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/persistence/PersistentContextInstantiationTest.java b/context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/persistence/PersistentContextInstantiationTest.java deleted file mode 100644 index 6bd4a4d41..000000000 --- a/context/context-test-utils/src/test/java/org/onap/policy/apex/context/test/persistence/PersistentContextInstantiationTest.java +++ /dev/null @@ -1,224 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.apex.context.test.persistence; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -import java.io.File; -import java.io.IOException; -import java.sql.Connection; -import java.sql.DriverManager; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; -import java.util.TimeZone; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.onap.policy.apex.context.ContextAlbum; -import org.onap.policy.apex.context.Distributor; -import org.onap.policy.apex.context.impl.distribution.DistributorFactory; -import org.onap.policy.apex.context.impl.schema.java.JavaSchemaHelperParameters; -import org.onap.policy.apex.context.parameters.ContextParameterConstants; -import org.onap.policy.apex.context.parameters.ContextParameters; -import org.onap.policy.apex.context.parameters.SchemaParameters; -import org.onap.policy.apex.context.test.concepts.TestContextDateItem; -import org.onap.policy.apex.context.test.concepts.TestContextDateLocaleItem; -import org.onap.policy.apex.context.test.concepts.TestContextLongItem; -import org.onap.policy.apex.context.test.concepts.TestContextTreeMapItem; -import org.onap.policy.apex.context.test.factory.TestContextAlbumFactory; -import org.onap.policy.apex.model.basicmodel.concepts.ApexException; -import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey; -import org.onap.policy.apex.model.basicmodel.dao.ApexDao; -import org.onap.policy.apex.model.basicmodel.dao.ApexDaoFactory; -import org.onap.policy.apex.model.basicmodel.dao.DaoParameters; -import org.onap.policy.apex.model.basicmodel.handling.ApexModelException; -import org.onap.policy.apex.model.contextmodel.concepts.AxContextAlbum; -import org.onap.policy.apex.model.contextmodel.concepts.AxContextModel; -import org.onap.policy.common.parameters.ParameterService; - -/** - * The Class TestContextInstantiation. - * - * @author Sergey Sachkov (sergey.sachkov@ericsson.com) - */ -public class PersistentContextInstantiationTest { - // Logger for this class - // private static final XLogger logger = - // XLoggerFactory.getXLogger(TestPersistentContextInstantiation.class); - - private Connection connection; - private SchemaParameters schemaParameters; - private ContextParameters contextParameters; - - @Before - public void setup() throws Exception { - Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance(); - connection = DriverManager.getConnection("jdbc:derby:memory:apex_test;create=true"); - } - - @After - public void teardown() throws Exception { - connection.close(); - new File("derby.log").delete(); - } - - /** - * Set up context for tests. - */ - @Before - public void beforeTest() { - contextParameters = new ContextParameters(); - - contextParameters.setName(ContextParameterConstants.MAIN_GROUP_NAME); - contextParameters.getDistributorParameters().setName(ContextParameterConstants.DISTRIBUTOR_GROUP_NAME); - contextParameters.getLockManagerParameters().setName(ContextParameterConstants.LOCKING_GROUP_NAME); - contextParameters.getPersistorParameters().setName(ContextParameterConstants.PERSISTENCE_GROUP_NAME); - - ParameterService.register(contextParameters); - ParameterService.register(contextParameters.getDistributorParameters()); - ParameterService.register(contextParameters.getLockManagerParameters()); - ParameterService.register(contextParameters.getPersistorParameters()); - - schemaParameters = new SchemaParameters(); - schemaParameters.setName(ContextParameterConstants.SCHEMA_GROUP_NAME); - schemaParameters.getSchemaHelperParameterMap().put("JAVA", new JavaSchemaHelperParameters()); - - ParameterService.register(schemaParameters); - } - - /** - * Clear down context for tests. - */ - @After - public void afterTest() { - ParameterService.deregister(schemaParameters); - - ParameterService.deregister(contextParameters.getDistributorParameters()); - ParameterService.deregister(contextParameters.getLockManagerParameters()); - ParameterService.deregister(contextParameters.getPersistorParameters()); - ParameterService.deregister(contextParameters); - } - - @Test - public void testContextPersistentInstantiation() throws ApexModelException, IOException, ApexException { - - final AxArtifactKey distributorKey = new AxArtifactKey("AbstractDistributor", "0.0.1"); - final Distributor contextDistributor = new DistributorFactory().getDistributor(distributorKey); - - final AxArtifactKey[] usedArtifactStackArray = { - new AxArtifactKey("testC-top", "0.0.1"), - new AxArtifactKey("testC-next", "0.0.1"), - new AxArtifactKey("testC-bot", "0.0.1") - }; - - final DaoParameters DaoParameters = new DaoParameters(); - DaoParameters.setPluginClass("org.onap.policy.apex.model.basicmodel.dao.impl.DefaultApexDao"); - DaoParameters.setPersistenceUnit("DAOTest"); - final ApexDao apexDao = new ApexDaoFactory().createApexDao(DaoParameters); - apexDao.init(DaoParameters); - - final AxContextModel someContextModel = TestContextAlbumFactory.createMultiAlbumsContextModel(); - - // Context for Storing Map values - final AxContextAlbum axContextAlbumForMap = someContextModel.getAlbums().getAlbumsMap() - .get(new AxArtifactKey("MapContextAlbum", "0.0.1")); - apexDao.create(axContextAlbumForMap); - contextDistributor.registerModel(someContextModel); - final ContextAlbum contextAlbumForMap = contextDistributor.createContextAlbum(axContextAlbumForMap.getKey()); - assertNotNull(contextAlbumForMap); - contextAlbumForMap.setUserArtifactStack(usedArtifactStackArray); - - final Map testMap = new HashMap(); - testMap.put("key", "This is a policy context string"); - - final Map valueMap0 = new HashMap(); - valueMap0.put("TestPolicyContextItem000", new TestContextTreeMapItem(testMap)); - - contextAlbumForMap.putAll(valueMap0); - - assertEquals("This is a policy context string", - ((TestContextTreeMapItem) contextAlbumForMap.get("TestPolicyContextItem000")).getMapValue() - .get("key")); - - contextAlbumForMap.flush(); - - // Context for Storing Date values - final AxContextAlbum axContextAlbumForDate = someContextModel.getAlbums().getAlbumsMap() - .get(new AxArtifactKey("DateContextAlbum", "0.0.1")); - apexDao.create(axContextAlbumForDate); - contextDistributor.registerModel(someContextModel); - final ContextAlbum contextAlbumForDate = contextDistributor.createContextAlbum(axContextAlbumForDate.getKey()); - assertNotNull(contextAlbumForDate); - contextAlbumForDate.setUserArtifactStack(usedArtifactStackArray); - - final TestContextDateItem testDate = new TestContextDateItem(new Date()); - final TestContextDateLocaleItem tci00A = new TestContextDateLocaleItem(); - tci00A.setDateValue(testDate); - tci00A.setTzValue(TimeZone.getTimeZone("Europe/Dublin").toString()); - tci00A.setDst(true); - - final Map valueMap1 = new HashMap(); - valueMap1.put("TestPolicyContextItem00A", tci00A); - - contextAlbumForDate.putAll(valueMap1); - - assertEquals(testDate, ((TestContextDateLocaleItem) contextAlbumForDate.get("TestPolicyContextItem00A")) - .getDateValue()); - assertEquals(true, ((TestContextDateLocaleItem) contextAlbumForDate.get("TestPolicyContextItem00A")).getDst()); - - contextAlbumForDate.flush(); - - // Context for Storing Long values - final AxContextAlbum axContextAlbumForLong = someContextModel.getAlbums().getAlbumsMap() - .get(new AxArtifactKey("LTypeContextAlbum", "0.0.1")); - apexDao.create(axContextAlbumForLong); - contextDistributor.registerModel(someContextModel); - final ContextAlbum contextAlbumForLong = contextDistributor.createContextAlbum(axContextAlbumForLong.getKey()); - assertNotNull(contextAlbumForLong); - contextAlbumForLong.setUserArtifactStack(usedArtifactStackArray); - - final Map valueMap2 = new HashMap(); - valueMap2.put("TestPolicyContextItem0031", new TestContextLongItem(0xFFFFFFFFFFFFFFFFL)); - valueMap2.put("TestPolicyContextItem0032", new TestContextLongItem(0xFFFFFFFFFFFFFFFEL)); - valueMap2.put("TestPolicyContextItem0033", new TestContextLongItem(0xFFFFFFFFFFFFFFFDL)); - valueMap2.put("TestPolicyContextItem0034", new TestContextLongItem(0xFFFFFFFFFFFFFFFCL)); - valueMap2.put("TestPolicyContextItem0035", new TestContextLongItem(0xFFFFFFFFFFFFFFFBL)); - - contextAlbumForLong.putAll(valueMap2); - - assertEquals(0xFFFFFFFFFFFFFFFFL, - ((TestContextLongItem) contextAlbumForLong.get("TestPolicyContextItem0031")).getLongValue()); - assertEquals(0xFFFFFFFFFFFFFFFEL, - ((TestContextLongItem) contextAlbumForLong.get("TestPolicyContextItem0032")).getLongValue()); - assertEquals(0xFFFFFFFFFFFFFFFDL, - ((TestContextLongItem) contextAlbumForLong.get("TestPolicyContextItem0033")).getLongValue()); - assertEquals(0xFFFFFFFFFFFFFFFCL, - ((TestContextLongItem) contextAlbumForLong.get("TestPolicyContextItem0034")).getLongValue()); - assertEquals(0xFFFFFFFFFFFFFFFBL, - ((TestContextLongItem) contextAlbumForLong.get("TestPolicyContextItem0035")).getLongValue()); - - contextAlbumForLong.flush(); - contextDistributor.clear(); - } -} diff --git a/context/pom.xml b/context/pom.xml index b4c78c69d..a41e6b51b 100644 --- a/context/pom.xml +++ b/context/pom.xml @@ -1,6 +1,7 @@ + org.apache.zookeeper zookeeper - 3.5.4-beta + 3.4.13 diff --git a/plugins/plugins-context/plugins-context-locking/plugins-context-locking-curator/src/main/java/org/onap/policy/apex/plugins/context/locking/curator/CuratorLockManager.java b/plugins/plugins-context/plugins-context-locking/plugins-context-locking-curator/src/main/java/org/onap/policy/apex/plugins/context/locking/curator/CuratorLockManager.java index bc8ce9055..ce727b8bf 100644 --- a/plugins/plugins-context/plugins-context-locking/plugins-context-locking-curator/src/main/java/org/onap/policy/apex/plugins/context/locking/curator/CuratorLockManager.java +++ b/plugins/plugins-context/plugins-context-locking/plugins-context-locking-curator/src/main/java/org/onap/policy/apex/plugins/context/locking/curator/CuratorLockManager.java @@ -1,19 +1,20 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. + * Modifications Copyright (C) 2019 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * + * * SPDX-License-Identifier: Apache-2.0 * ============LICENSE_END========================================================= */ @@ -32,6 +33,8 @@ import org.apache.curator.utils.CloseableUtils; import org.apache.zookeeper.CreateMode; import org.onap.policy.apex.context.ContextException; import org.onap.policy.apex.context.impl.locking.AbstractLockManager; +import org.onap.policy.apex.context.parameters.ContextParameterConstants; +import org.onap.policy.apex.context.parameters.LockManagerParameters; import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey; import org.onap.policy.common.parameters.ParameterService; import org.slf4j.ext.XLogger; @@ -75,11 +78,19 @@ public class CuratorLockManager extends AbstractLockManager { super.init(key); // Get the lock manager parameters - final CuratorLockManagerParameters lockParameters = ParameterService - .get(CuratorLockManagerParameters.class.getSimpleName()); + final LockManagerParameters lockParameters = ParameterService.get(ContextParameterConstants.LOCKING_GROUP_NAME); + + if (!(lockParameters instanceof CuratorLockManagerParameters)) { + String message = "could not set up Curator locking, " + + "curator lock manager parameters are not set"; + LOGGER.warn(message); + throw new ContextException(message); + } + + final CuratorLockManagerParameters curatorLockPars = (CuratorLockManagerParameters)lockParameters; // Check if the curator address has been set - curatorZookeeperAddress = lockParameters.getZookeeperAddress(); + curatorZookeeperAddress = curatorLockPars.getZookeeperAddress(); if (curatorZookeeperAddress == null || curatorZookeeperAddress.trim().length() == 0) { String message = "could not set up Curator locking, " + "check if the curator Zookeeper address parameter is set correctly"; @@ -89,8 +100,8 @@ public class CuratorLockManager extends AbstractLockManager { // Set up the curator framework we'll use curatorFramework = CuratorFrameworkFactory.builder().connectString(curatorZookeeperAddress) - .retryPolicy(new ExponentialBackoffRetry(lockParameters.getZookeeperConnectSleepTime(), - lockParameters.getZookeeperContextRetries())) + .retryPolicy(new ExponentialBackoffRetry(curatorLockPars.getZookeeperConnectSleepTime(), + curatorLockPars.getZookeeperContextRetries())) .build(); // Listen for changes on the Curator connection @@ -102,8 +113,8 @@ public class CuratorLockManager extends AbstractLockManager { // Wait for the connection to be made try { curatorFramework.blockUntilConnected( - lockParameters.getZookeeperConnectSleepTime() * lockParameters.getZookeeperContextRetries(), - TimeUnit.MILLISECONDS); + curatorLockPars.getZookeeperConnectSleepTime() * curatorLockPars.getZookeeperContextRetries(), + TimeUnit.MILLISECONDS); } catch (final InterruptedException e) { // restore the interrupt status Thread.currentThread().interrupt(); @@ -123,7 +134,7 @@ public class CuratorLockManager extends AbstractLockManager { // We'll use Ephemeral nodes for locks on the Zookeeper server curatorFramework.create().withMode(CreateMode.EPHEMERAL_SEQUENTIAL); - LOGGER.exit("init(" + key + "," + lockParameters + ")"); + LOGGER.exit("init(" + key + "," + curatorLockPars + ")"); } /* diff --git a/plugins/plugins-context/plugins-context-locking/plugins-context-locking-curator/src/main/java/org/onap/policy/apex/plugins/context/locking/curator/CuratorLockManagerParameters.java b/plugins/plugins-context/plugins-context-locking/plugins-context-locking-curator/src/main/java/org/onap/policy/apex/plugins/context/locking/curator/CuratorLockManagerParameters.java index ac936d436..39972a7f1 100644 --- a/plugins/plugins-context/plugins-context-locking/plugins-context-locking-curator/src/main/java/org/onap/policy/apex/plugins/context/locking/curator/CuratorLockManagerParameters.java +++ b/plugins/plugins-context/plugins-context-locking/plugins-context-locking-curator/src/main/java/org/onap/policy/apex/plugins/context/locking/curator/CuratorLockManagerParameters.java @@ -1,19 +1,20 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. + * Modifications Copyright (C) 2019 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * + * * SPDX-License-Identifier: Apache-2.0 * ============LICENSE_END========================================================= */ @@ -30,7 +31,7 @@ import org.onap.policy.apex.context.parameters.LockManagerParameters; public class CuratorLockManagerParameters extends LockManagerParameters { // @formatter:off /** The default address used to connect to the Zookeeper server. */ - public static final String DEFAULT_ZOOKEEPER_ADDRESS = "localhost:2181"; + public static final String DEFAULT_ZOOKEEPER_ADDRESS = "localhost:2181"; /** The default sleep time to use when connecting to the Zookeeper server. */ public static final int DEFAULT_ZOOKEEPER_CONNECT_SLEEP_TIME = 1000; diff --git a/plugins/plugins-persistence/plugins-persistence-jpa/plugins-persistence-jpa-hibernate/pom.xml b/plugins/plugins-persistence/plugins-persistence-jpa/plugins-persistence-jpa-hibernate/pom.xml index 2343a3ab8..ae2def8d2 100644 --- a/plugins/plugins-persistence/plugins-persistence-jpa/plugins-persistence-jpa-hibernate/pom.xml +++ b/plugins/plugins-persistence/plugins-persistence-jpa/plugins-persistence-jpa-hibernate/pom.xml @@ -1,23 +1,17 @@ - - + + 4.0.0 org.onap.policy.apex-pdp.plugins.plugins-persistence.plugins-persistence-jpa @@ -72,6 +66,17 @@ org.hibernate hibernate-c3p0 ${version.hibernate} + + + com.mchange + c3p0 + + + + + com.mchange + c3p0 + 0.9.5.3 diff --git a/pom.xml b/pom.xml index 147cefdbd..749566459 100644 --- a/pom.xml +++ b/pom.xml @@ -43,7 +43,7 @@ 1.4 1.1.1 2.26 - 5.3.6.Final + 5.3.7.Final 1.4.0-SNAPSHOT diff --git a/testsuites/integration/integration-context-test/pom.xml b/testsuites/integration/integration-context-test/pom.xml index 239bc684d..f8a96fd12 100644 --- a/testsuites/integration/integration-context-test/pom.xml +++ b/testsuites/integration/integration-context-test/pom.xml @@ -1,6 +1,7 @@ - - - 4.0.0 - - org.onap.policy.apex-pdp.testsuites.performance - performance - 2.1.0-SNAPSHOT - - - performance-context-metrics - ${project.artifactId} - [${project.parent.artifactId}] module to calculate metrics using various plugins - - - - org.onap.policy.common - utils - - - org.onap.policy.apex-pdp.core - core-infrastructure - ${project.version} - - - org.onap.policy.apex-pdp.context - context-test-utils - ${project.version} - - - org.onap.policy.apex-pdp.plugins.plugins-context.plugins-context-distribution - plugins-context-distribution-hazelcast - ${project.version} - - - org.onap.policy.apex-pdp.plugins.plugins-context.plugins-context-distribution - plugins-context-distribution-infinispan - ${project.version} - - - org.onap.policy.apex-pdp.plugins.plugins-context.plugins-context-locking - plugins-context-locking-curator - ${project.version} - - - org.onap.policy.apex-pdp.plugins.plugins-context.plugins-context-locking - plugins-context-locking-hazelcast - ${project.version} - - - org.apache.curator - curator-test - 3.2.0 - test - - - - - - apexSite - - - apexSite - - - - - ${project.artifactId}-site - ${apex.adsite.prefix}/modules/testsuites/${project.parent.artifactId}/${project.artifactId}/ - - - - - \ No newline at end of file diff --git a/testsuites/performance/performance-context-metrics/src/main/java/org/onap/policy/apex/testsuites/performance/context/metrics/ConcurrentContextMetrics.java b/testsuites/performance/performance-context-metrics/src/main/java/org/onap/policy/apex/testsuites/performance/context/metrics/ConcurrentContextMetrics.java deleted file mode 100644 index b0bfb1ce7..000000000 --- a/testsuites/performance/performance-context-metrics/src/main/java/org/onap/policy/apex/testsuites/performance/context/metrics/ConcurrentContextMetrics.java +++ /dev/null @@ -1,322 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.apex.testsuites.performance.context.metrics; - -import static org.onap.policy.apex.context.parameters.DistributorParameters.DEFAULT_DISTRIBUTOR_PLUGIN_CLASS; -import static org.onap.policy.apex.context.parameters.LockManagerParameters.DEFAULT_LOCK_MANAGER_PLUGIN_CLASS; - -import java.io.File; -import java.io.IOException; -import java.util.Arrays; -import java.util.Map; -import java.util.Map.Entry; - -import org.onap.policy.apex.context.parameters.ContextParameters; -import org.onap.policy.apex.context.parameters.DistributorParameters; -import org.onap.policy.apex.context.test.concepts.TestContextLongItem; -import org.onap.policy.apex.context.test.locking.ConcurrentContext; -import org.onap.policy.apex.context.test.utils.ConfigrationProvider; -import org.onap.policy.apex.context.test.utils.ConfigrationProviderImpl; -import org.onap.policy.apex.context.test.utils.ZooKeeperServerServiceProvider; -import org.onap.policy.apex.model.basicmodel.concepts.ApexException; -import org.onap.policy.apex.model.basicmodel.handling.ApexModelException; -import org.onap.policy.apex.plugins.context.distribution.hazelcast.HazelcastContextDistributor; -import org.onap.policy.apex.plugins.context.distribution.infinispan.InfinispanContextDistributor; -import org.onap.policy.apex.plugins.context.distribution.infinispan.InfinispanDistributorParameters; -import org.onap.policy.apex.plugins.context.locking.curator.CuratorLockManager; -import org.onap.policy.apex.plugins.context.locking.curator.CuratorLockManagerParameters; -import org.onap.policy.apex.plugins.context.locking.hazelcast.HazelcastLockManager; -import org.slf4j.ext.XLogger; -import org.slf4j.ext.XLoggerFactory; - -/** - * The Class concurrentContextMetrics tests concurrent use of context. - * - * @author Liam Fallon (liam.fallon@ericsson.com) - */ -public class ConcurrentContextMetrics { - private static final int NUM_ARGS = 9; - private static final int ARG_LABEL = 0; - private static final int ARG_JVM_COUNT = 1; - private static final int ARG_THREAD_COUNT = 2; - private static final int ARG_ITERATIONS = 3; - private static final int ARG_ARRAY_SIZE = 4; - private static final int ARG_LOCK_TYPE = 5; - private static final int ARG_ZOOKEEPER_ADDRESS = 6; - private static final int ARG_ZOOKEEPER_PORT = 7; - private static final int ARG_ZOOKEEPER_DIRECTORY = 8; - - // Logger for this class - private static final XLogger LOGGER = XLoggerFactory.getXLogger(ConcurrentContextMetrics.class); - - private String zookeeperAddress = null; - private final ConfigrationProvider configrationProvider; - private final File zookeeperDirectory; - private final int zookeeperPort; - - /** - * Construct a concurrent context object. - * - * @param configrationProvider Configuration for the context metrics - * @param zookeeperAddress Zookeeper address - * @param zookeeperPort Zookeeper port - * @param zookeeperDirectory Zookeeper directory - */ - public ConcurrentContextMetrics(final ConfigrationProvider configrationProvider, final String zookeeperAddress, - final int zookeeperPort, final String zookeeperDirectory) { - this.configrationProvider = configrationProvider; - this.zookeeperAddress = zookeeperAddress; - this.zookeeperPort = zookeeperPort; - this.zookeeperDirectory = new File(zookeeperDirectory); - } - - /** - * Concurrent context metrics JVM local. - * - * @throws ApexModelException the apex model exception - * @throws IOException the IO exception - * @throws ApexException the apex exception - */ - private void concurrentContextMetricsJvmLocal() throws ApexException { - if (configrationProvider.getJvmCount() != 1) { - return; - } - - LOGGER.debug("Running concurrentContextMetricsJVMLocalVarSet metrics . . ."); - - final ContextParameters contextParameters = new ContextParameters(); - contextParameters.getDistributorParameters().setPluginClass(DEFAULT_DISTRIBUTOR_PLUGIN_CLASS); - contextParameters.getLockManagerParameters().setPluginClass(DEFAULT_LOCK_MANAGER_PLUGIN_CLASS); - runConcurrentContextMetrics("JVMLocal"); - - LOGGER.debug("Ran concurrentContextMetricsJVMLocalVarSet metrics"); - } - - /** - * Concurrent context metrics hazelcast. - * - * @throws IOException the IO exception - * @throws ApexException the apex exception - */ - private void concurrentContextMetricsHazelcast() throws ApexException { - if (configrationProvider.getJvmCount() != 1) { - return; - } - - LOGGER.debug("Running concurrentContextMetricsHazelcast metrics . . ."); - - final ContextParameters contextParameters = new ContextParameters(); - contextParameters.getDistributorParameters().setPluginClass(DEFAULT_DISTRIBUTOR_PLUGIN_CLASS); - contextParameters.getLockManagerParameters().setPluginClass(HazelcastLockManager.class.getCanonicalName()); - runConcurrentContextMetrics("Hazelcast"); - - LOGGER.debug("Ran concurrentContextMetricsHazelcast metrics"); - } - - /** - * Concurrent context metrics curator. - * - * @throws IOException the IO exception - * @throws ApexException the apex exception - */ - private void concurrentContextMetricsCurator() throws ApexException { - if (configrationProvider.getJvmCount() != 1) { - return; - } - - LOGGER.debug("Running concurrentContextMetricsCurator metrics . . ."); - - final ContextParameters contextParameters = new ContextParameters(); - contextParameters.getDistributorParameters().setPluginClass(DEFAULT_DISTRIBUTOR_PLUGIN_CLASS); - - final CuratorLockManagerParameters curatorParameters = new CuratorLockManagerParameters(); - curatorParameters.setPluginClass(CuratorLockManager.class.getCanonicalName()); - contextParameters.setLockManagerParameters(curatorParameters); - curatorParameters.setZookeeperAddress(zookeeperAddress); - - runConcurrentContextMetrics("Curator"); - - LOGGER.debug("Ran concurrentContextMetricsCurator metrics"); - } - - /** - * Concurrent context metrics hazelcast multi JVM hazelcast lock. - * - * @throws IOException the IO exception - * @throws ApexException the apex exception - */ - private void concurrentContextMetricsHazelcastMultiJvmHazelcastLock() throws ApexException { - LOGGER.debug("Running concurrentContextMetricsHazelcastMultiJVMHazelcastLock metrics . . ."); - - final ContextParameters contextParameters = new ContextParameters(); - final DistributorParameters distributorParameters = contextParameters.getDistributorParameters(); - distributorParameters.setPluginClass(HazelcastContextDistributor.class.getCanonicalName()); - contextParameters.getLockManagerParameters().setPluginClass(HazelcastLockManager.class.getCanonicalName()); - runConcurrentContextMetrics("HazelcastMultiJVMHazelcastLock"); - - LOGGER.debug("Ran concurrentContextMetricsHazelcastMultiJVMHazelcastLock metrics"); - } - - /** - * Concurrent context metrics infinispan multi JVM hazelcastlock. - * - * @throws IOException the IO exception - * @throws ApexException the apex exception - */ - private void concurrentContextMetricsInfinispanMultiJvmHazelcastlock() throws ApexException { - LOGGER.debug("Running concurrentContextMetricsInfinispanMultiJVMHazelcastlock metrics . . ."); - - final ContextParameters contextParameters = new ContextParameters(); - final DistributorParameters distributorParameters = contextParameters.getDistributorParameters(); - distributorParameters.setPluginClass(InfinispanContextDistributor.class.getCanonicalName()); - contextParameters.getLockManagerParameters().setPluginClass(HazelcastLockManager.class.getCanonicalName()); - - final InfinispanDistributorParameters infinispanParameters = new InfinispanDistributorParameters(); - contextParameters.setDistributorParameters(infinispanParameters); - - runConcurrentContextMetrics("InfinispanMultiJVMHazelcastlock"); - - LOGGER.debug("Ran concurrentContextMetricsInfinispanMultiJVMHazelcastlock metrics"); - } - - /** - * Concurrent context metrics infinispan multi JVM curator lock. - * - * @throws IOException the IO exception - * @throws ApexException the apex exception - * @throws InterruptedException on interrupts - */ - private void concurrentContextMetricsInfinispanMultiJvmCuratorLock() - throws ApexException { - - LOGGER.debug("Running concurrentContextMetricsInfinispanMultiJVMCuratorLock metrics . . ."); - - final ZooKeeperServerServiceProvider zooKeeperServerServiceProvider = new ZooKeeperServerServiceProvider( - zookeeperDirectory, zookeeperAddress, zookeeperPort); - try { - zooKeeperServerServiceProvider.startZookeeperServer(); - final ContextParameters contextParameters = new ContextParameters(); - final DistributorParameters distributorParameters = contextParameters.getDistributorParameters(); - distributorParameters.setPluginClass(InfinispanContextDistributor.class.getCanonicalName()); - - final CuratorLockManagerParameters curatorParameters = new CuratorLockManagerParameters(); - curatorParameters.setPluginClass(CuratorLockManager.class.getCanonicalName()); - contextParameters.setLockManagerParameters(curatorParameters); - curatorParameters.setZookeeperAddress(zookeeperAddress); - - final InfinispanDistributorParameters infinispanParameters = new InfinispanDistributorParameters(); - contextParameters.setDistributorParameters(infinispanParameters); - - runConcurrentContextMetrics("InfinispanMultiJVMCuratorLock"); - } finally { - zooKeeperServerServiceProvider.stopZookeeperServer(); - } - LOGGER.debug("Ran concurrentContextMetricsInfinispanMultiJVMCuratorLock metrics"); - } - - /** - * Concurrent context metrics hazelcast multi JVM curator lock. - * - * @throws IOException the IO exception - * @throws ApexException the apex exception - * @throws InterruptedException on interrupts - */ - private void concurrentContextMetricsHazelcastMultiJvmCuratorLock() - throws ApexException { - LOGGER.debug("Running concurrentContextMetricsHazelcastMultiJVMCuratorLock metrics . . ."); - - final ZooKeeperServerServiceProvider zooKeeperServerServiceProvider = new ZooKeeperServerServiceProvider( - zookeeperDirectory, zookeeperAddress, zookeeperPort); - - try { - zooKeeperServerServiceProvider.startZookeeperServer(); - final ContextParameters contextParameters = new ContextParameters(); - final DistributorParameters distributorParameters = contextParameters.getDistributorParameters(); - distributorParameters.setPluginClass(HazelcastContextDistributor.class.getCanonicalName()); - - final CuratorLockManagerParameters curatorParameters = new CuratorLockManagerParameters(); - curatorParameters.setPluginClass(CuratorLockManager.class.getCanonicalName()); - contextParameters.setLockManagerParameters(curatorParameters); - curatorParameters.setZookeeperAddress(zookeeperAddress); - - runConcurrentContextMetrics("HazelcastMultiJVMCuratorLock"); - } finally { - zooKeeperServerServiceProvider.stopZookeeperServer(); - } - LOGGER.debug("Ran concurrentContextMetricsHazelcastMultiJVMCuratorLock metrics"); - } - - /** - * Run concurrent context metrics. - * - * @param testName the test name - * @throws IOException the IO exception - * @throws ApexException the apex exception - */ - private void runConcurrentContextMetrics(final String testName) throws ApexException { - final ConcurrentContext concurrentContext = new ConcurrentContext(configrationProvider); - - LOGGER.info("Running {} ...", testName); - final Map result = concurrentContext.testConcurrentContext(); - - long total = 0; - for (final Entry entry : result.entrySet()) { - LOGGER.trace("Album key: {}, value: {}", entry.getKey(), entry.getValue()); - total += entry.getValue().getLongValue(); - } - LOGGER.info("Album total value after execution: {}", total); - - LOGGER.info("Completed {} ...", testName); - } - - /** - * The main method. - * - * @param args the args - * @throws Exception the exception - */ - public static void main(final String[] args) throws Exception { - if (args.length != NUM_ARGS) { - String errorMessage = "Args: " + Arrays.toString(args) - + "\nusage: testLabel jvmCount threadCount threadLoops longArraySize lockType " - + "zookeeperAddress zookeeperPort zookeeperDirectory"; - LOGGER.info(errorMessage); - return; - } - - final ConfigrationProvider configrationProvider = new ConfigrationProviderImpl(args[ARG_LABEL], - Integer.valueOf(args[ARG_JVM_COUNT]), Integer.valueOf(args[ARG_THREAD_COUNT]), - Integer.valueOf(args[ARG_ITERATIONS]), Integer.valueOf(args[ARG_ARRAY_SIZE]), - Integer.valueOf(args[ARG_LOCK_TYPE])); - - final ConcurrentContextMetrics concurrentContextMetrics = new ConcurrentContextMetrics(configrationProvider, - args[ARG_ZOOKEEPER_ADDRESS], Integer.valueOf(args[ARG_ZOOKEEPER_PORT]), - args[ARG_ZOOKEEPER_DIRECTORY]); - - concurrentContextMetrics.concurrentContextMetricsJvmLocal(); - concurrentContextMetrics.concurrentContextMetricsCurator(); - concurrentContextMetrics.concurrentContextMetricsHazelcast(); - concurrentContextMetrics.concurrentContextMetricsHazelcastMultiJvmHazelcastLock(); - concurrentContextMetrics.concurrentContextMetricsInfinispanMultiJvmHazelcastlock(); - concurrentContextMetrics.concurrentContextMetricsInfinispanMultiJvmCuratorLock(); - concurrentContextMetrics.concurrentContextMetricsHazelcastMultiJvmCuratorLock(); - } -} diff --git a/testsuites/performance/performance-context-metrics/src/main/java/org/onap/policy/apex/testsuites/performance/context/metrics/package-info.java b/testsuites/performance/performance-context-metrics/src/main/java/org/onap/policy/apex/testsuites/performance/context/metrics/package-info.java deleted file mode 100644 index 9bb84d76b..000000000 --- a/testsuites/performance/performance-context-metrics/src/main/java/org/onap/policy/apex/testsuites/performance/context/metrics/package-info.java +++ /dev/null @@ -1,27 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -/** - * Used to get metrics on the performance of Context Album performance for various types of - * distribution and locking mechanisms in APEX. - * - * @author Liam Fallon (liam.fallon@ericsson.com) - */ -package org.onap.policy.apex.testsuites.performance.context.metrics; diff --git a/testsuites/performance/performance-context-metrics/src/site/css/site.css b/testsuites/performance/performance-context-metrics/src/site/css/site.css deleted file mode 100644 index ef8bd4d15..000000000 --- a/testsuites/performance/performance-context-metrics/src/site/css/site.css +++ /dev/null @@ -1,100 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -@import url(http://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.0/css/font-awesome.css); - - -/*************** Table definitions *******************/ - -tableblock > .title, .tableblock > caption { line-height: 1.4; color: #7a2518; font-weight: 300; margin-top: 0.2em; margin-bottom: 0.5em; } - -.tableblock > caption { text-align: left; font-weight: bold; white-space: nowrap; overflow: visible; max-width: 0; } - -table.tableblock { background: white; margin-bottom: 1.25em; border: solid 1px #dddddd; } -table.tableblock thead, table.tableblock tfoot { background: whitesmoke; font-weight: bold; } -table.tableblock thead tr th, table.tableblock thead tr td, table tfoot tr th, table tfoot tr td { padding: 0.5em 0.625em 0.625em; font-size: inherit; color: #222222; text-align: left; } -table.tableblock tr th, table.tableblock tr td { padding: 0.5625em 0.625em; font-size: inherit; color: #222222; } -table.tableblock tr.even, table.tableblock tr.alt, table.tableblock tr:nth-of-type(even) { background: #f9f9f9; } -table.tableblock thead tr th, table.tableblock tfoot tr th, table.tableblock tbody tr td, table.tableblock tr td, table.tableblock tfoot tr td { display: table-cell; line-height: 1.6; } - -table.tableblock #preamble > .sectionbody > .paragraph:first-of-type p { font-size: inherit; } - -table.tableblock.grid-all { border-collapse: separate; border-spacing: 1px; -webkit-border-radius: 4px; border-radius: 4px; border-top: 1px solid #dddddd; border-bottom: 1px solid #dddddd; } - -table.tableblock.frame-topbot, table.tableblock.frame-none { border-left: 0; border-right: 0; } - -table.tableblock.frame-sides, table.tableblock.frame-none { border-top: 0; border-bottom: 0; } - -table.tableblock td .paragraph:last-child p, table.tableblock td > p:last-child { margin-bottom: 0; } - -th.tableblock.halign-left, td.tableblock.halign-left { text-align: left; } - -th.tableblock.halign-right, td.tableblock.halign-right { text-align: right; } - -th.tableblock.halign-center, td.tableblock.halign-center { text-align: center; } - -th.tableblock.valign-top, td.tableblock.valign-top { vertical-align: top; } - -th.tableblock.valign-bottom, td.tableblock.valign-bottom { vertical-align: bottom; } - -th.tableblock.valign-middle, td.tableblock.valign-middle { vertical-align: middle; } - -p.tableblock.header { color: #222222; font-weight: bold; } - - - -/*************** KBD Macro definitions *******************/ - -kbd.keyseq { color: #555555; } - -kbd:not(.keyseq) { display: inline-block; color: #222222; font-size: 0.75em; line-height: 1.4; background-color: #F7F7F7; border: 1px solid #ccc; -webkit-border-radius: 3px; border-radius: 3px; -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; margin: -0.15em 0.15em 0 0.15em; padding: 0.2em 0.6em 0.2em 0.5em; vertical-align: middle; white-space: nowrap; } - -kbd kbd:first-child { margin-left: 0; } - -kbd kbd:last-child { margin-right: 0; } - - -/*************** Admontion Blocks definitions *******************/ -.admonitionblock td.content > .title, .exampleblock > .title, .imageblock > .title, .videoblock > .title, .listingblock > .title, .literalblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, .sidebarblock > .title, .tableblock > .title, .verseblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title { text-align: left; font-weight: bold; } - -.admonitionblock > table { border: 0; background: none; width: 100%; margin-top: 1em; margin-bottom: 1em;} -.admonitionblock > table td.icon { text-align: center; width: 80px; } -.admonitionblock > table td.icon img { max-width: none; } -.admonitionblock > table td.icon .title { font-weight: bold; text-transform: uppercase; } -.admonitionblock > table td.content { padding-left: 1.125em; padding-right: 1.25em; border-left: 1px solid #dddddd; color: #6f6f6f; } -.admonitionblock > table td.content > :last-child > :last-child { margin-bottom: 0; } - -.admonitionblock td.icon [class^="fa icon-"]:before {font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default} -.admonitionblock td.icon .icon-note:before { content: "\f05a"; color: #005498; color: #003f72; } -.admonitionblock td.icon .icon-tip:before { content: "\f0eb"; text-shadow: 1px 1px 2px rgba(155, 155, 0, 0.8); color: #111; } -.admonitionblock td.icon .icon-warning:before { content: "\f071"; color: #bf6900; } -.admonitionblock td.icon .icon-caution:before { content: "\f06d"; color: #bf3400; } -.admonitionblock td.icon .icon-important:before { content: "\f06a"; color: #bf0000; } - - - -/*************** Misc definitions *******************/ - -*:not(pre) > code { font-size: 0.9375em; padding: 1px 3px 0; white-space: nowrap; background-color: #f2f2f2; border: 1px solid #cccccc; -webkit-border-radius: 4px; border-radius: 4px; text-shadow: none; } - -pre, pre > code { line-height: 1.4; color: inherit; font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; } - -code { font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; color: #6d180b; } - diff --git a/testsuites/performance/performance-context-metrics/src/site/images/logos.png b/testsuites/performance/performance-context-metrics/src/site/images/logos.png deleted file mode 100644 index 915d6e59d42a39d262c209cdcc9801969a236c3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162383 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 M$f!tHNSXxw4 - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/testsuites/performance/performance-context-metrics/src/test/java/org/onap/policy/apex/testsuites/performance/context/metrics/MetricsTest.java b/testsuites/performance/performance-context-metrics/src/test/java/org/onap/policy/apex/testsuites/performance/context/metrics/MetricsTest.java deleted file mode 100644 index af6b46918..000000000 --- a/testsuites/performance/performance-context-metrics/src/test/java/org/onap/policy/apex/testsuites/performance/context/metrics/MetricsTest.java +++ /dev/null @@ -1,94 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.apex.testsuites.performance.context.metrics; - -import static org.junit.Assert.fail; - -import java.io.File; -import java.io.IOException; -import java.util.Arrays; -import java.util.SortedSet; - -import org.junit.BeforeClass; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; -import org.onap.policy.apex.context.test.utils.NetworkUtils; -import org.onap.policy.apex.testsuites.performance.context.metrics.ConcurrentContextMetrics; -import org.onap.policy.common.utils.resources.ResourceUtils; -import org.slf4j.ext.XLogger; -import org.slf4j.ext.XLoggerFactory; - -/** - * The Class TestMetrics. - */ -public class MetricsTest { - // Logger for this class - private static final XLogger LOGGER = XLoggerFactory.getXLogger(MetricsTest.class); - private static final String HAZELCAST_CONFIG = "hazelcast.config"; - - private static final String JAVA_NET_PREFER_IPV4_STACK = "java.net.preferIPv4Stack"; - private static final String HAZELCAST_XML_FILE = "src/test/resources/hazelcast/hazelcast.xml"; - - @Rule - public final TemporaryFolder folder = new TemporaryFolder(); - - /** - * Configure. - * - * @throws Exception the exception - */ - @BeforeClass - public static void configure() throws Exception { - System.setProperty(JAVA_NET_PREFER_IPV4_STACK, "true"); - final String hazelCastfileLocation = ResourceUtils.getFilePath4Resource(HAZELCAST_XML_FILE); - System.setProperty(HAZELCAST_CONFIG, hazelCastfileLocation); - - final SortedSet ipAddressSet = NetworkUtils.getIPv4NonLoopAddresses(); - - if (ipAddressSet.size() == 0) { - throw new Exception("cound not find real IP address for test"); - } - LOGGER.info("For Infinispan, setting jgroups.tcp.address to: {}", ipAddressSet.first()); - System.setProperty("jgroups.tcp.address", ipAddressSet.first()); - - } - - /** - * Gets the single jvm metrics. - * - * @throws IOException Signals that an I/O exception has occurred. - */ - @Test - public void getSingleJvmMetrics() throws IOException { - final File zookeeperDirectory = folder.newFolder("zookeeperDirectory"); - final String[] args = {"singleJVMTestNL", "1", "32", "1000", "65536", "0", "localhost", "62181", - zookeeperDirectory.getAbsolutePath()}; - - LOGGER.info("Starting with args: {}", Arrays.toString(args)); - try { - ConcurrentContextMetrics.main(args); - } catch (final Exception exception) { - LOGGER.error("Unexpected error", exception); - fail("Metrics test failed"); - } - } -} diff --git a/testsuites/performance/performance-context-metrics/src/test/resources/hazelcast/hazelcast.xml b/testsuites/performance/performance-context-metrics/src/test/resources/hazelcast/hazelcast.xml deleted file mode 100644 index 932b33cc9..000000000 --- a/testsuites/performance/performance-context-metrics/src/test/resources/hazelcast/hazelcast.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - HazelcastGroup3.0EVAL - password3.0EVAL - - - 5706 - - - 224.2.2.10 - 54327 - - - 127.0.0.1 - - - - - 127.0.0.* - - - - false - slf4j - - false - 60 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - - - 2 - - diff --git a/testsuites/performance/performance-context-metrics/src/test/resources/infinispan/default-jgroups-tcp.xml b/testsuites/performance/performance-context-metrics/src/test/resources/infinispan/default-jgroups-tcp.xml deleted file mode 100644 index 028cf1df6..000000000 --- a/testsuites/performance/performance-context-metrics/src/test/resources/infinispan/default-jgroups-tcp.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/testsuites/performance/performance-context-metrics/src/test/resources/infinispan/infinispan.xml b/testsuites/performance/performance-context-metrics/src/test/resources/infinispan/infinispan.xml deleted file mode 100644 index 5b416f50d..000000000 --- a/testsuites/performance/performance-context-metrics/src/test/resources/infinispan/infinispan.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/testsuites/performance/pom.xml b/testsuites/performance/pom.xml index 8682871cd..501cf658d 100644 --- a/testsuites/performance/pom.xml +++ b/testsuites/performance/pom.xml @@ -1,6 +1,7 @@