<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You 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.

-->

<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.apache.jclouds.cli</groupId>
    <artifactId>jclouds-cli-project</artifactId>
    <relativePath>../project</relativePath>
    <version>2.1.0-SNAPSHOT</version>
  </parent>

  <artifactId>jclouds-cli-assembly</artifactId>
  <name>jclouds :: cli :: assembly</name>

  <dependencies>
    <dependency>
      <groupId>org.apache.jclouds.cli</groupId>
      <artifactId>jclouds-cli-branding</artifactId>
      <version>${project.parent.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.cli</groupId>
      <artifactId>jclouds-cli-runner</artifactId>
      <version>${project.parent.version}</version>
    </dependency>
    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <version>${guava.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.karaf</groupId>
      <artifactId>apache-karaf-minimal</artifactId>
      <type>tar.gz</type>
    </dependency>
    <dependency>
      <groupId>org.apache.karaf</groupId>
      <artifactId>apache-karaf-minimal</artifactId>
      <type>zip</type>
    </dependency>

    <!-- External Logging Dependencies -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
    </dependency>

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

    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
    </dependency>

  </dependencies>

  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>false</filtering>
      </resource>
      <resource>
        <directory>src/main/filtered-resources</directory>
        <includes>
          <include>**/*</include>
        </includes>
        <filtering>true</filtering>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>${maven-resources-plugin.version}</version>
        <configuration>
          <useDefaultDelimiters>false</useDefaultDelimiters>
          <delimiters>
            <delimiter>${*}</delimiter>
          </delimiters>
        </configuration>
        <executions>
          <execution>
            <id>filter</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>resources</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>3.0.0</version>
        <executions>
          <execution>
            <id>unpack-unix</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>unpack</goal>
            </goals>
            <configuration>
              <artifactItems>
                <artifactItem>
                  <groupId>org.apache.karaf</groupId>
                  <artifactId>apache-karaf-minimal</artifactId>
                  <version>${karaf.version}</version>
                  <type>tar.gz</type>
                  <outputDirectory>target/dependencies/unix</outputDirectory>
                </artifactItem>
              </artifactItems>
            </configuration>
          </execution>
          <execution>
            <id>unpack-win</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>unpack</goal>
            </goals>
            <configuration>
              <artifactItems>
                <artifactItem>
                  <groupId>org.apache.karaf</groupId>
                  <artifactId>apache-karaf-minimal</artifactId>
                  <version>${karaf.version}</version>
                  <type>zip</type>
                  <outputDirectory>target/dependencies/win</outputDirectory>
                </artifactItem>
              </artifactItems>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.karaf.tooling</groupId>
        <artifactId>karaf-maven-plugin</artifactId>
        <version>${karaf.version}</version>
        <executions>
          <execution>
            <id>features-add-to-repository</id>
            <phase>compile</phase>
            <goals>
              <goal>features-add-to-repository</goal>
            </goals>
            <configuration>
              <descriptors>
                <descriptor>
                  mvn:org.apache.karaf.features/standard/${karaf.version}/xml/features
                </descriptor>
                <descriptor>
                  mvn:org.apache.jclouds.karaf/jclouds-karaf/${jclouds.karaf.version}/xml/features
                </descriptor>
                <descriptor>
                  mvn:org.apache.jclouds.karaf/jclouds-karaf-labs/${jclouds.karaf.version}/xml/features
                </descriptor>
              </descriptors>
              <features>
                <feature>config</feature>
                <feature>log</feature>
                <feature>shell-compat</feature>
                <feature>wrap</feature>
                <feature>jclouds</feature>
                <feature>jclouds-commands</feature>
                <feature>jclouds-compute</feature>
                <feature>jclouds-guice</feature>
                <feature>jclouds-services</feature>
                <feature>jclouds-url-handler</feature>
                <feature>jclouds-api-atmos</feature>
                <feature>jclouds-api-byon</feature>
                <feature>jclouds-api-chef</feature>
                <feature>jclouds-api-cloudsigma2</feature>
                <feature>jclouds-api-cloudstack</feature>
                <feature>jclouds-api-elasticstack</feature>
                <feature>jclouds-api-ec2</feature>
                <feature>jclouds-api-filesystem</feature>
                <feature>jclouds-api-openstack-nova</feature>
                <feature>jclouds-api-openstack-cinder</feature>
                <feature>jclouds-api-openstack-swift</feature>
                <feature>jclouds-api-rackspace-cloudidentity</feature>
                <feature>jclouds-api-s3</feature>
                <feature>jclouds-aws-cloudwatch</feature>
                <feature>jclouds-aws-ec2</feature>
                <feature>jclouds-aws-s3</feature>
                <feature>jclouds-azureblob</feature>
                <feature>jclouds-azurecompute-arm</feature>
                <feature>jclouds-b2</feature>
                <feature>jclouds-chef</feature>
                <feature>jclouds-cloudsigma2-hnl</feature>
                <feature>jclouds-cloudsigma2-lvs</feature>
                <feature>jclouds-cloudsigma2-sjc</feature>
                <feature>jclouds-cloudsigma2-wdc</feature>
                <feature>jclouds-cloudsigma2-zrh</feature>
                <feature>jclouds-digitalocean2</feature>
                <feature>jclouds-elastichosts-lon-b</feature>
                <feature>jclouds-elastichosts-lon-p</feature>
                <feature>jclouds-elastichosts-sat-p</feature>
                <feature>jclouds-elastichosts-lax-p</feature>
                <feature>jclouds-elastichosts-tor-p</feature>
                <feature>jclouds-gogrid</feature>
                <feature>jclouds-go2cloud-jhb1</feature>
                <feature>jclouds-google-compute-engine</feature>
                <feature>jclouds-google-cloud-storage</feature>
                <feature>jclouds-openhosting-east1</feature>
                <feature>jclouds-packet</feature>
                <feature>jclouds-profitbricks</feature>
                <feature>jclouds-rackspace-cloudloadbalancers-uk</feature>
                <feature>jclouds-rackspace-cloudloadbalancers-us</feature>
                <feature>jclouds-rackspace-cloudservers-uk</feature>
                <feature>jclouds-rackspace-cloudservers-us</feature>
                <feature>jclouds-rackspace-cloudfiles-uk</feature>
                <feature>jclouds-rackspace-cloudfiles-us</feature>
                <feature>jclouds-serverlove-z1-man</feature>
                <feature>jclouds-skalicloud-sdg-my</feature>
                <feature>jclouds-softlayer</feature>
                <feature>jclouds-vagrant</feature>
              </features>
              <includeMvnBasedDescriptors>true</includeMvnBasedDescriptors>
              <repository>target/features-repo</repository>
            </configuration>
            <inherited>false</inherited>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>${maven-antrun-plugin.version}</version>
        <executions>
          <execution>
            <phase>prepare-package</phase>
            <configuration>
              <tasks>
                <replace token="#!/bin/bash" value="#!/bin/sh"
                         dir="target/dependencies/unix/apache-karaf-minimal-${karaf.version}/bin">
                  <include name="*"/>
                </replace>
                <replaceregexp file="target/dependencies/unix/apache-karaf-minimal-${karaf.version}/etc/config.properties"
                               match="karaf.framework.equinox=*"
                               replace="#"
                               byline="true"/>
                <replaceregexp file="target/dependencies/win/apache-karaf-minimal-${karaf.version}/etc/config.properties"
                               match="karaf.framework.equinox=*"
                               replace="#"
                               byline="true"/>
              </tasks>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>${maven-assembly-plugin.version}</version>
        <executions>
          <execution>
            <id>unix-bin</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
            <configuration>
              <descriptors>
                <descriptor>src/main/assembly/unix.xml</descriptor>
              </descriptors>
              <finalName>jclouds-cli-${project.version}</finalName>
              <tarLongFileMode>gnu</tarLongFileMode>
              <appendAssemblyId>false</appendAssemblyId>
            </configuration>
          </execution>
          <execution>
            <id>windows-bin</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
            <configuration>
              <descriptors>
                <descriptor>src/main/assembly/win.xml</descriptor>
              </descriptors>
              <finalName>jclouds-cli-${project.version}</finalName>
              <appendAssemblyId>false</appendAssemblyId>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
