| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| |
| ============LICENSE_START======================================================= |
| org.onap.aai |
| ================================================================================ |
| Copyright (c) 2017-2019 AT&T Intellectual Property. All rights reserved. |
| Copyright (c) 2017-2019 European Software Marketing Ltd. |
| ================================================================================ |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| ============LICENSE_END========================================================= |
| |
| --> |
| <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| 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> |
| |
| <parent> |
| <groupId>org.onap.oparent</groupId> |
| <artifactId>oparent</artifactId> |
| <version>2.1.0</version> |
| <relativePath /> |
| </parent> |
| |
| <groupId>org.onap.aai</groupId> |
| <artifactId>babel</artifactId> |
| <version>1.6.3-SNAPSHOT</version> |
| <packaging>jar</packaging> |
| |
| <name>aai-babel</name> |
| <description>ONAP AAI Babel Microservice</description> |
| |
| <properties> |
| <!-- Spring boot version --> |
| <spring.boot.version>2.1.6.RELEASE</spring.boot.version> |
| |
| <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
| <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> |
| <java.version>1.8</java.version> |
| <aai.schema.source.folder>onap/aai_schema</aai.schema.source.folder> |
| <aai.schema.target.folder>${project.build.directory}/aai-schema</aai.schema.target.folder> |
| |
| <sonar.jacoco.reportPath /> |
| <sonar.jacoco.itReportPath /> |
| <sonar.jacoco.reportMissing.force.zero /> |
| |
| <jacoco.line.coverage.limit>0.90</jacoco.line.coverage.limit> |
| <jacoco.version>0.8.5</jacoco.version> |
| <sonar-jacoco-listeners.version>3.2</sonar-jacoco-listeners.version> |
| <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin> |
| <sonar.coverage.jacoco.xmlReportPaths>${project.reporting.outputDirectory}/jacoco-ut/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths> |
| <sonar.exclusions>**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**</sonar.exclusions> |
| |
| <sonar.scanner.version>3.7.0.1746</sonar.scanner.version> |
| |
| <!-- docker related properties --> |
| <docker.fabric.version>0.28.0</docker.fabric.version> |
| <aai.docker.version>1.0.0</aai.docker.version> |
| <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.6.0</aai.base.image.version> |
| |
| <!-- Dependency Versions --> |
| <common.logging.version>1.2.2</common.logging.version> |
| <sdc.tosca.version>1.5.1</sdc.tosca.version> |
| <commons.compress.version>1.18</commons.compress.version> |
| <javax.ws.rs.version>2.1</javax.ws.rs.version> |
| <mvn.jaxb2.version>0.13.2</mvn.jaxb2.version> |
| <aai-schema.group.id>org.onap.aai.schema-service</aai-schema.group.id> |
| <aai-schema.version>1.6.6</aai-schema.version> |
| <aai.rest.client.version>1.2.1</aai.rest.client.version> |
| <sdc.distribution.client.version>1.3.0</sdc.distribution.client.version> |
| <xmlunit.version>1.6</xmlunit.version> |
| <logback.version>1.2.3</logback.version> |
| <antrun.version>1.8</antrun.version> |
| <!-- This will be used for the docker images as the default format of maven build has issues --> |
| <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format> |
| </properties> |
| |
| <dependencyManagement> |
| <dependencies> |
| <dependency> |
| <!-- Import dependency management from Spring Boot --> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-dependencies</artifactId> |
| <version>${spring.boot.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| </dependencies> |
| </dependencyManagement> |
| |
| <profiles> |
| <!-- Docker profile to be used for building docker image and pushing to nexus --> |
| <profile> |
| <id>docker</id> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>build-helper-maven-plugin</artifactId> |
| <version>3.0.0</version> |
| <executions> |
| <execution> |
| <phase>pre-clean</phase> |
| <id>parse-version</id> |
| <goals> |
| <goal>parse-version</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.codehaus.groovy.maven</groupId> |
| <artifactId>gmaven-plugin</artifactId> |
| <version>1.0</version> |
| <executions> |
| <execution> |
| <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> |
| <version>${docker.fabric.version}</version> |
| <configuration> |
| <verbose>true</verbose> |
| <apiVersion>1.23</apiVersion> |
| <images> |
| <image> |
| <name>${docker.push.registry}/${aai.docker.namespace}/${project.artifactId}:%l |
| </name> |
| <build> |
| <filter>@</filter> |
| <tags> |
| <tag>latest</tag> |
| <tag>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}-STAGING-latest</tag> |
| <tag>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}-STAGING-${maven.build.timestamp}</tag> |
| </tags> |
| <cleanup>try</cleanup> |
| <dockerFileDir>${project.basedir}/src/main/docker</dockerFileDir> |
| <assembly> |
| <inline> |
| <fileSets> |
| <fileSet> |
| <directory>${aai.build.directory}</directory> |
| <outputDirectory>/${project.artifactId}</outputDirectory> |
| </fileSet> |
| </fileSets> |
| </inline> |
| </assembly> |
| </build> |
| </image> |
| </images> |
| </configuration> |
| <executions> |
| <execution> |
| <id>clean-images</id> |
| <phase>pre-clean</phase> |
| <goals> |
| <goal>remove</goal> |
| </goals> |
| <configuration> |
| <removeAll>true</removeAll> |
| </configuration> |
| </execution> |
| <execution> |
| <id>generate-images</id> |
| <phase>package</phase> |
| <goals> |
| <goal>build</goal> |
| </goals> |
| </execution> |
| <execution> |
| <id>push-images</id> |
| <phase>deploy</phase> |
| <goals> |
| <goal>push</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| </profiles> |
| <dependencies> |
| <dependency> |
| <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.aai.logging-service</groupId> |
| <artifactId>common-logging</artifactId> |
| <version>${common.logging.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>ch.qos.logback</groupId> |
| <artifactId>logback-classic</artifactId> |
| <version>${logback.version}</version><!--$NO-MVN-MAN-VER$--> |
| </dependency> |
| <dependency> |
| <groupId>ch.qos.logback</groupId> |
| <artifactId>logback-core</artifactId> |
| <version>${logback.version}</version><!--$NO-MVN-MAN-VER$--> |
| </dependency> |
| <dependency> |
| <groupId>commons-codec</groupId> |
| <artifactId>commons-codec</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-compress</artifactId> |
| <version>${commons.compress.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-lang3</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>javax.ws.rs</groupId> |
| <artifactId>javax.ws.rs-api</artifactId> |
| <version>${javax.ws.rs.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.codehaus.groovy</groupId> |
| <artifactId>groovy</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.onap.sdc.sdc-tosca</groupId> |
| <artifactId>sdc-tosca</artifactId> |
| <version>${sdc.tosca.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.onap.aai</groupId> |
| <artifactId>rest-client</artifactId> |
| <version>${aai.rest.client.version}</version> |
| </dependency> |
| |
| <!-- Testing --> |
| <dependency> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-starter-test</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.onap.sdc.sdc-distribution-client</groupId> |
| <artifactId>sdc-distribution-client</artifactId> |
| <version>${sdc.distribution.client.version}</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>xmlunit</groupId> |
| <artifactId>xmlunit</artifactId> |
| <version>${xmlunit.version}</version> |
| <scope>test</scope> |
| </dependency> |
| </dependencies> |
| |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-maven-plugin</artifactId> |
| <version>${spring.boot.version}</version> |
| <configuration> |
| <jvmArguments> |
| -DCONFIG_HOME=./appconfig-local |
| -DAPP_HOME=. |
| -Dtosca.mappings.config=./appconfig-local/tosca-mappings.json |
| -DKEY_STORE_PASSWORD=${KEY_STORE_PASSWORD} |
| </jvmArguments> |
| </configuration> |
| <executions> |
| <execution> |
| <goals> |
| <goal>repackage</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-dependency-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>unpack</id> |
| <phase>initialize</phase> |
| <goals> |
| <goal>unpack</goal> |
| </goals> |
| <configuration> |
| <artifactItems> |
| <artifactItem> |
| <groupId>${aai-schema.group.id}</groupId> |
| <artifactId>aai-schema</artifactId> |
| <version>${aai-schema.version}</version> |
| <type>jar</type> |
| <includes>${aai.schema.source.folder}/aai_schema_v**.xsd</includes> |
| <outputDirectory>${project.build.directory}/tmp</outputDirectory> |
| </artifactItem> |
| </artifactItems> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-antrun-plugin</artifactId> |
| <version>${antrun.version}</version> |
| <executions> |
| <execution> |
| <id>Flatten XSDs</id> |
| <phase>initialize</phase> |
| <goals> |
| <goal>run</goal> |
| </goals> |
| <configuration> |
| <target> |
| <copy todir="${aai.schema.target.folder}" flatten="true"> |
| <fileset dir="${project.build.directory}/tmp"> |
| <include name="**/*.xsd" /> |
| </fileset> |
| </copy> |
| </target> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.jvnet.jaxb2.maven2</groupId> |
| <artifactId>maven-jaxb2-plugin</artifactId> |
| <version>${mvn.jaxb2.version}</version> |
| <executions> |
| <execution> |
| <phase>process-sources</phase> |
| <goals> |
| <goal>generate</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <schemaDirectory>${aai.schema.target.folder}</schemaDirectory> |
| <generatePackage>org.onap.aai.babel.xml.generator.xsd</generatePackage> |
| <generateDirectory>${project.build.directory}/generated-sources</generateDirectory> |
| <schemaIncludes> |
| <include>aai_schema_latest.xsd</include> |
| </schemaIncludes> |
| <extension>true</extension> |
| <args> |
| <arg>-Xannotate</arg> |
| </args> |
| <plugins> |
| <plugin> |
| <groupId>org.jvnet.jaxb2_commons</groupId> |
| <artifactId>jaxb2-basics-annotate</artifactId> |
| <version>0.6.4</version> |
| </plugin> |
| <!-- Add the dependencies with your annotations as 'plugins' below --> |
| <plugin> |
| <groupId>org.jvnet.jaxb2_commons</groupId> |
| <artifactId>jaxb2-annotate-plugin-test-annox-annotations</artifactId> |
| <version>1.0.0</version> |
| </plugin> |
| </plugins> |
| </configuration> |
| </plugin> |
| <plugin> |
| <artifactId>exec-maven-plugin</artifactId> |
| <groupId>org.codehaus.mojo</groupId> |
| <version>1.5.0</version> |
| <executions> |
| <execution><!-- Run our script to get latest xsd version --> |
| <id>Get latest xsd version</id> |
| <phase>generate-sources</phase> |
| <goals> |
| <goal>exec</goal> |
| </goals> |
| <configuration> |
| <workingDirectory>${basedir}/scripts</workingDirectory> |
| <executable>bash</executable> |
| <commandlineArgs>get-latest-xsd-version.sh ${basedir}</commandlineArgs> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <artifactId>maven-assembly-plugin</artifactId> |
| <configuration> |
| <descriptors> |
| <descriptor>src/main/assembly/descriptor.xml</descriptor> |
| </descriptors> |
| </configuration> |
| <executions> |
| <execution> |
| <id>make-assembly</id> |
| <phase>package</phase> |
| <goals> |
| <goal>single</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>com.mycila</groupId> |
| <artifactId>license-maven-plugin</artifactId> |
| <version>3.0</version> |
| <configuration> |
| <header>License.txt</header> |
| <includes> |
| <include>src/main/java/**</include> |
| <include>src/test/java/**</include> |
| <include>pom.xml</include> |
| </includes> |
| <skipExistingHeaders>true</skipExistingHeaders> |
| </configuration> |
| <executions> |
| <execution> |
| <goals> |
| <!-- Set goal from "check" to "format" to auto update license headers --> |
| <goal>check</goal> |
| </goals> |
| <phase>validate</phase> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <configuration> |
| <reuseForks>false</reuseForks> |
| <forkCount>1</forkCount> |
| <environmentVariables> |
| <APP_HOME>.</APP_HOME> |
| <CONFIG_HOME>src/test/resources</CONFIG_HOME> |
| </environmentVariables> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-jar-plugin</artifactId> |
| <version>3.0.2</version> |
| <executions> |
| <execution> |
| <phase>package</phase> |
| <goals> |
| <goal>jar</goal> |
| </goals> |
| <configuration> |
| <classifier>client</classifier> |
| <includes> |
| <include>**/babel/service/data/*</include> |
| </includes> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-deploy-plugin</artifactId> |
| <configuration> |
| <classifier>client</classifier> |
| </configuration> |
| </plugin> |
| |
| |
| <!-- once we connect aai-parent or oparent 3.0+ we can take out this |
| whole section --> |
| |
| <plugin> |
| <groupId>org.jacoco</groupId> |
| <artifactId>jacoco-maven-plugin</artifactId> |
| <version>${jacoco.version}</version> |
| <configuration> |
| <!-- Note: This exclusion list should match <sonar.exclusions> property |
| above --> |
| <excludes> |
| <exclude>**/gen/**</exclude> |
| <exclude>**/generated-sources/**</exclude> |
| <exclude>**/yang-gen/**</exclude> |
| <exclude>**/pax/**</exclude> |
| <exclude>org/onap/aai/babel/xml/generator/xsd/*</exclude> |
| </excludes> |
| </configuration> |
| <executions> |
| <!-- Prepares the property pointing to the JaCoCo runtime agent which |
| is passed as VM argument when Maven the Surefire plugin is executed. --> |
| <execution> |
| <id>pre-unit-test</id> |
| <goals> |
| <goal>prepare-agent</goal> |
| </goals> |
| <configuration> |
| <!-- Sets the path to the file which contains the execution data |
| . --> |
| <destFile>${project.build.directory}/code-coverage/jacoco-ut.exec</destFile> |
| <!-- Sets the name of the property containing the settings for JaCoCo |
| runtime agent. --> |
| <propertyName>surefireArgLine</propertyName> |
| </configuration> |
| </execution> |
| <!-- Ensures that the code coverage report for unit tests is created |
| after unit tests have been run. --> |
| <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}/code-coverage/jacoco-ut.exec</dataFile> |
| <!-- Sets the output directory for the code coverage report. --> |
| <outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory> |
| </configuration> |
| </execution> |
| <execution> |
| <id>pre-integration-test</id> |
| <phase>pre-integration-test</phase> |
| <goals> |
| <goal>prepare-agent</goal> |
| </goals> |
| <configuration> |
| <!-- Sets the path to the file which contains the execution data |
| . --> |
| <destFile>${project.build.directory}/code-coverage/jacoco-it.exec</destFile> |
| <!-- Sets the name of the property containing the settings for JaCoCo |
| runtime agent. --> |
| <propertyName>failsafeArgLine</propertyName> |
| </configuration> |
| </execution> |
| <!-- Ensures that the code coverage report for integration tests after |
| integration tests have been run. --> |
| <execution> |
| <id>post-integration-test</id> |
| <phase>post-integration-test</phase> |
| <goals> |
| <goal>report</goal> |
| </goals> |
| <configuration> |
| <!-- Sets the path to the file which contains the execution data |
| . --> |
| <dataFile>${project.build.directory}/code-coverage/jacoco-it.exec</dataFile> |
| <!-- Sets the output directory for the code coverage report. --> |
| <outputDirectory>${project.reporting.outputDirectory}/jacoco-it</outputDirectory> |
| </configuration> |
| </execution> |
| <execution> |
| <id>default-check</id> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| <configuration> |
| <dataFile>${project.build.directory}/code-coverage/jacoco-ut.exec</dataFile> |
| <rules> |
| <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-surefire-plugin</artifactId> |
| <version>3.0.0-M4</version> |
| <configuration> |
| <!-- Sets the VM argument line used when unit tests are run. --> |
| <argLine>${surefireArgLine}</argLine> |
| <!-- Excludes integration tests when unit tests are run. --> |
| <excludes> |
| <exclude>**/IT*.java</exclude> |
| </excludes> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-failsafe-plugin</artifactId> |
| <version>3.0.0-M4</version> |
| <executions> |
| <!-- Ensures that both integration-test and verify goals of the Failsafe |
| Maven plugin are executed. --> |
| <execution> |
| <id>integration-tests</id> |
| <goals> |
| <goal>integration-test</goal> |
| <goal>verify</goal> |
| </goals> |
| <configuration> |
| <!-- Sets the VM argument line used when integration tests are run. --> |
| <argLine>${failsafeArgLine}</argLine> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.sonarsource.scanner.maven</groupId> |
| <artifactId>sonar-maven-plugin</artifactId> |
| <version>${sonar.scanner.version}</version> |
| </plugin> |
| <!-- end removable sonar config, note the additional exclusion for babel above |
| --> |
| </plugins> |
| </build> |
| |
| </project> |