summaryrefslogtreecommitdiffstats
path: root/message-router/publisher/provider/src
diff options
context:
space:
mode:
authorJessica Wagantall <jwagantall@linuxfoundation.org>2020-12-01 11:26:31 -0800
committerJessica Wagantall <jwagantall@linuxfoundation.org>2020-12-01 11:27:11 -0800
commit11510b43c277b8e1dd7e58d79785544810118c8e (patch)
treeb88a497c999d24b5f357ea9b26bc93e0990fd5e7 /message-router/publisher/provider/src
parent5d2eab72fc4442f14108b41800cec88126913823 (diff)
Migrate sli-adaptor files
Migrate sli-adaptor repo files into a new "adaptors" directory. Signed-off-by: Jessica Wagantall <jwagantall@linuxfoundation.org>
Diffstat (limited to 'message-router/publisher/provider/src')
-rwxr-xr-xmessage-router/publisher/provider/src/main/java/org/onap/ccsdk/sli/adaptors/messagerouter/publisher/provider/impl/PublisherApiImpl.java178
-rwxr-xr-xmessage-router/publisher/provider/src/main/resources/OSGI-INF/blueprint/blueprint.xml14
-rw-r--r--message-router/publisher/provider/src/test/java/org/onap/ccsdk/sli/adaptors/messagerouter/publisher/provider/impl/PublisherApiImplTest.java51
3 files changed, 0 insertions, 243 deletions
diff --git a/message-router/publisher/provider/src/main/java/org/onap/ccsdk/sli/adaptors/messagerouter/publisher/provider/impl/PublisherApiImpl.java b/message-router/publisher/provider/src/main/java/org/onap/ccsdk/sli/adaptors/messagerouter/publisher/provider/impl/PublisherApiImpl.java
deleted file mode 100755
index 4aedc6071..000000000
--- a/message-router/publisher/provider/src/main/java/org/onap/ccsdk/sli/adaptors/messagerouter/publisher/provider/impl/PublisherApiImpl.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/**
- * ============LICENSE_START====================================================
- * org.onap.aaf
- * ===========================================================================
- * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
- *
- * Modifications Copyright (C) 2019 IBM.
- * ===========================================================================
- * 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.
- * ============LICENSE_END====================================================
- *
- */
-package org.onap.ccsdk.sli.adaptors.messagerouter.publisher.provider.impl;
-
-import java.io.BufferedReader;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.HttpURLConnection;
-import java.net.SocketException;
-import java.net.URL;
-import java.util.Base64;
-
-import org.onap.ccsdk.sli.adaptors.messagerouter.publisher.api.PublisherApi;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class PublisherApiImpl implements PublisherApi {
- private static final Logger logger = LoggerFactory.getLogger(PublisherApiImpl.class);
- protected static final Integer DEFAULT_CONNECT_TIMEOUT = 30000; // will be treated as 30 seconds
- protected static final Integer DEFAULT_READ_TIMEOUT = 180000; // will be treated as 3 minutes
- private String authorizationString;
- protected Integer connectTimeout;
- protected Integer readTimeout;
- protected String baseUrl;
- protected String username;
- protected String[] hosts;
- private String password;
-
- public PublisherApiImpl() {
- connectTimeout = DEFAULT_CONNECT_TIMEOUT;
- readTimeout = DEFAULT_READ_TIMEOUT;
- }
-
- public void setUsername(String username) {
- this.username = username;
- setAuthorizationString();
- }
-
- public void setPassword(String password) {
- this.password = password;
- setAuthorizationString();
- }
-
- public void setHost(String hostString) {
- // a comma separated list of hosts can be passed in or a single host may be used
- if (!hostString.contains(",")) {
- this.hosts = new String[] { hostString };
- } else {
- this.hosts = hostString.split(",");
- }
- }
-
- public void init() {
- setAuthorizationString();
- }
-
- protected String buildUrlString(Integer hostIndex, String topic) {
- return hosts[hostIndex] + "/events/" + topic;
- }
-
- protected void configureHttpURLConnection(HttpURLConnection httpUrlConnection) {
- httpUrlConnection.setRequestProperty("Content-Type", "application/json");
- }
-
- public Boolean publish(String topic, String body) {
- for (int hostIndex = 0; hostIndex < hosts.length; hostIndex++) {
- HttpURLConnection httpUrlConnection = null;
- URL url = null;
- try {
- url = new URL(buildUrlString(hostIndex, topic));
- logger.info("Publishing body to topic {} using the url {}", topic, url);
- logger.info("Message to publish is\n{}", body);
- httpUrlConnection = buildHttpURLConnection(url);
- httpUrlConnection.setDoInput(true);
- httpUrlConnection.setDoOutput(true);
- httpUrlConnection.setUseCaches(false);
- httpUrlConnection.setRequestMethod("POST");
-
- // Write message
- httpUrlConnection.setRequestProperty("Content-Length", Integer.toString(body.length()));
- DataOutputStream outStr = new DataOutputStream(httpUrlConnection.getOutputStream());
- outStr.write(body.getBytes());
- outStr.close();
-
- int status = httpUrlConnection.getResponseCode();
- logger.info("Publishing body for topic {} using url {} returned status {}.", topic, url, status);
- if (status < 300) {
- String responseFromDMaaP = readFromStream(httpUrlConnection.getInputStream());
- logger.info("Message router response is\n{}", responseFromDMaaP);
- return true;
- } else {
- if (httpUrlConnection.getErrorStream() != null) {
- String responseFromDMaaP = readFromStream(httpUrlConnection.getErrorStream());
- logger.warn("Publishing body for topic {} using url {} failed." + " Error message is\n{}",
- topic, url, responseFromDMaaP);
- }
- return false;
- }
-
- } catch (SocketException socketException) {
- logger.error("SocketException was thrown during publishing message to DMaaP on url {}.", url,
- socketException);
- if (hostIndex < hosts.length) {
- logger.info("Message sent to {} failed with a SocketException, but will be tried on {}",
- hosts[hostIndex], hosts[hostIndex + 1]);
- }
- } catch (Exception e) {
- logger.warn("Exception was thrown during publishing message to DMaaP on url {}.", url, e);
- return false;
- } finally {
- if (httpUrlConnection != null) {
- httpUrlConnection.disconnect();
- }
- }
- }
- return false;
- }
-
- protected void setAuthorizationString() {
- String str = buildAuthorizationString(this.username, this.password);
- this.authorizationString = str;
- //System.out.println(this.authorizationString);
- }
-
- protected String buildAuthorizationString(String username, String password) {
- String basicAuthString = username + ":" + password;
- basicAuthString = Base64.getEncoder().encodeToString(basicAuthString.getBytes());
- return "Basic " + basicAuthString;
- }
-
- protected HttpURLConnection buildHttpURLConnection(URL url) throws IOException {
- HttpURLConnection httpUrlConnection = (HttpURLConnection) url.openConnection();
- if (authorizationString != null) {
- System.out.println(authorizationString);
- httpUrlConnection.setRequestProperty("Authorization", authorizationString);
- }
- httpUrlConnection.setRequestProperty("Accept", "application/json");
- httpUrlConnection.setUseCaches(false);
- httpUrlConnection.setConnectTimeout(connectTimeout);
- httpUrlConnection.setReadTimeout(readTimeout);
- configureHttpURLConnection(httpUrlConnection);
- return httpUrlConnection;
- }
-
- protected String readFromStream(InputStream stream) throws IOException {
- BufferedReader br = new BufferedReader(new InputStreamReader(stream));
- StringBuilder sb = new StringBuilder();
- String line;
- while ((line = br.readLine()) != null) {
- sb.append(line);
- }
- br.close();
- return sb.toString();
- }
-
-} \ No newline at end of file
diff --git a/message-router/publisher/provider/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/message-router/publisher/provider/src/main/resources/OSGI-INF/blueprint/blueprint.xml
deleted file mode 100755
index 4702a6260..000000000
--- a/message-router/publisher/provider/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
- xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.2.0">
-
- <bean id="publisher"
- class="org.onap.ccsdk.sli.adaptors.messagerouter.publisher.provider.impl.PublisherApiImpl">
- <cm:managed-properties
- persistent-id="org.onap.ccsdk.sli.adaptors.messagerouter.publisher.provider"
- update-strategy="container-managed" />
- </bean>
-
- <service ref="publisher" interface="org.onap.ccsdk.sli.adaptors.messagerouter.publisher.api.PublisherApi" />
-
-</blueprint> \ No newline at end of file
diff --git a/message-router/publisher/provider/src/test/java/org/onap/ccsdk/sli/adaptors/messagerouter/publisher/provider/impl/PublisherApiImplTest.java b/message-router/publisher/provider/src/test/java/org/onap/ccsdk/sli/adaptors/messagerouter/publisher/provider/impl/PublisherApiImplTest.java
deleted file mode 100644
index 53744f73e..000000000
--- a/message-router/publisher/provider/src/test/java/org/onap/ccsdk/sli/adaptors/messagerouter/publisher/provider/impl/PublisherApiImplTest.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package org.onap.ccsdk.sli.adaptors.messagerouter.publisher.provider.impl;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.net.HttpURLConnection;
-import java.net.URL;
-
-import org.junit.Test;
-
-public class PublisherApiImplTest {
- @Test
- public void verifyDefaultTimeouts() {
- PublisherApiImpl pub = new PublisherApiImpl();
- assertEquals(pub.DEFAULT_CONNECT_TIMEOUT, pub.connectTimeout);
- assertEquals(pub.DEFAULT_READ_TIMEOUT, pub.readTimeout);
- }
-
- @Test
- public void buildHttpURLConnection() throws Exception {
- PublisherApiImpl pub = new PublisherApiImpl();
- pub.init();
-
- String myUserName = "Batman";
- pub.setUsername(myUserName);
- assertEquals(myUserName, pub.username);
- String password = "P@$$";
- pub.setPassword(password);
-
- HttpURLConnection httpUrlConnection = pub.buildHttpURLConnection(new URL("http://localhost:7001"));
- assertNotNull(httpUrlConnection.getReadTimeout());
- assertNotNull(httpUrlConnection.getConnectTimeout());
- assertEquals("application/json", httpUrlConnection.getRequestProperty("Content-Type"));
- assertEquals("application/json", httpUrlConnection.getRequestProperty("Accept"));
- }
-
- @Test
- public void testMultipleHosts() {
- PublisherApiImpl pub = new PublisherApiImpl();
- String myTopic = "worldNews";
- String hostOne = "http://localhost:7001";
- String hostTwo = "http://localhost:7002";
- String hostThree = "http://localhost:7003";
-
- pub.setHost(hostOne + "," + hostTwo + "," + hostThree);
-
- assertEquals("http://localhost:7001/events/worldNews", pub.buildUrlString(0, myTopic));
- assertEquals("http://localhost:7002/events/worldNews", pub.buildUrlString(1, myTopic));
- assertEquals("http://localhost:7003/events/worldNews", pub.buildUrlString(2, myTopic));
- }
-} \ No newline at end of file