<?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.8-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.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>
						<useSystemClassLoader>false</useSystemClassLoader>
					</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>	
