Commit 3cf80469 authored by Christos Tranoris's avatar Christos Tranoris
Browse files

removed child characteristic propagations

parent 82fbd3fa
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -92,7 +92,7 @@ public class ResourceApiRouteBuilder extends RouteBuilder {
		.log(LoggingLevel.INFO, log, CATALOG_UPD_RESOURCE + " message received!")
		.log(LoggingLevel.INFO, log, CATALOG_UPD_RESOURCE + " message received!")
		.to("log:DEBUG?showBody=true&showHeaders=true")
		.to("log:DEBUG?showBody=true&showHeaders=true")
		.unmarshal().json( JsonLibrary.Jackson, ResourceUpdate.class, true)
		.unmarshal().json( JsonLibrary.Jackson, ResourceUpdate.class, true)
		.bean( resourceRepoService, "updateResource(${header.resourceId}, ${body}, ${header.propagateToSO} )")
		.bean( resourceRepoService, "updateResource(${header.resourceId}, ${body}, ${header.triggerServiceActionQueue} )")
		.marshal().json( JsonLibrary.Jackson)
		.marshal().json( JsonLibrary.Jackson)
		.convertBodyTo( String.class );		
		.convertBodyTo( String.class );		


+1 −1
Original line number Original line Diff line number Diff line
@@ -284,7 +284,7 @@ public class ResourceRepoService {


  @Transactional
  @Transactional
  public Resource updateResource(String id, @Valid ResourceUpdate resourceUpd,
  public Resource updateResource(String id, @Valid ResourceUpdate resourceUpd,
      boolean propagateToSO) {
      boolean triggerServiceActionQueue) {
    Resource resource = this.getResourceEager(id);
    Resource resource = this.getResourceEager(id);


    if (resource == null) {
    if (resource == null) {
+47 −45
Original line number Original line Diff line number Diff line
@@ -571,9 +571,10 @@ public class ServiceSpecificationRepoService {
					/**
					/**
					 * Also,
					 * Also,
					 * we will add by default all the characteristics of this service to the related bundle parent service
					 * we will add by default all the characteristics of this service to the related bundle parent service
					 * Removed to try new approach with rules 
					 */
					 */
					
					
					serviceSpec = copyCharacteristicsOfServiceId(  ar.getId(), serviceSpec);
					//serviceSpec = copyCharacteristicsOfServiceId(  ar.getId(), serviceSpec);
					
					
				}
				}
			}
			}
@@ -619,7 +620,7 @@ public class ServiceSpecificationRepoService {
					 * Also,
					 * Also,
					 * we will add by default all the characteristics of this rSpec to the related bundle parent service 
					 * we will add by default all the characteristics of this rSpec to the related bundle parent service 
					 */
					 */
					serviceSpec = copyCharacteristicsOfResourceSpecId(  ar.getId(), serviceSpec);
					//serviceSpec = copyCharacteristicsOfResourceSpecId(  ar.getId(), serviceSpec);
				}
				}
			}
			}


@@ -696,24 +697,24 @@ public class ServiceSpecificationRepoService {
		return targetServiceSpec;
		return targetServiceSpec;
	}
	}
	
	
	private ServiceSpecification copyCharacteristicsOfResourceSpecId(String sourceResourceSpecid, ServiceSpecification targetServiceSpec) {
//	private ServiceSpecification copyCharacteristicsOfResourceSpecId(String sourceResourceSpecid, ServiceSpecification targetServiceSpec) {

//
		ResourceSpecification rSpec = resourceSpecRepoService.findByUuid( sourceResourceSpecid );
//		ResourceSpecification rSpec = resourceSpecRepoService.findByUuid( sourceResourceSpecid );
		
//		
		if ( rSpec != null ) {
//		if ( rSpec != null ) {
			for (ResourceSpecificationCharacteristic sourceChar : rSpec.getResourceSpecCharacteristic()) {
//			for (ResourceSpecificationCharacteristic sourceChar : rSpec.getResourceSpecCharacteristic()) {
				ServiceSpecCharacteristic serviceSpecCharacteristicItem = copyResourceCharacteristic( sourceChar );
//				ServiceSpecCharacteristic serviceSpecCharacteristicItem = copyResourceCharacteristic( sourceChar );
				//serviceSpecCharacteristicItem.setName( rSpec.getName() + "::" +sourceChar.getName() );
//				//serviceSpecCharacteristicItem.setName( rSpec.getName() + "::" +sourceChar.getName() );
				serviceSpecCharacteristicItem.setName( sourceChar.getName() );
//				serviceSpecCharacteristicItem.setName( sourceChar.getName() );

//
				if ( targetServiceSpec.findSpecCharacteristicByName( serviceSpecCharacteristicItem.getName() ) == null ) {
//				if ( targetServiceSpec.findSpecCharacteristicByName( serviceSpecCharacteristicItem.getName() ) == null ) {
					targetServiceSpec.getServiceSpecCharacteristic().add( serviceSpecCharacteristicItem );					
//					targetServiceSpec.getServiceSpecCharacteristic().add( serviceSpecCharacteristicItem );					
				}
//				}
			}			
//			}			
		}
//		}
		
//		
		return targetServiceSpec;
//		return targetServiceSpec;
	}	
//	}	


	public ServiceSpecification cloneServiceSpecification(String uuid) {
	public ServiceSpecification cloneServiceSpecification(String uuid) {
		ServiceSpecification source = this.findByUuid(uuid);
		ServiceSpecification source = this.findByUuid(uuid);
@@ -1410,11 +1411,12 @@ public class ServiceSpecificationRepoService {
		serviceSpec.setType("ResourceFacingServiceSpecification");
		serviceSpec.setType("ResourceFacingServiceSpecification");


		
		
		for (ResourceSpecificationCharacteristic sourceChar : rSpec.getResourceSpecCharacteristic()) {
		
			ServiceSpecCharacteristic serviceSpecCharacteristicItem = copyResourceCharacteristic( sourceChar );
//		for (ResourceSpecificationCharacteristic sourceChar : rSpec.getResourceSpecCharacteristic()) {
			serviceSpecCharacteristicItem.setName( rSpec.getName() + "::" +sourceChar.getName() );			
//			ServiceSpecCharacteristic serviceSpecCharacteristicItem = copyResourceCharacteristic( sourceChar );
			serviceSpec.addServiceSpecCharacteristicItem(serviceSpecCharacteristicItem );		
//			serviceSpecCharacteristicItem.setName( rSpec.getName() + "::" +sourceChar.getName() );			
		}
//			serviceSpec.addServiceSpecCharacteristicItem(serviceSpecCharacteristicItem );		
//		}


		
		
		ResourceSpecificationRef resourceSpecRef = new ResourceSpecificationRef();
		ResourceSpecificationRef resourceSpecRef = new ResourceSpecificationRef();
@@ -1427,25 +1429,25 @@ public class ServiceSpecificationRepoService {
		return serviceSpec;
		return serviceSpec;
	}
	}
	
	
	private ServiceSpecCharacteristic copyResourceCharacteristic( ResourceSpecificationCharacteristic sourceChar ) {
//	private ServiceSpecCharacteristic copyResourceCharacteristic( ResourceSpecificationCharacteristic sourceChar ) {
		
//		
		ServiceSpecCharacteristic serviceSpecCharacteristicItem = new ServiceSpecCharacteristic();
//		ServiceSpecCharacteristic serviceSpecCharacteristicItem = new ServiceSpecCharacteristic();
		serviceSpecCharacteristicItem.setDescription( sourceChar.getDescription());
//		serviceSpecCharacteristicItem.setDescription( sourceChar.getDescription());
		serviceSpecCharacteristicItem.valueType( sourceChar.getValueType() );
//		serviceSpecCharacteristicItem.valueType( sourceChar.getValueType() );
		serviceSpecCharacteristicItem.configurable(sourceChar.isConfigurable());
//		serviceSpecCharacteristicItem.configurable(sourceChar.isConfigurable());
		serviceSpecCharacteristicItem.setMinCardinality( sourceChar.getMinCardinality() );
//		serviceSpecCharacteristicItem.setMinCardinality( sourceChar.getMinCardinality() );
		serviceSpecCharacteristicItem.setMaxCardinality( sourceChar.getMaxCardinality()  );
//		serviceSpecCharacteristicItem.setMaxCardinality( sourceChar.getMaxCardinality()  );
		serviceSpecCharacteristicItem.setValidFor( sourceChar.getValidFor() );
//		serviceSpecCharacteristicItem.setValidFor( sourceChar.getValidFor() );
		for (ResourceSpecificationCharacteristicValue cv : sourceChar.getResourceSpecCharacteristicValue()) {
//		for (ResourceSpecificationCharacteristicValue cv : sourceChar.getResourceSpecCharacteristicValue()) {
			ServiceSpecCharacteristicValue serviceSpecCharacteristicValueItem = new ServiceSpecCharacteristicValue();
//			ServiceSpecCharacteristicValue serviceSpecCharacteristicValueItem = new ServiceSpecCharacteristicValue();
			serviceSpecCharacteristicValueItem.setValue( new Any( cv.getValue().getValue(), cv.getValue().getAlias()));
//			serviceSpecCharacteristicValueItem.setValue( new Any( cv.getValue().getValue(), cv.getValue().getAlias()));
			serviceSpecCharacteristicValueItem.isDefault( cv.isIsDefault() );
//			serviceSpecCharacteristicValueItem.isDefault( cv.isIsDefault() );
			serviceSpecCharacteristicValueItem.setUnitOfMeasure( cv.getUnitOfMeasure() );		
//			serviceSpecCharacteristicValueItem.setUnitOfMeasure( cv.getUnitOfMeasure() );		
			serviceSpecCharacteristicItem.addServiceSpecCharacteristicValueItem(serviceSpecCharacteristicValueItem );
//			serviceSpecCharacteristicItem.addServiceSpecCharacteristicValueItem(serviceSpecCharacteristicValueItem );
		}
//		}
		return serviceSpecCharacteristicItem;
//		return serviceSpecCharacteristicItem;
	}
//	}
	
//	


	
	


+1 −1
Original line number Original line Diff line number Diff line
@@ -131,7 +131,7 @@ public class ServiceApiRouteBuilder extends RouteBuilder {
		.log(LoggingLevel.INFO, log, CATALOG_UPD_SERVICE + " message received and will be processed for service inventory!")
		.log(LoggingLevel.INFO, log, CATALOG_UPD_SERVICE + " message received and will be processed for service inventory!")
		.to("log:DEBUG?showBody=true&showHeaders=true")
		.to("log:DEBUG?showBody=true&showHeaders=true")
		.unmarshal().json( JsonLibrary.Jackson, ServiceUpdate.class, true)
		.unmarshal().json( JsonLibrary.Jackson, ServiceUpdate.class, true)
		.bean( serviceRepoService, "updateService(${header.serviceid}, ${body}, ${header.propagateToSO} )")
		.bean( serviceRepoService, "updateService(${header.serviceid}, ${body}, ${header.triggerServiceActionQueue} )")
		.marshal().json( JsonLibrary.Jackson)
		.marshal().json( JsonLibrary.Jackson)
		.convertBodyTo( String.class );
		.convertBodyTo( String.class );
		
		
+121 −85
Original line number Original line Diff line number Diff line
@@ -340,8 +340,16 @@ public class ServiceRepoService {
				.orElse(null);
				.orElse(null);
	}
	}


	/**
	 * @param id
	 * @param servUpd
	 * @param triggerServiceActionQueue
	 * @param updatedFromParentService
	 * @param updatedFromChildService
	 * @return
	 */
	@Transactional
	@Transactional
	public Service updateService(String id, @Valid ServiceUpdate servUpd, boolean propagateToSO, Service updatedFromParentService, Service updatedFromChildService ) {
	public Service updateService(String id, @Valid ServiceUpdate servUpd, boolean triggerServiceActionQueue, Service updatedFromParentService, Service updatedFromChildService ) {
		//Service service = this.findByUuid(id);
		//Service service = this.findByUuid(id);
		Service service = this.getServiceEager(id);
		Service service = this.getServiceEager(id);
		
		
@@ -452,7 +460,7 @@ public class ServiceRepoService {
		boolean serviceCharacteristicChangedContainsPrimitive = false;
		boolean serviceCharacteristicChangedContainsPrimitive = false;
		
		
		String charChangedForNotes = "";
		String charChangedForNotes = "";
		List<Characteristic> childCharacteristicsChanged = new ArrayList<>();
		//List<Characteristic> childCharacteristicsChanged = new ArrayList<>();
		
		


		//logger.info("==> Will update serviceToString: " + service.toString() );
		//logger.info("==> Will update serviceToString: " + service.toString() );
@@ -466,12 +474,15 @@ public class ServiceRepoService {
						Characteristic origChar = service.getServiceCharacteristicByName( n.getName() );
						Characteristic origChar = service.getServiceCharacteristicByName( n.getName() );
						if ( ( origChar !=null ) && ( origChar.getValue() !=null ) && ( origChar.getValue().getValue() !=null )) {
						if ( ( origChar !=null ) && ( origChar.getValue() !=null ) && ( origChar.getValue().getValue() !=null )) {
							if ( !origChar.getValue().getValue().equals(n.getValue().getValue()) ) {									
							if ( !origChar.getValue().getValue().equals(n.getValue().getValue()) ) {									
								if ( n.getName().contains("::") ) {
//								if ( n.getName().contains("::") ) {
									childCharacteristicsChanged.add(n); //the characteristic needs later to be propagated to its children
//									childCharacteristicsChanged.add(n); //the characteristic needs later to be propagated to its children
//									
//								}
							  
							  
								}
							  if ( !n.getName().contains("::") ) { //it is not a child characteristic
                                serviceCharacteristicChanged = true; //change only characteristics of this service
                                serviceCharacteristicChanged = true; //change only characteristics of this service
								charChangedForNotes += n.getName(); 
                                charChangedForNotes += n.getName() + ", "; 
							  }
                              if ( n.getName().toUpperCase().contains(  "PRIMITIVE::" ) ){
                              if ( n.getName().toUpperCase().contains(  "PRIMITIVE::" ) ){
                                serviceCharacteristicChangedContainsPrimitive = true;
                                serviceCharacteristicChangedContainsPrimitive = true;
                              }
                              }
@@ -484,9 +495,11 @@ public class ServiceRepoService {
								 );
								 );
					} else {
					} else {
						service.addServiceCharacteristicItem(n);
						service.addServiceCharacteristicItem(n);
						if ( !n.getName().contains("::") ) { //it is not a child characteristic
	                        serviceCharacteristicChanged = true;    
	                        serviceCharacteristicChanged = true;    
	                        charChangedForNotes += n.getName() + ", "; 						  
	                        charChangedForNotes += n.getName() + ", "; 						  
						}
						}
					}
				
				
			}						
			}						
		}
		}
@@ -555,7 +568,7 @@ public class ServiceRepoService {
		 * Save in ServiceActionQueueItem
		 * Save in ServiceActionQueueItem
		 */
		 */
		
		
		if (propagateToSO && stateChanged) {
		if (triggerServiceActionQueue && stateChanged) {
		  ServiceActionQueueItem saqi = new ServiceActionQueueItem();
		  ServiceActionQueueItem saqi = new ServiceActionQueueItem();
		  saqi.setServiceRefId( id );
		  saqi.setServiceRefId( id );
		  saqi.setOriginalServiceInJSON( originaServiceAsJson );
		  saqi.setOriginalServiceInJSON( originaServiceAsJson );
@@ -588,7 +601,7 @@ public class ServiceRepoService {
			}
			}
		}		
		}		
		
		
		if ( serviceCharacteristicChanged &&  service.getState().equals(  ServiceStateType.ACTIVE) &&  previousState!=null && previousState.equals( ServiceStateType.ACTIVE) ) {
		if ( serviceCharacteristicChanged &&  service.getState().equals(  ServiceStateType.ACTIVE) &&  previousState!=null && previousState.equals( ServiceStateType.ACTIVE) && triggerServiceActionQueue ) {
			ServiceActionQueueItem saqi = new ServiceActionQueueItem();
			ServiceActionQueueItem saqi = new ServiceActionQueueItem();
			saqi.setServiceRefId( id );
			saqi.setServiceRefId( id );
			saqi.setOriginalServiceInJSON( originaServiceAsJson );		
			saqi.setOriginalServiceInJSON( originaServiceAsJson );		
@@ -596,65 +609,88 @@ public class ServiceRepoService {
			if ( serviceCharacteristicChangedContainsPrimitive ) {
			if ( serviceCharacteristicChangedContainsPrimitive ) {
				saqi.setAction( ServiceActionQueueAction.EVALUATE_CHARACTERISTIC_CHANGED_MANODAY2  );					
				saqi.setAction( ServiceActionQueueAction.EVALUATE_CHARACTERISTIC_CHANGED_MANODAY2  );					
			}
			}
			
			
			
			this.addServiceActionQueueItem(saqi);
			this.addServiceActionQueueItem(saqi);
		}
		}
		
		
		if ( serviceCharacteristicChanged) {
        /*
        /*
         * Update any parent service
         * Update any parent service
         */
         */
        for (ServiceRelationship serviceRelationship : service.getServiceRelationship()) {
        for (ServiceRelationship serviceRelationship : service.getServiceRelationship()) {
          if (serviceRelationship.getRelationshipType().equals("ChildService")) {
          if (serviceRelationship.getRelationshipType().equals("ChildService")) {
            if (serviceRelationship.getService() != null) {
            if (serviceRelationship.getService() != null) {
						if ( updatedFromParentService == null ||
								(updatedFromParentService!=null && !updatedFromParentService.getId().equals(serviceRelationship.getService().getId())) ) { //avoid circular
							propagateCharacteristicsToParentService(service, serviceRelationship.getService().getId());
						}



              if (serviceCharacteristicChanged) {
                if (updatedFromParentService == null || (updatedFromParentService != null && !updatedFromParentService.getId().equals(serviceRelationship.getService().getId()))) { // avoid circular
                  ServiceActionQueueItem saqi = new ServiceActionQueueItem(); // this will trigger lcm rule to parent
                  saqi.setServiceRefId(serviceRelationship.getService().getId());
                  try {
                    saqi.setOriginalServiceInJSON( mapper.writeValueAsString( service ) ); //pass the child service as is
                  } catch (JsonProcessingException e) {
                    e.printStackTrace();
                  }
                  }
				}
                  saqi.setAction(ServiceActionQueueAction.EVALUATE_CHILD_CHARACTERISTIC_CHANGED);
			}			
                  this.addServiceActionQueueItem(saqi);
                }
                }


		if ( childCharacteristicsChanged.size()>0 ) {
              }
			if ( service.getSupportingService() != null ) { //propagate to children
				//copy characteristics values from CFS Service  to its supporting services.
				for (ServiceRef sref : service.getSupportingService() ) {
					Service aSupportingService = this.findByUuid( sref.getId() );
					ServiceUpdate supd = new ServiceUpdate();
					boolean foundCharacteristicForChild = false;
					for (Characteristic supportingServiceChar : aSupportingService.getServiceCharacteristic() ) {
              
              
						for (Characteristic serviceCharacteristic : childCharacteristicsChanged ) {
              if (stateChanged) {
							if ( serviceCharacteristic.getName().contains( aSupportingService.getName() + "::" + supportingServiceChar.getName() )) { 									
                if (updatedFromParentService == null || (updatedFromParentService != null && !updatedFromParentService.getId().equals(serviceRelationship.getService().getId()))) { // avoid circular
								//supportingServiceChar.setValue( serviceCharacteristic.getValue() );
                  ServiceActionQueueItem saqi = new ServiceActionQueueItem(); // this will trigger lcm rule to parent
								Characteristic cNew = new Characteristic();
                  saqi.setServiceRefId(serviceRelationship.getService().getId());
								cNew.setName(supportingServiceChar.getName());
                  try {
								cNew.value( new Any( serviceCharacteristic.getValue() ));
                    saqi.setOriginalServiceInJSON( mapper.writeValueAsString( service ) ); //pass the child service as is
								supd.addServiceCharacteristicItem( cNew );
                  } catch (JsonProcessingException e) {
								foundCharacteristicForChild = true;
                    e.printStackTrace();
                  }
                  }
                  saqi.setAction(ServiceActionQueueAction.EVALUATE_CHILD_STATE_CHANGE );
                  this.addServiceActionQueueItem(saqi);
                }
                }
              }
              }


					if ( foundCharacteristicForChild ) {

						Note n = new Note();

						n.setText("Child Characteristics Changed"  );
						n.setAuthor( "SIM638-API" );
						n.setDate( OffsetDateTime.now(ZoneOffset.UTC).toString() );
						supd.addNoteItem( n );					
						if ( updatedFromChildService == null || 
								(updatedFromChildService!=null && !updatedFromChildService.getId().equals( aSupportingService.getId())) ) { //avoid circular
							this.updateService( aSupportingService.getId(), supd , false, service, null); //update the service							
            }
            }
          }
          }
        }	
        }	
		
		
			}
//		if ( childCharacteristicsChanged.size()>0 ) {
		}
//			if ( service.getSupportingService() != null ) { //propagate to children
//				//copy characteristics values from CFS Service  to its supporting services.
//				for (ServiceRef sref : service.getSupportingService() ) {
//					Service aSupportingService = this.findByUuid( sref.getId() );
//					ServiceUpdate supd = new ServiceUpdate();
//					boolean foundCharacteristicForChild = false;
//					for (Characteristic supportingServiceChar : aSupportingService.getServiceCharacteristic() ) {
//						
//						for (Characteristic serviceCharacteristic : childCharacteristicsChanged ) {
//							if ( serviceCharacteristic.getName().contains( aSupportingService.getName() + "::" + supportingServiceChar.getName() )) { 									
//								//supportingServiceChar.setValue( serviceCharacteristic.getValue() );
//								Characteristic cNew = new Characteristic();
//								cNew.setName(supportingServiceChar.getName());
//								cNew.value( new Any( serviceCharacteristic.getValue() ));
//								supd.addServiceCharacteristicItem( cNew );
//								foundCharacteristicForChild = true;
//							}
//						}
//					}					
//					
//					if ( foundCharacteristicForChild ) {
//						Note n = new Note();
//						n.setText("Child Characteristics Changed"  );
//						n.setAuthor( "SIM638-API" );
//						n.setDate( OffsetDateTime.now(ZoneOffset.UTC).toString() );
//						supd.addNoteItem( n );					
//						if ( updatedFromChildService == null || 
//								(updatedFromChildService!=null && !updatedFromChildService.getId().equals( aSupportingService.getId())) ) { //avoid circular
//							this.updateService( aSupportingService.getId(), supd , false, service, null); //update the service							
//						} 
//					}
//				}
//				
//			}
//		}
		
		
		
		
		
		
@@ -692,19 +728,19 @@ public class ServiceRepoService {
	 * @param service
	 * @param service
	 * @param parentService
	 * @param parentService
	 */
	 */
	private void propagateCharacteristicsToParentService(Service childService, String parentServiceId) {
//	private void propagateCharacteristicsToParentService(Service childService, String parentServiceId) {
		
//		
		ServiceUpdate servUpd = new ServiceUpdate();
//		ServiceUpdate servUpd = new ServiceUpdate();
		
//		
		for (Characteristic n : childService.getServiceCharacteristic()) {			
//		for (Characteristic n : childService.getServiceCharacteristic()) {			
			Characteristic serviceCharacteristicItem = new Characteristic();
//			Characteristic serviceCharacteristicItem = new Characteristic();
			serviceCharacteristicItem.setName( childService.getName() + "::" + n.getName());
//			serviceCharacteristicItem.setName( childService.getName() + "::" + n.getName());
			serviceCharacteristicItem.setValue( new Any( n.getValue() ));
//			serviceCharacteristicItem.setValue( new Any( n.getValue() ));
			servUpd.addServiceCharacteristicItem(serviceCharacteristicItem);
//			servUpd.addServiceCharacteristicItem(serviceCharacteristicItem);
		}
//		}
		
//		
		this.updateService( parentServiceId, servUpd, false, null, childService);
//		this.updateService( parentServiceId, servUpd, false, null, childService);
	}
//	}


	public String getServiceEagerAsString(String id) throws JsonProcessingException {
	public String getServiceEagerAsString(String id) throws JsonProcessingException {
		Service s = this.getServiceEager(id);
		Service s = this.getServiceEager(id);
@@ -801,8 +837,8 @@ public class ServiceRepoService {
		logger.debug("Will add ServiceActionQueueItem ServiceRefId: " + item.getServiceRefId() );
		logger.debug("Will add ServiceActionQueueItem ServiceRefId: " + item.getServiceRefId() );
		
		
		//find any similar action inqueue and delete them, so to keep this one as the most recent
		//find any similar action inqueue and delete them, so to keep this one as the most recent
		//List<ServiceActionQueueItem> result = this.serviceActionQueueRepo.findByServiceRefIdAndAction(item.getServiceRefId(), item.getAction());
		List<ServiceActionQueueItem> result = this.serviceActionQueueRepo.findByServiceRefIdAndAction(item.getServiceRefId(), item.getAction());
        //logger.debug("Will add ServiceActionQueueItem ServiceRefId result: " +result.size() );
        logger.debug("Will add ServiceActionQueueItem ServiceRefId result: " +result.size() );
        this.serviceActionQueueRepo.deleteByServiceRefIdAndAction(item.getServiceRefId(), item.getAction());
        this.serviceActionQueueRepo.deleteByServiceRefIdAndAction(item.getServiceRefId(), item.getAction());
        
        
		return this.serviceActionQueueRepo.save( item);
		return this.serviceActionQueueRepo.save( item);