<?xml version="1.0" encoding="UTF-8"?>
<!--
  ============LICENSE_START====================================================
  * org.onap.aaf
  * ===========================================================================
  * Copyright © 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====================================================
  *
  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
  *
-->
<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/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.onap.aaf.authz</groupId>
		<artifactId>parent</artifactId>
		<version>1.0.1-SNAPSHOT</version>
		<relativePath>../pom.xml</relativePath>
	</parent>
		
	<artifactId>authz-service</artifactId>
	<name>Authz Service</name>
	<description>API for Authorization and Authentication</description>
		<url>https://github.com/att/AAF</url>
	<licenses>
		<license>
		<name>BSD License</name>
		<url> </url>
		</license>
	</licenses>
	<developers>
		<developer>
		<name>Jonathan Gathman</name>
		<email></email>
	<organization>ATT</organization>
	<organizationUrl></organizationUrl>
		</developer>
	</developers>

	<properties>
	<maven.build.timestamp.format>yyyy.MM.dd'T'hh.mm.ss'Z'</maven.build.timestamp.format>
		<maven.test.failure.ignore>true</maven.test.failure.ignore>
		<project.swmVersion>1</project.swmVersion>
			<project.innoVersion>1.0.0-SNAPSHOT</project.innoVersion>
		<project.cadiVersion>1.0.0-SNAPSHOT</project.cadiVersion>
	    <dockerLocation>${basedir}/target/</dockerLocation>
		<distFilesRootDirPath>opt/app/aaf/${project.artifactId}/${project.version}</distFilesRootDirPath>
			<sonar.language>java</sonar.language>
		<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
		<sonar.surefire.reportsPath>${project.build.directory}/surefire-reports</sonar.surefire.reportsPath>
		<sonar.jacoco.reportPath>${project.build.directory}/coverage-reports/jacoco.exec</sonar.jacoco.reportPath>
		<sonar.jacoco.itReportPath>${project.build.directory}/coverage-reports/jacoco-it.exec</sonar.jacoco.itReportPath>
		<sonar.jacoco.reportMissing.force.zero>true</sonar.jacoco.reportMissing.force.zero>
		<sonar.projectVersion>${project.version}</sonar.projectVersion>
        <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>
		
        <docker.push.registry>localhost:5000</docker.push.registry>
        <skip.docker.build>true</skip.docker.build>
        <skip.docker.push>true</skip.docker.push>
        <skip.staging.artifacts>false</skip.staging.artifacts>
	</properties>
	
		
	<dependencies>
        <dependency>
            <groupId>org.onap.aaf.authz</groupId>
            <artifactId>authz-client</artifactId>
			<version>${project.version}</version>
        </dependency>
		
		<dependency>
            <groupId>org.onap.aaf.authz</groupId>
            <artifactId>authz-cmd</artifactId>
			<version>${project.version}</version>
        </dependency>		
        <dependency>
            <groupId>org.onap.aaf.authz</groupId>
            <artifactId>authz-core</artifactId>
			<version>${project.version}</version>
            <exclusions>
			  <exclusion> 
					<groupId>javax.servlet</groupId>
       			<artifactId>servlet-api</artifactId>
       		   </exclusion>
		    </exclusions> 
        </dependency>
        
        <dependency>
            <groupId>org.onap.aaf.authz</groupId>
            <artifactId>authz-cass</artifactId>
			<version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>org.onap.aaf.authz</groupId>
            <artifactId>authz-defOrg</artifactId>
            <version>${project.version}</version>
        </dependency>


	
        <dependency > 
			<groupId>org.onap.aaf.inno</groupId>
			<artifactId>env</artifactId>
			<version>${project.innoVersion}</version>
		</dependency>


		<dependency>
			<groupId>org.onap.aaf.cadi</groupId>
			<artifactId>cadi-core</artifactId>
			<version>${project.cadiVersion}</version>
		</dependency>

		<dependency>
			<groupId>com.att.aft</groupId>
			<artifactId>dme2</artifactId>
		</dependency>

 		<dependency>
			<groupId>org.onap.aaf.inno</groupId>
			<artifactId>rosetta</artifactId>
			<version>${project.innoVersion}</version>
		</dependency>
		<dependency>
			<groupId>org.onap.aaf.cadi</groupId>
			<artifactId>cadi-aaf</artifactId>
			<version>${project.cadiVersion}</version>
		</dependency>   
	</dependencies>


	<build>
	    <plugins>
	
		
<plugin>
        <groupId>com.spotify</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <version>1.0.0</version>
        <configuration>
          <imageName>onap/aaf/authz-service</imageName>
          <dockerDirectory>${dockerLocation}</dockerDirectory>
          <serverId>docker-hub</serverId>
          <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>/${basedir}/target/opt</directory>
                    <filtering>true</filtering>
                     <includes>
                        <include>**/*</include>
                            </includes>
            </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-latest-timestamp</id>
            <phase>package</phase>
            <goals>
              <goal>tag</goal>
            </goals>
            <configuration>
              <image>onap/aaf/authz-service</image>
              <newName>${docker.push.registry}/onap/aaf/authz-service:${project.docker.latesttagtimestamp.version}</newName>
              <skipDockerTag>${skip.docker.push}</skipDockerTag>
            </configuration>
          </execution>
          <execution>
            <id>push-image-latest-timestamp</id>
            <phase>deploy</phase>
            <goals>
              <goal>push</goal>
            </goals>
            <configuration>
              <imageName>${docker.push.registry}/onap/aaf/authz-service:${project.docker.latesttagtimestamp.version}</imageName>
              <skipDockerPush>${skip.docker.push}</skipDockerPush>
            </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/aaf/authz-service:${project.docker.latesttag.version}</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/aaf/authz-service:${project.docker.latesttag.version}</imageName>
              <skipDockerPush>${skip.docker.push}</skipDockerPush>
            </configuration>
          </execution>
          <execution>
            <id>tag-image</id>
            <phase>package</phase>
            <goals>
              <goal>tag</goal>
            </goals>
            <configuration>
              <image>onap/aaf/authz-service</image>
              <newName>${docker.push.registry}/onap/aaf/authz-service:latest</newName>
              <skipDockerTag>${skip.docker.push}</skipDockerTag>
            </configuration>
          </execution>
          <execution>
            <id>push-image</id>
            <phase>deploy</phase>
            <goals>
              <goal>push</goal>
            </goals>
            <configuration>
              <imageName>${docker.push.registry}/onap/aaf/authz-service:latest</imageName>
              <skipDockerPush>${skip.docker.push}</skipDockerPush>
            </configuration>
          </execution>
        </executions>
      </plugin>

			<plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.7</version>
              <executions>
	              <execution>
                        <id>copy-docker-file</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${dockerLocation}</outputDirectory>
                            <overwrite>true</overwrite>
                            <resources>
                                <resource>
                                    <directory>${basedir}/src/main/resources/docker</directory>
                                    <filtering>true</filtering>
                                    <includes>
                                        <include>**/*</include>
                                    </includes>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
      <execution>
        <id>copy-resources-1</id>
        <phase>validate</phase>
        <goals>
          <goal>copy-resources</goal>
        </goals>
        <configuration>
         <outputDirectory>${project.build.directory}/opt/dme2reg/</outputDirectory>
          <resources>
            <resource>
                        <directory>${project.basedir}/src/main/resources/dme2reg/</directory> 
						 <includes>
						 <include>**/*.txt</include>
                        </includes>
                    </resource>
          </resources>
        </configuration>
      </execution>
      <execution>
        <id>copy-resources-2</id>
        <phase>validate</phase>
        <goals>
          <goal>copy-resources</goal>
        </goals>
        <configuration>
          <outputDirectory>${project.build.directory}/opt/app/aaf/authz-service/etc</outputDirectory>
          <resources>
            <resource>
                        <directory>${project.basedir}/src/main/resources/etc</directory>
                        <includes>
                            <include>**/**</include>
                        </includes>
                    </resource>
          </resources>
        </configuration>
      </execution>
	  
	   <execution>
        <id>copy-resources-3</id>
        <phase>validate</phase>
        <goals>
          <goal>copy-resources</goal>
        </goals>
        <configuration>
          <outputDirectory>${project.build.directory}/opt/app/aaf/authz-service/lib</outputDirectory>
          <resources>
            <resource>
                        <directory>${project.basedir}/../authz-cmd/target</directory>
                        <includes>
                            <include>**/*.jar</include>
                        </includes>
                    </resource>
          </resources>
        </configuration>
      </execution>
	  <execution>
        <id>copy-resources-4</id>
        <phase>validate</phase>
        <goals>
          <goal>copy-resources</goal>
        </goals>
        <configuration>
          <outputDirectory>${project.build.directory}/opt/app/aaf/authz-service/</outputDirectory>
          <resources>
            <resource>
                        <directory>${project.basedir}/../authz-cmd</directory>
                        <includes>
                            <include>**/aafcli.sh</include>
                        </includes>
                    </resource>
          </resources>
        </configuration>
      </execution>
		<execution>
        <id>copy-resources-5</id>
        <phase>validate</phase>
        <goals>
          <goal>copy-resources</goal>
        </goals>
        <configuration>
          <outputDirectory>${project.build.directory}/opt/app/aaf/authz-service/etc/</outputDirectory>
          <resources>
            <resource>
                        <directory>${project.basedir}/src/main/config</directory>
                        <includes>
                            <include>**/**</include>
                        </includes>
                    </resource>
          </resources>
        </configuration>
      </execution>
	  <execution>
        <id>copy-resources-6</id>
        <phase>validate</phase>
        <goals>
          <goal>copy-resources</goal>
        </goals>
        <configuration>
          <outputDirectory>${project.build.directory}/opt/app/aaf/authz-service/etc/data</outputDirectory>
          <resources>
            <resource>
                        <directory>${project.basedir}/../opt/app/aaf/data</directory>
                        <includes>
                            <include>**/**</include>
                        </includes>
                    </resource>
          </resources>
        </configuration>
		</execution>
    </executions>
  </plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<version>2.10</version>
				<executions>
					<execution>
						<id>copy-dependencies</id>
						<phase>package</phase>
						<goals>
							<goal>copy-dependencies</goal>
						</goals>
						<configuration>
							<outputDirectory>${project.build.directory}/opt/app/aaf/authz-service/lib</outputDirectory>
							<overWriteReleases>false</overWriteReleases>
							<overWriteSnapshots>false</overWriteSnapshots>
							<overWriteIfNewer>true</overWriteIfNewer>
						</configuration>
					</execution>
				</executions>
			</plugin>
				
	            <plugin>
	                <groupId>org.codehaus.mojo</groupId>
	                <artifactId>exec-maven-plugin</artifactId>
	                <version>1.5.0</version>
	                <configuration>
	                    <executable>java</executable>
	                    <arguments>
	                        <argument>-DAFT_LATITUDE=33</argument>
	                        <argument>-DAFT_LONGITUDE=-84</argument>
	                        <argument>-DAFT_ENVIRONMENT=AFTUAT</argument>
	
	                        <argument>-XX:NewRatio=3</argument>
	                        <argument>-XX:+PrintGCTimeStamps</argument>
	                        <argument>-XX:+PrintGCDetails</argument>
	                        <argument>-Xloggc:gc.log</argument>
	                        <argument>-classpath</argument>
	
	                        <classpath>
	                        
	                        </classpath>
	                        <argument>org.onap.aaf.authz.service.AuthAPI</argument>
	
	                   <argument>service=org.onap.aaf.authz.AuthorizationService/version=2.0/envContext=DEV/routeOffer=Dev</argument>
	                    </arguments>
	                </configuration>
	            </plugin>
	
	            <plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
					<configuration>
						<excludes>
	                    	<exclude>*.properties</exclude>
	                	</excludes>
					</configuration>
					<version>2.3.1</version>
				</plugin>
 

		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-javadoc-plugin</artifactId>
			<version>2.10.4</version>
			<configuration>
			<failOnError>false</failOnError>
			</configuration>
			<executions>
				<execution>
					<id>attach-javadocs</id>
					<goals>
						<goal>jar</goal>
					</goals>
				</execution>
			</executions>
		</plugin> 
	   
	   
	       <plugin>
		      <groupId>org.apache.maven.plugins</groupId>
		      <artifactId>maven-source-plugin</artifactId>
		      <version>2.2.1</version>
		      <executions>
			<execution>
			  <id>attach-sources</id>
			  <goals>
			    <goal>jar-no-fork</goal>
			  </goals>
			</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>

	</build>


		<distributionManagement>
		<repository>
			<id>ecomp-releases</id>
			<name>AAF Release Repository</name>
			<url>${nexusproxy}${releaseNexusPath}</url>
		</repository>
		<snapshotRepository>
			<id>ecomp-snapshots</id>
			<name>AAF Snapshot Repository</name>
			<url>${nexusproxy}${snapshotNexusPath}</url>
		</snapshotRepository>
		<site>
			<id>ecomp-site</id>
			<url>dav:${nexusproxy}${sitePath}</url>
		</site>
	</distributionManagement>
 <profiles>
    <profile>
      <id>docker</id>
      <properties>
        <skip.staging.artifacts>true</skip.staging.artifacts>
        <skip.docker.build>false</skip.docker.build>
        <skip.docker.tag>false</skip.docker.tag>
        <skip.docker.push>false</skip.docker.push>
      </properties>
    </profile>
  </profiles>
</project>
