<?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.0.0-SNAPSHOT</version>
  </parent>

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

  <dependencies>
    <dependency>
      <groupId>org.apache.jclouds.cli</groupId>
      <artifactId>branding</artifactId>
      <version>${project.parent.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jclouds.cli</groupId>
      <artifactId>runner</artifactId>
      <version>${project.parent.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.karaf</groupId>
      <artifactId>apache-karaf</artifactId>
      <type>tar.gz</type>
    </dependency>
    <dependency>
      <groupId>org.apache.karaf</groupId>
      <artifactId>apache-karaf</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>
        <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</artifactId>
                  <version>${karaf.version}</version>
                  <classifier>minimal</classifier>
                  <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</artifactId>
                  <version>${karaf.version}</version>
                  <classifier>minimal</classifier>
                  <type>zip</type>
                  <outputDirectory>target/dependencies/win</outputDirectory>
                </artifactItem>
              </artifactItems>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.karaf.tooling</groupId>
        <artifactId>features-maven-plugin</artifactId>
        <version>${karaf.version}</version>
        <executions>
          <execution>
            <id>add-features-to-repo</id>
            <phase>compile</phase>
            <goals>
              <goal>add-features-to-repo</goal>
            </goals>
            <configuration>
              <descriptors>
                <descriptor>
                  mvn:org.apache.karaf.assemblies.features/standard/${karaf.version}/xml/features
                </descriptor>
                <descriptor>
                  mvn:org.apache.jclouds.karaf/jclouds-karaf/${jclouds.karaf.version}/xml/features
                </descriptor>
              </descriptors>
              <features>
                <feature>config</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-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-rackspace-cloudidentity</feature>
                <feature>jclouds-api-s3</feature>
                <feature>jclouds-api-swift</feature>
                <feature>jclouds-aws-cloudwatch</feature>
                <feature>jclouds-aws-ec2</feature>
                <feature>jclouds-aws-s3</feature>
                <feature>jclouds-azureblob</feature>
                <feature>jclouds-chef</feature>
                <feature>jclouds-cloudfiles-uk</feature>
                <feature>jclouds-cloudfiles-us</feature>
                <feature>jclouds-cloudserver-uk</feature>
                <feature>jclouds-cloudserver-us</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-digitalocean</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-hpcloud-objectstorage</feature>
                <feature>jclouds-hpcloud-compute</feature>
                <feature>jclouds-openhosting-east1</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-serverlove-z1-man</feature>
                <feature>jclouds-skalicloud-sdg-my</feature>
                <feature>jclouds-softlayer</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-${karaf.version}/bin">
                  <include name="*"/>
                </replace>
                <replaceregexp file="target/dependencies/unix/apache-karaf-${karaf.version}/etc/config.properties"
                               match="karaf.framework.equinox=*"
                               replace="#"
                               byline="true"/>
                <replaceregexp file="target/dependencies/win/apache-karaf-${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>
