<!--
  ============LICENSE_START=======================================================
  ONAP : APPC
  ================================================================================
  Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
  Copyright (C) 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=========================================================
  -->
<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>
	<parent>
		<groupId>org.onap.appc</groupId>
		<artifactId>appc</artifactId>
		<version>1.6.0-SNAPSHOT</version>
	</parent>
	<artifactId>appc-outbound</artifactId>
	<packaging>pom</packaging>
	<name>Application Controller Outbound</name>
	<description>Application Controller Outbound</description>

	<properties>
		<sdnc.aai.version>${ccsdk.sli.adaptors.version}</sdnc.aai.version>
	</properties>


	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.onap.ccsdk.sli.adaptors</groupId>
				<artifactId>sql-resource-provider</artifactId>
				<version>${ccsdk.sli.adaptors.version}</version>
			</dependency>

			<dependency>
				<groupId>org.onap.ccsdk.sli.adaptors</groupId>
				<artifactId>aai-service-provider</artifactId>
				<version>${sdnc.aai.version}</version>
			</dependency>

		</dependencies>
	</dependencyManagement>

	<modules>
		<module>appc-aai-client</module>
		<module>appc-network-inventory-client</module>
	</modules>

	<build>
		<pluginManagement>
			<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.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>
											org.apache.maven.plugins
										</groupId>
										<artifactId>
											maven-checkstyle-plugin
										</artifactId>
										<versionRange>
											[2.17,)
										</versionRange>
										<goals>
											<goal>check</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore></ignore>
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
</project>
