<?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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.onap.appc.parent</groupId>
		<artifactId>binding-parent</artifactId>
		<version>1.4.0</version>
                <relativePath />
	</parent>
        <groupId>org.onap.appc</groupId>

    <artifactId>appc-iaas-adapter-bundle</artifactId>
    <packaging>bundle</packaging>
    <name>IaaS Adapter - bundle</name>

    <dependencies>
        <dependency>
            <groupId>org.onap.appc</groupId>
            <artifactId>appc-common-bundle</artifactId>
            <version>${project.version}</version>
            <scope>compile</scope>
            <exclusions>
                <exclusion>
                    <groupId>javax</groupId>
                    <artifactId>javaee-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>


        <dependency>
            <groupId>com.att.cdp</groupId>
            <artifactId>cdp-pal-common</artifactId>
            <scope>compile</scope>
            <version>${cdp.pal.version}</version>
            <exclusions>
                <exclusion>
                  <groupId>ch.qos.logback</groupId>
                  <artifactId>logback-classic</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>com.att.cdp</groupId>
            <artifactId>cdp-pal-openstack</artifactId>
            <scope>compile</scope>
            <version>${cdp.pal.version}</version>
            <exclusions>
                  <exclusion>
                       <groupId>com.att.cdp</groupId>
                       <artifactId>cdp-pal-common</artifactId>
                  </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.glassfish.jersey.core</groupId>
            <artifactId>jersey-common</artifactId>
            <version>2.25.1</version>
            <scope>compile</scope>
        </dependency>


        <dependency>
            <groupId>org.glassfish.jersey.core</groupId>
            <artifactId>jersey-client</artifactId>
            <version>2.25.1</version>
            <scope>compile</scope>
        </dependency>

        <dependency>
            <groupId>org.glassfish.jersey.core</groupId>
            <artifactId>jersey-server</artifactId>
            <version>2.25.1</version>
            <scope>compile</scope>
        </dependency>

        <!-- <dependency> -->
        <!-- <groupId>javax</groupId> -->
        <!-- <artifactId>javaee-api</artifactId> -->
        <!-- <version>7.0</version> -->
        <!-- </dependency> -->

        <dependency>
            <groupId>javax.ws.rs</groupId>
            <artifactId>javax.ws.rs-api</artifactId>
            <version>2.0.1</version>
            <scope>compile</scope>
        </dependency>

        <!-- <dependency> -->
        <!-- <groupId>org.glassfish.jersey.containers</groupId> -->
        <!-- <artifactId>jersey-container-servlet</artifactId> -->
        <!-- <version>2.25.1</version> -->
        <!-- <scope>provided</scope> -->
        <!-- </dependency> -->

        <dependency>
            <groupId>org.glassfish.jersey.connectors</groupId>
            <artifactId>jersey-grizzly-connector</artifactId>
            <version>2.25.1</version>
            <scope>compile</scope>
        </dependency>
        <!-- <dependency> -->
        <!-- <groupId>org.glassfish.jersey.media</groupId> -->
        <!-- <artifactId>jersey-media-json-jackson</artifactId> -->
        <!-- <version>2.25.1</version> -->
        <!-- </dependency> -->

        <!-- <dependency> -->
        <!-- <groupId>com.fasterxml.jackson.jaxrs</groupId> -->
        <!-- <artifactId>jackson-jaxrs-base</artifactId> -->
        <!-- </dependency> -->

        <dependency>
            <groupId>javax.xml</groupId>
            <artifactId>jaxp-api</artifactId>
            <version>1.4.2</version>
            <scope>compile</scope>
        </dependency>

        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.2.3</version>
            <scope>compile</scope>
        </dependency>

        <dependency>
            <groupId>org.onap.ccsdk.sli.core</groupId>
            <artifactId>sli-common</artifactId>
            <scope>provided</scope>
            <!-- Added exclusion to prevent missing dependency issue on dblib -->
            <exclusions>
                <exclusion>
                    <groupId>org.onap.ccsdk.sli.core</groupId>
                    <artifactId>dblib-provider</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.onap.ccsdk.sli.core</groupId>
            <artifactId>sli-provider</artifactId>
            <scope>provided</scope>
            <!-- Added exclusion to prevent missing dependency issue on dblib -->
            <exclusions>
                <exclusion>
                    <groupId>org.onap.ccsdk.sli.core</groupId>
                    <artifactId>dblib-provider</artifactId>
                </exclusion>
            </exclusions>
        </dependency>


        <!-- <dependency> -->
        <!-- <groupId>org.codehaus.jackson</groupId> -->
        <!-- <artifactId>jackson-jaxrs</artifactId> -->
        <!-- <version>1.9.13</version> -->
        <!-- </dependency> -->

        <!-- <dependency> -->
        <!-- <groupId>commons-codec</groupId> -->
        <!-- <artifactId>commons-codec</artifactId> -->
        <!-- </dependency> -->

        <!-- <dependency> -->
        <!-- <groupId>org.apache.httpcomponents</groupId> -->
        <!-- <artifactId>httpclient</artifactId> -->
        <!-- <version>4.5.3</version> -->
        <!-- </dependency> -->

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- <dependency> -->
        <!-- <groupId>equinoxSDK381</groupId> -->
        <!-- <artifactId>org.eclipse.osgi</artifactId> -->
        <!-- </dependency> -->

        <!-- <dependency> -->
        <!-- <groupId>org.slf4j</groupId> -->
        <!-- <artifactId>slf4j-api</artifactId> -->
        <!-- </dependency> -->

        <!-- <dependency> -->
        <!-- <groupId>org.slf4j</groupId> -->
        <!-- <artifactId>jcl-over-slf4j</artifactId> -->
        <!-- </dependency> -->

        <!-- <dependency> -->
        <!-- <groupId>xerces</groupId> -->
        <!-- <artifactId>xerces</artifactId> -->
        <!-- <version>2.4.0</version> -->
        <!-- <scope>provided</scope> -->
        <!-- </dependency> -->

        <!-- <dependency> -->
        <!-- <groupId>org.apache.httpcomponents</groupId> -->
        <!-- <artifactId>httpcore</artifactId> -->
        <!-- <version>${apache.httpcomponents.version}</version> -->
        <!-- </dependency> -->

        <!-- <dependency> -->
        <!-- <groupId>commons-logging</groupId> -->
        <!-- <artifactId>commons-logging</artifactId> -->
        <!-- <version>1.2</version> -->
        <!-- </dependency> -->

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <extensions>true</extensions>
                <configuration>
                    <instructions>
                        <Bundle-SymbolicName>appc-iaas-adapter</Bundle-SymbolicName>
                        <Bundle-Activator>org.onap.appc.adapter.iaas.AppcProviderAdapterActivator</Bundle-Activator>
                        <Export-Package>org.onap.appc.adapter.iaas,com.att.cdp.zones.model</Export-Package>
                        <Import-Package>javax.naming,javax.ws.rs.*,org.glassfish.jersey.*,org.onap.ccsdk.sli.core.sli.*,org.osgi.framework.*,org.slf4j.*,javax.net.ssl,org.xml.sax</Import-Package>
                        <!-- <Import-Package>org.onap.ccsdk.sli.core.sli.*,org.osgi.framework.*,org.slf4j.*,javax.ws.rs.*,javax.net.*,javax.xml.*,org.xml.*</Import-Package> -->
                        <!-- <Import-Package>org.onap.ccsdk.sli.core.sli.*,org.osgi.framework.*,org.slf4j.*,com.vmware.*,org.apache.xerces.*,javax.net.*,javax.net.ssl.*,org.xml.sax.*,javax.xml.bind.*,javax.naming.*,javax.xml.*</Import-Package> -->
                        <Embed-Dependency>!javax.ws.rs-api,!jersey-client,!jersey-server,!jersey-common,*;scope=compile|runtime;artifactId=!org.eclipse.osgi|slf4j-api|jcl-over-slf4j|</Embed-Dependency>
                        <!-- <Embed-Dependency>*;scope=compile|runtime;artifactId=!sli-common|org.eclipse.osgi|slf4j-api|jcl-over-slf4j|mariadb-java-client|xml-apis</Embed-Dependency> -->
                        <Embed-Transitive>true</Embed-Transitive>
                    </instructions>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>NonSlowTests</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <configuration>
                            <excludedGroups>org.onap.appc.adapter.iaas.impl.TestProviderAdapterImpl</excludedGroups>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
    <version>1.5.0-SNAPSHOT</version>
</project>
