Add java 11 code support 80/117080/4 1.8.4
authorYoo, Brian (by703c) <by703c@att.com>
Fri, 22 Jan 2021 18:50:01 +0000 (13:50 -0500)
committerHarish Venkata Kajur <vk250x@att.com>
Thu, 11 Feb 2021 23:41:46 +0000 (18:41 -0500)
Issue-ID: AAI-3009
Change-Id: Ic65c49e6071f240ec9fe583fa939cc965f928fc9
Signed-off-by: Yoo, Brian (by703c) <by703c@att.com>
Signed-off-by: Harish Venkata Kajur <vk250x@att.com>
aai-queries/pom.xml
aai-schema-gen/pom.xml
aai-schema-service/pom.xml
aai-schema-service/src/main/docker/Dockerfile
aai-schema-service/src/main/docker/docker-entrypoint.sh
aai-schema-service/src/main/java/org/onap/aai/schemaservice/nodeschema/NodeIngestor.java
aai-schema/pom.xml
pom.xml

index 491e9ca..b7d7cf0 100644 (file)
             <artifactId>spring-boot-test</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>javax.xml.bind</groupId>
+            <artifactId>jaxb-api</artifactId>
+            <version>2.3.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.persistence</groupId>
+            <artifactId>eclipselink</artifactId>
+            <version>3.0.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.persistence</groupId>
+            <artifactId>org.eclipse.persistence.moxy</artifactId>
+            <version>3.0.0</version>
+        </dependency>
     </dependencies>
     <build>
         <plugins>
index 16acc81..a4217f6 100644 (file)
             </build>
         </profile>
     </profiles>
-
     <dependencies>
+        <dependency>
+            <groupId>javax.annotation</groupId>
+            <artifactId>javax.annotation-api</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>javax.xml.bind</groupId>
+            <artifactId>jaxb-api</artifactId>
+            <version>2.3.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.persistence</groupId>
+            <artifactId>eclipselink</artifactId>
+            <version>3.0.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.persistence</groupId>
+            <artifactId>org.eclipse.persistence.moxy</artifactId>
+            <version>3.0.0</version>
+        </dependency>
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-context</artifactId>
index 56410a5..8bcd2d4 100644 (file)
@@ -50,7 +50,7 @@
         </aai.build.directory>
         <aai.docker.namespace>onap</aai.docker.namespace>
         <aai.base.image>alpine</aai.base.image>
-        <aai.base.image.version>1.6.0</aai.base.image.version>
+        <aai.base.image.version>1.8.1</aai.base.image.version>
 
         <maven.skip.tests>true</maven.skip.tests>
 
                             </execution>
                             <execution>
                                 <id>generate-images</id>
-                                <phase>package</phase>
+                                <phase>verify</phase>
                                 <goals>
                                     <goal>build</goal>
                                 </goals>
         </profile>
     </profiles>
     <dependencies>
+        <dependency>
+            <groupId>jakarta.xml.bind</groupId>
+            <artifactId>jakarta.xml.bind-api</artifactId>
+            <version>3.0.0</version>
+        </dependency>
         <dependency>
             <groupId>javax.annotation</groupId>
             <artifactId>javax.annotation-api</artifactId>
         <dependency>
             <groupId>javax.xml.bind</groupId>
             <artifactId>jaxb-api</artifactId>
+            <version>2.3.0</version>
         </dependency>
         <dependency>
             <groupId>org.eclipse.persistence</groupId>
             <artifactId>eclipselink</artifactId>
+            <version>3.0.0</version>
         </dependency>
         <dependency>
             <groupId>org.eclipse.persistence</groupId>
             <artifactId>org.eclipse.persistence.moxy</artifactId>
+            <version>3.0.0</version>
             <scope>compile</scope>
         </dependency>
         <dependency>
                             </resources>
                         </configuration>
                     </execution>
+                    <execution>
+                        <id>copy-fat-jar</id>
+                        <!--
+                          Reason the phase for this is set in the post integration phase due
+                          to the spring boot maven plugin repackages post package phase
+
+                          So basically first the spring boot plugin in phase package or pre package
+                          only creates an jar without its dependencies
+
+                          ls -trl target/
+
+                          3.3 MB  aai-schema-1.8.0-SNAPSHOT.jar
+
+                          Then in the post package or during the package phase, it would get dependencies
+                          and convert it into an fat jar
+
+                          80 MB  aai-schema-1.8.0-SNAPSHOT.jar
+
+                          During the package phase if the copy of the above aai-schema-1.8.0-SNAPSHOT jar
+                          was done, it would take the slim 3.3 MB jar and wouldn't include any of the dependencies
+                          so thats why the phase for this exection must be in post the spring boot repackage phase
+                        -->
+                        <phase>post-integration-test</phase>
+                        <goals>
+                            <goal>copy-resources</goal>
+                        </goals>
+                        <configuration>
+                            <outputDirectory>${aai.build.directory}/lib/</outputDirectory>
+                            <resources>
+                                <resource>
+                                    <directory>${project.build.directory}/</directory>
+                                    <includes>
+                                        <include>${project.artifactId}-${project.version}.jar</include>
+                                    </includes>
+                                    <filtering>false</filtering>
+                                </resource>
+                            </resources>
+                        </configuration>
+                    </execution>
                 </executions>
             </plugin>
             <plugin>
index 73cdfd7..6efa8d1 100644 (file)
@@ -1,28 +1,30 @@
 FROM @aai.docker.namespace@/aai-common-@aai.base.image@:@aai.base.image.version@
 
-RUN  mkdir -p /opt/aaihome/aaiadmin /opt/aai/logroot/AAI-SCHEMA-SERVICE /opt/app/aai-schema-service/logs/gc
+# Add the proper files into the docker image from your build
+WORKDIR /opt/app/aai-schema-service
 
-VOLUME /opt/aai/logroot/AAI-SS
-VOLUME /tmp
-VOLUME /opt/tools
+# Expose the ports for outside linux to use
+# 8447 is the important one to be used
+EXPOSE 8447
 
 HEALTHCHECK --interval=40s --timeout=10s --retries=3 CMD nc -z -v localhost 8452 || exit 1
 
-RUN groupadd aaiadmin -g 1000
+ENTRYPOINT ["/sbin/tini", "--", "/bin/bash", "/opt/app/aai-schema-service/docker-entrypoint.sh"]
 
-RUN adduser -u 1000 -h /opt/aaihome/aaiadmin -S -D -G aaiadmin -s /bin/bash aaiadmin
+VOLUME /tmp
+VOLUME /opt/tools
 
-# Add the proper files into the docker image from your build
-WORKDIR /opt/app/aai-schema-service
+USER root
 
-RUN chown -R aaiadmin:aaiadmin /opt/app/aai-schema-service /etc/profile.d /opt/aai/logroot/AAI-SS /opt/app /opt/aai/logroot /opt/app/aai-schema-service/logs/gc
+COPY --chown=aaiadmin:aaiadmin /maven/aai-schema-service/ /opt/app/aai-schema-service
 
-COPY --chown=aaiadmin:aaiadmin /maven/aai-schema-service/ .
+RUN  mkdir -p /opt/aaihome/aaiadmin /opt/aai/logroot/AAI-SS && \
+     chown -R aaiadmin:aaiadmin /opt/aaihome/aaiadmin /opt/aai/logroot/AAI-SS && \
+     chmod 777 /opt/app/aai-schema-service /opt/app/aai-schema-service/resources/etc/auth
 
-USER aaiadmin
 
 ENV AAI_BUILD_VERSION @aai.docker.version@
-# Expose the ports for outside linux to use
-# 8452 is the important one to be used
-EXPOSE 8452
-ENTRYPOINT ["/bin/bash", "/opt/app/aai-schema-service/docker-entrypoint.sh"]
+
+WORKDIR /opt/app/aai-schema-service
+
+USER aaiadmin
index 6d1161d..1f33bdd 100644 (file)
 # ============LICENSE_END=========================================================
 ###
 
-APP_HOME=$(pwd);
+APP_HOME=/opt/app/aai-schema-service;
 RESOURCES_HOME=${APP_HOME}/resources/;
 
 export SERVER_PORT=${SERVER_PORT:-8452};
 
-find /opt/app/ -name "*.sh" -exec chmod +x {} +
+if [[ ! -h "${APP_HOME}/scripts" ]]; then
 
-if [ -f ${APP_HOME}/aai.sh ]; then
+  ln -s ${APP_HOME}/bin ${APP_HOME}/scripts;
+  ln -s /opt/aai/logroot/AAI-SS ${APP_HOME}/logs;
 
-    ln -s bin scripts
-    ln -s /opt/aai/logroot/AAI-SS logs
+  if [ ! -f ${APP_HOME}/bin/updatePem.sh ]; then
+      echo "Unable to find the updatePem script";
+      exit 1;
+  else
+      ${APP_HOME}/bin/updatePem.sh
+  fi;
 
-    mv ${APP_HOME}/aai.sh /etc/profile.d/aai.sh
-    chmod 755 /etc/profile.d/aai.sh
+fi
 
-    scriptName=$1;
+scriptName=$1;
 
-    if [ ! -z $scriptName ]; then
+if [ ! -z $scriptName ]; then
 
-        if [ -f ${APP_HOME}/bin/${scriptName} ]; then
-            shift 1;
-            ${APP_HOME}/bin/${scriptName} "$@" || {
-                echo "Failed to run the ${scriptName}";
-                exit 1;
-            }
-        else
-            echo "Unable to find the script ${scriptName} in ${APP_HOME}/bin";
+    if [ -f ${APP_HOME}/bin/${scriptName} ]; then
+        shift 1;
+        ${APP_HOME}/bin/${scriptName} "$@" || {
+            echo "Failed to run the ${scriptName}";
             exit 1;
-        fi;
-
-        exit 0;
+        }
+    else
+        echo "Unable to find the script ${scriptName} in ${APP_HOME}/bin";
+        exit 1;
     fi;
 
+    exit 0;
 fi;
 
+mkdir -p /opt/app/aai-schema-service/logs/gc
+mkdir -p /opt/app/aai-schema-service/logs/heap-dumps
+
 if [ -f ${APP_HOME}/resources/aai-schema-service-swm-vars.sh ]; then
     source ${APP_HOME}/resources/aai-schema-service-swm-vars.sh;
 fi;
 
-if [ ! -z "${HEAP_SIZE}" ]; then
-    MIN_HEAP_SIZE=${HEAP_SIZE};
-    MAX_HEAP_SIZE=${HEAP_SIZE};
-fi;
-
-MIN_HEAP_SIZE=${MIN_HEAP_SIZE:-512m};
-MAX_HEAP_SIZE=${MAX_HEAP_SIZE:-1024m};
-MAX_METASPACE_SIZE=${MAX_METASPACE_SIZE:-512m};
-
 JAVA_CMD="exec java";
 
-JVM_OPTS="${PRE_JVM_ARGS} -Xloggc:/opt/app/aai-schema-service/logs/gc/aai_gc.log";
-JVM_OPTS="${JVM_OPTS} -XX:HeapDumpPath=/opt/app/aai-schema-service/logs/ajsc-jetty/heap-dump";
-JVM_OPTS="${JVM_OPTS} -Xms${MIN_HEAP_SIZE}";
-JVM_OPTS="${JVM_OPTS} -Xmx${MAX_HEAP_SIZE}";
-
-JVM_OPTS="${JVM_OPTS} -XX:+PrintGCDetails";
-JVM_OPTS="${JVM_OPTS} -XX:+PrintGCTimeStamps";
-JVM_OPTS="${JVM_OPTS} -XX:MaxMetaspaceSize=${MAX_METASPACE_SIZE}";
-
-JVM_OPTS="${JVM_OPTS} -server";
-JVM_OPTS="${JVM_OPTS} -XX:NewSize=512m";
-JVM_OPTS="${JVM_OPTS} -XX:MaxNewSize=512m";
-JVM_OPTS="${JVM_OPTS} -XX:SurvivorRatio=8";
-JVM_OPTS="${JVM_OPTS} -XX:+DisableExplicitGC";
-JVM_OPTS="${JVM_OPTS} -verbose:gc";
-JVM_OPTS="${JVM_OPTS} -XX:+UseParNewGC";
-JVM_OPTS="${JVM_OPTS} -XX:+CMSParallelRemarkEnabled";
-JVM_OPTS="${JVM_OPTS} -XX:+CMSClassUnloadingEnabled";
-JVM_OPTS="${JVM_OPTS} -XX:+UseConcMarkSweepGC";
-JVM_OPTS="${JVM_OPTS} -XX:-UseBiasedLocking";
-JVM_OPTS="${JVM_OPTS} -XX:ParallelGCThreads=4";
-JVM_OPTS="${JVM_OPTS} -XX:LargePageSizeInBytes=128m";
-JVM_OPTS="${JVM_OPTS} -XX:+PrintGCDetails";
-JVM_OPTS="${JVM_OPTS} -XX:+PrintGCTimeStamps";
+JVM_OPTS="${PRE_JVM_ARGS}";
 JVM_OPTS="${JVM_OPTS} -Dsun.net.inetaddr.ttl=180";
-JVM_OPTS="${JVM_OPTS} -XX:+HeapDumpOnOutOfMemoryError";
 JVM_OPTS="${JVM_OPTS} ${POST_JVM_ARGS}";
 JAVA_OPTS="${PRE_JAVA_OPTS} -DAJSC_HOME=$APP_HOME";
-if [ -f ${INTROSCOPE_LIB}/Agent.jar ] && [ -f ${INTROSCOPE_AGENTPROFILE} ]; then
-        JAVA_OPTS="${JAVA_OPTS} -javaagent:${INTROSCOPE_LIB}/Agent.jar -noverify -Dcom.wily.introscope.agentProfile=${INTROSCOPE_AGENTPROFILE} -Dintroscope.agent.agentName=schema-service"
-fi
 JAVA_OPTS="${JAVA_OPTS} -Dserver.port=${SERVER_PORT}";
 JAVA_OPTS="${JAVA_OPTS} -DBUNDLECONFIG_DIR=./resources";
 JAVA_OPTS="${JAVA_OPTS} -Dserver.local.startpath=${RESOURCES_HOME}";
index 016e86f..16136d5 100644 (file)
@@ -37,7 +37,7 @@ import org.w3c.dom.NodeList;
 import org.xml.sax.SAXException;
 
 import javax.xml.XMLConstants;
-import javax.xml.bind.JAXBException;
+import jakarta.xml.bind.JAXBException;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
index e0f5778..12069aa 100644 (file)
         <!-- Start of Default ONAP Schema Properties -->
         <aai.xsd.source>src/main/resources/onap/aai_schema</aai.xsd.source>
         <aai.bindings.source>src/main/xjb/bindings-onap.xjb</aai.bindings.source>
+        <commons.io.version>2.8.0</commons.io.version>
         <!-- End of Default ONAP Schema Properties -->
     </properties>
     <dependencies>
+        <dependency>
+            <groupId>javax.xml.bind</groupId>
+            <artifactId>jaxb-api</artifactId>
+            <version>2.3.0</version>
+        </dependency>
         <dependency>
             <groupId>org.onap.aai.schema-service</groupId>
             <artifactId>aai-annotations</artifactId>
             <artifactId>junit</artifactId>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <version>RELEASE</version>
-            <scope>test</scope>
-        </dependency>
         <dependency>
             <groupId>org.jvnet.jaxb2_commons</groupId>
             <artifactId>jaxb2-basics</artifactId>
             <groupId>com.googlecode.json-simple</groupId>
             <artifactId>json-simple</artifactId>
         </dependency>
+        <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+            <version>${commons.io.version}</version>
+        </dependency>
     </dependencies>
     <build>
         <plugins>
             <plugin>
                 <groupId>org.codehaus.mojo</groupId>
                 <artifactId>jaxb2-maven-plugin</artifactId>
-                <version>2.2</version>
+                <version>2.5.0</version>
                 <executions>
                     <execution>
                         <id>xjc</id>
diff --git a/pom.xml b/pom.xml
index 1e6a13d..eb33f4d 100644 (file)
--- a/pom.xml
+++ b/pom.xml
         <!-- GMaven plugin uses this property to figure out the name of the docker tag -->
         <aai.project.version>${project.version}</aai.project.version>
         <checkstyle.skip>false</checkstyle.skip>
+
+
+        <maven-site-plugin.version>3.9.1</maven-site-plugin.version>
+        <wagon-webdav-jackrabbit.version>3.4.2</wagon-webdav-jackrabbit.version>
+        <jacoco-maven-plugin.version>0.8.6</jacoco-maven-plugin.version>
+        <maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>
+        <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
+        <maven-compiler-plugin.source>8</maven-compiler-plugin.source>
+        <maven-compiler-plugin.target>8</maven-compiler-plugin.target>
+        <maven-compiler-plugin.test.source>8</maven-compiler-plugin.test.source>
+        <maven-compiler-plugin.test.target>8</maven-compiler-plugin.test.target>
+        <sonar-maven-plugin.version>3.7.0.1746</sonar-maven-plugin.version>
+        <slf4j.version>1.7.26</slf4j.version>
     </properties>
     <build>
         <pluginManagement>
             <plugins>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-site-plugin</artifactId>
+                    <version>${maven-site-plugin.version}</version>
+                    <dependencies>
+                        <dependency>
+                            <groupId>org.apache.maven.wagon</groupId>
+                            <artifactId>wagon-webdav-jackrabbit</artifactId>
+                            <version>${wagon-webdav-jackrabbit.version}</version>
+                        </dependency>
+                    </dependencies>
+                </plugin>
+                <plugin>
+                    <groupId>org.jacoco</groupId>
+                    <artifactId>jacoco-maven-plugin</artifactId>
+                    <version>${jacoco-maven-plugin.version}</version>
+                    <executions>
+                        <!-- Unit-Tests -->
+                        <execution>
+                            <id>prepare-agent</id>
+                            <goals>
+                                <goal>prepare-agent</goal>
+                            </goals>
+                            <configuration>
+                                <destFile>${sonar.jacoco.reportPath}</destFile>
+                            </configuration>
+                        </execution>
+                    </executions>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-surefire-plugin</artifactId>
+                    <version>${maven-surefire-plugin.version}</version>
+                    <configuration>
+                        <argLine>${argLine} -Xmx2048m --illegal-access=permit</argLine>
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-failsafe-plugin</artifactId>
+                    <version>2.22.0</version>
+                    <configuration>
+                        <argLine>
+                            --illegal-access=permit
+                        </argLine>
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-compiler-plugin</artifactId>
+                    <version>${maven-compiler-plugin.version}</version>
+                    <inherited>true</inherited>
+                    <configuration>
+                        <source>${maven-compiler-plugin.source}</source>
+                        <target>${maven-compiler-plugin.target}</target>
+                        <testSource>${maven-compiler-plugin.test.source}</testSource>
+                        <testTarget>${maven-compiler-plugin.test.target}</testTarget>
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-javadoc-plugin</artifactId>
+                    <version>${maven-javadoc-plugin.version}</version>
+                    <configuration/>
+                </plugin>
+                <plugin>
+                    <groupId>org.sonarsource.scanner.maven</groupId>
+                    <artifactId>sonar-maven-plugin</artifactId>
+                    <version>${sonar-maven-plugin.version}</version>
+                </plugin>
+
+
                 <!--
                 Using https://code.revelc.net/formatter-maven-plugin/ for Eclipse formatter
                 Using https://github.com/diffplug/spotless/tree/master/plugin-maven for import order