<!--
  ============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/xsd/maven-4.0.0.xsd">

	<modelVersion>4.0.0</modelVersion>
	<groupId>org.onap.aaf.authz</groupId>
	<artifactId>parent</artifactId>
	<version>1.0.0-SNAPSHOT</version>
	<name>Authz Parent (pom)</name>
	<packaging>pom</packaging>
	<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>
	<description>This module is used to organize all of the common SWM (Software Manager) 
		artifacts and capabilities that are inherited by all modules that are SWM
		packaged.  This prevents duplication of these common artifacts, plugins, and 
		other settings and provides a single place to support this configuration.
	</description>
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<skipTests>false</skipTests>
		<project.interfaceVersion>1.0.0-SNAPSHOT</project.interfaceVersion>
		<project.innoVersion>1.0.0-SNAPSHOT</project.innoVersion>
		<project.cadiVersion>1.0.0-SNAPSHOT</project.cadiVersion>
		<project.dme2Version>3.1.200</project.dme2Version>
		<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>
	</properties>

	<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>${skipTests}</skipTests>
					<includes>
					  <include>**/JU*.java</include>
					</includes>
					<excludes>
					<exclude>**/JU_DataFile.java</exclude>
					<exclude>**/JU_ArtiDAO.java</exclude>
					<exclude>**/JU_CertDAO.java</exclude>
					<exclude>**/JU_FastCalling.java</exclude>
					<exclude>**/JU_NsDAO.java</exclude>
					  <!-- <exclude>**/authz-cass/**</exclude> -->
					  <!-- <exclude>**/JU_UseCase1.java</exclude> -->
					  <exclude>**/JU_RoleDAO.java</exclude>
					  <exclude>**/JU_PermDAO.java</exclude>
					   <exclude>**/JU_Question.java</exclude> 
					  <!-- <exclude>**/JU_NS.java</exclude> -->
					  <exclude>**/JU_HistoryDAO.java</exclude>				  
					  <exclude>**/JU_DelegateDAO.java</exclude>
					  <exclude>**/JU_CredDAO.java</exclude>
					  <exclude>**/JU_CacheInfoDAO.java</exclude>
					  <exclude>**/JU_ApprovalDAO.java</exclude>
					  <exclude>**/JU_Define.java</exclude>
					  <exclude>**/JU_AuthzTransFilter.java</exclude>
					  <exclude>**/JU_CachingFileAccess.java</exclude>
					  <!-- <exclude>**/AbsServiceTest.java</exclude> -->
					  <exclude>**/JU_DefaultOrg.java</exclude>
					  <!-- <exclude>**/JU_Perm_2_0*.java</exclude> -->
					  <!-- <exclude>**/JU_Role_2_0*.java</exclude>				   -->
					</excludes>
	
				  </configuration>
				</plugin>
	
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>jaxb2-maven-plugin</artifactId>
					<version>1.3</version>
					<executions>
						<execution>
							<phase>generate-sources</phase>
							<goals>
								<goal>xjc</goal>
							</goals>
						</execution>
					</executions>
					<configuration>
						<schemaDirectory>src/main/xsd</schemaDirectory>
					</configuration>
				</plugin>
	
				<plugin>
				  <groupId>org.apache.maven.plugins</groupId>
				  <artifactId>maven-failsafe-plugin</artifactId>
				  <version>2.17</version>
				  <configuration>
		  				<skipTests>true</skipTests>
				  </configuration>
				  <executions>
					<execution>
					  <id>integration-test</id>
					  <goals>
						<goal>integration-test</goal>
						<goal>verify</goal>
					  </goals>
					</execution>
				  </executions>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-jarsigner-plugin</artifactId>
					<version>1.2</version>
					<executions>
						<execution>
							<id>sign</id>
							<goals>
								<goal>sign</goal>
							</goals>
							<configuration>
								<!--  skip>${skipSigning}</skip -->
								<archive>target/${project.artifactId}-${project.version}.jar</archive>
							</configuration>
						</execution>
						<execution>
							<id>verify</id>
							<goals>
								<goal>verify</goal>
							</goals>
							<configuration>
								<archive>target/${project.artifactId}-${project.version}.jar</archive>
							</configuration>
						</execution>
					</executions>
					<configuration>
						<skip>true</skip>
						<alias>aaf</alias>
						<keystore>/Volumes/Data/src/cadi/keys/aaf_cadi.jks</keystore>
						<storepass>Surprise!</storepass>
						<keypass>Surprise!</keypass>
						<verbose>true</verbose>
						<certs>true</certs>
					</configuration>
				</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.codehaus.mojo</groupId>
				<artifactId>cobertura-maven-plugin</artifactId>
				<version>2.7</version>
				<configuration>
					<formats>
					<format>html</format>
					<format>xml</format>
				  </formats>
				</configuration>
			</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>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.10</version>
			<scope>test</scope>
		</dependency>

		<dependency>
		    <groupId>org.mockito</groupId>
		    <artifactId>mockito-core</artifactId>
		    <version>1.10.19</version>
		    <scope>test</scope>
		</dependency>
		<dependency>
		    <groupId>org.powermock</groupId>
		    <artifactId>powermock-module-junit4</artifactId>
		    <version>1.6.4</version>
		    <scope>test</scope>
		</dependency>
		<dependency>
		    <groupId>org.powermock</groupId>
		    <artifactId>powermock-api-mockito</artifactId>
		    <version>1.6.4</version>
		    <scope>test</scope>
		</dependency> 

    	 
	</dependencies>    	

	<modules>
		<!-- 
		   <module> auth-client</module>
		   complile manually with mvn -N independently
		-->
		<module>authz-client</module>
		<module>authz-core</module>
		<module>authz-cass</module>
		<module>authz-defOrg</module>
 		<module>authz-cmd</module>
 		<!--  <module>authz-batch</module>-->
 		<module>authz-test</module>
 		<!--  <module>authz-gui</module> -->
 		<module>authz-gw</module>
 		<module>authz-certman</module>
 		<module>authz-fs</module>
		<module>authz-service</module>
 	</modules>
	
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.onap.aaf.inno</groupId>
				<artifactId>env</artifactId>
				<version>${project.innoVersion}</version>
			</dependency>

			<dependency>
				<groupId>org.onap.aaf.inno</groupId>
				<artifactId>log4j</artifactId>
				<version>${project.innoVersion}</version>
			</dependency>

			<dependency>
				<groupId>org.onap.aaf.inno</groupId>
				<artifactId>rosetta</artifactId>
				<version>${project.innoVersion}</version>
			</dependency>

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

			<dependency>
				<groupId>org.onap.aaf.cadi</groupId>
				<artifactId>cadi-client</artifactId>
				<version>${project.cadiVersion}</version>
			</dependency>
			
			
			<dependency>
				<groupId>org.onap.aaf.cadi</groupId>
				<artifactId>cadi-aaf</artifactId>
				<version>${project.cadiVersion}</version>
				<exclusions>
			      <exclusion> 
					<groupId>org.apache.cassandra</groupId>
		    		<artifactId>cassandra-all</artifactId>
    		      </exclusion>
			    </exclusions> 
			</dependency>
			
			<dependency>
				<groupId>org.onap.aaf.authz</groupId>
				<artifactId>authz-client</artifactId>
				<version>${project.interfaceVersion}</version>
			</dependency>
			
			
			<dependency>
				<groupId>org.onap.aaf.authz</groupId>
				<artifactId>authz-core</artifactId>
				<version>${project.version}</version>
			</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-batch</artifactId>
				<version>${project.interfaceVersion}</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-gw</artifactId>
				<version>${project.version}</version>
	        </dependency>

			<dependency>
				<groupId>com.att.aft</groupId>
				<artifactId>dme2</artifactId>
				<version>${project.dme2Version}</version>
			</dependency>
		
			<dependency>
			  <groupId>javax.servlet</groupId>
			  <artifactId>servlet-api</artifactId>
			  <version>2.5</version>
			</dependency>
			
			<dependency>
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-servlet</artifactId>
				<version>9.0.3.v20130506</version>
			</dependency>
			
			<dependency>
				<groupId>com.datastax.cassandra</groupId>
				<artifactId>cassandra-all</artifactId>
				<version>2.1.10</version>
				<exclusions>
			      <exclusion> 
			        <groupId>org.slf4j</groupId>
			        <artifactId>slf4j-log4j12</artifactId>
			      </exclusion>
			      <exclusion> 
			        <groupId>log4j</groupId>
			        <artifactId>log4j</artifactId>
			      </exclusion>
			    </exclusions> 
			</dependency>
			<dependency>
				<groupId>com.datastax.cassandra</groupId>
				<artifactId>cassandra-driver-core</artifactId>
				<!-- version>1.0.3</version -->
				<!-- version>1.0.5</version -->
				<version>2.1.10</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.slf4j</groupId>
				<artifactId>slf4j-log4j12</artifactId>
				<version>1.7.5</version>
			</dependency>

			<dependency>
	      		<groupId>javax.mail</groupId>
	      		<artifactId>mail</artifactId>
	      		<version>1.4.5</version>
	    	</dependency> 

			
		</dependencies>
	</dependencyManagement>
	<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>
<pluginRepositories>
        <pluginRepository>
            <id>onap-plugin-snapshots</id>
            <url>https://nexus.onap.org/content/repositories/snapshots/</url>
        </pluginRepository>
    </pluginRepositories>
	
	<repositories>
		<repository>
			<id>central</id>
			<name>Maven 2 repository 2</name>
			<url>http://repo2.maven.org/maven2/</url>
		</repository>
		<repository>
            <id>onap-jar-snapshots</id>
            <url>https://nexus.onap.org/content/repositories/snapshots</url>
        </repository>
		<repository>
			<id>spring-repo</id>
			<name>Spring repo</name>
			<url>https://artifacts.alfresco.com/nexus/content/repositories/public/</url>
		</repository>
		<repository>
			<id>repository.jboss.org-public</id>
			<name>JBoss.org Maven repository</name>
			<url>https://repository.jboss.org/nexus/content/groups/public</url>
		</repository>
	</repositories>	
</project>	
