From 6930f1f6540273cbdfe325e5f77dcbb4960fd9f3 Mon Sep 17 00:00:00 2001 From: wasala Date: Thu, 5 Apr 2018 15:01:38 +0200 Subject: Add endpoint for load configuration(DMaaP, A&AI) Refactor from tests ppoint of view Change-Id: If747a499c70517a74bda6fbc895306271dc61d13 Issue-ID: DCAEGEN2-407 Signed-off-by: wasala --- .../org/onap/dcaegen2/services/prh/MainApp.java | 10 ++++ .../services/prh/config/ApplicationProperties.java | 27 --------- .../prh/controllers/ScheduleController.java | 67 ++++++++++++++++++++++ .../services/prh/tasks/DmaapConsumerTask.java | 3 +- .../dcaegen2/services/prh/tasks/ScheduledTask.java | 6 +- 5 files changed, 81 insertions(+), 32 deletions(-) delete mode 100644 prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/config/ApplicationProperties.java create mode 100644 prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/controllers/ScheduleController.java (limited to 'prh-app-server/src/main/java/org/onap') diff --git a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/MainApp.java b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/MainApp.java index 18db4082..9a1fec28 100644 --- a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/MainApp.java +++ b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/MainApp.java @@ -21,9 +21,12 @@ package org.onap.dcaegen2.services.prh; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.TaskScheduler; import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.concurrent.ConcurrentTaskScheduler; /** * @author Przemysław Wąsala on 3/23/18 @@ -33,7 +36,14 @@ import org.springframework.scheduling.annotation.EnableScheduling; @ComponentScan @EnableScheduling public class MainApp { + public static void main(String[] args) { SpringApplication.run(MainApp.class, args); } + + + @Bean + TaskScheduler taskScheduler() { + return new ConcurrentTaskScheduler(); + } } diff --git a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/config/ApplicationProperties.java b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/config/ApplicationProperties.java deleted file mode 100644 index 67d1c370..00000000 --- a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/config/ApplicationProperties.java +++ /dev/null @@ -1,27 +0,0 @@ -/*- - * ============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.config; - -/** - * @author Przemysław Wąsala on 4/3/18 - */ -public class ApplicationProperties { - -} diff --git a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/controllers/ScheduleController.java b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/controllers/ScheduleController.java new file mode 100644 index 00000000..a0739637 --- /dev/null +++ b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/controllers/ScheduleController.java @@ -0,0 +1,67 @@ +/*- + * ============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.controllers; + +import java.util.concurrent.ScheduledFuture; +import org.onap.dcaegen2.services.prh.tasks.ScheduledTask; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.scheduling.TaskScheduler; +import org.springframework.stereotype.Component; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +/** + * @author Przemysław Wąsala on 4/5/18 + */ +@Controller +@Component +public class ScheduleController { + + private static final int SCHEDULING_DELAY = 20000; + + private final TaskScheduler taskScheduler; + private final ScheduledTask scheduledTask; + + private ScheduledFuture scheduledFuture; + + @Autowired + public ScheduleController(TaskScheduler taskScheduler, ScheduledTask scheduledTask) { + this.taskScheduler = taskScheduler; + this.scheduledTask = scheduledTask; + } + + + @RequestMapping(value = "preferences", method = RequestMethod.PUT) + public ResponseEntity startTask() { + scheduledFuture = taskScheduler + .scheduleWithFixedDelay(scheduledTask::scheduledTaskAskingDMaaPOfConsumeEvent, SCHEDULING_DELAY); + return new ResponseEntity<>(HttpStatus.OK); + } + + @RequestMapping("stopPrh") + public ResponseEntity stopTask() { + scheduledFuture.cancel(false); + return new ResponseEntity<>(HttpStatus.OK); + } + +} diff --git a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTask.java b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTask.java index 706794f0..812f920c 100644 --- a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTask.java +++ b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTask.java @@ -31,14 +31,15 @@ import org.springframework.stereotype.Component; @Component public class DmaapConsumerTask implements DmaapTask { + private static final Logger logger = LoggerFactory.getLogger(DmaapConsumerTask.class); private static final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss"); @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())); } diff --git a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/ScheduledTask.java b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/ScheduledTask.java index 90c1466c..a8a0f0be 100644 --- a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/ScheduledTask.java +++ b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/ScheduledTask.java @@ -25,6 +25,7 @@ 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.scheduling.TaskScheduler; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -34,7 +35,6 @@ import org.springframework.stereotype.Component; @Component public class ScheduledTask { - private static final int SCHEDULING_DELAY = 1000; private static final Logger logger = LoggerFactory.getLogger(ScheduledTask.class); private static final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss"); @@ -45,8 +45,6 @@ public class ScheduledTask { this.dmaapConsumerTask = dmaapConsumerTask; } - - @Scheduled(fixedDelay = SCHEDULING_DELAY) public void scheduledTaskAskingDMaaPOfConsumeEvent() { logger.debug("Task scheduledTaskAskingDMaaPOfConsumeEvent() :: Execution Time - {}", dateTimeFormatter.format( LocalDateTime.now())); @@ -54,7 +52,7 @@ public class ScheduledTask { dmaapConsumerTask.execute(); } catch (AAINotFoundException e) { logger - .error("Task scheduledTaskAskingDMaaPOfConsumeEvent()::AAINotFoundException :: Execution Time - {}:{}", + .warn("Task scheduledTaskAskingDMaaPOfConsumeEvent()::AAINotFoundException :: Execution Time - {}:{}", dateTimeFormatter.format( LocalDateTime.now()), e); } -- cgit 1.2.3-korg