<?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.parent</groupId>
        <artifactId>odlparent-lite</artifactId>
        <version>1.4.0-SNAPSHOT</version>
        <relativePath />
    </parent>

  <groupId>org.onap.appc</groupId>

    <modelVersion>4.0.0</modelVersion>
    <artifactId>appc-config-adaptor</artifactId>
    <packaging>pom</packaging>

    <name>Config Component Adaptor</name>
    <description>This adaptor implements Configure DG node that calls the Configuration Component</description>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.onap.appc</groupId>
                <artifactId>appc-config-adaptor-features</artifactId>
                <classifier>features</classifier>
                <type>xml</type>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.onap.appc</groupId>
                <artifactId>appc-config-adaptor-provider</artifactId>
                <version>${project.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <modules>
        <module>provider</module>
        <module>features</module>
        <module>installer</module>
    </modules>

    <version>1.4.0-SNAPSHOT</version>
</project>
