aboutsummaryrefslogtreecommitdiffstats
path: root/PolicyEngineAPI/src/main/java/org/onap/policy/std/ManualClientEnd.java
diff options
context:
space:
mode:
Diffstat (limited to 'PolicyEngineAPI/src/main/java/org/onap/policy/std/ManualClientEnd.java')
-rw-r--r--PolicyEngineAPI/src/main/java/org/onap/policy/std/ManualClientEnd.java214
1 files changed, 94 insertions, 120 deletions
diff --git a/PolicyEngineAPI/src/main/java/org/onap/policy/std/ManualClientEnd.java b/PolicyEngineAPI/src/main/java/org/onap/policy/std/ManualClientEnd.java
index 991bdca9c..2fe6dc006 100644
--- a/PolicyEngineAPI/src/main/java/org/onap/policy/std/ManualClientEnd.java
+++ b/PolicyEngineAPI/src/main/java/org/onap/policy/std/ManualClientEnd.java
@@ -20,144 +20,118 @@
package org.onap.policy.std;
-import java.io.IOException;
import java.net.URI;
import java.util.concurrent.CountDownLatch;
-
import javax.websocket.ClientEndpoint;
-import javax.websocket.OnClose;
-import javax.websocket.OnError;
-import javax.websocket.OnMessage;
-import javax.websocket.OnOpen;
-import javax.websocket.Session;
-
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
import org.onap.policy.api.NotificationScheme;
import org.onap.policy.api.NotificationType;
import org.onap.policy.api.PDPNotification;
+import org.onap.policy.common.logging.flexlogger.FlexLogger;
+import org.onap.policy.common.logging.flexlogger.Logger;
import org.onap.policy.std.StdPDPNotification;
-
import org.onap.policy.xacml.api.XACMLErrorConstants;
-import org.onap.policy.common.logging.flexlogger.*;
-
@ClientEndpoint
public class ManualClientEnd extends WebSocketClient {
- private static CountDownLatch latch;
- private static StdPDPNotification notification = null;
- private static String resultJson = null;
- private static Logger logger = FlexLogger.getLogger(ManualClientEnd.class.getName());
- private static ManualClientEnd client;
-
- public ManualClientEnd(URI serverUri) {
- super(serverUri);
- }
+ private static CountDownLatch latch;
+ private static StdPDPNotification notification = null;
+ private static String resultJson = null;
+ private static Logger logger = FlexLogger.getLogger(ManualClientEnd.class.getName());
+ private static ManualClientEnd client;
+
+ public ManualClientEnd(URI serverUri) {
+ super(serverUri);
+ }
+
+ @Override
+ public void onClose(int code, String reason, boolean remote) {
+ logger.info("ManualClientEnd disconnected from: " + getURI() + "; Code: " + code + ", reason : " + reason);
+ latch.countDown();
+ }
- @Override
- public void onClose(int arg0, String arg1, boolean arg2) {
- // Not implemented
- }
+ @Override
+ public void onError(Exception ex) {
+ logger.error("XACMLErrorConstants.ERROR_PROCESS_FLOW + ManualClientEnd - Error connecting to: " + getURI()
+ + ", Exception occured ...\n" + ex);
+ latch.countDown();
+ }
- @Override
- public void onError(Exception arg0) {
- // Not implemented
- }
+ @Override
+ public void onMessage(String message) {
+ logger.info("Manual Notification Recieved Message from : " + getURI() + ", Notification: " + message);
+ ManualClientEnd.resultJson = message;
+ try {
+ ManualClientEnd.notification = NotificationUnMarshal.notificationJSON(message);
+ latch.countDown();
+ } catch (Exception e) {
+ logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + e);
+ latch.countDown();
+ }
+ }
- @Override
- public void onMessage(String arg0) {
- // Not implemented
- }
+ @Override
+ public void onOpen(ServerHandshake arg0) {
+ logger.info("Manual Notification Session Started... " + getURI());
+ send("Manual");
+ }
- @Override
- public void onOpen(ServerHandshake arg0) {
- // Not implemented
- }
+ /**
+ * Start.
+ *
+ * @param url the url
+ */
+ public static void start(String url) {
+ latch = new CountDownLatch(1);
- public static void start(String url) {
- latch = new CountDownLatch(1);
+ if (url.contains("https")) {
+ url = url.replaceAll("https", "wss");
+ } else {
+ url = url.replaceAll("http", "ws");
+ }
- if (url.contains("https")) {
- url = url.replaceAll("https", "wss");
- }
- else {
- url = url.replaceAll("http", "ws");
- }
-
- try {
- client = new ManualClientEnd(new URI(url+"notifications"));
- latch.await();
- } catch (Exception e) {
- logger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + e);
- }
- }
+ try {
+ client = new ManualClientEnd(new URI(url + "notifications"));
+ client.connect();
+ latch.await();
+ client.close();
+ } catch (Exception e) {
+ logger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + e);
+ }
+ }
- public static PDPNotification result(NotificationScheme scheme) {
- if (resultJson == null || notification == null) {
- logger.debug("No Result" );
- return null;
- } else {
- if(scheme.equals(NotificationScheme.MANUAL_ALL_NOTIFICATIONS)) {
- boolean removed = false;
- boolean updated = false;
- if(notification.getRemovedPolicies()!=null && !notification.getRemovedPolicies().isEmpty()){
- removed = true;
- }
- if(notification.getLoadedPolicies()!=null && !notification.getLoadedPolicies().isEmpty()){
- updated = true;
- }
- if(removed && updated) {
- notification.setNotificationType(NotificationType.BOTH);
- }else if(removed){
- notification.setNotificationType(NotificationType.REMOVE);
- }else if(updated){
- notification.setNotificationType(NotificationType.UPDATE);
- }
- return notification;
- }else if(scheme.equals(NotificationScheme.MANUAL_NOTIFICATIONS)) {
- return MatchStore.checkMatch(notification);
- }else {
- return null;
- }
- }
- }
-
- // WebSockets Code..
- @OnOpen
- public void onOpen(Session session) throws IOException {
- logger.info("Session Started with : " + session.getId());
- session.getBasicRemote().sendText("Manual");
- }
-
- @OnError
- public void onError(Session session, Throwable e) {
- logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error in: "+ session.getId());
- latch.countDown();
- }
-
- @OnClose
- public void onClose(Session session) {
- logger.info("Session ended with "+ session.getId());
- latch.countDown();
- client.close();
- }
-
- @OnMessage
- public static void onMessage(String message, Session session){
- logger.debug(" Manual Notification Recieved Message : " + message +" Session info is : "+ session.getId());
- resultJson = message;
- try {
- notification = NotificationUnMarshal.notificationJSON(message);
- } catch (Exception e) {
- logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + e);
- latch.countDown();
- }
- try {
- session.close();
- } catch (IOException e) {
- logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
- latch.countDown();
- } // For Manual Client..
- latch.countDown();
- }
+ /**
+ * Result.
+ *
+ * @param scheme the scheme
+ * @return the PDP notification
+ */
+ public static PDPNotification result(NotificationScheme scheme) {
+ if (resultJson == null || notification == null) {
+ logger.info("ManualClientENd - No Result available");
+ return null;
+ } else {
+ if (scheme.equals(NotificationScheme.MANUAL_ALL_NOTIFICATIONS)) {
+ boolean removed = false;
+ boolean updated = false;
+ if (notification.getRemovedPolicies() != null && !notification.getRemovedPolicies().isEmpty()) {
+ removed = true;
+ notification.setNotificationType(NotificationType.REMOVE);
+ }
+ if (notification.getLoadedPolicies() != null && !notification.getLoadedPolicies().isEmpty()) {
+ updated = true;
+ notification.setNotificationType(NotificationType.UPDATE);
+ }
+ if (removed && updated) {
+ notification.setNotificationType(NotificationType.BOTH);
+ }
+ return notification;
+ } else if (scheme.equals(NotificationScheme.MANUAL_NOTIFICATIONS)) {
+ return MatchStore.checkMatch(notification);
+ } else {
+ return null;
+ }
+ }
+ }
}