5cd871225a047edb1837b797bcbf7b864f08697b
[policy/apex-pdp.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2016-2018 Ericsson. All rights reserved.
4  * ================================================================================
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * SPDX-License-Identifier: Apache-2.0
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.policy.apex.testsuites.integration.uservice.adapt.websocket;
22
23 import org.onap.policy.apex.core.infrastructure.messaging.MessagingException;
24 import org.onap.policy.apex.core.infrastructure.messaging.stringmessaging.WsStringMessageClient;
25 import org.onap.policy.apex.core.infrastructure.messaging.stringmessaging.WsStringMessageListener;
26 import org.slf4j.Logger;
27 import org.slf4j.LoggerFactory;
28
29 /**
30  * The Class WebSocketEventSubscriberClient.
31  */
32 public class WebSocketEventSubscriberClient implements WsStringMessageListener {
33     private static final Logger LOGGER = LoggerFactory.getLogger(WebSocketEventSubscriberClient.class);
34
35     private final int port;
36     private long eventsReceivedCount = 0;
37
38     private final WsStringMessageClient client;
39
40     /**
41      * Instantiates a new web socket event subscriber client.
42      *
43      * @param host the host
44      * @param port the port
45      * @throws MessagingException the messaging exception
46      */
47     public WebSocketEventSubscriberClient(final String host, final int port) throws MessagingException {
48         this.port = port;
49
50         client = new WsStringMessageClient(host, port);
51         client.start(this);
52     }
53
54     /**
55      * {@inheritDoc}.
56      */
57     @Override
58     public void receiveString(final String eventString) {
59         LOGGER.debug("{}: port {}, received event {}", WebSocketEventSubscriberClient.class.getCanonicalName(), port,
60                         eventString);
61         eventsReceivedCount++;
62     }
63
64     /**
65      * Gets the events received count.
66      *
67      * @return the events received count
68      */
69     public long getEventsReceivedCount() {
70         return eventsReceivedCount;
71     }
72
73     /**
74      * Shutdown.
75      */
76     public void shutdown() {
77         client.stop();
78         LOGGER.debug("{}: stopped", WebSocketEventSubscriberServer.class.getCanonicalName());
79     }
80
81     /**
82      * The main method.
83      *
84      * @param args the arguments
85      * @throws MessagingException the messaging exception
86      */
87     public static void main(final String[] args) throws MessagingException {
88         if (args.length != 2) {
89             LOGGER.error("usage WebSocketEventSubscriberClient host port");
90             return;
91         }
92
93         int port = 0;
94         try {
95             port = Integer.parseInt(args[0]);
96         } catch (final Exception e) {
97             LOGGER.error("usage WebSocketEventSubscriberClient port");
98             e.printStackTrace();
99             return;
100         }
101
102         new WebSocketEventSubscriberClient(args[0], port);
103     }
104 }