<?xml version="1.0" encoding="UTF-8"?>
<!--
 * ============LICENSE_START====================================================
 * org.onap.aaf
 * ===========================================================================
 * Copyright (c) 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====================================================
 *
-->
<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.misc</groupId>
	<artifactId>parent</artifactId>
	<name>AAF Misc Parent</name>
	<version>1.3.0-SNAPSHOT</version>
	<packaging>pom</packaging>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<powermock.version>1.5.1</powermock.version>
	</properties>

	<developers>
		<developer>
			<name>Jonathan Gathman</name>
			<email>jonathan.gathman@att.com</email>
			<organization>ATT</organization>
			<roles>
				<role>Architect</role>
				<role>Lead Developer</role>
			</roles>
		</developer>
		<developer>
			<name>Gabe Maurer</name>
			<email>gabe.maurer@att.com</email>
			<organization>ATT</organization>
			<roles>
				<role>Developer</role>
			</roles>
		</developer>
		<developer>
			<name>Ian Howell</name>
			<email>ian.howell@att.com</email>
			<organization>ATT</organization>
			<roles>
				<role>Developer</role>
			</roles>
		</developer>
	</developers>

	<dependencies>
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-all</artifactId>
 			<version>1.9.5</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.powermock</groupId>
			<artifactId>powermock-module-junit4</artifactId>
			<version>${powermock.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.powermock</groupId>
			<artifactId>powermock-api-mockito</artifactId>
			<version>${powermock.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.10</version>
			<scope>test</scope>
		</dependency>	
	</dependencies>

	<build>
		<testSourceDirectory>src/test/java</testSourceDirectory>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<version>2.4</version>
					<artifactId>maven-jar-plugin</artifactId>
					<configuration>
						<outputDirectory>target</outputDirectory>
					</configuration>
				</plugin>
	
				<plugin>
					<inherited>true</inherited>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>2.3.2</version>
					<configuration>
						<source>1.7</source>
						<target>1.7</target>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>

	<distributionManagement>
		<repository>
			<id>nexus</id>
			<name>attarch-releases</name>
			<url>http://mavencentral.it.att.com:8084/nexus/content/repositories/attarch-releases</url>
		</repository>
		<snapshotRepository>
			<id>nexus</id>
			<name>attarch-snapshots</name>
			<url>http://mavencentral.it.att.com:8084/nexus/content/repositories/attarch-snapshots</url>
		</snapshotRepository>
	</distributionManagement> 

	<modules>
		<module>env</module>
		<module>xgen</module>
		<module>rosetta</module>
		<module>log4j</module> <!--  note: generates log4j, to avoid Jar conflict -->
	</modules>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>log4j</groupId>
				<artifactId>log4j</artifactId>
				<version>1.2.17</version>
			</dependency>
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-log4j12</artifactId>
				<version>1.7.5</version>
			</dependency>
		</dependencies>
	</dependencyManagement>
</project>
