============LICENSE_START=======================================================
org.onap.aai
================================================================================
- Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
+ Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
================================================================================
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
- <groupId>org.onap.aai.schema-service</groupId>
- <artifactId>aai-schema-service</artifactId>
- <version>1.0.4-SNAPSHOT</version>
<parent>
<groupId>org.onap.aai.schema-service</groupId>
<artifactId>schema-service</artifactId>
- <version>1.0.4-SNAPSHOT</version>
+ <version>1.9.5-SNAPSHOT</version>
</parent>
+ <groupId>org.onap.aai.schema-service</groupId>
+ <artifactId>aai-schema-service</artifactId>
<properties>
<java.version>1.8</java.version>
<start-class>org.onap.aai.schemaservice.SchemaServiceApp</start-class>
- <aai.core.version>1.4.0</aai.core.version>
-
- <spring.boot.version>1.5.20.RELEASE</spring.boot.version>
-
- <!-- Start of the jacoco plugin properties -->
- <sonar.language>java</sonar.language>
- <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
- <sonar.surefire.reportsPath>${project.build.directory}/surefire-reports</sonar.surefire.reportsPath>
- <sonar.jacoco.reportPath>${project.build.directory}/coverage-reports/jacoco.exec</sonar.jacoco.reportPath>
- <sonar.jacoco.reportMissing.force.zero>false</sonar.jacoco.reportMissing.force.zero>
- <sonar.projectVersion>${project.version}</sonar.projectVersion>
- <!-- End of the jacoco plugin properties -->
-
- <!-- Start of Application Dependencies -->
- <eelf.core.version>1.0.0</eelf.core.version>
- <logback.version>1.2.3</logback.version>
- <hamcrest.junit.version>2.0.0.0</hamcrest.junit.version>
- <junit.version>4.12</junit.version>
- <google.guava.version>16.0.1</google.guava.version>
- <janusgraph.version>0.2.0</janusgraph.version>
- <mockito.version>1.10.19</mockito.version>
- <powermock.version>1.6.2</powermock.version>
- <jaxb.version>2.2.11</jaxb.version>
- <eclipse.persistence.version>2.6.2</eclipse.persistence.version>
- <!-- End of Application Dependencies -->
-
- <docker.fabric.version>0.23.0</docker.fabric.version>
+ <docker.fabric.version>0.28.0</docker.fabric.version>
<!-- Default docker registry that maven fabric plugin will try to pull from -->
<docker.registry>docker.io</docker.registry>
<!-- Specifying the docker push registry where the image should be pushed -->
<!-- This value should be overwritten at runtime to wherever need to be pushed to -->
<docker.push.registry>localhost:5000</docker.push.registry>
+ <aai.docker.version>1.0.0</aai.docker.version>
+
+ <logback.version>1.2.7</logback.version>
<!--
Location where assembly of our scripts, resources and main jar will be held
<aai.build.directory>${project.build.directory}/${project.artifactId}-${project.version}-build/
</aai.build.directory>
<aai.docker.namespace>onap</aai.docker.namespace>
+ <aai.base.image>alpine</aai.base.image>
+ <aai.base.image.version>1.8.1</aai.base.image.version>
<maven.skip.tests>true</maven.skip.tests>
<!-- Start of Default ONAP Schema Properties -->
<schema.source.name>onap</schema.source.name>
<schema.configuration.location>N/A</schema.configuration.location>
- <schema.nodes.location>${project.basedir}/src/main/resources/schema/${schema.source.name}/oxm</schema.nodes.location>
- <schema.edges.location>${project.basedir}/src/main/resources/schema/${schema.source.name}/dbedgerules</schema.edges.location>
+ <schema.nodes.location>${project.basedir}/src/main/resources/schema/${schema.source.name}/oxm
+ </schema.nodes.location>
+ <schema.edges.location>${project.basedir}/src/main/resources/schema/${schema.source.name}/dbedgerules
+ </schema.edges.location>
<schema.version.depth.start>v10</schema.version.depth.start>
<schema.version.related.link.start>v10</schema.version.related.link.start>
<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</schema.version.list>
+ <schema.version.api.default>v26</schema.version.api.default>
+ <schema.version.list>v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26</schema.version.list>
<schema.uri.base.path>/aai/schema-service</schema.uri.base.path>
<!-- End of Default ONAP Schema Properties -->
<id>docker</id>
<build>
<plugins>
+ <plugin>
+ <groupId>org.codehaus.groovy.maven</groupId>
+ <artifactId>gmaven-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>pre-clean</phase>
+ </execution>
+ <execution>
+ <id>parse-base</id>
+ <phase>pre-clean</phase>
+ <goals>
+ <goal>execute</goal>
+ </goals>
+ <configuration>
+ <source>
+ def userAaiBaseImage = session.userProperties['aai.base.image'];
+ def userAaiCommonVersion = session.userProperties['aai.base.image.version'];
+ if (userAaiCommonVersion != null) {
+ project.properties['aai.base.image.version'] = userAaiCommonVersion;
+ }
+ if (userAaiBaseImage != null) {
+ project.properties['aai.base.image'] = userAaiBaseImage;
+ }
+ log.info 'Base image flavour: ' + project.properties['aai.base.image'];
+ log.info 'Base image version: ' + project.properties['aai.base.image.version'];
+ </source>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
</execution>
<execution>
<id>generate-images</id>
- <phase>package</phase>
+ <phase>verify</phase>
<goals>
<goal>build</goal>
</goals>
<properties>
<schema.source.name>onap</schema.source.name>
<schema.version.namespace.change.start>v12</schema.version.namespace.change.start>
- <schema.version.list>v10,v11,v12,v13,v14,v15,v16</schema.version.list>
+ <schema.version.list>v10,v11,v12,v13,v14,v15,v16,v17,18,v19,v20,v21,v22,v23,v24,v25,v26</schema.version.list>
</properties>
</profile>
<!-- End of ONAP Profile -->
</build>
</profile>
</profiles>
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>${spring.boot.version}</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
- </dependencies>
- </dependencyManagement>
<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>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.el</groupId>
+ <artifactId>javax.el-api</artifactId>
+ <version>3.0.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.glassfish</groupId>
+ <artifactId>javax.el</artifactId>
+ <version>3.0.0</version>
+ </dependency>
+ <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>com.sun.xml.bind</groupId>
+ <artifactId>jaxb-impl</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.xml.bind</groupId>
+ <artifactId>jaxb-core</artifactId>
+ </dependency>
<dependency>
<groupId>com.att.eelf</groupId>
<artifactId>eelf-core</artifactId>
- <version>${eelf.core.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
- <version>${logback.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-access</artifactId>
- <version>${logback.version}</version>
- </dependency>
- <dependency>
- <groupId>org.onap.aai.aai-common</groupId>
- <artifactId>aai-core</artifactId>
- <version>${aai.core.version}</version>
- <exclusions>
- <exclusion>
- <groupId>com.sun.jersey</groupId>
- <artifactId>jersey-core</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-mapper-asl</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.eclipse.jetty</groupId>
- <artifactId>jetty-http</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.eclipse.jetty</groupId>
- <artifactId>jetty-server</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-web</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.onap.aai</groupId>
- <artifactId>aai-schema-ingest</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.hamcrest</groupId>
- <artifactId>hamcrest-junit</artifactId>
- <version>${hamcrest.junit.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
- <version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
- <version>${google.guava.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
- <version>${mockito.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
- <version>${jaxb.version}</version>
- </dependency>
- <dependency>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-impl</artifactId>
- <version>${jaxb.version}</version>
- </dependency>
- <dependency>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-core</artifactId>
- <version>${jaxb.version}</version>
- </dependency>
- <dependency>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-xjc</artifactId>
- <version>${jaxb.version}</version>
+ <version>2.3.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
- <version>${eclipse.persistence.version}</version>
+ <version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.moxy</artifactId>
- <version>${eclipse.persistence.version}</version>
+ <version>3.0.0</version>
<scope>compile</scope>
</dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- <exclusions>
- <exclusion>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-tomcat</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.onap.aai.aai-common</groupId>
+ <artifactId>aai-core</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-web</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.onap.aai.aai-common</groupId>
+ <artifactId>aai-schema-ingest</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-test</artifactId>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
- <version>${mockito.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-junit</artifactId>
- <version>${hamcrest.junit.version}</version>
</dependency>
</dependencies>
<build>
</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>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
- <version>2.12.4</version>
<configuration>
- <argLine>-noverify ${argLine}</argLine>
<runOrder>alphabetical</runOrder>
</configuration>
</plugin>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
</plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>sonar-maven-plugin</artifactId>
- <version>3.3</version>
- </plugin>
- <plugin>
- <groupId>org.jacoco</groupId>
- <artifactId>jacoco-maven-plugin</artifactId>
- <version>0.7.9</version>
- <configuration>
- <dumpOnExit>true</dumpOnExit>
- <excludes>
- <exclude>**/**/models/**/*.class</exclude>
- </excludes>
- </configuration>
- <executions>
- <execution>
- <id>jacoco-initialize-unit-tests</id>
- <goals>
- <goal>prepare-agent</goal>
- </goals>
- <configuration>
- <destFile>${project.build.directory}/coverage-reports/jacoco.exec</destFile>
- <!-- <append>true</append> -->
- </configuration>
- </execution>
- <execution>
- <id>post-unit-test</id>
- <phase>test</phase>
- <goals>
- <goal>report</goal>
- </goals>
- <configuration>
- <!-- Sets the path to the file which contains the execution data. -->
- <dataFile>${project.build.directory}/coverage-reports/jacoco.exec</dataFile>
- <!-- Sets the output directory for the code coverage report. -->
- <outputDirectory>${project.reporting.outputDirectory}/jacoco</outputDirectory>
- </configuration>
- </execution>
- <execution>
- <id>default-check</id>
- <goals>
- <goal>check</goal>
- </goals>
- <configuration>
- <dataFile>${project.build.directory}/coverage-reports/jacoco.exec</dataFile>
- <rules>
- <!-- implementation is needed only for Maven 2 -->
- <rule implementation="org.jacoco.maven.RuleConfiguration">
- <element>BUNDLE</element>
- <limits>
- <limit implementation="org.jacoco.report.check.Limit">
- <counter>LINE</counter>
- <value>COVEREDRATIO</value>
- <minimum>${jacoco.line.coverage.limit}</minimum>
- </limit>
- </limits>
- </rule>
- </rules>
- </configuration>
- </execution>
- </executions>
- </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
- <executions>
- <execution>
- <id>default-deploy</id>
- <phase>none</phase>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.sonatype.plugins</groupId>
- <artifactId>nexus-staging-maven-plugin</artifactId>
- <version>1.6.7</version>
- <extensions>true</extensions>
- <configuration>
- <nexusUrl>${nexusproxy}</nexusUrl>
- <stagingProfileId>176c31dfe190a</stagingProfileId>
- <serverId>ecomp-staging</serverId>
- </configuration>
</plugin>
+
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>