<?xml version="1.0" encoding="UTF-8"?>
<!--
============LICENSE_START=======================================================
ONAP : APPC
================================================================================
Copyright (C) 2018 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>

    <parent>
        <groupId>org.onap.appc.parent</groupId>
        <artifactId>single-feature-parent</artifactId>
        <version>1.5.0-SNAPSHOT</version>
        <relativePath />
    </parent>

    <groupId>org.onap.appc</groupId>
    <artifactId>onap-appc-license-manager</artifactId>
    <version>1.5.0-SNAPSHOT</version>
    <packaging>feature</packaging>

    <name></name>

    <dependencies>
        <dependency>
            <groupId>org.onap.ccsdk.sli.core</groupId>
            <artifactId>ccsdk-dblib</artifactId>
            <version>${ccsdk.sli.core.version}</version>
            <type>xml</type>
            <classifier>features</classifier>
        </dependency>
        <dependency>
            <groupId>org.onap.appc</groupId>
            <artifactId>appc-license-manager-core</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.onap.appc</groupId>
            <artifactId>appc-license-manager-api</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>com.sun.mail</groupId>
            <artifactId>javax.mail</artifactId>
            <version>1.5.0</version>
        </dependency>
<!--         <dependency> -->
<!--             <groupId>org.glassfish.jersey.core</groupId> -->
<!--             <artifactId>jersey-server</artifactId> -->
<!--             <version>2.22.1</version> -->
<!--         </dependency> -->
<!--         <dependency> -->
<!--             <groupId>com.fasterxml.jackson.jaxrs</groupId> -->
<!--             <artifactId>jackson-jaxrs-base</artifactId> -->
<!--             <version>2.5.4</version> -->
<!--         </dependency> -->
<!--         <dependency> -->
<!--             <groupId>com.fasterxml.jackson.jaxrs</groupId> -->
<!--             <artifactId>jackson-jaxrs-json-provider</artifactId> -->
<!--             <version>2.5.4</version> -->
<!--         </dependency> -->
<!--         <dependency> -->
<!--             <groupId>org.apache.httpcomponents</groupId> -->
<!--             <artifactId>httpclient-osgi</artifactId> -->
<!--             <version>4.5.3</version> -->
<!--         </dependency> -->
<!--         <dependency> -->
<!--             <groupId>org.apache.httpcomponents</groupId> -->
<!--             <artifactId>httpcore-osgi</artifactId> -->
<!--             <version>4.4</version> -->
<!--         </dependency> -->
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.karaf.tooling</groupId>
                <artifactId>karaf-maven-plugin</artifactId>
                <extensions>true</extensions>
                <configuration>
                <includeTransitiveDependency>false</includeTransitiveDependency>
                    <excludedArtifactIds>
                        <excludedArtifactId>slf4j-api</excludedArtifactId>
                        <excludedArtifactId>tomcat-jdbc</excludedArtifactId>
                        <excludedArtifactId>tomcat-juli</excludedArtifactId>
                         <excludedArtifactId>httpcore</excludedArtifactId>
                         <excludedArtifactId>httpclient</excludedArtifactId>
                         <excludedArtifactId>org.eclipse.osgi</excludedArtifactId>
                         
                    </excludedArtifactIds>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
