<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.openecomp.appc</groupId>
    <artifactId>appc</artifactId>
		<version>1.1.0-SNAPSHOT</version>
  </parent>
  <artifactId>appc-common</artifactId>
  <name>APP-C Common</name>
  <packaging>bundle</packaging>
  <description>Common library shared across all modules</description>

<!-- <packaging>bundle</packaging> -->

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-core</artifactId>
      <scope>compile</scope>
    </dependency>

    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <scope>compile</scope>
    </dependency>

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

    <!-- Needed for EELF (Event and Error Logging Framework) support -->
    <dependency>
      <groupId>com.att.eelf</groupId>
      <artifactId>eelf-core</artifactId>
      </dependency>

    <!-- Needed for encryption -->
    <dependency>
      <groupId>org.jasypt</groupId>
      <artifactId>jasypt</artifactId>
      <version>1.9.2</version>
<!--       <classifier>lite</classifier> -->
      <scope>compile</scope>
    </dependency>

    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
    </dependency>

	<dependency>
		<groupId>javax</groupId>
		<artifactId>javaee-api</artifactId>
		<version>7.0</version>
	</dependency>
    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
      <version>4.5.1</version>
    </dependency>
    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpcore</artifactId>
      <version>${apache.httpcomponents.version}</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</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>org.onap.ccsdk.sli.core</groupId>
      <artifactId>dblib-provider</artifactId>
      </dependency>
  <dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-core</artifactId>
    <scope>test</scope>
  </dependency>

  </dependencies>

  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.java</include>
        </includes>
      </resource>
    </resources>

    <plugins>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <extensions>true</extensions>
        <configuration>
          <instructions>
            <Bundle-SymbolicName>appc-common</Bundle-SymbolicName>
            <Export-Package>
              org.openecomp.appc.*, com.att.eelf.*, ch.qos.logback.*, org.jasypt.*
            </Export-Package>
            <Import-Package>*;resolution:=optional</Import-Package>
            <Embed-Dependency>eelf-core, logback-core, logback-classic, jasypt</Embed-Dependency>
            <Embed-Transitive>true</Embed-Transitive>
          </instructions>
        </configuration>
      </plugin>

      <plugin>
        <groupId>com.att.eelf</groupId>
        <artifactId>eelf-maven-plugin</artifactId>
        <version>1.0.0</version>
        <executions>
          <execution>
            <id>validation</id>
            <phase>install</phase>
            <goals>
              <goal>ValidateApplicationMsgs</goal>
            </goals>
            <configuration>
              <resources>
                <resource>
                  <messageClass>org.openecomp.appc.i18n.Msg</messageClass>
                </resource>
              </resources>
            </configuration>
          </execution>
          <execution>
            <id>generate</id>
            <phase>install</phase>
            <goals>
              <goal>WikiMsgGenerator</goal>
            </goals>
            <configuration>
              <outputDirectory>target/messages</outputDirectory>
              <outputFile>messages.html</outputFile>
              <resources>
                <resource>
                  <messageClass>org.openecomp.appc.i18n.Msg</messageClass>
                  <header><![CDATA[<p> <ac:macro ac:name="toc" /> </p>]]></header>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>org.openecomp.appc</groupId>
            <artifactId>appc-common</artifactId>
            <version>${project.version}</version>
          </dependency>
        </dependencies>
      </plugin>

      <!-- For embedding dependencies -->

      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <configuration>
              <descriptorRefs>
                  <descriptorRef>jar-with-dependencies</descriptorRef>
              </descriptorRefs>
          </configuration>
          <executions>
            <execution>
              <id>make-assembly</id>
              <phase>package</phase>
              <goals>
                  <goal>single</goal>
              </goals>
            </execution>
          </executions>
      </plugin>

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <executions>
          <execution>
            <phase>install</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <finalName>${project.artifactId}-${project.version}-jar-with-dependencies</finalName>
              <artifactSet>
                <excludes>
                  <exclude>junit:junit</exclude>
                  <exclude>ch.qos.logback:*</exclude>
                  <exclude>org.slf4j:slf4j-api</exclude>
                </excludes>
              </artifactSet>
            </configuration>
          </execution>
        </executions>
      </plugin>

    </plugins>
  </build>
</project>
