<?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.5.0-SNAPSHOT</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.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,*;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>
