Commit bb1f4737 authored by Kostis Trantzas's avatar Kostis Trantzas
Browse files

Creating 2025Q4 Release

parent 2bf990f8
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@ FROM ibm-semeru-runtimes:open-17.0.7_7-jdk
MAINTAINER openslice.io
RUN mkdir /opt/shareclasses
RUN mkdir -p /opt/openslice/lib/
COPY target/org.etsi.osl.osom-1.2.0.jar /opt/openslice/lib/
COPY target/org.etsi.osl.osom-1.2.0-exec.jar /opt/openslice/lib/
COPY target/org.etsi.osl.osom-1.3.0.jar /opt/openslice/lib/
COPY target/org.etsi.osl.osom-1.3.0-exec.jar /opt/openslice/lib/
COPY . /opt/openslice/lib/
CMD ["java", "-Xshareclasses:cacheDir=/opt/shareclasses","-jar", "/opt/openslice/lib/org.etsi.osl.osom-1.2.0-exec.jar"]
 No newline at end of file
CMD ["java", "-Xshareclasses:cacheDir=/opt/shareclasses","-jar", "/opt/openslice/lib/org.etsi.osl.osom-1.3.0-exec.jar"]
 No newline at end of file
+1 −1
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@
	<parent>
		<groupId>org.etsi.osl</groupId>
		<artifactId>org.etsi.osl.main</artifactId>
		<version>2025Q2</version>
		<version>2025Q4</version>
		<relativePath>../org.etsi.osl.main</relativePath>
	</parent>

+66 −0
Original line number Diff line number Diff line
package org.etsi.osl.osom.lcm;

import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
import org.apache.camel.CamelExecutionException;
import org.apache.camel.ExchangeTimedOutException;
import org.apache.camel.ProducerTemplate;

@Service
@Slf4j
public class ChatClient {

  

      private static final int MAX_ATTEMPTS = 3;

      private final ProducerTemplate producerTemplate;

      public ChatClient(ProducerTemplate producerTemplate) {
          this.producerTemplate = producerTemplate;
      }

      /**
       * Sends a String message to ActiveMQ and waits for a String reply.
       * Retries up to 3 times in case of timeout.
       * 
       * @param payload the request payload
       * @return the response String, or "" if all attempts time out or fail
       */
      public String ask(String agentName, String payload, String defaultText, Integer timeOut) {
          for (int attempt = 1; attempt <= MAX_ATTEMPTS; attempt++) {
              try {
                String ENDPOINT_URI =
                    "jms:queue:agents/" + agentName
                    + "?exchangePattern=InOut"
                    + "&requestTimeout=" + timeOut ; // x milliseconds timeout per attempt
                
                  String response = producerTemplate.requestBody(
                          ENDPOINT_URI,
                          payload,
                          String.class);

                  // If response is non-null, return it
                  if (response != null) {
                      return response;
                  }
              } catch (CamelExecutionException ex) {
                  // Check if the underlying cause is a timeout
                  if (ex.getCause() instanceof ExchangeTimedOutException) {
                      log.warn("Timeout on attempt {} for payload {}", attempt, payload, ex);
                  } else {
                      // Non-timeout error; break or handle differently
                      log.error("Non-timeout error on attempt {}", attempt, ex);
                      break;
                  }
              } catch (Exception ex) {
                  log.error("Unexpected error on attempt {}", attempt, ex);
                  break;
              }
          }

          // All attempts failed or timed out
          return "";
      }
 
}
+15 −0
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ import org.etsi.osl.tmf.so641.model.ServiceOrder;
import org.etsi.osl.tmf.so641.model.ServiceOrderCreate;
import org.etsi.osl.tmf.so641.model.ServiceOrderItemRelationship;
import org.etsi.osl.tmf.so641.model.ServiceOrderStateType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatusCode;
@@ -1157,6 +1158,18 @@ public abstract class LcmBaseExecutor {
		return "";
	}
	
	public String askAgent(String agentName,String payload, String defaultText, Integer timeOut) {	  
	  ChatClient chatClient = this.vars.getServiceOrderManager().getChatClient(agentName);
	   if ( chatClient !=null ) {
	     if (timeOut == null) {
	       timeOut = 60000;
	     }
	     return chatClient.ask(agentName, payload, defaultText, timeOut);
	   }else {
	     return defaultText;
	   }
	}

	static <T> T toJsonObj(String content, TypeReference<T> typeReference) throws IOException {
		ObjectMapper mapper = new ObjectMapper();
		mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
@@ -1168,4 +1181,6 @@ public abstract class LcmBaseExecutor {
		mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
		return mapper.writeValueAsString(object);
	}
	
	
}
+1 −1
Original line number Diff line number Diff line
@@ -85,7 +85,7 @@ public class GCOrchestrationCheckDeploymentService implements JavaDelegate {
          Resource res = serviceOrderManager.retrieveResource(rref.getId());
          
          if (  res == null ) {
            supd.setState( ServiceStateType.TERMINATED);
            supd.setState( ServiceStateType.INACTIVE);
            execution.setVariable("serviceDeploymentFinished", Boolean.TRUE);
            Service serviceResult = serviceOrderManager.updateService( aService.getId(), supd, propagateToSO );
            return;
Loading