<?xml version="1.0" encoding="UTF-8"?>
<!--
  ============LICENSE_START====================================================
  * org.onap.aai
  * ===========================================================================
  * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
  * Copyright © 2017 Amdocs
  * ===========================================================================
  * 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>com.att.authz</groupId>
		<artifactId>parent</artifactId>
		<version>2.0.15</version>
		<relativePath>../pom.xml</relativePath>
	</parent>
		
	<artifactId>authz-gw</artifactId>
	<name>Authz Gate/Wall</name>
	<description>GW API</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>30</project.swmVersion>
	</properties>
		
	<dependencies>
        <dependency>
            <groupId>com.att.authz</groupId>
            <artifactId>authz-core</artifactId>
         
            <exclusions>
			  <exclusion> 
					<groupId>javax.servlet</groupId>
       			<artifactId>servlet-api</artifactId>
       			       		   </exclusion>
		    </exclusions> 
        </dependency>
	    
		<dependency> 
			<groupId>com.att.cadi</groupId>
			<artifactId>cadi-aaf</artifactId>
		</dependency>

	<!--	<dependency> 
			<groupId>com.att.cadi</groupId>
			<artifactId>cadi-tguard</artifactId>
		</dependency>   -->
		
	</dependencies>
	
	<build>
		<plugins>
			<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>jaxb2-maven-plugin</artifactId>
				</plugin>
	            <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>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-deploy-plugin</artifactId>
					<configuration>
						<skip>true</skip>
					</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.sonatype.plugins</groupId>
			<artifactId>nexus-staging-maven-plugin</artifactId>
			<version>1.6.7</version>
			<extensions>true</extensions>
			<configuration>
			<serverId>ossrhdme</serverId>
			<nexusUrl>https://oss.sonatype.org/</nexusUrl>
			<autoReleaseAfterClose>true</autoReleaseAfterClose>
			</configuration>
		</plugin>
		
			</plugins>
		<pluginManagement>
			<plugins/>
		</pluginManagement>
	</build>

	<distributionManagement>
    		<snapshotRepository>
      			<id>ossrhdme</id>
      			<url>https://oss.sonatype.org/content/repositories/snapshots</url>
    		</snapshotRepository>
    		<repository>
      			<id>ossrhdme</id>
      			<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
    		</repository>
	</distributionManagement>
	
	<scm>
		<connection>https://github.com/att/AAF.git</connection>
		<developerConnection>${project.scm.connection}</developerConnection>
		<url>http://github.com/att/AAF/tree/master</url>
	</scm>
</project>
