aboutsummaryrefslogtreecommitdiffstats
path: root/controlloop/common
diff options
context:
space:
mode:
Diffstat (limited to 'controlloop/common')
-rw-r--r--controlloop/common/controller-usecases/src/main/java/org/onap/policy/drools/apps/controller/usecases/UsecasesEventManager.java8
-rw-r--r--controlloop/common/controller-usecases/src/main/resources/usecases.drl26
-rw-r--r--controlloop/common/controller-usecases/src/test/java/org/onap/policy/drools/apps/controller/usecases/UsecasesEventManagerTest.java60
-rw-r--r--controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithEvent.java7
-rw-r--r--controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithOutcome.java7
-rw-r--r--controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithSteps.java7
-rw-r--r--controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager.java26
-rw-r--r--controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithEventTest.java28
-rw-r--r--controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithOutcomeTest.java30
-rw-r--r--controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithStepsTest.java39
-rw-r--r--controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManagerTest.java33
11 files changed, 138 insertions, 133 deletions
diff --git a/controlloop/common/controller-usecases/src/main/java/org/onap/policy/drools/apps/controller/usecases/UsecasesEventManager.java b/controlloop/common/controller-usecases/src/main/java/org/onap/policy/drools/apps/controller/usecases/UsecasesEventManager.java
index 4db243408..cb71f8ea0 100644
--- a/controlloop/common/controller-usecases/src/main/java/org/onap/policy/drools/apps/controller/usecases/UsecasesEventManager.java
+++ b/controlloop/common/controller-usecases/src/main/java/org/onap/policy/drools/apps/controller/usecases/UsecasesEventManager.java
@@ -51,6 +51,7 @@ import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOp
import org.onap.policy.controlloop.drl.legacy.ControlLoopParams;
import org.onap.policy.controlloop.eventmanager.ActorConstants;
import org.onap.policy.controlloop.eventmanager.ClEventManagerWithEvent;
+import org.onap.policy.controlloop.eventmanager.EventManagerServices;
import org.onap.policy.controlloop.eventmanager.StepContext;
import org.onap.policy.drools.apps.controller.usecases.step.AaiCqStep2;
import org.onap.policy.drools.apps.controller.usecases.step.AaiGetPnfStep2;
@@ -105,16 +106,17 @@ public class UsecasesEventManager extends ClEventManagerWithEvent<Step2> impleme
/**
* Constructs the object.
*
+ * @param services services the manager should use when processing the event
* @param params control loop parameters
* @param event event to be managed by this object
* @param workMem working memory to update if this changes
* @throws ControlLoopException if the event is invalid or if a YAML processor cannot
* be created
*/
- public UsecasesEventManager(ControlLoopParams params, VirtualControlLoopEvent event, WorkingMemory workMem)
- throws ControlLoopException {
+ public UsecasesEventManager(EventManagerServices services, ControlLoopParams params, VirtualControlLoopEvent event,
+ WorkingMemory workMem) throws ControlLoopException {
- super(params, event, workMem);
+ super(services, params, event, workMem);
if (isClosedLoopDisabled(event)) {
throw new IllegalStateException("is-closed-loop-disabled is set to true on VServer or VNF");
diff --git a/controlloop/common/controller-usecases/src/main/resources/usecases.drl b/controlloop/common/controller-usecases/src/main/resources/usecases.drl
index 49ab78d71..5074215bb 100644
--- a/controlloop/common/controller-usecases/src/main/resources/usecases.drl
+++ b/controlloop/common/controller-usecases/src/main/resources/usecases.drl
@@ -45,6 +45,7 @@ import org.onap.policy.drools.apps.controller.usecases.UsecasesEventManager;
import org.onap.policy.controlloop.eventmanager.ClEventManagerWithSteps.State;
import org.onap.policy.controlloop.eventmanager.ClEventManagerWithOutcome.OperationOutcome2;
import org.onap.policy.controlloop.eventmanager.ClEventManagerWithEvent.NewEventStatus;
+import org.onap.policy.controlloop.eventmanager.EventManagerServices;
import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
import org.slf4j.LoggerFactory;
@@ -52,6 +53,27 @@ import org.slf4j.Logger;
import org.onap.policy.drools.system.PolicyEngineConstants;
+
+/*
+* Called at initial start-up, to create the event services that will be used by all
+* event managers in this rule engine instance.
+*/
+rule "CREATE.EVENT.SERVICES"
+ when
+ not (EventManagerServices())
+ then
+
+ Logger logger = LoggerFactory.getLogger(drools.getRule().getPackage());
+ logger.info("{}", drools.getRule().getName());
+
+ try {
+ insert(new EventManagerServices("event-manager"));
+
+ } catch(RuntimeException e) {
+ logger.warn("{}: cannot create event services", drools.getRule().getName(), e);
+ }
+end
+
/*
*
* Called when the ControlLoopParams object has been inserted into working memory from the PAP.
@@ -114,6 +136,7 @@ rule "EVENT"
when
$params : ControlLoopParams( $clName : getClosedLoopControlName() )
$event : CanonicalOnset( closedLoopControlName == $clName )
+ $services : EventManagerServices()
not ( UsecasesEventManager( closedLoopControlName == $event.getClosedLoopControlName(),
getEvent() == $event ) )
then
@@ -144,7 +167,8 @@ rule "EVENT"
notification.setPolicyVersion($params.getPolicyVersion());
} else {
- UsecasesEventManager manager = new UsecasesEventManager($params, $event, drools.getWorkingMemory());
+ UsecasesEventManager manager =
+ new UsecasesEventManager($services, $params, $event, drools.getWorkingMemory());
insert(manager);
try {
// load the first policy/step
diff --git a/controlloop/common/controller-usecases/src/test/java/org/onap/policy/drools/apps/controller/usecases/UsecasesEventManagerTest.java b/controlloop/common/controller-usecases/src/test/java/org/onap/policy/drools/apps/controller/usecases/UsecasesEventManagerTest.java
index 318d6b7cc..434939d5d 100644
--- a/controlloop/common/controller-usecases/src/test/java/org/onap/policy/drools/apps/controller/usecases/UsecasesEventManagerTest.java
+++ b/controlloop/common/controller-usecases/src/test/java/org/onap/policy/drools/apps/controller/usecases/UsecasesEventManagerTest.java
@@ -57,7 +57,6 @@ import org.onap.policy.controlloop.ControlLoopException;
import org.onap.policy.controlloop.ControlLoopResponse;
import org.onap.policy.controlloop.ControlLoopTargetType;
import org.onap.policy.controlloop.VirtualControlLoopEvent;
-import org.onap.policy.controlloop.actorserviceprovider.ActorService;
import org.onap.policy.controlloop.actorserviceprovider.Operation;
import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
@@ -68,6 +67,7 @@ import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOp
import org.onap.policy.controlloop.actorserviceprovider.spi.Actor;
import org.onap.policy.controlloop.drl.legacy.ControlLoopParams;
import org.onap.policy.controlloop.eventmanager.ActorConstants;
+import org.onap.policy.controlloop.eventmanager.EventManagerServices;
import org.onap.policy.controlloop.ophistory.OperationHistoryDataManager;
import org.onap.policy.drools.apps.controller.usecases.step.AaiCqStep2;
import org.onap.policy.drools.apps.controller.usecases.step.AaiGetPnfStep2;
@@ -113,7 +113,7 @@ public class UsecasesEventManagerTest {
@Mock
private Actor policyActor;
@Mock
- private ActorService actors;
+ private EventManagerServices services;
@Mock
private OperationHistoryDataManager dataMgr;
@Mock
@@ -134,6 +134,8 @@ public class UsecasesEventManagerTest {
*/
@Before
public void setUp() throws ControlLoopException, CoderException {
+ when(services.getDataManager()).thenReturn(dataMgr);
+
when(workMem.getFactHandle(any())).thenReturn(factHandle);
event = new VirtualControlLoopEvent();
@@ -154,7 +156,7 @@ public class UsecasesEventManagerTest {
locks = new ArrayList<>();
- mgr = new MyManager(params, event, workMem);
+ mgr = new MyManager(services, params, event, workMem);
}
@Test
@@ -165,37 +167,37 @@ public class UsecasesEventManagerTest {
Map<String, String> orig = event.getAai();
event.setAai(addAai(orig, UsecasesConstants.VSERVER_IS_CLOSED_LOOP_DISABLED, "true"));
- assertThatThrownBy(() -> new UsecasesEventManager(params, event, workMem))
+ assertThatThrownBy(() -> new UsecasesEventManager(services, params, event, workMem))
.hasMessage("is-closed-loop-disabled is set to true on VServer or VNF");
// vserver ACTIVE
event.setAai(addAai(orig, UsecasesConstants.VSERVER_PROV_STATUS,
UsecasesConstants.PROV_STATUS_ACTIVE.toUpperCase()));
- assertThatCode(() -> new UsecasesEventManager(params, event, workMem)).doesNotThrowAnyException();
+ assertThatCode(() -> new UsecasesEventManager(services, params, event, workMem)).doesNotThrowAnyException();
// vserver active
event.setAai(addAai(orig, UsecasesConstants.VSERVER_PROV_STATUS,
UsecasesConstants.PROV_STATUS_ACTIVE.toLowerCase()));
- assertThatCode(() -> new UsecasesEventManager(params, event, workMem)).doesNotThrowAnyException();
+ assertThatCode(() -> new UsecasesEventManager(services, params, event, workMem)).doesNotThrowAnyException();
// vserver inactive
event.setAai(addAai(orig, UsecasesConstants.VSERVER_PROV_STATUS, "inactive"));
- assertThatThrownBy(() -> new UsecasesEventManager(params, event, workMem))
+ assertThatThrownBy(() -> new UsecasesEventManager(services, params, event, workMem))
.hasMessage("prov-status is not ACTIVE on VServer or VNF");
// vnf ACTIVE
event.setAai(addAai(orig, UsecasesConstants.GENERIC_VNF_PROV_STATUS,
UsecasesConstants.PROV_STATUS_ACTIVE.toUpperCase()));
- assertThatCode(() -> new UsecasesEventManager(params, event, workMem)).doesNotThrowAnyException();
+ assertThatCode(() -> new UsecasesEventManager(services, params, event, workMem)).doesNotThrowAnyException();
// vnf active
event.setAai(addAai(orig, UsecasesConstants.GENERIC_VNF_PROV_STATUS,
UsecasesConstants.PROV_STATUS_ACTIVE.toLowerCase()));
- assertThatCode(() -> new UsecasesEventManager(params, event, workMem)).doesNotThrowAnyException();
+ assertThatCode(() -> new UsecasesEventManager(services, params, event, workMem)).doesNotThrowAnyException();
// vnf inactive
event.setAai(addAai(orig, UsecasesConstants.GENERIC_VNF_PROV_STATUS, "inactive"));
- assertThatThrownBy(() -> new UsecasesEventManager(params, event, workMem))
+ assertThatThrownBy(() -> new UsecasesEventManager(services, params, event, workMem))
.hasMessage("prov-status is not ACTIVE on VServer or VNF");
// valid
@@ -204,7 +206,7 @@ public class UsecasesEventManagerTest {
// invalid
event.setTarget("unknown-target");
- assertThatThrownBy(() -> new UsecasesEventManager(params, event, workMem))
+ assertThatThrownBy(() -> new UsecasesEventManager(services, params, event, workMem))
.isInstanceOf(ControlLoopException.class);
}
@@ -541,15 +543,15 @@ public class UsecasesEventManagerTest {
Map<String, String> orig = event.getAai();
event.setAai(addAai(orig, UsecasesConstants.VSERVER_IS_CLOSED_LOOP_DISABLED, "true"));
- assertThatThrownBy(() -> new UsecasesEventManager(params, event, workMem))
+ assertThatThrownBy(() -> new UsecasesEventManager(services, params, event, workMem))
.isInstanceOf(IllegalStateException.class);
event.setAai(addAai(orig, UsecasesConstants.GENERIC_VNF_IS_CLOSED_LOOP_DISABLED, "true"));
- assertThatThrownBy(() -> new UsecasesEventManager(params, event, workMem))
+ assertThatThrownBy(() -> new UsecasesEventManager(services, params, event, workMem))
.isInstanceOf(IllegalStateException.class);
event.setAai(addAai(orig, UsecasesConstants.PNF_IS_IN_MAINT, "true"));
- assertThatThrownBy(() -> new UsecasesEventManager(params, event, workMem))
+ assertThatThrownBy(() -> new UsecasesEventManager(services, params, event, workMem))
.isInstanceOf(IllegalStateException.class);
}
@@ -558,17 +560,17 @@ public class UsecasesEventManagerTest {
Map<String, String> orig = event.getAai();
event.setAai(addAai(orig, UsecasesConstants.VSERVER_PROV_STATUS, "ACTIVE"));
- assertThatCode(() -> new UsecasesEventManager(params, event, workMem)).doesNotThrowAnyException();
+ assertThatCode(() -> new UsecasesEventManager(services, params, event, workMem)).doesNotThrowAnyException();
event.setAai(addAai(orig, UsecasesConstants.VSERVER_PROV_STATUS, "inactive"));
- assertThatThrownBy(() -> new UsecasesEventManager(params, event, workMem))
+ assertThatThrownBy(() -> new UsecasesEventManager(services, params, event, workMem))
.isInstanceOf(IllegalStateException.class);
event.setAai(addAai(orig, UsecasesConstants.GENERIC_VNF_PROV_STATUS, "ACTIVE"));
- assertThatCode(() -> new UsecasesEventManager(params, event, workMem)).doesNotThrowAnyException();
+ assertThatCode(() -> new UsecasesEventManager(services, params, event, workMem)).doesNotThrowAnyException();
event.setAai(addAai(orig, UsecasesConstants.GENERIC_VNF_PROV_STATUS, "inactive"));
- assertThatThrownBy(() -> new UsecasesEventManager(params, event, workMem))
+ assertThatThrownBy(() -> new UsecasesEventManager(services, params, event, workMem))
.isInstanceOf(IllegalStateException.class);
}
@@ -578,15 +580,15 @@ public class UsecasesEventManagerTest {
for (String value : Arrays.asList("yes", "y", "true", "t", "yEs", "trUe")) {
event.setAai(addAai(orig, UsecasesConstants.VSERVER_IS_CLOSED_LOOP_DISABLED, value));
- assertThatThrownBy(() -> new UsecasesEventManager(params, event, workMem))
+ assertThatThrownBy(() -> new UsecasesEventManager(services, params, event, workMem))
.isInstanceOf(IllegalStateException.class);
}
event.setAai(addAai(orig, UsecasesConstants.VSERVER_IS_CLOSED_LOOP_DISABLED, "false"));
- assertThatCode(() -> new UsecasesEventManager(params, event, workMem)).doesNotThrowAnyException();
+ assertThatCode(() -> new UsecasesEventManager(services, params, event, workMem)).doesNotThrowAnyException();
event.setAai(addAai(orig, UsecasesConstants.VSERVER_IS_CLOSED_LOOP_DISABLED, "no"));
- assertThatCode(() -> new UsecasesEventManager(params, event, workMem)).doesNotThrowAnyException();
+ assertThatCode(() -> new UsecasesEventManager(services, params, event, workMem)).doesNotThrowAnyException();
}
@@ -665,10 +667,10 @@ public class UsecasesEventManagerTest {
private class MyManager extends UsecasesEventManager {
private static final long serialVersionUID = 1L;
- public MyManager(ControlLoopParams params, VirtualControlLoopEvent event, WorkingMemory workMem)
- throws ControlLoopException {
+ public MyManager(EventManagerServices services, ControlLoopParams params, VirtualControlLoopEvent event,
+ WorkingMemory workMem) throws ControlLoopException {
- super(params, event, workMem);
+ super(services, params, event, workMem);
}
@Override
@@ -684,16 +686,6 @@ public class UsecasesEventManagerTest {
}
@Override
- public ActorService getActorService() {
- return actors;
- }
-
- @Override
- public OperationHistoryDataManager getDataManager() {
- return dataMgr;
- }
-
- @Override
protected PolicyEngine getPolicyEngineManager() {
return engineMgr;
}
diff --git a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithEvent.java b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithEvent.java
index db7ec1d93..fef35e498 100644
--- a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithEvent.java
+++ b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithEvent.java
@@ -61,16 +61,17 @@ public abstract class ClEventManagerWithEvent<T extends Step> extends ClEventMan
/**
* Constructs the object.
*
+ * @param services services the manager should use when processing the event
* @param params control loop parameters
* @param event event to be managed by this object
* @param workMem working memory to update if this changes
* @throws ControlLoopException if the event is invalid or if a YAML processor cannot
* be created
*/
- public ClEventManagerWithEvent(ControlLoopParams params, VirtualControlLoopEvent event, WorkingMemory workMem)
- throws ControlLoopException {
+ public ClEventManagerWithEvent(EventManagerServices services, ControlLoopParams params,
+ VirtualControlLoopEvent event, WorkingMemory workMem) throws ControlLoopException {
- super(params, event.getRequestId(), workMem);
+ super(services, params, event.getRequestId(), workMem);
checkEventSyntax(event);
diff --git a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithOutcome.java b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithOutcome.java
index a94598ef7..9d5d15808 100644
--- a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithOutcome.java
+++ b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithOutcome.java
@@ -70,16 +70,17 @@ public abstract class ClEventManagerWithOutcome<T extends Step> extends ClEventM
/**
* Constructs the object.
*
+ * @param services services the manager should use when processing the event
* @param params control loop parameters
* @param requestId event request ID
* @param workMem working memory to update if this changes
* @throws ControlLoopException if the event is invalid or if a YAML processor cannot
* be created
*/
- public ClEventManagerWithOutcome(ControlLoopParams params, UUID requestId, WorkingMemory workMem)
- throws ControlLoopException {
+ public ClEventManagerWithOutcome(EventManagerServices services, ControlLoopParams params, UUID requestId,
+ WorkingMemory workMem) throws ControlLoopException {
- super(params, requestId, workMem);
+ super(services, params, requestId, workMem);
}
@Override
diff --git a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithSteps.java b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithSteps.java
index 6f6cd0fda..0187db751 100644
--- a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithSteps.java
+++ b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithSteps.java
@@ -130,16 +130,17 @@ public abstract class ClEventManagerWithSteps<T extends Step> extends ControlLoo
/**
* Constructs the object.
*
+ * @param services services the manager should use when processing the event
* @param params control loop parameters
* @param requestId event request ID
* @param workMem working memory to update if this changes
* @throws ControlLoopException if the event is invalid or if a YAML processor cannot
* be created
*/
- public ClEventManagerWithSteps(ControlLoopParams params, UUID requestId, WorkingMemory workMem)
- throws ControlLoopException {
+ public ClEventManagerWithSteps(EventManagerServices services, ControlLoopParams params, UUID requestId,
+ WorkingMemory workMem) throws ControlLoopException {
- super(params, requestId);
+ super(services, params, requestId);
if (requestId == null) {
throw new ControlLoopException("No request ID");
diff --git a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager.java b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager.java
index 2c7e133af..f23f559e4 100644
--- a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager.java
+++ b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager.java
@@ -69,7 +69,6 @@ public class ControlLoopEventManager implements StepContext, Serializable {
private static final OperationHistoryDataManager STUB_DATA_MANAGER = new OperationHistoryDataManagerStub();
private static final String GUARD_DISABLED_PROPERTY = "guard.disabled";
- private static final String EVENT_MANAGER_SERVICE_CONFIG = "event-manager";
/**
* Counts the number of these objects that have been created. This is used by junit
@@ -84,6 +83,8 @@ public class ControlLoopEventManager implements StepContext, Serializable {
*/
private transient boolean createdByThisJvmInstance;
+ private final transient EventManagerServices services;
+
@Getter
@ToString.Include
public final String closedLoopControlName;
@@ -128,16 +129,19 @@ public class ControlLoopEventManager implements StepContext, Serializable {
/**
* Constructs the object.
*
+ * @param services services the manager should use when processing the event
* @param params control loop parameters
* @param requestId event request ID
* @throws ControlLoopException if the event is invalid or if a YAML processor cannot
* be created
*/
- public ControlLoopEventManager(ControlLoopParams params, UUID requestId) throws ControlLoopException {
+ public ControlLoopEventManager(EventManagerServices services, ControlLoopParams params, UUID requestId)
+ throws ControlLoopException {
createCount.incrementAndGet();
this.createdByThisJvmInstance = true;
+ this.services = services;
this.closedLoopControlName = params.getClosedLoopControlName();
this.requestId = requestId;
this.policyName = params.getPolicyName();
@@ -316,20 +320,6 @@ public class ControlLoopEventManager implements StepContext, Serializable {
properties.remove(name);
}
- /**
- * Initializes various components, on demand.
- */
- private static class LazyInitData {
- private static final OperationHistoryDataManager DATA_MANAGER;
- private static final ActorService ACTOR_SERVICE;
-
- static {
- EventManagerServices services = new EventManagerServices(EVENT_MANAGER_SERVICE_CONFIG);
- ACTOR_SERVICE = services.getActorService();
- DATA_MANAGER = services.getDataManager();
- }
- }
-
// the following methods may be overridden by junit tests
public Executor getExecutor() {
@@ -345,12 +335,12 @@ public class ControlLoopEventManager implements StepContext, Serializable {
}
public ActorService getActorService() {
- return LazyInitData.ACTOR_SERVICE;
+ return services.getActorService();
}
public OperationHistoryDataManager getDataManager() {
boolean guardDisabled = "true".equalsIgnoreCase(getEnvironmentProperty(GUARD_DISABLED_PROPERTY));
- return (guardDisabled ? STUB_DATA_MANAGER : LazyInitData.DATA_MANAGER);
+ return (guardDisabled ? STUB_DATA_MANAGER : services.getDataManager());
}
protected String getEnvironmentProperty(String propName) {
diff --git a/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithEventTest.java b/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithEventTest.java
index 1a4c1b5b2..759ec90b1 100644
--- a/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithEventTest.java
+++ b/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithEventTest.java
@@ -104,6 +104,8 @@ public class ClEventManagerWithEventTest {
@Mock
private Actor policyActor;
@Mock
+ private EventManagerServices services;
+ @Mock
private ActorService actors;
@Mock
private OperationHistoryDataManager dataMgr;
@@ -125,6 +127,9 @@ public class ClEventManagerWithEventTest {
*/
@Before
public void setUp() throws ControlLoopException, CoderException {
+ when(services.getActorService()).thenReturn(actors);
+ when(services.getDataManager()).thenReturn(dataMgr);
+
when(workMem.getFactHandle(any())).thenReturn(factHandle);
event = new VirtualControlLoopEvent();
@@ -145,7 +150,7 @@ public class ClEventManagerWithEventTest {
locks = new ArrayList<>();
- mgr = new MyManager(params, event, workMem);
+ mgr = new MyManager(services, params, event, workMem);
}
@Test
@@ -158,13 +163,14 @@ public class ClEventManagerWithEventTest {
// invalid
event.setTarget("");
- assertThatThrownBy(() -> new MyManager(params, event, workMem)).isInstanceOf(ControlLoopException.class);
+ assertThatThrownBy(() -> new MyManager(services, params, event, workMem))
+ .isInstanceOf(ControlLoopException.class);
}
@Test
public void testPopulateNotification() throws Exception {
loadPolicy(EVENT_MGR_MULTI_YAML);
- mgr = new MyManager(params, event, workMem);
+ mgr = new MyManager(services, params, event, workMem);
// before started
assertNotNull(mgr.makeNotification());
@@ -333,10 +339,10 @@ public class ClEventManagerWithEventTest {
private class MyManager extends ClEventManagerWithEvent<MyStep> {
private static final long serialVersionUID = 1L;
- public MyManager(ControlLoopParams params, VirtualControlLoopEvent event, WorkingMemory workMem)
- throws ControlLoopException {
+ public MyManager(EventManagerServices services, ControlLoopParams params, VirtualControlLoopEvent event,
+ WorkingMemory workMem) throws ControlLoopException {
- super(params, event, workMem);
+ super(services, params, event, workMem);
}
@Override
@@ -352,16 +358,6 @@ public class ClEventManagerWithEventTest {
}
@Override
- public ActorService getActorService() {
- return actors;
- }
-
- @Override
- public OperationHistoryDataManager getDataManager() {
- return dataMgr;
- }
-
- @Override
protected PolicyEngine getPolicyEngineManager() {
return engineMgr;
}
diff --git a/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithOutcomeTest.java b/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithOutcomeTest.java
index d64d2bbc5..ba293c1b5 100644
--- a/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithOutcomeTest.java
+++ b/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithOutcomeTest.java
@@ -51,7 +51,6 @@ import org.onap.policy.common.utils.resources.ResourceUtils;
import org.onap.policy.controlloop.ControlLoopException;
import org.onap.policy.controlloop.ControlLoopResponse;
import org.onap.policy.controlloop.VirtualControlLoopNotification;
-import org.onap.policy.controlloop.actorserviceprovider.ActorService;
import org.onap.policy.controlloop.actorserviceprovider.Operation;
import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
@@ -59,7 +58,6 @@ import org.onap.policy.controlloop.actorserviceprovider.Operator;
import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
import org.onap.policy.controlloop.actorserviceprovider.spi.Actor;
import org.onap.policy.controlloop.drl.legacy.ControlLoopParams;
-import org.onap.policy.controlloop.ophistory.OperationHistoryDataManager;
import org.onap.policy.drools.core.lock.LockCallback;
import org.onap.policy.drools.core.lock.LockImpl;
import org.onap.policy.drools.core.lock.LockState;
@@ -97,9 +95,7 @@ public class ClEventManagerWithOutcomeTest {
@Mock
private Actor policyActor;
@Mock
- private ActorService actors;
- @Mock
- private OperationHistoryDataManager dataMgr;
+ private EventManagerServices services;
@Mock
private ExecutorService executor;
@Mock
@@ -129,7 +125,7 @@ public class ClEventManagerWithOutcomeTest {
locks = new ArrayList<>();
- mgr = new MyManager(params, REQ_ID, workMem);
+ mgr = new MyManager(services, params, REQ_ID, workMem);
}
@Test
@@ -137,13 +133,14 @@ public class ClEventManagerWithOutcomeTest {
assertEquals(POLICY_NAME, mgr.getPolicyName());
// invalid
- assertThatThrownBy(() -> new MyManager(params, null, workMem)).isInstanceOf(ControlLoopException.class);
+ assertThatThrownBy(() -> new MyManager(services, params, null, workMem))
+ .isInstanceOf(ControlLoopException.class);
}
@Test
public void testLoadNextPolicy_testGetFullHistory_testGetPartialHistory() throws Exception {
loadPolicy(EVENT_MGR_MULTI_YAML);
- mgr = new MyManager(params, REQ_ID, workMem);
+ mgr = new MyManager(services, params, REQ_ID, workMem);
// start and load step for first policy
mgr.start();
@@ -249,7 +246,7 @@ public class ClEventManagerWithOutcomeTest {
@Test
public void testMakeNotification() throws Exception {
loadPolicy(EVENT_MGR_MULTI_YAML);
- mgr = new MyManager(params, REQ_ID, workMem);
+ mgr = new MyManager(services, params, REQ_ID, workMem);
// before started
assertNotNull(mgr.makeNotification());
@@ -353,9 +350,10 @@ public class ClEventManagerWithOutcomeTest {
private class MyManager extends ClEventManagerWithOutcome<MyStep> {
private static final long serialVersionUID = 1L;
- public MyManager(ControlLoopParams params, UUID requestId, WorkingMemory workMem) throws ControlLoopException {
+ public MyManager(EventManagerServices services, ControlLoopParams params, UUID requestId, WorkingMemory workMem)
+ throws ControlLoopException {
- super(params, requestId, workMem);
+ super(services, params, requestId, workMem);
}
@Override
@@ -371,16 +369,6 @@ public class ClEventManagerWithOutcomeTest {
}
@Override
- public ActorService getActorService() {
- return actors;
- }
-
- @Override
- public OperationHistoryDataManager getDataManager() {
- return dataMgr;
- }
-
- @Override
protected PolicyEngine getPolicyEngineManager() {
return engineMgr;
}
diff --git a/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithStepsTest.java b/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithStepsTest.java
index 06dc838e2..3a22d0cf5 100644
--- a/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithStepsTest.java
+++ b/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ClEventManagerWithStepsTest.java
@@ -66,7 +66,6 @@ import org.onap.policy.controlloop.actorserviceprovider.Operator;
import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
import org.onap.policy.controlloop.actorserviceprovider.spi.Actor;
import org.onap.policy.controlloop.drl.legacy.ControlLoopParams;
-import org.onap.policy.controlloop.ophistory.OperationHistoryDataManager;
import org.onap.policy.drools.core.lock.LockCallback;
import org.onap.policy.drools.core.lock.LockImpl;
import org.onap.policy.drools.core.lock.LockState;
@@ -105,11 +104,11 @@ public class ClEventManagerWithStepsTest {
@Mock
private Actor policyActor;
@Mock
- private ActorService actors;
+ private ExecutorService executor;
@Mock
- private OperationHistoryDataManager dataMgr;
+ private EventManagerServices services;
@Mock
- private ExecutorService executor;
+ private ActorService actors;
@Mock
private MyStep stepa;
@Mock
@@ -125,6 +124,8 @@ public class ClEventManagerWithStepsTest {
*/
@Before
public void setUp() throws ControlLoopException, CoderException {
+ when(services.getActorService()).thenReturn(actors);
+
when(workMem.getFactHandle(any())).thenReturn(factHandle);
params = new ControlLoopParams();
@@ -137,7 +138,7 @@ public class ClEventManagerWithStepsTest {
locks = new ArrayList<>();
- mgr = new MyManager(params, REQ_ID, workMem);
+ mgr = new MyManager(services, params, REQ_ID, workMem);
}
@Test
@@ -145,7 +146,8 @@ public class ClEventManagerWithStepsTest {
assertEquals(POLICY_NAME, mgr.getPolicyName());
// invalid
- assertThatThrownBy(() -> new MyManager(params, null, workMem)).isInstanceOf(ControlLoopException.class);
+ assertThatThrownBy(() -> new MyManager(services, params, null, workMem))
+ .isInstanceOf(ControlLoopException.class);
}
@Test
@@ -222,7 +224,7 @@ public class ClEventManagerWithStepsTest {
@Test
public void testStartInactive() throws Exception {
// make an inactive manager by deserializing it
- RealManager mgr2 = Serializer.roundTrip(new RealManager(params, REQ_ID, workMem));
+ RealManager mgr2 = Serializer.roundTrip(new RealManager(services, params, REQ_ID, workMem));
mgr = mgr2;
// cannot re-start
@@ -246,7 +248,7 @@ public class ClEventManagerWithStepsTest {
@Test
public void testLoadNextPolicy() throws Exception {
loadPolicy(EVENT_MGR_MULTI_YAML);
- mgr = new MyManager(params, REQ_ID, workMem);
+ mgr = new MyManager(services, params, REQ_ID, workMem);
// start and load step for first policy
mgr.start();
@@ -420,9 +422,10 @@ public class ClEventManagerWithStepsTest {
private class MyManager extends ClEventManagerWithSteps<MyStep> {
private static final long serialVersionUID = 1L;
- public MyManager(ControlLoopParams params, UUID requestId, WorkingMemory workMem) throws ControlLoopException {
+ public MyManager(EventManagerServices services, ControlLoopParams params, UUID requestId, WorkingMemory workMem)
+ throws ControlLoopException {
- super(params, requestId, workMem);
+ super(services, params, requestId, workMem);
}
@Override
@@ -438,16 +441,6 @@ public class ClEventManagerWithStepsTest {
}
@Override
- public ActorService getActorService() {
- return actors;
- }
-
- @Override
- public OperationHistoryDataManager getDataManager() {
- return dataMgr;
- }
-
- @Override
protected PolicyEngine getPolicyEngineManager() {
return engineMgr;
}
@@ -462,10 +455,10 @@ public class ClEventManagerWithStepsTest {
private static class RealManager extends ClEventManagerWithSteps<MyStep> {
private static final long serialVersionUID = 1L;
- public RealManager(ControlLoopParams params, UUID requestId, WorkingMemory workMem)
- throws ControlLoopException {
+ public RealManager(EventManagerServices services, ControlLoopParams params, UUID requestId,
+ WorkingMemory workMem) throws ControlLoopException {
- super(params, requestId, workMem);
+ super(services, params, requestId, workMem);
}
@Override
diff --git a/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManagerTest.java b/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManagerTest.java
index b930f57f8..ece13611b 100644
--- a/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManagerTest.java
+++ b/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManagerTest.java
@@ -28,6 +28,7 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
import java.io.IOException;
import java.util.ArrayList;
@@ -50,6 +51,7 @@ import org.onap.policy.controlloop.ControlLoopException;
import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
import org.onap.policy.controlloop.drl.legacy.ControlLoopParams;
+import org.onap.policy.controlloop.ophistory.OperationHistoryDataManager;
import org.onap.policy.controlloop.ophistory.OperationHistoryDataManagerStub;
import org.onap.policy.drools.core.lock.LockCallback;
import org.onap.policy.drools.core.lock.LockImpl;
@@ -72,6 +74,10 @@ public class ControlLoopEventManagerTest {
@Mock
private ExecutorService executor;
+ @Mock
+ private EventManagerServices services;
+ @Mock
+ private OperationHistoryDataManager dataMgr;
private long preCreateTimeMs;
private List<LockImpl> locks;
@@ -84,6 +90,8 @@ public class ControlLoopEventManagerTest {
*/
@Before
public void setUp() throws ControlLoopException, CoderException {
+ when(services.getDataManager()).thenReturn(dataMgr);
+
params = new ControlLoopParams();
params.setClosedLoopControlName(CL_NAME);
params.setPolicyName(POLICY_NAME);
@@ -99,7 +107,7 @@ public class ControlLoopEventManagerTest {
MyManager.executor = executor;
MyManager.locks = locks;
- mgr = new MyManager(params, REQ_ID);
+ mgr = new MyManager(services, params, REQ_ID);
}
@Test
@@ -119,16 +127,16 @@ public class ControlLoopEventManagerTest {
public void testGetCreateCount() throws ControlLoopException {
long original = ControlLoopEventManager.getCreateCount();
- new MyManager(params, REQ_ID);
+ new MyManager(services, params, REQ_ID);
assertEquals(original + 1, ControlLoopEventManager.getCreateCount());
- new MyManager(params, REQ_ID);
+ new MyManager(services, params, REQ_ID);
assertEquals(original + 2, ControlLoopEventManager.getCreateCount());
}
@Test
public void testIsActive() throws Exception {
- mgr = new ControlLoopEventManager(params, REQ_ID);
+ mgr = new ControlLoopEventManager(services, params, REQ_ID);
assertTrue(mgr.isActive());
ControlLoopEventManager mgr2 = Serializer.roundTrip(mgr);
@@ -236,7 +244,7 @@ public class ControlLoopEventManagerTest {
*/
@Test
public void testReleaseLockException() throws ControlLoopException {
- mgr = new MyManager(params, REQ_ID) {
+ mgr = new MyManager(services, params, REQ_ID) {
private static final long serialVersionUID = 1L;
@Override
@@ -325,11 +333,19 @@ public class ControlLoopEventManagerTest {
}
/**
+ * Tests getDataManager() when not disabled.
+ */
+ @Test
+ public void testGetDataManagerNotDisabled() throws ControlLoopException {
+ assertThat(mgr.getDataManager()).isSameAs(dataMgr);
+ }
+
+ /**
* Tests getDataManager() when guard.disabled=true.
*/
@Test
public void testGetDataManagerDisabled() throws ControlLoopException {
- mgr = new MyManager(params, REQ_ID) {
+ mgr = new MyManager(services, params, REQ_ID) {
private static final long serialVersionUID = 1L;
@Override
@@ -368,8 +384,9 @@ public class ControlLoopEventManagerTest {
private static ExecutorService executor;
private static List<LockImpl> locks;
- public MyManager(ControlLoopParams params, UUID requestId) throws ControlLoopException {
- super(params, requestId);
+ public MyManager(EventManagerServices services, ControlLoopParams params, UUID requestId)
+ throws ControlLoopException {
+ super(services, params, requestId);
}
@Override