<?xml version="1.0" encoding="UTF-8"?>
<!--
 * ============LICENSE_START====================================================
 * org.onap.aaf
 * ===========================================================================
 * Copyright (c) 2017 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.
 * 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.aaf.authz</groupId>
        <artifactId>parent</artifactId>
        <version>2.1.2-SNAPSHOT</version>
    </parent>
	<artifactId>authparent</artifactId>
	<name>AAF Auth Parent</name>
	<packaging>pom</packaging>

	
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.ext_root_dir>/opt/app/osaaf</project.ext_root_dir>
		<!--  SONAR  -->
		 <jacoco.version>0.7.7.201606060606</jacoco.version>
	    <sonar-jacoco-listeners.version>3.2</sonar-jacoco-listeners.version>
	    <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
	    <!-- Default Sonar configuration -->
	    <sonar.jacoco.reportPaths>target/code-coverage/jacoco-ut.exec</sonar.jacoco.reportPaths>
	    <sonar.jacoco.itReportPaths>target/code-coverage/jacoco-it.exec</sonar.jacoco.itReportPaths>
	    <!-- Note: This list should match jacoco-maven-plugin's exclusion list below -->
	    <sonar.exclusions>**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**</sonar.exclusions>
		<nexusproxy>https://nexus.onap.org</nexusproxy>
		<snapshotNexusPath>/content/repositories/snapshots/</snapshotNexusPath>
		<releaseNexusPath>/content/repositories/releases/</releaseNexusPath>
		<stagingNexusPath>/content/repositories/staging/</stagingNexusPath>
		<sitePath>/content/sites/site/org/onap/aaf/authz/${project.artifactId}/${project.version}</sitePath>
		<!-- We have to up these versions from the original to avoid Security Errors -->
		<project.cassVersion>3.4.0</project.cassVersion>
		<project.nettyVersion>4.1.22.Final</project.nettyVersion>
		<project.project.ext_root_dir>/opt/app/osaaf</project.project.ext_root_dir>
	</properties>

	<developers>
		<developer>
			<name>Jonathan Gathman</name>
			<email>jonathan.gathman@att.com</email>
			<organization>ATT</organization>
			<roles>
				<role>Architect</role>
				<role>Lead Developer</role>
			</roles>
		</developer>
		<developer>
			<name>Gabe Maurer</name>
			<email>gabe.maurer@att.com</email>
			<organization>ATT</organization>
			<roles>
				<role>Developer</role>
			</roles>
		</developer>
		<developer>
			<name>Ian Howell</name>
			<email>ian.howell@att.com</email>
			<organization>ATT</organization>
			<roles>
				<role>Developer</role>
			</roles>
		</developer>
		<developer>
			<name>Sai Gandham</name>
			<email>sai.gandham@att.com</email>
			<organization>ATT</organization>
			<roles>
				<role>Developer</role>
			</roles>
		</developer>
	</developers>

	<build>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>2.3.2</version>
					<configuration>
						<source>1.8</source>
						<target>1.8</target>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-deploy-plugin</artifactId>
					<version>2.6</version>
					<configuration>
						<skip>false</skip>
					</configuration>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>2.17</version>
					<configuration>
						<skipTests>false</skipTests>

						<includes>
							<include>**/JU*.java</include>
						</includes>
						<excludes>
						</excludes>

					</configuration>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-failsafe-plugin</artifactId>
					<version>2.17</version>
					<configuration>
						<skipTests>false</skipTests>
					</configuration>
					<executions>
						<execution>
							<id>integration-test</id>
							<goals>
								<goal>integration-test</goal>
								<goal>verify</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
				
				<!--  Builds O/S Command line ready jars and scripts, ready to run/zip -->
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>appassembler-maven-plugin</artifactId>
					<version>1.10</version>
					<executions>
						<execution>
							<goals>
								<goal>assemble</goal>
							</goals>
							<phase>install</phase>
						</execution>
					</executions>
					<configuration>
						<programs/> <!-- this set in projects that have programs -->
						<assembleDirectory>../aaf_${project.version}</assembleDirectory>
						<copyConfigurationDirectory>true</copyConfigurationDirectory>
						<configurationDirectory>etc</configurationDirectory>
						<repositoryName>lib</repositoryName>
						<includeConfigurationDirectoryInClasspath>false</includeConfigurationDirectoryInClasspath>
						<repositoryLayout>flat</repositoryLayout>
					</configuration>
				</plugin>
				
				<!-- Build Docker Image -->
				<plugin>
					<groupId>com.spotify</groupId>
					<artifactId>docker-maven-plugin</artifactId>
					<version>1.0.0</version>
					<configuration>
						<imageName>onap/osaaf/${project.artifactId}</imageName>
						<!-- <dockerDirectory>${dockerLocation}</dockerDirectory> -->
						<dockerDirectory>${basedir}/src/main/resources/docker</dockerDirectory>
						<imageTags>
							<imageTag>latest</imageTag>
							<imageTag>${project.docker.latesttagtimestamp.version}</imageTag>
							<imageTag>${project.docker.latesttag.version}</imageTag>
						</imageTags>
						<forceTags>true</forceTags>
						<!-- <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}/opt</directory> 
							<filtering>true</filtering> <includes> <include>**/**</include> </includes> 
							</resource> </resources> -->
						<resources>
							<resource>
								<targetPath>/</targetPath>
								<directory>${project.build.directory}/opt</directory>
								<include>${project.build.finalName}.jar</include>
							</resource>
							<resource>
								<targetPath>/</targetPath>
								<directory>${project.build.directory}</directory>
								<include>**/**</include>
							</resource>
						</resources>
					</configuration>
					<executions>
						<execution>
							<id>build-image</id>
							<phase>package</phase>
							<goals>
								<goal>build</goal>
							</goals>
							<configuration>
								<skipDockerBuild>${skip.docker.build}</skipDockerBuild>
							</configuration>
						</execution>
				
						<execution>
							<id>tag-image-project-version</id>
							<phase>package</phase>
							<goals>
								<goal>tag</goal>
							</goals>
							<configuration>
								<image>onap/osaaf/${project.artifactId}</image>
								<newName>${docker.push.registry}/onap/osaaf/${project.artifactId}:${project.version}</newName>
								<skipDockerTag>${skip.docker.push}</skipDockerTag>
							</configuration>
						</execution>
				
						<execution>
							<id>tag-image-latest</id>
							<phase>package</phase>
							<goals>
								<goal>tag</goal>
							</goals>
							<configuration>
								<image>onap/aaf/authz-service</image>
								<newName>${docker.push.registry}/onap/osaaf/${project.artifactId}:latest</newName>
								<skipDockerTag>${skip.docker.push}</skipDockerTag>
							</configuration>
						</execution>
				
						<execution>
							<id>push-image-latest</id>
							<phase>deploy</phase>
							<goals>
								<goal>push</goal>
							</goals>
							<configuration>
								<imageName>${docker.push.registry}/onap/osaaf/${project.artifactId}:${project.version}</imageName>
								<skipDockerPush>${skip.docker.push}</skipDockerPush>
							</configuration>
						</execution>
				
						<execution>
							<id>push-image</id>
							<phase>deploy</phase>
							<goals>
								<goal>push</goal>
							</goals>
							<configuration>
								<imageName>${docker.push.registry}/onap/osaaf/${project.artifactId}:latest</imageName>
								<skipDockerPush>${skip.docker.push}</skipDockerPush>
							</configuration>
						</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.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
				<version>0.7.7.201606060606</version>
				<configuration>
					<dumpOnExit>true</dumpOnExit>
					<includes>
						<include>org.onap.aaf.*</include>
					</includes>
				</configuration>
				<executions>
					<execution>
						<id>pre-unit-test</id>
						<goals>
							<goal>prepare-agent</goal>
						</goals>
						<configuration>
							<destFile>${project.build.directory}/coverage-reports/jacoco.exec</destFile>
							<!-- <append>true</append> -->
						</configuration>
					</execution>
					<execution>
						<id>pre-integration-test</id>
						<phase>pre-integration-test</phase>
						<goals>
							<goal>prepare-agent</goal>
						</goals>
						<configuration>
							<destFile>${project.build.directory}/coverage-reports/jacoco-it.exec</destFile>
							<!-- <append>true</append> -->
						</configuration>
					</execution>
					<execution>
                        <goals>
                            <goal>merge</goal>
                        </goals>
                        <phase>post-integration-test</phase>
                        <configuration>
                            <fileSets>
                                <fileSet implementation="org.apache.maven.shared.model.fileset.FileSet">
                                    <directory>${project.build.directory}/coverage-reports</directory>
                                    <includes>
                                        <include>*.exec</include>
                                    </includes>
                                </fileSet>
                            </fileSets>
                            <destFile>${project.build.directory}/jacoco-dev.exec</destFile>
                        </configuration>
                    </execution>
				</executions>
			</plugin>
			</plugins>
		</pluginManagement>
	</build>

	<dependencies>
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-all</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.powermock</groupId>
			<artifactId>powermock-module-junit4</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.powermock</groupId>
			<artifactId>powermock-api-mockito</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>test</scope>
		</dependency>

	</dependencies>

	<modules>
		<!-- <module>auth-client</module> complile manually with mvn -N independently -->
		<module>auth-core</module>
		<module>auth-cass</module>
		<module>auth-deforg</module>

		<module>auth-service</module>
		<module>auth-cmd</module>
		<module>auth-batch</module>

		<module>auth-gui</module>
		<module>auth-locate</module>
		<module>auth-oauth</module>
		<module>auth-certman</module>
		<module>auth-fs</module>
		<module>auth-hello</module>
	</modules>


</project>