<?xml version="1.0" encoding="UTF-8"?>
<!--
    Copyright (c) 2016 AT&T Intellectual Property. All rights reserved.
 -->

<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>com.att.authz</groupId>
		<artifactId>parent</artifactId>
		<version>1.0.1-SNAPSHOT</version>
		<relativePath>../pom.xml</relativePath>
	</parent>
		
	<artifactId>authz-gui</artifactId>
	<name>Authz GUI (Mobile First)</name>
	<description>GUI for Authz Management</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.test.failure.ignore>true</maven.test.failure.ignore>
		<project.swmVersion>28</project.swmVersion>
		<project.innoVersion>1.0.0-SNAPSHOT</project.innoVersion>
		<project.cadiVersion>1.0.0-SNAPSHOT</project.cadiVersion>
	</properties>
	
		
	<dependencies>
        <dependency>
            <groupId>com.att.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>com.att.authz</groupId>
            <artifactId>authz-client</artifactId>
			<version>${project.version}</version>
        </dependency>
        
     <!--    <dependency>
            <groupId>com.att.authz</groupId>
            <artifactId>authz-att</artifactId>
        </dependency>    --> 
        
        
        <dependency>
            <groupId>com.att.authz</groupId>
            <artifactId>authz-cmd</artifactId>
			<version>${project.version}</version>
            <exclusions>
		      <exclusion> 
		        <groupId>org.slf4j</groupId>
		        <artifactId>slf4j-log4j12</artifactId>
		      </exclusion>
		      <exclusion> 
		        <groupId>log4j</groupId>
		        <artifactId>log4j</artifactId>
		      </exclusion>
            </exclusions>
        </dependency>

		<dependency> 
			<groupId>org.onap.aaf.cadi</groupId>
			<artifactId>cadi-aaf</artifactId>
			<version>${project.cadiVersion}</version>
		</dependency>

		<dependency> 
			<groupId>org.onap.aaf.cadi</groupId>
			<artifactId>cadi-tguard</artifactId>
			<version>${project.cadiVersion}</version>
		</dependency>

		<dependency> 
			<groupId>org.onap.aaf.cadi</groupId>
			<artifactId>cadi-client</artifactId>
			<version>${project.cadiVersion}</version>
		</dependency>

		<dependency>
			<groupId>gso</groupId>
			<artifactId>GLCookieDecryption</artifactId>
		</dependency>
		
		<dependency>
			<groupId>org.onap.aaf.inno</groupId>
			<artifactId>xgen</artifactId>
			<version>${project.innoVersion}</version>
		</dependency>
		
	</dependencies>
	
	<build>
		<plugins>
            <plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-jar-plugin</artifactId>
				<configuration>
                	<includes>
                		<include>**/*.class</include>
                	</includes>
				</configuration>
				<version>2.3.1</version>
			</plugin>
	
			<plugin>
		      <artifactId>maven-assembly-plugin</artifactId>
		      <executions>
		      	<execution>
		      		<id>swm</id>
		      		<phase>package</phase>
		      		<goals>
		      			<goal>single</goal>
		      		</goals>
		      		<configuration>
		      			<finalName>authz-gui-${project.version}.${project.swmVersion}</finalName>
		      		
			      		 <descriptors>
			          		<descriptor>../authz-service/src/main/assemble/swm.xml</descriptor>
			        	</descriptors>
			        	<archive>
				        </archive>
		      		</configuration>
		      	</execution>
		      </executions>
		    </plugin>
		    
			
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-javadoc-plugin</artifactId>
			<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>
		<pluginManagement>
			<plugins/>
		</pluginManagement>
	</build>

</project>
