<?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-config-generator</artifactId>
        <version>1.3.0-SNAPSHOT</version>
    </parent>
    <artifactId>appc-config-generator-provider</artifactId>
    <packaging>bundle</packaging>
    <name>Config Generator - Provider</name>
    <url>http://maven.apache.org</url>


    <dependencies>
        <dependency>
            <groupId>equinoxSDK381</groupId>
            <artifactId>org.eclipse.osgi</artifactId>
            <version>${equinox.osgi.version}</version>
        </dependency>
        <dependency>
            <groupId>org.onap.ccsdk.sli.core</groupId>
            <artifactId>sli-provider</artifactId>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
        </dependency>
        <!-- >dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-properties</artifactId>
        </dependency-->

        <dependency>
            <groupId>org.codehaus.jettison</groupId>
            <artifactId>jettison</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity</artifactId>
        </dependency>

        <dependency>
            <groupId>com.att.eelf</groupId>
            <artifactId>eelf-core</artifactId>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
	<dependency>
		<groupId>org.powermock</groupId>
		<artifactId>powermock-api-mockito</artifactId>
		<version>1.6.4</version>
		<scope>test</scope>
    	</dependency>
	    <dependency>
	    <groupId>org.mockito</groupId>
	    <artifactId>mockito-core</artifactId>
	    <scope>test</scope>
    	</dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <version>${bundle.plugin.version}</version>
                <extensions>true</extensions>
                <configuration>
                    <instructions>
                        <Bundle-SymbolicName>org.openecomp.sdnc.config.generator</Bundle-SymbolicName>
                        <Bundle-Activator>org.openecomp.sdnc.config.generator.ConfigGeneratorActivator</Bundle-Activator>
                        <Export-Package>org.openecomp.sdnc.config.generator,org.openecomp.sdnc.config.generator.compare,org.openecomp.sdnc.config.generator.convert,
                            org.openecomp.sdnc.config.generator.merge,org.openecomp.sdnc.config.generator.pattern,org.openecomp.sdnc.config.generator.tool,
                            org.openecomp.sdnc.config.generator.transform</Export-Package>
                        <Import-Package>*</Import-Package>
                        <DynamicImport-Package>*</DynamicImport-Package>
                    </instructions>
                    <manifestLocation>${project.basedir}/src/main/resources/META-INF</manifestLocation>
                </configuration>
            </plugin>

        </plugins>
        <pluginManagement>
            <plugins>
                <!--This plugin's configuration is used to store Eclipse m2e settings 
                    only. It has no influence on the Maven build itself. -->
                <plugin>
                    <groupId>org.eclipse.m2e</groupId>
                    <artifactId>lifecycle-mapping</artifactId>
                    <version>1.0.0</version>
                    <configuration>
                        <lifecycleMappingMetadata>
                            <pluginExecutions>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>
                                            com.brocade.developer
                                        </groupId>
                                        <artifactId>
                                            providermodule-plugin
                                        </artifactId>
                                        <versionRange>
                                            [1.2.0.100-SNAPSHOT,)
                                        </versionRange>
                                        <goals>
                                            <goal>process</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore />
                                    </action>
                                </pluginExecution>
                            </pluginExecutions>
                        </lifecycleMappingMetadata>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>
