From 4d5762749b0a393ceb0d30722c8a043cfd90fdb4 Mon Sep 17 00:00:00 2001 From: George Tziavas <g.tziavas@ac.upatras.gr> Date: Wed, 9 Apr 2025 16:58:37 +0300 Subject: [PATCH] Added a new FindPendingOrInProgressMeasurementCollectionJobs, and exposed it throught the MQ --- ...asurementCollectionJobApiRouteBuilder.java | 11 ++++++ .../MeasurementCollectionJobService.java | 7 ++++ src/main/resources/application.yml | 1 + .../MeasurementCollectionJobServiceTest.java | 34 +++++++++++++++++++ 4 files changed, 53 insertions(+) diff --git a/src/main/java/org/etsi/osl/tmf/pm628/api/MeasurementCollectionJobApiRouteBuilder.java b/src/main/java/org/etsi/osl/tmf/pm628/api/MeasurementCollectionJobApiRouteBuilder.java index b8fbcca..105ab79 100644 --- a/src/main/java/org/etsi/osl/tmf/pm628/api/MeasurementCollectionJobApiRouteBuilder.java +++ b/src/main/java/org/etsi/osl/tmf/pm628/api/MeasurementCollectionJobApiRouteBuilder.java @@ -41,6 +41,9 @@ public class MeasurementCollectionJobApiRouteBuilder extends RouteBuilder { @Value("${PM_MEASUREMENT_COLLECTION_JOB_UPDATE}") private String PM_UPDATE_MEASUREMENT_COLLECTION_JOB; + @Value("${PM_MEASUREMENT_COLLECTION_JOB_GET_INPRORGESS_OR_PENDING}") + private String PM_MEASUREMENT_COLLECTION_JOB_GET_INPRORGESS_OR_PENDING; + @Autowired private ProducerTemplate template; @@ -58,6 +61,8 @@ public class MeasurementCollectionJobApiRouteBuilder extends RouteBuilder { .bean(measurementCollectionJobService, "findAllMeasurementCollectionJobs") .convertBodyTo( String.class ); + + // I think this does not work!! from(PM_MEASUREMENT_COLLECTION_GET_JOB_BY_ID) .log(LoggingLevel.INFO, log, PM_MEASUREMENT_COLLECTION_GET_JOB_BY_ID + " message received!") .to("log:DEBUG?showBody=true&showHeaders=true") @@ -80,6 +85,12 @@ public class MeasurementCollectionJobApiRouteBuilder extends RouteBuilder { .bean(measurementCollectionJobService, "updateMeasurementCollectionJob(${header.mcjid}, ${body})") .marshal().json( JsonLibrary.Jackson) .convertBodyTo( String.class ); + + from(PM_MEASUREMENT_COLLECTION_JOB_GET_INPRORGESS_OR_PENDING) + .log(LoggingLevel.INFO, log, PM_MEASUREMENT_COLLECTION_JOB_GET_INPRORGESS_OR_PENDING + " message received!") + .to("log:DEBUG?showBody=true&showHeaders=true") + .bean(measurementCollectionJobService, "findPendingOrInProgressMeasurementCollectionJobs") + .convertBodyTo( String.class ); } static String toJsonString(Object object) throws IOException { diff --git a/src/main/java/org/etsi/osl/tmf/pm628/reposervices/MeasurementCollectionJobService.java b/src/main/java/org/etsi/osl/tmf/pm628/reposervices/MeasurementCollectionJobService.java index 4ca0cea..c8d8dca 100755 --- a/src/main/java/org/etsi/osl/tmf/pm628/reposervices/MeasurementCollectionJobService.java +++ b/src/main/java/org/etsi/osl/tmf/pm628/reposervices/MeasurementCollectionJobService.java @@ -456,4 +456,11 @@ public class MeasurementCollectionJobService { routeBuilderEvents.publishEvent(event, mcj.getUuid()); } + + public List<MeasurementCollectionJob> findPendingOrInProgressMeasurementCollectionJobs(){ + log.debug("findPendingOrInProgressMeasurementCollectionJobs"); + List<MeasurementCollectionJob> pendingOrInProgressMeasurementCollectionJobs = findAllByExecutionState(ExecutionStateType.PENDING); + pendingOrInProgressMeasurementCollectionJobs.addAll(findAllByExecutionState(ExecutionStateType.INPROGRESS)); + return pendingOrInProgressMeasurementCollectionJobs; + } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 3722fa8..b521007 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -155,6 +155,7 @@ PM_MEASUREMENT_COLLECTION_JOBS_GET: "jms:queue:PM.MEASUREMENTCOLLECTIONJOBS PM_MEASUREMENT_COLLECTION_JOB_ADD: "jms:queue:PM.MEASUREMENTCOLLECTIONJOB.ADD" PM_MEASUREMENT_COLLECTION_JOB_CREATED: "jms:queue:PM.MEASUREMENTCOLLECTIONJOB.CREATED" PM_MEASUREMENT_COLLECTION_JOB_UPDATE: "jms:queue:PM.MEASUREMENTCOLLECTIONJOB.UPDATE" +PM_MEASUREMENT_COLLECTION_JOB_GET_INPRORGESS_OR_PENDING: "jms:queue:PM.MEASUREMENTCOLLECTIONJOB.GET_INPRORGESS_OR_PENDING" #ALARMS ALARMS_ADD_ALARM: "jms:queue:ALARMS.ADD.ALARM" diff --git a/src/test/java/org/etsi/osl/services/api/pm628/MeasurementCollectionJobServiceTest.java b/src/test/java/org/etsi/osl/services/api/pm628/MeasurementCollectionJobServiceTest.java index d718e0a..7a182a4 100644 --- a/src/test/java/org/etsi/osl/services/api/pm628/MeasurementCollectionJobServiceTest.java +++ b/src/test/java/org/etsi/osl/services/api/pm628/MeasurementCollectionJobServiceTest.java @@ -192,4 +192,38 @@ public class MeasurementCollectionJobServiceTest { return response; } + + private MeasurementCollectionJob createNewMeasurementCollectionJobWithExecutionState(int previousNumberOfMcjs, ExecutionStateType executionStateType) throws Exception { + assertThat(measurementCollectionJobService.findAllMeasurementCollectionJobs().size()).isEqualTo(FIXED_BOOTSTRAPS_JOBS + previousNumberOfMcjs); + + File fvo = new File("src/test/resources/testMeasurementCollectionJobFVO.json"); + InputStream in = new FileInputStream(fvo); + String mcjFVOText = IOUtils.toString(in, "UTF-8"); + + MeasurementCollectionJobFVO mcjFVO = JsonUtils.toJsonObj(mcjFVOText, MeasurementCollectionJobFVO.class); + mcjFVO.setExecutionState(executionStateType); + + MeasurementCollectionJob response = measurementCollectionJobService.createMeasurementCollectionJob(mcjFVO); + + assertThat(measurementCollectionJobService.findAllMeasurementCollectionJobs().size()).isEqualTo(FIXED_BOOTSTRAPS_JOBS + previousNumberOfMcjs + 1); + + return response; + } + + @WithMockUser(username="osadmin", roles = {"USER","ADMIN"}) + @Test + public void testFindPendingOrInProgressMeasurementCollectionJobs() throws Exception { + MeasurementCollectionJob pendingMcj = createNewMeasurementCollectionJobWithExecutionState(measurementCollectionJobService.findAllMeasurementCollectionJobs().size(), ExecutionStateType.PENDING); + + int currentNumOfMcjs = measurementCollectionJobService.findAllMeasurementCollectionJobs().size(); + MeasurementCollectionJob inProgressMcj = createNewMeasurementCollectionJobWithExecutionState(currentNumOfMcjs, ExecutionStateType.INPROGRESS); + + + List<MeasurementCollectionJob> ackMcjList = measurementCollectionJobService.findAllByExecutionState(ExecutionStateType.ACKNOWLEDGED); + + List<MeasurementCollectionJob> mcjList = measurementCollectionJobService.findPendingOrInProgressMeasurementCollectionJobs(); + + + assertThat(mcjList.size()).isEqualTo(FIXED_BOOTSTRAPS_JOBS + 2); + } } -- GitLab