<!--
  ============LICENSE_START=======================================================
  ECOMP Policy Engine - Drools PDP
  ================================================================================
  Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  ================================================================================
  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.openecomp.policy.drools-pdp</groupId>
    <artifactId>drools-pdp</artifactId>
    <version>1.0.0-SNAPSHOT</version>
  </parent>
  
  <artifactId>policy-healthcheck</artifactId>
  
  <name>policy-healthcheck</name>
  <description>Separately loadable module with healthcheck code</description>

  <properties>
          <maven.compiler.source>1.8</maven.compiler.source>
          <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <build>
    <plugins>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.6</version>
        <executions>
          <execution>
            <id>zipfile</id>
            <goals>
              <goal>single</goal>
            </goals>
            <phase>package</phase>
            <configuration>
              <attach>true</attach>
              <finalName>${project.artifactId}-${project.version}</finalName>
              <descriptors>
                <descriptor>src/assembly/assemble_zip.xml</descriptor>
              </descriptors>
              <appendAssemblyId>false</appendAssemblyId>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>2.8</version>
        <executions>
          <execution>
            <id>copy-dependencies</id>
            <goals>
              <goal>copy-dependencies</goal>
            </goals>
            <phase>prepare-package</phase>
            <configuration>
              <transitive>false</transitive>
              <outputDirectory>${project.build.directory}/assembly/lib</outputDirectory>
              <overWriteReleases>false</overWriteReleases>
              <overWriteSnapshots>true</overWriteSnapshots>
              <overWriteIfNewer>true</overWriteIfNewer>
              <useRepositoryLayout>false</useRepositoryLayout>
              <addParentPoms>false</addParentPoms>
              <copyPom>false</copyPom>
              <excludeGroupIds>org.opendaylight,com.brocade.odl</excludeGroupIds>
              <scope>provided</scope>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.6</version>
        <executions>
          <execution>
            <id>copy-version</id>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <phase>validate</phase>
            <configuration>
              <outputDirectory>${basedir}/target/versions</outputDirectory>
              <resources>
                <resource>
                  <directory>src/main/resources/versions</directory>
                  <includes>
                    <include>version.properties</include>
                  </includes>
                  <filtering>true</filtering>
                </resource>
              </resources>
            </configuration>
          </execution>
          <execution>
            <id>copy-resources</id>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <phase>validate</phase>
            <configuration>
              <outputDirectory>${basedir}/target/etc/bvc-extensions</outputDirectory>
              <resources>
                <resource>
                  <directory>src/main/resources/etc/bvc-extensions</directory>
                  <includes>
                    <include>feature_config_template.cfg</include>
                    <include>feature_custom.install</include>
                  </includes>
                  <filtering>true</filtering>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>org.openecomp.policy.drools-pdp</groupId>
      <artifactId>policy-core</artifactId>
      <version>1.0.0-SNAPSHOT</version>
    </dependency>
    <dependency>
      <groupId>org.openecomp.policy.drools-pdp</groupId>
      <artifactId>policy-endpoints</artifactId>
      <version>1.0.0-SNAPSHOT</version>
    </dependency>
    <dependency>
      <groupId>org.openecomp.policy.drools-pdp</groupId>
      <artifactId>policy-management</artifactId>
      <version>1.0.0-SNAPSHOT</version>
    </dependency>
  </dependencies>

</project>
