summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/core-deployment/src/main/java/org/onap/policy/apex/core/deployment/DeploymentClient.java25
-rw-r--r--core/core-deployment/src/test/java/org/onap/policy/apex/core/deployment/PeriodicEventManagerTest.java32
-rw-r--r--core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/stringmessaging/WsStringMessageServer.java31
-rw-r--r--core/core-infrastructure/src/main/java/org/onap/policy/apex/core/infrastructure/messaging/util/MessagingUtils.java5
-rw-r--r--services/services-engine/src/main/java/org/onap/policy/apex/service/engine/engdep/EngDepMessageListener.java50
5 files changed, 93 insertions, 50 deletions
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 eb51271d5..900e0a2f8 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
@@ -1,6 +1,7 @@
/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2016-2018 Ericsson. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,12 +22,12 @@
package org.onap.policy.apex.core.deployment;
import com.google.common.eventbus.Subscribe;
-
+import java.net.InetAddress;
import java.net.URI;
+import java.net.UnknownHostException;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.TimeUnit;
-
import org.onap.policy.apex.core.infrastructure.messaging.MessageHolder;
import org.onap.policy.apex.core.infrastructure.messaging.MessageListener;
import org.onap.policy.apex.core.infrastructure.messaging.MessagingService;
@@ -66,7 +67,7 @@ public class DeploymentClient implements Runnable {
// Thread management fields
private boolean started = false;
private Thread thisThread = null;
-
+
// Number of messages processed
private long messagesSent = 0;
private long messagesReceived = 0;
@@ -127,7 +128,8 @@ public class DeploymentClient implements Runnable {
}
// Send the message in its message holder
- final MessageHolder<Message> messageHolder = new MessageHolder<>(MessagingUtils.getHost());
+ InetAddress local = getLocalAddress();
+ final MessageHolder<Message> messageHolder = new MessageHolder<>(local);
messageHolder.addMessage(messageForSending);
service.send(messageHolder);
messagesSent++;
@@ -138,11 +140,24 @@ public class DeploymentClient implements Runnable {
thisThread.interrupt();
return false;
}
-
+
return true;
}
/**
+ * Get the local address for the WS MessageHolder, or null if there is a problem.
+ */
+ private InetAddress getLocalAddress() {
+ try {
+ return MessagingUtils.getLocalHostLanAddress();
+ }
+ catch (UnknownHostException e) {
+ LOGGER.debug("engine<-->deployment client failed to find the localhost address - continuing ...", e);
+ return null;
+ }
+ }
+
+ /**
* Gets the host.
*
* @return the host
diff --git a/core/core-deployment/src/test/java/org/onap/policy/apex/core/deployment/PeriodicEventManagerTest.java b/core/core-deployment/src/test/java/org/onap/policy/apex/core/deployment/PeriodicEventManagerTest.java
index 816c528bb..22344cfc4 100644
--- a/core/core-deployment/src/test/java/org/onap/policy/apex/core/deployment/PeriodicEventManagerTest.java
+++ b/core/core-deployment/src/test/java/org/onap/policy/apex/core/deployment/PeriodicEventManagerTest.java
@@ -1,19 +1,20 @@
/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2018 Ericsson. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- *
+ *
* SPDX-License-Identifier: Apache-2.0
* ============LICENSE_END=========================================================
*/
@@ -28,7 +29,6 @@ import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.PrintStream;
-
import org.junit.Test;
/**
@@ -133,26 +133,26 @@ public class PeriodicEventManagerTest {
} catch (ApexDeploymentException ade) {
assertEquals("model deployment failed on parameters localhost 12345 true", ade.getMessage());
}
-
+
try {
peManager.init();
} catch (ApexDeploymentException ade) {
ade.printStackTrace();
fail("test should not throw an exception");
}
-
+
try {
peManager.runCommand();
} catch (ApexDeploymentException ade) {
assertEquals("failed response Operation failed received from serverlocalhost:12345", ade.getMessage());
}
-
+
try {
peManager.runCommand();
} catch (ApexDeploymentException ade) {
fail("test should not throw an exception");
}
-
+
peManager.close();
}
@@ -176,26 +176,26 @@ public class PeriodicEventManagerTest {
} catch (ApexDeploymentException ade) {
assertEquals("model deployment failed on parameters localhost 12345 true", ade.getMessage());
}
-
+
try {
peManager.init();
} catch (ApexDeploymentException ade) {
ade.printStackTrace();
fail("test should not throw an exception");
}
-
+
try {
peManager.runCommand();
} catch (ApexDeploymentException ade) {
assertEquals("failed response Operation failed received from serverlocalhost:12345", ade.getMessage());
}
-
+
try {
peManager.runCommand();
} catch (ApexDeploymentException ade) {
fail("test should not throw an exception");
}
-
+
peManager.close();
}
@@ -220,7 +220,7 @@ public class PeriodicEventManagerTest {
} catch (ApexDeploymentException ade) {
assertEquals("connection to apex is not initialized", ade.getMessage());
}
-
+
try {
peManager.runCommand();
fail("test should throw an exception");
@@ -228,7 +228,7 @@ public class PeriodicEventManagerTest {
assertEquals("connection to apex is not initialized", ade.getMessage());
ade.printStackTrace();
}
-
+
peManager.close();
}
@@ -253,13 +253,13 @@ public class PeriodicEventManagerTest {
} catch (ApexDeploymentException ade) {
assertEquals("connection to apex is not initialized", ade.getMessage());
}
-
+
peManager.close();
}
/**
* Run the application.
- *
+ *
* @param eventArgs the command arguments
* @return a string containing the command output
*/
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 b244feab0..41fb82a9e 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
@@ -1,6 +1,7 @@
/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2016-2018 Ericsson. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,10 +22,9 @@
package org.onap.policy.apex.core.infrastructure.messaging.stringmessaging;
import com.google.common.eventbus.Subscribe;
-
import java.net.InetAddress;
import java.net.InetSocketAddress;
-
+import java.net.UnknownHostException;
import org.onap.policy.apex.core.infrastructure.messaging.MessageListener;
import org.onap.policy.apex.core.infrastructure.messaging.MessagingException;
import org.onap.policy.apex.core.infrastructure.messaging.MessagingService;
@@ -66,19 +66,32 @@ public class WsStringMessageServer implements WsStringMessager {
*/
@Override
public void start(final WsStringMessageListener newWsStringMessageListener) throws MessagingException {
- this.wsStringMessageListener = newWsStringMessageListener;
LOGGER.entry("web socket event consumer server starting . . .");
+ if (LOGGER.isDebugEnabled()) {
+ String lanaddress = "unknown";
+ try {
+ lanaddress = MessagingUtils.getLocalHostLanAddress().getHostAddress();
+ }
+ catch (final UnknownHostException ignore) {
+ LOGGER.debug("Failed to find name of local address name",ignore);
+ }
+ LOGGER.debug("web socket string message server LAN address=" + lanaddress);
+ String hostaddress = "unknown";
+ try {
+ hostaddress = InetAddress.getLocalHost().getHostAddress();
+ }
+ catch (final UnknownHostException ignore) {
+ LOGGER.debug("Failed to find name of local address",ignore);
+ }
+ LOGGER.debug("web socket string message server host address=" + hostaddress);
+ }
- try {
- 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());
+ this.wsStringMessageListener = newWsStringMessageListener;
+ try {
service = factory.createServer(new InetSocketAddress(port));
service.addMessageListener(new WsStringMessageServerListener());
-
service.startConnection();
} catch (final Exception e) {
LOGGER.warn("web socket string message server start failed", e);
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 a501a66d6..a6c3c5854 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
@@ -1,6 +1,7 @@
/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2016-2018 Ericsson. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -28,7 +29,6 @@ import java.net.NetworkInterface;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Enumeration;
-
import org.slf4j.ext.XLogger;
import org.slf4j.ext.XLoggerFactory;
@@ -101,7 +101,7 @@ public final class MessagingUtils {
/**
* Check if port is available or not.
- *
+ *
* @param port the port to test
* @return true if port is available
*/
@@ -118,6 +118,7 @@ public final class MessagingUtils {
* Returns the local host address.
*
* @return the local host address
+ * @throws IllegalStateException if the local host's address cannot be found
*/
public static InetAddress getHost() {
try {
diff --git a/services/services-engine/src/main/java/org/onap/policy/apex/service/engine/engdep/EngDepMessageListener.java b/services/services-engine/src/main/java/org/onap/policy/apex/service/engine/engdep/EngDepMessageListener.java
index 358069657..2e8218a99 100644
--- a/services/services-engine/src/main/java/org/onap/policy/apex/service/engine/engdep/EngDepMessageListener.java
+++ b/services/services-engine/src/main/java/org/onap/policy/apex/service/engine/engdep/EngDepMessageListener.java
@@ -1,19 +1,20 @@
/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2016-2018 Ericsson. All rights reserved.
+ * Modifications Copyright (C) 2019 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- *
+ *
* SPDX-License-Identifier: Apache-2.0
* ============LICENSE_END=========================================================
*/
@@ -21,13 +22,13 @@
package org.onap.policy.apex.service.engine.engdep;
import com.google.common.eventbus.Subscribe;
-
+import java.net.InetAddress;
+import java.net.UnknownHostException;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingDeque;
import java.util.concurrent.TimeUnit;
-
import org.java_websocket.WebSocket;
import org.onap.policy.apex.core.infrastructure.messaging.MessageHolder;
import org.onap.policy.apex.core.infrastructure.messaging.MessageListener;
@@ -57,7 +58,7 @@ import org.slf4j.ext.XLoggerFactory;
* event implements this interface, and the object created with that class is registered with a component using the
* component's <code>addEngDepMessageListener</code> method. When the engDepMessage event occurs, that object's
* appropriate method is invoked.
- *
+ *
* <p>This class uses a queue to buffer incoming messages. When the listener is called, it places the incoming message
* on the queue. A thread runs which removes the messages from the queue and forwards them to the Apex engine.
*
@@ -211,7 +212,7 @@ public class EngDepMessageListener implements MessageListener<Message>, Runnable
/**
* Handle incoming EngDep messages.
- *
+ *
* @param message the incoming message
* @param webSocket the web socket the message came in on
* @param enDepAction the action from the message
@@ -253,7 +254,7 @@ public class EngDepMessageListener implements MessageListener<Message>, Runnable
case GET_ENGINE_INFO:
handleEngineInfoMessage(message, webSocket);
break;
-
+
default:
throw new ApexException("action " + enDepAction + " on received message not handled by engine");
}
@@ -261,7 +262,7 @@ public class EngDepMessageListener implements MessageListener<Message>, Runnable
/**
* Handle the get engine service information message.
- *
+ *
* @param message the message
* @param webSocket the web socket that the message came on
* @throws ApexException on message handling exceptions
@@ -279,7 +280,7 @@ public class EngDepMessageListener implements MessageListener<Message>, Runnable
/**
* Handle the update model message.
- *
+ *
* @param message the message
* @param webSocket the web socket that the message came on
* @throws ApexException on message handling exceptions
@@ -298,7 +299,7 @@ public class EngDepMessageListener implements MessageListener<Message>, Runnable
/**
* Handle the start engine message.
- *
+ *
* @param message the message
* @param webSocket the web socket that the message came on
* @throws ApexException on message handling exceptions
@@ -316,7 +317,7 @@ public class EngDepMessageListener implements MessageListener<Message>, Runnable
/**
* Handle the stop engine message.
- *
+ *
* @param message the message
* @param webSocket the web socket that the message came on
* @throws ApexException on message handling exceptions
@@ -334,7 +335,7 @@ public class EngDepMessageListener implements MessageListener<Message>, Runnable
/**
* Handle the start periodic events message.
- *
+ *
* @param message the message
* @param webSocket the web socket that the message came on
* @throws ApexException on message handling exceptions
@@ -356,7 +357,7 @@ public class EngDepMessageListener implements MessageListener<Message>, Runnable
/**
* Handle the stop periodic events message.
- *
+ *
* @param message the message
* @param webSocket the web socket that the message came on
* @throws ApexException on message handling exceptions
@@ -376,7 +377,7 @@ public class EngDepMessageListener implements MessageListener<Message>, Runnable
/**
* Handle the engine status message.
- *
+ *
* @param message the message
* @param webSocket the web socket that the message came on
* @throws ApexException on message handling exceptions
@@ -392,7 +393,7 @@ public class EngDepMessageListener implements MessageListener<Message>, Runnable
/**
* Handle the engine information message.
- *
+ *
* @param message the message
* @param webSocket the web socket that the message came on
* @throws ApexException on message handling exceptions
@@ -406,6 +407,19 @@ public class EngDepMessageListener implements MessageListener<Message>, Runnable
}
/**
+ * Get the local address for the WS MessageHolder, or null if there is a problem.
+ */
+ private InetAddress getLocalAddress() {
+ try {
+ return MessagingUtils.getLocalHostLanAddress();
+ }
+ catch (UnknownHostException e) {
+ LOGGER.debug("failed to find the localhost address - continuing ...", e);
+ return null;
+ }
+ }
+
+ /**
* Send the Response message to the client.
*
* @param client the client to which to send the response message
@@ -429,7 +443,7 @@ public class EngDepMessageListener implements MessageListener<Message>, Runnable
final Response responseMessage = new Response(requestMessage.getTarget(), result, requestMessage);
responseMessage.setMessageData(messageData);
- final MessageHolder<Message> messageHolder = new MessageHolder<>(MessagingUtils.getHost());
+ final MessageHolder<Message> messageHolder = new MessageHolder<>(getLocalAddress());
messageHolder.addMessage(responseMessage);
client.send(MessagingUtils.serializeObject(messageHolder));
@@ -460,7 +474,7 @@ public class EngDepMessageListener implements MessageListener<Message>, Runnable
responseMessage.setEngineKeyArray(engineKeyCollection);
responseMessage.setApexModelKey(apexModelKey);
- final MessageHolder<Message> messageHolder = new MessageHolder<>(MessagingUtils.getHost());
+ final MessageHolder<Message> messageHolder = new MessageHolder<>(getLocalAddress());
messageHolder.addMessage(responseMessage);
client.send(MessagingUtils.serializeObject(messageHolder));