Commit 9fe493a0 authored by Christos Tranoris's avatar Christos Tranoris
Browse files

fixes for metrico

parent 107142bd
Loading
Loading
Loading
Loading
Loading
+4 −4
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,10 +58,10 @@ 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)
+48 −1
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);