<?xml version="1.0" encoding="UTF-8"?>
<!--
  ============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/maven-v4_0_0.xsd">

	<parent>
		<groupId>org.onap.appc</groupId>
		<artifactId>appc-inbound</artifactId>
		<version>1.4.0-SNAPSHOT</version>
	</parent>
	<modelVersion>4.0.0</modelVersion>
	<packaging>pom</packaging>
	<artifactId>appc-artifact-handler</artifactId>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.onap.appc</groupId>
				<artifactId>appc-artifact-handler-features</artifactId>
				<classifier>features</classifier>
				<type>xml</type>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.onap.appc</groupId>
				<artifactId>appc-artifact-handler-model</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.onap.appc</groupId>
				<artifactId>appc-artifact-handler-provider</artifactId>
				<version>${project.version}</version>
				<classifier>config</classifier>
				<type>xml</type>
			</dependency>
			<dependency>
				<groupId>org.onap.appc</groupId>
				<artifactId>appc-artifact-handler-provider</artifactId>
				<version>${project.version}</version>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<modules>
		<module>model</module>
		<module>provider</module>
		<module>features</module>
		<module>installer</module>
	</modules>
</project>
