Extracted high abstraction for tasks 07/42707/5
authorwasala <przemyslaw.wasala@nokia.com>
Fri, 13 Apr 2018 12:03:26 +0000 (14:03 +0200)
committerPrzemyslaw Wasala <przemyslaw.wasala@nokia.com>
Fri, 13 Apr 2018 12:34:10 +0000 (12:34 +0000)
*First of all, all tasks were defined as
implementation.

*All tasks class have been injected into spring container.

Change-Id: I00337b49ed1de3f1b8cadf64f774f19377ae349e
Issue-ID: DCAEGEN2-443
Signed-off-by: wasala <przemyslaw.wasala@nokia.com>
18 files changed:
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/controllers/ScheduleController.java
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/exceptions/AAINotFoundException.java
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/exceptions/DmaapNotFoundException.java [new file with mode: 0644]
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/exceptions/PrhTaskException.java [new file with mode: 0644]
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/AAIPublisherTask.java [moved from prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapTask.java with 88% similarity]
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/AAIPublisherTaskImpl.java [new file with mode: 0644]
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 [new file with mode: 0644]
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapPublisherTask.java [new file with mode: 0644]
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapPublisherTaskImpl.java [new file with mode: 0644]
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/ScheduledTasks.java [moved from prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/ScheduledTask.java with 73% similarity]
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/Task.java [new file with mode: 0644]
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/tasks/AAIPublisherTaskSpy.java [new file with mode: 0644]
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/DmaapPublisherTaskSpy.java [new file with mode: 0644]
prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/ScheduleControllerSpy.java

index 57335ef..19fcb8b 100644 (file)
@@ -1,4 +1,4 @@
-/*-
+/*
  * ============LICENSE_START=======================================================
  * PNF-REGISTRATION-HANDLER
  * ================================================================================
index a073963..99516c4 100644 (file)
@@ -20,7 +20,7 @@
 package org.onap.dcaegen2.services.prh.controllers;
 
 import java.util.concurrent.ScheduledFuture;
-import org.onap.dcaegen2.services.prh.tasks.ScheduledTask;
+import org.onap.dcaegen2.services.prh.tasks.ScheduledTasks;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -40,12 +40,12 @@ public class ScheduleController {
     private static final int SCHEDULING_DELAY = 20000;
 
     private final TaskScheduler taskScheduler;
-    private final ScheduledTask scheduledTask;
+    private final ScheduledTasks scheduledTask;
 
     private ScheduledFuture<?> scheduledFuture;
 
     @Autowired
-    public ScheduleController(TaskScheduler taskScheduler, ScheduledTask scheduledTask) {
+    public ScheduleController(TaskScheduler taskScheduler, ScheduledTasks scheduledTask) {
         this.taskScheduler = taskScheduler;
         this.scheduledTask = scheduledTask;
     }
@@ -54,7 +54,7 @@ public class ScheduleController {
     @RequestMapping(value = "preferences", method = RequestMethod.PUT)
     public ResponseEntity<Void> startTask() {
         scheduledFuture = taskScheduler
-            .scheduleWithFixedDelay(scheduledTask::scheduledTaskAskingDMaaPOfConsumeEvent, SCHEDULING_DELAY);
+            .scheduleWithFixedDelay(scheduledTask::scheduleMainPrhEventTask, SCHEDULING_DELAY);
         return new ResponseEntity<>(HttpStatus.OK);
     }
 
index e54d158..a01abc5 100644 (file)
@@ -22,7 +22,7 @@ package org.onap.dcaegen2.services.prh.exceptions;
 /**
  * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 3/23/18
  */
-public class AAINotFoundException extends Exception {
+public class AAINotFoundException extends PrhTaskException {
 
     public AAINotFoundException(String message) {
         super(message);
diff --git a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/exceptions/DmaapNotFoundException.java b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/exceptions/DmaapNotFoundException.java
new file mode 100644 (file)
index 0000000..af22284
--- /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.prh.exceptions;
+
+/**
+ * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 4/13/18
+ */
+public class DmaapNotFoundException extends PrhTaskException {
+
+    public DmaapNotFoundException(String message) {
+        super(message);
+    }
+}
diff --git a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/exceptions/PrhTaskException.java b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/exceptions/PrhTaskException.java
new file mode 100644 (file)
index 0000000..646ca7e
--- /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.prh.exceptions;
+
+/**
+ * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 4/13/18
+ */
+public class PrhTaskException extends Exception {
+
+    public PrhTaskException(String message) {
+        super(message);
+    }
+}
@@ -1,4 +1,4 @@
-/*-
+/*
  * ============LICENSE_START=======================================================
  * PNF-REGISTRATION-HANDLER
  * ================================================================================
@@ -22,11 +22,9 @@ package org.onap.dcaegen2.services.prh.tasks;
 import org.onap.dcaegen2.services.prh.exceptions.AAINotFoundException;
 
 /**
- * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 3/23/18
+ * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 4/13/18
  */
-@FunctionalInterface
-public interface DmaapTask {
-
-    void execute() throws AAINotFoundException;
+public abstract class AAIPublisherTask implements Task {
 
+    protected abstract void publish() throws AAINotFoundException;
 }
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
new file mode 100644 (file)
index 0000000..d4efea4
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * ============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.prh.tasks;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+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.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 {
+
+    private static final Logger logger = LoggerFactory.getLogger(ScheduledTasks.class);
+    private static final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss");
+
+    @Autowired
+    public AppConfig prhAppConfig;
+
+    @Override
+    protected void publish() {
+        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() {
+        logger.debug("Start task AAIPublisherTaskImpl::execute() :: Execution Time - {}", dateTimeFormatter.format(
+            LocalDateTime.now()));
+
+        logger.debug("End task AAIPublisherTaskImpl::execute() :: Execution Time - {}", dateTimeFormatter.format(
+            LocalDateTime.now()));
+
+    }
+}
index 2dc9b73..4103166 100644 (file)
@@ -1,6 +1,6 @@
-/*-
+/*
  * ============LICENSE_START=======================================================
- * PNF-REGISTRATION-HANDLER
+ * PROJECT
  * ================================================================================
  * Copyright (C) 2018 NOKIA Intellectual Property. All rights reserved.
  * ================================================================================
  */
 package org.onap.dcaegen2.services.prh.tasks;
 
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-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.stereotype.Component;
+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
+ * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 4/13/18
  */
-@Component
-public class DmaapConsumerTask implements DmaapTask {
+public abstract class DmaapConsumerTask implements Task {
 
-
-    private static final Logger logger = LoggerFactory.getLogger(DmaapConsumerTask.class);
-    private static final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss");
-
-    @Autowired
-    public AppConfig prhAppConfig;
-
-    @Override
-    public void execute() {
-
-        logger.debug("Start task DmaapConsumerTask::execute() :: Execution Time - {}", dateTimeFormatter.format(
-            LocalDateTime.now()));
-
-        logger.debug("End task DmaapConsumerTask::execute() :: Execution Time - {}",
-            dateTimeFormatter.format(LocalDateTime.now()));
-    }
-}
\ No newline at end of file
+    protected abstract void consume() throws DmaapNotFoundException;
+}
diff --git a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTaskImpl.java b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTaskImpl.java
new file mode 100644 (file)
index 0000000..57f9777
--- /dev/null
@@ -0,0 +1,61 @@
+/*-
+ * ============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.prh.tasks;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+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.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 {
+
+
+    private static final Logger logger = LoggerFactory.getLogger(DmaapConsumerTaskImpl.class);
+    private static final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss");
+
+    @Autowired
+    public AppConfig prhAppConfig;
+
+    @Override
+    public void execute() {
+        logger.debug("Start task DmaapConsumerTask::execute() :: Execution Time - {}", dateTimeFormatter.format(
+            LocalDateTime.now()));
+
+        logger.debug("End task DmaapConsumerTask::execute() :: Execution Time - {}",
+            dateTimeFormatter.format(LocalDateTime.now()));
+    }
+
+    @Override
+    protected void consume() {
+        logger.debug("Start task DmaapConsumerTask::consume() :: Execution Time - {}", dateTimeFormatter.format(
+            LocalDateTime.now()));
+
+        logger.debug("End task DmaapConsumerTask::consume() :: Execution Time - {}",
+            dateTimeFormatter.format(LocalDateTime.now()));
+
+    }
+}
\ No newline at end of file
diff --git a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapPublisherTask.java b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapPublisherTask.java
new file mode 100644 (file)
index 0000000..d203c8c
--- /dev/null
@@ -0,0 +1,31 @@
+/*-
+ * ============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.prh.tasks;
+
+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 {
+
+    protected abstract void publish() throws DmaapNotFoundException;
+
+}
diff --git a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapPublisherTaskImpl.java b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapPublisherTaskImpl.java
new file mode 100644 (file)
index 0000000..92eb875
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * ============LICENSE_START=======================================================
+ * PROJECT
+ * ================================================================================
+ * 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.prh.tasks;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+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.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 {
+
+    private static final Logger logger = LoggerFactory.getLogger(ScheduledTasks.class);
+    private static final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss");
+
+    @Autowired
+    public AppConfig prhAppConfig;
+
+    @Override
+    public void execute() {
+        logger.debug("Start task DmaapPublisherTask::consume() :: Execution Time - {}", dateTimeFormatter.format(
+            LocalDateTime.now()));
+
+        logger.debug("End task DmaapPublisherTask::consume() :: Execution Time - {}",
+            dateTimeFormatter.format(LocalDateTime.now()));
+    }
+
+    @Override
+    protected void publish() {
+        logger.debug("Start task DmaapPublisherTask::publish() :: Execution Time - {}", dateTimeFormatter.format(
+            LocalDateTime.now()));
+
+        logger.debug("End task DmaapPublisherTask::publish() :: Execution Time - {}",
+            dateTimeFormatter.format(LocalDateTime.now()));
+    }
+}
@@ -21,7 +21,7 @@ package org.onap.dcaegen2.services.prh.tasks;
 
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
-import org.onap.dcaegen2.services.prh.exceptions.AAINotFoundException;
+import org.onap.dcaegen2.services.prh.exceptions.PrhTaskException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,26 +31,33 @@ 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 ScheduledTask {
+public class ScheduledTasks {
 
-    private static final Logger logger = LoggerFactory.getLogger(ScheduledTask.class);
+    private static final Logger logger = LoggerFactory.getLogger(ScheduledTasks.class);
     private static final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss");
 
-    private final DmaapTask dmaapConsumerTask;
+    private final DmaapConsumerTask dmaapConsumerTask;
+    private final DmaapPublisherTask dmaapPublisherTask;
+    private final AAIPublisherTask aaiPublisherTask;
 
     @Autowired
-    public ScheduledTask(DmaapTask dmaapConsumerTask) {
+    public ScheduledTasks(DmaapConsumerTask dmaapConsumerTask, DmaapPublisherTask dmaapPublisherTask,
+        AAIPublisherTask aaiPublisherTask) {
         this.dmaapConsumerTask = dmaapConsumerTask;
+        this.dmaapPublisherTask = dmaapPublisherTask;
+        this.aaiPublisherTask = aaiPublisherTask;
     }
 
-    public void scheduledTaskAskingDMaaPOfConsumeEvent() {
+    public void scheduleMainPrhEventTask() {
         logger.debug("Task scheduledTaskAskingDMaaPOfConsumeEvent() :: Execution Time - {}", dateTimeFormatter.format(
             LocalDateTime.now()));
         try {
             dmaapConsumerTask.execute();
-        } catch (AAINotFoundException e) {
+            dmaapPublisherTask.execute();
+            aaiPublisherTask.execute();
+        } catch (PrhTaskException e) {
             logger
-                .error("Task scheduledTaskAskingDMaaPOfConsumeEvent()::AAINotFoundException :: Execution Time - {}:{}",
+                .error("Task scheduledTaskAskingDMaaPOfConsumeEvent()::PrhTaskException :: Execution Time - {}:{}",
                     dateTimeFormatter.format(
                         LocalDateTime.now()), e);
         }
diff --git a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/Task.java b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/Task.java
new file mode 100644 (file)
index 0000000..1bf8f6d
--- /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.prh.tasks;
+
+import org.onap.dcaegen2.services.prh.exceptions.PrhTaskException;
+
+/**
+ * @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;
+}
index 9cc1793..0c92da7 100644 (file)
@@ -30,7 +30,7 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.onap.dcaegen2.services.prh.IT.junit5.mockito.MockitoExtension;
 import org.onap.dcaegen2.services.prh.configuration.PrhAppConfig;
-import org.onap.dcaegen2.services.prh.tasks.ScheduledTask;
+import org.onap.dcaegen2.services.prh.tasks.ScheduledTasks;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
@@ -52,7 +52,7 @@ class ScheduledXmlContextITest extends AbstractTestNGSpringContextTests {
     private static final int WAIT_FOR_SCHEDULING = 1;
 
     @Autowired
-    private ScheduledTask scheduledTask;
+    private ScheduledTasks scheduledTask;
 
     @Test
     void testScheduling() {
@@ -61,14 +61,13 @@ class ScheduledXmlContextITest extends AbstractTestNGSpringContextTests {
     }
 
     private void verifyDmaapConsumerTask() {
-        verify(scheduledTask, atLeast(2)).scheduledTaskAskingDMaaPOfConsumeEvent();
+        verify(scheduledTask, atLeast(2)).scheduleMainPrhEventTask();
     }
-
-
 }
 
 @Configuration
 class ServiceMockProvider {
+
     @Bean
     public PrhAppConfig getPrhAppConfig() {
         return mock(PrhAppConfig.class);
diff --git a/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/AAIPublisherTaskSpy.java b/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/AAIPublisherTaskSpy.java
new file mode 100644 (file)
index 0000000..56565ca
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * ============LICENSE_START=======================================================
+ * PROJECT
+ * ================================================================================
+ * 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.prh.tasks;
+
+import static org.mockito.Mockito.spy;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+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 AAIPublisherTaskSpy {
+
+    @Bean
+    @Primary
+    public AAIPublisherTask registerSimpleAAIPublisherTask() {
+        return spy(new AAIPublisherTaskImpl());
+    }
+}
index 1f5b858..d41da16 100644 (file)
 package org.onap.dcaegen2.services.prh.tasks;
 
 import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
 
-import org.junit.runners.Parameterized.UseParametersRunnerFactory;
-import org.onap.dcaegen2.services.prh.configuration.AppConfig;
-import org.onap.dcaegen2.services.prh.configuration.PrhAppConfig;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Primary;
@@ -38,7 +33,7 @@ public class DmaapConsumerTaskSpy {
 
     @Bean
     @Primary
-    public DmaapConsumerTask registerSimpleDmaapConsumerTask() {
-        return spy(new DmaapConsumerTask());
+    public DmaapConsumerTaskImpl registerSimpleDmaapConsumerTask() {
+        return spy(new DmaapConsumerTaskImpl());
     }
 }
diff --git a/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/DmaapPublisherTaskSpy.java b/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/DmaapPublisherTaskSpy.java
new file mode 100644 (file)
index 0000000..8bdc7a1
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * ============LICENSE_START=======================================================
+ * PROJECT
+ * ================================================================================
+ * 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.prh.tasks;
+
+import static org.mockito.Mockito.spy;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+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 {
+
+
+    @Bean
+    @Primary
+    public DmaapPublisherTaskImpl registerSimpleDmaapPublisherTask() {
+        return spy(new DmaapPublisherTaskImpl());
+    }
+}
index d497509..0b5f969 100644 (file)
@@ -22,6 +22,7 @@ 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;
@@ -32,12 +33,19 @@ import org.springframework.context.annotation.Primary;
 @Configuration
 public class ScheduleControllerSpy {
 
+
+    @Autowired
+    private DmaapConsumerTask dmaapConsumerTaskImplSpy;
+
+    @Autowired
+    private DmaapPublisherTask dmaapPublisherTaskImplSpy;
+
     @Autowired
-    private DmaapConsumerTask dmaapConsumerTaskSpy;
+    private AAIPublisherTask aaiPublisherTaskImplSpy;
 
     @Bean
     @Primary
-    public ScheduledTask registerSimpleDmaapConsumerTask() {
-        return spy(new ScheduledTask(dmaapConsumerTaskSpy));
+    public ScheduledTasks registerSimpleScheduledTask() {
+        return spy(new ScheduledTasks(dmaapConsumerTaskImplSpy, dmaapPublisherTaskImplSpy, aaiPublisherTaskImplSpy));
     }
 }