diff options
Diffstat (limited to 'controlloop/common/feature-controlloop-trans/src')
4 files changed, 84 insertions, 44 deletions
diff --git a/controlloop/common/feature-controlloop-trans/src/main/java/org/onap/policy/drools/apps/controlloop/feature/trans/ControlLoopMetrics.java b/controlloop/common/feature-controlloop-trans/src/main/java/org/onap/policy/drools/apps/controlloop/feature/trans/ControlLoopMetrics.java index a7c8f11df..3cc02446a 100644 --- a/controlloop/common/feature-controlloop-trans/src/main/java/org/onap/policy/drools/apps/controlloop/feature/trans/ControlLoopMetrics.java +++ b/controlloop/common/feature-controlloop-trans/src/main/java/org/onap/policy/drools/apps/controlloop/feature/trans/ControlLoopMetrics.java @@ -31,11 +31,6 @@ import org.onap.policy.drools.system.PolicyController; public interface ControlLoopMetrics { /** - * Singleton manager object. - */ - ControlLoopMetrics manager = new CacheBasedControlLoopMetricsManager(); - - /** * Gets all transaction identifiers being monitored. * * @return transaction id list diff --git a/controlloop/common/feature-controlloop-trans/src/main/java/org/onap/policy/drools/apps/controlloop/feature/trans/ControlLoopMetricsFeature.java b/controlloop/common/feature-controlloop-trans/src/main/java/org/onap/policy/drools/apps/controlloop/feature/trans/ControlLoopMetricsFeature.java index b4057dfae..26627eb1c 100644 --- a/controlloop/common/feature-controlloop-trans/src/main/java/org/onap/policy/drools/apps/controlloop/feature/trans/ControlLoopMetricsFeature.java +++ b/controlloop/common/feature-controlloop-trans/src/main/java/org/onap/policy/drools/apps/controlloop/feature/trans/ControlLoopMetricsFeature.java @@ -70,7 +70,7 @@ public class ControlLoopMetricsFeature implements PolicyControllerFeatureApi { @Override public boolean beforeDeliver(PolicyController controller, CommInfrastructure protocol, String topic, Object event) { if (event instanceof VirtualControlLoopNotification) { - ControlLoopMetrics.manager.transactionEvent(controller, (VirtualControlLoopNotification) event); + ControlLoopMetricsManager.getManager().transactionEvent(controller, (VirtualControlLoopNotification) event); } /* do not take ownership */ diff --git a/controlloop/common/feature-controlloop-trans/src/main/java/org/onap/policy/drools/apps/controlloop/feature/trans/ControlLoopMetricsManager.java b/controlloop/common/feature-controlloop-trans/src/main/java/org/onap/policy/drools/apps/controlloop/feature/trans/ControlLoopMetricsManager.java new file mode 100644 index 000000000..c4ae11bdf --- /dev/null +++ b/controlloop/common/feature-controlloop-trans/src/main/java/org/onap/policy/drools/apps/controlloop/feature/trans/ControlLoopMetricsManager.java @@ -0,0 +1,39 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP + * ================================================================================ + * Copyright (C) 2019 AT&T Intellectual Property. 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. + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.drools.apps.controlloop.feature.trans; + +import lombok.Getter; + +/** + * Control Loop Metrics Tracker. + */ +public class ControlLoopMetricsManager { + + /** + * Singleton manager object. + */ + @Getter + private static final ControlLoopMetrics manager = new CacheBasedControlLoopMetricsManager(); + + private ControlLoopMetricsManager() { + // do nothing + } +} diff --git a/controlloop/common/feature-controlloop-trans/src/test/java/org/onap/policy/drools/apps/controlloop/feature/trans/ControlLoopMetricsFeatureTest.java b/controlloop/common/feature-controlloop-trans/src/test/java/org/onap/policy/drools/apps/controlloop/feature/trans/ControlLoopMetricsFeatureTest.java index abc5db8e6..bbbcc132f 100644 --- a/controlloop/common/feature-controlloop-trans/src/test/java/org/onap/policy/drools/apps/controlloop/feature/trans/ControlLoopMetricsFeatureTest.java +++ b/controlloop/common/feature-controlloop-trans/src/test/java/org/onap/policy/drools/apps/controlloop/feature/trans/ControlLoopMetricsFeatureTest.java @@ -66,9 +66,9 @@ public class ControlLoopMetricsFeatureTest { @Test public void cacheDefaults() { - assertEquals(3, ControlLoopMetrics.manager.getCacheSize()); - assertEquals(2, ControlLoopMetrics.manager.getTransactionTimeout()); - assertEquals(0, ControlLoopMetrics.manager.getCacheOccupancy()); + assertEquals(3, ControlLoopMetricsManager.getManager().getCacheSize()); + assertEquals(2, ControlLoopMetricsManager.getManager().getTransactionTimeout()); + assertEquals(0, ControlLoopMetricsManager.getManager().getCacheOccupancy()); } @Test @@ -82,7 +82,7 @@ public class ControlLoopMetricsFeatureTest { notification.setRequestId(requestId); feature.beforeDeliver(testController, CommInfrastructure.DMAAP, POLICY_CL_MGT, notification); - assertNull(ControlLoopMetrics.manager.getTransaction(requestId)); + assertNull(ControlLoopMetricsManager.getManager().getTransaction(requestId)); this.cacheDefaults(); } @@ -95,14 +95,15 @@ public class ControlLoopMetricsFeatureTest { notification.setNotification(ControlLoopNotificationType.ACTIVE); feature.beforeDeliver(testController, CommInfrastructure.DMAAP, POLICY_CL_MGT, notification); - assertNotNull(ControlLoopMetrics.manager.getTransaction(requestId)); - assertTrue(ControlLoopMetrics.manager.getTransaction(requestId).getFrom().contains(testController.getName())); - assertNotNull(ControlLoopMetrics.manager.getTransaction(requestId).getNotificationTime()); - assertTrue(ControlLoopMetrics.manager.getCacheOccupancy() == 1); + assertNotNull(ControlLoopMetricsManager.getManager().getTransaction(requestId)); + assertTrue(ControlLoopMetricsManager.getManager().getTransaction(requestId).getFrom() + .contains(testController.getName())); + assertNotNull(ControlLoopMetricsManager.getManager().getTransaction(requestId).getNotificationTime()); + assertTrue(ControlLoopMetricsManager.getManager().getCacheOccupancy() == 1); /* wait for the entries to expire */ - await().atMost(ControlLoopMetrics.manager.getTransactionTimeout() + 1, TimeUnit.SECONDS) - .until(() -> ControlLoopMetrics.manager.getTransaction(requestId) == null); + await().atMost(ControlLoopMetricsManager.getManager().getTransactionTimeout() + 1, TimeUnit.SECONDS) + .until(() -> ControlLoopMetricsManager.getManager().getTransaction(requestId) == null); this.cacheDefaults(); } @@ -113,56 +114,61 @@ public class ControlLoopMetricsFeatureTest { new ControlLoopMetricsFeature().beforeDeliver(testController, CommInfrastructure.DMAAP, POLICY_CL_MGT, notification); - assertNotNull(ControlLoopMetrics.manager.getTransaction(notification.getRequestId())); + assertNotNull(ControlLoopMetricsManager.getManager().getTransaction(notification.getRequestId())); - ControlLoopMetrics.manager.resetCache(ControlLoopMetrics.manager.getCacheSize(), - ControlLoopMetrics.manager.getTransactionTimeout()); - assertNull(ControlLoopMetrics.manager.getTransaction(notification.getRequestId())); + ControlLoopMetricsManager.getManager().resetCache(ControlLoopMetricsManager.getManager().getCacheSize(), + ControlLoopMetricsManager.getManager().getTransactionTimeout()); + assertNull(ControlLoopMetricsManager.getManager().getTransaction(notification.getRequestId())); this.cacheDefaults(); } @Test public void removeTransaction() { VirtualControlLoopNotification notification = this.generateNotification(); - assertNull(ControlLoopMetrics.manager.getTransaction(notification.getRequestId())); - ControlLoopMetrics.manager.removeTransaction(notification.getRequestId()); + assertNull(ControlLoopMetricsManager.getManager().getTransaction(notification.getRequestId())); + ControlLoopMetricsManager.getManager().removeTransaction(notification.getRequestId()); - ControlLoopMetrics.manager.transactionEvent(testController, notification); - assertNotNull(ControlLoopMetrics.manager.getTransaction(notification.getRequestId())); - ControlLoopMetrics.manager.removeTransaction(notification.getRequestId()); - assertNull(ControlLoopMetrics.manager.getTransaction(notification.getRequestId())); + ControlLoopMetricsManager.getManager().transactionEvent(testController, notification); + assertNotNull(ControlLoopMetricsManager.getManager().getTransaction(notification.getRequestId())); + ControlLoopMetricsManager.getManager().removeTransaction(notification.getRequestId()); + assertNull(ControlLoopMetricsManager.getManager().getTransaction(notification.getRequestId())); } @Test public void eviction() throws InterruptedException { ControlLoopMetricsFeature feature = new ControlLoopMetricsFeature(); - for (int i = 0; i < ControlLoopMetrics.manager.getCacheSize(); i++) { + for (int i = 0; i < ControlLoopMetricsManager.getManager().getCacheSize(); i++) { VirtualControlLoopNotification notification = generateNotification(); feature.beforeDeliver(testController, CommInfrastructure.DMAAP, POLICY_CL_MGT, notification); - assertNotNull(ControlLoopMetrics.manager.getTransaction(notification.getRequestId())); + assertNotNull(ControlLoopMetricsManager.getManager().getTransaction(notification.getRequestId())); } - assertEquals(ControlLoopMetrics.manager.getCacheOccupancy(), ControlLoopMetrics.manager.getCacheOccupancy()); + assertEquals(ControlLoopMetricsManager.getManager().getCacheOccupancy(), + ControlLoopMetricsManager.getManager().getCacheOccupancy()); VirtualControlLoopNotification overflowNotification = generateNotification(); feature.beforeDeliver(testController, CommInfrastructure.DMAAP, POLICY_CL_MGT, overflowNotification); - assertEquals(ControlLoopMetrics.manager.getCacheOccupancy(), ControlLoopMetrics.manager.getCacheOccupancy()); - assertNotNull(ControlLoopMetrics.manager.getTransaction(overflowNotification.getRequestId())); - assertTrue(ControlLoopMetrics.manager.getTransactionIds().size() == ControlLoopMetrics.manager.getCacheSize()); - assertTrue(ControlLoopMetrics.manager.getCacheOccupancy() == ControlLoopMetrics.manager.getCacheSize()); - assertFalse(ControlLoopMetrics.manager.getTransactionIds().isEmpty()); - assertFalse(ControlLoopMetrics.manager.getTransactions().isEmpty()); + assertEquals(ControlLoopMetricsManager.getManager().getCacheOccupancy(), + ControlLoopMetricsManager.getManager().getCacheOccupancy()); + assertNotNull(ControlLoopMetricsManager.getManager().getTransaction(overflowNotification.getRequestId())); + assertTrue(ControlLoopMetricsManager.getManager().getTransactionIds().size() == ControlLoopMetricsManager + .getManager().getCacheSize()); + assertTrue(ControlLoopMetricsManager.getManager().getCacheOccupancy() == ControlLoopMetricsManager.getManager() + .getCacheSize()); + assertFalse(ControlLoopMetricsManager.getManager().getTransactionIds().isEmpty()); + assertFalse(ControlLoopMetricsManager.getManager().getTransactions().isEmpty()); /* wait for the entries to expire */ - await().atMost(ControlLoopMetrics.manager.getTransactionTimeout() + 1, TimeUnit.SECONDS) - .until(() -> ControlLoopMetrics.manager.getTransactions().isEmpty()); - - ControlLoopMetrics.manager.refresh(); - assertTrue(ControlLoopMetrics.manager.getTransactionIds().size() == ControlLoopMetrics.manager - .getCacheOccupancy()); - assertFalse(ControlLoopMetrics.manager.getCacheOccupancy() == ControlLoopMetrics.manager.getCacheSize()); - assertTrue(ControlLoopMetrics.manager.getTransactionIds().isEmpty()); - assertTrue(ControlLoopMetrics.manager.getTransactions().isEmpty()); + await().atMost(ControlLoopMetricsManager.getManager().getTransactionTimeout() + 1, TimeUnit.SECONDS) + .until(() -> ControlLoopMetricsManager.getManager().getTransactions().isEmpty()); + + ControlLoopMetricsManager.getManager().refresh(); + assertTrue(ControlLoopMetricsManager.getManager().getTransactionIds().size() == ControlLoopMetricsManager + .getManager().getCacheOccupancy()); + assertFalse(ControlLoopMetricsManager.getManager().getCacheOccupancy() == ControlLoopMetricsManager.getManager() + .getCacheSize()); + assertTrue(ControlLoopMetricsManager.getManager().getTransactionIds().isEmpty()); + assertTrue(ControlLoopMetricsManager.getManager().getTransactions().isEmpty()); this.cacheDefaults(); } |