aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/core-deployment/src/main/java/org/onap/policy/apex/core/deployment/BatchDeployer.java13
-rw-r--r--core/core-deployment/src/main/java/org/onap/policy/apex/core/deployment/DeploymentClient.java12
-rw-r--r--core/core-deployment/src/main/java/org/onap/policy/apex/core/deployment/EngineServiceFacade.java140
-rw-r--r--core/core-deployment/src/main/java/org/onap/policy/apex/core/deployment/PeriodicEventManager.java5
-rw-r--r--core/core-engine/src/main/java/org/onap/policy/apex/core/engine/EngineParameterConstants.java2
-rw-r--r--core/core-engine/src/main/java/org/onap/policy/apex/core/engine/context/ApexInternalContext.java2
-rw-r--r--core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/ApexEngine.java2
-rw-r--r--core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/impl/ApexEngineImpl.java99
-rw-r--r--core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/impl/StateMachineHandler.java13
-rw-r--r--core/core-engine/src/main/java/org/onap/policy/apex/core/engine/event/EnEvent.java41
-rw-r--r--core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/Executor.java32
-rw-r--r--core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/StateExecutor.java20
-rw-r--r--core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/StateFinalizerExecutor.java76
-rw-r--r--core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/StateMachineExecutor.java10
-rw-r--r--core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/StateOutput.java33
-rw-r--r--core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/TaskExecutor.java12
-rw-r--r--core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/TaskSelectExecutor.java6
-rw-r--r--core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/context/StateFinalizerExecutionContext.java10
-rw-r--r--core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/context/TaskExecutionContext.java14
-rw-r--r--core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/context/TaskSelectionExecutionContext.java14
-rw-r--r--core/core-engine/src/main/java/org/onap/policy/apex/core/engine/monitoring/EventMonitor.java9
-rw-r--r--core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/java/JavaHandlingException.java12
-rw-r--r--core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/java/classes/ClassUtils.java41
-rw-r--r--core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/java/compile/singleclass/SingleClassBuilder.java24
-rw-r--r--core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/java/compile/singleclass/SingleClassByteCodeFileObject.java2
-rw-r--r--core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/java/compile/singleclass/SingleFileManager.java2
-rw-r--r--core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/MessageHolder.java15
-rw-r--r--core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/MessageListener.java6
-rw-r--r--core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/MessagingService.java10
-rw-r--r--core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/MessagingServiceFactory.java8
-rw-r--r--core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/RawMessageHandler.java67
-rw-r--r--core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/WebSocketMessageListener.java8
-rw-r--r--core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/client/InternalMessageBusClient.java16
-rw-r--r--core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/client/MessagingClient.java12
-rw-r--r--core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/messageblock/MessageBlock.java10
-rw-r--r--core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/messageblock/MessageBlockHandler.java12
-rw-r--r--core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/server/InternalMessageBusServer.java36
-rw-r--r--core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/server/MessageServerImpl.java31
-rw-r--r--core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/stringmessaging/WsStringMessageClient.java (renamed from core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/stringmessaging/WSStringMessageClient.java)34
-rw-r--r--core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/stringmessaging/WsStringMessageListener.java (renamed from core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/stringmessaging/WSStringMessageListener.java)2
-rw-r--r--core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/stringmessaging/WsStringMessageServer.java (renamed from core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/stringmessaging/WSStringMessageServer.java)18
-rw-r--r--core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/stringmessaging/WsStringMessager.java (renamed from core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/stringmessaging/WSStringMessager.java)4
-rw-r--r--core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/util/MessagingUtils.java11
-rw-r--r--core/core-infrastructure/src/test/java/org/onap/policy/apex/core/infrastructure/messaging/EndToEndStringMessagingTest.java22
-rw-r--r--core/core-infrastructure/src/test/java/org/onap/policy/apex/core/infrastructure/messaging/StringTestServer.java45
45 files changed, 525 insertions, 488 deletions
diff --git a/core/core-deployment/src/main/java/org/onap/policy/apex/core/deployment/BatchDeployer.java b/core/core-deployment/src/main/java/org/onap/policy/apex/core/deployment/BatchDeployer.java
index 499644fd9..8bfb15025 100644
--- a/core/core-deployment/src/main/java/org/onap/policy/apex/core/deployment/BatchDeployer.java
+++ b/core/core-deployment/src/main/java/org/onap/policy/apex/core/deployment/BatchDeployer.java
@@ -33,8 +33,8 @@ import org.slf4j.ext.XLoggerFactory;
* The Class {@link BatchDeployer} deploys an Apex model held as an XML or Json file onto an Apex engine. It uses the
* EngDep protocol to communicate with the engine, with the EngDep protocol being carried on Java web sockets.
*
- * This deployer is a simple command line deployer that reads the communication parameters and the location of the Apex
- * model file as arguments.
+ * <p>This deployer is a simple command line deployer that reads the communication parameters and the location of the
+ * Apex model file as arguments.
*
* @author Liam Fallon (liam.fallon@ericsson.com)
*/
@@ -55,8 +55,9 @@ public class BatchDeployer {
*/
public static void main(final String[] args) {
if (args.length != NUM_ARGUMENTS) {
- LOGGER.error("invalid arguments: " + Arrays.toString(args));
- LOGGER.error("usage: Deployer <server address> <port address> <Apex Model file location>");
+ String message = "invalid arguments: " + Arrays.toString(args)
+ + "usage: Deployer <server address> <port address> <Apex Model file location>";
+ LOGGER.error(message);
return;
}
@@ -112,7 +113,7 @@ public class BatchDeployer {
* @throws IOException on IO exceptions from the operating system
*/
public void deployModel(final String modelFileName, final boolean ignoreConflicts, final boolean force)
- throws ApexException, IOException {
+ throws ApexException, IOException {
engineServiceFacade.deployModel(modelFileName, ignoreConflicts, force);
}
@@ -126,7 +127,7 @@ public class BatchDeployer {
* @throws IOException on IO exceptions from the operating system
*/
public void deployModel(final AxPolicyModel policyModel, final boolean ignoreConflicts, final boolean force)
- throws ApexException, IOException {
+ throws ApexException, IOException {
engineServiceFacade.deployModel(policyModel, ignoreConflicts, force);
}
diff --git a/core/core-deployment/src/main/java/org/onap/policy/apex/core/deployment/DeploymentClient.java b/core/core-deployment/src/main/java/org/onap/policy/apex/core/deployment/DeploymentClient.java
index 5fc7dc8c6..d0af94930 100644
--- a/core/core-deployment/src/main/java/org/onap/policy/apex/core/deployment/DeploymentClient.java
+++ b/core/core-deployment/src/main/java/org/onap/policy/apex/core/deployment/DeploymentClient.java
@@ -20,6 +20,8 @@
package org.onap.policy.apex.core.deployment;
+import com.google.common.eventbus.Subscribe;
+
import java.net.URI;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
@@ -35,8 +37,6 @@ import org.onap.policy.apex.core.protocols.Message;
import org.slf4j.ext.XLogger;
import org.slf4j.ext.XLoggerFactory;
-import com.google.common.eventbus.Subscribe;
-
/**
* The Class DeploymentClient handles the client side of an EngDep communication session with an
* Apex server. It runs a thread to handle message sending and session monitoring. It uses a sending
@@ -84,7 +84,7 @@ public class DeploymentClient implements Runnable {
*/
@Override
public void run() {
- LOGGER.debug("engine<-->deployment to \"ws://" + host + ":" + port + "\" thread starting . . .");
+ LOGGER.debug("engine<-->deployment to \"ws://{}:{}\" thread starting . . .", host, port);
// Set up the thread name
thisThread = Thread.currentThread();
@@ -104,7 +104,7 @@ public class DeploymentClient implements Runnable {
return;
}
// Loop forever, sending messages as they appear on the queue
- while (true) {
+ while (started) {
try {
final Message messageForSending = sendQueue.take();
sendMessage(messageForSending);
@@ -143,9 +143,7 @@ public class DeploymentClient implements Runnable {
thisThread.interrupt();
// Wait for the thread to stop
- while (thisThread != null && thisThread.isAlive()) {
- ThreadUtilities.sleep(CLIENT_STOP_WAIT_INTERVAL);
- }
+ ThreadUtilities.sleep(CLIENT_STOP_WAIT_INTERVAL);
// Close the Web Services connection
service.stopConnection();
diff --git a/core/core-deployment/src/main/java/org/onap/policy/apex/core/deployment/EngineServiceFacade.java b/core/core-deployment/src/main/java/org/onap/policy/apex/core/deployment/EngineServiceFacade.java
index f0616e20a..9b24bcd96 100644
--- a/core/core-deployment/src/main/java/org/onap/policy/apex/core/deployment/EngineServiceFacade.java
+++ b/core/core-deployment/src/main/java/org/onap/policy/apex/core/deployment/EngineServiceFacade.java
@@ -50,12 +50,11 @@ import org.slf4j.ext.XLogger;
import org.slf4j.ext.XLoggerFactory;
/**
- * The Class Deployer deploys an Apex model held as an XML file onto an Apex engine. It uses the
- * EngDep protocol to communicate with the engine, with the EngDep protocol being carried on Java
- * web sockets.
+ * The Class Deployer deploys an Apex model held as an XML file onto an Apex engine. It uses the EngDep protocol to
+ * communicate with the engine, with the EngDep protocol being carried on Java web sockets.
*
- * This deployer is a simple command line deployer that reads the communication parameters and the
- * location of the XML model file as arguments.
+ * <p>his deployer is a simple command line deployer that reads the communication parameters and the location of the XML
+ * model file as arguments.
*
* @author Liam Fallon (liam.fallon@ericsson.com)
*/
@@ -63,6 +62,10 @@ public class EngineServiceFacade {
// Get a reference to the logger
private static final XLogger LOGGER = XLoggerFactory.getXLogger(EngineServiceFacade.class);
+ // Repeated string constants
+ private static final String RECEIVED_FROM_SERVER = " received from server";
+ private static final String FAILED_RESPONSE = "failed response ";
+
// The default message timeout and timeout increment (the amount of time between polls) in
// milliseconds
private static final int CLIENT_START_WAIT_INTERVAL = 100;
@@ -125,12 +128,12 @@ public class EngineServiceFacade {
// Get engine service information to see what engines we're dealing with
final GetEngineServiceInfo engineServiceInfo = new GetEngineServiceInfo(null);
LOGGER.debug("sending get engine service info message {} to server {}:{} . . .", engineServiceInfo,
- hostName, port);
+ hostName, port);
client.sendMessage(engineServiceInfo);
LOGGER.debug("sent get engine service info message to server {}:{} . . .", hostName, port);
- final EngineServiceInfoResponse engineServiceInfoResponse =
- (EngineServiceInfoResponse) getResponse(engineServiceInfo);
+ final EngineServiceInfoResponse engineServiceInfoResponse = (EngineServiceInfoResponse) getResponse(
+ engineServiceInfo);
if (engineServiceInfoResponse.isSuccessful()) {
engineServiceKey = engineServiceInfoResponse.getEngineServiceKey();
engineKeyArray = engineServiceInfoResponse.getEngineKeyArray();
@@ -187,30 +190,29 @@ public class EngineServiceFacade {
*
* @param modelFileName the name of the model file containing the model to deploy
* @param ignoreConflicts true if conflicts between context in polices is to be ignored
- * @param force true if the model is to be applied even if it is incompatible with the existing
- * model
+ * @param force true if the model is to be applied even if it is incompatible with the existing model
* @throws ApexException on Apex errors
* @throws IOException on IO exceptions from the operating system
*/
public void deployModel(final String modelFileName, final boolean ignoreConflicts, final boolean force)
- throws ApexException, IOException {
+ throws ApexException, IOException {
if (engineServiceKey == null || engineKeyArray == null || engineKeyArray.length == 0) {
LOGGER.error("cound not deploy apex model, deployer is not initialized");
throw new ApexDeploymentException("cound not deploy apex model, deployer is not initialized");
}
// Get the model file as a string
- URL apexModelURL = ResourceUtils.getLocalFile(modelFileName);
- if (apexModelURL == null) {
- apexModelURL = ResourceUtils.getUrlResource(modelFileName);
- if (apexModelURL == null) {
+ URL apexModelUrl = ResourceUtils.getLocalFile(modelFileName);
+ if (apexModelUrl == null) {
+ apexModelUrl = ResourceUtils.getUrlResource(modelFileName);
+ if (apexModelUrl == null) {
LOGGER.error("cound not create apex model, could not read from XML file {}", modelFileName);
throw new ApexDeploymentException(
- "cound not create apex model, could not read XML file " + modelFileName);
+ "cound not create apex model, could not read XML file " + modelFileName);
}
}
- deployModel(modelFileName, apexModelURL.openStream(), ignoreConflicts, force);
+ deployModel(modelFileName, apexModelUrl.openStream(), ignoreConflicts, force);
}
/**
@@ -219,12 +221,11 @@ public class EngineServiceFacade {
* @param modelFileName the name of the model file containing the model to deploy
* @param modelInputStream the stream that holds the Apex model
* @param ignoreConflicts true if conflicts between context in polices is to be ignored
- * @param force true if the model is to be applied even if it is incompatible with the existing
- * model
+ * @param force true if the model is to be applied even if it is incompatible with the existing model
* @throws ApexException on model deployment errors
*/
public void deployModel(final String modelFileName, final InputStream modelInputStream,
- final boolean ignoreConflicts, final boolean force) throws ApexException {
+ final boolean ignoreConflicts, final boolean force) throws ApexException {
// Read the policy model from the stream
final ApexModelReader<AxPolicyModel> modelReader = new ApexModelReader<>(AxPolicyModel.class);
modelReader.setValidateFlag(!ignoreConflicts);
@@ -243,20 +244,19 @@ public class EngineServiceFacade {
*
* @param apexPolicyModel the name of the model to deploy
* @param ignoreConflicts true if conflicts between context in polices is to be ignored
- * @param force true if the model is to be applied even if it is incompatible with the existing
- * model
+ * @param force true if the model is to be applied even if it is incompatible with the existing model
* @throws ApexException on model deployment errors
*/
public void deployModel(final AxPolicyModel apexPolicyModel, final boolean ignoreConflicts, final boolean force)
- throws ApexException {
+ throws ApexException {
// Write the model into a byte array
final ByteArrayOutputStream baOutputStream = new ByteArrayOutputStream();
final ApexModelWriter<AxPolicyModel> modelWriter = new ApexModelWriter<>(AxPolicyModel.class);
modelWriter.write(apexPolicyModel, baOutputStream);
// Create and send Update message
- final UpdateModel umMessage =
- new UpdateModel(engineServiceKey, baOutputStream.toString(), ignoreConflicts, force);
+ final UpdateModel umMessage = new UpdateModel(engineServiceKey, baOutputStream.toString(), ignoreConflicts,
+ force);
LOGGER.debug("sending update message {} to server {}:{} . . .", umMessage, hostName, port);
client.sendMessage(umMessage);
@@ -264,12 +264,10 @@ public class EngineServiceFacade {
// Check if we got a response
final Response response = getResponse(umMessage);
- if (response.isSuccessful()) {
- LOGGER.debug(response.toString());
- } else {
- LOGGER.warn("failed response {} received from server {}:{}", response.getMessageData(), hostName, port);
- throw new ApexException(
- "failed response " + response.getMessageData() + " received from server" + hostName + ':' + port);
+ if (!response.isSuccessful()) {
+ LOGGER.warn(FAILED_RESPONSE + "{} received from server {}:{}", response.getMessageData(), hostName, port);
+ throw new ApexException(FAILED_RESPONSE + response.getMessageData() + RECEIVED_FROM_SERVER + hostName
+ + ':' + port);
}
}
@@ -287,12 +285,11 @@ public class EngineServiceFacade {
// Check if we got a response
final Response response = getResponse(startEngineMessage);
- if (response.isSuccessful()) {
- LOGGER.debug(response.toString());
- } else {
- LOGGER.warn("failed response {} received from server {}:{}", response.getMessageData(), hostName, port);
- throw new ApexDeploymentException(
- "failed response " + response.getMessageData() + " received from server" + hostName + ':' + port);
+ if (!response.isSuccessful()) {
+ String message = FAILED_RESPONSE + response.getMessageData() + RECEIVED_FROM_SERVER
+ + hostName + ':' + port;
+ LOGGER.warn(message);
+ throw new ApexDeploymentException(message);
}
}
@@ -310,12 +307,11 @@ public class EngineServiceFacade {
// Check if we got a response
final Response response = getResponse(stopEngineMessage);
- if (response.isSuccessful()) {
- LOGGER.debug(response.toString());
- } else {
- LOGGER.warn("failed response {} received from server {}:{}", response.getMessageData(), hostName, port);
- throw new ApexDeploymentException(
- "failed response " + response.getMessageData() + " received from server" + hostName + ':' + port);
+ if (!response.isSuccessful()) {
+ String message = FAILED_RESPONSE + response.getMessageData() + RECEIVED_FROM_SERVER
+ + hostName + ':' + port;
+ LOGGER.warn(message);
+ throw new ApexDeploymentException(message);
}
}
@@ -330,18 +326,17 @@ public class EngineServiceFacade {
final StartPeriodicEvents startPerioidicEventsMessage = new StartPeriodicEvents(engineKey);
startPerioidicEventsMessage.setMessageData(Long.toString(period));
LOGGER.debug("sending start perioidic events {} to server {}:{} . . .", startPerioidicEventsMessage, hostName,
- port);
+ port);
client.sendMessage(startPerioidicEventsMessage);
LOGGER.debug("sent start perioidic events message to server {}:{} . . .", hostName, port);
// Check if we got a response
final Response response = getResponse(startPerioidicEventsMessage);
- if (response.isSuccessful()) {
- LOGGER.debug(response.toString());
- } else {
- LOGGER.warn("failed response {} received from server {}:{}", response.getMessageData(), hostName, port);
- throw new ApexDeploymentException(
- "failed response " + response.getMessageData() + " received from server" + hostName + ':' + port);
+ if (!response.isSuccessful()) {
+ String message = FAILED_RESPONSE + response.getMessageData() + RECEIVED_FROM_SERVER
+ + hostName + ':' + port;
+ LOGGER.warn(message);
+ throw new ApexDeploymentException(message);
}
}
@@ -354,18 +349,17 @@ public class EngineServiceFacade {
public void stopPerioidicEvents(final AxArtifactKey engineKey) throws ApexDeploymentException {
final StopPeriodicEvents stopPerioidicEventsMessage = new StopPeriodicEvents(engineKey);
LOGGER.debug("sending stop perioidic events {} to server {}:{} . . .", stopPerioidicEventsMessage, hostName,
- port);
+ port);
client.sendMessage(stopPerioidicEventsMessage);
LOGGER.debug("sent stop perioidic events message to server {}:{} . . .", hostName, port);
// Check if we got a response
final Response response = getResponse(stopPerioidicEventsMessage);
- if (response.isSuccessful()) {
- LOGGER.debug(response.toString());
- } else {
- LOGGER.warn("failed response {} received from server {}:{}", response.getMessageData(), hostName, port);
- throw new ApexDeploymentException(
- "failed response " + response.getMessageData() + " received from server" + hostName + ':' + port);
+ if (!response.isSuccessful()) {
+ String message = FAILED_RESPONSE + response.getMessageData() + RECEIVED_FROM_SERVER
+ + hostName + ':' + port;
+ LOGGER.warn(message);
+ throw new ApexDeploymentException(message);
}
}
@@ -385,9 +379,10 @@ public class EngineServiceFacade {
// Check if we got a response
final Response response = getResponse(engineStatusMessage);
if (!response.isSuccessful()) {
- LOGGER.warn("failed response {} received from server {}:{}", response.getMessageData(), hostName, port);
- throw new ApexException(
- "failed response " + response.getMessageData() + " received from server" + hostName + ':' + port);
+ String message = FAILED_RESPONSE + response.getMessageData() + RECEIVED_FROM_SERVER + hostName
+ + ':' + port;
+ LOGGER.warn(message);
+ throw new ApexException(message);
}
final ByteArrayInputStream baInputStream = new ByteArrayInputStream(response.getMessageData().getBytes());
@@ -406,16 +401,17 @@ public class EngineServiceFacade {
public String getEngineInfo(final AxArtifactKey engineKey) throws ApexException {
final GetEngineInfo engineInfoMessage = new GetEngineInfo(engineKey);
LOGGER.debug("sending get engine information message {} to server {}:{} . . .", engineInfoMessage, hostName,
- port);
+ port);
client.sendMessage(engineInfoMessage);
LOGGER.debug("sent get engine information message to server {}:{} . . .", hostName, port);
// Check if we got a response
final Response response = getResponse(engineInfoMessage);
if (!response.isSuccessful()) {
- LOGGER.warn("failed response {} received from server {}:{}", response.getMessageData(), hostName, port);
- throw new ApexException(
- "failed response " + response.getMessageData() + " received from server" + hostName + ':' + port);
+ String message = FAILED_RESPONSE + response.getMessageData() + RECEIVED_FROM_SERVER + hostName
+ + ':' + port;
+ LOGGER.warn(message);
+ throw new ApexException(message);
}
return response.getMessageData();
@@ -437,8 +433,8 @@ public class EngineServiceFacade {
// Wait for the required amount of milliseconds for the response from the Apex server
Message receivedMessage = null;
- for (int timeWaitedSoFar = 0; receivedMessage == null && timeWaitedSoFar < timeoutTime; timeWaitedSoFar +=
- REPLY_MESSAGE_TIMEOUT_INCREMENT) {
+ for (int timeWaitedSoFar = 0; receivedMessage == null
+ && timeWaitedSoFar < timeoutTime; timeWaitedSoFar += REPLY_MESSAGE_TIMEOUT_INCREMENT) {
try {
receivedMessage = client.getReceiveQueue().poll(REPLY_MESSAGE_TIMEOUT_INCREMENT, TimeUnit.MILLISECONDS);
} catch (final InterruptedException e) {
@@ -446,7 +442,7 @@ public class EngineServiceFacade {
Thread.currentThread().interrupt();
LOGGER.warn("reception of response from server interrupted {}:{}", hostName, port, e);
throw new ApexDeploymentException(
- "reception of response from server interrupted " + hostName + ':' + port, e);
+ "reception of response from server interrupted " + hostName + ':' + port, e);
}
}
@@ -459,9 +455,9 @@ public class EngineServiceFacade {
// Check instance is a response message
if (!(receivedMessage instanceof Response)) {
LOGGER.warn("response received from server is of incorrect type {}, should be of type {}",
- receivedMessage.getClass().getName(), Response.class.getName());
+ receivedMessage.getClass().getName(), Response.class.getName());
throw new ApexDeploymentException("response received from server is of incorrect type "
- + receivedMessage.getClass().getName() + ", should be of type " + Response.class.getName());
+ + receivedMessage.getClass().getName() + ", should be of type " + Response.class.getName());
}
// Cast the response message
@@ -471,16 +467,16 @@ public class EngineServiceFacade {
if (!responseMessage.getResponseTo().equals(sentMessage)) {
LOGGER.warn("response received is not response to sent message " + sentMessage.getAction());
throw new ApexDeploymentException(
- "response received is not correct response to sent message " + sentMessage.getAction());
+ "response received is not correct response to sent message " + sentMessage.getAction());
}
// Check if successful
if (responseMessage.isSuccessful()) {
LOGGER.debug("response received: {} message was succssful: {}", sentMessage.getAction(),
- responseMessage.getMessageData());
+ responseMessage.getMessageData());
} else {
LOGGER.debug("response received: {} message failed: {}", sentMessage.getAction(),
- responseMessage.getMessageData());
+ responseMessage.getMessageData());
}
return responseMessage;
diff --git a/core/core-deployment/src/main/java/org/onap/policy/apex/core/deployment/PeriodicEventManager.java b/core/core-deployment/src/main/java/org/onap/policy/apex/core/deployment/PeriodicEventManager.java
index bfaece4c6..a1db5ef07 100644
--- a/core/core-deployment/src/main/java/org/onap/policy/apex/core/deployment/PeriodicEventManager.java
+++ b/core/core-deployment/src/main/java/org/onap/policy/apex/core/deployment/PeriodicEventManager.java
@@ -48,8 +48,9 @@ public class PeriodicEventManager {
*/
public static void main(final String[] args) {
if (args.length != NUM_ARGUMENTS) {
- LOGGER.error("invalid arguments: " + Arrays.toString(args));
- LOGGER.error("usage: Deployer <server address> <port address> <start/stop> <periods in ms>");
+ String message = "invalid arguments: " + Arrays.toString(args)
+ + "\nusage: Deployer <server address> <port address> <start/stop> <periods in ms>";
+ LOGGER.error(message);
return;
}
diff --git a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/EngineParameterConstants.java b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/EngineParameterConstants.java
index 1678f57c7..96a83f3a6 100644
--- a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/EngineParameterConstants.java
+++ b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/EngineParameterConstants.java
@@ -28,7 +28,7 @@ public abstract class EngineParameterConstants {
public static final String EXECUTOR_GROUP_NAME = "EXECUTOR_PARAMETERS";
/**
- * Private default constructor to prevent subclassing
+ * Private default constructor to prevent subclassing.
*/
private EngineParameterConstants() {
// Prevents subclassing
diff --git a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/context/ApexInternalContext.java b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/context/ApexInternalContext.java
index 85e45f718..8bbb333b5 100644
--- a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/context/ApexInternalContext.java
+++ b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/context/ApexInternalContext.java
@@ -63,7 +63,7 @@ public final class ApexInternalContext implements AxConceptGetter<ContextAlbum>
private Distributor contextDistributor = null;
// The key of the current policy, used to return the correct policy context album to the user
- private final AxArtifactKey currentPolicyKey = null;
+ private AxArtifactKey currentPolicyKey = null;
/**
* Constructor, instantiate the context object from the Apex model.
diff --git a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/ApexEngine.java b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/ApexEngine.java
index b25192cd0..b2978a0c0 100644
--- a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/ApexEngine.java
+++ b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/ApexEngine.java
@@ -46,7 +46,7 @@ public interface ApexEngine {
* The amount of milliseconds to wait for the current Apex engine to timeout on engine stop
* requests. If the timeout is exceeded, the stop aborts.
*/
- int APEX_ENGINE_STOP_EXECUTION_WAIT_TIMEOUT = 3000;
+ int STOP_EXECUTION_WAIT_TIMEOUT = 3000;
/** The wait increment (or pause time) when waiting for the Apex engine to stop. */
int APEX_ENGINE_STOP_EXECUTION_WAIT_INCREMENT = 100;
diff --git a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/impl/ApexEngineImpl.java b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/impl/ApexEngineImpl.java
index 3497ed660..6f2bab0b9 100644
--- a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/impl/ApexEngineImpl.java
+++ b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/impl/ApexEngineImpl.java
@@ -56,6 +56,11 @@ public class ApexEngineImpl implements ApexEngine {
// Logger for this class
private static final XLogger LOGGER = XLoggerFactory.getXLogger(ApexEngineImpl.class);
+ // Recurring string constants
+ private static final String UPDATE_MODEL = "updateModel()<-";
+ private static final String START = "start()<-";
+ private static final String STOP = "stop()<-";
+
// The artifact key of this engine
private final AxArtifactKey key;
@@ -63,7 +68,7 @@ public class ApexEngineImpl implements ApexEngine {
private AxEngineState state = AxEngineState.STOPPED;
// call back listeners
- private final Map<String, EnEventListener> eventListeners = new LinkedHashMap<String, EnEventListener>();
+ private final Map<String, EnEventListener> eventListeners = new LinkedHashMap<>();
// The context of this engine
private ApexInternalContext internalContext = null;
@@ -105,15 +110,14 @@ public class ApexEngineImpl implements ApexEngine {
if (apexModel != null) {
LOGGER.entry("updateModel()->" + key.getId() + ", apexPolicyModel=" + apexModel.getKey().getId());
} else {
- LOGGER.warn("updateModel()<-" + key.getId() + ", Apex model not set");
- throw new ApexException(
- "updateModel()<-" + key.getId() + ", Apex model is not defined, it has a null value");
+ LOGGER.warn(UPDATE_MODEL + key.getId() + ", Apex model not set");
+ throw new ApexException(UPDATE_MODEL + key.getId() + ", Apex model is not defined, it has a null value");
}
// The engine must be stopped in order to do a model update
if (!state.equals(AxEngineState.STOPPED)) {
- throw new ApexException("updateModel()<-" + key.getId()
- + ", cannot update model, engine should be stopped but is in state " + state);
+ throw new ApexException(UPDATE_MODEL + key.getId()
+ + ", cannot update model, engine should be stopped but is in state " + state);
}
// Create new internal context or update the existing one
@@ -126,12 +130,10 @@ public class ApexEngineImpl implements ApexEngine {
internalContext.update(apexModel);
}
} catch (final ContextException e) {
- LOGGER.warn(
- "updateModel()<-" + key.getId() + ", error setting the context for engine \"" + key.getId() + "\"",
- e);
- throw new ApexException(
- "updateModel()<-" + key.getId() + ", error setting the context for engine \"" + key.getId() + "\"",
- e);
+ LOGGER.warn(UPDATE_MODEL + key.getId() + ", error setting the context for engine \"" + key.getId() + "\"",
+ e);
+ throw new ApexException(UPDATE_MODEL + key.getId() + ", error setting the context for engine \""
+ + key.getId() + "\"", e);
}
// Set up the state machines
@@ -140,13 +142,13 @@ public class ApexEngineImpl implements ApexEngine {
// always set up as new
stateMachineHandler = new StateMachineHandler(internalContext);
} catch (final StateMachineException e) {
- LOGGER.warn("updateModel()<-" + key.getId() + ", error setting up the engine state machines \""
- + key.getId() + "\"", e);
- throw new ApexException("updateModel()<-" + key.getId() + ", error setting up the engine state machines \""
- + key.getId() + "\"", e);
+ LOGGER.warn(UPDATE_MODEL + key.getId() + ", error setting up the engine state machines \"" + key.getId()
+ + "\"", e);
+ throw new ApexException(UPDATE_MODEL + key.getId() + ", error setting up the engine state machines \""
+ + key.getId() + "\"", e);
}
- LOGGER.exit("updateModel()<-" + key.getId());
+ LOGGER.exit(UPDATE_MODEL + key.getId());
}
/*
@@ -159,16 +161,18 @@ public class ApexEngineImpl implements ApexEngine {
LOGGER.entry("start()" + key);
if (state != AxEngineState.STOPPED) {
- LOGGER.warn("start()<-" + key.getId() + "," + state + ", cannot start engine, engine not in state STOPPED");
- throw new ApexException(
- "start()<-" + key.getId() + "," + state + ", cannot start engine, engine not in state STOPPED");
+ String message = START + key.getId() + "," + state
+ + ", cannot start engine, engine not in state STOPPED";
+ LOGGER.warn(message);
+ throw new ApexException(message);
}
if (stateMachineHandler == null || internalContext == null) {
- LOGGER.warn("start()<-" + key.getId() + "," + state
- + ", cannot start engine, engine has not been initialized, its model is not loaded");
- throw new ApexException("start()<-" + key.getId() + "," + state
- + ", cannot start engine, engine has not been initialized, its model is not loaded");
+ String message = START + key.getId() + "," + state
+ + ", cannot start engine, engine has not been initialized, its model is not loaded";
+ LOGGER.warn(message);
+ throw new ApexException(START + key.getId() + "," + state
+ + ", cannot start engine, engine has not been initialized, its model is not loaded");
}
// Set up the state machines
@@ -177,10 +181,10 @@ public class ApexEngineImpl implements ApexEngine {
stateMachineHandler.start();
engineStats.engineStart();
} catch (final StateMachineException e) {
- LOGGER.warn("updateModel()<-" + key.getId() + ", error starting the engine state machines \"" + key.getId()
- + "\"", e);
- throw new ApexException("updateModel()<-" + key.getId() + ", error starting the engine state machines \""
- + key.getId() + "\"", e);
+ String message = UPDATE_MODEL + key.getId() + ", error starting the engine state machines \"" + key.getId()
+ + "\"";
+ LOGGER.warn(message, e);
+ throw new ApexException(message, e);
}
// OK, we are good to go
@@ -199,15 +203,14 @@ public class ApexEngineImpl implements ApexEngine {
LOGGER.entry("stop()->" + key);
// Stop the engine if it is in state READY, if it is in state EXECUTING, wait for execution to finish
- for (int increment = APEX_ENGINE_STOP_EXECUTION_WAIT_TIMEOUT; increment > 0; increment =
- APEX_ENGINE_STOP_EXECUTION_WAIT_INCREMENT) {
+ for (int increment = STOP_EXECUTION_WAIT_TIMEOUT; increment > 0; increment = STOP_EXECUTION_WAIT_TIMEOUT) {
synchronized (state) {
switch (state) {
// Already stopped
case STOPPED:
- throw new ApexException("stop()<-" + key.getId() + "," + state
- + ", cannot stop engine, engine is already stopped");
+ throw new ApexException(STOP + key.getId() + "," + state
+ + ", cannot stop engine, engine is already stopped");
// The normal case, the engine wasn't doing anything or it was executing
case READY:
case STOPPING:
@@ -222,13 +225,13 @@ public class ApexEngineImpl implements ApexEngine {
state = AxEngineState.STOPPING;
break;
default:
- throw new ApexException("stop()<-" + key.getId() + "," + state
- + ", cannot stop engine, engine is in an undefined state");
+ throw new ApexException(STOP + key.getId() + "," + state
+ + ", cannot stop engine, engine is in an undefined state");
}
}
}
- throw new ApexException("stop()<-" + key.getId() + "," + state + ", cannot stop engine, engine stop timed out");
+ throw new ApexException(STOP + key.getId() + "," + state + ", cannot stop engine, engine stop timed out");
}
/*
@@ -240,8 +243,8 @@ public class ApexEngineImpl implements ApexEngine {
public void clear() throws ApexException {
LOGGER.entry("clear()->" + key);
if (state != AxEngineState.STOPPED) {
- throw new ApexException(
- "clear" + "()<-" + key.getId() + "," + state + ", cannot clear engine, engine is not stopped");
+ throw new ApexException("clear" + "()<-" + key.getId() + "," + state
+ + ", cannot clear engine, engine is not stopped");
}
// Clear everything
@@ -263,8 +266,7 @@ public class ApexEngineImpl implements ApexEngine {
@Override
public EnEvent createEvent(final AxArtifactKey eventKey) {
if (state != AxEngineState.READY && state != AxEngineState.EXECUTING) {
- LOGGER.warn(
- "createEvent()<-" + key.getId() + "," + state + ", cannot create event, engine not in state READY");
+ LOGGER.warn("createEvent()<-{},{}, cannot create event, engine not in state READY", key.getId(), state);
return null;
}
@@ -287,21 +289,21 @@ public class ApexEngineImpl implements ApexEngine {
public boolean handleEvent(final EnEvent incomingEvent) {
boolean ret = false;
if (incomingEvent == null) {
- LOGGER.warn("handleEvent()<-" + key.getId() + "," + state + ", cannot run engine, incoming event is null");
+ LOGGER.warn("handleEvent()<-{},{}, cannot run engine, incoming event is null", key.getId(), state);
return ret;
}
synchronized (state) {
if (state != AxEngineState.READY) {
- LOGGER.warn("handleEvent()<-" + key.getId() + "," + state
- + ", cannot run engine, engine not in state READY");
+ LOGGER.warn("handleEvent()<-{},{}, cannot run engine, engine not in state READY", key.getId(), state);
return ret;
}
state = AxEngineState.EXECUTING;
}
- LOGGER.debug("execute(): triggered by event " + incomingEvent.toString());
+ String message = "execute(): triggered by event " + incomingEvent.toString();
+ LOGGER.debug(message);
// By default we return a null event on errors
EnEvent outgoingEvent = null;
@@ -311,7 +313,7 @@ public class ApexEngineImpl implements ApexEngine {
engineStats.executionExit();
ret = true;
} catch (final StateMachineException e) {
- LOGGER.warn("handleEvent()<-" + key.getId() + "," + state + ", engine execution error: ", e);
+ LOGGER.warn("handleEvent()<-{},{}, engine execution error: ", key.getId(), state, e);
// Create an exception return event
outgoingEvent = createExceptionEvent(incomingEvent, e);
@@ -321,8 +323,8 @@ public class ApexEngineImpl implements ApexEngine {
try {
synchronized (eventListeners) {
if (eventListeners.isEmpty()) {
- LOGGER.debug("handleEvent()<-" + key.getId() + "," + state
- + ", There is no listener registered to recieve outgoing event: " + outgoingEvent);
+ LOGGER.debug("handleEvent()<-{},{}, There is no listener registered to recieve outgoing event: {}",
+ key.getId(), state, outgoingEvent);
}
for (final EnEventListener axEventListener : eventListeners.values()) {
axEventListener.onEnEvent(outgoingEvent);
@@ -403,11 +405,10 @@ public class ApexEngineImpl implements ApexEngine {
*/
@Override
public Map<AxArtifactKey, Map<String, Object>> getEngineContext() {
- final Map<AxArtifactKey, Map<String, Object>> currentContext =
- new LinkedHashMap<AxArtifactKey, Map<String, Object>>();
+ final Map<AxArtifactKey, Map<String, Object>> currentContext = new LinkedHashMap<>();
for (final Entry<AxArtifactKey, ContextAlbum> contextAlbumEntry : internalContext.getContextAlbums()
- .entrySet()) {
+ .entrySet()) {
currentContext.put(contextAlbumEntry.getKey(), contextAlbumEntry.getValue());
}
diff --git a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/impl/StateMachineHandler.java b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/impl/StateMachineHandler.java
index 5ade06537..636f87af3 100644
--- a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/impl/StateMachineHandler.java
+++ b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/impl/StateMachineHandler.java
@@ -124,10 +124,11 @@ public class StateMachineHandler {
try {
smExecutor.prepare();
} catch (final StateMachineException e) {
- final String stateMachineID = smExecutor.getContext().getKey().getId();
- LOGGER.warn("start()<-" + key.getId() + ", start failed, state machine \"" + stateMachineID + "\"", e);
+ final String stateMachineId = smExecutor.getContext().getKey().getId();
+ String message = "start()<-" + key.getId() + ", start failed, state machine \"" + stateMachineId + "\"";
+ LOGGER.warn(message, e);
throw new StateMachineException(
- "start()<-" + key.getId() + ", start failed, state machine \"" + stateMachineID + "\"", e);
+ message, e);
}
}
@@ -158,7 +159,7 @@ public class StateMachineHandler {
// Run the state machine
try {
LOGGER.debug("execute(): state machine \"{}\" execution starting . . .", stateMachineExecutor);
- final EnEvent outputObject = stateMachineExecutor.execute(event.getExecutionID(), event);
+ final EnEvent outputObject = stateMachineExecutor.execute(event.getExecutionId(), event);
LOGGER.debug("execute()<-: state machine \"{}\" execution completed", stateMachineExecutor);
return outputObject;
@@ -180,8 +181,8 @@ public class StateMachineHandler {
try {
smExecutor.cleanUp();
} catch (final StateMachineException e) {
- final String smID = smExecutor.getContext().getKey().getId();
- LOGGER.warn("stop()<-clean up failed, state machine \"" + smID + "\" cleanup failed", e);
+ final String smId = smExecutor.getContext().getKey().getId();
+ LOGGER.warn("stop()<-clean up failed, state machine \"" + smId + "\" cleanup failed", e);
}
}
LOGGER.exit("stop()<-");
diff --git a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/event/EnEvent.java b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/event/EnEvent.java
index 109240c0d..7c49af965 100644
--- a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/event/EnEvent.java
+++ b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/event/EnEvent.java
@@ -51,6 +51,9 @@ public class EnEvent extends HashMap<String, Object> {
// Logger for this class
private static final XLogger LOGGER = XLoggerFactory.getXLogger(EnEvent.class);
+ // Repeasted string constants
+ private static final String NULL_KEYS_ILLEGAL = "null keys are illegal on method parameter \"key\"";
+
// The definition of this event in the Apex model
private final AxEvent axEvent;
@@ -65,7 +68,7 @@ public class EnEvent extends HashMap<String, Object> {
// An identifier for the current event execution. The default value here will always be a random
// number, and should
// be reset
- private long executionID = rand.nextLong();
+ private long executionId = rand.nextLong();
// A string holding a message that indicates why processing of this event threw an exception
private String exceptionMessage;
@@ -122,7 +125,7 @@ public class EnEvent extends HashMap<String, Object> {
*
* @return the event key
*/
- public String getID() {
+ public String getId() {
return axEvent.getKey().getId();
}
@@ -135,8 +138,8 @@ public class EnEvent extends HashMap<String, Object> {
*
* @return the currently set value for the ExecutionID for this event.
*/
- public long getExecutionID() {
- return executionID;
+ public long getExecutionId() {
+ return executionId;
}
/**
@@ -146,10 +149,10 @@ public class EnEvent extends HashMap<String, Object> {
* particular input event. The default initialised value for the ExecutionID is always unique in
* a single JVM.
*
- * @param executionID the new value for the ExecutionID for this event.
+ * @param executionId the new value for the ExecutionID for this event.
*/
- public void setExecutionID(final long executionID) {
- this.executionID = executionID;
+ public void setExecutionId(final long executionId) {
+ this.executionId = executionId;
}
/**
@@ -194,8 +197,9 @@ public class EnEvent extends HashMap<String, Object> {
// Check if this key is a parameter on our event
final AxField eventParameter = axEvent.getParameterMap().get(key);
if (eventParameter == null) {
- LOGGER.warn("parameter with key " + key + " not defined on this event");
- throw new EnException("parameter with key " + key + " not defined on this event");
+ String message = "parameter with key " + key + " not defined on this event";
+ LOGGER.warn(message);
+ throw new EnException(message);
}
// Get the item
@@ -250,15 +254,17 @@ public class EnEvent extends HashMap<String, Object> {
@Override
public Object put(final String key, final Object incomingValue) {
if (key == null) {
- LOGGER.warn("null keys are illegal on method parameter \"key\"");
- throw new EnException("null keys are illegal on method parameter \"key\"");
+ String message = NULL_KEYS_ILLEGAL;
+ LOGGER.warn(message);
+ throw new EnException(message);
}
// Check if this key is a parameter on our event
final AxField eventParameter = axEvent.getParameterMap().get(key);
if (eventParameter == null) {
- LOGGER.warn("parameter with key \"" + key + "\" not defined on event \"" + getName() + "\"");
- throw new EnException("parameter with key \"" + key + "\" not defined on event \"" + getName() + "\"");
+ String message = "parameter with key \"" + key + "\" not defined on event \"" + getName() + "\"";
+ LOGGER.warn(message);
+ throw new EnException(message);
}
// We allow null values
@@ -296,15 +302,16 @@ public class EnEvent extends HashMap<String, Object> {
@Override
public Object remove(final Object key) {
if (key == null) {
- LOGGER.warn("null keys are illegal on method parameter \"key\"");
- throw new EnException("null keys are illegal on method parameter \"key\"");
+ LOGGER.warn(NULL_KEYS_ILLEGAL);
+ throw new EnException(NULL_KEYS_ILLEGAL);
}
// Check if this key is a parameter on our event
final AxField eventParameter = axEvent.getParameterMap().get(key);
if (eventParameter == null) {
- LOGGER.warn("parameter with key " + key + " not defined on this event");
- throw new EnException("parameter with key " + key + " not defined on this event");
+ String message = "parameter with key " + key + " not defined on this event";
+ LOGGER.warn(message);
+ throw new EnException(message);
}
final Object removedValue = super.remove(key);
diff --git a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/Executor.java b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/Executor.java
index 4c969f76e..9941c6de8 100644
--- a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/Executor.java
+++ b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/Executor.java
@@ -37,13 +37,13 @@ import org.onap.policy.apex.model.basicmodel.concepts.AxConcept;
* @author Sven van der Meer (sven.van.der.meer@ericsson.com)
* @author Liam Fallon (liam.fallon@ericsson.com)
*
- * @param <IN> type of the incoming entity
- * @param <OUT> type of the outgoing entity
- * @param <SUBJECT> type that is the subject of execution
- * @param <CONTEXT> context holding the context of execution
+ * @param <I> type of the incoming entity
+ * @param <O> type of the outgoing entity
+ * @param <S> type that is the subject of execution
+ * @param <C> context holding the context of execution
*/
-public interface Executor<IN, OUT, SUBJECT, CONTEXT> {
+public interface Executor<I, O, S, C> {
/**
* Save the subject and context of the executor.
*
@@ -52,7 +52,7 @@ public interface Executor<IN, OUT, SUBJECT, CONTEXT> {
* @param executorSubject the executor subject, the subject of execution
* @param executorContext the executor context, the context in which execution takes place
*/
- void setContext(Executor<?, ?, ?, ?> parent, SUBJECT executorSubject, CONTEXT executorContext);
+ void setContext(Executor<?, ?, ?, ?> parent, S executorSubject, C executorContext);
/**
* Prepares the processing.
@@ -64,23 +64,23 @@ public interface Executor<IN, OUT, SUBJECT, CONTEXT> {
/**
* Executes the executor, running through its context in its natural order.
*
- * @param executionID the execution ID of the current APEX execution policy thread
+ * @param executionId the execution ID of the current APEX execution policy thread
* @param incomingEntity the incoming entity that triggers execution
* @return The outgoing entity that is the result of execution
* @throws StateMachineException on an execution error
* @throws ContextException on context errors
*/
- OUT execute(long executionID, IN incomingEntity) throws StateMachineException, ContextException;
+ O execute(long executionId, I incomingEntity) throws StateMachineException, ContextException;
/**
* Carry out the preparatory work for execution.
*
- * @param executionID the execution ID of the current APEX execution policy thread
+ * @param executionId the execution ID of the current APEX execution policy thread
* @param incomingEntity the incoming entity that triggers execution
* @throws StateMachineException on an execution error
* @throws ContextException on context errors
*/
- void executePre(long executionID, IN incomingEntity) throws StateMachineException, ContextException;
+ void executePre(long executionId, I incomingEntity) throws StateMachineException, ContextException;
/**
* Carry out the post work for execution, the returning entity should be set by the child
@@ -119,42 +119,42 @@ public interface Executor<IN, OUT, SUBJECT, CONTEXT> {
*
* @return The subject for the executor
*/
- SUBJECT getSubject();
+ S getSubject();
/**
* Get the context of the executor.
*
* @return The context for the executor
*/
- CONTEXT getContext();
+ C getContext();
/**
* Get the incoming object of the executor.
*
* @return The incoming object for the executor
*/
- IN getIncoming();
+ I getIncoming();
/**
* Get the outgoing object of the executor.
*
* @return The outgoing object for the executor
*/
- OUT getOutgoing();
+ O getOutgoing();
/**
* Save the next executor for this executor.
*
* @param nextExecutor the next executor
*/
- void setNext(Executor<IN, OUT, SUBJECT, CONTEXT> nextExecutor);
+ void setNext(Executor<I, O, S, C> nextExecutor);
/**
* Get the next executor to be run after this executor completes its execution.
*
* @return The next executor
*/
- Executor<IN, OUT, SUBJECT, CONTEXT> getNext();
+ Executor<I, O, S, C> getNext();
/**
* Set parameters for this executor, overloaded by executors that use parameters.
diff --git a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/StateExecutor.java b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/StateExecutor.java
index 9cf7d90e3..28ea13ea7 100644
--- a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/StateExecutor.java
+++ b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/StateExecutor.java
@@ -171,13 +171,13 @@ public class StateExecutor implements Executor<EnEvent, StateOutput, AxState, Ap
* java.lang.Object)
*/
@Override
- public StateOutput execute(final long executionID, final EnEvent incomingEvent)
+ public StateOutput execute(final long executionId, final EnEvent incomingEvent)
throws StateMachineException, ContextException {
this.lastIncomingEvent = incomingEvent;
// Check that the incoming event matches the trigger for this state
if (!incomingEvent.getAxEvent().getKey().equals(axState.getTrigger())) {
- throw new StateMachineException("incoming event \"" + incomingEvent.getID() + "\" does not match trigger \""
+ throw new StateMachineException("incoming event \"" + incomingEvent.getId() + "\" does not match trigger \""
+ axState.getTrigger().getId() + "\" of state \"" + axState.getId() + "\"");
}
@@ -188,7 +188,7 @@ public class StateExecutor implements Executor<EnEvent, StateOutput, AxState, Ap
// There may be no task selection logic, in which case just return the default task
if (taskSelectExecutor != null) {
// Fire the task selector to find the task to run
- taskKey = taskSelectExecutor.execute(executionID, incomingEvent);
+ taskKey = taskSelectExecutor.execute(executionId, incomingEvent);
}
// If there's no task selection logic or the TSL returned no task, just use the default
@@ -201,7 +201,7 @@ public class StateExecutor implements Executor<EnEvent, StateOutput, AxState, Ap
final TreeMap<String, Object> incomingValues = new TreeMap<>();
incomingValues.putAll(incomingEvent);
final Map<String, Object> taskExecutionResultMap =
- taskExecutorMap.get(taskKey).execute(executionID, incomingValues);
+ taskExecutorMap.get(taskKey).execute(executionId, incomingValues);
final AxTask task = taskExecutorMap.get(taskKey).getSubject();
// Check if this task has direct output
@@ -220,7 +220,7 @@ public class StateExecutor implements Executor<EnEvent, StateOutput, AxState, Ap
// Execute the state finalizer logic to select a state output and to adjust the
// taskExecutionResultMap
stateOutputName =
- finalizerLogicExecutor.execute(incomingEvent.getExecutionID(), taskExecutionResultMap);
+ finalizerLogicExecutor.execute(incomingEvent.getExecutionId(), taskExecutionResultMap);
}
// Now look up the the actual state output
@@ -240,8 +240,8 @@ public class StateExecutor implements Executor<EnEvent, StateOutput, AxState, Ap
stateOutput.copyUnsetFields(incomingEvent);
// Set the ExecutionID for the outgoing event to the value in the incoming event.
- if (stateOutput != null && stateOutput.getOutputEvent() != null) {
- stateOutput.getOutputEvent().setExecutionID(incomingEvent.getExecutionID());
+ if (stateOutput.getOutputEvent() != null) {
+ stateOutput.getOutputEvent().setExecutionId(incomingEvent.getExecutionId());
}
// That's it, the state execution is complete
@@ -262,7 +262,7 @@ public class StateExecutor implements Executor<EnEvent, StateOutput, AxState, Ap
* java.lang.Object)
*/
@Override
- public final void executePre(final long executionID, final EnEvent incomingEntity) throws StateMachineException {
+ public final void executePre(final long executionId, final EnEvent incomingEntity) throws StateMachineException {
throw new StateMachineException("execution pre work not implemented on class");
}
@@ -384,5 +384,7 @@ public class StateExecutor implements Executor<EnEvent, StateOutput, AxState, Ap
* engine. ExecutorParameters)
*/
@Override
- public void setParameters(final ExecutorParameters parameters) {}
+ public void setParameters(final ExecutorParameters parameters) {
+ // Not implemented in this class
+ }
}
diff --git a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/StateFinalizerExecutor.java b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/StateFinalizerExecutor.java
index 687c3b305..1c225f7b8 100644
--- a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/StateFinalizerExecutor.java
+++ b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/StateFinalizerExecutor.java
@@ -36,17 +36,20 @@ import org.slf4j.ext.XLogger;
import org.slf4j.ext.XLoggerFactory;
/**
- * This abstract class executes state finalizer logic in a state of an Apex policy and is
- * specialized by classes that implement execution of state finalizer logic.
+ * This abstract class executes state finalizer logic in a state of an Apex policy and is specialized by classes that
+ * implement execution of state finalizer logic.
*
* @author Sven van der Meer (sven.van.der.meer@ericsson.com)
* @author Liam Fallon (liam.fallon@ericsson.com)
*/
public abstract class StateFinalizerExecutor
- implements Executor<Map<String, Object>, String, AxStateFinalizerLogic, ApexInternalContext> {
+ implements Executor<Map<String, Object>, String, AxStateFinalizerLogic, ApexInternalContext> {
// Logger for this class
private static final XLogger LOGGER = XLoggerFactory.getXLogger(StateFinalizerExecutor.class);
+ // Repeated string constants
+ private static final String EXECUTE_POST_SFL = "execute-post: state finalizer logic \"";
+
// Hold the state and context definitions
private Executor<?, ?, ?, ?> parent = null;
private AxState axState = null;
@@ -81,7 +84,8 @@ public abstract class StateFinalizerExecutor
*/
@Override
public void setContext(final Executor<?, ?, ?, ?> incomingParent,
- final AxStateFinalizerLogic incomingFinalizerLogic, final ApexInternalContext incomingInternalContext) {
+ final AxStateFinalizerLogic incomingFinalizerLogic,
+ final ApexInternalContext incomingInternalContext) {
this.parent = incomingParent;
axState = (AxState) parent.getSubject();
this.finalizerLogic = incomingFinalizerLogic;
@@ -96,41 +100,39 @@ public abstract class StateFinalizerExecutor
@Override
public void prepare() throws StateMachineException {
LOGGER.debug("prepare:" + finalizerLogic.getId() + "," + finalizerLogic.getLogicFlavour() + ","
- + finalizerLogic.getLogic());
+ + finalizerLogic.getLogic());
argumentOfClassNotNull(finalizerLogic.getLogic(), StateMachineException.class, "task logic cannot be null.");
}
/*
* (non-Javadoc)
*
- * @see org.onap.policy.apex.core.engine.executor.Executor#execute(java.lang.long,
- * java.lang.Object)
+ * @see org.onap.policy.apex.core.engine.executor.Executor#execute(java.lang.long, java.lang.Object)
*/
@Override
- public String execute(final long executionID, final Map<String, Object> newIncomingFields)
- throws StateMachineException, ContextException {
- throw new StateMachineException(
- "execute() not implemented on abstract StateFinalizerExecutionContext class, only on its subclasses");
+ public String execute(final long executionId, final Map<String, Object> newIncomingFields)
+ throws StateMachineException, ContextException {
+ throw new StateMachineException("execute() not implemented on abstract StateFinalizerExecutionContext class, "
+ + "only on its subclasses");
}
/*
* (non-Javadoc)
*
- * @see org.onap.policy.apex.core.engine.executor.Executor#executePre(java.lang.long,
- * java.lang.Object)
+ * @see org.onap.policy.apex.core.engine.executor.Executor#executePre(java.lang.long, java.lang.Object)
*/
@Override
- public final void executePre(final long executionID, final Map<String, Object> newIncomingFields)
- throws StateMachineException, ContextException {
+ public final void executePre(final long executionId, final Map<String, Object> newIncomingFields)
+ throws StateMachineException, ContextException {
LOGGER.debug("execute-pre:" + finalizerLogic.getLogicFlavour() + "," + getSubject().getId() + ","
- + finalizerLogic.getLogic());
+ + finalizerLogic.getLogic());
// Record the incoming fields
this.incomingFields = newIncomingFields;
// Get state finalizer context object
- executionContext = new StateFinalizerExecutionContext(this, executionID, axState, getIncoming(),
- axState.getStateOutputs().keySet(), getContext());
+ executionContext = new StateFinalizerExecutionContext(this, executionId, axState, getIncoming(),
+ axState.getStateOutputs().keySet(), getContext());
}
/*
@@ -142,7 +144,7 @@ public abstract class StateFinalizerExecutor
public final void executePost(final boolean returnValue) throws StateMachineException, ContextException {
if (!returnValue) {
String errorMessage = "execute-post: state finalizer logic execution failure on state \"" + axState.getId()
- + "\" on finalizer logic " + finalizerLogic.getId();
+ + "\" on finalizer logic " + finalizerLogic.getId();
if (executionContext.getMessage() != null) {
errorMessage += ", user message: " + executionContext.getMessage();
}
@@ -152,23 +154,20 @@ public abstract class StateFinalizerExecutor
// Check a state output has been selected
if (getOutgoing() == null) {
- LOGGER.warn("execute-post: state finalizer logic \"" + finalizerLogic.getId()
- + "\" did not select an output state");
- throw new StateMachineException("execute-post: state finalizer logic \"" + finalizerLogic.getId()
- + "\" did not select an output state");
+ String message = EXECUTE_POST_SFL + finalizerLogic.getId() + "\" did not select an output state";
+ LOGGER.warn(message);
+ throw new StateMachineException(message);
}
if (!axState.getStateOutputs().keySet().contains(getOutgoing())) {
- LOGGER.warn(
- "execute-post: state finalizer logic \"" + finalizerLogic.getId() + "\" selected output state \""
- + getOutgoing() + "\" that does not exsist on state \"" + axState.getId() + "\"");
- throw new StateMachineException(
- "execute-post: state finalizer logic \"" + finalizerLogic.getId() + "\" selected output state \""
+ LOGGER.warn(EXECUTE_POST_SFL + finalizerLogic.getId() + "\" selected output state \"" + getOutgoing()
+ + "\" that does not exsist on state \"" + axState.getId() + "\"");
+ throw new StateMachineException(EXECUTE_POST_SFL + finalizerLogic.getId() + "\" selected output state \""
+ getOutgoing() + "\" that does not exsist on state \"" + axState.getId() + "\"");
}
- LOGGER.debug("execute-post:" + finalizerLogic.getId() + ", returning state output \"" + getOutgoing()
- + " and fields " + incomingFields);
+ LOGGER.debug("execute-post:{}, returning state output \"{}\" and fields {}", finalizerLogic.getId(),
+ getOutgoing(), incomingFields);
}
/*
@@ -244,14 +243,13 @@ public abstract class StateFinalizerExecutor
/*
* (non-Javadoc)
*
- * @see
- * org.onap.policy.apex.core.engine.executor.Executor#setNext(org.onap.policy.apex.core.engine.
+ * @see org.onap.policy.apex.core.engine.executor.Executor#setNext(org.onap.policy.apex.core.engine.
* executor.Executor)
*/
@Override
- public void setNext(final Executor<Map<String, Object>, String, AxStateFinalizerLogic, ApexInternalContext>
- incomingNextExecutor) {
- this.nextExecutor = incomingNextExecutor;
+ public void setNext(
+ final Executor<Map<String, Object>, String, AxStateFinalizerLogic, ApexInternalContext> inNextEx) {
+ this.nextExecutor = inNextEx;
}
/*
@@ -267,10 +265,10 @@ public abstract class StateFinalizerExecutor
/*
* (non-Javadoc)
*
- * @see
- * org.onap.policy.apex.core.engine.executor.Executor#setParameters(org.onap.policy.apex.core.
- * engine. ExecutorParameters)
+ * @see org.onap.policy.apex.core.engine.executor.Executor#setParameters(org.onap.policy.apex.core. engine.
+ * ExecutorParameters)
*/
@Override
- public void setParameters(final ExecutorParameters parameters) {}
+ public void setParameters(final ExecutorParameters parameters) {
+ }
}
diff --git a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/StateMachineExecutor.java b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/StateMachineExecutor.java
index 07ef8d6d6..97d51bf78 100644
--- a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/StateMachineExecutor.java
+++ b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/StateMachineExecutor.java
@@ -128,7 +128,7 @@ public class StateMachineExecutor implements Executor<EnEvent, EnEvent, AxPolicy
* java.lang.Object)
*/
@Override
- public EnEvent execute(final long executionID, final EnEvent incomingEvent)
+ public EnEvent execute(final long executionId, final EnEvent incomingEvent)
throws StateMachineException, ContextException {
// Check if there are any states on the state machine
if (stateExecutorMap.size() == 0) {
@@ -147,7 +147,7 @@ public class StateMachineExecutor implements Executor<EnEvent, EnEvent, AxPolicy
incomingEvent.getKey(), firstExecutor.getSubject().getKey()), incomingEvent);
while (true) {
// Execute the state
- stateOutput = stateExecutor.execute(executionID, stateOutput.getOutputEvent());
+ stateOutput = stateExecutor.execute(executionId, stateOutput.getOutputEvent());
if (stateOutput == null) {
throw new StateMachineException("state execution failed, invalid state output returned");
}
@@ -175,7 +175,7 @@ public class StateMachineExecutor implements Executor<EnEvent, EnEvent, AxPolicy
* java.lang.Object)
*/
@Override
- public final void executePre(final long executionID, final EnEvent incomingEntity) throws StateMachineException {
+ public final void executePre(final long executionId, final EnEvent incomingEntity) throws StateMachineException {
throw new StateMachineException("execution pre work not implemented on class");
}
@@ -291,5 +291,7 @@ public class StateMachineExecutor implements Executor<EnEvent, EnEvent, AxPolicy
* engine. ExecutorParameters)
*/
@Override
- public void setParameters(final ExecutorParameters parameters) {}
+ public void setParameters(final ExecutorParameters parameters) {
+ // Not implemented in this class
+ }
}
diff --git a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/StateOutput.java b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/StateOutput.java
index 65cb0d2b8..837347174 100644
--- a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/StateOutput.java
+++ b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/StateOutput.java
@@ -34,8 +34,7 @@ import org.onap.policy.apex.model.policymodel.concepts.AxStateOutput;
import org.onap.policy.apex.model.utilities.Assertions;
/**
- * This class is the output of a state, and is used by the engine to decide what the next state for
- * execution is.
+ * This class is the output of a state, and is used by the engine to decide what the next state for execution is.
*
* @author Liam Fallon (liam.fallon@ericsson.com)
*/
@@ -104,14 +103,14 @@ public class StateOutput {
* @throws StateMachineException on errors populating the event fields
*/
public void setEventFields(final Map<String, AxField> incomingFieldDefinitionMap,
- final Map<String, Object> eventFieldMap) throws StateMachineException {
+ final Map<String, Object> eventFieldMap) throws StateMachineException {
Assertions.argumentNotNull(incomingFieldDefinitionMap, "incomingFieldDefinitionMap may not be null");
Assertions.argumentNotNull(eventFieldMap, "eventFieldMap may not be null");
if (!incomingFieldDefinitionMap.keySet().equals(eventFieldMap.keySet())) {
throw new StateMachineException(
- "field definitions and values do not match for event " + outputEventDef.getId() + '\n'
- + incomingFieldDefinitionMap.keySet() + '\n' + eventFieldMap.keySet());
+ "field definitions and values do not match for event " + outputEventDef.getId() + '\n'
+ + incomingFieldDefinitionMap.keySet() + '\n' + eventFieldMap.keySet());
}
for (final Entry<String, Object> incomingFieldEntry : eventFieldMap.entrySet()) {
final String fieldName = incomingFieldEntry.getKey();
@@ -119,8 +118,8 @@ public class StateOutput {
// Check if this field is a field in the event
if (!outputEventDef.getFields().contains(fieldDef)) {
- throw new StateMachineException(
- "field \"" + fieldName + "\" does not exist on event \"" + outputEventDef.getId() + "\"");
+ throw new StateMachineException("field \"" + fieldName + "\" does not exist on event \""
+ + outputEventDef.getId() + "\"");
}
// Set the value in the output event
@@ -129,8 +128,8 @@ public class StateOutput {
}
/**
- * This method copies any fields that exist on the input event that also exist on the output
- * event if they are not set on the output event.
+ * This method copies any fields that exist on the input event that also exist on the output event if they are not
+ * set on the output event.
*
* @param incomingEvent The incoming event to copy from
*/
@@ -141,18 +140,14 @@ public class StateOutput {
final String fieldName = incomingField.getKey();
// Check if the field exists on the outgoing event
- if (!outputEventDef.getParameterMap().containsKey(fieldName)) {
- continue;
- }
+ if ((!outputEventDef.getParameterMap().containsKey(fieldName))
- // Check if the field is set on the outgoing event
- if (outputEvent.containsKey(fieldName)) {
- continue;
- }
+ // Check if the field is set on the outgoing event
+ || (outputEvent.containsKey(fieldName))
- // Now, check the fields have the same type
- if (!incomingEvent.getAxEvent().getParameterMap().get(fieldName)
- .equals(outputEvent.getAxEvent().getParameterMap().get(fieldName))) {
+ // Now, check the fields have the same type
+ || (!incomingEvent.getAxEvent().getParameterMap().get(fieldName)
+ .equals(outputEvent.getAxEvent().getParameterMap().get(fieldName)))) {
continue;
}
diff --git a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/TaskExecutor.java b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/TaskExecutor.java
index de2f7b821..814f257f7 100644
--- a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/TaskExecutor.java
+++ b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/TaskExecutor.java
@@ -101,7 +101,8 @@ public abstract class TaskExecutor
public void prepare() throws StateMachineException {
LOGGER.debug("prepare:" + axTask.getKey().getId() + "," + axTask.getTaskLogic().getLogicFlavour() + ","
+ axTask.getTaskLogic().getLogic());
- argumentOfClassNotNull(axTask.getTaskLogic().getLogic(), StateMachineException.class, "task logic cannot be null.");
+ argumentOfClassNotNull(axTask.getTaskLogic().getLogic(), StateMachineException.class,
+ "task logic cannot be null.");
}
/*
@@ -111,7 +112,7 @@ public abstract class TaskExecutor
* java.lang.Object)
*/
@Override
- public Map<String, Object> execute(final long executionID, final Map<String, Object> newIncomingFields)
+ public Map<String, Object> execute(final long executionId, final Map<String, Object> newIncomingFields)
throws StateMachineException, ContextException {
throw new StateMachineException(
"execute() not implemented on abstract TaskExecutor class, only on its subclasses");
@@ -124,7 +125,7 @@ public abstract class TaskExecutor
* java.lang.Object)
*/
@Override
- public final void executePre(final long executionID, final Map<String, Object> newIncomingFields)
+ public final void executePre(final long executionId, final Map<String, Object> newIncomingFields)
throws StateMachineException, ContextException {
LOGGER.debug("execute-pre:" + getSubject().getTaskLogic().getLogicFlavour() + ","
+ getSubject().getKey().getId() + "," + getSubject().getTaskLogic().getLogic());
@@ -157,7 +158,7 @@ public abstract class TaskExecutor
// Get task context object
executionContext =
- new TaskExecutionContext(this, executionID, getSubject(), getIncoming(), getOutgoing(), getContext());
+ new TaskExecutionContext(this, executionId, getSubject(), getIncoming(), getOutgoing(), getContext());
}
/*
@@ -228,7 +229,8 @@ public abstract class TaskExecutor
+ "\" are unwanted for task \"" + axTask.getKey().getId() + "\"");
}
- LOGGER.debug("execute-post:" + axTask.getKey().getId() + ", returning fields " + outgoingFields.toString());
+ String message = "execute-post:" + axTask.getKey().getId() + ", returning fields " + outgoingFields.toString();
+ LOGGER.debug(message);
}
/*
diff --git a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/TaskSelectExecutor.java b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/TaskSelectExecutor.java
index cda0ac549..5d24f0d4a 100644
--- a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/TaskSelectExecutor.java
+++ b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/TaskSelectExecutor.java
@@ -104,7 +104,7 @@ public abstract class TaskSelectExecutor implements Executor<EnEvent, AxArtifact
* java.lang.Object)
*/
@Override
- public AxArtifactKey execute(final long executionID, final EnEvent newIncomingEvent)
+ public AxArtifactKey execute(final long executionId, final EnEvent newIncomingEvent)
throws StateMachineException, ContextException {
throw new StateMachineException("execute() not implemented on class");
}
@@ -116,7 +116,7 @@ public abstract class TaskSelectExecutor implements Executor<EnEvent, AxArtifact
* java.lang.Object)
*/
@Override
- public final void executePre(final long executionID, final EnEvent newIncomingEvent) throws StateMachineException {
+ public final void executePre(final long executionId, final EnEvent newIncomingEvent) throws StateMachineException {
LOGGER.debug("execute-pre:" + axState.getKey().getId() + "," + axState.getTaskSelectionLogic().getLogicFlavour()
+ "," + axState.getTaskSelectionLogic().getLogic());
@@ -126,7 +126,7 @@ public abstract class TaskSelectExecutor implements Executor<EnEvent, AxArtifact
outgoingTaskKey = new AxArtifactKey();
// Get task selection context object
- executionContext = new TaskSelectionExecutionContext(this, executionID, getSubject(), getIncoming(),
+ executionContext = new TaskSelectionExecutionContext(this, executionId, getSubject(), getIncoming(),
getOutgoing(), getContext());
}
diff --git a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/context/StateFinalizerExecutionContext.java b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/context/StateFinalizerExecutionContext.java
index be1b311c2..460639b90 100644
--- a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/context/StateFinalizerExecutionContext.java
+++ b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/context/StateFinalizerExecutionContext.java
@@ -58,7 +58,7 @@ public class StateFinalizerExecutionContext {
public final AxStateFacade subject;
/** the execution ID for the current APEX policy execution instance. */
- public final Long executionID;
+ public final Long executionId;
/**
* The list of state outputs for this state finalizer. The purpose of a state finalizer is to
@@ -99,7 +99,7 @@ public class StateFinalizerExecutionContext {
* Instantiates a new state finalizer execution context.
*
* @param stateFinalizerExecutor the state finalizer executor that requires context
- * @param executionID the execution ID for the current APEX policy execution instance
+ * @param executionId the execution ID for the current APEX policy execution instance
* @param axState the state definition that is the subject of execution
* @param fields the fields to be manipulated by the state finalizer
* @param stateOutputNames the state output names, one of which will be selected by the state
@@ -107,13 +107,13 @@ public class StateFinalizerExecutionContext {
* @param internalContext the execution context of the Apex engine in which the task is being
* executed
*/
- public StateFinalizerExecutionContext(final StateFinalizerExecutor stateFinalizerExecutor, final long executionID,
+ public StateFinalizerExecutionContext(final StateFinalizerExecutor stateFinalizerExecutor, final long executionId,
final AxState axState, final Map<String, Object> fields, final Set<String> stateOutputNames,
final ApexInternalContext internalContext) {
subject = new AxStateFacade(axState);
// Execution ID is the current policy execution instance
- this.executionID = executionID;
+ this.executionId = executionId;
this.fields = fields;
this.stateOutputNames = stateOutputNames;
@@ -150,7 +150,7 @@ public class StateFinalizerExecutionContext {
* @throws ContextRuntimeException if the context album does not exist on the state for this
* executor
*/
- public ContextAlbum getContextAlbum(final String contextAlbumName) throws ContextRuntimeException {
+ public ContextAlbum getContextAlbum(final String contextAlbumName) {
// Find the context album
final ContextAlbum foundContextAlbum = context.get(contextAlbumName);
diff --git a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/context/TaskExecutionContext.java b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/context/TaskExecutionContext.java
index a9a157082..4a9e83063 100644
--- a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/context/TaskExecutionContext.java
+++ b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/context/TaskExecutionContext.java
@@ -52,18 +52,18 @@ public class TaskExecutionContext {
// CHECKSTYLE:OFF: checkstyle:VisibilityModifier Logic has access to these field
/** A constant <code>boolean true</code> value available for reuse e.g., for the return value */
- public final Boolean TRUE = true;
+ public final Boolean isTrue = true;
/**
* A constant <code>boolean false</code> value available for reuse e.g., for the return value
*/
- public final Boolean FALSE = false;
+ public final Boolean isFalse = false;
/** A facade to the full task definition for the task logic being executed. */
public final AxTaskFacade subject;
/** the execution ID for the current APEX policy execution instance. */
- public final Long executionID;
+ public final Long executionId;
/**
* The incoming fields from the trigger event for the task. The task logic can access these
@@ -97,21 +97,21 @@ public class TaskExecutionContext {
* Instantiates a new task execution context.
*
* @param taskExecutor the task executor that requires context
- * @param executionID the execution ID for the current APEX policy execution instance
+ * @param executionId the execution ID for the current APEX policy execution instance
* @param axTask the task definition that is the subject of execution
* @param inFields the in fields
* @param outFields the out fields
* @param internalContext the execution context of the Apex engine in which the task is being
* executed
*/
- public TaskExecutionContext(final TaskExecutor taskExecutor, final long executionID, final AxTask axTask,
+ public TaskExecutionContext(final TaskExecutor taskExecutor, final long executionId, final AxTask axTask,
final Map<String, Object> inFields, final Map<String, Object> outFields,
final ApexInternalContext internalContext) {
// The subject is the task definition
subject = new AxTaskFacade(axTask);
// Execution ID is the current policy execution instance
- this.executionID = executionID;
+ this.executionId = executionId;
// The input and output fields
this.inFields = Collections.unmodifiableMap(inFields);
@@ -147,7 +147,7 @@ public class TaskExecutionContext {
* @throws ContextRuntimeException if the context album does not exist on the task for this
* executor
*/
- public ContextAlbum getContextAlbum(final String contextAlbumName) throws ContextRuntimeException {
+ public ContextAlbum getContextAlbum(final String contextAlbumName) {
// Find the context album
final ContextAlbum foundContextAlbum = context.get(contextAlbumName);
diff --git a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/context/TaskSelectionExecutionContext.java b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/context/TaskSelectionExecutionContext.java
index 3194e3fce..63052348a 100644
--- a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/context/TaskSelectionExecutionContext.java
+++ b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/context/TaskSelectionExecutionContext.java
@@ -52,18 +52,18 @@ public class TaskSelectionExecutionContext {
// CHECKSTYLE:OFF: checkstyle:VisibilityModifier Logic has access to these field
/** A constant <code>boolean true</code> value available for reuse e.g., for the return value */
- public final Boolean TRUE = true;
+ public final Boolean isTrue = true;
/**
* A constant <code>boolean false</code> value available for reuse e.g., for the return value
*/
- public final Boolean FALSE = false;
+ public final Boolean isFalse = false;
/** A facade to the full state definition for the task selection logic being executed. */
public final AxStateFacade subject;
/** the execution ID for the current APEX policy execution instance. */
- public final Long executionID;
+ public final Long executionId;
/**
* The incoming fields from the trigger event for the state. The task selection logic can access
@@ -96,21 +96,21 @@ public class TaskSelectionExecutionContext {
* Instantiates a new task selection execution context.
*
* @param taskSelectExecutor the task selection executor that requires context
- * @param executionID the execution identifier
+ * @param executionId the execution identifier
* @param axState the state definition that is the subject of execution
* @param incomingEvent the incoming event for the state
* @param outgoingKey the outgoing key for the task to execute in this state
* @param internalContext the execution context of the Apex engine in which the task is being
* executed
*/
- public TaskSelectionExecutionContext(final TaskSelectExecutor taskSelectExecutor, final long executionID,
+ public TaskSelectionExecutionContext(final TaskSelectExecutor taskSelectExecutor, final long executionId,
final AxState axState, final EnEvent incomingEvent, final AxArtifactKey outgoingKey,
final ApexInternalContext internalContext) {
// The subject is the state definition
subject = new AxStateFacade(axState);
// Execution ID is the current policy execution instance
- this.executionID = executionID;
+ this.executionId = executionId;
// The events
inFields = incomingEvent;
@@ -153,7 +153,7 @@ public class TaskSelectionExecutionContext {
* @throws ContextRuntimeException if the context album does not exist on the state for this
* executor
*/
- public ContextAlbum getContextAlbum(final String contextAlbumName) throws ContextRuntimeException {
+ public ContextAlbum getContextAlbum(final String contextAlbumName) {
// Find the context album
final ContextAlbum foundContextAlbum = context.get(contextAlbumName);
diff --git a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/monitoring/EventMonitor.java b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/monitoring/EventMonitor.java
index c1c9ce949..de2639dcb 100644
--- a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/monitoring/EventMonitor.java
+++ b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/monitoring/EventMonitor.java
@@ -44,7 +44,8 @@ public class EventMonitor {
* @param userArtifactStack the keys of the artifacts using the event at the moment
*/
public void monitorGet(final AxField eventParameter, final Object value, final AxConcept[] userArtifactStack) {
- LOGGER.trace(monitor("GET", userArtifactStack, eventParameter, value));
+ String monitorGetString = monitor("GET", userArtifactStack, eventParameter, value);
+ LOGGER.trace(monitorGetString);
}
/**
@@ -55,7 +56,8 @@ public class EventMonitor {
* @param userArtifactStack the keys of the artifacts using the event at the moment
*/
public void monitorSet(final AxField eventParameter, final Object value, final AxConcept[] userArtifactStack) {
- LOGGER.trace(monitor("SET", userArtifactStack, eventParameter, value));
+ String monitorSetString = monitor("SET", userArtifactStack, eventParameter, value);
+ LOGGER.trace(monitorSetString);
}
/**
@@ -67,7 +69,8 @@ public class EventMonitor {
*/
public void monitorRemove(final AxField eventParameter, final Object removedValue,
final AxConcept[] userArtifactStack) {
- LOGGER.trace(monitor("REMOVE", userArtifactStack, eventParameter, removedValue));
+ String monitorRemoveString = monitor("REMOVE", userArtifactStack, eventParameter, removedValue);
+ LOGGER.trace(monitorRemoveString);
}
/**
diff --git a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/java/JavaHandlingException.java b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/java/JavaHandlingException.java
index f6ef68105..63bd1c477 100644
--- a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/java/JavaHandlingException.java
+++ b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/java/JavaHandlingException.java
@@ -40,19 +40,19 @@ public class JavaHandlingException extends Exception {
/**
* Instantiates a new Java handling exception.
*
- * @param e the exception to wrap
+ * @param exception the exception to wrap
*/
- public JavaHandlingException(final Exception e) {
- super(e);
+ public JavaHandlingException(final Exception exception) {
+ super(exception);
}
/**
* Instantiates a new Java handling exception.
*
* @param message the message
- * @param e the exception to wrap
+ * @param exception the exception to wrap
*/
- public JavaHandlingException(final String message, final Exception e) {
- super(message, e);
+ public JavaHandlingException(final String message, final Exception exception) {
+ super(message, exception);
}
}
diff --git a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/java/classes/ClassUtils.java b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/java/classes/ClassUtils.java
index 919d1b122..16a3369fb 100644
--- a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/java/classes/ClassUtils.java
+++ b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/java/classes/ClassUtils.java
@@ -22,6 +22,7 @@ package org.onap.policy.apex.core.infrastructure.java.classes;
import java.io.File;
import java.io.FileInputStream;
+import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Method;
import java.net.URL;
@@ -44,6 +45,9 @@ public abstract class ClassUtils {
// Get a reference to the logger
private static final XLogger LOGGER = XLoggerFactory.getXLogger(ClassUtils.class);
+ // Repeated string constants
+ private static final String CLASS_PATTERN = "\\.class$";
+
// The boot directory in Java for predefined JARs
private static final String SUN_BOOT_LIBRARY_PATH = "sun.boot.library.path";
@@ -89,16 +93,13 @@ public abstract class ClassUtils {
try {
final Class<?> nullclassloader = Class.forName("sun.misc.Launcher");
if (nullclassloader != null) {
- // There a long way and a short way, Short way: causes a warning that cannot be suppressed
- // URL[] moreurls = sun.misc.Launcher.getBootstrapClassPath().getURLs();
- // long way:
- Method m = nullclassloader.getMethod("getBootstrapClassPath");
- if (m != null) {
- final Object cp = m.invoke(null, (Object[]) null);
+ Method mmethod = nullclassloader.getMethod("getBootstrapClassPath");
+ if (mmethod != null) {
+ final Object cp = mmethod.invoke(null, (Object[]) null);
if (cp != null) {
- m = cp.getClass().getMethod("getURLs");
- if (m != null) {
- final URL[] moreurls = (URL[]) (m.invoke(cp, (Object[]) null));
+ mmethod = cp.getClass().getMethod("getURLs");
+ if (mmethod != null) {
+ final URL[] moreurls = (URL[]) (mmethod.invoke(cp, (Object[]) null));
if (moreurls != null && moreurls.length > 0) {
if (urls.length == 0) {
urls = moreurls;
@@ -130,10 +131,8 @@ public abstract class ClassUtils {
// JARs are processed as well
else if (url.getFile().endsWith(".jar")) {
classNameSet.addAll(processJar(urlFile));
- } else {
- // It's a resource or some other non-executable thing
- continue;
}
+ // It's a resource or some other non-executable thing
}
} catch (final Exception e) {
LOGGER.warn("could not get the names of Java classes", e);
@@ -168,9 +167,7 @@ public abstract class ClassUtils {
} else if (child.getName().endsWith(".class") && !child.getName().contains("$")) {
// Process the ".class" file
classNameSet.add(
- child.getAbsolutePath().replace(rootDir, "").replaceFirst("\\.class$", "").replace('/', '.'));
- } else {
- continue;
+ child.getAbsolutePath().replace(rootDir, "").replaceFirst(CLASS_PATTERN, "").replace('/', '.'));
}
}
return classNameSet;
@@ -194,7 +191,7 @@ public abstract class ClassUtils {
fileName = fileName.substring(classesPos + CLASSES_TOKEN.length());
}
- return fileName.replaceFirst("\\.class$", "").replace('/', '.');
+ return fileName.replaceFirst(CLASS_PATTERN, "").replace('/', '.');
}
/**
@@ -202,9 +199,9 @@ public abstract class ClassUtils {
*
* @param jarFile the JAR file
* @return a set of class names
- * @throws Exception on errors processing JARs
+ * @throws IOException on errors processing JARs
*/
- public static Set<String> processJar(final File jarFile) throws Exception {
+ public static Set<String> processJar(final File jarFile) throws IOException {
// Pass the file as an input stream
return processJar(new FileInputStream(jarFile.getAbsolutePath()));
}
@@ -214,9 +211,9 @@ public abstract class ClassUtils {
*
* @param jarInputStream the JAR input stream
* @return a set of class names
- * @throws Exception on errors processing JARs
+ * @throws IOException on errors processing JARs
*/
- public static Set<String> processJar(final InputStream jarInputStream) throws Exception {
+ public static Set<String> processJar(final InputStream jarInputStream) throws IOException {
// The return set
final TreeSet<String> classPathSet = new TreeSet<>();
@@ -229,7 +226,7 @@ public abstract class ClassUtils {
// Iterate over each entry in the JAR
for (ZipEntry entry = zip.getNextEntry(); entry != null; entry = zip.getNextEntry()) {
if (!entry.isDirectory() && entry.getName().endsWith(".class") && !entry.getName().contains("$")) {
- classPathSet.add(entry.getName().replaceFirst("\\.class$", "").replace('/', '.'));
+ classPathSet.add(entry.getName().replaceFirst(CLASS_PATTERN, "").replace('/', '.'));
}
}
zip.close();
@@ -243,7 +240,7 @@ public abstract class ClassUtils {
*/
public static void main(final String[] args) {
for (final String clz : getClassNames()) {
- System.out.println("Found class: " + clz);
+ LOGGER.info("Found class: {}", clz);
}
}
}
diff --git a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/java/compile/singleclass/SingleClassBuilder.java b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/java/compile/singleclass/SingleClassBuilder.java
index 7a0b6048e..464a601e1 100644
--- a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/java/compile/singleclass/SingleClassBuilder.java
+++ b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/java/compile/singleclass/SingleClassBuilder.java
@@ -69,8 +69,8 @@ public class SingleClassBuilder {
*/
public void compile() throws JavaHandlingException {
// Get the list of compilation units, there is only one here
- final List<? extends JavaFileObject> compilationUnits =
- Arrays.asList(new SingleClassCompilationUnit(className, sourceCode));
+ final List<? extends JavaFileObject> compilationUnits = Arrays
+ .asList(new SingleClassCompilationUnit(className, sourceCode));
// Allows us to get diagnostics from the compilation
final DiagnosticCollector<JavaFileObject> diagnosticListener = new DiagnosticCollector<>();
@@ -80,8 +80,8 @@ public class SingleClassBuilder {
// Set up the target file manager and call the compiler
singleFileManager = new SingleFileManager(compiler, new SingleClassByteCodeFileObject(className));
- final JavaCompiler.CompilationTask task =
- compiler.getTask(null, singleFileManager, diagnosticListener, null, null, compilationUnits);
+ final JavaCompiler.CompilationTask task = compiler.getTask(null, singleFileManager, diagnosticListener, null,
+ null, compilationUnits);
// Check if the compilation worked
if (!task.call()) {
@@ -104,9 +104,9 @@ public class SingleClassBuilder {
builder.append("\n");
}
- LOGGER.warn("error compiling Java code for class \"" + className + "\": " + builder.toString());
- throw new JavaHandlingException(
- "error compiling Java code for class \"" + className + "\": " + builder.toString());
+ String message = "error compiling Java code for class \"" + className + "\": " + builder.toString();
+ LOGGER.warn(message);
+ throw new JavaHandlingException(message);
}
}
@@ -120,12 +120,12 @@ public class SingleClassBuilder {
* @throws ClassNotFoundException the byte code for the class is not found in the class loader
* @throws JavaHandlingException the java handling exception if the Java class source code is not compiled
*/
- public Object createObject()
- throws InstantiationException, IllegalAccessException, ClassNotFoundException, JavaHandlingException {
+ public Object createObject() throws InstantiationException, IllegalAccessException, ClassNotFoundException,
+ JavaHandlingException {
if (singleFileManager == null) {
- LOGGER.warn("error instantiating instance for class \"" + className + "\": code may not be compiled");
- throw new JavaHandlingException(
- "error instantiating instance for class \"" + className + "\": code may not be compiled");
+ String message = "error instantiating instance for class \"" + className + "\": code may not be compiled";
+ LOGGER.warn(message);
+ throw new JavaHandlingException(message);
}
return singleFileManager.getClassLoader(null).findClass(className).newInstance();
diff --git a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/java/compile/singleclass/SingleClassByteCodeFileObject.java b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/java/compile/singleclass/SingleClassByteCodeFileObject.java
index 4b7225267..043657854 100644
--- a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/java/compile/singleclass/SingleClassByteCodeFileObject.java
+++ b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/java/compile/singleclass/SingleClassByteCodeFileObject.java
@@ -35,7 +35,7 @@ import javax.tools.SimpleJavaFileObject;
* basis for {@code JavaFileObject} implementations. Subclasses can override the implementation and specification of any
* method of this class as long as the general contract of {@code JavaFileObject} is obeyed.
*
- * This class holds the byte code for a single class in memory.
+ * <p>This class holds the byte code for a single class in memory.
*
* @author Liam Fallon (liam.fallon@ericsson.com)
*/
diff --git a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/java/compile/singleclass/SingleFileManager.java b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/java/compile/singleclass/SingleFileManager.java
index cd14b1a06..066765504 100644
--- a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/java/compile/singleclass/SingleFileManager.java
+++ b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/java/compile/singleclass/SingleFileManager.java
@@ -34,7 +34,7 @@ import javax.tools.StandardJavaFileManager;
* is an implementation of {@code JavaFileManager} that forwards the {@code JavaFileManager} methods to a given file
* manager.
*
- * This class instantiates and forwards those requests to a {@link StandardJavaFileManager} instance to act as a
+ * <p>This class instantiates and forwards those requests to a {@link StandardJavaFileManager} instance to act as a
* {@code JavaFileManager} for a Java single file, managing class loading for the class.
*
* @author Liam Fallon (liam.fallon@ericsson.com)
diff --git a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/MessageHolder.java b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/MessageHolder.java
index f74ffa0b3..243e057be 100644
--- a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/MessageHolder.java
+++ b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/MessageHolder.java
@@ -33,9 +33,9 @@ import org.slf4j.ext.XLoggerFactory;
* implementation.
*
* @author Sajeevan Achuthan (sajeevan.achuthan@ericsson.com)
- * @param <MESSAGE> the generic type of message being handled by a message holder instance
+ * @param <M> the generic type of message being handled by a message holder instance
*/
-public class MessageHolder<MESSAGE> implements Serializable {
+public class MessageHolder<M> implements Serializable {
private static final int HASH_PRIME = 31;
private static final int FOUR_BYTES = 32;
@@ -50,7 +50,7 @@ public class MessageHolder<MESSAGE> implements Serializable {
private final InetAddress senderHostAddress;
// Sequence of message in the message holder
- private final List<MESSAGE> messages;
+ private final List<M> messages;
/**
* Constructor, create the message holder.
@@ -69,7 +69,7 @@ public class MessageHolder<MESSAGE> implements Serializable {
*
* @return the messages
*/
- public List<MESSAGE> getMessages() {
+ public List<M> getMessages() {
return messages;
}
@@ -78,7 +78,7 @@ public class MessageHolder<MESSAGE> implements Serializable {
*
* @param message the message to add
*/
- public void addMessage(final MESSAGE message) {
+ public void addMessage(final M message) {
if (!messages.contains(message)) {
messages.add(message);
} else {
@@ -160,9 +160,6 @@ public class MessageHolder<MESSAGE> implements Serializable {
} else if (!messages.equals(other.messages)) {
return false;
}
- if (creationTime != other.creationTime) {
- return false;
- }
- return true;
+ return creationTime == other.creationTime;
}
}
diff --git a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/MessageListener.java b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/MessageListener.java
index c8b132423..0aab650d3 100644
--- a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/MessageListener.java
+++ b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/MessageListener.java
@@ -27,16 +27,16 @@ import org.onap.policy.apex.core.infrastructure.messaging.impl.ws.messageblock.M
* implements this interface.
*
* @author Sajeevan Achuthan (sajeevan.achuthan@ericsson.com)
- * @param <MESSAGE> of message of any given type that is being listened for and handled
+ * @param <M> of message of any given type that is being listened for and handled
*/
-public interface MessageListener<MESSAGE> {
+public interface MessageListener<M> {
/**
* This method is called when a message block is received on a web socket and is to be forwarded to a listener.
*
* @param data the message data containing a message
*/
- void onMessage(MessageBlock<MESSAGE> data);
+ void onMessage(MessageBlock<M> data);
/**
* This method is called when a string message is received on a web socket and is to be forwarded to a listener.
diff --git a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/MessagingService.java b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/MessagingService.java
index 7e91b95ea..352e70806 100644
--- a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/MessagingService.java
+++ b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/MessagingService.java
@@ -25,9 +25,9 @@ package org.onap.policy.apex.core.infrastructure.messaging;
* messaging.
*
* @author Sajeevan Achuthan (sajeevan.achuthan@ericsson.com)
- * @param <MESSAGE> the type of message being passed by an implementation of Apex messaging
+ * @param <M> the type of message being passed by an implementation of Apex messaging
*/
-public interface MessagingService<MESSAGE> {
+public interface MessagingService<M> {
/**
* Start the messaging connection.
@@ -51,7 +51,7 @@ public interface MessagingService<MESSAGE> {
*
* @param messageHolder The message holder holding the messages to be sent
*/
- void send(MessageHolder<MESSAGE> messageHolder);
+ void send(MessageHolder<M> messageHolder);
/**
* Send a string message on the connection.
@@ -65,12 +65,12 @@ public interface MessagingService<MESSAGE> {
*
* @param messageListener the message listener
*/
- void addMessageListener(MessageListener<MESSAGE> messageListener);
+ void addMessageListener(MessageListener<M> messageListener);
/**
* Removes the message listener.
*
* @param messageListener the message listener
*/
- void removeMessageListener(MessageListener<MESSAGE> messageListener);
+ void removeMessageListener(MessageListener<M> messageListener);
}
diff --git a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/MessagingServiceFactory.java b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/MessagingServiceFactory.java
index 1d08fac74..b38b32f0e 100644
--- a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/MessagingServiceFactory.java
+++ b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/MessagingServiceFactory.java
@@ -30,9 +30,9 @@ import org.onap.policy.apex.core.infrastructure.messaging.impl.ws.server.Message
* A factory class to create a "server" or "client" type Messaging Service.
*
* @author Sajeevan Achuthan (sajeevan.achuthan@ericsson.com)
- * @param <MESSAGE> the generic type of message to be handled by this messaging service
+ * @param <M> the generic type of message to be handled by this messaging service
*/
-public class MessagingServiceFactory<MESSAGE> {
+public class MessagingServiceFactory<M> {
/**
* Create a web socket server instance and returns to the caller.
@@ -40,7 +40,7 @@ public class MessagingServiceFactory<MESSAGE> {
* @param address the address of the server machine
* @return the messaging service
*/
- public MessagingService<MESSAGE> createServer(final InetSocketAddress address) {
+ public MessagingService<M> createServer(final InetSocketAddress address) {
return new MessageServerImpl<>(address);
}
@@ -50,7 +50,7 @@ public class MessagingServiceFactory<MESSAGE> {
* @param uri the URI of the server to connect to
* @return an instance of {@link MessagingService}
*/
- public MessagingService<MESSAGE> createClient(final URI uri) {
+ public MessagingService<M> createClient(final URI uri) {
if (uri == null) {
throw new IllegalArgumentException("URI cannot be null");
}
diff --git a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/RawMessageHandler.java b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/RawMessageHandler.java
index 7e9a31a4f..e0bf0ea6b 100644
--- a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/RawMessageHandler.java
+++ b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/RawMessageHandler.java
@@ -20,6 +20,8 @@
package org.onap.policy.apex.core.infrastructure.messaging.impl.ws;
+import com.google.common.eventbus.Subscribe;
+
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
@@ -38,19 +40,20 @@ import org.onap.policy.apex.core.infrastructure.threading.ThreadUtilities;
import org.slf4j.ext.XLogger;
import org.slf4j.ext.XLoggerFactory;
-import com.google.common.eventbus.Subscribe;
-
/**
- * The Class RawMessageHandler handles raw messages being received on a Java web socket and forwards
- * the messages to the DataHandler instance that has subscribed to the RawMessageHandler instance.
+ * The Class RawMessageHandler handles raw messages being received on a Java web socket and forwards the messages to the
+ * DataHandler instance that has subscribed to the RawMessageHandler instance.
*
* @author Sajeevan Achuthan (sajeevan.achuthan@ericsson.com)
- * @param <MESSAGE> the generic type of message being received
+ * @param <M> the generic type of message being received
*/
-public class RawMessageHandler<MESSAGE> implements WebSocketMessageListener<MESSAGE>, Runnable {
+public class RawMessageHandler<M> implements WebSocketMessageListener<M>, Runnable {
// The logger for this class
private static final XLogger LOGGER = XLoggerFactory.getXLogger(RawMessageHandler.class);
+ // Repeated string constants
+ private static final String RAW_MESSAGE_LISTENING_INTERRUPTED = "raw message listening has been interrupted";
+
// The amount of time to sleep during shutdown for the thread of this message handler to stop
private static final int SHUTDOWN_WAIT_TIME = 10;
@@ -58,13 +61,13 @@ public class RawMessageHandler<MESSAGE> implements WebSocketMessageListener<MESS
private static final long QUEUE_POLL_TIMEOUT = 50;
// A queue that temporarily holds message blocks
- private final BlockingQueue<MessageBlock<MESSAGE>> messageBlockQueue = new LinkedBlockingDeque<>();
+ private final BlockingQueue<MessageBlock<M>> messageBlockQueue = new LinkedBlockingDeque<>();
// A queue that temporarily holds message blocks
private final BlockingQueue<String> stringMessageQueue = new LinkedBlockingDeque<>();
// Client applications that have subscribed for messages
- private final MessageBlockHandler<MESSAGE> dataHandler = new MessageBlockHandler<MESSAGE>("data-processor");
+ private final MessageBlockHandler<M> dataHandler = new MessageBlockHandler<>("data-processor");
// The thread that the raw message handler is receiving messages on
private Thread thisThread = null;
@@ -90,19 +93,19 @@ public class RawMessageHandler<MESSAGE> implements WebSocketMessageListener<MESS
// processing thread
try (final ByteArrayInputStream stream = new ByteArrayInputStream(dataByteBuffer.array());
- final ObjectInputStream ois = new ObjectInputStream(stream);) {
+ final ObjectInputStream ois = new ObjectInputStream(stream);) {
@SuppressWarnings("unchecked")
- final MessageHolder<MESSAGE> messageHolder = (MessageHolder<MESSAGE>) ois.readObject();
+ final MessageHolder<M> messageHolder = (MessageHolder<M>) ois.readObject();
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("message {} recieved from the client {} ", messageHolder,
- messageHolder == null ? "Apex Engine " : messageHolder.getSenderHostAddress());
+ messageHolder == null ? "Apex Engine " : messageHolder.getSenderHostAddress());
}
if (messageHolder != null) {
- final List<MESSAGE> messages = messageHolder.getMessages();
+ final List<M> messages = messageHolder.getMessages();
if (messages != null) {
- messageBlockQueue.add(new MessageBlock<MESSAGE>(messages, incomingData.getConn()));
+ messageBlockQueue.add(new MessageBlock<M>(messages, incomingData.getConn()));
}
}
} catch (final IOException | ClassNotFoundException e) {
@@ -112,8 +115,7 @@ public class RawMessageHandler<MESSAGE> implements WebSocketMessageListener<MESS
}
/**
- * This method is called when a string message is received on a web socket and is to be
- * forwarded to a listener.
+ * This method is called when a string message is received on a web socket and is to be forwarded to a listener.
*
* @param messageString the message string
*/
@@ -130,6 +132,16 @@ public class RawMessageHandler<MESSAGE> implements WebSocketMessageListener<MESS
}
/**
+ * This method is called when a message is received on a web socket and is to be forwarded to a listener.
+ *
+ * @param data the message data containing a message
+ */
+ @Override
+ public void onMessage(final MessageBlock<M> data) {
+ throw new UnsupportedOperationException("this operation is not supported");
+ }
+
+ /**
* This thread monitors the message queue and processes messages as they appear on the queue.
*
* @see java.lang.Runnable#run()
@@ -143,14 +155,14 @@ public class RawMessageHandler<MESSAGE> implements WebSocketMessageListener<MESS
while (thisThread.isAlive() && !thisThread.isInterrupted()) {
try {
// Read message block messages from the queue and pass it to the data handler
- MessageBlock<MESSAGE> messageBlock = null;
+ MessageBlock<M> messageBlock = null;
while ((messageBlock = messageBlockQueue.poll(1, TimeUnit.MILLISECONDS)) != null) {
dataHandler.post(messageBlock);
}
} catch (final InterruptedException e) {
// restore the interrupt status
Thread.currentThread().interrupt();
- LOGGER.debug("raw message listening has been interrupted");
+ LOGGER.debug(RAW_MESSAGE_LISTENING_INTERRUPTED);
break;
}
@@ -163,7 +175,7 @@ public class RawMessageHandler<MESSAGE> implements WebSocketMessageListener<MESS
} catch (final InterruptedException e) {
// restore the interrupt status
Thread.currentThread().interrupt();
- LOGGER.debug("raw message listening has been interrupted");
+ LOGGER.debug(RAW_MESSAGE_LISTENING_INTERRUPTED);
break;
}
@@ -173,7 +185,7 @@ public class RawMessageHandler<MESSAGE> implements WebSocketMessageListener<MESS
} catch (final InterruptedException e) {
// restore the interrupt status
Thread.currentThread().interrupt();
- LOGGER.debug("raw message listening has been interrupted");
+ LOGGER.debug(RAW_MESSAGE_LISTENING_INTERRUPTED);
break;
}
}
@@ -199,23 +211,12 @@ public class RawMessageHandler<MESSAGE> implements WebSocketMessageListener<MESS
}
/**
- * This method is called when a message is received on a web socket and is to be forwarded to a
- * listener.
- *
- * @param data the message data containing a message
- */
- @Override
- public void onMessage(final MessageBlock<MESSAGE> data) {
- throw new UnsupportedOperationException("this operation is not supported");
- }
-
- /**
* Register a data forwarder to which messages coming in on the web socket will be forwarded.
*
* @param listener The listener to register
*/
@Override
- public void registerDataForwarder(final MessageListener<MESSAGE> listener) {
+ public void registerDataForwarder(final MessageListener<M> listener) {
stateCheck(listener);
dataHandler.registerMessageHandler(listener);
}
@@ -226,7 +227,7 @@ public class RawMessageHandler<MESSAGE> implements WebSocketMessageListener<MESS
* @param listener The listener to unregister
*/
@Override
- public void unRegisterDataForwarder(final MessageListener<MESSAGE> listener) {
+ public void unRegisterDataForwarder(final MessageListener<M> listener) {
stateCheck(listener);
dataHandler.unRegisterMessageHandler(listener);
}
@@ -236,7 +237,7 @@ public class RawMessageHandler<MESSAGE> implements WebSocketMessageListener<MESS
*
* @param listener the listener to check
*/
- private void stateCheck(final MessageListener<MESSAGE> listener) {
+ private void stateCheck(final MessageListener<M> listener) {
if (listener == null) {
throw new IllegalArgumentException("The listener object cannot be null");
}
diff --git a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/WebSocketMessageListener.java b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/WebSocketMessageListener.java
index aa951b4ec..529e887e4 100644
--- a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/WebSocketMessageListener.java
+++ b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/WebSocketMessageListener.java
@@ -30,10 +30,10 @@ import org.onap.policy.apex.core.infrastructure.messaging.impl.ws.messageblock.R
* object's appropriate method is invoked.
*
* @author Sajeevan Achuthan (sajeevan.achuthan@ericsson.com)
- * @param <MESSAGE> the generic type
+ * @param <M> the generic type
* @see RawMessageBlock
*/
-public interface WebSocketMessageListener<MESSAGE> extends MessageListener<MESSAGE>, Runnable {
+public interface WebSocketMessageListener<M> extends MessageListener<M>, Runnable {
/**
* This method is called by the class with which this message listener has been registered.
@@ -47,12 +47,12 @@ public interface WebSocketMessageListener<MESSAGE> extends MessageListener<MESSA
*
* @param listener The listener to register
*/
- void registerDataForwarder(MessageListener<MESSAGE> listener);
+ void registerDataForwarder(MessageListener<M> listener);
/**
* Unregister a data forwarder that was previously registered on the web socket listener.
*
* @param listener The listener to unregister
*/
- void unRegisterDataForwarder(MessageListener<MESSAGE> listener);
+ void unRegisterDataForwarder(MessageListener<M> listener);
}
diff --git a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/client/InternalMessageBusClient.java b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/client/InternalMessageBusClient.java
index 9f7f89d8c..17391fb89 100644
--- a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/client/InternalMessageBusClient.java
+++ b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/client/InternalMessageBusClient.java
@@ -36,9 +36,9 @@ import org.slf4j.ext.XLoggerFactory;
* receive messages on the web socket.
*
* @author Sajeevan Achuthan (sajeevan.achuthan@ericsson.com)
- * @param <MESSAGE> the generic type of message being handled
+ * @param <M> the generic type of message being handled
*/
-abstract class InternalMessageBusClient<MESSAGE> extends WebSocketClientImpl {
+abstract class InternalMessageBusClient<M> extends WebSocketClientImpl {
private static final int THREAD_FACTORY_STACK_SIZE = 256;
// The logger for this class
@@ -48,15 +48,15 @@ abstract class InternalMessageBusClient<MESSAGE> extends WebSocketClientImpl {
private static final String RAW_EVENT_BUS = "Raw-Event-Bus";
// This instance handles the raw data received from the web socket
- private final RawMessageHandler<MESSAGE> rawMessageHandler = new RawMessageHandler<>();
+ private final RawMessageHandler<M> rawMessageHandler = new RawMessageHandler<>();
// The message block handler to which to pass messages coming in on this client
- private MessageBlockHandler<MESSAGE> messageBlockHandler = null;
+ private MessageBlockHandler<M> messageBlockHandler = null;
// The raw message handler uses a thread to process incoming events off a queue, this class owns and controls that
// thread. These fields hold the thread and
// the thread factory for creating threads.
- private ApplicationThreadFactory tFactory =
+ private ApplicationThreadFactory threadFactory =
new ApplicationThreadFactory("ws-client-thread", THREAD_FACTORY_STACK_SIZE);
private Thread forwarderThread = null;
@@ -75,7 +75,7 @@ abstract class InternalMessageBusClient<MESSAGE> extends WebSocketClientImpl {
messageBlockHandler.registerMessageHandler(rawMessageHandler);
// Create the thread that manages the queue in the data handler
- forwarderThread = tFactory.newThread(rawMessageHandler);
+ forwarderThread = threadFactory.newThread(rawMessageHandler);
forwarderThread.start();
LOGGER.exit();
@@ -109,7 +109,7 @@ abstract class InternalMessageBusClient<MESSAGE> extends WebSocketClientImpl {
*
* @param listener a simple class, that listens for the events from Event
*/
- public void addMessageListener(final MessageListener<MESSAGE> listener) {
+ public void addMessageListener(final MessageListener<M> listener) {
rawMessageHandler.registerDataForwarder(listener);
}
@@ -118,7 +118,7 @@ abstract class InternalMessageBusClient<MESSAGE> extends WebSocketClientImpl {
*
* @param listener the listener
*/
- public void removeMessageListener(final MessageListener<MESSAGE> listener) {
+ public void removeMessageListener(final MessageListener<M> listener) {
rawMessageHandler.unRegisterDataForwarder(listener);
}
diff --git a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/client/MessagingClient.java b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/client/MessagingClient.java
index 36ad3b163..dd9aac122 100644
--- a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/client/MessagingClient.java
+++ b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/client/MessagingClient.java
@@ -33,9 +33,9 @@ import org.onap.policy.apex.core.infrastructure.threading.ThreadUtilities;
* message reception on the client side of a web socket in Apex.
*
* @author Sajeevan Achuthan (sajeevan.achuthan@ericsson.com)
- * @param <MESSAGE> the generic type
+ * @param <M> the generic type
*/
-public class MessagingClient<MESSAGE> extends InternalMessageBusClient<MESSAGE> implements MessagingService<MESSAGE> {
+public class MessagingClient<M> extends InternalMessageBusClient<M> implements MessagingService<M> {
// The length of time to wait for a connection to a web socket server before aborting
private static final int CONNECTION_TIMEOUT_TIME_MS = 3000;
@@ -102,7 +102,7 @@ public class MessagingClient<MESSAGE> extends InternalMessageBusClient<MESSAGE>
*/
private boolean waitforConnection(final WebSocket connection) {
// The total time we have before timeout
- int timeoutMSCounter = CONNECTION_TIMEOUT_TIME_MS;
+ int timeoutMsCounter = CONNECTION_TIMEOUT_TIME_MS;
// Check the connection state
do {
@@ -112,7 +112,7 @@ public class MessagingClient<MESSAGE> extends InternalMessageBusClient<MESSAGE>
case CLOSING:
// Not connected yet so wait for the try interval
ThreadUtilities.sleep(CONNECTION_TRY_INTERVAL_MS);
- timeoutMSCounter -= CONNECTION_TRY_INTERVAL_MS;
+ timeoutMsCounter -= CONNECTION_TRY_INTERVAL_MS;
break;
case OPEN:
// Connection is open, happy days
@@ -125,7 +125,7 @@ public class MessagingClient<MESSAGE> extends InternalMessageBusClient<MESSAGE>
}
}
// While the timeout value has not expired
- while (timeoutMSCounter > 0);
+ while (timeoutMsCounter > 0);
// We have timed out
return false;
@@ -139,7 +139,7 @@ public class MessagingClient<MESSAGE> extends InternalMessageBusClient<MESSAGE>
* .core. infrastructure. messaging.MessageHolder)
*/
@Override
- public void send(final MessageHolder<MESSAGE> commands) {
+ public void send(final MessageHolder<M> commands) {
// Get the connection and send the message
final WebSocket connection = super.getConnection();
connection.send(MessagingUtils.serializeObject(commands));
diff --git a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/messageblock/MessageBlock.java b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/messageblock/MessageBlock.java
index 70b1d2c3a..1c6852686 100644
--- a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/messageblock/MessageBlock.java
+++ b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/messageblock/MessageBlock.java
@@ -28,12 +28,12 @@ import org.java_websocket.WebSocket;
* This class encapsulate messages and the web socket on which they are handled.
*
* @author Sajeevan Achuthan (sajeevan.achuthan@ericsson.com)
- * @param <MESSAGE> the generic type of message being handled
+ * @param <M> the generic type of message being handled
*/
-public final class MessageBlock<MESSAGE> {
+public final class MessageBlock<M> {
// List of Messages received on a web socket
- private final List<MESSAGE> messages;
+ private final List<M> messages;
// The web socket on which the messages are handled
private final WebSocket webSocket;
@@ -44,7 +44,7 @@ public final class MessageBlock<MESSAGE> {
* @param messages the messages in the message block
* @param webSocket the web socket used to handle the message block
*/
- public MessageBlock(final List<MESSAGE> messages, final WebSocket webSocket) {
+ public MessageBlock(final List<M> messages, final WebSocket webSocket) {
this.messages = messages;
this.webSocket = webSocket;
}
@@ -54,7 +54,7 @@ public final class MessageBlock<MESSAGE> {
*
* @return the messages
*/
- public List<MESSAGE> getMessages() {
+ public List<M> getMessages() {
return messages;
}
diff --git a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/messageblock/MessageBlockHandler.java b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/messageblock/MessageBlockHandler.java
index 4265718db..123305b07 100644
--- a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/messageblock/MessageBlockHandler.java
+++ b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/messageblock/MessageBlockHandler.java
@@ -31,9 +31,9 @@ import org.slf4j.ext.XLoggerFactory;
* event bus.
*
* @author Sajeevan Achuthan (sajeevan.achuthan@ericsson.com)
- * @param <MESSAGE> the generic type
+ * @param <M> the generic type
*/
-public class MessageBlockHandler<MESSAGE> {
+public class MessageBlockHandler<M> {
// Logger for this class
private static final XLogger LOGGER = XLoggerFactory.getXLogger(MessageBlockHandler.class);
@@ -72,7 +72,7 @@ public class MessageBlockHandler<MESSAGE> {
*
* @param messageBlock the block containing typed messages
*/
- public void post(final MessageBlock<MESSAGE> messageBlock) {
+ public void post(final MessageBlock<M> messageBlock) {
if (messageBlock.getMessages() != null) {
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("new data message recieved from {}", messageBlock.getConnection() == null ? "server"
@@ -90,7 +90,7 @@ public class MessageBlockHandler<MESSAGE> {
public void post(final String messageString) {
if (messageString != null) {
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("new string message recieved from server: " + messageString);
+ LOGGER.debug("new string message recieved from server: {}", messageString);
}
eventBus.post(messageString);
}
@@ -101,7 +101,7 @@ public class MessageBlockHandler<MESSAGE> {
*
* @param listener is an instance of WebSocketMessageListener
*/
- public void registerMessageHandler(final MessageListener<MESSAGE> listener) {
+ public void registerMessageHandler(final MessageListener<M> listener) {
LOGGER.entry(listener);
if (listener == null) {
throw new IllegalArgumentException("listener object cannot be null");
@@ -116,7 +116,7 @@ public class MessageBlockHandler<MESSAGE> {
*
* @param listener the listener
*/
- public void unRegisterMessageHandler(final MessageListener<MESSAGE> listener) {
+ public void unRegisterMessageHandler(final MessageListener<M> listener) {
if (listener == null) {
throw new IllegalArgumentException("listener object cannot be null");
}
diff --git a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/server/InternalMessageBusServer.java b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/server/InternalMessageBusServer.java
index 8e65bbf98..a436bd7e3 100644
--- a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/server/InternalMessageBusServer.java
+++ b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/server/InternalMessageBusServer.java
@@ -38,9 +38,9 @@ import org.slf4j.ext.XLoggerFactory;
* receive messages on the web socket.
*
* @author Sajeevan Achuthan (sajeevan.achuthan@ericsson.com)
- * @param <MESSAGE> the generic type
+ * @param <M> the generic type
*/
-abstract class InternalMessageBusServer<MESSAGE> extends WebSocketServerImpl implements MessagingService<MESSAGE> {
+abstract class InternalMessageBusServer<M> extends WebSocketServerImpl implements MessagingService<M> {
// Logger for this class
private static final XLogger LOGGER = XLoggerFactory.getXLogger(InternalMessageBusServer.class);
@@ -50,15 +50,15 @@ abstract class InternalMessageBusServer<MESSAGE> extends WebSocketServerImpl imp
private static final String RAW_EVENT_BUS = "Raw-Event-Bus";
// This instance handles the raw data received from the web socket
- private final RawMessageHandler<MESSAGE> rawMessageHandler = new RawMessageHandler<>();
+ private final RawMessageHandler<M> rawMessageHandler = new RawMessageHandler<>();
// The message block handler to which to pass messages coming in on this client
- private MessageBlockHandler<MESSAGE> messageBlockHandler = null;
+ private MessageBlockHandler<M> messageBlockHandler = null;
// The raw message handler uses a thread to process incoming events off a queue, this class owns and controls that
// thread. These fields hold the thread and
// the thread factory for creating threads.
- private ApplicationThreadFactory tFactory =
+ private ApplicationThreadFactory threadFactory =
new ApplicationThreadFactory("ws-server-thread", THREAD_FACTORY_STACK_SIZE);
private Thread forwarderThread = null;
@@ -77,7 +77,7 @@ abstract class InternalMessageBusServer<MESSAGE> extends WebSocketServerImpl imp
messageBlockHandler.registerMessageHandler(rawMessageHandler);
// Create the thread that manages the queue in the data handler
- forwarderThread = tFactory.newThread(rawMessageHandler);
+ forwarderThread = threadFactory.newThread(rawMessageHandler);
forwarderThread.start();
LOGGER.exit();
@@ -95,13 +95,23 @@ abstract class InternalMessageBusServer<MESSAGE> extends WebSocketServerImpl imp
messageBlockHandler.post(new RawMessageBlock(rawMessage, webSocket));
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.java_websocket.server.WebSocketServer#onMessage(org.java_websocket.WebSocket, java.lang.String)
+ */
+ @Override
+ public void onMessage(final WebSocket webSocket, final String stringMessage) {
+ messageBlockHandler.post(stringMessage);
+ }
+
/**
* Register a subscriber class to the raw message handler.
*
* @param subscriber the subscriber
*/
@Override
- public void addMessageListener(final MessageListener<MESSAGE> subscriber) {
+ public void addMessageListener(final MessageListener<M> subscriber) {
rawMessageHandler.registerDataForwarder(subscriber);
}
@@ -111,20 +121,10 @@ abstract class InternalMessageBusServer<MESSAGE> extends WebSocketServerImpl imp
* @param subscriber the subscriber
*/
@Override
- public void removeMessageListener(final MessageListener<MESSAGE> subscriber) {
+ public void removeMessageListener(final MessageListener<M> subscriber) {
rawMessageHandler.unRegisterDataForwarder(subscriber);
}
- /*
- * (non-Javadoc)
- *
- * @see org.java_websocket.server.WebSocketServer#onMessage(org.java_websocket.WebSocket, java.lang.String)
- */
- @Override
- public void onMessage(final WebSocket webSocket, final String stringMessage) {
- messageBlockHandler.post(stringMessage);
- }
-
/**
* Stop the thread handling message forwarding.
*/
diff --git a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/server/MessageServerImpl.java b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/server/MessageServerImpl.java
index 389d04dcc..d5ef40b5b 100644
--- a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/server/MessageServerImpl.java
+++ b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/impl/ws/server/MessageServerImpl.java
@@ -34,9 +34,9 @@ import org.slf4j.ext.XLoggerFactory;
* A messaging server implementation using web socket.
*
* @author Sajeevan Achuthan (sajeevan.achuthan@ericsson.com)
- * @param <MESSAGE> the generic type of message being passed
+ * @param <M> the generic type of message being passed
*/
-public class MessageServerImpl<MESSAGE> extends InternalMessageBusServer<MESSAGE> {
+public class MessageServerImpl<M> extends InternalMessageBusServer<M> {
// The logger for this class
private static final XLogger LOGGER = XLoggerFactory.getXLogger(MessageServerImpl.class);
@@ -44,7 +44,7 @@ public class MessageServerImpl<MESSAGE> extends InternalMessageBusServer<MESSAGE
private static final String PROTOCOL = "ws://";
// URI of this server
- private final String connectionURI;
+ private final String connectionUri;
// Indicates if the web socket server is started or not
private boolean isStarted = false;
@@ -60,8 +60,8 @@ public class MessageServerImpl<MESSAGE> extends InternalMessageBusServer<MESSAGE
LOGGER.entry(address);
// Compose the Web Socket URI
- connectionURI = PROTOCOL + address.getHostString() + ":" + address.getPort();
- LOGGER.debug("Server connection URI: {}", connectionURI);
+ connectionUri = PROTOCOL + address.getHostString() + ":" + address.getPort();
+ LOGGER.debug("Server connection URI: {}", connectionUri);
LOGGER.exit();
}
@@ -106,27 +106,25 @@ public class MessageServerImpl<MESSAGE> extends InternalMessageBusServer<MESSAGE
}
/**
- * This method returns the current connection URI , if the server started otherwise it throws
- * {@link IllegalStateException}.
+ * Return the current connection URI.
*
* @return connection URI
*/
- public String getConnectionURI() {
- if (connectionURI == null) {
+ public String getConnectionUrl() {
+ if (connectionUri == null) {
throw new IllegalStateException("URI not set - The server is not started");
}
- return connectionURI;
+ return connectionUri;
}
/*
* (non-Javadoc)
*
- * @see
- * org.onap.policy.apex.core.infrastructure.messaging.MessagingService#send(org.onap.policy.apex
- * .core. infrastructure. messaging.MessageHolder)
+ * @see org.onap.policy.apex.core.infrastructure.messaging.MessagingService#send(org.onap.policy.apex .core.
+ * infrastructure. messaging.MessageHolder)
*/
@Override
- public void send(final MessageHolder<MESSAGE> message) {
+ public void send(final MessageHolder<M> message) {
// Send the incoming message to all clients connected to this web socket
final Collection<WebSocket> connections = getConnections();
for (final WebSocket webSocket : connections) {
@@ -137,8 +135,7 @@ public class MessageServerImpl<MESSAGE> extends InternalMessageBusServer<MESSAGE
/*
* (non-Javadoc)
*
- * @see
- * org.onap.policy.apex.core.infrastructure.messaging.MessagingService#send(java.lang.String)
+ * @see org.onap.policy.apex.core.infrastructure.messaging.MessagingService#send(java.lang.String)
*/
@Override
public void send(final String messageString) {
@@ -160,6 +157,6 @@ public class MessageServerImpl<MESSAGE> extends InternalMessageBusServer<MESSAGE
@Override
public void onStart() {
- LOGGER.debug("started deployment server on URI: {}", connectionURI);
+ LOGGER.debug("started deployment server on URI: {}", connectionUri);
}
}
diff --git a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/stringmessaging/WSStringMessageClient.java b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/stringmessaging/WsStringMessageClient.java
index 00ade8047..28afde03b 100644
--- a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/stringmessaging/WSStringMessageClient.java
+++ b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/stringmessaging/WsStringMessageClient.java
@@ -37,15 +37,18 @@ import org.slf4j.ext.XLoggerFactory;
*
* @author Liam Fallon (liam.fallon@ericsson.com)
*/
-public class WSStringMessageClient implements WSStringMessager {
- private static final XLogger LOGGER = XLoggerFactory.getXLogger(WSStringMessageClient.class);
+public class WsStringMessageClient implements WsStringMessager {
+ private static final XLogger LOGGER = XLoggerFactory.getXLogger(WsStringMessageClient.class);
+
+ // Repeated string constants
+ private static final String MESSAGE_PREAMBLE = "web socket event consumer client to \"";
// Message service factory and the message service itself
private final MessagingServiceFactory<String> factory = new MessagingServiceFactory<>();
private MessagingService<String> service = null;
// The listener to use for reception of strings
- private WSStringMessageListener wsStringMessageListener;
+ private WsStringMessageListener wsStringMessageListener;
// Address of the server
private final String host;
@@ -58,7 +61,7 @@ public class WSStringMessageClient implements WSStringMessager {
* @param host the host of the server
* @param port the port of the server
*/
- public WSStringMessageClient(final String host, final int port) {
+ public WsStringMessageClient(final String host, final int port) {
this.host = host;
this.port = port;
}
@@ -71,22 +74,24 @@ public class WSStringMessageClient implements WSStringMessager {
* apex. core.infrastructure.messaging. stringmessaging.WSStringMessageListener)
*/
@Override
- public void start(final WSStringMessageListener newWsStringMessageListener) throws MessagingException {
+ public void start(final WsStringMessageListener newWsStringMessageListener) throws MessagingException {
this.wsStringMessageListener = newWsStringMessageListener;
uriString = "ws://" + host + ":" + port;
- LOGGER.entry("web socket event consumer client to \"" + uriString + "\" starting . . .");
+ String messagePreamble = MESSAGE_PREAMBLE + uriString + "\" ";
+ LOGGER.entry(messagePreamble + "starting . . .");
try {
service = factory.createClient(new URI(uriString));
- service.addMessageListener(new WSStringMessageClientListener());
+ service.addMessageListener(new WsStringMessageClientListener());
service.startConnection();
} catch (final Exception e) {
- LOGGER.warn("web socket event consumer client to \"" + uriString + "\" start failed", e);
- throw new MessagingException("web socket event consumer client to \"" + uriString + "\" start failed", e);
+ String message = messagePreamble + "start failed";
+ LOGGER.warn(message, e);
+ throw new MessagingException(message, e);
}
- LOGGER.exit("web socket event consumer client to \"" + uriString + "\" started");
+ LOGGER.exit(messagePreamble + "started");
}
/*
@@ -96,9 +101,9 @@ public class WSStringMessageClient implements WSStringMessager {
*/
@Override
public void stop() {
- LOGGER.entry("web socket event consumer client to \"" + uriString + "\" stopping . . .");
+ LOGGER.entry(MESSAGE_PREAMBLE + uriString + "\" stopping . . .");
service.stopConnection();
- LOGGER.exit("web socket event consumer client to \"" + uriString + "\" stopped");
+ LOGGER.exit(MESSAGE_PREAMBLE + uriString + "\" stopped");
}
/*
@@ -113,14 +118,15 @@ public class WSStringMessageClient implements WSStringMessager {
service.send(stringMessage);
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("message sent to server: " + stringMessage);
+ String message = "message sent to server: " + stringMessage;
+ LOGGER.debug(message);
}
}
/**
* The Class WSStringMessageClientListener.
*/
- private class WSStringMessageClientListener implements MessageListener<String> {
+ private class WsStringMessageClientListener implements MessageListener<String> {
/*
* (non-Javadoc)
*
diff --git a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/stringmessaging/WSStringMessageListener.java b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/stringmessaging/WsStringMessageListener.java
index e524b43d7..0a5e147cc 100644
--- a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/stringmessaging/WSStringMessageListener.java
+++ b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/stringmessaging/WsStringMessageListener.java
@@ -25,7 +25,7 @@ package org.onap.policy.apex.core.infrastructure.messaging.stringmessaging;
*
* @author Liam Fallon (liam.fallon@ericsson.com)
*/
-public interface WSStringMessageListener {
+public interface WsStringMessageListener {
/**
* Receive a string coming off a web socket.
diff --git a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/stringmessaging/WSStringMessageServer.java b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/stringmessaging/WsStringMessageServer.java
index 4da478f6a..3e8db268c 100644
--- a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/stringmessaging/WSStringMessageServer.java
+++ b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/stringmessaging/WsStringMessageServer.java
@@ -39,15 +39,15 @@ import org.slf4j.ext.XLoggerFactory;
*
* @author Liam Fallon (liam.fallon@ericsson.com)
*/
-public class WSStringMessageServer implements WSStringMessager {
- private static final XLogger LOGGER = XLoggerFactory.getXLogger(WSStringMessageServer.class);
+public class WsStringMessageServer implements WsStringMessager {
+ private static final XLogger LOGGER = XLoggerFactory.getXLogger(WsStringMessageServer.class);
// Message service factory and the message service itself
private final MessagingServiceFactory<String> factory = new MessagingServiceFactory<>();
private MessagingService<String> service = null;
// The listener to use for reception of strings
- private WSStringMessageListener wsStringMessageListener;
+ private WsStringMessageListener wsStringMessageListener;
// Address of the server
private final int port;
@@ -57,7 +57,7 @@ public class WSStringMessageServer implements WSStringMessager {
*
* @param port the port of the server
*/
- public WSStringMessageServer(final int port) {
+ public WsStringMessageServer(final int port) {
this.port = port;
}
@@ -69,19 +69,19 @@ public class WSStringMessageServer implements WSStringMessager {
* apex. core.infrastructure.messaging. stringmessaging.WSStringMessageListener)
*/
@Override
- public void start(final WSStringMessageListener newWsStringMessageListener) throws MessagingException {
+ public void start(final WsStringMessageListener newWsStringMessageListener) throws MessagingException {
this.wsStringMessageListener = newWsStringMessageListener;
LOGGER.entry("web socket event consumer server starting . . .");
try {
- final InetAddress addrLan = MessagingUtils.getLocalHostLANAddress();
+ final InetAddress addrLan = MessagingUtils.getLocalHostLanAddress();
LOGGER.debug("web socket string message server LAN address=" + addrLan.getHostAddress());
final InetAddress addr = InetAddress.getLocalHost();
LOGGER.debug("web socket string message server host address=" + addr.getHostAddress());
service = factory.createServer(new InetSocketAddress(port));
- service.addMessageListener(new WSStringMessageServerListener());
+ service.addMessageListener(new WsStringMessageServerListener());
service.startConnection();
} catch (final Exception e) {
@@ -115,14 +115,14 @@ public class WSStringMessageServer implements WSStringMessager {
public void sendString(final String stringMessage) {
service.send(stringMessage);
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("server sent message: " + stringMessage);
+ LOGGER.debug("server sent message: {}", stringMessage);
}
}
/**
* The listener for strings coming into the server.
*/
- private class WSStringMessageServerListener implements MessageListener<String> {
+ private class WsStringMessageServerListener implements MessageListener<String> {
/*
* (non-Javadoc)
diff --git a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/stringmessaging/WSStringMessager.java b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/stringmessaging/WsStringMessager.java
index a2781e932..2a731b0eb 100644
--- a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/stringmessaging/WSStringMessager.java
+++ b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/stringmessaging/WsStringMessager.java
@@ -27,7 +27,7 @@ import org.onap.policy.apex.core.infrastructure.messaging.MessagingException;
*
* @author Liam Fallon (liam.fallon@ericsson.com)
*/
-public interface WSStringMessager {
+public interface WsStringMessager {
/**
* Start the string message sender.
@@ -35,7 +35,7 @@ public interface WSStringMessager {
* @param wsStringMessageListener the listener to use for listening for string messages
* @throws MessagingException the messaging exception
*/
- void start(WSStringMessageListener wsStringMessageListener) throws MessagingException;
+ void start(WsStringMessageListener wsStringMessageListener) throws MessagingException;
/**
* Stop the string messaging sender.
diff --git a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/util/MessagingUtils.java b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/util/MessagingUtils.java
index 66edd2f1d..a501a66d6 100644
--- a/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/util/MessagingUtils.java
+++ b/core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/util/MessagingUtils.java
@@ -43,7 +43,7 @@ public final class MessagingUtils {
private static final int LOWEST_USER_PORT = 1024;
/**
- * Port number is an unsigned 16-bit integer, so maximum port is 65535
+ * Port number is an unsigned 16-bit integer, so maximum port is 65535.
*/
private static final int MAX_PORT_RANGE = 65535;
@@ -71,7 +71,7 @@ public final class MessagingUtils {
return port;
}
LOGGER.debug("Port {} is not available", port);
- throw new RuntimeException("could not allocate requested port: " + port);
+ throw new IllegalArgumentException("could not allocate requested port: " + port);
}
/**
@@ -96,7 +96,7 @@ public final class MessagingUtils {
LOGGER.debug("Port {} is not available", availablePort);
availablePort++;
}
- throw new RuntimeException("could not find free available");
+ throw new IllegalArgumentException("could not find free available");
}
/**
@@ -149,7 +149,7 @@ public final class MessagingUtils {
* @return an Internet address
* @throws UnknownHostException if the address of the local host cannot be found
*/
- public static InetAddress getLocalHostLANAddress() throws UnknownHostException {
+ public static InetAddress getLocalHostLanAddress() throws UnknownHostException {
try {
InetAddress candidateAddress = null;
// Iterate all NICs (network interface cards)...
@@ -225,8 +225,7 @@ public final class MessagingUtils {
} finally {
flushAndClose(oos, bytesOut);
}
- final byte[] bytes = bytesOut.toByteArray();
- return bytes;
+ return bytesOut.toByteArray();
}
/**
diff --git a/core/core-infrastructure/src/test/java/org/onap/policy/apex/core/infrastructure/messaging/EndToEndStringMessagingTest.java b/core/core-infrastructure/src/test/java/org/onap/policy/apex/core/infrastructure/messaging/EndToEndStringMessagingTest.java
index 21c5ee984..c9d56ef2c 100644
--- a/core/core-infrastructure/src/test/java/org/onap/policy/apex/core/infrastructure/messaging/EndToEndStringMessagingTest.java
+++ b/core/core-infrastructure/src/test/java/org/onap/policy/apex/core/infrastructure/messaging/EndToEndStringMessagingTest.java
@@ -24,9 +24,9 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import org.junit.Test;
-import org.onap.policy.apex.core.infrastructure.messaging.stringmessaging.WSStringMessageClient;
-import org.onap.policy.apex.core.infrastructure.messaging.stringmessaging.WSStringMessageListener;
-import org.onap.policy.apex.core.infrastructure.messaging.stringmessaging.WSStringMessageServer;
+import org.onap.policy.apex.core.infrastructure.messaging.stringmessaging.WsStringMessageClient;
+import org.onap.policy.apex.core.infrastructure.messaging.stringmessaging.WsStringMessageListener;
+import org.onap.policy.apex.core.infrastructure.messaging.stringmessaging.WsStringMessageServer;
import org.onap.policy.apex.core.infrastructure.threading.ThreadUtilities;
import org.slf4j.ext.XLogger;
import org.slf4j.ext.XLoggerFactory;
@@ -40,22 +40,22 @@ public class EndToEndStringMessagingTest {
// Logger for this class
private static final XLogger logger = XLoggerFactory.getXLogger(EndToEndStringMessagingTest.class);
- private WSStringMessageServer server;
- private WSStringMessageClient client;
+ private WsStringMessageServer server;
+ private WsStringMessageClient client;
private boolean finished = false;
@Test
public void testEndToEndMessaging() throws MessagingException {
logger.debug("end to end messaging test starting . . .");
- server = new WSStringMessageServer(44441);
+ server = new WsStringMessageServer(44441);
assertNotNull(server);
- server.start(new WSStringServerMessageListener());
+ server.start(new WsStringServerMessageListener());
try {
- client = new WSStringMessageClient("localhost", 44441);
+ client = new WsStringMessageClient("localhost", 44441);
assertNotNull(client);
- client.start(new WSStringClientMessageListener());
+ client.start(new WsStringClientMessageListener());
client.sendString("Hello, client here");
@@ -74,7 +74,7 @@ public class EndToEndStringMessagingTest {
logger.debug("end to end messaging test finished");
}
- private class WSStringServerMessageListener implements WSStringMessageListener {
+ private class WsStringServerMessageListener implements WsStringMessageListener {
@Override
public void receiveString(final String stringMessage) {
logger.debug(stringMessage);
@@ -83,7 +83,7 @@ public class EndToEndStringMessagingTest {
}
}
- private class WSStringClientMessageListener implements WSStringMessageListener {
+ private class WsStringClientMessageListener implements WsStringMessageListener {
@Override
public void receiveString(final String stringMessage) {
logger.debug(stringMessage);
diff --git a/core/core-infrastructure/src/test/java/org/onap/policy/apex/core/infrastructure/messaging/StringTestServer.java b/core/core-infrastructure/src/test/java/org/onap/policy/apex/core/infrastructure/messaging/StringTestServer.java
index 09fa62d59..30590c0c0 100644
--- a/core/core-infrastructure/src/test/java/org/onap/policy/apex/core/infrastructure/messaging/StringTestServer.java
+++ b/core/core-infrastructure/src/test/java/org/onap/policy/apex/core/infrastructure/messaging/StringTestServer.java
@@ -22,18 +22,29 @@ package org.onap.policy.apex.core.infrastructure.messaging;
import static org.junit.Assert.assertNotNull;
-import org.onap.policy.apex.core.infrastructure.messaging.stringmessaging.WSStringMessageListener;
-import org.onap.policy.apex.core.infrastructure.messaging.stringmessaging.WSStringMessageServer;
+import org.onap.policy.apex.core.infrastructure.messaging.stringmessaging.WsStringMessageListener;
+import org.onap.policy.apex.core.infrastructure.messaging.stringmessaging.WsStringMessageServer;
import org.onap.policy.apex.core.infrastructure.threading.ThreadUtilities;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class StringTestServer.
+ */
public class StringTestServer {
- private WSStringMessageServer server;
+ private WsStringMessageServer server;
+ /**
+ * Create a string test server.
+ *
+ * @param port port to use
+ * @param timeToLive time to live
+ * @throws MessagingException exceptions on messages
+ */
public StringTestServer(final int port, long timeToLive) throws MessagingException {
System.out.println("StringTestServer starting on port " + port + " for " + timeToLive + " seconds . . .");
- server = new WSStringMessageServer(port);
+ server = new WsStringMessageServer(port);
assertNotNull(server);
- server.start(new WSStringServerMessageListener());
+ server.start(new WsStringServerMessageListener());
System.out.println("StringTestServer started on port " + port + " for " + timeToLive + " seconds");
@@ -45,7 +56,23 @@ public class StringTestServer {
System.out.println("StringTestServer completed");
}
- private class WSStringServerMessageListener implements WSStringMessageListener {
+ /**
+ * The listener interface for receiving WSStringServerMessage events. The class that is interested in processing a
+ * WSStringServerMessage event implements this interface, and the object created with that class is registered with
+ * a component using the component's <code>addWSStringServerMessageListener</code> method. When the
+ * WSStringServerMessage event occurs, that object's appropriate method is invoked.
+ *
+ * @see WSStringServerMessageEvent
+ */
+ private class WsStringServerMessageListener implements WsStringMessageListener {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.onap.policy.apex.core.infrastructure.messaging.stringmessaging.WsStringMessageListener#receiveString(java
+ * .lang.String)
+ */
@Override
public void receiveString(final String stringMessage) {
System.out.println("Server received string \"" + stringMessage + "\"");
@@ -53,6 +80,12 @@ public class StringTestServer {
}
}
+ /**
+ * The main method.
+ *
+ * @param args the arguments
+ * @throws MessagingException the messaging exception
+ */
public static void main(final String[] args) throws MessagingException {
if (args.length != 2) {
System.err.println("Usage: StringTestServer port timeToLive");