diff options
author | wasala <przemyslaw.wasala@nokia.com> | 2018-04-18 11:03:03 +0200 |
---|---|---|
committer | wasala <przemyslaw.wasala@nokia.com> | 2018-04-18 11:03:03 +0200 |
commit | 23f7acc707bf285df2da4a95b146d1a7f5132453 (patch) | |
tree | fa1bb87fd192e2b4b163afaf8bd22ded95069763 | |
parent | b3a974ed7dccb1fc29b8bef2a1112bb78abe3197 (diff) |
Defined structure of DMaaP Consumer
*Added Response Type
Change-Id: Id53217db932e345dfe16a7e7035c160f70287ef0
Issue-ID: DCAEGEN2-450
Signed-off-by: wasala <przemyslaw.wasala@nokia.com>
14 files changed, 284 insertions, 24 deletions
@@ -435,11 +435,6 @@ <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> <version>3.6</version> diff --git a/prh-aai-client/pom.xml b/prh-aai-client/pom.xml index 49f0dcec..4f5e1867 100644 --- a/prh-aai-client/pom.xml +++ b/prh-aai-client/pom.xml @@ -63,10 +63,6 @@ <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> </dependency> diff --git a/prh-aai-client/src/main/java/org/onap/dcaegen2/services/service/AAIExtendedHttpClientImpl.java b/prh-aai-client/src/main/java/org/onap/dcaegen2/services/service/AAIExtendedHttpClientImpl.java index 048d9fef..85c8caba 100644 --- a/prh-aai-client/src/main/java/org/onap/dcaegen2/services/service/AAIExtendedHttpClientImpl.java +++ b/prh-aai-client/src/main/java/org/onap/dcaegen2/services/service/AAIExtendedHttpClientImpl.java @@ -19,6 +19,13 @@ */ 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(); diff --git a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/MainApp.java b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/MainApp.java index fd864483..3c631218 100644 --- a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/MainApp.java +++ b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/MainApp.java @@ -1,4 +1,4 @@ -/*- +/* * ============LICENSE_START======================================================= * PNF-REGISTRATION-HANDLER * ================================================================================ diff --git a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/configuration/PrhAppConfig.java b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/configuration/PrhAppConfig.java index 6f077a36..1bd90eef 100644 --- a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/configuration/PrhAppConfig.java +++ b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/configuration/PrhAppConfig.java @@ -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; diff --git a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/AAIPublisherTaskImpl.java b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/AAIPublisherTaskImpl.java index c524b990..47733946 100644 --- a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/AAIPublisherTaskImpl.java +++ b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/AAIPublisherTaskImpl.java @@ -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())); diff --git a/prh-dmaap-client/pom.xml b/prh-dmaap-client/pom.xml index 63543740..48cd9003 100644 --- a/prh-dmaap-client/pom.xml +++ b/prh-dmaap-client/pom.xml @@ -48,6 +48,11 @@ <groupId>org.immutables</groupId> <artifactId>gson</artifactId> </dependency> + <dependency> + <groupId>org.apache.httpcomponents</groupId> + <artifactId>httpclient</artifactId> + </dependency> + <!-- LOGGING DEPENDENCIES --> <dependency> diff --git a/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/config/DmaapPublisherConfiguration.java b/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/config/DmaapPublisherConfiguration.java index 50a79dd6..525e1326 100644 --- a/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/config/DmaapPublisherConfiguration.java +++ b/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/config/DmaapPublisherConfiguration.java @@ -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 index 00000000..5e9705ae --- /dev/null +++ b/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/consumer/DMaaPConsumer.java @@ -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 index 00000000..4864d679 --- /dev/null +++ b/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/consumer/DMaaPConsumerFactory.java @@ -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 index 00000000..e9511ce3 --- /dev/null +++ b/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/consumer/DMaaPConsumerImpl.java @@ -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 index 00000000..a9e5c526 --- /dev/null +++ b/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/response/DMaaPConsumerResponse.java @@ -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 index 00000000..f3565edf --- /dev/null +++ b/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/response/DMaaPConsumerResponseImpl.java @@ -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 index 00000000..6528eec8 --- /dev/null +++ b/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/response/DMaaPResponse.java @@ -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(); +} |