Update traversal to use spring boot 2 35/112435/1
authorMaharajh, Robby (rx2202) <rx2202@us.att.com>
Wed, 9 Sep 2020 23:57:16 +0000 (19:57 -0400)
committerMaharajh, Robby (rx2202) <rx2202@us.att.com>
Wed, 9 Sep 2020 23:57:19 +0000 (19:57 -0400)
Issue-ID: AAI-2886
Issue-ID: AAI-2527
Change-Id: Id6432ff82b0377ff44115d5b42607d1926431f7b
Signed-off-by: Maharajh, Robby (rx2202) <rx2202@us.att.com>
19 files changed:
aai-traversal/pom.xml
aai-traversal/src/main/java/org/onap/aai/TraversalApp.java
aai-traversal/src/main/java/org/onap/aai/config/aaf/AafAuthorizationFilter.java
aai-traversal/src/main/java/org/onap/aai/config/aaf/AafFilter.java
aai-traversal/src/main/java/org/onap/aai/web/JerseyConfiguration.java
aai-traversal/src/main/java/org/onap/aai/web/LocalHostAccessLog.java
aai-traversal/src/main/resources/application.properties
aai-traversal/src/main/resources/logback.xml
aai-traversal/src/test/java/org/onap/aai/AAIGremlinQueryTest.java
aai-traversal/src/test/java/org/onap/aai/QueryParameterTest.java
aai-traversal/src/test/java/org/onap/aai/SubgraphPruneTest.java
aai-traversal/src/test/java/org/onap/aai/TraversalTestConfiguration.java
aai-traversal/src/test/java/org/onap/aai/rest/AbstractSpringRestTest.java
aai-traversal/src/test/java/org/onap/aai/rest/BadQueryFormatTest.java
aai-traversal/src/test/java/org/onap/aai/rest/QueryConsumerTest.java
aai-traversal/src/test/java/org/onap/aai/rest/history/AbstractSpringHistoryRestTest.java
aai-traversal/src/test/resources/application-onap-test.properties
aai-traversal/src/test/resources/application-test.properties
pom.xml

index baa56d5..3a74bca 100644 (file)
@@ -34,7 +34,6 @@
        <artifactId>aai-traversal</artifactId>
 
        <properties>
-         <aai.schema.service.version>1.7.3</aai.schema.service.version>
          <mockito.core.version>1.10.19</mockito.core.version>
                <java.version>1.8</java.version>
                <start-class>org.onap.aai.TraversalApp</start-class>
@@ -93,8 +92,8 @@
                <schema.version.app.root.start>v11</schema.version.app.root.start>
                <schema.version.namespace.change.start>v12</schema.version.namespace.change.start>
                <schema.version.edge.label.start>v12</schema.version.edge.label.start>
-               <schema.version.api.default>v16</schema.version.api.default>
-               <schema.version.list>v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20</schema.version.list>
+               <schema.version.api.default>v21</schema.version.api.default>
+               <schema.version.list>v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21</schema.version.list>
                <schema.uri.base.path>/aai</schema.uri.base.path>
                <!-- End of Default ONAP Schema Properties -->
        </properties>
                <artifactId>spring-boot-starter-parent</artifactId> <type>pom</type> <scope>import</scope> 
                </dependency> </dependencies> </dependencyManagement> -->
        <dependencies>
+               <dependency>
+                   <groupId>javax.jms</groupId>
+                   <artifactId>javax.jms-api</artifactId>
+                   <version>2.0.1</version>
+               </dependency>
+               <dependency>
+                   <groupId>javax.ws.rs</groupId>
+                   <artifactId>javax.ws.rs-api</artifactId>
+                   <version>2.1</version>
+               </dependency>
+               <dependency>
+                   <groupId>javax.xml.bind</groupId>
+                   <artifactId>jaxb-api</artifactId>
+               </dependency>
+               <dependency>
+                   <groupId>com.sun.xml.bind</groupId>
+                   <artifactId>jaxb-impl</artifactId>
+               </dependency>
+               <dependency>
+                   <groupId>com.sun.xml.bind</groupId>
+                   <artifactId>jaxb-core</artifactId>
+               </dependency>
         <dependency>
             <groupId>net.sf.jopt-simple</groupId>
             <artifactId>jopt-simple</artifactId>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava</artifactId>
                </dependency>
-               <dependency>
-                       <groupId>org.janusgraph</groupId>
-                       <artifactId>janusgraph-core</artifactId>
-                       <exclusions>
-                               <exclusion>
-                                       <groupId>org.slf4j</groupId>
-                                       <artifactId>slf4j-log4j12</artifactId>
-                               </exclusion>
-                               <exclusion>
-                                       <groupId>dom4j</groupId>
-                                       <artifactId>dom4j</artifactId>
-                               </exclusion>
-                       </exclusions>
-               </dependency>
-               <dependency>
-                       <groupId>org.janusgraph</groupId>
-                       <artifactId>janusgraph-cassandra</artifactId>
-                       <exclusions>
-                               <exclusion>
-                                       <groupId>org.slf4j</groupId>
-                                       <artifactId>slf4j-log4j12</artifactId>
-                               </exclusion>
-                       </exclusions>
-               </dependency>
                <dependency>
                        <groupId>org.janusgraph</groupId>
                        <artifactId>janusgraph-cql</artifactId>
                                </exclusion>
                        </exclusions>
                </dependency>
-               <!-- <dependency> <groupId>org.janusgraph</groupId> <artifactId>janusgraph-hbase</artifactId> 
-                       <exclusions> <exclusion> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> 
-                       </exclusion> </exclusions> </dependency> -->
-               <!-- indirect janusgraph-cassandra dependency need to be newer than default 
-                       one in order to support multiple cpu archs -->
                <dependency>
                        <groupId>com.github.jnr</groupId>
                        <artifactId>jnr-ffi</artifactId>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-jetty</artifactId>
                </dependency>
-               <dependency>
-                       <groupId>org.springframework.boot</groupId>
-                       <artifactId>spring-boot-starter-jersey</artifactId>
-                       <exclusions>
-                               <exclusion>
-                                       <groupId>org.springframework.boot</groupId>
-                                       <artifactId>spring-boot-starter-tomcat</artifactId>
-                               </exclusion>
-                       </exclusions>
-               </dependency>
                <dependency>
                        <groupId>org.onap.aaf.authz</groupId>
                        <artifactId>aaf-cadi-aaf</artifactId>
                                                                        <artifactId>aai-schema</artifactId>
                                                                        <outputDirectory>${project.basedir}/src/main/resources/schema/</outputDirectory>
                                                                        <includes>**/oxm/**/*.xml</includes>
+                                                                       <version>${aai.schema.service.version}</version>
                                                                </artifactItem>
                                                        </artifactItems>
                                                        <!-- other configurations here -->
                                                                        <artifactId>aai-schema</artifactId>
                                                                        <outputDirectory>${project.basedir}/src/main/resources/schema/</outputDirectory>
                                                                        <includes>**/dbedgerules/**/*.json</includes>
+                                                                       <version>${aai.schema.service.version}</version>
                                                                </artifactItem>
                                                        </artifactItems>
                                                        <!-- other configurations here -->
index 64f99b9..56573bc 100644 (file)
@@ -116,8 +116,6 @@ public class TraversalApp {
 
        @PreDestroy
        public void cleanup(){
-               contextMap = MDC.getCopyOfContextMap();
-               MDC.setContextMap (contextMap);
                logger.debug("Traversal MicroService stopped");
                logger.info("Shutting down both realtime and cached connections");
                AAIGraph.getInstance().graphShutdown();
index 9382946..4cfcb91 100644 (file)
@@ -24,7 +24,7 @@ import com.att.eelf.configuration.EELFManager;
 import org.apache.commons.io.IOUtils;
 import org.onap.aai.Profiles;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.web.filter.OrderedRequestContextFilter;
+import org.springframework.boot.web.servlet.filter.OrderedRequestContextFilter;
 import org.springframework.context.annotation.Profile;
 import org.springframework.context.annotation.PropertySource;
 import org.springframework.stereotype.Component;
index 51e0c17..6ab97ac 100644 (file)
@@ -25,7 +25,7 @@ import org.onap.aaf.cadi.PropAccess;
 import org.onap.aaf.cadi.filter.CadiFilter;
 import org.onap.aai.Profiles;
 import org.onap.aai.TraversalApp;
-import org.springframework.boot.web.filter.OrderedRequestContextFilter;
+import org.springframework.boot.web.servlet.filter.OrderedRequestContextFilter;
 import org.springframework.context.annotation.Profile;
 import org.springframework.stereotype.Component;
 
index e6cf080..39aa31c 100644 (file)
  */
 package org.onap.aai.web;
 
-import jersey.repackaged.com.google.common.collect.Sets;
-import org.glassfish.jersey.filter.LoggingFilter;
+import com.google.common.collect.Sets;
 import org.glassfish.jersey.server.ResourceConfig;
-import org.onap.aai.aailog.logs.AaiDebugLog;
 import org.onap.aai.rest.*;
 import org.onap.aai.rest.search.ModelAndNamedQueryRestProvider;
 import org.onap.aai.rest.search.SearchProvider;
@@ -50,11 +48,6 @@ public class JerseyConfiguration {
     private static final Logger log = Logger.getLogger(JerseyConfiguration.class.getName());
     private static final org.slf4j.Logger logger = LoggerFactory.getLogger(JerseyConfiguration.class.getName());
 
-    private static AaiDebugLog debugLog = new AaiDebugLog();
-    static {
-        debugLog.setupMDC();
-    }
-
     private static final String LOGGING_ENABLED_PROPERTY = "aai.request.logging.enabled";
     private static final boolean ENABLE_RESPONSE_LOGGING = false;
 
@@ -80,7 +73,6 @@ public class JerseyConfiguration {
                 CQ2GremlinTest.class
         );
         Set<Class<?>> filterClasses = Sets.newHashSet(
-                org.onap.aai.aailog.filter.AaiAuditLogContainerFilter.class,
                 org.onap.aai.interceptors.pre.RequestTransactionLogging.class,
                 org.onap.aai.interceptors.pre.HeaderValidation.class,
                 org.onap.aai.interceptors.pre.HttpHeaderInterceptor.class,
@@ -94,9 +86,6 @@ public class JerseyConfiguration {
                 org.onap.aai.interceptors.post.ResponseTransactionLogging.class,
                 org.onap.aai.interceptors.post.ResponseHeaderManipulation.class
         );
-        if (isLoggingEnabled()) {
-            logRequests(resourceConfig);
-        }
         resourceConfig.registerClasses(classes);
         logger.debug("REGISTERED CLASSES " + classes.toString());
 
@@ -126,10 +115,6 @@ public class JerseyConfiguration {
         return comparingInt(clazz -> clazz.getAnnotation(Priority.class).value());
     }
 
-    private void logRequests(ResourceConfig resourceConfig) {
-        resourceConfig.register(new LoggingFilter(log, ENABLE_RESPONSE_LOGGING));
-    }
-
     private boolean isLoggingEnabled() {
         return parseBoolean(environment.getProperty(LOGGING_ENABLED_PROPERTY));
     }
index 4bc3300..d2a4e89 100644 (file)
@@ -24,9 +24,8 @@ import org.eclipse.jetty.server.handler.HandlerCollection;
 import org.eclipse.jetty.server.handler.RequestLogHandler;
 import org.eclipse.jetty.util.thread.QueuedThreadPool;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
-import org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainerFactory;
-import org.springframework.boot.context.embedded.jetty.JettyServerCustomizer;
+import org.springframework.boot.web.embedded.jetty.JettyServletWebServerFactory;
+import org.springframework.boot.web.servlet.server.AbstractServletWebServerFactory;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
@@ -35,14 +34,14 @@ import java.util.Arrays;
 @Configuration
 public class LocalHostAccessLog {
 
-       @Bean
-       public EmbeddedServletContainerFactory jettyConfigBean(
+    @Bean
+    public AbstractServletWebServerFactory jettyConfigBean(
             @Value("${jetty.threadPool.maxThreads:200}") final String maxThreads,
             @Value("${jetty.threadPool.minThreads:8}") final String minThreads
     ){
 
-               JettyEmbeddedServletContainerFactory jef = new JettyEmbeddedServletContainerFactory();
-               jef.addServerCustomizers((JettyServerCustomizer) server -> {
+        JettyServletWebServerFactory jef = new JettyServletWebServerFactory();
+        jef.addServerCustomizers((org.springframework.boot.web.embedded.jetty.JettyServerCustomizer) server -> {
 
             HandlerCollection handlers = new HandlerCollection();
 
@@ -63,6 +62,6 @@ public class LocalHostAccessLog {
             threadPool.setMaxThreads(Integer.valueOf(maxThreads));
             threadPool.setMinThreads(Integer.valueOf(minThreads));
         });
-               return jef;
-       }
+        return jef;
+    }
 }
index 6e4f3be..a538a58 100644 (file)
@@ -6,8 +6,9 @@ info.build.version=1.1.0
 
 spring.application.name=aai-traversal
 spring.jersey.type=filter
+spring.main.allow-bean-definition-overriding=true
 
-server.contextPath=/
+server.servlet.context-path=/
 spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
 
 spring.jersey.application-path=${schema.uri.base.path}
@@ -46,7 +47,7 @@ server.ssl.key-store-password=password(OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0)
 server.ssl.trust-store=${server.certs.location}${server.truststore.name}
 server.ssl.trust-store-password=password(OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0)
 
-schema.version.list=v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20
+schema.version.list=v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21
 # Specifies which component should the oxm be looking at
 schema.source.name=onap
 # End of Internal Specific Properties
@@ -83,7 +84,7 @@ schema.version.namespace.change.start=v12
 # Specifies from which version should the client start seeing the edge label in payload
 schema.version.edge.label.start=v12
 # Specifies the version that the application should default to
-schema.version.api.default=v2
+schema.version.api.default=v21
 
 schema.translator.list=config
 schema.service.base.url=https://localhost:8452/aai/schema-service/v1/
index c6fe5c7..877876e 100644 (file)
        <logger name="org.onap.aai" level="DEBUG" additivity="false">
                <appender-ref ref="asyncDEBUG" />
                <appender-ref ref="asyncSANE" />
+               <appender-ref ref="STDOUT" />
        </logger>
        <logger name="org.onap.aai.aaf" level="DEBUG" additivity="false">
                <appender-ref ref="asyncAUTH" />
 
        <root level="DEBUG">
                <appender-ref ref="external" />
+               <appender-ref ref="STDOUT" />
        </root>
 </configuration>
index 6d2d5ff..2009389 100644 (file)
@@ -32,7 +32,7 @@ import org.onap.aai.util.AAIConfig;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.context.embedded.LocalServerPort;
+import org.springframework.boot.web.server.LocalServerPort;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.Import;
 import org.springframework.http.*;
index 7703df9..faf0160 100644 (file)
@@ -27,7 +27,7 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.onap.aai.config.PropertyPasswordConfiguration;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.context.embedded.LocalServerPort;
+import org.springframework.boot.web.server.LocalServerPort;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.Import;
 import org.springframework.http.*;
index bc43979..42a4542 100644 (file)
@@ -24,7 +24,7 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.onap.aai.config.PropertyPasswordConfiguration;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.context.embedded.LocalServerPort;
+import org.springframework.boot.web.server.LocalServerPort;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.Import;
 import org.springframework.http.*;
index 32ab70e..516c6b9 100644 (file)
@@ -21,7 +21,6 @@ package org.onap.aai;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import com.att.eelf.configuration.EELFManager;
 import org.apache.http.client.HttpClient;
 import org.apache.http.impl.client.HttpClients;
 import org.apache.http.ssl.SSLContextBuilder;
@@ -83,7 +82,7 @@ public class TraversalTestConfiguration {
                     .build();
 
             restTemplate = builder
-                    .requestFactory(new HttpComponentsClientHttpRequestFactory(client))
+                    .requestFactory(() -> new HttpComponentsClientHttpRequestFactory(client))
                     .build();
         }else {
             restTemplate = builder.build();
index b82d751..de98a8c 100644 (file)
@@ -33,7 +33,7 @@ import org.onap.aai.exceptions.AAIException;
 import org.onap.aai.nodes.NodeIngestor;
 import org.onap.aai.util.AAIConfig;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.context.embedded.LocalServerPort;
+import org.springframework.boot.web.server.LocalServerPort;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.Import;
 import org.springframework.http.HttpEntity;
index 5edf12d..ea31302 100644 (file)
@@ -28,7 +28,7 @@ import org.onap.aai.TraversalApp;
 import org.onap.aai.TraversalTestConfiguration;
 import org.onap.aai.config.PropertyPasswordConfiguration;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.context.embedded.LocalServerPort;
+import org.springframework.boot.web.server.LocalServerPort;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.Import;
 import org.springframework.http.*;
index cf81b47..2570690 100644 (file)
@@ -33,7 +33,7 @@ import org.onap.aai.config.PropertyPasswordConfiguration;
 import org.onap.aai.dbmap.AAIGraph;
 import org.onap.aai.exceptions.AAIException;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.context.embedded.LocalServerPort;
+import org.springframework.boot.web.server.LocalServerPort;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.Import;
 import org.springframework.http.*;
index f671135..1d2eac1 100644 (file)
@@ -32,7 +32,7 @@ import org.onap.aai.exceptions.AAIException;
 import org.onap.aai.nodes.NodeIngestor;
 import org.onap.aai.util.AAIConfig;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.context.embedded.LocalServerPort;
+import org.springframework.boot.web.server.LocalServerPort;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.Import;
 import org.springframework.http.HttpEntity;
index c8e9f6a..132bc6f 100644 (file)
@@ -57,7 +57,7 @@ schema.ingest.file=${server.local.startpath}/application-test.properties
 # Schema Version Related Attributes
 schema.uri.base.path=/aai
 # Lists all of the versions in the schema
-schema.version.list=v10,v11,v12,v13,v14,v15,v16,v17,v18,v19
+schema.version.list=v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21
 # Specifies from which version should the depth parameter to default to zero
 schema.version.depth.start=v10
 # Specifies from which version should the related link be displayed in response payload
@@ -70,5 +70,5 @@ schema.version.namespace.change.start=v12
 # Specifies from which version should the client start seeing the edge label in payload
 schema.version.edge.label.start=v12
 # Specifies the version that the application should default to
-schema.version.api.default=v19
-schema.translator.list=config
\ No newline at end of file
+schema.version.api.default=v21
+schema.translator.list=config
index eae212b..ec45671 100644 (file)
@@ -60,7 +60,7 @@ schema.ingest.file=${server.local.startpath}/application-test.properties
 # Schema Version Related Attributes
 schema.uri.base.path=/aai
 # Lists all of the versions in the schema
-schema.version.list=v10,v11,v12,v13,v14,v15,v16,v17,v18,v19
+schema.version.list=v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21
 # Specifies from which version should the depth parameter to default to zero
 schema.version.depth.start=v10
 # Specifies from which version should the related link be displayed in response payload
@@ -73,6 +73,6 @@ schema.version.namespace.change.start=v12
 # Specifies from which version should the client start seeing the edge label in payload
 schema.version.edge.label.start=v12
 # Specifies the version that the application should default to
-schema.version.api.default=v19
+schema.version.api.default=v21
 
 schema.translator.list=config
diff --git a/pom.xml b/pom.xml
index 5ccdcec..6f0ad1d 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.aai.aai-common</groupId>
         <artifactId>aai-parent</artifactId>
-        <version>1.6.10</version>
+        <version>1.7.0</version>
     </parent>
     <groupId>org.onap.aai.traversal</groupId>
     <artifactId>traversal</artifactId>
@@ -41,7 +41,7 @@
             Nexus Proxy Properties and Snapshot Locations
             Ideally this can be overwritten at runtime per internal environment specific values at runtime
         -->
-       <aai.common.version>1.7.0-SNAPSHOT</aai.common.version>
+        <aai.common.version>1.7.0</aai.common.version>
         <nexusproxy>https://nexus.onap.org</nexusproxy>
         <site.path>/content/sites/site/org/onap/aai/traversal/${project.artifactId}/${project.version}</site.path>
         <release.path>/content/repositories/releases/</release.path>
@@ -49,6 +49,7 @@
         <staging.path>/content/repositories/staging/</staging.path>
         <!-- GMaven plugin uses this property to figure out the name of the docker tag -->
         <aai.project.version>${project.version}</aai.project.version>
+        <aai.schema.service.version>1.7.9</aai.schema.service.version>
     </properties>
     <build>
         <pluginManagement>