TMF628 fixes for METRICO

Closes #32 (closed)

Edited by Kostis Trantzas

Merge request reports

Loading
+8 −5
Changes for src/main/java/org/etsi/osl/tmf/pm628/api/MeasurementCollectionJobApiRouteBuilder.java: 8 added lines, 5 removed lines.
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@ public class MeasurementCollectionJobApiRouteBuilder extends RouteBuilder {
    private String PM_GET_MEASUREMENT_COLLECTION_JOBS;

    @Value("${PM_MEASUREMENT_COLLECTION_GET_JOB_BY_ID}")
    private String PM_GET_MEASUREMENT_COLLECTION_JOB_BY_ID;
    private String PM_MEASUREMENT_COLLECTION_GET_JOB_BY_ID;

    @Value("${PM_MEASUREMENT_COLLECTION_JOB_ADD}")
    private String PM_ADD_MEASUREMENT_COLLECTION_JOB;
@@ -58,17 +58,19 @@ public class MeasurementCollectionJobApiRouteBuilder extends RouteBuilder {
            .bean(measurementCollectionJobService, "findAllMeasurementCollectionJobs")
            .convertBodyTo( String.class );

        from(PM_GET_MEASUREMENT_COLLECTION_JOB_BY_ID)
            .log(LoggingLevel.INFO, log, PM_GET_MEASUREMENT_COLLECTION_JOB_BY_ID + " message received!")
        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")
            .bean(measurementCollectionJobService, "findMeasurementCollectionJobByUuid")
            .bean(measurementCollectionJobService, "findMeasurementCollectionJobByUuidEagerAsString")
            .convertBodyTo( String.class );

        from(PM_ADD_MEASUREMENT_COLLECTION_JOB)
                .log(LoggingLevel.INFO, log, PM_ADD_MEASUREMENT_COLLECTION_JOB + " message received!")
                .to("log:DEBUG?showBody=true&showHeaders=true").unmarshal()
                .to("log:DEBUG?showBody=true&showHeaders=true")
                .unmarshal()
                .json(JsonLibrary.Jackson, MeasurementCollectionJobFVO.class, true)
                .bean(measurementCollectionJobService, "createMeasurementCollectionJob(${body})")
                .marshal().json( JsonLibrary.Jackson)
                .convertBodyTo( String.class );

        from(PM_UPDATE_MEASUREMENT_COLLECTION_JOB)
@@ -76,6 +78,7 @@ public class MeasurementCollectionJobApiRouteBuilder extends RouteBuilder {
                .to("log:DEBUG?showBody=true&showHeaders=true").unmarshal()
                .json(JsonLibrary.Jackson, MeasurementCollectionJobMVO.class, true)
                .bean(measurementCollectionJobService, "updateMeasurementCollectionJob(${header.mcjid}, ${body})")
                .marshal().json( JsonLibrary.Jackson)
                .convertBodyTo( String.class );
    }

+49 −0
Changes for src/main/java/org/etsi/osl/tmf/pm628/reposervices/MeasurementCollectionJobService.java: 49 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ import jakarta.validation.Valid;
import org.etsi.osl.tmf.pm628.api.MeasurementCollectionJobApiRouteBuilderEvents;
import org.etsi.osl.tmf.pm628.model.*;
import org.etsi.osl.tmf.pm628.repo.MeasurementCollectionJobRepository;
import org.hibernate.Hibernate;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
@@ -20,6 +21,9 @@ import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
import java.util.*;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.hibernate5.jakarta.Hibernate5JakartaModule;

@Service
@Transactional
@@ -277,6 +281,47 @@ public class MeasurementCollectionJobService {
        return resultList;
    }

    @Transactional  
    public String findMeasurementCollectionJobByUuidEagerAsString(String uuid) throws JsonProcessingException{

      MeasurementCollectionJob mcj = findMeasurementCollectionJobByUuidEager(uuid);
      ObjectMapper mapper = new ObjectMapper();
      mapper.registerModule(new Hibernate5JakartaModule());
      String res = mapper.writeValueAsString(mcj);
      
      return res;

    }
    

    private MeasurementCollectionJob findMeasurementCollectionJobByUuidEager(String id) {
      if ( id == null || id.equals("")) {
        return null;
    }
    Session session = sessionFactory.openSession();
    Transaction tx = session.beginTransaction();
    MeasurementCollectionJob s = null;
    try {
        s = (MeasurementCollectionJob) session.get(MeasurementCollectionJob.class, id);
        if (s == null) {
            return this.findMeasurementCollectionJobByUuid(id);// last resort
        }

        Hibernate.initialize(s.getDataAccessEndpoint() );
        Hibernate.initialize(s.getFileTransferData() );
        Hibernate.initialize(s.getPerformanceIndicatorGroupSpecification() );
        Hibernate.initialize(s.getPerformanceIndicatorSpecification());
        Hibernate.initialize(s.getScheduleDefinition() );
        Hibernate.initialize(s.getTrackingRecord() );
        
        tx.commit();
    } finally {
        session.close();
    }
    
    return s;
    }

    public MeasurementCollectionJob findMeasurementCollectionJobByUuid(String uuid){
        log.debug("MeasurementCollectionJob FIND BY UUID");
        Optional<MeasurementCollectionJob> measurementCollectionJob = measurementCollectionJobRepository.findByUuid(uuid);
@@ -310,7 +355,9 @@ public class MeasurementCollectionJobService {
        measurementCollectionJob = this.measurementCollectionJobRepository.save(measurementCollectionJob);

        // This may be unnecessary since MeasurementCollectionJobMVO doesn't have the executionState attribute
        if ( originalExecutionState!=null) {
          executionStateChanged = !originalExecutionState.equals(measurementCollectionJob.getExecutionState());          
        }

        if (executionStateChanged) {
            raiseMCJExecutionStateChangeNotification(measurementCollectionJob);
@@ -337,6 +384,8 @@ public class MeasurementCollectionJobService {
        MeasurementCollectionJobRef ref = new MeasurementCollectionJobRef();
        ref.setId(mcj.getUuid());
        ref.setHref(mcj.getHref());
        ref.setName("MeasurementCollectionJob");
        

        MeasurementCollectionJobCreateEventPayload payload = new MeasurementCollectionJobCreateEventPayload();
        payload.setMeasurementCollectionJob(ref);
+1 −1
Changes for src/main/java/org/etsi/osl/tmf/sim638/service/ServiceRepoService.java: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -866,7 +866,7 @@ public class ServiceRepoService {
		return res;
	}

    @Transactional  

	public Service getServiceEager(String id) {
		if ( id == null || id.equals("")) {
			return null;
Loading