<?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</groupId>
    <artifactId>apache</artifactId>
    <version>14</version>
  </parent>

  <groupId>org.apache.jclouds</groupId>
  <artifactId>jclouds-karaf</artifactId>
  <packaging>pom</packaging>
  <version>1.8.2-SNAPSHOT</version>
  <name>Apache jclouds :: Karaf</name>
  <url>http://jclouds.apache.org</url>
  <description>jclouds Karaf Integration Project</description>
  <inceptionYear>2009</inceptionYear>

  <licenses>
    <license>
      <name>The Apache Software License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <scm>
    <connection>scm:git:https://git-wip-us.apache.org/repos/asf/jclouds-karaf.git</connection>
    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/jclouds-karaf.git</developerConnection>
    <url>https://git-wip-us.apache.org/repos/asf?p=jclouds-karaf.git</url>
    <tag>HEAD</tag>
  </scm>

  <developers>
    <developer>
      <id>iocanel</id>
      <name>Ioannis Canellos</name>
      <email>iocanel@gmail.com</email>
      <url>http://iocanel.blogspot.com</url>
    </developer>
  </developers>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <version>0.10</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <excludes>

            <!-- prevent duplicating license -->
            <exclude>**/LICENSE.txt</exclude>
            <exclude>**/header.txt</exclude>

            <!-- high-level project metadata -->
            <exclude>**/NOTICE.txt</exclude>
            <exclude>**/DISCLAIMER</exclude>
            <exclude>**/BUILD.txt</exclude>
            <exclude>**/CHANGES.txt</exclude>
            <exclude>**/README.md</exclude>
            <exclude>**/README.txt</exclude>
            <exclude>**/DEPENDENCIES</exclude>
            <exclude>**/CONTRIBUTING.md</exclude>

            <exclude>.git/**</exclude>
            <exclude>**/.gitignore</exclude>
            <exclude>**/*.json</exclude>
            <exclude>**/*.log*</exclude>
            <exclude>**/TODO</exclude>
            <exclude>.mailmap</exclude>
            <exclude>.idea/**</exclude>
            <exclude>**/*.iml</exclude>
            <exclude>**/.project</exclude>
            <exclude>**/.classpath</exclude>
            <exclude>**/.settings/**</exclude>
            <exclude>**/.checkstyle</exclude>
            <exclude>**/target/**</exclude>
            <exclude>.repository/**</exclude>

            <!-- Excluded because these text files are spat out directly as help -->
            <exclude>**/src/main/resources/**/*.txt</exclude>
            <!-- binary -->
          </excludes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>${maven-bundle-plugin.version}</version>
        <extensions>true</extensions>
        <inherited>true</inherited>
        <configuration>
          <instructions>
            <Bundle-Name>${project.name}</Bundle-Name>
            <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
            <Export-Package>${osgi.export}</Export-Package>
            <Import-Package>${osgi.import}</Import-Package>
            <DynamicImport-Package>${osgi.dynamic.import}</DynamicImport-Package>
            <Private-Package>${osgi.private}</Private-Package>
            <Require-Bundle>${osgi.bundles}</Require-Bundle>
            <Bundle-Activator>${osgi.activator}</Bundle-Activator>
            <Export-Service>${osgi.export.service}</Export-Service>
          </instructions>
          <supportedProjectTypes>
            <supportedProjectType>jar</supportedProjectType>
            <supportedProjectType>war</supportedProjectType>
            <supportedProjectType>bundle</supportedProjectType>
          </supportedProjectTypes>
          <unpackBundle>true</unpackBundle>
        </configuration>
        <executions>
          <execution>
            <id>bundle-manifest</id>
            <phase>process-classes</phase>
            <goals>
              <goal>manifest</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>${maven-compiler-plugin.version}</version>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-release-plugin</artifactId>
        <version>${maven-release-plugin.version}</version>
        <configuration>
          <useReleaseProfile>false</useReleaseProfile>
          <preparationGoals>clean install</preparationGoals>
          <goals>deploy</goals>
          <arguments>-Pdoc -Papache-release ${arguments}</arguments>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <modules>
    <module>core</module>
    <module>utils</module>
    <module>cache</module>
    <module>commands</module>
    <module>services</module>
    <module>urlhandler</module>
    <module>chef</module>
    <module>feature</module>
    <module>itests</module>
    <module>recipe</module>
  </modules>

  <properties>
    <aopalliance.bundle.version>1.0_5</aopalliance.bundle.version>
    <bcprov.version>1.49</bcprov.version>
    <configadmin.version>1.2.8</configadmin.version>
    <easymock.version>3.0</easymock.version>
    <felix.configadmin.version>1.2.8</felix.configadmin.version>
    <groovy.version>1.8.6</groovy.version>
    <gson.version>2.2.4</gson.version>
    <guava.version>16.0.1</guava.version>
    <guava.test.version>10.0</guava.test.version>
    <guice.version>3.0</guice.version>
    <httpclient.version>4.1.1</httpclient.version>
    <httpcore.version>4.1</httpcore.version>
    <java-xmlbuilder.bundle.version>0.3_1</java-xmlbuilder.bundle.version>
    <javax.inject.bundle.version>1_1</javax.inject.bundle.version>
    <jclouds.version>1.8.2-SNAPSHOT</jclouds.version>
    <jclouds.chef.version>${jclouds.version}</jclouds.chef.version>
    <jersey.version>1.11</jersey.version>
    <jersey.bundle.version>1.11_1</jersey.bundle.version>
    <joda.version>2.1</joda.version>
    <jsch.bundle.version>0.1.44_2</jsch.bundle.version>
    <jsch.agentproxy.version>0.0.8</jsch.agentproxy.version>
    <jsch.agentproxy.bundle.version>${jsch.agentproxy.version}_1</jsch.agentproxy.bundle.version>
    <jsr305.bundle.version>1.3.9_1</jsr305.bundle.version>
    <sericemix.specs.jsr250.version>1.9.0</sericemix.specs.jsr250.version>
    <junit.version>4.8.2</junit.version>
    <jzlib.bundle.version>1.0.7_1</jzlib.bundle.version>
    <jzlib.version>1.0.7</jzlib.version>
    <karaf.version>2.3.2</karaf.version>
    <net.oauth.bundle.version>20100527_1</net.oauth.bundle.version>
    <netty.bundle.version>3.3.1.Final</netty.bundle.version>
    <osgi.version>4.3.0</osgi.version>
    <pax-exam.version>2.6.0</pax-exam.version>
    <pax-url-mvn.version>1.3.5</pax-url-mvn.version>
    <pax-url-aether.version>1.4.0.RC1</pax-url-aether.version>
    <rocoto.version>6.2</rocoto.version>
    <scripting.api.bundle.version>2.0.0</scripting.api.bundle.version>
    <slf4j.version>1.5.8</slf4j.version>
    <snakeyaml.version>1.11</snakeyaml.version>
    <sshj.version>0.8.1</sshj.version>

    <!-- Plugin Versions -->
    <depends-maven-plugin.version>1.2</depends-maven-plugin.version>
    <maven-bundle-plugin.version>2.1.0</maven-bundle-plugin.version>
    <maven-compiler-plugin.version>2.0.2</maven-compiler-plugin.version>
    <maven-dependency-plugin.version>2.3</maven-dependency-plugin.version>
    <maven-war-plugin.version>2.1.1</maven-war-plugin.version>
    <maven-release-plugin.version>2.4</maven-release-plugin.version>
    <maven-remote-resources-plugin.version>1.2.1</maven-remote-resources-plugin.version>
    <maven-resources-plugin.version>2.4.3</maven-resources-plugin.version>
    <maven-surefire-plugin.version>2.10</maven-surefire-plugin.version>
    <build-helper-maven-plugin.version>1.5</build-helper-maven-plugin.version>

    <sourceReleaseAssemblyDescriptor>source-release-zip-tar</sourceReleaseAssemblyDescriptor>
  </properties>

  <dependencyManagement>
    <dependencies>
      <!-- Internal dependencies -->
      <dependency>
        <groupId>org.apache.jclouds.karaf</groupId>
        <artifactId>core</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.jclouds.karaf</groupId>
        <artifactId>utils</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.jclouds.karaf</groupId>
        <artifactId>recipe</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.jclouds.karaf</groupId>
        <artifactId>cache</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.jclouds.karaf</groupId>
        <artifactId>services</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.jclouds.karaf</groupId>
        <artifactId>commands</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.jclouds.karaf.chef</groupId>
        <artifactId>core</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.jclouds.karaf.chef</groupId>
        <artifactId>services</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.jclouds.karaf.chef</groupId>
        <artifactId>commands</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.jclouds.karaf</groupId>
        <artifactId>jclouds-karaf</artifactId>
        <version>${project.version}</version>
        <type>xml</type>
        <classifier>features</classifier>
      </dependency>


      <!-- OSGi dependencies -->
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.core</artifactId>
        <version>${osgi.version}</version>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.compendium</artifactId>
        <version>${osgi.version}</version>
      </dependency>

      <!-- Configuration Admin -->
      <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.apache.felix.configadmin</artifactId>
        <version>${configadmin.version}</version>
      </dependency>

      <!-- Pax Url -->
      <dependency>
        <groupId>org.ops4j.pax.url</groupId>
        <artifactId>pax-url-mvn</artifactId>
        <version>${pax-url-mvn.version}</version>
      </dependency>

      <dependency>
        <groupId>org.ops4j.pax.url</groupId>
        <artifactId>pax-url-aether</artifactId>
        <version>${pax-url-aether.version}</version>
      </dependency>

      <dependency>
        <groupId>org.ops4j.pax.exam</groupId>
        <artifactId>pax-exam-junit4</artifactId>
        <version>${pax-exam.version}</version>
        <scope>test</scope>
      </dependency>

      <!-- Guice Dependencies -->
      <dependency>
        <groupId>org.apache.servicemix.bundles</groupId>
        <artifactId>org.apache.servicemix.bundles.aopalliance</artifactId>
        <version>${aopalliance.bundle.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.servicemix.bundles</groupId>
        <artifactId>org.apache.servicemix.bundles.netty</artifactId>
        <version>${netty.bundle.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.servicemix.bundles</groupId>
        <artifactId>org.apache.servicemix.bundles.jsch</artifactId>
        <version>${jsch.bundle.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.servicemix.bundles</groupId>
        <artifactId>org.apache.servicemix.bundles.javax.inject</artifactId>
        <version>${javax.inject.bundle.version}</version>
      </dependency>

      <dependency>
        <groupId>org.bouncycastle</groupId>
        <artifactId>bcprov-jdk15on</artifactId>
        <version>${bcprov.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.servicemix.bundles</groupId>
        <artifactId>org.apache.servicemix.bundles.oauth-commons</artifactId>
        <version>${net.oauth.bundle.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.servicemix.bundles</groupId>
        <artifactId>org.apache.servicemix.bundles.java-xmlbuilder</artifactId>
        <version>${java-xmlbuilder.bundle.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.servicemix.bundles</groupId>
        <artifactId>org.apache.servicemix.bundles.jzlib</artifactId>
        <version>${jzlib.bundle.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.servicemix.specs</groupId>
        <artifactId>org.apache.servicemix.specs.scripting-api-1.0</artifactId>
        <version>${scripting.api.bundle.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.servicemix.specs</groupId>
        <artifactId>org.apache.servicemix.specs.jsr250-1.0</artifactId>
        <version>${sericemix.specs.jsr250.version}</version>
      </dependency>

      <dependency>
        <groupId>com.google.inject</groupId>
        <artifactId>guice</artifactId>
        <version>${guice.version}</version>
      </dependency>

      <dependency>
        <groupId>com.google.inject.extensions</groupId>
        <artifactId>guice-assistedinject</artifactId>
        <version>${guice.version}</version>
      </dependency>

      <!-- Gson -->
      <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>${gson.version}</version>
      </dependency>

      <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-core</artifactId>
        <version>${jersey.version}</version>
      </dependency>
      <dependency>
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
        <version>${joda.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore-osgi</artifactId>
        <version>${httpcore.version}</version>
        <scope>compile</scope>
      </dependency>

      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient-osgi</artifactId>
        <version>${httpclient.version}</version>
      </dependency>

      <!-- Groovy -->
      <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-all</artifactId>
        <version>${groovy.version}</version>
      </dependency>

      <!-- Guava -->
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>${guava.version}</version>
      </dependency>

      <!-- SSHJ -->
      <dependency>
        <groupId>net.schmizz</groupId>
        <artifactId>sshj</artifactId>
        <version>${sshj.version}</version>
      </dependency>
      <dependency>
        <groupId>com.jcraft</groupId>
        <artifactId>jzlib</artifactId>
        <version>${jzlib.version}</version>
      </dependency>

      <!-- JSch agentproxy -->
      <dependency>
        <groupId>org.apache.servicemix.bundles</groupId>
        <artifactId>org.apache.servicemix.bundles.jsch-agentproxy-sshj</artifactId>
        <version>${jsch.agentproxy.bundle.version}</version>
      </dependency>
      <dependency>
        <groupId>com.jcraft</groupId>
        <artifactId>jsch.agentproxy.connector-factory</artifactId>
        <version>${jsch.agentproxy.version}</version>
      </dependency>

      <!-- Logging Dependencies -->
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>${slf4j.version}</version>
      </dependency>

      <!-- Testing Dependencies -->
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
      </dependency>

      <dependency>
        <groupId>org.easymock</groupId>
        <artifactId>easymock</artifactId>
        <version>${easymock.version}</version>
      </dependency>

      <!-- jclouds Dependencies -->
      <dependency>
        <groupId>org.apache.jclouds</groupId>
        <artifactId>jclouds-core</artifactId>
        <version>${jclouds.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.jclouds</groupId>
        <artifactId>jclouds-blobstore</artifactId>
        <version>${jclouds.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.jclouds</groupId>
        <artifactId>jclouds-compute</artifactId>
        <version>${jclouds.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.jclouds</groupId>
        <artifactId>jclouds-scriptbuilder</artifactId>
        <version>${jclouds.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.jclouds.api</groupId>
        <artifactId>ec2</artifactId>
        <version>${jclouds.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.jclouds.driver</groupId>
        <artifactId>jclouds-log4j</artifactId>
        <version>${jclouds.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.jclouds.driver</groupId>
        <artifactId>jclouds-slf4j</artifactId>
        <version>${jclouds.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.jclouds.driver</groupId>
        <artifactId>jclouds-jsch</artifactId>
        <version>${jclouds.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.jclouds.driver</groupId>
        <artifactId>jclouds-sshj</artifactId>
        <version>${jclouds.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.jclouds.api</groupId>
        <artifactId>chef</artifactId>
        <version>${jclouds.chef.version}</version>
      </dependency>

      <!-- Karaf Dependencies -->
      <dependency>
        <groupId>org.apache.karaf.shell</groupId>
        <artifactId>org.apache.karaf.shell.console</artifactId>
        <version>${karaf.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.karaf.tooling.exam</groupId>
        <artifactId>org.apache.karaf.tooling.exam.options</artifactId>
        <version>${karaf.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.karaf.tooling.exam</groupId>
        <artifactId>org.apache.karaf.tooling.exam.container</artifactId>
        <version>${karaf.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.karaf</groupId>
        <artifactId>apache-karaf</artifactId>
        <version>${karaf.version}</version>
        <type>tar.gz</type>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <repositories>
    <repository>
      <id>apache-snapshots</id>
      <url>https://repository.apache.org/content/repositories/snapshots</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
    <repository>
      <id>sonatype</id>
      <url>https://oss.sonatype.org/content/repositories/releases/</url>
    </repository>
    <repository>
      <id>maven2-repository.dev.java.net</id>
      <name>Java.net Repository for Maven</name>
      <url>http://download.java.net/maven/2/</url>
      <layout>default</layout>
    </repository>
  </repositories>

</project>
