Already added flow control for tasks. 19/43019/9
authorwasala <przemyslaw.wasala@nokia.com>
Mon, 16 Apr 2018 10:59:26 +0000 (12:59 +0200)
committerwasala <przemyslaw.wasala@nokia.com>
Mon, 16 Apr 2018 12:54:35 +0000 (14:54 +0200)
*The next step will be get common model for all
request/response message based on HTTPClient implementation

Change-Id: I76af15ab06cae783b6cec5099510d7f97e9d65c2
Issue-ID: DCAEGEN2-445
Signed-off-by: wasala <przemyslaw.wasala@nokia.com>
18 files changed:
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/configuration/AppConfig.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/exceptions/PrhTaskException.java
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/AAIPublisherTask.java
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/AAIPublisherTaskImpl.java
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTask.java
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTaskImpl.java
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapPublisherTask.java
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapPublisherTaskImpl.java
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/ScheduledTasks.java
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/Task.java
prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/IT/ScheduledXmlContextITest.java
prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/configuration/PrhAppConfigTest.java
prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/AAIPublisherTaskSpy.java
prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTaskSpy.java
prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/DmaapProducerTaskSpy.java [moved from prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/DmaapPublisherTaskSpy.java with 72% similarity]
prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/ScheduleControllerSpy.java
prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/config/DmaapPublisherConfiguration.java [moved from prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/config/DmaapProducerConfiguration.java with 79% similarity]

index 1b530e5..d6ca423 100644 (file)
@@ -21,7 +21,7 @@ package org.onap.dcaegen2.services.prh.configuration;
 
 import org.onap.dcaegen2.services.config.AAIHttpClientConfiguration;
 import org.onap.dcaegen2.services.config.DmaapConsumerConfiguration;
-import org.onap.dcaegen2.services.config.DmaapProducerConfiguration;
+import org.onap.dcaegen2.services.config.DmaapPublisherConfiguration;
 
 /**
  * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 4/9/18
@@ -32,6 +32,6 @@ public interface AppConfig {
 
     AAIHttpClientConfiguration getAAIHttpClientConfiguration();
 
-    DmaapProducerConfiguration getDmaapProducerConfiguration();
+    DmaapPublisherConfiguration getDmaapPublisherConfiguration();
 
 }
index 19fcb8b..37b17f6 100644 (file)
@@ -37,10 +37,10 @@ import java.util.Optional;
 import javax.validation.constraints.NotEmpty;
 import org.onap.dcaegen2.services.config.AAIHttpClientConfiguration;
 import org.onap.dcaegen2.services.config.DmaapConsumerConfiguration;
-import org.onap.dcaegen2.services.config.DmaapProducerConfiguration;
+import org.onap.dcaegen2.services.config.DmaapPublisherConfiguration;
 import org.onap.dcaegen2.services.config.ImmutableAAIHttpClientConfiguration;
 import org.onap.dcaegen2.services.config.ImmutableDmaapConsumerConfiguration;
-import org.onap.dcaegen2.services.config.ImmutableDmaapProducerConfiguration;
+import org.onap.dcaegen2.services.config.ImmutableDmaapPublisherConfiguration;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -65,11 +65,11 @@ public class PrhAppConfig implements AppConfig {
     private static final Logger logger = LoggerFactory.getLogger(PrhAppConfig.class);
     private static final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss");
 
-    private ImmutableAAIHttpClientConfiguration immutableAAIHttpClientConfiguration;
+    private AAIHttpClientConfiguration aaiHttpClientConfiguration;
 
-    private ImmutableDmaapConsumerConfiguration immutableDmaapConsumerConfiguration;
+    private DmaapConsumerConfiguration dmaapConsumerConfiguration;
 
-    private ImmutableDmaapProducerConfiguration immutableDmaapProducerConfiguration;
+    private DmaapPublisherConfiguration dmaapPublisherConfiguration;
 
     @NotEmpty
     private String filepath;
@@ -81,16 +81,16 @@ public class PrhAppConfig implements AppConfig {
         try (InputStream inputStream = getInputStream(filepath)) {
             ObjectNode root = (ObjectNode) jsonObjectMapper.readTree(inputStream);
             jsonNode = Optional.ofNullable(root.get(CONFIG).get(AAI).get(AAI_CONFIG)).orElse(NullNode.getInstance());
-            immutableAAIHttpClientConfiguration = jsonObjectMapper
+            aaiHttpClientConfiguration = jsonObjectMapper
                 .treeToValue(jsonNode, ImmutableAAIHttpClientConfiguration.class);
             jsonNode = Optional.ofNullable(root.get(CONFIG).get(DMAAP).get(DMAAP_CONSUMER))
                 .orElse(NullNode.getInstance());
-            immutableDmaapConsumerConfiguration = jsonObjectMapper
+            dmaapConsumerConfiguration = jsonObjectMapper
                 .treeToValue(jsonNode, ImmutableDmaapConsumerConfiguration.class);
             jsonNode = Optional.ofNullable(root.get(CONFIG).get(DMAAP).get(DMAAP_PRODUCER))
                 .orElse(NullNode.getInstance());
-            immutableDmaapProducerConfiguration = jsonObjectMapper
-                .treeToValue(jsonNode, ImmutableDmaapProducerConfiguration.class);
+            dmaapPublisherConfiguration = jsonObjectMapper
+                .treeToValue(jsonNode, ImmutableDmaapPublisherConfiguration.class);
         } catch (FileNotFoundException e) {
             logger
                 .error(
@@ -132,16 +132,16 @@ public class PrhAppConfig implements AppConfig {
 
     @Override
     public DmaapConsumerConfiguration getDmaapConsumerConfiguration() {
-        return immutableDmaapConsumerConfiguration;
+        return dmaapConsumerConfiguration;
     }
 
     @Override
     public AAIHttpClientConfiguration getAAIHttpClientConfiguration() {
-        return immutableAAIHttpClientConfiguration;
+        return aaiHttpClientConfiguration;
     }
 
     @Override
-    public DmaapProducerConfiguration getDmaapProducerConfiguration() {
-        return immutableDmaapProducerConfiguration;
+    public DmaapPublisherConfiguration getDmaapPublisherConfiguration() {
+        return dmaapPublisherConfiguration;
     }
 }
\ No newline at end of file
index 646ca7e..3319360 100644 (file)
@@ -24,7 +24,7 @@ package org.onap.dcaegen2.services.prh.exceptions;
  */
 public class PrhTaskException extends Exception {
 
-    public PrhTaskException(String message) {
+    PrhTaskException(String message) {
         super(message);
     }
 }
index 87a7081..8ea4ac8 100644 (file)
@@ -24,7 +24,9 @@ import org.onap.dcaegen2.services.prh.exceptions.AAINotFoundException;
 /**
  * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 4/13/18
  */
-public abstract class AAIPublisherTask implements Task {
+public abstract class AAIPublisherTask<T> extends Task {
 
     protected abstract void publish() throws AAINotFoundException;
+
+    protected abstract T resolveConfiguration();
 }
index d4efea4..c524b99 100644 (file)
@@ -21,40 +21,54 @@ package org.onap.dcaegen2.services.prh.tasks;
 
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
+import org.onap.dcaegen2.services.config.AAIHttpClientConfiguration;
 import org.onap.dcaegen2.services.prh.configuration.AppConfig;
+import org.onap.dcaegen2.services.prh.exceptions.AAINotFoundException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
 
 /**
  * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 4/13/18
  */
 @Component
-public class AAIPublisherTaskImpl extends AAIPublisherTask {
+public class AAIPublisherTaskImpl extends AAIPublisherTask<AAIHttpClientConfiguration> {
 
     private static final Logger logger = LoggerFactory.getLogger(ScheduledTasks.class);
     private static final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss");
 
+    private final AppConfig prhAppConfig;
+
     @Autowired
-    public AppConfig prhAppConfig;
+    public AAIPublisherTaskImpl(AppConfig prhAppConfig) {
+        this.prhAppConfig = prhAppConfig;
+
+    }
 
     @Override
-    protected void publish() {
+    protected void publish() throws AAINotFoundException {
         logger.debug("Start task DmaapConsumerTask::publish() :: Execution Time - {}", dateTimeFormatter.format(
             LocalDateTime.now()));
-
         logger.debug("End task DmaapConsumerTask::publish() :: Execution Time - {}", dateTimeFormatter.format(
             LocalDateTime.now()));
+
     }
 
     @Override
-    public void execute() {
+    public ResponseEntity execute(Object object) throws AAINotFoundException {
         logger.debug("Start task AAIPublisherTaskImpl::execute() :: Execution Time - {}", dateTimeFormatter.format(
             LocalDateTime.now()));
-
+        publish();
         logger.debug("End task AAIPublisherTaskImpl::execute() :: Execution Time - {}", dateTimeFormatter.format(
             LocalDateTime.now()));
+        return null;
+    }
 
+    @Override
+    protected AAIHttpClientConfiguration resolveConfiguration() {
+        return prhAppConfig.getAAIHttpClientConfiguration();
     }
+
 }
index 4103166..68a79e0 100644 (file)
@@ -24,7 +24,9 @@ import org.onap.dcaegen2.services.prh.exceptions.DmaapNotFoundException;
 /**
  * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 4/13/18
  */
-public abstract class DmaapConsumerTask implements Task {
+public abstract class DmaapConsumerTask<T> extends Task {
 
     protected abstract void consume() throws DmaapNotFoundException;
+
+    protected abstract T resolveConfiguration();
 }
index 57f9777..1ee85d0 100644 (file)
@@ -21,41 +21,53 @@ package org.onap.dcaegen2.services.prh.tasks;
 
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
+import org.onap.dcaegen2.services.config.DmaapConsumerConfiguration;
 import org.onap.dcaegen2.services.prh.configuration.AppConfig;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
 
 /**
  * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 3/23/18
  */
 @Component
-public class DmaapConsumerTaskImpl extends DmaapConsumerTask {
+public class DmaapConsumerTaskImpl extends DmaapConsumerTask<DmaapConsumerConfiguration> {
 
 
     private static final Logger logger = LoggerFactory.getLogger(DmaapConsumerTaskImpl.class);
     private static final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss");
 
+    private final AppConfig prhAppConfig;
+
     @Autowired
-    public AppConfig prhAppConfig;
+    public DmaapConsumerTaskImpl(AppConfig prhAppConfig) {
+        this.prhAppConfig = prhAppConfig;
+    }
 
     @Override
-    public void execute() {
-        logger.debug("Start task DmaapConsumerTask::execute() :: Execution Time - {}", dateTimeFormatter.format(
+    protected void consume() {
+        logger.debug("Start task DmaapConsumerTask::consume() :: Execution Time - {}", dateTimeFormatter.format(
             LocalDateTime.now()));
 
-        logger.debug("End task DmaapConsumerTask::execute() :: Execution Time - {}",
+        logger.debug("End task DmaapConsumerTask::consume() :: Execution Time - {}",
             dateTimeFormatter.format(LocalDateTime.now()));
+
     }
 
     @Override
-    protected void consume() {
-        logger.debug("Start task DmaapConsumerTask::consume() :: Execution Time - {}", dateTimeFormatter.format(
+    public ResponseEntity execute(Object object) {
+        logger.debug("Start task DmaapConsumerTask::execute() :: Execution Time - {}", dateTimeFormatter.format(
             LocalDateTime.now()));
-
-        logger.debug("End task DmaapConsumerTask::consume() :: Execution Time - {}",
+        consume();
+        logger.debug("End task DmaapConsumerTask::execute() :: Execution Time - {}",
             dateTimeFormatter.format(LocalDateTime.now()));
+        return null;
+    }
 
+    @Override
+    protected DmaapConsumerConfiguration resolveConfiguration() {
+        return prhAppConfig.getDmaapConsumerConfiguration();
     }
 }
\ No newline at end of file
index d203c8c..239d36a 100644 (file)
@@ -24,8 +24,10 @@ import org.onap.dcaegen2.services.prh.exceptions.DmaapNotFoundException;
 /**
  * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 3/23/18
  */
-public abstract class DmaapPublisherTask implements Task {
+public abstract class DmaapPublisherTask<T> extends Task {
 
     protected abstract void publish() throws DmaapNotFoundException;
 
+    protected abstract T resolveConfiguration();
+
 }
index 92eb875..b14d8d3 100644 (file)
@@ -21,39 +21,51 @@ package org.onap.dcaegen2.services.prh.tasks;
 
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
+import org.onap.dcaegen2.services.config.DmaapPublisherConfiguration;
 import org.onap.dcaegen2.services.prh.configuration.AppConfig;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
 
 /**
  * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 4/13/18
  */
 @Component
-public class DmaapPublisherTaskImpl extends DmaapPublisherTask {
+public class DmaapPublisherTaskImpl extends DmaapPublisherTask<DmaapPublisherConfiguration> {
 
     private static final Logger logger = LoggerFactory.getLogger(ScheduledTasks.class);
     private static final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss");
 
+    private final AppConfig prhAppConfig;
+
     @Autowired
-    public AppConfig prhAppConfig;
+    public DmaapPublisherTaskImpl(AppConfig prhAppConfig) {
+        this.prhAppConfig = prhAppConfig;
+    }
 
     @Override
-    public void execute() {
-        logger.debug("Start task DmaapPublisherTask::consume() :: Execution Time - {}", dateTimeFormatter.format(
+    protected void publish() {
+        logger.debug("Start task DmaapPublisherTask::publish() :: Execution Time - {}", dateTimeFormatter.format(
             LocalDateTime.now()));
 
-        logger.debug("End task DmaapPublisherTask::consume() :: Execution Time - {}",
+        logger.debug("End task DmaapPublisherTask::publish() :: Execution Time - {}",
             dateTimeFormatter.format(LocalDateTime.now()));
     }
 
     @Override
-    protected void publish() {
-        logger.debug("Start task DmaapPublisherTask::publish() :: Execution Time - {}", dateTimeFormatter.format(
+    public ResponseEntity execute(Object object) {
+        logger.debug("Start task DmaapPublisherTask::consume() :: Execution Time - {}", dateTimeFormatter.format(
             LocalDateTime.now()));
-
-        logger.debug("End task DmaapPublisherTask::publish() :: Execution Time - {}",
+        publish();
+        logger.debug("End task DmaapPublisherTask::consume() :: Execution Time - {}",
             dateTimeFormatter.format(LocalDateTime.now()));
+        return null;
+    }
+
+    @Override
+    protected DmaapPublisherConfiguration resolveConfiguration() {
+        return prhAppConfig.getDmaapPublisherConfiguration();
     }
 }
index 713f5d4..a9c53cc 100644 (file)
@@ -36,25 +36,24 @@ public class ScheduledTasks {
     private static final Logger logger = LoggerFactory.getLogger(ScheduledTasks.class);
     private static final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss");
 
-    private final DmaapConsumerTask dmaapConsumerTask;
-    private final DmaapPublisherTask dmaapPublisherTask;
-    private final AAIPublisherTask aaiPublisherTask;
+    private final Task dmaapConsumerTask;
+    private final Task dmaapProducerTask;
+    private final Task aaiPublisherTask;
 
     @Autowired
     public ScheduledTasks(DmaapConsumerTask dmaapConsumerTask, DmaapPublisherTask dmaapPublisherTask,
         AAIPublisherTask aaiPublisherTask) {
         this.dmaapConsumerTask = dmaapConsumerTask;
-        this.dmaapPublisherTask = dmaapPublisherTask;
+        this.dmaapProducerTask = dmaapPublisherTask;
         this.aaiPublisherTask = aaiPublisherTask;
     }
 
     public void scheduleMainPrhEventTask() {
         logger.debug("Task scheduledTaskAskingDMaaPOfConsumeEvent() :: Execution Time - {}", dateTimeFormatter.format(
             LocalDateTime.now()));
+        setTaskExecutionFlow();
         try {
-            dmaapConsumerTask.execute();
-            dmaapPublisherTask.execute();
-            aaiPublisherTask.execute();
+            dmaapConsumerTask.receiveRequest(null);
         } catch (PrhTaskException e) {
             logger
                 .error("Task scheduledTaskAskingDMaaPOfConsumeEvent()::PrhTaskException :: Execution Time - {}:{}",
@@ -63,4 +62,9 @@ public class ScheduledTasks {
         }
     }
 
+    private void setTaskExecutionFlow() {
+        dmaapConsumerTask.setNext(aaiPublisherTask);
+        aaiPublisherTask.setNext(dmaapProducerTask);
+    }
+
 }
index 1bf8f6d..f5e8b39 100644 (file)
 package org.onap.dcaegen2.services.prh.tasks;
 
 import org.onap.dcaegen2.services.prh.exceptions.PrhTaskException;
+import org.springframework.http.ResponseEntity;
 
 /**
  * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 4/13/18
  */
 
-@FunctionalInterface
-public interface Task {
 
-    void execute() throws PrhTaskException;
+public abstract class Task {
+
+    private Task taskProcess;
+
+    public void setNext(Task task) {
+        this.taskProcess = task;
+    }
+
+    public void receiveRequest(Object body) throws PrhTaskException {
+        Object responseEntity = execute(body);
+        if (taskProcess != null) {
+            taskProcess.receiveRequest(responseEntity);
+        }
+    }
+
+    abstract ResponseEntity execute(Object object) throws PrhTaskException;
+
+
 }
index 0c92da7..c8ed88d 100644 (file)
@@ -61,7 +61,7 @@ class ScheduledXmlContextITest extends AbstractTestNGSpringContextTests {
     }
 
     private void verifyDmaapConsumerTask() {
-        verify(scheduledTask, atLeast(2)).scheduleMainPrhEventTask();
+        verify(scheduledTask, atLeast(1)).scheduleMainPrhEventTask();
     }
 }
 
index a6361cf..26be513 100644 (file)
@@ -99,7 +99,7 @@ class PrhAppConfigTest {
         verify(prhAppConfig, times(1)).initFileStreamReader();
         Assertions.assertNotNull(prhAppConfig.getAAIHttpClientConfiguration());
         Assertions.assertNotNull(prhAppConfig.getDmaapConsumerConfiguration());
-        Assertions.assertNotNull(prhAppConfig.getDmaapProducerConfiguration());
+        Assertions.assertNotNull(prhAppConfig.getDmaapPublisherConfiguration());
     }
 
     @Test
@@ -120,7 +120,7 @@ class PrhAppConfigTest {
         verify(prhAppConfig, times(1)).initFileStreamReader();
         Assertions.assertNull(prhAppConfig.getAAIHttpClientConfiguration());
         Assertions.assertNull(prhAppConfig.getDmaapConsumerConfiguration());
-        Assertions.assertNull(prhAppConfig.getDmaapProducerConfiguration());
+        Assertions.assertNull(prhAppConfig.getDmaapPublisherConfiguration());
 
     }
 
@@ -144,7 +144,7 @@ class PrhAppConfigTest {
         verify(prhAppConfig, times(1)).initFileStreamReader();
         Assertions.assertNotNull(prhAppConfig.getAAIHttpClientConfiguration());
         Assertions.assertNotNull(prhAppConfig.getDmaapConsumerConfiguration());
-        Assertions.assertNull(prhAppConfig.getDmaapProducerConfiguration());
+        Assertions.assertNull(prhAppConfig.getDmaapPublisherConfiguration());
 
     }
 }
\ No newline at end of file
index 56565ca..c27c881 100644 (file)
  */
 package org.onap.dcaegen2.services.prh.tasks;
 
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
 
+import org.onap.dcaegen2.services.config.AAIHttpClientConfiguration;
+import org.onap.dcaegen2.services.prh.configuration.AppConfig;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Primary;
@@ -34,6 +38,8 @@ public class AAIPublisherTaskSpy {
     @Bean
     @Primary
     public AAIPublisherTask registerSimpleAAIPublisherTask() {
-        return spy(new AAIPublisherTaskImpl());
+        AppConfig appConfig = mock(AppConfig.class);
+        when(appConfig.getAAIHttpClientConfiguration()).thenReturn(mock(AAIHttpClientConfiguration.class));
+        return spy(new AAIPublisherTaskImpl(appConfig));
     }
 }
index d41da16..c2934d4 100644 (file)
  */
 package org.onap.dcaegen2.services.prh.tasks;
 
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
 
+import org.onap.dcaegen2.services.config.DmaapConsumerConfiguration;
+import org.onap.dcaegen2.services.prh.configuration.AppConfig;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Primary;
@@ -33,7 +37,9 @@ public class DmaapConsumerTaskSpy {
 
     @Bean
     @Primary
-    public DmaapConsumerTaskImpl registerSimpleDmaapConsumerTask() {
-        return spy(new DmaapConsumerTaskImpl());
+    public Task registerSimpleDmaapConsumerTask() {
+        AppConfig appConfig = mock(AppConfig.class);
+        when(appConfig.getDmaapConsumerConfiguration()).thenReturn(mock(DmaapConsumerConfiguration.class));
+        return spy(new DmaapConsumerTaskImpl(appConfig));
     }
 }
  */
 package org.onap.dcaegen2.services.prh.tasks;
 
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
 
+import org.onap.dcaegen2.services.config.DmaapPublisherConfiguration;
+import org.onap.dcaegen2.services.prh.configuration.AppConfig;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Primary;
@@ -29,12 +33,14 @@ import org.springframework.context.annotation.Primary;
  * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 4/13/18
  */
 @Configuration
-public class DmaapPublisherTaskSpy {
+public class DmaapProducerTaskSpy {
 
 
     @Bean
     @Primary
-    public DmaapPublisherTaskImpl registerSimpleDmaapPublisherTask() {
-        return spy(new DmaapPublisherTaskImpl());
+    public Task registerSimpleDmaapPublisherTask() {
+        AppConfig appConfig = mock(AppConfig.class);
+        when(appConfig.getDmaapPublisherConfiguration()).thenReturn(mock(DmaapPublisherConfiguration.class));
+        return spy(new DmaapPublisherTaskImpl(appConfig));
     }
 }
index 0b5f969..2d599b2 100644 (file)
@@ -22,7 +22,6 @@ package org.onap.dcaegen2.services.prh.tasks;
 import static org.mockito.Mockito.spy;
 
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Primary;
@@ -29,18 +29,18 @@ import org.springframework.stereotype.Component;
 @Component
 @Value.Immutable(prehash = true)
 @Value.Style(builder = "new")
-@JsonDeserialize(builder = ImmutableDmaapProducerConfiguration.Builder.class)
-public abstract class DmaapProducerConfiguration implements DmaapCustomConfig {
+@JsonDeserialize(builder = ImmutableDmaapPublisherConfiguration.Builder.class)
+public abstract class DmaapPublisherConfiguration implements DmaapCustomConfig {
 
     private static final long serialVersionUID = 1L;
 
     interface Builder extends
-        DmaapCustomConfig.Builder<DmaapProducerConfiguration, DmaapProducerConfiguration.Builder> {
+        DmaapCustomConfig.Builder<DmaapPublisherConfiguration, DmaapPublisherConfiguration.Builder> {
 
     }
 
-    public static DmaapProducerConfiguration.Builder builder() {
-        return ImmutableDmaapProducerConfiguration.builder();
+    public static DmaapPublisherConfiguration.Builder builder() {
+        return ImmutableDmaapPublisherConfiguration.builder();
     }