<?xml version="1.0" encoding="UTF-8"?>
<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</groupId>
        <artifactId>appc-iaas-adapter</artifactId>
        <version>1.3.0-SNAPSHOT</version>
    </parent>

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

    <dependencies>
        <dependency>
            <groupId>org.onap.appc</groupId>
            <artifactId>appc-common</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-openstack</artifactId>
            <scope>compile</scope>
        </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.12</version> -->
        <!-- </dependency> -->

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

        <!-- <dependency> -->
        <!-- <groupId>org.apache.httpcomponents</groupId> -->
        <!-- <artifactId>httpclient</artifactId> -->
        <!-- <version>4.5.1</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>
                        <DynamicImport-Package>javax.*</DynamicImport-Package>
                        <Import-Package>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>*;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>
</project>
