Defined structure of DMaaP Consumer 85/43485/1
authorwasala <przemyslaw.wasala@nokia.com>
Wed, 18 Apr 2018 09:03:03 +0000 (11:03 +0200)
committerwasala <przemyslaw.wasala@nokia.com>
Wed, 18 Apr 2018 09:03:03 +0000 (11:03 +0200)
*Added Response Type

Change-Id: Id53217db932e345dfe16a7e7035c160f70287ef0
Issue-ID: DCAEGEN2-450
Signed-off-by: wasala <przemyslaw.wasala@nokia.com>
14 files changed:
pom.xml
prh-aai-client/pom.xml
prh-aai-client/src/main/java/org/onap/dcaegen2/services/service/AAIExtendedHttpClientImpl.java
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/MainApp.java
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/configuration/PrhAppConfig.java
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/AAIPublisherTaskImpl.java
prh-dmaap-client/pom.xml
prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/config/DmaapPublisherConfiguration.java
prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/consumer/DMaaPConsumer.java [new file with mode: 0644]
prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/consumer/DMaaPConsumerFactory.java [new file with mode: 0644]
prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/consumer/DMaaPConsumerImpl.java [new file with mode: 0644]
prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/response/DMaaPConsumerResponse.java [new file with mode: 0644]
prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/response/DMaaPConsumerResponseImpl.java [new file with mode: 0644]
prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/response/DMaaPResponse.java [new file with mode: 0644]

diff --git a/pom.xml b/pom.xml
index 8c652d4..4ba3d07 100644 (file)
--- a/pom.xml
+++ b/pom.xml
         <artifactId>httpclient</artifactId>
         <version>4.5.4</version>
       </dependency>
-      <dependency>
-        <groupId>com.google.guava</groupId>
-        <artifactId>guava</artifactId>
-        <version>10.0.1</version>
-      </dependency>
       <dependency>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-lang3</artifactId>
index 49f0dce..4f5e186 100644 (file)
       <groupId>org.springframework</groupId>
       <artifactId>spring-context</artifactId>
     </dependency>
-    <dependency>
-      <groupId>com.google.guava</groupId>
-      <artifactId>guava</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-lang3</artifactId>
index 048d9fe..85c8cab 100644 (file)
  */
 package org.onap.dcaegen2.services.service;
 
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Optional;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.http.HttpEntity;
 import org.apache.http.client.ResponseHandler;
@@ -37,15 +44,7 @@ import org.onap.dcaegen2.services.utils.RequestVerbs;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-
-import javax.annotation.Nonnull;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Optional;
+import org.springframework.lang.NonNull;
 
 public class AAIExtendedHttpClientImpl implements AAIExtendedHttpClient {
 
@@ -117,7 +116,7 @@ public class AAIExtendedHttpClientImpl implements AAIExtendedHttpClient {
         return extendedURI;
     }
 
-    private String createCustomQuery(@Nonnull final Map<String, String> queryParams) {
+    private String createCustomQuery(@NonNull final Map<String, String> queryParams) {
         final StringBuilder queryStringBuilder = new StringBuilder("");
         final Iterator<Map.Entry<String, String>> queryParamIterator = queryParams.entrySet().iterator();
 
index fd86448..3c63121 100644 (file)
@@ -1,4 +1,4 @@
-/*-
+/*
  * ============LICENSE_START=======================================================
  * PNF-REGISTRATION-HANDLER
  * ================================================================================
index 6f077a3..1bd90ee 100644 (file)
@@ -19,9 +19,6 @@
  */
 package org.onap.dcaegen2.services.prh.configuration;
 
-import static org.apache.tomcat.util.file.ConfigFileLoader.getInputStream;
-
-import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
index c524b99..4773394 100644 (file)
@@ -51,6 +51,7 @@ public class AAIPublisherTaskImpl extends AAIPublisherTask<AAIHttpClientConfigur
     protected void publish() throws AAINotFoundException {
         logger.debug("Start task DmaapConsumerTask::publish() :: Execution Time - {}", dateTimeFormatter.format(
             LocalDateTime.now()));
+        prhAppConfig.getAAIHttpClientConfiguration();
         logger.debug("End task DmaapConsumerTask::publish() :: Execution Time - {}", dateTimeFormatter.format(
             LocalDateTime.now()));
 
index 6354374..48cd900 100644 (file)
       <groupId>org.immutables</groupId>
       <artifactId>gson</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.apache.httpcomponents</groupId>
+      <artifactId>httpclient</artifactId>
+    </dependency>
+
 
     <!-- LOGGING DEPENDENCIES -->
     <dependency>
index 50a79dd..525e132 100644 (file)
@@ -1,4 +1,4 @@
-/*-
+/*
  * ============LICENSE_START=======================================================
  * PNF-REGISTRATION-HANDLER
  * ================================================================================
diff --git a/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/consumer/DMaaPConsumer.java b/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/consumer/DMaaPConsumer.java
new file mode 100644 (file)
index 0000000..5e9705a
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * ============LICENSE_START=======================================================
+ * PNF-REGISTRATION-HANDLER
+ * ================================================================================
+ * Copyright (C) 2018 NOKIA Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.dcaegen2.services.consumer;
+
+import java.util.Date;
+import org.onap.dcaegen2.services.response.DMaaPConsumerResponse;
+
+/**
+ * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 4/17/18
+ */
+public interface DMaaPConsumer extends AutoCloseable {
+
+    DMaaPConsumerResponse fetchMessages();
+
+    Date getSubscriberCreationTime();
+}
diff --git a/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/consumer/DMaaPConsumerFactory.java b/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/consumer/DMaaPConsumerFactory.java
new file mode 100644 (file)
index 0000000..4864d67
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * ============LICENSE_START=======================================================
+ * PNF-REGISTRATION-HANDLER
+ * ================================================================================
+ * Copyright (C) 2018 NOKIA Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.dcaegen2.services.consumer;
+
+import org.onap.dcaegen2.services.config.DmaapConsumerConfiguration;
+
+/**
+ * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 4/17/18
+ */
+public interface DMaaPConsumerFactory {
+
+    DMaaPConsumer create(DmaapConsumerConfiguration dmaapConsumerConfiguration);
+}
diff --git a/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/consumer/DMaaPConsumerImpl.java b/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/consumer/DMaaPConsumerImpl.java
new file mode 100644 (file)
index 0000000..e9511ce
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * ============LICENSE_START=======================================================
+ * PNF-REGISTRATION-HANDLER
+ * ================================================================================
+ * Copyright (C) 2018 NOKIA Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.dcaegen2.services.consumer;
+
+import java.net.URI;
+import java.time.Instant;
+import java.time.LocalTime;
+import java.time.format.DateTimeFormatter;
+import java.util.Date;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.onap.dcaegen2.services.config.DmaapConsumerConfiguration;
+import org.onap.dcaegen2.services.response.DMaaPConsumerResponse;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 4/17/18
+ */
+public class DMaaPConsumerImpl implements DMaaPConsumer {
+
+    private static final Logger logger = LoggerFactory.getLogger(DMaaPConsumerImpl.class);
+    private static final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss");
+
+    private final DmaapConsumerConfiguration dmaapConsumerConfiguration;
+    private final CloseableHttpClient closeableHttpClient;
+    private final URI subscriberUri;
+    private final Date subscriberCreationTime;
+
+    public DMaaPConsumerImpl(DmaapConsumerConfiguration dmaapConsumerConfiguration,
+        CloseableHttpClient closeableHttpClient, URI subscriberUri) {
+        this.dmaapConsumerConfiguration = dmaapConsumerConfiguration;
+        this.closeableHttpClient = closeableHttpClient;
+        this.subscriberUri = subscriberUri;
+        this.subscriberCreationTime = Date.from(Instant.from(LocalTime.now()));
+    }
+
+    @Override
+    public DMaaPConsumerResponse fetchMessages() {
+        return null;
+    }
+
+    @Override
+    public Date getSubscriberCreationTime() {
+        return null;
+    }
+
+    @Override
+    public void close() throws Exception {
+
+    }
+}
diff --git a/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/response/DMaaPConsumerResponse.java b/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/response/DMaaPConsumerResponse.java
new file mode 100644 (file)
index 0000000..a9e5c52
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * ============LICENSE_START=======================================================
+ * PNF-REGISTRATION-HANDLER
+ * ================================================================================
+ * Copyright (C) 2018 NOKIA Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.dcaegen2.services.response;
+
+import java.util.List;
+
+/**
+ * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 4/17/18
+ */
+public interface DMaaPConsumerResponse extends DMaaPResponse {
+
+
+    List<String> getFetchedMessages();
+
+}
diff --git a/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/response/DMaaPConsumerResponseImpl.java b/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/response/DMaaPConsumerResponseImpl.java
new file mode 100644 (file)
index 0000000..f3565ed
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+ * ============LICENSE_START=======================================================
+ * PNF-REGISTRATION-HANDLER
+ * ================================================================================
+ * Copyright (C) 2018 NOKIA Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.dcaegen2.services.response;
+
+import static java.util.Collections.unmodifiableList;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
+import java.util.StringJoiner;
+import org.springframework.lang.NonNull;
+import org.springframework.lang.Nullable;
+
+/**
+ * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 4/17/18
+ */
+public class DMaaPConsumerResponseImpl implements DMaaPConsumerResponse {
+
+
+    private final Integer responseCode;
+    private final String responseMessage;
+    private final List<String> fetchedMessage;
+
+    public DMaaPConsumerResponseImpl(@NonNull Integer responseCode, @NonNull String responseMessage,
+        @Nullable List<String> fetchedMessage) {
+        this.responseCode = responseCode;
+        this.responseMessage = responseMessage;
+        this.fetchedMessage = Optional.ofNullable(fetchedMessage).orElse(Collections.emptyList());
+    }
+
+
+    @Override
+    public String getResponseMessage() {
+        return responseMessage;
+    }
+
+    @Override
+    public Integer getResponseCode() {
+        return responseCode;
+    }
+
+    @Override
+    public List<String> getFetchedMessages() {
+        return unmodifiableList(fetchedMessage);
+    }
+
+    @Override
+    public String toString() {
+        return new StringJoiner(", ", this.getClass().getSimpleName() + "[", "]")
+            .add("responseCode=" + responseCode)
+            .add("responseMessage=" + responseMessage)
+            .add("fetchedMessage=" + fetchedMessage)
+            .toString();
+    }
+}
diff --git a/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/response/DMaaPResponse.java b/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/response/DMaaPResponse.java
new file mode 100644 (file)
index 0000000..6528eec
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * ============LICENSE_START=======================================================
+ * PNF-REGISTRATION-HANDLER
+ * ================================================================================
+ * Copyright (C) 2018 NOKIA Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.dcaegen2.services.response;
+
+/**
+ * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 4/17/18
+ */
+public interface DMaaPResponse {
+
+    Integer getResponseCode();
+
+
+    String getResponseMessage();
+}