blob: d318d996fc1e8b6b0b2450d61ad52e4acdca8866 [file] [log] [blame]
<?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.0.0</version>
<relativePath />
</parent>
<groupId>org.onap.aai</groupId>
<artifactId>babel</artifactId>
<version>1.6.1-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>
<jacoco.report.directory>${project.build.directory}/code-coverage</jacoco.report.directory>
<jacoco.line.coverage.limit>0.90</jacoco.line.coverage.limit>
<!-- 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.0</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>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>org/onap/aai/babel/xml/generator/xsd/*</exclude>
</excludes>
</configuration>
<executions>
<execution>
<id>default-check</id>
<goals>
<goal>check</goal>
</goals>
<configuration>
<dataFile>${jacoco.report.directory}/jacoco-ut.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>
</plugins>
</build>
</project>