<!--
  ============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.1-SNAPSHOT</version>
	<name>aaf-authz</name>
	<packaging>pom</packaging>
	<url>https://github.com/att/AAF</url>
	
	<parent>             
        <groupId>org.onap.oparent</groupId>
        <artifactId>oparent</artifactId>
        <version>0.1.1</version>
    </parent>
	
	<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  -->
		 <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.reportPath>target/code-coverage/jacoco-ut.exec</sonar.jacoco.reportPath>
	    <sonar.jacoco.itReportPath>target/code-coverage/jacoco-it.exec</sonar.jacoco.itReportPath>
	    <!-- 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>
	</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-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_Identities.java</exclude>
					  <exclude>**/JU_AuthzTransFilter.java</exclude>
					  <exclude>**/JU_CachingFileAccess.java</exclude>
					  <!-- <exclude>**/AbsServiceTest.java</exclude>  -->
				  <!--		  <exclude>**/JU_DefaultOrg.java</exclude> -->
					  <exclude>**/JU_FileServer.java</exclude>
					  <exclude>**/JU_DirectAAFLur.java</exclude>
					  <exclude>**/JU_AuthAPI.java</exclude>
					  <exclude>**/JU_GwAPI.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>
			<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.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>${jacoco.version}</version>
          <configuration>
            <excludes>
              <exclude>**/gen/**</exclude>
              <exclude>**/generated-sources/**</exclude>
              <exclude>**/yang-gen/**</exclude>
              <exclude>**/pax/**</exclude>
            </excludes>
          </configuration>
          <executions>

            <execution>
              <id>pre-unit-test</id>
              <goals>
                <goal>prepare-agent</goal>
              </goals>
              <configuration>
                <destFile>${project.build.directory}/code-coverage/jacoco-ut.exec</destFile>
                <propertyName>surefireArgLine</propertyName>
              </configuration>
            </execution>
            
       
            <execution>
              <id>post-unit-test</id>
              <phase>test</phase>
              <goals>
                <goal>report</goal>
              </goals>
              <configuration>
                <dataFile>${project.build.directory}/code-coverage/jacoco-ut.exec</dataFile>
                <outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
              </configuration>
            </execution>
            <execution>
              <id>pre-integration-test</id>
              <phase>pre-integration-test</phase>
              <goals>
                <goal>prepare-agent</goal>
              </goals>
              <configuration>
                <destFile>${project.build.directory}/code-coverage/jacoco-it.exec</destFile>

                <propertyName>failsafeArgLine</propertyName>
              </configuration>
            </execution>

       
            <execution>
              <id>post-integration-test</id>
              <phase>post-integration-test</phase>
              <goals>
                <goal>report</goal>
              </goals>
              <configuration>
                <dataFile>${project.build.directory}/code-coverage/jacoco-it.exec</dataFile>
                <outputDirectory>${project.reporting.outputDirectory}/jacoco-it</outputDirectory>
              </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>

</project>	
