<!-- ============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>
		<artifactId>ajsc-archetype-parent</artifactId>
		<groupId>com.att.ajsc</groupId>
		<version>2.0.0</version>
	</parent>
	<groupId>org.onap.aai</groupId>
	<artifactId>babel</artifactId>
	<version>1.2.0-SNAPSHOT</version>
	<name>aai-babel</name>

	<properties>
		<module.ajsc.namespace.name>babel-service</module.ajsc.namespace.name>
		<module.ajsc.namespace.version>v1</module.ajsc.namespace.version>
		<ajscRuntimeVersion>2.0.0</ajscRuntimeVersion>
		<absoluteDistFilesRoot>/appl/${project.artifactId}</absoluteDistFilesRoot>

        <!-- For NO Versioning, REMOVE the /${project.version} from the <distFilesRoot> property below. -->
		<distFilesRoot>/appl/${project.artifactId}/${project.version}</distFilesRoot>
		<runAjscHome>${basedir}/target/swm/package/nix/dist_files${distFilesRoot}</runAjscHome>

		<!-- For SOA Cloud Installation -->
		<installOwnerUser>aaiadmin</installOwnerUser>
		<installOwnerGroup>aaiadmin</installOwnerGroup>
		<ownerManagementGroup>com.att.csid.lab</ownerManagementGroup>

        <!-- Port Selection. A value of 0 will allow for dynamic port selection. 
            For local testing, you may choose to hardcode this value to something like 
            8080 -->
		<serverPort>9515</serverPort>
		<sslport>9516</sslport>

		<testRouteOffer>workstation</testRouteOffer>
		<testEnv>DEV</testEnv>
		<checkstyle.config.location>google_checks.xml</checkstyle.config.location>
		<sitePath>/content/sites/site/org/onap/aai/babel/${project.artifactId}/${project.version}</sitePath>

		<!-- Dependency Versions -->
		<aai.rest.client.version>1.2.1</aai.rest.client.version>
		<apache.lang3.version>3.6</apache.lang3.version>
		<commons-compress.version>1.14</commons-compress.version>
		<common.logging.version>1.2.2</common.logging.version>
		<dom4j.version>1.6.1</dom4j.version>
		<hamcrest.version>1.3</hamcrest.version>
		<javaassist.version>3.21.0-GA</javaassist.version>
		<logback.version>1.1.9</logback.version>
		<mvn.jaxb2.version>0.13.2</mvn.jaxb2.version>
		<mockito.version>1.10.19</mockito.version>
		<powermock.version>1.6.2</powermock.version>
		<sdc.distribution.client.version>1.1.32</sdc.distribution.client.version>
		<sdc.tosca.version>1.3.3</sdc.tosca.version>
        <fasterxml.version>2.9.4</fasterxml.version>
		<jacoco.version>0.7.9</jacoco.version>
		<xmlunit.version>1.6</xmlunit.version>
		<aai-schema.version>1.2.1</aai-schema.version>
		<onap.nexus.url>https://nexus.onap.org</onap.nexus.url>
		<docker.location>${basedir}/target</docker.location>
	</properties>

	<dependencies>
		<dependency>
			<groupId>javax.ws.rs</groupId>
			<artifactId>javax.ws.rs-api</artifactId>
			<version>2.0.1</version>
		</dependency>
		<dependency>
			<groupId>dom4j</groupId>
			<artifactId>dom4j</artifactId>
			<version>${dom4j.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>com.att.aft</groupId>
			<artifactId>dme2</artifactId>
		</dependency>

		<!-- Common logging framework -->
		<dependency>
			<groupId>org.onap.aai.logging-service</groupId>
			<artifactId>common-logging</artifactId>
			<version>${common.logging.version}</version>
		</dependency>
		<dependency>
			<groupId>org.hamcrest</groupId>
			<artifactId>hamcrest-library</artifactId>
			<version>1.3</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>com.google.code.gson</groupId>
			<artifactId>gson</artifactId>
			<version>2.8.1</version>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-core</artifactId>
			<version>${logback.version}</version>
		</dependency>

		<!-- apache commons -->
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-compress</artifactId>
			<version>${commons-compress.version}</version>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
			<version>${apache.lang3.version}</version>
		</dependency>
		<dependency>
			<groupId>org.onap.sdc.sdc-tosca</groupId>
			<artifactId>sdc-tosca</artifactId>
			<version>${sdc.tosca.version}</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-core</artifactId>
            <version>${fasterxml.version}</version><!--$NO-MVN-MAN-VER$ -->
		</dependency>
        <dependency>
            <groupId>org.onap.aai</groupId>
            <artifactId>rest-client</artifactId>
            <version>${aai.rest.client.version}</version>
        </dependency>

		<!-- Testing -->
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-core</artifactId>
			<version>${mockito.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.powermock</groupId>
			<artifactId>powermock-module-junit4</artifactId>
			<version>${powermock.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.powermock</groupId>
			<artifactId>powermock-api-mockito</artifactId>
			<version>${powermock.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.powermock</groupId>
			<artifactId>powermock-module-javaagent</artifactId>
			<version>${powermock.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.powermock</groupId>
			<artifactId>powermock-module-junit4-rule-agent</artifactId>
			<version>${powermock.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.javassist</groupId>
			<artifactId>javassist</artifactId>
			<version>${javaassist.version}</version>
		</dependency>
		<dependency>
			<groupId>org.openecomp.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>

	<repositories>
		<repository>
			<id>ecomp-staging</id>
			<name>ECOMP Staging Repository</name>
			<url>${onap.nexus.url}/content/repositories/staging/</url>
		</repository>
	</repositories>

	<distributionManagement>
		<repository>
			<id>ecomp-releases</id>
			<name>ECOMP Release Repository</name>
			<url>${onap.nexus.url}/content/repositories/releases/</url>
		</repository>
		<snapshotRepository>
			<id>ecomp-snapshots</id>
			<name>ECOMP Snapshot Repository</name>
			<url>${onap.nexus.url}/content/repositories/snapshots/</url>
		</snapshotRepository>
		<site>
			<id>ecomp-site</id>
			<url>dav:${onap.nexus.url}${sitePath}</url>
		</site>
	</distributionManagement>

	<build>
		<plugins>
			<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>org.onap.aai.aai-common</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>
				<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>org.codehaus.mojo</groupId>
				<artifactId>sonar-maven-plugin</artifactId>
				<version>3.2</version>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>cobertura-maven-plugin</artifactId>
				<version>2.7</version>
				<executions>
					<execution>
						<phase />
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
				<version>${jacoco.version}</version>
				<configuration>
					<excludes>
						<exclude>**/xml/generator/xsd/*.class</exclude>
					</excludes>
				</configuration>
				<executions>
					<execution>
						<id>prepare-agent</id>
						<goals>
							<goal>prepare-agent</goal>
						</goals>
					</execution>

					<execution>
						<id>report</id>
						<phase>package</phase>
						<goals>
							<goal>report</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.codehaus.groovy</groupId>
				<artifactId>groovy-eclipse-compiler</artifactId>
				<version>2.9.2-01</version>
			</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>
									<includes>
										<include>**/*</include>
									</includes>
								</resource>
								<resource>
									<directory>${basedir}/src/main/bin/</directory>
								</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>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>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-deploy-plugin</artifactId>
				<version>2.8.2</version>
				<configuration>
					<classifier>client</classifier>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-site-plugin</artifactId>
				<version>3.3</version>
				<configuration>
					<reportPlugins>
						<plugin>
							<groupId>org.apache.maven.plugins</groupId>
							<artifactId>maven-checkstyle-plugin</artifactId>
							<version>2.17</version>
							<reportSets>
								<reportSet>
									<reports>
										<report>checkstyle</report>
									</reports>
								</reportSet>
							</reportSets>
						</plugin>
					</reportPlugins>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.sonatype.plugins</groupId>
				<artifactId>nexus-staging-maven-plugin</artifactId>
				<version>1.6.7</version>
				<extensions>true</extensions>
				<configuration>
					<nexusUrl>${onap.nexus.url}</nexusUrl>
					<stagingProfileId>176c31dfe190a</stagingProfileId>
					<serverId>ecomp-staging</serverId>
				</configuration>
			</plugin>

			<!-- Strong recommendation to use forkCount and reuseForks parameters as forkMode is deprecated since v2.14 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<reuseForks>false</reuseForks>
					<forkCount>1</forkCount>
					<environmentVariables>
						<AJSC_HOME>.</AJSC_HOME>
					</environmentVariables>
				</configuration>
			</plugin>
		</plugins>

	</build>

	<profiles>
		<profile>
			<id>runAjsc</id>
			<build>
				<defaultGoal>initialize</defaultGoal>
				<plugins>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>exec-maven-plugin</artifactId>
						<version>1.3.2</version>
						<executions>
							<execution>
								<phase>initialize</phase>
								<goals>
									<goal>java</goal>
								</goals>
								<configuration>
									<includeProjectDependencies>false</includeProjectDependencies>
									<includePluginDependencies>true</includePluginDependencies>
									<executable>java</executable>
									<mainClass>com.att.ajsc.runner.Runner</mainClass>
									<executableDependency>
										<groupId>com.att.ajsc</groupId>
										<artifactId>ajsc-runner</artifactId>
									</executableDependency>
									<additionalClasspathElements>
										<additionalClasspathElement>${basedir}/ajsc-shared-config/etc</additionalClasspathElement>
									</additionalClasspathElements>

									<environmentVariables>
										<AJSC_HOME>${runAjscHome}</AJSC_HOME>
									</environmentVariables>

									<!-- Main AJSC System Properties below (necessary for proper startup) -->
									<systemProperties>
										<systemProperty>
											<key>AJSC_HOME</key>
											<value>${runAjscHome}</value>
										</systemProperty>
										<systemProperty>
											<key>AJSC_HOME</key>
											<value>${runAjscHome}</value>
										</systemProperty>
										<systemProperty>
											<key>AJSC_CONF_HOME</key>
											<value>${basedir}/bundleconfig-local</value>
										</systemProperty>
										<systemProperty>
											<key>logback.configurationFile</key>
											<value>${basedir}/ajsc-shared-config/etc/logback.xml</value>
										</systemProperty>
										<systemProperty>
											<key>AJSC_SHARED_CONFIG</key>
											<value>${basedir}/ajsc-shared-config</value>
										</systemProperty>
										<sysproperty>
											<key>AJSC_EXTERNAL_LIB_FOLDERS</key>
											<value>${basedir}/target/commonLibs</value>
										</sysproperty>
										<sysproperty>
											<key>AJSC_EXTERNAL_PROPERTIES_FOLDERS</key>
											<value>${basedir}/ajsc-shared-config/etc</value>
										</sysproperty>

										<systemProperty>
											<key>AJSC_SERVICE_NAMESPACE</key>
											<value>${module.ajsc.namespace.name}</value>
										</systemProperty>
										<systemProperty>
											<key>AJSC_SERVICE_VERSION</key>
											<value>${module.ajsc.namespace.version}</value>
										</systemProperty>
										<systemProperty>
											<key>SOACLOUD_SERVICE_VERSION</key>
											<value>${project.version}</value>
										</systemProperty>
										<systemProperty>
											<key>server.port</key>
											<value>${serverPort}</value>
										</systemProperty>
										<systemProperty>
											<key>CONFIG_HOME</key>
											<value>${basedir}/appconfig-local</value>
										</systemProperty>
										<systemProperty>
											<key>artifactgenerator.config</key>
											<value>${basedir}/appconfig-local/artifact-generator.properties</value>
										</systemProperty>
									</systemProperties>

                                    <!-- Command Line Arguments to add to the java command. Here, you 
                                        can specify the port as well as the Context you want your service to run 
                                        in. Use context=/ to run in an unnamed Context (Root Context). The default 
                                        configuration of the AJSC is to run under the / Context. Setting the port 
                                        here can aid during the development phase of your service. However, you can 
                                        leave this argument out entirely, and the AJSC will default to using an Ephemeral 
                                        port. -->
									<arguments>
										<argument>context=/</argument>
										<argument>port=${serverPort}</argument>
										<argument>sslport=${sslport}</argument>
									</arguments>
								</configuration>
							</execution>
						</executions>
						<configuration>
							<executable>java</executable>
						</configuration>
						<dependencies>
							<dependency>
								<groupId>com.att.ajsc</groupId>
								<artifactId>ajsc-runner</artifactId>
								<version>${ajscRuntimeVersion}</version>
							</dependency>
						</dependencies>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>

</project>