aboutsummaryrefslogtreecommitdiffstats
path: root/testsuites/performance/performance-benchmark-test
diff options
context:
space:
mode:
Diffstat (limited to 'testsuites/performance/performance-benchmark-test')
-rw-r--r--testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/engine/runtime/ApexServiceModelUpdateTest.java362
-rw-r--r--testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/engine/runtime/ApexServiceTest.java477
-rw-r--r--testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/engine/utils/Utils.java55
3 files changed, 0 insertions, 894 deletions
diff --git a/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/engine/runtime/ApexServiceModelUpdateTest.java b/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/engine/runtime/ApexServiceModelUpdateTest.java
deleted file mode 100644
index cf930150e..000000000
--- a/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/engine/runtime/ApexServiceModelUpdateTest.java
+++ /dev/null
@@ -1,362 +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.benchmark.engine.runtime;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.io.IOException;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.onap.policy.apex.core.infrastructure.threading.ThreadUtilities;
-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.service.ModelService;
-import org.onap.policy.apex.model.policymodel.concepts.AxPolicyModel;
-import org.onap.policy.apex.plugins.executor.mvel.MvelExecutorParameters;
-import org.onap.policy.apex.service.engine.event.ApexEvent;
-import org.onap.policy.apex.service.engine.event.ApexEventException;
-import org.onap.policy.apex.service.engine.runtime.ApexEventListener;
-import org.onap.policy.apex.service.engine.runtime.EngineService;
-import org.onap.policy.apex.service.engine.runtime.EngineServiceEventInterface;
-import org.onap.policy.apex.service.engine.runtime.impl.EngineServiceImpl;
-import org.onap.policy.apex.service.parameters.engineservice.EngineServiceParameters;
-import org.onap.policy.apex.testsuites.integration.common.model.SampleDomainModelFactory;
-import org.onap.policy.apex.testsuites.performance.benchmark.engine.utils.Utils;
-import org.slf4j.ext.XLogger;
-import org.slf4j.ext.XLoggerFactory;
-
-/**
- * The Class ApexServiceTest.
- *
- * @author Liam Fallon (liam.fallon@ericsson.com)
- */
-public class ApexServiceModelUpdateTest {
- // Logger for this class
- private static final XLogger LOGGER = XLoggerFactory.getXLogger(ApexServiceModelUpdateTest.class);
-
- private final AxArtifactKey engineServiceKey = new AxArtifactKey("Machine-1_process-1_engine-1", "0.0.0");
- private final EngineServiceParameters parameters = new EngineServiceParameters();
- private EngineService service = null;
- private TestListener listener = null;
- private int actionEventsReceived = 0;
-
- private AxPolicyModel apexSamplePolicyModel = null;
- private String apexSampleModelString;
-
- /**
- * Sets up the test by creating an engine and reading in the test policy.
- *
- * @throws ApexException if something goes wrong
- * @throws IOException on IO exceptions
- */
- @Before
- public void setUp() throws ApexException, IOException {
- // create engine with 3 threads
- parameters.setInstanceCount(3);
- parameters.setName(engineServiceKey.getName());
- parameters.setVersion(engineServiceKey.getVersion());
- parameters.setId(100);
- parameters.getEngineParameters().getExecutorParameterMap().put("MVEL", new MvelExecutorParameters());
- service = EngineServiceImpl.create(parameters);
-
- LOGGER.debug("Running TestApexEngine. . .");
-
- apexSamplePolicyModel = new SampleDomainModelFactory().getSamplePolicyModel("MVEL");
- assertNotNull(apexSamplePolicyModel);
-
- apexSampleModelString = Utils.getModelString(apexSamplePolicyModel);
-
- // create engine
- listener = new TestListener();
- service.registerActionListener("MyListener", listener);
- }
-
- /**
- * Tear down the the test infrastructure.
- *
- * @throws ApexException if there is an error
- */
- @After
- public void tearDown() throws Exception {
- if (service != null) {
- service.stop();
- }
- service = null;
- }
-
- /**
- * Test start with no model.
- */
- @Test
- public void testNoModelStart() {
- try {
- service.startAll();
- fail("Engine should not start with no model");
- } catch (final Exception e) {
- e.printStackTrace();
- assertEquals("start()<-Machine-1_process-1_engine-1-0:0.0.0,STOPPED, cannot start engine, "
- + "engine has not been initialized, its model is not loaded", e.getMessage());
- }
- }
-
- /**
- * Test model update with string model without force.
- *
- * @throws ApexException if there is an error
- */
- @Test
- public void testModelUpdateStringNewNoForce() throws ApexException {
- service.updateModel(parameters.getEngineKey(), apexSampleModelString, false);
- service.startAll();
- assertEquals(apexSamplePolicyModel.getKey(), ModelService.getModel(AxPolicyModel.class).getKey());
- }
-
- /**
- * Test model update with string model with force.
- *
- * @throws ApexException if there is an error
- */
- @Test
- public void testModelUpdateStringNewForce() throws ApexException {
- service.updateModel(parameters.getEngineKey(), apexSampleModelString, true);
- service.startAll();
- assertEquals(apexSamplePolicyModel.getKey(), ModelService.getModel(AxPolicyModel.class).getKey());
- }
-
- /**
- * Test model update with a new string model without force.
- *
- * @throws ApexException if there is an error
- */
- @Test
- public void testModelUpdateStringNewNewNoForce() throws ApexException {
- service.updateModel(parameters.getEngineKey(), apexSampleModelString, false);
- service.startAll();
- assertEquals(apexSamplePolicyModel.getKey(), ModelService.getModel(AxPolicyModel.class).getKey());
-
- sendEvents();
-
- service.updateModel(parameters.getEngineKey(), apexSampleModelString, false);
- assertEquals(apexSamplePolicyModel.getKey(), ModelService.getModel(AxPolicyModel.class).getKey());
-
- sendEvents();
- }
-
- /**
- * Test incompatible model update with a model object without force.
- *
- * @throws ApexException if there is an error
- */
- @Test
- public void testModelUpdateIncoNoForce() throws ApexException {
- service.updateModel(parameters.getEngineKey(), apexSamplePolicyModel, false);
- service.startAll();
- assertEquals(apexSamplePolicyModel.getKey(), ModelService.getModel(AxPolicyModel.class).getKey());
-
- // Different model name, incompatible
- final AxPolicyModel incoPolicyModel0 = new AxPolicyModel(apexSamplePolicyModel);
- incoPolicyModel0.getKey().setName("INCOMPATIBLE");
-
- try {
- service.updateModel(parameters.getEngineKey(), incoPolicyModel0, false);
- fail("model update should fail on incompatible model without force being true");
- } catch (final Exception e) {
- System.err.println(e.getMessage());
- assertEquals("apex model update failed, supplied model with key \"INCOMPATIBLE:0.0.1\" is not a compatible "
- + "model update from the existing engine model with key \"SamplePolicyModelMVEL:0.0.1\"",
- e.getMessage());
- }
-
- // Still on old model
- sendEvents();
-
- // Different major version, incompatible
- final AxPolicyModel incoPolicyModel1 = new AxPolicyModel(apexSamplePolicyModel);
- incoPolicyModel1.getKey().setVersion("1.0.1");
-
- try {
- service.updateModel(parameters.getEngineKey(), incoPolicyModel1, false);
- fail("model update should fail on incompatible model without force being true");
- } catch (final Exception e) {
- System.err.println(e.getMessage());
- e.printStackTrace();
- assertEquals("apex model update failed, supplied model with key \"SamplePolicyModelMVEL:1.0.1\" is not "
- + "a compatible model update from the existing engine model with key "
- + "\"SamplePolicyModelMVEL:0.0.1\"", e.getMessage());
- }
-
- // Still on old model
- sendEvents();
-
- // Different minor version, compatible
- final AxPolicyModel coPolicyModel0 = new AxPolicyModel(apexSamplePolicyModel);
- coPolicyModel0.getKey().setVersion("0.1.0");
- service.updateModel(parameters.getEngineKey(), coPolicyModel0, false);
-
- // On new compatible model
- sendEvents();
-
- // Different patch version, compatible
- final AxPolicyModel coPolicyModel1 = new AxPolicyModel(apexSamplePolicyModel);
- coPolicyModel1.getKey().setVersion("0.0.2");
- service.updateModel(parameters.getEngineKey(), coPolicyModel1, false);
-
- // On new compatible model
- sendEvents();
-
- }
-
- /**
- * Test incompatible model update with a model object with force.
- *
- * @throws ApexException if there is an error
- */
- @Test
- public void testModelUpdateIncoForce() throws ApexException {
- service.updateModel(parameters.getEngineKey(), apexSamplePolicyModel, false);
- service.startAll();
- assertEquals(apexSamplePolicyModel.getKey(), ModelService.getModel(AxPolicyModel.class).getKey());
-
- // Different model name, incompatible
- final AxPolicyModel incoPolicyModel0 = new AxPolicyModel(apexSamplePolicyModel);
- incoPolicyModel0.getKey().setName("INCOMPATIBLE");
- service.updateModel(parameters.getEngineKey(), incoPolicyModel0, true);
-
- // On updated model
- sendEvents();
-
- // Different major version, incompatible
- final AxPolicyModel incoPolicyModel1 = new AxPolicyModel(apexSamplePolicyModel);
- incoPolicyModel1.getKey().setVersion("1.0.1");
- service.updateModel(parameters.getEngineKey(), incoPolicyModel1, true);
-
- // On updated model
- sendEvents();
-
- // Different minor version, compatible
- final AxPolicyModel coPolicyModel0 = new AxPolicyModel(apexSamplePolicyModel);
- coPolicyModel0.getKey().setVersion("0.1.0");
- service.updateModel(parameters.getEngineKey(), coPolicyModel0, true);
-
- // On new compatible model
- sendEvents();
-
- // Different patch version, compatible
- final AxPolicyModel coPolicyModel1 = new AxPolicyModel(apexSamplePolicyModel);
- coPolicyModel1.getKey().setVersion("0.0.2");
- service.updateModel(parameters.getEngineKey(), coPolicyModel1, true);
-
- // On new compatible model
- sendEvents();
-
- }
-
- /**
- * Utility method to send some events into the test engine.
- *
- * @throws ApexEventException if there is an error
- */
- private void sendEvents() throws ApexEventException {
- final EngineServiceEventInterface engineServiceEventInterface = service.getEngineServiceEventInterface();
-
- // Send some events
- final Date testStartTime = new Date();
- final Map<String, Object> eventDataMap = new HashMap<String, Object>();
- eventDataMap.put("TestSlogan", "This is a test slogan");
- eventDataMap.put("TestMatchCase", (byte) 123);
- eventDataMap.put("TestTimestamp", testStartTime.getTime());
- eventDataMap.put("TestTemperature", 34.5445667);
-
- final ApexEvent event = new ApexEvent("Event0000", "0.0.1", "org.onap.policy.apex.domains.sample.events",
- "test", "apex");
- event.putAll(eventDataMap);
- engineServiceEventInterface.sendEvent(event);
-
- final ApexEvent event2 = new ApexEvent("Event0100", "0.0.1", "org.onap.policy.apex.domains.sample.events",
- "test", "apex");
- event2.putAll(eventDataMap);
- engineServiceEventInterface.sendEvent(event2);
-
- // Wait for results
- while (actionEventsReceived < 2) {
- ThreadUtilities.sleep(100);
- }
- ThreadUtilities.sleep(500);
- }
-
- /**
- * The listener interface for receiving test events. The class that is interested in processing a test event
- * implements this interface, and the object created with that class is registered with a component using the
- * component's <code>addTestListener</code> method. When the test event occurs, that object's appropriate method is
- * invoked.
- *
- * @see TestEvent
- */
- private final class TestListener implements ApexEventListener {
-
- /*
- * (non-Javadoc)
- *
- * @see org.onap.policy.apex.service.engine.runtime.ApexEventListener#onApexEvent(org.onap.policy
- * .apex.service.engine.event.ApexEvent)
- */
- @Override
- public synchronized void onApexEvent(final ApexEvent event) {
- LOGGER.debug("result 1 is:" + event);
- checkResult(event);
- actionEventsReceived++;
-
- final Date testStartTime = new Date((Long) event.get("TestTimestamp"));
- final Date testEndTime = new Date();
-
- LOGGER.info("policy execution time: " + (testEndTime.getTime() - testStartTime.getTime()) + "ms");
- }
-
- /**
- * Check result.
- *
- * @param result the result
- */
- private void checkResult(final ApexEvent result) {
- assertTrue(result.getName().startsWith("Event0004") || result.getName().startsWith("Event0104"));
-
- assertTrue(result.get("TestSlogan").equals("This is a test slogan"));
- assertTrue(result.get("TestMatchCase").equals(new Byte((byte) 123)));
- assertTrue(result.get("TestTemperature").equals(34.5445667));
- assertTrue(((byte) result.get("TestMatchCaseSelected")) >= 0
- && ((byte) result.get("TestMatchCaseSelected") <= 3));
- assertTrue(((byte) result.get("TestEstablishCaseSelected")) >= 0
- && ((byte) result.get("TestEstablishCaseSelected") <= 3));
- assertTrue(((byte) result.get("TestDecideCaseSelected")) >= 0
- && ((byte) result.get("TestDecideCaseSelected") <= 3));
- assertTrue(((byte) result.get("TestActCaseSelected")) >= 0
- && ((byte) result.get("TestActCaseSelected") <= 3));
- }
- }
-}
diff --git a/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/engine/runtime/ApexServiceTest.java b/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/engine/runtime/ApexServiceTest.java
deleted file mode 100644
index e66d1b791..000000000
--- a/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/engine/runtime/ApexServiceTest.java
+++ /dev/null
@@ -1,477 +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.benchmark.engine.runtime;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.onap.policy.apex.core.infrastructure.threading.ThreadUtilities;
-import org.onap.policy.apex.model.basicmodel.concepts.ApexException;
-import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey;
-import org.onap.policy.apex.model.policymodel.concepts.AxPolicyModel;
-import org.onap.policy.apex.plugins.executor.mvel.MvelExecutorParameters;
-import org.onap.policy.apex.service.engine.event.ApexEvent;
-import org.onap.policy.apex.service.engine.runtime.ApexEventListener;
-import org.onap.policy.apex.service.engine.runtime.EngineService;
-import org.onap.policy.apex.service.engine.runtime.EngineServiceEventInterface;
-import org.onap.policy.apex.service.engine.runtime.impl.EngineServiceImpl;
-import org.onap.policy.apex.service.parameters.engineservice.EngineServiceParameters;
-import org.onap.policy.apex.testsuites.integration.common.model.SampleDomainModelFactory;
-import org.onap.policy.apex.testsuites.performance.benchmark.engine.utils.Utils;
-import org.slf4j.ext.XLogger;
-import org.slf4j.ext.XLoggerFactory;
-
-/**
- * The Class ApexServiceTest.
- *
- * @author Liam Fallon (liam.fallon@ericsson.com)
- */
-public class ApexServiceTest {
- // Logger for this class
- private static final XLogger LOGGER = XLoggerFactory.getXLogger(ApexServiceTest.class);
-
- private static final long MAX_STOP_WAIT = 5000; // 5 sec
- private static final long MAX_START_WAIT = 5000; // 5 sec
- private static final long MAX_RECV_WAIT = 5000; // 5 sec
-
- private static final AxArtifactKey engineServiceKey = new AxArtifactKey("Machine-1_process-1_engine-1", "0.0.0");
- private static final EngineServiceParameters parameters = new EngineServiceParameters();
- private static EngineService service = null;
- private static TestListener listener = null;
- private static AxPolicyModel apexPolicyModel = null;
- private static int actionEventsReceived = 0;
-
- private static String apexModelString;
-
- private boolean waitFlag = true;
-
- /**
- * Sets the up.
- *
- * @throws Exception the exception
- */
- @BeforeClass
- public static void setUp() throws Exception {
- // create engine with 3 threads
- parameters.setInstanceCount(3);
- parameters.setName(engineServiceKey.getName());
- parameters.setVersion(engineServiceKey.getVersion());
- parameters.setId(100);
- parameters.getEngineParameters().getExecutorParameterMap().put("MVEL", new MvelExecutorParameters());
- service = EngineServiceImpl.create(parameters);
-
-
- LOGGER.debug("Running TestApexEngine. . .");
-
- apexPolicyModel = new SampleDomainModelFactory().getSamplePolicyModel("MVEL");
- assertNotNull(apexPolicyModel);
-
- apexModelString = Utils.getModelString(apexPolicyModel);
-
- // create engine
- listener = new TestListener();
- service.registerActionListener("Listener", listener);
- }
-
- /**
- * Update the engine then test the engine with 2 sample events.
- *
- * @throws ApexException if there is a problem
- */
- @Test
- public void testExecutionSet1() throws ApexException {
- service.updateModel(parameters.getEngineKey(), apexModelString, true);
- // Start the service
- service.startAll();
- final long starttime = System.currentTimeMillis();
- for (final AxArtifactKey engineKey : service.getEngineKeys()) {
- LOGGER.info("{}", service.getStatus(engineKey));
- }
- while (!service.isStarted() && System.currentTimeMillis() - starttime < MAX_START_WAIT) {
- ThreadUtilities.sleep(200);
- }
- if (!service.isStarted()) {
- fail("Apex Service " + service.getKey() + " failed to start after " + MAX_START_WAIT + " ms");
- }
-
- final EngineServiceEventInterface engineServiceEventInterface = service.getEngineServiceEventInterface();
-
- // Send some events
- final Date testStartTime = new Date();
- final Map<String, Object> eventDataMap = new HashMap<String, Object>();
- eventDataMap.put("TestSlogan", "This is a test slogan");
- eventDataMap.put("TestMatchCase", (byte) 123);
- eventDataMap.put("TestTimestamp", testStartTime.getTime());
- eventDataMap.put("TestTemperature", 34.5445667);
-
- final ApexEvent event =
- new ApexEvent("Event0000", "0.0.1", "org.onap.policy.apex.domains.sample.events", "test", "apex");
- event.setExecutionId(System.nanoTime());
- event.putAll(eventDataMap);
- engineServiceEventInterface.sendEvent(event);
-
- final ApexEvent event2 =
- new ApexEvent("Event0100", "0.0.1", "org.onap.policy.apex.domains.sample.events", "test", "apex");
- event2.setExecutionId(System.nanoTime());
- event2.putAll(eventDataMap);
- engineServiceEventInterface.sendEvent(event2);
-
- // Wait for results
- final long recvtime = System.currentTimeMillis();
- while (actionEventsReceived < 2 && System.currentTimeMillis() - recvtime < MAX_RECV_WAIT) {
- ThreadUtilities.sleep(100);
- }
- ThreadUtilities.sleep(500);
- assertEquals(2, actionEventsReceived);
- actionEventsReceived = 0;
-
-
- // Stop all engines on this engine service
- final long stoptime = System.currentTimeMillis();
- service.stop();
- while (!service.isStopped() && System.currentTimeMillis() - stoptime < MAX_STOP_WAIT) {
- ThreadUtilities.sleep(200);
- }
- if (!service.isStopped()) {
- fail("Apex Service " + service.getKey() + " failed to stop after " + MAX_STOP_WAIT + " ms");
- }
- }
-
- /**
- * Update the engine then test the engine with 2 sample events.
- *
- * @throws ApexException if there is a problem
- */
- @Test
- public void testExecutionSet1Sync() throws ApexException {
- service.updateModel(parameters.getEngineKey(), apexModelString, true);
- // Start the service
- service.startAll();
- final long starttime = System.currentTimeMillis();
- for (final AxArtifactKey engineKey : service.getEngineKeys()) {
- LOGGER.info("{}", service.getStatus(engineKey));
- }
- while (!service.isStarted() && System.currentTimeMillis() - starttime < MAX_START_WAIT) {
- ThreadUtilities.sleep(200);
- }
- if (!service.isStarted()) {
- fail("Apex Service " + service.getKey() + " failed to start after " + MAX_START_WAIT + " ms");
- }
-
- // Send some events
- final Date testStartTime = new Date();
- final Map<String, Object> eventDataMap = new HashMap<String, Object>();
- eventDataMap.put("TestSlogan", "This is a test slogan");
- eventDataMap.put("TestMatchCase", (byte) 123);
- eventDataMap.put("TestTimestamp", testStartTime.getTime());
- eventDataMap.put("TestTemperature", 34.5445667);
-
- final ApexEvent event1 =
- new ApexEvent("Event0000", "0.0.1", "org.onap.policy.apex.domains.sample.events", "test", "apex");
- event1.putAll(eventDataMap);
- event1.setExecutionId(System.nanoTime());
-
- final ApexEventListener myEventListener1 = new ApexEventListener() {
- @Override
- public void onApexEvent(final ApexEvent responseEvent) {
- assertNotNull("Synchronous sendEventWait failed", responseEvent);
- assertEquals(event1.getExecutionId(), responseEvent.getExecutionId());
- waitFlag = false;
- }
- };
-
- waitFlag = true;
- service.registerActionListener("Listener1", myEventListener1);
- service.getEngineServiceEventInterface().sendEvent(event1);
-
- while (waitFlag) {
- ThreadUtilities.sleep(100);
- }
-
- final ApexEvent event2 =
- new ApexEvent("Event0100", "0.0.1", "org.onap.policy.apex.domains.sample.events", "test", "apex");
- event2.setExecutionId(System.nanoTime());
- event2.putAll(eventDataMap);
-
- final ApexEventListener myEventListener2 = new ApexEventListener() {
- @Override
- public void onApexEvent(final ApexEvent responseEvent) {
- assertNotNull("Synchronous sendEventWait failed", responseEvent);
- assertEquals(event2.getExecutionId(), responseEvent.getExecutionId());
- assertEquals(2, actionEventsReceived);
- waitFlag = false;
- }
- };
-
- waitFlag = true;
- service.deregisterActionListener("Listener1");
- service.registerActionListener("Listener2", myEventListener2);
- service.getEngineServiceEventInterface().sendEvent(event2);
-
- while (waitFlag) {
- ThreadUtilities.sleep(100);
- }
- service.deregisterActionListener("Listener2");
-
- actionEventsReceived = 0;
-
- // Stop all engines on this engine service
- final long stoptime = System.currentTimeMillis();
- service.stop();
- while (!service.isStopped() && System.currentTimeMillis() - stoptime < MAX_STOP_WAIT) {
- ThreadUtilities.sleep(200);
- }
- if (!service.isStopped()) {
- fail("Apex Service " + service.getKey() + " failed to stop after " + MAX_STOP_WAIT + " ms");
- }
- }
-
- /**
- * Update the engine then test the engine with 2 sample events - again.
- *
- * @throws ApexException if there is a problem
- */
- @Test
- public void testExecutionSet2() throws ApexException {
- service.updateModel(parameters.getEngineKey(), apexModelString, true);
- // Start the service
- service.startAll();
- final long starttime = System.currentTimeMillis();
- for (final AxArtifactKey engineKey : service.getEngineKeys()) {
- LOGGER.info("{}", service.getStatus(engineKey));
- }
- while (!service.isStarted() && System.currentTimeMillis() - starttime < MAX_START_WAIT) {
- ThreadUtilities.sleep(200);
- }
- if (!service.isStarted()) {
- fail("Apex Service " + service.getKey() + " failed to start after " + MAX_START_WAIT + " ms");
- }
-
- final EngineServiceEventInterface engineServiceEventInterface = service.getEngineServiceEventInterface();
-
- // Send some events
- final Date testStartTime = new Date();
- final Map<String, Object> eventDataMap = new HashMap<String, Object>();
- eventDataMap.put("TestSlogan", "This is a test slogan");
- eventDataMap.put("TestMatchCase", (byte) 123);
- eventDataMap.put("TestTimestamp", testStartTime.getTime());
- eventDataMap.put("TestTemperature", 34.5445667);
-
- final ApexEvent event =
- new ApexEvent("Event0000", "0.0.1", "org.onap.policy.apex.domains.sample.events", "test", "apex");
- event.setExecutionId(System.nanoTime());
- event.putAll(eventDataMap);
- engineServiceEventInterface.sendEvent(event);
-
- final ApexEvent event2 =
- new ApexEvent("Event0100", "0.0.1", "org.onap.policy.apex.domains.sample.events", "test", "apex");
- event2.setExecutionId(System.nanoTime());
- event2.putAll(eventDataMap);
- engineServiceEventInterface.sendEvent(event2);
-
- // Wait for results
- final long recvtime = System.currentTimeMillis();
- while (actionEventsReceived < 2 && System.currentTimeMillis() - recvtime < MAX_RECV_WAIT) {
- ThreadUtilities.sleep(100);
- }
- ThreadUtilities.sleep(500);
- assertEquals(2, actionEventsReceived);
- actionEventsReceived = 0;
-
- // Stop all engines on this engine service
- final long stoptime = System.currentTimeMillis();
- service.stop();
- while (!service.isStopped() && System.currentTimeMillis() - stoptime < MAX_STOP_WAIT) {
- ThreadUtilities.sleep(200);
- }
- if (!service.isStopped()) {
- fail("Apex Service " + service.getKey() + " failed to stop after " + MAX_STOP_WAIT + " ms");
- }
- }
-
- /**
- * Update the engine then test the engine with 2 sample events - again.
- *
- * @throws ApexException if there is a problem
- */
- @Test
- public void testExecutionSet2Sync() throws ApexException {
- service.updateModel(parameters.getEngineKey(), apexModelString, true);
- // Start the service
- service.startAll();
- final long starttime = System.currentTimeMillis();
- for (final AxArtifactKey engineKey : service.getEngineKeys()) {
- LOGGER.info("{}", service.getStatus(engineKey));
- }
- while (!service.isStarted() && System.currentTimeMillis() - starttime < MAX_START_WAIT) {
- ThreadUtilities.sleep(200);
- }
- if (!service.isStarted()) {
- fail("Apex Service " + service.getKey() + " failed to start after " + MAX_START_WAIT + " ms");
- }
-
- // Send some events
- final Date testStartTime = new Date();
- final Map<String, Object> eventDataMap = new HashMap<String, Object>();
- eventDataMap.put("TestSlogan", "This is a test slogan");
- eventDataMap.put("TestMatchCase", (byte) 123);
- eventDataMap.put("TestTimestamp", testStartTime.getTime());
- eventDataMap.put("TestTemperature", 34.5445667);
-
- final ApexEvent event1 =
- new ApexEvent("Event0000", "0.0.1", "org.onap.policy.apex.domains.sample.events", "test", "apex");
- event1.putAll(eventDataMap);
-
- final ApexEventListener myEventListener1 = new ApexEventListener() {
- @Override
- public void onApexEvent(final ApexEvent responseEvent) {
- assertNotNull("Synchronous sendEventWait failed", responseEvent);
- assertEquals(event1.getExecutionId(), responseEvent.getExecutionId());
- waitFlag = false;
- }
- };
-
- waitFlag = true;
- service.registerActionListener("Listener1", myEventListener1);
- service.getEngineServiceEventInterface().sendEvent(event1);
-
- while (waitFlag) {
- ThreadUtilities.sleep(100);
- }
-
- final ApexEvent event2 =
- new ApexEvent("Event0100", "0.0.1", "org.onap.policy.apex.domains.sample.events", "test", "apex");
- event2.putAll(eventDataMap);
-
- final ApexEventListener myEventListener2 = new ApexEventListener() {
- @Override
- public void onApexEvent(final ApexEvent responseEvent) {
- assertNotNull("Synchronous sendEventWait failed", responseEvent);
- assertEquals(event2.getExecutionId(), responseEvent.getExecutionId());
- waitFlag = false;
- }
- };
-
- waitFlag = true;
- service.registerActionListener("Listener2", myEventListener2);
- service.deregisterActionListener("Listener1");
- service.getEngineServiceEventInterface().sendEvent(event2);
-
- while (waitFlag) {
- ThreadUtilities.sleep(100);
- }
-
- service.deregisterActionListener("Listener2");
-
- assertEquals(2, actionEventsReceived);
-
- actionEventsReceived = 0;
-
- // Stop all engines on this engine service
- final long stoptime = System.currentTimeMillis();
- service.stop();
- while (!service.isStopped() && System.currentTimeMillis() - stoptime < MAX_STOP_WAIT) {
- ThreadUtilities.sleep(200);
- }
- if (!service.isStopped()) {
- fail("Apex Service " + service.getKey() + " failed to stop after " + MAX_STOP_WAIT + " ms");
- }
- }
-
- /**
- * Tear down the the test infrastructure.
- *
- * @throws ApexException if there is an error
- */
- @AfterClass
- public static void tearDown() throws Exception {
- // Stop all engines on this engine service
- final long stoptime = System.currentTimeMillis();
- service.stop();
- while (!service.isStopped() && System.currentTimeMillis() - stoptime < MAX_STOP_WAIT) {
- ThreadUtilities.sleep(200);
- }
- if (!service.isStopped()) {
- fail("Apex Service " + service.getKey() + " failed to stop after " + MAX_STOP_WAIT + " ms");
- }
- service = null;
- }
-
- /**
- * The listener interface for receiving test events. The class that is interested in processing
- * a test event implements this interface, and the object created with that class is registered
- * with a component using the component's <code>addTestListener</code> method. When the test
- * event occurs, that object's appropriate method is invoked.
- *
- * @see TestEvent
- */
- private static final class TestListener implements ApexEventListener {
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.onap.policy.apex.service.engine.runtime.ApexEventListener#onApexEvent(org.onap.policy
- * .apex.service.engine.event.ApexEvent)
- */
- @Override
- public synchronized void onApexEvent(final ApexEvent event) {
- LOGGER.debug("result 1 is:" + event);
- checkResult(event);
- actionEventsReceived++;
-
- final Date testStartTime = new Date((Long) event.get("TestTimestamp"));
- final Date testEndTime = new Date();
-
- LOGGER.info("policy execution time: " + (testEndTime.getTime() - testStartTime.getTime()) + "ms");
- }
-
- /**
- * Check result.
- *
- * @param result the result
- */
- private void checkResult(final ApexEvent result) {
- assertTrue(result.getName().startsWith("Event0004") || result.getName().startsWith("Event0104"));
-
- assertTrue(result.get("TestSlogan").equals("This is a test slogan"));
- assertTrue(result.get("TestMatchCase").equals(new Byte((byte) 123)));
- assertTrue(result.get("TestTemperature").equals(34.5445667));
- assertTrue(((byte) result.get("TestMatchCaseSelected")) >= 0
- && ((byte) result.get("TestMatchCaseSelected") <= 3));
- assertTrue(((byte) result.get("TestEstablishCaseSelected")) >= 0
- && ((byte) result.get("TestEstablishCaseSelected") <= 3));
- assertTrue(((byte) result.get("TestDecideCaseSelected")) >= 0
- && ((byte) result.get("TestDecideCaseSelected") <= 3));
- assertTrue(
- ((byte) result.get("TestActCaseSelected")) >= 0 && ((byte) result.get("TestActCaseSelected") <= 3));
- }
- }
-}
diff --git a/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/engine/utils/Utils.java b/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/engine/utils/Utils.java
deleted file mode 100644
index 0d239a8ef..000000000
--- a/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/engine/utils/Utils.java
+++ /dev/null
@@ -1,55 +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.testsuites.performance.benchmark.engine.utils;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-
-import org.onap.policy.apex.model.basicmodel.handling.ApexModelException;
-import org.onap.policy.apex.model.basicmodel.handling.ApexModelWriter;
-import org.onap.policy.apex.model.policymodel.concepts.AxPolicyModel;
-
-/**
- * The Class Utils.
- */
-public class Utils {
-
- /**
- * Instantiates a new utils.
- */
- private Utils() {}
-
- /**
- * Gets the model string.
- *
- * @param ecaPolicyModel the eca policy model
- * @return the model string
- * @throws ApexModelException the apex model exception
- * @throws IOException Signals that an I/O exception has occurred.
- */
- public static String getModelString(final AxPolicyModel ecaPolicyModel) throws ApexModelException, IOException {
- try (final ByteArrayOutputStream baOutputStream = new ByteArrayOutputStream()) {
- new ApexModelWriter<AxPolicyModel>(AxPolicyModel.class).write(ecaPolicyModel, baOutputStream);
- return baOutputStream.toString();
- }
- }
-
-}