<?xml version="1.0" encoding="UTF-8"?>
<!--
  ============LICENSE_START=======================================================
  ONAP : APPC
  ================================================================================
  Copyright (C) 2017 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=========================================================
  ECOMP is a trademark and service mark of AT&T Intellectual Property.
  -->
<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>
    <artifactId>appc-rest-adapter</artifactId>
    <groupId>org.onap.appc</groupId>
    <version>1.3.0-SNAPSHOT</version>
  </parent>
  <artifactId>appc-rest-adapter-installer</artifactId>
  <name>rest Adapter - Karaf Installer</name>
  <packaging>pom</packaging>

  <properties>
    <application.name>appc-rest-adapter</application.name>
    <features.boot>appc-rest-adapter</features.boot>
    <features.repositories>mvn:org.onap.appc/appc-rest-adapter-features/${project.version}/xml/features</features.repositories>
    <include.transitive.dependencies>false</include.transitive.dependencies>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.onap.appc</groupId>
      <artifactId>appc-rest-adapter-features</artifactId>
      <classifier>features</classifier>
      <type>xml</type>
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>org.onap.appc</groupId>
      <artifactId>appc-rest-adapter-bundle</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <executions>
          <execution>
            <id>maven-repo-zip</id>
            <goals>
              <goal>single</goal>
            </goals>
            <phase>package</phase>
            <configuration>
              <appendAssemblyId>false</appendAssemblyId>
              <attach>false</attach>
              <finalName>stage/${application.name}-${project.version}</finalName>
              <descriptors>
                <descriptor>src/assembly/assemble_mvnrepo_zip.xml</descriptor>
              </descriptors>
            </configuration>
          </execution>
          <execution>
            <id>installer-zip</id>
            <goals>
              <goal>single</goal>
            </goals>
            <phase>package</phase>
            <configuration>
              <appendAssemblyId>false</appendAssemblyId>
              <attach>true</attach>
              <finalName>${application.name}-${project.version}</finalName>
              <descriptors>
                <descriptor>src/assembly/assemble_installer_zip.xml</descriptor>
              </descriptors>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <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/system</outputDirectory>
              <overWriteReleases>false</overWriteReleases>
              <overWriteSnapshots>true</overWriteSnapshots>
              <overWriteIfNewer>true</overWriteIfNewer>
              <useRepositoryLayout>true</useRepositoryLayout>
              <addParentPoms>false</addParentPoms>
              <copyPom>false</copyPom>
              <excludeGroupIds>org.opendaylight</excludeGroupIds>
              <scope>provided</scope>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-version</id>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <!-- here the phase you need -->
            <phase>validate</phase>
            <configuration>
              <outputDirectory>${basedir}/target/stage</outputDirectory>
              <resources>
                <resource>
                  <directory>src/main/resources/scripts</directory>
                  <includes>
                    <include>install-feature.sh</include>
                  </includes>
                  <filtering>true</filtering>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>

    </plugins>
  </build>

</project>
