From: tushar.mohanty@t-systems.com Date: Wed, 10 Sep 2025 06:25:57 +0000 (+0200) Subject: spring boot 3.1.12 upgrade X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F32%2F142032%2F2;p=aai%2Fbabel.git spring boot 3.1.12 upgrade Issue-ID: AAI-4204 Change-Id: Id716e050643d93b8ed645f2b0d2521cd82792216 Signed-off-by: tushar.mohanty@t-systems.com --- diff --git a/pom.xml b/pom.xml index 13fbcb0..9bffd77 100644 --- a/pom.xml +++ b/pom.xml @@ -21,25 +21,28 @@ ============LICENSE_END========================================================= --> - 4.0.0 org.onap.aai.aai-common aai-parent - 1.15.5 + 1.16.1 org.onap.aai babel - 1.13.7-SNAPSHOT + 1.13.8-SNAPSHOT jar aai-babel ONAP AAI Babel Microservice + 5.0.0 + 17 UTF-8 @@ -58,7 +61,7 @@ - 0.8.11 + 0.8.13 jacoco ${project.reporting.outputDirectory}/jacoco-ut/jacoco.xml @@ -68,7 +71,7 @@ 3.2.0 - 3.8.1 + 3.14.0 17 17 17 @@ -89,17 +92,15 @@ 1.9.4 3.0.13 - 2021.0.9 1.27.0 2.16.1 1.15 - 2.3.0 2.1.1 0.15.1 org.onap.aai.schema-service - 1.12.10 + 1.13.1-SNAPSHOT 3.12.0 1.6.4 1.13.0 @@ -111,8 +112,12 @@ 1.2.2 yyyyMMdd'T'HHmmss'Z' - 3.0.1 - 3.0.1 + 4.0.2 + 3.0.2 + 4.0.8 + 1.4.14 + 6.6 + 2.0.9 @@ -261,6 +266,10 @@ org.springframework.boot spring-boot-starter-tomcat + + org.springframework.boot + spring-boot-starter-tomcat + @@ -295,12 +304,9 @@ ch.qos.logback logback-classic + ${logback.version} compile - - ch.qos.logback - logback-core - commons-codec commons-codec @@ -314,8 +320,21 @@ commons-lang3 - javax.ws.rs - javax.ws.rs-api + net.logstash.logback + logstash-logback-encoder + ${logstash.logback.encoder.version} + + + org.apache.httpcomponents.client5 + httpclient5 + + + org.codehaus.janino + janino + + + jakarta.ws.rs + jakarta.ws.rs-api org.codehaus.groovy @@ -332,6 +351,13 @@ rest-client ${aai.rest.client.version} + + jakarta.servlet + jakarta.servlet-api + 6.0.0 + provided + + @@ -368,68 +394,67 @@ test - javax.xml.bind - jaxb-api - - - javax.xml.ws - jaxws-api - - - com.sun.xml.bind - jaxb-core - ${jaxb.version} + jakarta.xml.bind + jakarta.xml.bind-api - com.sun.xml.bind - jaxb-impl - ${jaxb.version} + jakarta.xml.ws + jakarta.xml.ws-api + provided jakarta.activation jakarta.activation-api - org.springframework.cloud - spring-cloud-starter-sleuth + io.micrometer + micrometer-tracing-bridge-otel + + + com.sun.xml.ws + jaxws-rt + 4.0.3 + provided - org.springframework.cloud - spring-cloud-sleuth-zipkin + io.opentelemetry + opentelemetry-exporter-zipkin org.projectlombok lombok - 1.18.32 provided - - org.slf4j - slf4j-api - 2.0.9 - - - jakarta.xml.bind - jakarta.xml.bind-api - ${jakarta.xml.bind-api.version} - - - org.glassfish.jaxb - jaxb-runtime - ${jaxb-runtime.version} - + + org.slf4j + slf4j-api + ${slf4j.api.version} + + + org.glassfish.jaxb + jaxb-runtime + ${jaxb-runtime.version} + + + org.jvnet.jaxb + jaxb-plugins-runtime + ${jaxb.plugin.version} + + + org.jvnet.jaxb + jaxb-plugin-annotate + ${jaxb.plugin.version} + + + org.onap.aai.schema-service + aai-annotations + ${aai-schema.version} + + + org.eclipse.jetty + jetty-server + - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud.version} - pom - import - - - @@ -499,9 +524,9 @@ - org.jvnet.jaxb2.maven2 - maven-jaxb2-plugin - ${mvn.jaxb2.version} + org.jvnet.jaxb + jaxb-maven-plugin + ${jaxb.plugin.version} process-sources @@ -522,16 +547,11 @@ -Xannotate + - org.jvnet.jaxb2_commons - jaxb2-basics-annotate - 0.6.4 - - - - org.jvnet.jaxb2_commons - jaxb2-annotate-plugin-test-annox-annotations - 1.0.0 + org.jvnet.jaxb + jaxb-plugins + 4.0.8 @@ -601,8 +621,6 @@ ${maven-compiler-plugin.version} true - ${maven-compiler-plugin.source} - ${maven-compiler-plugin.target} ${maven-compiler-plugin.test.source} ${maven-compiler-plugin.test.target} @@ -641,7 +659,6 @@ org.jacoco jacoco-maven-plugin - ${jacoco-maven-plugin.version} @@ -743,7 +760,6 @@ org.apache.maven.plugins maven-surefire-plugin - 3.1.2 false diff --git a/src/main/java/org/onap/aai/auth/AAIAuthException.java b/src/main/java/org/onap/aai/auth/AAIAuthException.java index 35adb5a..a7020c4 100644 --- a/src/main/java/org/onap/aai/auth/AAIAuthException.java +++ b/src/main/java/org/onap/aai/auth/AAIAuthException.java @@ -21,8 +21,11 @@ package org.onap.aai.auth; +import java.io.Serial; + public class AAIAuthException extends Exception { + @Serial private static final long serialVersionUID = 1L; public AAIAuthException(String string) { diff --git a/src/main/java/org/onap/aai/auth/AAIMicroServiceAuth.java b/src/main/java/org/onap/aai/auth/AAIMicroServiceAuth.java index 5e4f3c4..2e2395f 100644 --- a/src/main/java/org/onap/aai/auth/AAIMicroServiceAuth.java +++ b/src/main/java/org/onap/aai/auth/AAIMicroServiceAuth.java @@ -22,10 +22,10 @@ package org.onap.aai.auth; import java.security.cert.X509Certificate; -import javax.inject.Inject; +import jakarta.inject.Inject; import javax.security.auth.x500.X500Principal; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.HttpHeaders; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.core.HttpHeaders; import org.onap.aai.babel.config.BabelAuthConfig; import org.onap.aai.babel.logging.LogHelper; import org.onap.aai.cl.api.Logger; diff --git a/src/main/java/org/onap/aai/auth/AAIMicroServiceAuthCore.java b/src/main/java/org/onap/aai/auth/AAIMicroServiceAuthCore.java index f1b3549..a9acf12 100644 --- a/src/main/java/org/onap/aai/auth/AAIMicroServiceAuthCore.java +++ b/src/main/java/org/onap/aai/auth/AAIMicroServiceAuthCore.java @@ -28,7 +28,6 @@ import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.nio.file.Path; -import java.nio.file.Paths; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; @@ -129,15 +128,15 @@ public class AAIMicroServiceAuthCore { private static Optional locateConfigFile(String authPolicyFile) throws IOException { if (authPolicyFile != null) { List paths = new ArrayList<>(); - paths.add(Paths.get(".")); + paths.add(Path.of(".")); String configHome = System.getProperty("CONFIG_HOME"); if (configHome == null) { configHome = System.getProperty("APP_HOME") + "/appconfig"; } - paths.add(Paths.get(configHome)); - paths.add(Paths.get(configHome).resolve("auth")); + paths.add(Path.of(configHome)); + paths.add(Path.of(configHome).resolve("auth")); for (Path path : paths) { File authFile = path.resolve(authPolicyFile).toFile(); diff --git a/src/main/java/org/onap/aai/babel/JerseyConfiguration.java b/src/main/java/org/onap/aai/babel/JerseyConfiguration.java index ff8c5bb..bac441f 100644 --- a/src/main/java/org/onap/aai/babel/JerseyConfiguration.java +++ b/src/main/java/org/onap/aai/babel/JerseyConfiguration.java @@ -20,7 +20,7 @@ */ package org.onap.aai.babel; -import javax.ws.rs.ApplicationPath; +import jakarta.ws.rs.ApplicationPath; import org.glassfish.jersey.server.ResourceConfig; import org.onap.aai.babel.service.GenerateArtifactsControllerImpl; import org.onap.aai.babel.service.InfoService; diff --git a/src/main/java/org/onap/aai/babel/csar/CsarConverterException.java b/src/main/java/org/onap/aai/babel/csar/CsarConverterException.java index 12b324e..84bf4e2 100644 --- a/src/main/java/org/onap/aai/babel/csar/CsarConverterException.java +++ b/src/main/java/org/onap/aai/babel/csar/CsarConverterException.java @@ -20,11 +20,14 @@ */ package org.onap.aai.babel.csar; +import java.io.Serial; + /** * This class represents an exception encountered when attempting to convert the YAML files in a CSAR archive into XML. */ public class CsarConverterException extends Exception { + @Serial private static final long serialVersionUID = 1L; /** diff --git a/src/main/java/org/onap/aai/babel/csar/extractor/InvalidArchiveException.java b/src/main/java/org/onap/aai/babel/csar/extractor/InvalidArchiveException.java index 97d72d4..5403aa5 100644 --- a/src/main/java/org/onap/aai/babel/csar/extractor/InvalidArchiveException.java +++ b/src/main/java/org/onap/aai/babel/csar/extractor/InvalidArchiveException.java @@ -20,9 +20,12 @@ */ package org.onap.aai.babel.csar.extractor; +import java.io.Serial; + /** This class represents an exception encountered when processing an archive in memory. */ public class InvalidArchiveException extends Exception { + @Serial private static final long serialVersionUID = 1L; /** diff --git a/src/main/java/org/onap/aai/babel/csar/vnfcatalog/InvalidNumberOfNodesException.java b/src/main/java/org/onap/aai/babel/csar/vnfcatalog/InvalidNumberOfNodesException.java index 425982b..7d86010 100644 --- a/src/main/java/org/onap/aai/babel/csar/vnfcatalog/InvalidNumberOfNodesException.java +++ b/src/main/java/org/onap/aai/babel/csar/vnfcatalog/InvalidNumberOfNodesException.java @@ -20,11 +20,14 @@ */ package org.onap.aai.babel.csar.vnfcatalog; +import java.io.Serial; + /** * This class represents a scenario when there are invalid number of Nodes found during processing. */ class InvalidNumberOfNodesException extends Exception { /** Default ID */ + @Serial private static final long serialVersionUID = 1L; InvalidNumberOfNodesException(String message) { diff --git a/src/main/java/org/onap/aai/babel/csar/vnfcatalog/ToscaToCatalogException.java b/src/main/java/org/onap/aai/babel/csar/vnfcatalog/ToscaToCatalogException.java index 2ef9dc8..d781786 100644 --- a/src/main/java/org/onap/aai/babel/csar/vnfcatalog/ToscaToCatalogException.java +++ b/src/main/java/org/onap/aai/babel/csar/vnfcatalog/ToscaToCatalogException.java @@ -20,12 +20,15 @@ */ package org.onap.aai.babel.csar.vnfcatalog; +import java.io.Serial; + /** * This class represents an exception raised when trying to extract VNFCatalog data out of a CSAR file. */ public class ToscaToCatalogException extends Exception { /** Defaulted */ + @Serial private static final long serialVersionUID = 1L; /** diff --git a/src/main/java/org/onap/aai/babel/csar/vnfcatalog/VnfVendorImageExtractor.java b/src/main/java/org/onap/aai/babel/csar/vnfcatalog/VnfVendorImageExtractor.java index 8973f57..e3d104d 100644 --- a/src/main/java/org/onap/aai/babel/csar/vnfcatalog/VnfVendorImageExtractor.java +++ b/src/main/java/org/onap/aai/babel/csar/vnfcatalog/VnfVendorImageExtractor.java @@ -44,7 +44,7 @@ import org.onap.sdc.tosca.parser.exceptions.SdcToscaParserException; import org.onap.sdc.tosca.parser.impl.SdcToscaParserFactory; import org.onap.sdc.toscaparser.api.NodeTemplate; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.core.Response; /** * This class is responsible for extracting Virtual Network Function (VNF) information from a TOSCA 1.1 CSAR package. @@ -212,7 +212,7 @@ public class VnfVendorImageExtractor { NodeTemplate vnfConfigurationNode = vnfConfigs.get(0); applicationLogger.info(ApplicationMsgs.DISTRIBUTION_EVENT, - String.format("Found VNF Configuration node \"%s\"", vnfConfigurationNode)); + "Found VNF Configuration node \"%s\"".formatted(vnfConfigurationNode)); if (vnfConfigs.size() > 1) { throw new InvalidNumberOfNodesException("Only one VNF configuration node is allowed however " diff --git a/src/main/java/org/onap/aai/babel/filters/AuthenticationRequestFilter.java b/src/main/java/org/onap/aai/babel/filters/AuthenticationRequestFilter.java index deeafb0..88e6f52 100644 --- a/src/main/java/org/onap/aai/babel/filters/AuthenticationRequestFilter.java +++ b/src/main/java/org/onap/aai/babel/filters/AuthenticationRequestFilter.java @@ -29,13 +29,13 @@ import org.springframework.stereotype.Component; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerRequestFilter; -import javax.ws.rs.core.Response.Status; -import javax.ws.rs.ext.Provider; -import javax.ws.rs.core.PathSegment; -import javax.ws.rs.core.Response; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.container.ContainerRequestContext; +import jakarta.ws.rs.container.ContainerRequestFilter; +import jakarta.ws.rs.core.Response.Status; +import jakarta.ws.rs.ext.Provider; +import jakarta.ws.rs.core.PathSegment; +import jakarta.ws.rs.core.Response; import java.io.IOException; import java.util.List; diff --git a/src/main/java/org/onap/aai/babel/filters/LoggingRequestFilter.java b/src/main/java/org/onap/aai/babel/filters/LoggingRequestFilter.java index 9699be4..d8fec5c 100644 --- a/src/main/java/org/onap/aai/babel/filters/LoggingRequestFilter.java +++ b/src/main/java/org/onap/aai/babel/filters/LoggingRequestFilter.java @@ -27,11 +27,11 @@ import org.onap.aai.babel.request.RequestHeaders; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerRequestFilter; -import javax.ws.rs.core.UriInfo; -import javax.ws.rs.core.MultivaluedMap; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.container.ContainerRequestContext; +import jakarta.ws.rs.container.ContainerRequestFilter; +import jakarta.ws.rs.core.UriInfo; +import jakarta.ws.rs.core.MultivaluedMap; import java.io.IOException; import java.util.UUID; @@ -52,8 +52,7 @@ public class LoggingRequestFilter implements ContainerRequestFilter { applicationLogger.startAudit(headers, servletRequest); applicationLogger.info(ApplicationMsgs.BABEL_REQUEST_PAYLOAD, "Received request: " + headers + requestBody); - applicationLogger.debug(String.format( - "Received request. UriInfo \"%s\", HttpHeaders \"%s\", ServletRequest \"%s\", Request \"%s\"", uriInfo, + applicationLogger.debug("Received request. UriInfo \"%s\", HttpHeaders \"%s\", ServletRequest \"%s\", Request \"%s\"".formatted(uriInfo, headers, servletRequest, requestBody)); // Additional name/value pairs according to EELF guidelines diff --git a/src/main/java/org/onap/aai/babel/logging/ApplicationMsgs.java b/src/main/java/org/onap/aai/babel/logging/ApplicationMsgs.java index 7d18a40..6756994 100644 --- a/src/main/java/org/onap/aai/babel/logging/ApplicationMsgs.java +++ b/src/main/java/org/onap/aai/babel/logging/ApplicationMsgs.java @@ -22,9 +22,10 @@ package org.onap.aai.babel.logging; import com.att.eelf.i18n.EELFResourceManager; +import com.att.eelf.i18n.EELFResolvableErrorEnum; import org.onap.aai.cl.eelf.LogMessageEnum; -public enum ApplicationMsgs implements LogMessageEnum { +public enum ApplicationMsgs implements LogMessageEnum, EELFResolvableErrorEnum { DISTRIBUTION_EVENT, // MESSAGE_AUDIT, // diff --git a/src/main/java/org/onap/aai/babel/logging/LogHelper.java b/src/main/java/org/onap/aai/babel/logging/LogHelper.java index 406cdb8..e3c528b 100644 --- a/src/main/java/org/onap/aai/babel/logging/LogHelper.java +++ b/src/main/java/org/onap/aai/babel/logging/LogHelper.java @@ -30,9 +30,9 @@ import java.util.Optional; import java.util.function.BiConsumer; import java.util.function.Consumer; -import javax.servlet.ServletRequest; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.Response.Status; +import jakarta.servlet.ServletRequest; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.Response.Status; import org.apache.commons.lang3.time.StopWatch; import org.onap.aai.babel.request.RequestHeaders; @@ -181,7 +181,7 @@ public enum LogHelper implements Logger { clientHost = servletRequest.getRemoteHost(); clientIPAddress = servletRequest.getRemoteAddr(); - if (!partnerName.isPresent()) { + if (partnerName.isEmpty()) { partnerName = Optional.ofNullable(clientHost); } } diff --git a/src/main/java/org/onap/aai/babel/parser/ArtifactGeneratorToscaParser.java b/src/main/java/org/onap/aai/babel/parser/ArtifactGeneratorToscaParser.java index 2816cb5..4e897a1 100644 --- a/src/main/java/org/onap/aai/babel/parser/ArtifactGeneratorToscaParser.java +++ b/src/main/java/org/onap/aai/babel/parser/ArtifactGeneratorToscaParser.java @@ -107,7 +107,7 @@ public class ArtifactGeneratorToscaParser { log.debug("Getting TOSCA Mappings Configuration"); File file = new File(configLocation); if (!file.exists()) { - throw new IllegalArgumentException(String.format(GENERATOR_AAI_CONFIGFILE_NOT_FOUND, configLocation)); + throw new IllegalArgumentException(GENERATOR_AAI_CONFIGFILE_NOT_FOUND.formatted(configLocation)); } GroupConfiguration config; @@ -269,7 +269,7 @@ public class ArtifactGeneratorToscaParser { } if (resourceModel.hasWidgetType("ALLOTTED_RESOURCE") && !foundProvidingService) { - throw new XmlArtifactGenerationException(String.format(GENERATOR_AAI_PROVIDING_SERVICE_MISSING, + throw new XmlArtifactGenerationException(GENERATOR_AAI_PROVIDING_SERVICE_MISSING.formatted( Optional.ofNullable(resourceModel.getModelId()).orElse(""))); } } @@ -313,7 +313,7 @@ public class ArtifactGeneratorToscaParser { */ private List generateResourcesAndWidgets(final ArrayList memberNodes, final Resource groupModel) throws XmlArtifactGenerationException { - log.debug(String.format("Processing member nodes for Group %s (invariant UUID %s)", // + log.debug("Processing member nodes for Group %s (invariant UUID %s)".formatted( // groupModel.getModelName(), groupModel.getModelId())); List resources = new ArrayList<>(); @@ -322,13 +322,13 @@ public class ArtifactGeneratorToscaParser { String nodeTypeName = nodeTemplate.getType(); final String metadataType = nodeTemplate.getMetaData().getValue("type"); - log.debug(String.format("Get model for %s (metadata type %s)", nodeTypeName, metadataType)); + log.debug("Get model for %s (metadata type %s)".formatted(nodeTypeName, metadataType)); Resource memberModel = Model.getModelFor(nodeTypeName, metadataType); if (memberModel != null) { memberModel.populateModelIdentificationInformation(nodeTemplate.getMetaData().getAllProperties()); - log.debug(String.format("Generating grouped %s (%s) from TOSCA type %s", + log.debug("Generating grouped %s (%s) from TOSCA type %s".formatted( memberModel.getClass().getSuperclass().getSimpleName(), memberModel.getClass(), nodeTypeName)); addRelatedModel(groupModel, memberModel); @@ -493,7 +493,7 @@ public class ArtifactGeneratorToscaParser { if (nodeProperties == null || nodeProperties.get("providing_service_uuid") == null || nodeProperties.get("providing_service_invariant_uuid") == null) { throw new IllegalArgumentException( - String.format(GENERATOR_AAI_PROVIDING_SERVICE_METADATA_MISSING, resourceModel.getModelId())); + GENERATOR_AAI_PROVIDING_SERVICE_METADATA_MISSING.formatted(resourceModel.getModelId())); } Map properties = populateStringProperties(nodeProperties); properties.put(VERSION, "1.0"); diff --git a/src/main/java/org/onap/aai/babel/request/RequestHeaders.java b/src/main/java/org/onap/aai/babel/request/RequestHeaders.java index 19d5425..574ec3c 100644 --- a/src/main/java/org/onap/aai/babel/request/RequestHeaders.java +++ b/src/main/java/org/onap/aai/babel/request/RequestHeaders.java @@ -22,8 +22,8 @@ package org.onap.aai.babel.request; import java.util.Optional; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MultivaluedMap; /** Bean to represent the ECOMP request/transaction IDs required for EELF logging. */ public class RequestHeaders { diff --git a/src/main/java/org/onap/aai/babel/service/GenerateArtifactsController.java b/src/main/java/org/onap/aai/babel/service/GenerateArtifactsController.java index 520d4fb..f45d2cc 100644 --- a/src/main/java/org/onap/aai/babel/service/GenerateArtifactsController.java +++ b/src/main/java/org/onap/aai/babel/service/GenerateArtifactsController.java @@ -20,12 +20,12 @@ */ package org.onap.aai.babel.service; -import javax.ws.rs.Consumes; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.Consumes; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; import org.onap.aai.auth.AAIAuthException; import org.onap.aai.babel.service.data.BabelRequest; diff --git a/src/main/java/org/onap/aai/babel/service/GenerateArtifactsControllerImpl.java b/src/main/java/org/onap/aai/babel/service/GenerateArtifactsControllerImpl.java index 8e06f38..544b2c4 100644 --- a/src/main/java/org/onap/aai/babel/service/GenerateArtifactsControllerImpl.java +++ b/src/main/java/org/onap/aai/babel/service/GenerateArtifactsControllerImpl.java @@ -28,8 +28,8 @@ import lombok.RequiredArgsConstructor; import java.util.Base64; import java.util.List; -import javax.ws.rs.core.*; -import javax.ws.rs.core.Response.Status; +import jakarta.ws.rs.core.*; +import jakarta.ws.rs.core.Response.Status; import org.apache.commons.lang3.time.StopWatch; import org.onap.aai.babel.csar.CsarConverterException; diff --git a/src/main/java/org/onap/aai/babel/service/InfoService.java b/src/main/java/org/onap/aai/babel/service/InfoService.java index 7c3e21e..4621bad 100644 --- a/src/main/java/org/onap/aai/babel/service/InfoService.java +++ b/src/main/java/org/onap/aai/babel/service/InfoService.java @@ -26,11 +26,11 @@ import java.time.LocalTime; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.time.temporal.Temporal; -import javax.ws.rs.DefaultValue; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; +import jakarta.ws.rs.DefaultValue; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.QueryParam; import org.springframework.stereotype.Service; /** diff --git a/src/main/java/org/onap/aai/babel/util/RequestValidationException.java b/src/main/java/org/onap/aai/babel/util/RequestValidationException.java index cf5322a..6b8b3bb 100644 --- a/src/main/java/org/onap/aai/babel/util/RequestValidationException.java +++ b/src/main/java/org/onap/aai/babel/util/RequestValidationException.java @@ -20,9 +20,12 @@ */ package org.onap.aai.babel.util; +import java.io.Serial; + /** This exception is thrown when the request fails validation. */ public class RequestValidationException extends Exception { + @Serial private static final long serialVersionUID = 1L; /** diff --git a/src/main/java/org/onap/aai/babel/xml/generator/ModelGenerator.java b/src/main/java/org/onap/aai/babel/xml/generator/ModelGenerator.java index ecc81fd..c8ef9de 100644 --- a/src/main/java/org/onap/aai/babel/xml/generator/ModelGenerator.java +++ b/src/main/java/org/onap/aai/babel/xml/generator/ModelGenerator.java @@ -36,7 +36,7 @@ import org.onap.aai.babel.xml.generator.data.Artifact; import org.onap.aai.babel.xml.generator.data.GenerationData; import org.onap.aai.babel.xml.generator.data.GeneratorUtil; import org.onap.aai.babel.xml.generator.data.GroupType; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.core.Response; /** * This class is responsible for generating XML model artifacts from a collection of CSAR artifacts. diff --git a/src/main/java/org/onap/aai/babel/xml/generator/XmlArtifactGenerationException.java b/src/main/java/org/onap/aai/babel/xml/generator/XmlArtifactGenerationException.java index ebb6c47..8e25ede 100644 --- a/src/main/java/org/onap/aai/babel/xml/generator/XmlArtifactGenerationException.java +++ b/src/main/java/org/onap/aai/babel/xml/generator/XmlArtifactGenerationException.java @@ -21,12 +21,15 @@ package org.onap.aai.babel.xml.generator; +import java.io.Serial; + /** * This class represents a fatal exception encountered when generating an Artifact. * */ public class XmlArtifactGenerationException extends Exception { + @Serial private static final long serialVersionUID = 1L; /** diff --git a/src/main/java/org/onap/aai/babel/xml/generator/api/AaiArtifactGenerator.java b/src/main/java/org/onap/aai/babel/xml/generator/api/AaiArtifactGenerator.java index c42518d..71eb44d 100644 --- a/src/main/java/org/onap/aai/babel/xml/generator/api/AaiArtifactGenerator.java +++ b/src/main/java/org/onap/aai/babel/xml/generator/api/AaiArtifactGenerator.java @@ -88,7 +88,7 @@ public class AaiArtifactGenerator implements ArtifactGenerator { String configLocation = System.getProperty(ArtifactGeneratorToscaParser.PROPERTY_TOSCA_MAPPING_FILE); if (configLocation == null) { throw new IllegalArgumentException( - String.format(ArtifactGeneratorToscaParser.GENERATOR_AAI_CONFIGLOCATION_NOT_FOUND, + ArtifactGeneratorToscaParser.GENERATOR_AAI_CONFIGLOCATION_NOT_FOUND.formatted( ArtifactGeneratorToscaParser.PROPERTY_TOSCA_MAPPING_FILE)); } @@ -240,7 +240,7 @@ public class AaiArtifactGenerator implements ArtifactGenerator { ArrayList members = group.getMembers(); if (members != null && members.contains(nodeTemplate.getName()) && WidgetConfigurationUtil.isSupportedInstanceGroup(group.getType())) { - log.debug(String.format("Adding group %s (type %s) with members %s", group.getName(), + log.debug("Adding group %s (type %s) with members %s".formatted(group.getName(), group.getType(), members)); Resource groupModel = parser.createInstanceGroupModel( @@ -484,7 +484,7 @@ public class AaiArtifactGenerator implements ArtifactGenerator { } else { String versionRegex = "^\\d*\\.\\d*$"; if (!(serviceVersion.matches(versionRegex))) { - throw new IllegalArgumentException(String.format(GENERATOR_AAI_INVALID_SERVICE_VERSION)); + throw new IllegalArgumentException(GENERATOR_AAI_INVALID_SERVICE_VERSION.formatted()); } } return serviceVersion; diff --git a/src/main/java/org/onap/aai/babel/xml/generator/api/AaiModelGenerator.java b/src/main/java/org/onap/aai/babel/xml/generator/api/AaiModelGenerator.java index 69bbb80..1b8dfbd 100644 --- a/src/main/java/org/onap/aai/babel/xml/generator/api/AaiModelGenerator.java +++ b/src/main/java/org/onap/aai/babel/xml/generator/api/AaiModelGenerator.java @@ -25,9 +25,9 @@ package org.onap.aai.babel.xml.generator.api; import java.io.StringWriter; import java.util.Collection; import java.util.List; -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBException; -import javax.xml.bind.Marshaller; +import jakarta.xml.bind.JAXBContext; +import jakarta.xml.bind.JAXBException; +import jakarta.xml.bind.Marshaller; import org.onap.aai.babel.logging.ApplicationMsgs; import org.onap.aai.babel.logging.LogHelper; import org.onap.aai.babel.xml.generator.XmlArtifactGenerationException; diff --git a/src/main/java/org/onap/aai/babel/xml/generator/error/IllegalAccessException.java b/src/main/java/org/onap/aai/babel/xml/generator/error/IllegalAccessException.java index 3c907cb..e3b33cc 100644 --- a/src/main/java/org/onap/aai/babel/xml/generator/error/IllegalAccessException.java +++ b/src/main/java/org/onap/aai/babel/xml/generator/error/IllegalAccessException.java @@ -20,8 +20,11 @@ */ package org.onap.aai.babel.xml.generator.error; +import java.io.Serial; + public class IllegalAccessException extends RuntimeException { + @Serial private static final long serialVersionUID = 1L; public IllegalAccessException(String message) { diff --git a/src/main/java/org/onap/aai/babel/xml/generator/model/Resource.java b/src/main/java/org/onap/aai/babel/xml/generator/model/Resource.java index 8c01a50..61eccb7 100644 --- a/src/main/java/org/onap/aai/babel/xml/generator/model/Resource.java +++ b/src/main/java/org/onap/aai/babel/xml/generator/model/Resource.java @@ -65,8 +65,8 @@ public class Resource extends Model { @Override public boolean equals(Object obj) { - if (obj instanceof Resource) { - return getModelNameVersionId().equals(((Resource) obj).getModelNameVersionId()); + if (obj instanceof Resource resource) { + return getModelNameVersionId().equals(resource.getModelNameVersionId()); } return false; } diff --git a/src/main/java/org/onap/aai/babel/xml/generator/model/Widget.java b/src/main/java/org/onap/aai/babel/xml/generator/model/Widget.java index 8f71f2b..38b0902 100644 --- a/src/main/java/org/onap/aai/babel/xml/generator/model/Widget.java +++ b/src/main/java/org/onap/aai/babel/xml/generator/model/Widget.java @@ -140,8 +140,7 @@ public class Widget extends Model { @Override public boolean equals(Object obj) { boolean isEqual = false; - if (obj instanceof Widget) { - Widget other = (Widget) obj; + if (obj instanceof Widget other) { if (getId().equals(other.getId())) { other.keys.addAll(this.keys); isEqual = true; diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 77835f3..0632c62 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -7,15 +7,15 @@ server.ssl.client-auth=need spring.main.allow-bean-definition-overriding=true server.servlet.context-path=/services/babel-service logging.config=${CONFIG_HOME}/logback.xml +# Logging pattern containing traceId and spanId; no longer provided through Sleuth by default +logging.pattern.level="%5p [${spring.application.name:},%X{traceId:-},%X{spanId:-}]" tosca.mappings.config=${CONFIG_HOME}/tosca-mappings.json spring.application.name=aai-babel -spring.sleuth.enabled=true +management.tracing.enabled=true spring.zipkin.baseUrl=http://jaeger-collector.istio-system:9411 spring.sleuth.messaging.jms.enabled = false -spring.sleuth.trace-id128=true -spring.sleuth.sampler.probability=1.0 -spring.sleuth.propagation.type=w3c, b3 -spring.sleuth.supports-join=false +management.tracing.sampling.probability=1.0 +management.tracing.propagation.type=w3c, b3 management.endpoints.web.exposure.include=* diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml index d8c7771..6655276 100644 --- a/src/main/resources/logback.xml +++ b/src/main/resources/logback.xml @@ -78,12 +78,12 @@ - - - - DENY - NEUTRAL - + + throwable instanceof java.io.IOException + + DENY + NEUTRAL + 256 false diff --git a/src/test/java/org/onap/aai/babel/filters/AuthenticationRequestFilterTest.java b/src/test/java/org/onap/aai/babel/filters/AuthenticationRequestFilterTest.java index ac72b6d..122cc3a 100644 --- a/src/test/java/org/onap/aai/babel/filters/AuthenticationRequestFilterTest.java +++ b/src/test/java/org/onap/aai/babel/filters/AuthenticationRequestFilterTest.java @@ -32,11 +32,11 @@ import org.onap.aai.auth.AAIMicroServiceAuthCore.HTTP_METHODS; import java.io.IOException; import java.util.List; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.core.PathSegment; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriInfo; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.container.ContainerRequestContext; +import jakarta.ws.rs.core.PathSegment; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.UriInfo; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.*; diff --git a/src/test/java/org/onap/aai/babel/logging/LogReader.java b/src/test/java/org/onap/aai/babel/logging/LogReader.java index e841860..bb882f3 100644 --- a/src/test/java/org/onap/aai/babel/logging/LogReader.java +++ b/src/test/java/org/onap/aai/babel/logging/LogReader.java @@ -27,7 +27,6 @@ import java.io.FileReader; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.Paths; import java.util.Comparator; import java.util.HashMap; import java.util.Map; @@ -73,7 +72,7 @@ public class LogReader { Path cachedLog = cachedLogMap.get(filenamePrefix); if (cachedLog == null) { - Optional latestFilePath = Files.list(Paths.get(logDirectory)) + Optional latestFilePath = Files.list(Path.of(logDirectory)) .filter(f -> Files.isDirectory(f) == false && f.getFileName().toString().startsWith(filenamePrefix)) .max(Comparator.comparingLong(f -> f.toFile().lastModified())); if (latestFilePath.isPresent()) { diff --git a/src/test/java/org/onap/aai/babel/logging/TestApplicationLogger.java b/src/test/java/org/onap/aai/babel/logging/TestApplicationLogger.java index c997e41..bdfe75d 100644 --- a/src/test/java/org/onap/aai/babel/logging/TestApplicationLogger.java +++ b/src/test/java/org/onap/aai/babel/logging/TestApplicationLogger.java @@ -31,8 +31,8 @@ import com.att.eelf.configuration.EELFLogger.Level; import com.att.eelf.configuration.EELFManager; import java.io.IOException; import java.util.Arrays; -import javax.servlet.ServletRequest; -import javax.ws.rs.core.MultivaluedMap; +import jakarta.servlet.ServletRequest; +import jakarta.ws.rs.core.MultivaluedMap; import org.apache.commons.lang3.time.StopWatch; import org.junit.jupiter.api.Assertions; diff --git a/src/test/java/org/onap/aai/babel/service/TestGenerateArtifactsServiceImpl.java b/src/test/java/org/onap/aai/babel/service/TestGenerateArtifactsServiceImpl.java index 740d5e3..42414ce 100644 --- a/src/test/java/org/onap/aai/babel/service/TestGenerateArtifactsServiceImpl.java +++ b/src/test/java/org/onap/aai/babel/service/TestGenerateArtifactsServiceImpl.java @@ -35,10 +35,10 @@ import java.util.List; import java.util.Map.Entry; import java.util.Optional; import javax.security.auth.x500.X500Principal; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MultivaluedHashMap; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriInfo; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MultivaluedHashMap; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.UriInfo; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.mockito.Mockito; diff --git a/src/test/java/org/onap/aai/babel/service/TestRequestHeaders.java b/src/test/java/org/onap/aai/babel/service/TestRequestHeaders.java index 4828132..61f034e 100644 --- a/src/test/java/org/onap/aai/babel/service/TestRequestHeaders.java +++ b/src/test/java/org/onap/aai/babel/service/TestRequestHeaders.java @@ -29,8 +29,8 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Map.Entry; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MultivaluedHashMap; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MultivaluedHashMap; import org.junit.jupiter.api.Test; import org.mockito.Mockito; import org.onap.aai.babel.request.RequestHeaders; diff --git a/src/test/java/org/onap/aai/babel/util/ArtifactTestUtils.java b/src/test/java/org/onap/aai/babel/util/ArtifactTestUtils.java index 2cf221d..de73fcc 100644 --- a/src/test/java/org/onap/aai/babel/util/ArtifactTestUtils.java +++ b/src/test/java/org/onap/aai/babel/util/ArtifactTestUtils.java @@ -33,7 +33,7 @@ import java.net.URISyntaxException; import java.net.URL; import java.nio.charset.Charset; import java.nio.file.Files; -import java.nio.file.Paths; +import java.nio.file.Path; import java.util.Base64; import java.util.HashMap; import java.util.List; @@ -143,7 +143,7 @@ public class ArtifactTestUtils { } public String readstringFromFile(String resourceFile) throws IOException, URISyntaxException { - return Files.lines(Paths.get(getResource(resourceFile).toURI())).collect(Collectors.joining()); + return Files.lines(Path.of(getResource(resourceFile).toURI())).collect(Collectors.joining()); } /** diff --git a/src/test/resources/application.properties b/src/test/resources/application.properties index d4ab747..02aec7c 100644 --- a/src/test/resources/application.properties +++ b/src/test/resources/application.properties @@ -1,3 +1,6 @@ -spring.sleuth.enabled=false +# Logging pattern containing traceId and spanId; no longer provided through Sleuth by default +logging.pattern.level="%5p [${spring.application.name:},%X{traceId:-},%X{spanId:-}]" +management.tracing.enabled=false server.port= 0 spring.main.allow-bean-definition-overriding= true +logging.level.root=INFO diff --git a/src/test/resources/response/response.json b/src/test/resources/response/response.json index 3ddc052..d7d6721 100644 --- a/src/test/resources/response/response.json +++ b/src/test/resources/response/response.json @@ -1 +1 @@ -[{"name":"AAI-29NFOD_S-service-1.0.xml","type":"MODEL","payload":"\n 29NFOD_S-invariant-id\n service\n Network L1-3\n \n \n 29NFOD_S-version-id\n 29NFOD_S\n 1.0\n 29NFOD\n \n \n T\n unbounded\n \n \n T\n unbounded\n \n \n \n model-ver\n \n model-ver.model-version-id\n 29NFOD 0-version-id\n \n \n model.model-invariant-id\n 29NFOD 0-invariant-id\n \n \n \n \n \n \n \n model-ver\n \n model-ver.model-version-id\n service-instance-version-id\n \n \n model.model-invariant-id\n service-instance-invariant-id\n \n \n \n \n \n \n \n"},{"name":"AAI-29NFOD-resource-1.0.xml","type":"MODEL","payload":"\n 29NFOD 0-invariant-id\n resource\n \n \n 29NFOD 0-version-id\n 29NFOD\n 1.0\n 29NFOD\n \n \n T\n unbounded\n \n \n \n model-ver\n \n model-ver.model-version-id\n generic-vnf-version-id\n \n \n model.model-invariant-id\n generic-vnf-invariant-id\n \n \n \n \n \n \n \n"},{"name":"vnfVendorImageConfigurations","type":"VNFCATALOG","payload":"[{\"application\":\"VM00\",\"application-vendor\":\"29NFOD\",\"application-version\":\"3.16.1\"},{\"application\":\"VM00\",\"application-vendor\":\"29NFOD\",\"application-version\":\"3.16.9\"},{\"application\":\"VM01\",\"application-vendor\":\"29NFOD\",\"application-version\":\"3.16.1\"},{\"application\":\"VM01\",\"application-vendor\":\"29NFOD\",\"application-version\":\"3.16.9\"}]"}] +[{"name":"AAI-29NFOD_S-service-1.0.xml","type":"MODEL","payload":"\n 29NFOD_S-invariant-id\n service\n Network L1-3\n \n \n 29NFOD_S-version-id\n 29NFOD_S\n 1.0\n 29NFOD\n \n \n \n \n model-ver\n \n model-ver.model-version-id\n service-instance-version-id\n \n \n model.model-invariant-id\n service-instance-invariant-id\n \n \n \n T\n unbounded\n \n \n \n \n model-ver\n \n model-ver.model-version-id\n 29NFOD 0-version-id\n \n \n model.model-invariant-id\n 29NFOD 0-invariant-id\n \n \n \n T\n unbounded\n \n \n \n \n \n \n \n"},{"name":"AAI-29NFOD-resource-1.0.xml","type":"MODEL","payload":"\n 29NFOD 0-invariant-id\n resource\n \n \n 29NFOD 0-version-id\n 29NFOD\n 1.0\n 29NFOD\n \n \n \n \n model-ver\n \n model-ver.model-version-id\n generic-vnf-version-id\n \n \n model.model-invariant-id\n generic-vnf-invariant-id\n \n \n \n T\n unbounded\n \n \n \n \n \n"},{"name":"vnfVendorImageConfigurations","type":"VNFCATALOG","payload":"[{\"application\":\"VM00\",\"application-vendor\":\"29NFOD\",\"application-version\":\"3.16.1\"},{\"application\":\"VM00\",\"application-vendor\":\"29NFOD\",\"application-version\":\"3.16.9\"},{\"application\":\"VM01\",\"application-vendor\":\"29NFOD\",\"application-version\":\"3.16.1\"},{\"application\":\"VM01\",\"application-vendor\":\"29NFOD\",\"application-version\":\"3.16.9\"}]"}] \ No newline at end of file diff --git a/src/test/resources/response/responseWithVersionLessThan1.json b/src/test/resources/response/responseWithVersionLessThan1.json index 9a22699..1349cef 100644 --- a/src/test/resources/response/responseWithVersionLessThan1.json +++ b/src/test/resources/response/responseWithVersionLessThan1.json @@ -1 +1 @@ -[{"name":"AAI-29NFOD_S-service-0.1.xml","type":"MODEL","payload":"\n 29NFOD_S-invariant-id\n service\n Network L1-3\n \n \n 29NFOD_S-version-id\n 29NFOD_S\n 0.1\n 29NFOD\n \n \n T\n unbounded\n \n \n T\n unbounded\n \n \n \n model-ver\n \n model-ver.model-version-id\n 29NFOD 0-version-id\n \n \n model.model-invariant-id\n 29NFOD 0-invariant-id\n \n \n \n \n \n \n \n model-ver\n \n model-ver.model-version-id\n service-instance-version-id\n \n \n model.model-invariant-id\n service-instance-invariant-id\n \n \n \n \n \n \n \n"},{"name":"AAI-29NFOD-resource-1.0.xml","type":"MODEL","payload":"\n 29NFOD 0-invariant-id\n resource\n \n \n 29NFOD 0-version-id\n 29NFOD\n 1.0\n 29NFOD\n \n \n T\n unbounded\n \n \n \n model-ver\n \n model-ver.model-version-id\n generic-vnf-version-id\n \n \n model.model-invariant-id\n generic-vnf-invariant-id\n \n \n \n \n \n \n \n"},{"name":"vnfVendorImageConfigurations","type":"VNFCATALOG","payload":"[{\"application\":\"VM00\",\"application-vendor\":\"29NFOD\",\"application-version\":\"3.16.1\"},{\"application\":\"VM00\",\"application-vendor\":\"29NFOD\",\"application-version\":\"3.16.9\"},{\"application\":\"VM01\",\"application-vendor\":\"29NFOD\",\"application-version\":\"3.16.1\"},{\"application\":\"VM01\",\"application-vendor\":\"29NFOD\",\"application-version\":\"3.16.9\"}]"}] +[{"name":"AAI-29NFOD_S-service-0.1.xml","type":"MODEL","payload":"\n 29NFOD_S-invariant-id\n service\n Network L1-3\n \n \n 29NFOD_S-version-id\n 29NFOD_S\n 0.1\n 29NFOD\n \n \n \n \n model-ver\n \n model-ver.model-version-id\n service-instance-version-id\n \n \n model.model-invariant-id\n service-instance-invariant-id\n \n \n \n T\n unbounded\n \n \n \n \n model-ver\n \n model-ver.model-version-id\n 29NFOD 0-version-id\n \n \n model.model-invariant-id\n 29NFOD 0-invariant-id\n \n \n \n T\n unbounded\n \n \n \n \n \n \n \n"},{"name":"AAI-29NFOD-resource-1.0.xml","type":"MODEL","payload":"\n 29NFOD 0-invariant-id\n resource\n \n \n 29NFOD 0-version-id\n 29NFOD\n 1.0\n 29NFOD\n \n \n \n \n model-ver\n \n model-ver.model-version-id\n generic-vnf-version-id\n \n \n model.model-invariant-id\n generic-vnf-invariant-id\n \n \n \n T\n unbounded\n \n \n \n \n \n"},{"name":"vnfVendorImageConfigurations","type":"VNFCATALOG","payload":"[{\"application\":\"VM00\",\"application-vendor\":\"29NFOD\",\"application-version\":\"3.16.1\"},{\"application\":\"VM00\",\"application-vendor\":\"29NFOD\",\"application-version\":\"3.16.9\"},{\"application\":\"VM01\",\"application-vendor\":\"29NFOD\",\"application-version\":\"3.16.1\"},{\"application\":\"VM01\",\"application-vendor\":\"29NFOD\",\"application-version\":\"3.16.9\"}]"}] \ No newline at end of file diff --git a/src/test/resources/response/validNoVnfConfigurationResponse.json b/src/test/resources/response/validNoVnfConfigurationResponse.json index c6b4dd8..4b73ec8 100644 --- a/src/test/resources/response/validNoVnfConfigurationResponse.json +++ b/src/test/resources/response/validNoVnfConfigurationResponse.json @@ -1 +1 @@ -[{"name":"AAI-Vscpaas_Test-service-1.0.xml","type":"MODEL","payload":"\n a8db6285-20ca-4fd3-9c85-e267bdb013f9\n service\n Network L4+\n \n \n 7f7f6fa4-275a-488f-8b3e-691a0765d57e\n Vscpaas_Test\n 1.0\n Vscpaas_Test\n \n \n T\n unbounded\n \n \n T\n unbounded\n \n \n \n model-ver\n \n model-ver.model-version-id\n 2e42bac2-318a-410c-b8ff-3b3a31351be7\n \n \n model.model-invariant-id\n b2b88a73-5c55-4984-99dd-a35c55935d14\n \n \n \n \n \n \n \n model-ver\n \n model-ver.model-version-id\n service-instance-version-id\n \n \n model.model-invariant-id\n service-instance-invariant-id\n \n \n \n \n \n \n \n"},{"name":"AAI-ScpTestVsp..asc_heat-int2..module-0-resource-1.xml","type":"MODEL","payload":"\n 6f288081-b321-47c9-b038-6de70079a3bf\n resource\n \n \n 06258c44-ab48-4b4b-a5db-16892f7d1e76\n ScpTestVsp..asc_heat-int2..module-0\n 1\n \n \n \n T\n unbounded\n \n \n T\n unbounded\n \n \n F\n unbounded\n \n \n \n model-ver\n \n model-ver.model-version-id\n image-version-id\n \n \n model.model-invariant-id\n image-invariant-id\n \n \n \n \n \n F\n unbounded\n \n \n \n model-ver\n \n model-ver.model-version-id\n flavor-version-id\n \n \n model.model-invariant-id\n flavor-invariant-id\n \n \n \n \n \n T\n unbounded\n \n \n \n model-ver\n \n model-ver.model-version-id\n vnfc-version-id\n \n \n model.model-invariant-id\n vnfc-invariant-id\n \n \n \n \n \n F\n unbounded\n \n \n \n model-ver\n \n model-ver.model-version-id\n tenant-version-id\n \n \n model.model-invariant-id\n tenant-invariant-id\n \n \n \n \n \n \n \n model-ver\n \n model-ver.model-version-id\n vserver-version-id\n \n \n model.model-invariant-id\n vserver-invariant-id\n \n \n \n \n \n T\n unbounded\n \n \n \n model-ver\n \n model-ver.model-version-id\n l3-network-version-id\n \n \n model.model-invariant-id\n l3-network-invariant-id\n \n \n \n \n \n \n \n model-ver\n \n model-ver.model-version-id\n vf-module-version-id\n \n \n model.model-invariant-id\n vf-module-invariant-id\n \n \n \n \n \n \n \n"},{"name":"AAI-SCP-Test-VSP-resource-1.0.xml","type":"MODEL","payload":"\n b2b88a73-5c55-4984-99dd-a35c55935d14\n resource\n \n \n 2e42bac2-318a-410c-b8ff-3b3a31351be7\n SCP-Test-VSP\n 1.0\n SCP Test VSP\n \n \n T\n unbounded\n \n \n T\n unbounded\n \n \n \n model-ver\n \n model-ver.model-version-id\n 06258c44-ab48-4b4b-a5db-16892f7d1e76\n \n \n model.model-invariant-id\n 6f288081-b321-47c9-b038-6de70079a3bf\n \n \n \n \n \n \n \n model-ver\n \n model-ver.model-version-id\n generic-vnf-version-id\n \n \n model.model-invariant-id\n generic-vnf-invariant-id\n \n \n \n \n \n \n \n"}] +[{"name":"AAI-Vscpaas_Test-service-1.0.xml","type":"MODEL","payload":"\n a8db6285-20ca-4fd3-9c85-e267bdb013f9\n service\n Network L4+\n \n \n 7f7f6fa4-275a-488f-8b3e-691a0765d57e\n Vscpaas_Test\n 1.0\n Vscpaas_Test\n \n \n \n \n model-ver\n \n model-ver.model-version-id\n service-instance-version-id\n \n \n model.model-invariant-id\n service-instance-invariant-id\n \n \n \n T\n unbounded\n \n \n \n \n model-ver\n \n model-ver.model-version-id\n 2e42bac2-318a-410c-b8ff-3b3a31351be7\n \n \n model.model-invariant-id\n b2b88a73-5c55-4984-99dd-a35c55935d14\n \n \n \n T\n unbounded\n \n \n \n \n \n \n \n"},{"name":"AAI-ScpTestVsp..asc_heat-int2..module-0-resource-1.xml","type":"MODEL","payload":"\n 6f288081-b321-47c9-b038-6de70079a3bf\n resource\n \n \n 06258c44-ab48-4b4b-a5db-16892f7d1e76\n ScpTestVsp..asc_heat-int2..module-0\n 1\n \n \n \n \n \n model-ver\n \n model-ver.model-version-id\n vf-module-version-id\n \n \n model.model-invariant-id\n vf-module-invariant-id\n \n \n \n T\n unbounded\n \n \n \n \n model-ver\n \n model-ver.model-version-id\n vserver-version-id\n \n \n model.model-invariant-id\n vserver-invariant-id\n \n \n \n T\n unbounded\n \n \n \n \n model-ver\n \n model-ver.model-version-id\n image-version-id\n \n \n model.model-invariant-id\n image-invariant-id\n \n \n \n F\n unbounded\n \n \n \n \n \n model-ver\n \n model-ver.model-version-id\n flavor-version-id\n \n \n model.model-invariant-id\n flavor-invariant-id\n \n \n \n F\n unbounded\n \n \n \n \n \n model-ver\n \n model-ver.model-version-id\n vnfc-version-id\n \n \n model.model-invariant-id\n vnfc-invariant-id\n \n \n \n T\n unbounded\n \n \n \n \n \n model-ver\n \n model-ver.model-version-id\n tenant-version-id\n \n \n model.model-invariant-id\n tenant-invariant-id\n \n \n \n F\n unbounded\n \n \n \n \n \n \n \n model-ver\n \n model-ver.model-version-id\n l3-network-version-id\n \n \n model.model-invariant-id\n l3-network-invariant-id\n \n \n \n T\n unbounded\n \n \n \n \n \n \n \n"},{"name":"AAI-SCP-Test-VSP-resource-1.0.xml","type":"MODEL","payload":"\n b2b88a73-5c55-4984-99dd-a35c55935d14\n resource\n \n \n 2e42bac2-318a-410c-b8ff-3b3a31351be7\n SCP-Test-VSP\n 1.0\n SCP Test VSP\n \n \n \n \n model-ver\n \n model-ver.model-version-id\n generic-vnf-version-id\n \n \n model.model-invariant-id\n generic-vnf-invariant-id\n \n \n \n T\n unbounded\n \n \n \n \n model-ver\n \n model-ver.model-version-id\n 06258c44-ab48-4b4b-a5db-16892f7d1e76\n \n \n model.model-invariant-id\n 6f288081-b321-47c9-b038-6de70079a3bf\n \n \n \n T\n unbounded\n \n \n \n \n \n \n \n"}] \ No newline at end of file