<?xml version="1.0" encoding="UTF-8"?>
<!--

    ============LICENSE_START=======================================================
    org.onap.aai
    ================================================================================
    Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
    Copyright © 2017-2018 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>1.1.0</version>
		<relativePath />
	</parent>

	<groupId>org.onap.aai</groupId>
	<artifactId>babel</artifactId>
	<version>1.3.0-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>aai-babel</name>
	<description>ONAP AAI Babel Microservice</description>

	<properties>
		<!-- Spring boot version -->
		<spring.boot.version>1.5.14.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>
		<docker.location>${basedir}/target</docker.location>

		<!-- Dependency Versions -->
		<common.logging.version>1.2.2</common.logging.version>
		<sdc.tosca.version>1.3.0</sdc.tosca.version>
		<commons.compress.version>1.16.1</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.aai-common</aai-schema.group.id>
		<aai-schema.version>1.3.0-SNAPSHOT</aai-schema.version>
		<apache.lang3.version>3.7</apache.lang3.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>
		<guava.version>25.1-jre</guava.version>
	</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>

	<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>
		</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>
			<version>${apache.lang3.version}</version>
		</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-all</artifactId>
		</dependency>

		<dependency>
			<groupId>org.onap.sdc.sdc-tosca</groupId>
			<artifactId>sdc-tosca</artifactId>
			<version>${sdc.tosca.version}</version>
		</dependency>
		<dependency>
			<groupId>com.google.guava</groupId>
			<artifactId>guava</artifactId>
			<version>${guava.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>
		<finalName>babel</finalName>
		<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=.
						-Dartifactgenerator.config=./appconfig-local/artifact-generator.properties
						-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/aai_schema_v**.xsd</includes>
									<outputDirectory>target/tmp</outputDirectory>
								</artifactItem>
							</artifactItems>
						</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>target/tmp/aai_schema</schemaDirectory>
					<generatePackage>org.onap.aai.babel.xml.generator.xsd</generatePackage>
					<generateDirectory>target/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>
				<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-resources-plugin</artifactId>
				<version>3.0.2</version>
				<executions>
					<execution>
						<id>copy-docker-file</id>
						<phase>package</phase>
						<goals>
							<goal>copy-resources</goal>
						</goals>
						<configuration>
							<outputDirectory>target</outputDirectory>
							<overwrite>true</overwrite>
							<resources>
								<resource>
									<directory>${basedir}/src/main/docker</directory>
									<filtering>true</filtering>
								</resource>
								<resource>
									<directory>${basedir}/src/main/bin/</directory>
									<filtering>true</filtering>
								</resource>
							</resources>
						</configuration>
					</execution>
				</executions>
			</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>com.spotify</groupId>
				<artifactId>docker-maven-plugin</artifactId>
				<version>0.4.11</version>
				<dependencies>
					<dependency>
						<groupId>com.github.jnr</groupId>
						<artifactId>jnr-unixsocket</artifactId>
						<version>0.13</version>
					</dependency>
				</dependencies>
				<configuration>
					<verbose>true</verbose>
					<serverId>docker-hub</serverId>
					<imageName>${docker.push.registry}/onap/${project.artifactId}</imageName>
					<dockerDirectory>${docker.location}</dockerDirectory>
					<imageTags>
						<imageTag>latest</imageTag>
					</imageTags>
					<forceTags>true</forceTags>
				</configuration>
			</plugin>
		</plugins>
	</build>

</project>