<?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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>13</version>
  </parent>
  <groupId>org.apache.jclouds</groupId>
  <artifactId>jclouds-project</artifactId>
  <version>1.6.1-incubating</version>
  <packaging>pom</packaging>
  <name>Apache jclouds (incubating)  Project</name>
  <url>http://jclouds.incubator.apache.org/</url>
  <description>Apache jclouds (incubating): Concurrent API for Cloud Services</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>


  <issueManagement>
    <system>JIRA</system>
    <url>https://issues.apache.org/jira/browse/JCLOUDS</url>
  </issueManagement>


  <mailingLists>
    <mailingList>
      <name>User List</name>
      <subscribe>user-subscribe@jclouds.apache.org</subscribe>
      <unsubscribe>user-unsubscribe@jclouds.apache.org</unsubscribe>
      <post>user@jclouds.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/jclouds-user/</archive>
    </mailingList>
    <mailingList>
      <name>Developer List</name>
      <subscribe>dev-subscribe@jclouds.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@jclouds.apache.org</unsubscribe>
      <post>dev@jclouds.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/jclouds-dev/</archive>
    </mailingList>
    <mailingList>
      <name>Commits List</name>
      <subscribe>commits-subscribe@jclouds.apache.org</subscribe>
      <unsubscribe>commits-unsubscribe@jclouds.apache.org</unsubscribe>
      <archive>http://mail-archives.apache.org/mod_mbox/jclouds-commits/</archive>
    </mailingList>
    <mailingList>
      <name>Issues List</name>
      <subscribe>issues-subscribe@jclouds.apache.org</subscribe>
      <unsubscribe>issues-unsubscribe@jclouds.apache.org</unsubscribe>
      <archive>http://mail-archives.apache.org/mod_mbox/jclouds-issues/</archive>
    </mailingList>
  </mailingLists>

  <scm>
    <connection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-jclouds.git</connection>
    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-jclouds.git</developerConnection>
    <url>https://git-wip-us.apache.org/repos/asf?p=incubator-jclouds.git</url>
    <tag>jclouds-1.6.1-incubating-rc3</tag>
  </scm>
  
  <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>
  </repositories>
  <pluginRepositories>
    <pluginRepository>
      <id>sonatype-nexus-snapshots</id>
      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </pluginRepository>
  </pluginRepositories>

  <distributionManagement>
    <site>
      <id>jclouds-github-pages-site</id>
      <url>${maven.site.url.base}/${project.version}</url>
    </site>
  </distributionManagement>

  <developers>
    <developer>
      <name>Adrian Cole</name>
      <id>adriancole</id>
      <email>adrian -at- jclouds -dot- org</email>
      <organization>jclouds</organization>
      <roles>
        <role>Committer</role>
        <role>PPMC Member</role>
      </roles>
      <url>http://jclouds.incubator.apache.org</url>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <name>Andrew Bayer</name>
      <id>abayer</id>
      <email>abayer -at- apache -dot- org</email>
      <roles>
        <role>Committer</role>
        <role>PPMC Member</role>
      </roles>
    </developer>
    <developer>
      <name>Andrew Gaul</name>
      <id>gaul</id>
      <roles>
        <role>Committer</role>
        <role>PPMC Member</role>
      </roles>
    </developer>
    <developer>
      <name>Andrew Phillips</name>
      <id>andrewp</id>
      <email>aphillips -at- qrmedia -dot- com</email>
      <roles>
        <role>Committer</role>
        <role>PPMC Member</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <name>Becca Woods</name>
      <id>silkysun</id>
      <roles>
        <role>Committer</role>
        <role>PPMC Member</role>
      </roles>
    </developer>
    <developer>
      <name>Everett Toews</name>
      <id>everett</id>
      <roles>
        <role>Committer</role>
        <role>PPMC Member</role>
      </roles>
    </developer>
    <developer>
      <name>Ignasi Barrera</name>
      <id>nacx</id>
      <roles>
        <role>Committer</role>
        <role>PPMC Member</role>
      </roles>
    </developer>
    <developer>
      <name>Ioannis Canellos</name>
      <id>iocanel</id>
      <roles>
        <role>Committer</role>
        <role>PPMC Member</role>
      </roles>
    </developer>
    <developer>
      <name>Matt Stephenson</name>
      <id>mattstep</id>
      <roles>
        <role>Committer</role>
        <role>PPMC Member</role>
      </roles>
    </developer>
  </developers>

  <properties>
    <clojure.version>1.3.0</clojure.version>
    <maven.compile.source>1.6</maven.compile.source>
    <maven.compile.target>1.6</maven.compile.target>
    <maven.compile.optimize>true</maven.compile.optimize>
    <maven.compile.deprecation>true</maven.compile.deprecation>
    <maven.site.url.base>gitsite:git@github.com/jclouds/jclouds-maven-site.git</maven.site.url.base>
    <http.proxyHost />
    <http.proxyPort />
    <jclouds.wire.httpstream.url>http://apache.deathculture.net//commons/logging/binaries/commons-logging-1.1.1-bin.tar.gz</jclouds.wire.httpstream.url>
    <jclouds.wire.httpstream.md5>e5de09672af9b386c30a311654d8541a</jclouds.wire.httpstream.md5>
    <jclouds.blobstore.httpstream.url>${jclouds.wire.httpstream.url}</jclouds.blobstore.httpstream.url>
    <jclouds.blobstore.httpstream.md5>${jclouds.wire.httpstream.md5}</jclouds.blobstore.httpstream.md5>
    <jclouds.test.listener>org.jclouds.test.testng.UnitTestStatusListener</jclouds.test.listener>
    <test.ssh.keyfile />
    <sourceReleaseAssemblyDescriptor>source-release-zip-tar</sourceReleaseAssemblyDescriptor>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>com.jcraft</groupId>
        <artifactId>jsch</artifactId>
        <version>0.1.49</version>
      </dependency>
      <dependency>
        <groupId>org.clojure</groupId>
        <artifactId>clojure</artifactId>
        <version>${clojure.version}</version>
      </dependency>
      <dependency>
        <groupId>org.clojure</groupId>
        <artifactId>tools.logging</artifactId>
        <version>0.2.3</version>
      </dependency>
      <dependency>
        <groupId>org.clojure</groupId>
        <artifactId>core.incubator</artifactId>
        <version>0.1.0</version>
      </dependency>
      <dependency>
        <groupId>org.easymock</groupId>
        <artifactId>easymockclassextension</artifactId>
        <version>3.1</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-security</artifactId>
        <version>8.1.8.v20121106</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-server</artifactId>
        <version>8.1.8.v20121106</version>
      </dependency>
      <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.8</version>
        <exclusions>
          <exclusion>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>xmlunit</groupId>
        <artifactId>xmlunit</artifactId>
        <version>1.3</version>
      </dependency>
      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
      </dependency>
      <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.0.9</version>
      </dependency>
      <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>1.0.9</version>
      </dependency>
      <dependency>
        <groupId>com.google.mockwebserver</groupId>
        <artifactId>mockwebserver</artifactId>
        <version>20121111</version>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.easymock</groupId>
      <artifactId>easymockclassextension</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>xmlunit</groupId>
      <artifactId>xmlunit</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.clojure</groupId>
      <artifactId>clojure</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.clojure</groupId>
      <artifactId>tools.logging</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.clojure</groupId>
      <artifactId>core.incubator</artifactId>
      <optional>true</optional>
    </dependency>
  </dependencies>

  <build>
    <resources>
      <resource>
        <directory>src/main/clojure</directory>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
    </resources>
    <testResources>
      <testResource>
        <directory>src/test/clojure</directory>
      </testResource>
      <testResource>
        <directory>src/test/resources</directory>
      </testResource>
    </testResources>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-release-plugin</artifactId>
        <version>2.4</version>
        <configuration>
          <useReleaseProfile>false</useReleaseProfile>
          <goals>deploy</goals>
          <arguments>-Pdoc -Papache-release ${arguments}</arguments>
        </configuration>
      </plugin>
      
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <excludes>
            <!-- expectation files for unit tests -->
            <exclude>**/src/test/resources/**/*.sh</exclude>
            <exclude>**/src/test/resources/**/*.bat</exclude>
            <exclude>**/src/test/resources/**/*.cmd</exclude>
            <exclude>**/src/test/resources/**/*.txt</exclude>
            <exclude>**/src/test/resources/**/*.gz</exclude>
            <exclude>**/src/test/resources/**/*.xml</exclude>
            
            <!-- META-INF/services files -->
            <exclude>**/services/*LoggingModule</exclude>
            <exclude>**/services/*ApiMetadata</exclude>
            <exclude>**/services/*ProviderMetadata</exclude>

            <!-- 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>

            <!-- reference data lists -->
            <exclude>**/*json</exclude>
            <exclude>**/*readme</exclude>

            <!-- SSH keys -->
            <exclude>**/test</exclude>
            <exclude>**/test.pub</exclude>

            <!-- temporary files or those generated by IDE or SCM -->
            <exclude>**/target/**</exclude>
            <exclude>**/test-output/**</exclude>
            <exclude>**/bin/**</exclude>
            <exclude>**/.settings/**</exclude>
            <exclude>**/.classpath</exclude>
            <exclude>**/.dir-locals.el</exclude>
            <exclude>**/.project</exclude>
            <exclude>**/.idea/**</exclude>
            <exclude>**/*.iml</exclude>
            <exclude>**/*.eml</exclude>
            <exclude>**/*.ipr</exclude>
            <exclude>**/*.iws</exclude>
            <exclude>**/*.DS_STORE</exclude>
            <exclude>**/TAGS</exclude>
            <exclude>**/.metadata/**</exclude>
            <exclude>**/atlassian-ide-plugin.xml</exclude>
            <exclude>**/.DS_Store</exclude>
            <exclude>.mailmap</exclude>
            <exclude>.git/**</exclude>
            <exclude>**/.gitignore</exclude>
            <exclude>**/.gitattributes</exclude>

            <!-- Temporary files generated on CloudBees slaves -->
            <exclude>.repository/**</exclude>
            <exclude>gc.log</exclude>
          </excludes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>com.ning.maven.plugins</groupId>
        <artifactId>maven-duplicate-finder-plugin</artifactId>
        <version>1.0.3</version>
        <configuration>
          <exceptions>
            <exception>
              <!-- CloudSigma bundles conflict between api and providers-->
              <conflictingDependencies>
                <dependency>
                  <groupId>org.apache.jclouds.api</groupId>
                  <artifactId>cloudsigma</artifactId>
                  <version>${project.version}</version>
                </dependency>
                <dependency>
                  <groupId>org.apache.jclouds.provider</groupId>
                  <artifactId>cloudsigma-lvs</artifactId>
                  <version>${project.version}</version>
                </dependency>
                <dependency>
                  <groupId>org.apache.jclouds.provider</groupId>
                  <artifactId>cloudsigma-zrh</artifactId>
                  <version>${project.version}</version>
                </dependency>
              </conflictingDependencies>
              <packages>
                <package>org.jclouds.cloudsigma</package>
              </packages>
            </exception>
            <exception>
              <!-- Google App Engine Deps, some google classes are duplicated between packages -->
              <conflictingDependencies>
                <dependency>
                  <groupId>com.google.appengine</groupId>
                  <artifactId>appengine-api-1.0-sdk</artifactId>
                  <version>1.6.5</version>
                </dependency>
                <dependency>
                  <groupId>com.google.appengine</groupId>
                  <artifactId>appengine-testing</artifactId>
                  <version>1.6.5</version>
                  <scope>test</scope>
                </dependency>
              </conflictingDependencies>
              <packages>
                <package>com.google</package>
              </packages>
            </exception>
          </exceptions>
          <ignoredResources>
            <!-- For all the jetty packages -->
            <ignoredResource>about\.html</ignoredResource>
            <!-- There are several situations where a test-jar and another test-jar or a bundle conflict on these artifacts -->
            <ignoredResource>log4j.xml</ignoredResource>
            <ignoredResource>os.xml</ignoredResource>
            <ignoredResource>virtualhardwaresection.xml</ignoredResource>
            <ignoredResource>logback.xml</ignoredResource>
            <ignoredResource>amzn_images.xml</ignoredResource>
            <ignoredResource>test.jks</ignoredResource>
            <ignoredResource>CreateInternetService-options-test.xml</ignoredResource>
            <ignoredResource>.gitattributes</ignoredResource>
            <ignoredResource>OSGI-OPT/bnd.bnd</ignoredResource>
            <!-- For bouncycastle -->
            <ignoredResource>META-INF/BCKEY.DSA</ignoredResource>
            <ignoredResource>META-INF/BCKEY.SF</ignoredResource>
          </ignoredResources>
          <failBuildInCaseOfConflict>true</failBuildInCaseOfConflict>
        </configuration>
        <executions>
          <execution>
            <phase>verify</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.12.4</version>
        <executions>
          <execution>
            <id>integration</id>
            <phase>integration-test</phase>
            <goals>
              <goal>test</goal>
            </goals>
            <configuration>
              <argLine>-Xmx512m -Xms256m -Djava.awt.headless=true -XX:MaxPermSize=256m -Xss256k</argLine>
              <parallel>tests</parallel>
              <threadCount>5</threadCount>
              <!-- note that the groups/excluded groups don't work due to some problem
                   in surefire or testng. instead, we have to exclude via file path
                   <groups>integration</groups>
                   <excludedGroups>unit,performance,live</excludedGroups> -->
              <excludes>
                <exclude>**/*LiveTest.java</exclude>
              </excludes>
              <includes>
                <include>**/*IntegrationTest.java</include>
              </includes>
            </configuration>
          </execution>
        </executions>
        <configuration>
          <parallel>methods</parallel>
          <threadCount>5</threadCount>
          <!-- note that the groups/excluded groups don't work due to some problem
               in surefire or testng. instead, we have to exclude via file path
               <groups>unit,performance</groups>
               <excludedGroups>integration,live</excludedGroups> -->
          <excludes>
            <exclude>**/*IntegrationTest.java</exclude>
            <exclude>**/*LiveTest.java</exclude>
          </excludes>
          <properties>
            <property>
              <name>listener</name>
              <value>${jclouds.test.listener}</value>
            </property>
          </properties>
          <systemPropertyVariables>
            <sun.net.http.allowRestrictedHeaders>true</sun.net.http.allowRestrictedHeaders>
            <jclouds.wire.httpstream.url>${jclouds.wire.httpstream.url}</jclouds.wire.httpstream.url>
            <jclouds.wire.httpstream.md5>${jclouds.wire.httpstream.md5}</jclouds.wire.httpstream.md5>
          </systemPropertyVariables>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>1.1.1</version>
        <executions>
          <execution>
            <id>enforce-banned-dependencies</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <bannedDependencies>
                  <excludes>
                    <exclude>:maven-dependency-plugin</exclude>
                  </excludes>
                </bannedDependencies>
              </rules>
            </configuration>
          </execution>
          <execution>
            <id>enforce-java</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireJavaVersion>
                  <version>[1.6,)</version>
                </requireJavaVersion>
                <requireMavenVersion>
                  <version>[3.0.2,)</version>
                </requireMavenVersion>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.5.1</version>
        <configuration>
          <encoding>${project.build.sourceEncoding}</encoding>
          <source>${maven.compile.source}</source>
          <target>${maven.compile.target}</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.6</version>
        <configuration>
          <encoding>${project.build.sourceEncoding}</encoding>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.4</version>
        <executions>
          <execution>
            <goals>
              <goal>test-jar</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <archive>
            <manifestEntries>
              <Specification-Title>jclouds ${project.name}</Specification-Title>
              <Specification-Vendor>jclouds</Specification-Vendor>
              <Implementation-Vendor>jclouds</Implementation-Vendor>
              <Implementation-Vendor-Id>org.jclouds</Implementation-Vendor-Id>
              <Implementation-Version>${project.version}</Implementation-Version>
              <X-Compile-Source-JDK>${maven.compile.source}</X-Compile-Source-JDK>
              <X-Compile-Target-JDK>${maven.compile.target}</X-Compile-Target-JDK>
            </manifestEntries>
          </archive>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>2.3.7</version>
        <extensions>true</extensions>
        <configuration>
          <obrRepository>NONE</obrRepository>
          <instructions>
            <Bundle-Activator>${jclouds.osgi.activator}</Bundle-Activator>
            <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
            <Export-Package>${jclouds.osgi.export}</Export-Package>
            <Import-Package>${jclouds.osgi.import}</Import-Package>
            <DynamicImport-Package>${jclouds.osgi.dynamic}</DynamicImport-Package>
            <Fragment-Host>${jclouds.osgi.fragment}</Fragment-Host>
          </instructions>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>2.9.1</version>
        <configuration>
          <configLocation>../resources/checkstyle.xml</configLocation>
          <violationSeverity>warning</violationSeverity>
        </configuration>
      </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-archetype-plugin</artifactId>
          <version>2.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>2.3</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.7</version>
        </plugin>
        <plugin>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>1.1.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.4</version>
        </plugin>
        <plugin>
          <artifactId>maven-jxr-plugin</artifactId>
          <version>2.3</version>
        </plugin>
        <plugin>
          <artifactId>maven-remote-resources-plugin</artifactId>
          <version>1.4</version>
        </plugin>
        <plugin>
          <artifactId>maven-pmd-plugin</artifactId>
          <version>2.7.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>2.5.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.1</version>
          <configuration>
            <outputEncoding>${project.build.sourceEncoding}</outputEncoding>
            <reportPlugins>
              <plugin>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <reportSets>
                  <reportSet>
                    <reports>
                      <report>index</report>
                      <report>project-team</report>
                      <report>mailing-list</report>
                      <report>issue-tracking</report>
                      <report>license</report>
                      <report>scm</report>
                    </reports>
                  </reportSet>
                </reportSets>
              </plugin>
              <plugin>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.9</version>
                <configuration>
                  <encoding>${project.build.sourceEncoding}</encoding>
                  <quiet>true</quiet>
                  <maxmemory>256m</maxmemory>
                </configuration>
                <reportSets>
                  <reportSet>
                    <id>default</id>
                    <reports>
                      <report>javadoc</report>
                      <report>aggregate</report>
                    </reports>
                  </reportSet>
                </reportSets>
              </plugin>
              <plugin>
                <groupId>org.sonatype.maven.plugin</groupId>
                <artifactId>emma-maven-plugin</artifactId>
                <version>1.2</version>
                <configuration>
                  <formats>html,xml</formats>
                </configuration>
              </plugin>
              <plugin>
                <artifactId>maven-jxr-plugin</artifactId>
              </plugin>
              <plugin>
                <artifactId>maven-surefire-report-plugin</artifactId>
              </plugin>
              <plugin>
                <groupId>org.apache.rat</groupId>
                <artifactId>apache-rat-plugin</artifactId>
              </plugin>
              <plugin>
                <artifactId>maven-pmd-plugin</artifactId>
                <configuration>
                  <targetJdk>${maven.compile.source}</targetJdk>
                </configuration>
              </plugin>
              <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>findbugs-maven-plugin</artifactId>
                <configuration>
                  <xmlOutput>true</xmlOutput>
                </configuration>
              </plugin>
            </reportPlugins>
            <stagingRepositoryId>${project.distributionManagement.site.id}</stagingRepositoryId>
            <stagingSiteURL>${project.distributionManagement.site.url}</stagingSiteURL>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>com.github.stephenc.wagon</groupId>
              <artifactId>wagon-gitsite</artifactId>
              <version>0.4.1</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-report-plugin</artifactId>
          <version>2.12.4</version>
        </plugin>
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <version>0.9</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>findbugs-maven-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <groupId>org.sonatype.maven.plugin</groupId>
          <artifactId>emma-maven-plugin</artifactId>
          <version>1.2</version>
        </plugin>
        <plugin>
          <groupId>com.theoryinpractise</groupId>
          <artifactId>clojure-maven-plugin</artifactId>
          <version>1.3.10</version>
          <configuration>
            <sourceDirectories>
              <sourceDirectory>src/main/clojure</sourceDirectory>
            </sourceDirectories>
            <testSourceDirectories>
              <testSourceDirectory>src/test/clojure</testSourceDirectory>
            </testSourceDirectories>
            <clojureOptions>-Xms128m -Xmx512m -Djava.awt.headless=true -XX:MaxPermSize=256m -Xss256k</clojureOptions>
            <warnOnReflection>true</warnOnReflection>
            <compileDeclaredNamespaceOnly>true</compileDeclaredNamespaceOnly>
            <testDeclaredNamespaceOnly>false</testDeclaredNamespaceOnly>
          </configuration>
          <executions>
            <execution>
              <id>test-clojure</id>
              <phase>test</phase>
              <goals>
                <goal>test</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>2.9</version>
          <configuration>
            <maxmemory>256m</maxmemory>
            <encoding>${project.build.sourceEncoding}</encoding>
            <quiet>true</quiet>
            <links>
              <link>http://download.oracle.com/javase/6/docs/api/</link>
            </links>
            <footer><![CDATA[
            <!-- Google Analytics -->
            <script type='text/javascript'>
            var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
            document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
            </script>
            <script type='text/javascript'>
            try {
            var pageTracker = _gat._getTracker("UA-8638379-1");
            pageTracker._trackPageview();
            } catch(err) {}</script>
            ]]>
            </footer>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
  <profiles>
    <profile>
      <id>live</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <executions>
              <execution>
                <id>integration</id>
                <phase>integration-test</phase>
                <goals>
                  <goal>test</goal>
                </goals>
                <configuration>
                  <!-- note that the groups/excluded groups don't work due to some problem
                       in surefire or testng. instead, we have to exclude via file path
                       <groups>live,integration</groups>
                       <excludedGroups>unit,performance</excludedGroups> -->
                  <excludes>
                    <exclude>none</exclude>
                  </excludes>
                  <includes>
                    <include>**/*IntegrationTest.java</include>
                    <include>**/*LiveTest.java</include>
                  </includes>
                  <systemPropertyVariables>
                    <!--
                        If you're behind a proxy, set this here
                        http://java.sun.com/javase/6/docs/technotes/guides/net/proxies.html

<https.proxyHost>proxy</https.proxyHost>
<https.proxyPort>port</https.proxyPort>
<https.noProxyHosts>localhost|10.150.4.49</https.noProxyHosts>
                    -->
                    <file.encoding>${project.build.sourceEncoding}</file.encoding>
                  </systemPropertyVariables>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>distribution</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <executions>
              <execution>
                <id>generate-distribution-files</id>
                <phase>package</phase>
                <goals>
                  <goal>single</goal>
                </goals>
                <configuration>
                  <descriptors>
                    <descriptor>src-descriptor.xml</descriptor>
                    <descriptor>provided-dependencies-descriptor.xml</descriptor>                                        
                    <descriptor>jar-with-dependencies-no-core-no-apis-descriptor.xml</descriptor>
                  </descriptors>
                </configuration>
              </execution>
            </executions>
            <dependencies>
              <dependency>
                <groupId>org.apache.jclouds</groupId>
                <artifactId>jclouds-assemblies</artifactId>
                <version>${project.version}</version>
              </dependency>
            </dependencies>
          </plugin>
        </plugins>
      </build>
    </profile>
    <!-- modifies the plugin config inherited from oss-parent -->
    <profile> 
      <id>sonatype-release-profile-extension</id>
      <activation>
        <property> 
          <name>performRelease</name> 
          <value>true</value> 
        </property>
      </activation>            
      <build> 
        <plugins>
          <plugin>
            <artifactId>maven-gpg-plugin</artifactId> 
            <version>1.4</version>
            <configuration>
              <executable>${gpg.command}</executable>
              <passphrase>${gpg.passphrase}</passphrase>
            </configuration>
          </plugin> 
        </plugins>
      </build> 
    </profile>        
    <profile>
      <id>site</id>
      <build>
        <plugins>
          <!-- disable the Maven enforcer plugin and prevent forking (unlike -Denforcer.skip) -->
          <plugin>
            <artifactId>maven-enforcer-plugin</artifactId>
            <executions>
              <execution>
                <id>enforce-banned-dependencies</id>
                <phase>none</phase>
              </execution>
              <execution>
                <id>enforce-java</id>
                <goals>
                  <goal>enforce</goal>
                </goals>
                <phase>none</phase>
              </execution>
              <!-- inherited from oss-parent -->
              <execution>
                <id>enforce-maven</id>
                <goals>
                  <goal>enforce</goal>
                </goals>
                <phase>none</phase>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>jclouds-project</id>
      <activation>
        <file>
          <!-- only in the jclouds-project module -->
          <exists>src/etc/header.txt</exists>
        </file>
      </activation>

      <!-- Maven generates incorrect links without the <site> declaration here -->
      <distributionManagement>
        <site>
          <id>jclouds-github-pages-site</id>
          <url>${maven.site.url.base}/${project.version}/${project.artifactId}</url>
        </site>
      </distributionManagement>
      <build>
        <plugins>
          <plugin>      
            <artifactId>maven-remote-resources-plugin</artifactId>
            <executions>
              <execution>
                <goals>
                  <goal>process</goal>
                </goals>
                <configuration>
                  <skip>true</skip>
                </configuration>
              </execution>
            </executions>
          </plugin>        
        </plugins>            
      </build>
    </profile>
    <profile>
      <id>doc</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>2.9</version>
            <executions>
              <execution>
                <id>javadoc</id>
                <phase>package</phase>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>src</id>
      <build>
        <plugins>
          <!-- make sure we generate src jars too -->
          <plugin>
            <artifactId>maven-source-plugin</artifactId>
            <version>2.2</version>
            <executions>
              <execution>
                <id>attach-sources</id>
                <goals>
                  <goal>jar-no-fork</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
