High Volume VES Collector Client - stub 63/75563/10
authorPiotr Jaszczyk <piotr.jaszczyk@nokia.com>
Wed, 9 Jan 2019 14:08:46 +0000 (15:08 +0100)
committerPiotr Jaszczyk <piotr.jaszczyk@nokia.com>
Thu, 10 Jan 2019 11:47:01 +0000 (12:47 +0100)
Other minor changes:
* Set dependencies to compatible versions (spring, spring-boot and
  reactor + reactor-netty)
* Fix compilation errors on Java 11

Change-Id: If482c0dffd7162315df6d7b7fdedf554ef7c5d9d
Issue-ID: DCAEGEN2-1070
Signed-off-by: Piotr Jaszczyk <piotr.jaszczyk@nokia.com>
23 files changed:
pom.xml
rest-services/aai-client/pom.xml
rest-services/aai-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/aai/client/service/AaiReactiveWebClientFactoryTest.java
rest-services/cbs-client/pom.xml
rest-services/common-dependency/pom.xml
rest-services/dmaap-client/pom.xml
rest-services/dmaap-client/src/test/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/service/consumer/DMaaPReactiveWebClientFactoryTest.java
rest-services/pom.xml
security/pom.xml
services/hv-ves-client/pom.xml [new file with mode: 0644]
services/hv-ves-client/producer/api/pom.xml [new file with mode: 0644]
services/hv-ves-client/producer/api/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/api/HvVesProducer.java [new file with mode: 0644]
services/hv-ves-client/producer/api/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/api/HvVesProducerFactory.java [new file with mode: 0644]
services/hv-ves-client/producer/api/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/api/package-info.java [new file with mode: 0644]
services/hv-ves-client/producer/ct/pom.xml [new file with mode: 0644]
services/hv-ves-client/producer/ct/src/test/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/ct/HvVesHvVesProducerIT.java [new file with mode: 0644]
services/hv-ves-client/producer/impl/pom.xml [new file with mode: 0644]
services/hv-ves-client/producer/impl/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/impl/HvVesProducerFactoryImpl.java [new file with mode: 0644]
services/hv-ves-client/producer/impl/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/impl/HvVesProducerImpl.java [new file with mode: 0644]
services/hv-ves-client/producer/impl/src/main/resources/META-INF/services/org.onap.dcaegen2.services.sdk.services.hvves.client.producer.api.HvVesProducerFactory [new file with mode: 0644]
services/hv-ves-client/producer/pom.xml [new file with mode: 0644]
services/pom.xml [new file with mode: 0644]
version.properties

diff --git a/pom.xml b/pom.xml
index c3fa092..000f839 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -11,7 +11,7 @@
 
   <groupId>org.onap.dcaegen2.services</groupId>
   <artifactId>sdk</artifactId>
-  <version>1.1.0-SNAPSHOT</version>
+  <version>1.1.1-SNAPSHOT</version>
 
   <name>dcaegen2-services-sdk</name>
   <description>Common SDK repo for all DCAE Services (R4)</description>
     <junit-vintage.version>5.3.1</junit-vintage.version>
     <junit-platform.version>1.3.1</junit-platform.version>
     <immutables.version>2.7.3</immutables.version>
-    <spring.version>5.1.2.RELEASE</spring.version>
-    <spring.boot.version>2.1.0.RELEASE</spring.boot.version>
+    <spring.version>5.1.3.RELEASE</spring.version>
+    <spring.boot.version>2.1.1.RELEASE</spring.boot.version>
+    <reactor.bom.version>Californium-SR3</reactor.bom.version>
     <slf4j.version>1.7.25</slf4j.version>
-    <mockito.version>2.16.0</mockito.version>
+    <logback.version>1.2.3</logback.version>
+    <mockito.version>2.23.4</mockito.version>
   </properties>
 
   <modules>
     <module>rest-services</module>
+    <module>services</module>
     <module>security</module>
   </modules>
 
       <dependency>
         <groupId>ch.qos.logback</groupId>
         <artifactId>logback-classic</artifactId>
-        <version>1.2.3</version>
+        <version>${logback.version}</version>
+        <scope>runtime</scope>
       </dependency>
       <dependency>
         <groupId>org.slf4j</groupId>
         <groupId>org.slf4j</groupId>
         <artifactId>slf4j-api</artifactId>
         <version>${slf4j.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>io.projectreactor.netty</groupId>
-        <artifactId>reactor-netty</artifactId>
-        <version>0.8.1.RELEASE</version>
+        <scope>compile</scope>
       </dependency>
       <dependency>
         <groupId>io.projectreactor</groupId>
         <artifactId>reactor-bom</artifactId>
-        <version>Californium-SR2</version>
+        <version>${reactor.bom.version}</version>
         <type>pom</type>
         <scope>import</scope>
       </dependency>
index 5492e0a..c799fc9 100644 (file)
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.onap.dcaegen2.services.sdk</groupId>
     <artifactId>dcaegen2-services-sdk-rest-services</artifactId>
-    <version>1.1.0-SNAPSHOT</version>
+    <version>1.1.1-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
   <groupId>org.onap.dcaegen2.services.sdk.rest.services</groupId>
   <artifactId>aai-client</artifactId>
-  <version>1.1.0-SNAPSHOT</version>
+  <version>1.1.1-SNAPSHOT</version>
 
   <name>dcaegen2-services-sdk-rest-services-aai-client</name>
   <description>Active and Available Inventory Rest Services Module</description>
@@ -23,7 +23,7 @@
     <dependency>
       <groupId>org.onap.dcaegen2.services.sdk.rest.services</groupId>
       <artifactId>common-dependency</artifactId>
-      <version>1.1.0-SNAPSHOT</version>
+      <version>1.1.1-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.springframework</groupId>
index 153189f..46a57b6 100644 (file)
@@ -25,6 +25,7 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import io.netty.handler.ssl.SslContext;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 import org.onap.dcaegen2.services.sdk.rest.services.aai.client.config.AaiClientConfiguration;
@@ -42,6 +43,7 @@ class AaiReactiveWebClientFactoryTest {
     private SslFactory sslFactory = mock(SslFactory.class);
     private AaiClientConfiguration aaiClientConfiguration = mock(AaiClientConfiguration.class);
     private AaiReactiveWebClientFactory aaiReactiveWebClientFactory;
+    private SslContext dummySslContext = mock(SslContext.class);
 
     @Test
     void shouldCreateWebClientWithSecureSslContext() throws SSLException {
@@ -56,17 +58,20 @@ class AaiReactiveWebClientFactoryTest {
     @Test
     void shouldCreateWebClientWithInsecureSslContext() throws SSLException {
         when(aaiClientConfiguration.enableAaiCertAuth()).thenReturn(false);
+        when(sslFactory.createInsecureContext()).thenReturn(dummySslContext);
         aaiReactiveWebClientFactory = new AaiReactiveWebClientFactory(sslFactory, aaiClientConfiguration);
 
         Assertions.assertNotNull(aaiReactiveWebClientFactory.build());
         verify(sslFactory).createInsecureContext();
     }
 
-    private void givenEnabledAaiCertAuthConfiguration() {
+    private void givenEnabledAaiCertAuthConfiguration() throws SSLException {
         when(aaiClientConfiguration.enableAaiCertAuth()).thenReturn(true);
         when(aaiClientConfiguration.trustStorePath()).thenReturn(TRUST_STORE_PATH);
         when(aaiClientConfiguration.trustStorePasswordPath()).thenReturn(TRUST_STORE_PASS_PATH);
         when(aaiClientConfiguration.keyStorePath()).thenReturn(KEY_STORE_PATH);
         when(aaiClientConfiguration.keyStorePasswordPath()).thenReturn(KEY_STORE_PASS_PATH);
+        when(sslFactory.createSecureContext(KEY_STORE_PATH, KEY_STORE_PASS_PATH, TRUST_STORE_PATH, TRUST_STORE_PASS_PATH))
+                .thenReturn(dummySslContext);
     }
 }
index c6484ff..e1656e7 100644 (file)
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.onap.dcaegen2.services.sdk</groupId>
     <artifactId>dcaegen2-services-sdk-rest-services</artifactId>
-    <version>1.1.0-SNAPSHOT</version>
+    <version>1.1.1-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
   <groupId>org.onap.dcaegen2.services.sdk.rest.services</groupId>
   <artifactId>cbs-client</artifactId>
-  <version>1.1.0-SNAPSHOT</version>
+  <version>1.1.1-SNAPSHOT</version>
 
   <name>dcaegen2-services-sdk-rest-services-cbs-client</name>
   <description>Config Binding Service Rest Services Module</description>
index 39cac5d..46e52f0 100644 (file)
@@ -8,13 +8,13 @@
     <parent>
         <groupId>org.onap.dcaegen2.services.sdk</groupId>
         <artifactId>dcaegen2-services-sdk-rest-services</artifactId>
-        <version>1.1.0-SNAPSHOT</version>
+        <version>1.1.1-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
     <groupId>org.onap.dcaegen2.services.sdk.rest.services</groupId>
     <artifactId>common-dependency</artifactId>
-    <version>1.1.0-SNAPSHOT</version>
+    <version>1.1.1-SNAPSHOT</version>
 
     <name>dcaegen2-services-sdk-rest-services-common-dependency</name>
     <description>Common functionality in the project</description>
index e34dfa1..ec91605 100644 (file)
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.onap.dcaegen2.services.sdk</groupId>
     <artifactId>dcaegen2-services-sdk-rest-services</artifactId>
-    <version>1.1.0-SNAPSHOT</version>
+    <version>1.1.1-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
   <groupId>org.onap.dcaegen2.services.sdk.rest.services</groupId>
   <artifactId>dmaap-client</artifactId>
-  <version>1.1.0-SNAPSHOT</version>
+  <version>1.1.1-SNAPSHOT</version>
 
   <name>dcaegen2-services-sdk-rest-services-dmaap-client</name>
   <description>DMaaP Rest Services Module</description>
@@ -23,7 +23,7 @@
     <dependency>
       <groupId>org.onap.dcaegen2.services.sdk.rest.services</groupId>
       <artifactId>common-dependency</artifactId>
-      <version>1.1.0-SNAPSHOT</version>
+      <version>1.1.1-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.springframework</groupId>
@@ -68,7 +68,7 @@
     <dependency>
       <groupId>org.onap.dcaegen2.services.sdk.rest.services</groupId>
       <artifactId>aai-client</artifactId>
-      <version>1.1.0-SNAPSHOT</version>
+      <version>1.1.1-SNAPSHOT</version>
       <scope>test</scope>
     </dependency>
   </dependencies>
index d28bc5d..d9989d1 100644 (file)
@@ -24,6 +24,8 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import io.netty.handler.ssl.SslContext;
+import javax.net.ssl.SSLException;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.DmaapConsumerConfiguration;
@@ -40,6 +42,7 @@ class DMaaPReactiveWebClientFactoryTest {
     private static final String TRUST_STORE = "trustStore";
     private static final String TRUST_STORE_PASS = "trustStorePass";
     private SslFactory sslFactory = mock(SslFactory.class);
+    private SslContext dummySslContext = mock(SslContext.class);
     private DMaaPReactiveWebClientFactory webClientFactory = new DMaaPReactiveWebClientFactory(sslFactory);
 
     @Test
@@ -68,19 +71,22 @@ class DMaaPReactiveWebClientFactoryTest {
         verify(sslFactory).createSecureContext(KEY_STORE, KEY_STORE_PASS, TRUST_STORE, TRUST_STORE_PASS);
     }
 
-    private DmaapConsumerConfiguration givenDmaapConfigurationWithSslDisabled() {
+    private DmaapConsumerConfiguration givenDmaapConfigurationWithSslDisabled() throws SSLException {
         DmaapConsumerConfiguration dmaapConsumerConfiguration = mock(DmaapConsumerConfiguration.class);
         when(dmaapConsumerConfiguration.enableDmaapCertAuth()).thenReturn(false);
+        when(sslFactory.createInsecureContext()).thenReturn(dummySslContext);
         return dmaapConsumerConfiguration;
     }
 
-    private DmaapConsumerConfiguration givenDmaapConfigurationWithSslEnabled() {
+    private DmaapConsumerConfiguration givenDmaapConfigurationWithSslEnabled() throws SSLException {
         DmaapConsumerConfiguration dmaapConsumerConfiguration = mock(DmaapConsumerConfiguration.class);
         when(dmaapConsumerConfiguration.enableDmaapCertAuth()).thenReturn(true);
         when(dmaapConsumerConfiguration.keyStorePath()).thenReturn(KEY_STORE);
         when(dmaapConsumerConfiguration.keyStorePasswordPath()).thenReturn(KEY_STORE_PASS);
         when(dmaapConsumerConfiguration.trustStorePath()).thenReturn(TRUST_STORE);
         when(dmaapConsumerConfiguration.trustStorePasswordPath()).thenReturn(TRUST_STORE_PASS);
+        when(sslFactory.createSecureContext(KEY_STORE, KEY_STORE_PASS, TRUST_STORE, TRUST_STORE_PASS))
+                .thenReturn(dummySslContext);
         return dmaapConsumerConfiguration;
     }
 }
\ No newline at end of file
index 101e4f9..4272fa1 100644 (file)
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.onap.dcaegen2.services</groupId>
     <artifactId>sdk</artifactId>
-    <version>1.1.0-SNAPSHOT</version>
+    <version>1.1.1-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
   <groupId>org.onap.dcaegen2.services.sdk</groupId>
   <artifactId>dcaegen2-services-sdk-rest-services</artifactId>
-  <version>1.1.0-SNAPSHOT</version>
+  <version>1.1.1-SNAPSHOT</version>
 
   <name>dcaegen2-services-sdk-rest-services</name>
   <description>Common SDK repo for all DCAE Services (R4)</description>
index e7da3c1..9c4412a 100644 (file)
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.onap.dcaegen2.services</groupId>
     <artifactId>sdk</artifactId>
-    <version>1.0.0-SNAPSHOT</version>
+    <version>1.1.1-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/services/hv-ves-client/pom.xml b/services/hv-ves-client/pom.xml
new file mode 100644 (file)
index 0000000..b2c5fcc
--- /dev/null
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ ============LICENSE_START=======================================================
+  ~ DCAEGEN2-SERVICES-SDK
+  ~ ================================================================================
+  ~ Copyright (C) 2019 Nokia
+  ~ ================================================================================
+  ~ 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=========================================================
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.onap.dcaegen2.services.sdk</groupId>
+    <artifactId>dcaegen2-services-sdk-services</artifactId>
+    <version>1.1.1-SNAPSHOT</version>
+    <relativePath>..</relativePath>
+  </parent>
+
+  <artifactId>dcaegen2-services-sdk-services-hvvesclient</artifactId>
+  <version>1.1.1-SNAPSHOT</version>
+
+  <name>High Volume VES Collector Client</name>
+  <description></description>
+  <packaging>pom</packaging>
+
+  <modules>
+    <module>producer</module>
+  </modules>
+</project>
diff --git a/services/hv-ves-client/producer/api/pom.xml b/services/hv-ves-client/producer/api/pom.xml
new file mode 100644 (file)
index 0000000..c779c75
--- /dev/null
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ ============LICENSE_START=======================================================
+  ~ DCAEGEN2-SERVICES-SDK
+  ~ ================================================================================
+  ~ Copyright (C) 2019 Nokia
+  ~ ================================================================================
+  ~ 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=========================================================
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.onap.dcaegen2.services.sdk</groupId>
+    <artifactId>hvvesclient-producer</artifactId>
+    <version>1.1.1-SNAPSHOT</version>
+    <relativePath>..</relativePath>
+  </parent>
+
+  <artifactId>hvvesclient-producer-api</artifactId>
+  <version>1.1.1-SNAPSHOT</version>
+
+  <name>High Volume VES Collector Client :: Producer :: API</name>
+  <description></description>
+  <packaging>jar</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.reactivestreams</groupId>
+      <artifactId>reactive-streams</artifactId>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/services/hv-ves-client/producer/api/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/api/HvVesProducer.java b/services/hv-ves-client/producer/api/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/api/HvVesProducer.java
new file mode 100644 (file)
index 0000000..e81fb13
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * ============LICENSE_START=======================================================
+ * DCAEGEN2-SERVICES-SDK
+ * ================================================================================
+ * Copyright (C) 2019 Nokia. 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.sdk.services.hvves.client.producer.api;
+
+import org.reactivestreams.Publisher;
+
+/**
+ * @author <a href="mailto:piotr.jaszczyk@nokia.com">Piotr Jaszczyk</a>
+ * @since January 2019
+ */
+public interface HvVesProducer {
+    Publisher<Void> send(Publisher<String> messages);
+}
diff --git a/services/hv-ves-client/producer/api/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/api/HvVesProducerFactory.java b/services/hv-ves-client/producer/api/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/api/HvVesProducerFactory.java
new file mode 100644 (file)
index 0000000..a13de42
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * ============LICENSE_START=======================================================
+ * DCAEGEN2-SERVICES-SDK
+ * ================================================================================
+ * Copyright (C) 2019 Nokia. 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.sdk.services.hvves.client.producer.api;
+
+import java.util.Iterator;
+import java.util.ServiceLoader;
+
+/**
+ * @author <a href="mailto:piotr.jaszczyk@nokia.com">Piotr Jaszczyk</a>
+ * @since January 2019
+ */
+public interface HvVesProducerFactory {
+    HvVesProducer create();
+
+    static HvVesProducerFactory getInstance() {
+        Iterator<HvVesProducerFactory> instances = ServiceLoader.load(HvVesProducerFactory.class).iterator();
+        if (instances.hasNext()) {
+            return instances.next();
+        } else {
+            throw new IllegalStateException("No ProducerFactory instances was configured. Are you sure you have runtime dependency on implementation module?");
+        }
+    }
+}
diff --git a/services/hv-ves-client/producer/api/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/api/package-info.java b/services/hv-ves-client/producer/api/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/api/package-info.java
new file mode 100644 (file)
index 0000000..490544d
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+ * ============LICENSE_START=======================================================
+ * DCAEGEN2-SERVICES-SDK
+ * ================================================================================
+ * Copyright (C) 2019 Nokia. 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=========================================================
+ */
+
+/**
+ * @author <a href="mailto:piotr.jaszczyk@nokia.com">Piotr Jaszczyk</a>
+ * @since January 2019
+ */
+package org.onap.dcaegen2.services.sdk.services.hvves.client.producer.api;
diff --git a/services/hv-ves-client/producer/ct/pom.xml b/services/hv-ves-client/producer/ct/pom.xml
new file mode 100644 (file)
index 0000000..dd58613
--- /dev/null
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ ============LICENSE_START=======================================================
+  ~ DCAEGEN2-SERVICES-SDK
+  ~ ================================================================================
+  ~ Copyright (C) 2019 Nokia
+  ~ ================================================================================
+  ~ 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=========================================================
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.onap.dcaegen2.services.sdk</groupId>
+    <artifactId>hvvesclient-producer</artifactId>
+    <version>1.1.1-SNAPSHOT</version>
+    <relativePath>..</relativePath>
+  </parent>
+
+  <artifactId>hvvesclient-producer-ct</artifactId>
+  <version>1.1.1-SNAPSHOT</version>
+
+  <name>High Volume VES Collector Client :: Producer :: Component Tests</name>
+  <description></description>
+  <packaging>jar</packaging>
+
+
+  <dependencies>
+    <dependency>
+      <groupId>org.onap.dcaegen2.services.sdk</groupId>
+      <artifactId>hvvesclient-producer-api</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.onap.dcaegen2.services.sdk</groupId>
+      <artifactId>hvvesclient-producer-impl</artifactId>
+      <version>${project.version}</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter-engine</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.projectreactor</groupId>
+      <artifactId>reactor-test</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+</project>
diff --git a/services/hv-ves-client/producer/ct/src/test/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/ct/HvVesHvVesProducerIT.java b/services/hv-ves-client/producer/ct/src/test/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/ct/HvVesHvVesProducerIT.java
new file mode 100644 (file)
index 0000000..232d202
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * ============LICENSE_START=======================================================
+ * DCAEGEN2-SERVICES-SDK
+ * ================================================================================
+ * Copyright (C) 2019 Nokia. 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.sdk.services.hvves.client.producer.ct;
+
+import org.junit.jupiter.api.Test;
+import org.onap.dcaegen2.services.sdk.services.hvves.client.producer.api.HvVesProducer;
+import org.onap.dcaegen2.services.sdk.services.hvves.client.producer.api.HvVesProducerFactory;
+import org.reactivestreams.Publisher;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+import reactor.test.StepVerifier;
+import reactor.test.StepVerifier.FirstStep;
+
+/**
+ * @author <a href="mailto:piotr.jaszczyk@nokia.com">Piotr Jaszczyk</a>
+ * @since January 2019
+ */
+public class HvVesHvVesProducerIT {
+
+    @Test
+    public void todo() {
+        final HvVesProducer cut = HvVesProducerFactory.getInstance().create();
+
+        final Publisher<Void> result = cut.send(Flux.just("hello", "world"));
+
+        StepVerifier.create(result).verifyComplete();
+    }
+}
diff --git a/services/hv-ves-client/producer/impl/pom.xml b/services/hv-ves-client/producer/impl/pom.xml
new file mode 100644 (file)
index 0000000..7703fcd
--- /dev/null
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ ============LICENSE_START=======================================================
+  ~ DCAEGEN2-SERVICES-SDK
+  ~ ================================================================================
+  ~ Copyright (C) 2019 Nokia
+  ~ ================================================================================
+  ~ 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=========================================================
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.onap.dcaegen2.services.sdk</groupId>
+    <artifactId>hvvesclient-producer</artifactId>
+    <version>1.1.1-SNAPSHOT</version>
+    <relativePath>..</relativePath>
+  </parent>
+
+  <artifactId>hvvesclient-producer-impl</artifactId>
+  <version>1.1.1-SNAPSHOT</version>
+
+  <name>High Volume VES Collector Client :: Producer :: Implementation</name>
+  <description></description>
+  <packaging>jar</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.onap.dcaegen2.services.sdk</groupId>
+      <artifactId>hvvesclient-producer-api</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>io.projectreactor.netty</groupId>
+      <artifactId>reactor-netty</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/services/hv-ves-client/producer/impl/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/impl/HvVesProducerFactoryImpl.java b/services/hv-ves-client/producer/impl/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/impl/HvVesProducerFactoryImpl.java
new file mode 100644 (file)
index 0000000..d0a5358
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ * ============LICENSE_START=======================================================
+ * DCAEGEN2-SERVICES-SDK
+ * ================================================================================
+ * Copyright (C) 2019 Nokia. 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.sdk.services.hvves.client.producer.impl;
+
+import org.onap.dcaegen2.services.sdk.services.hvves.client.producer.api.HvVesProducer;
+import org.onap.dcaegen2.services.sdk.services.hvves.client.producer.api.HvVesProducerFactory;
+
+/**
+ * @author <a href="mailto:piotr.jaszczyk@nokia.com">Piotr Jaszczyk</a>
+ * @since January 2019
+ */
+public class HvVesProducerFactoryImpl implements HvVesProducerFactory {
+
+    @Override
+    public HvVesProducer create() {
+        return new HvVesProducerImpl();
+    }
+}
diff --git a/services/hv-ves-client/producer/impl/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/impl/HvVesProducerImpl.java b/services/hv-ves-client/producer/impl/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/impl/HvVesProducerImpl.java
new file mode 100644 (file)
index 0000000..b9be56a
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * ============LICENSE_START=======================================================
+ * DCAEGEN2-SERVICES-SDK
+ * ================================================================================
+ * Copyright (C) 2019 Nokia. 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.sdk.services.hvves.client.producer.impl;
+
+import org.onap.dcaegen2.services.sdk.services.hvves.client.producer.api.HvVesProducer;
+import org.reactivestreams.Publisher;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+/**
+ * @author <a href="mailto:piotr.jaszczyk@nokia.com">Piotr Jaszczyk</a>
+ * @since January 2019
+ */
+public class HvVesProducerImpl implements HvVesProducer {
+    private static final Logger logger = LoggerFactory.getLogger(HvVesProducerImpl.class);
+
+    @Override
+    public Mono<Void> send(Publisher<String> messages) {
+        return Flux.from(messages)
+                .doOnNext(msg -> logger.info("Dummy sending: {}", msg))
+                .then();
+    }
+}
diff --git a/services/hv-ves-client/producer/impl/src/main/resources/META-INF/services/org.onap.dcaegen2.services.sdk.services.hvves.client.producer.api.HvVesProducerFactory b/services/hv-ves-client/producer/impl/src/main/resources/META-INF/services/org.onap.dcaegen2.services.sdk.services.hvves.client.producer.api.HvVesProducerFactory
new file mode 100644 (file)
index 0000000..d76ea2e
--- /dev/null
@@ -0,0 +1 @@
+org.onap.dcaegen2.services.sdk.services.hvves.client.producer.impl.HvVesProducerFactoryImpl
\ No newline at end of file
diff --git a/services/hv-ves-client/producer/pom.xml b/services/hv-ves-client/producer/pom.xml
new file mode 100644 (file)
index 0000000..89020fd
--- /dev/null
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ ============LICENSE_START=======================================================
+  ~ DCAEGEN2-SERVICES-SDK
+  ~ ================================================================================
+  ~ Copyright (C) 2019 Nokia
+  ~ ================================================================================
+  ~ 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=========================================================
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.onap.dcaegen2.services.sdk</groupId>
+    <artifactId>dcaegen2-services-sdk-services-hvvesclient</artifactId>
+    <version>1.1.1-SNAPSHOT</version>
+    <relativePath>..</relativePath>
+  </parent>
+
+  <artifactId>hvvesclient-producer</artifactId>
+  <version>1.1.1-SNAPSHOT</version>
+
+  <name>High Volume VES Collector Client :: Producer</name>
+  <description></description>
+  <packaging>pom</packaging>
+
+  <modules>
+    <module>api</module>
+    <module>impl</module>
+    <module>ct</module>
+  </modules>
+</project>
diff --git a/services/pom.xml b/services/pom.xml
new file mode 100644 (file)
index 0000000..d17da0d
--- /dev/null
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ ============LICENSE_START=======================================================
+  ~ DCAEGEN2-SERVICES-SDK
+  ~ ================================================================================
+  ~ Copyright (C) 2019 Nokia
+  ~ ================================================================================
+  ~ 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=========================================================
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.onap.dcaegen2.services</groupId>
+    <artifactId>sdk</artifactId>
+    <version>1.1.1-SNAPSHOT</version>
+    <relativePath>..</relativePath>
+  </parent>
+
+  <groupId>org.onap.dcaegen2.services.sdk</groupId>
+  <artifactId>dcaegen2-services-sdk-services</artifactId>
+  <version>1.1.1-SNAPSHOT</version>
+
+  <name>dcaegen2-services-sdk-services</name>
+  <description></description>
+  <packaging>pom</packaging>
+
+  <modules>
+    <module>hv-ves-client</module>
+  </modules>
+</project>
index 73415a7..11ad59d 100644 (file)
@@ -1,6 +1,6 @@
 major=1\r
 minor=1\r
-patch=0\r
+patch=1\r
 base_version=${major}.${minor}.${patch}\r
 release_version=${base_version}\r
 snapshot_version=${base_version}-SNAPSHOT\r