diff options
Diffstat (limited to 'controlloop')
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 |