<?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.7.3-SNAPSHOT</version>
  <packaging>pom</packaging>
  <name>Apache jclouds Project</name>
  <url>http://jclouds.apache.org/</url>
  <description>Apache jclouds: 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/jclouds.git</connection>
    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/jclouds.git</developerConnection>
    <url>https://git-wip-us.apache.org/repos/asf?p=jclouds.git</url>
    <tag>HEAD</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>

  <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>
      <roles>
        <role>Committer</role>
        <role>PMC Member</role>
      </roles>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <name>Andrew Bayer</name>
      <id>abayer</id>
      <email>abayer -at- apache -dot- org</email>
      <roles>
        <role>Committer</role>
        <role>PMC Member</role>
      </roles>
    </developer>
    <developer>
      <name>Andrew Gaul</name>
      <id>gaul</id>
      <roles>
        <role>Committer</role>
        <role>PMC Member</role>
      </roles>
    </developer>
    <developer>
      <name>Andrew Phillips</name>
      <id>andrewp</id>
      <email>aphillips -at- qrmedia -dot- com</email>
      <roles>
        <role>Committer</role>
        <role>PMC Member</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <name>Becca Woods</name>
      <id>silkysun</id>
      <roles>
        <role>Committer</role>
        <role>PMC Member</role>
      </roles>
    </developer>
    <developer>
      <name>Everett Toews</name>
      <id>everett</id>
      <roles>
        <role>Committer</role>
        <role>PMC Member</role>
      </roles>
    </developer>
    <developer>
      <name>Ignasi Barrera</name>
      <id>nacx</id>
      <roles>
        <role>Committer</role>
        <role>PMC Member</role>
      </roles>
    </developer>
    <developer>
      <name>Ioannis Canellos</name>
      <id>iocanel</id>
      <roles>
        <role>Committer</role>
        <role>PMC Member</role>
      </roles>
    </developer>
    <developer>
      <name>Matt Stephenson</name>
      <id>mattstep</id>
      <roles>
        <role>Committer</role>
        <role>PMC 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://archive.apache.org/dist/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>
    <okhttp.version>1.3.0</okhttp.version>
  </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>com.squareup.okhttp</groupId>
        <artifactId>mockwebserver</artifactId>
        <version>${okhttp.version}</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.5</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>
            <exception>
              <conflictingDependencies>
                <dependency>
                  <groupId>com.jcraft</groupId>
                  <artifactId>jsch.agentproxy.core</artifactId>
                  <version>0.0.7</version>
                </dependency>
                <dependency>
                  <groupId>com.jcraft</groupId>
                  <artifactId>jsch.agentproxy.connector-factory</artifactId>
                  <version>0.0.7</version>
                </dependency>
              </conflictingDependencies>
              <packages>
                <package>com.jcraft.jsch.agentproxy</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>
          <skip>${skipDuplicateFinder}</skip>
        </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>3.1</version>
        <configuration>
          <encoding>${project.build.sourceEncoding}</encoding>
          <source>${maven.compile.source}</source>
          <target>${maven.compile.target}</target>
            <showDeprecation>false</showDeprecation>
            <showWarnings>true</showWarnings>
            <compilerArgs>
              <compilerArg>-Xlint</compilerArg>
              <compilerArg>-Xlint:-deprecation</compilerArg>
              <compilerArg>-Xlint:-rawtypes</compilerArg>
              <compilerArg>-Xlint:-serial</compilerArg>
              <compilerArg>-Xlint:-unchecked</compilerArg>
            </compilerArgs>
        </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>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>2.11</version>
        <configuration>
          <!-- configLocation configured via profiles -->
          <violationSeverity>warning</violationSeverity>
          <includeTestSourceDirectory>true</includeTestSourceDirectory>
        </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-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.3</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>
          </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>        
    <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>
            <!-- When building jclouds-project, override the config to use the local file -->
            <artifactId>maven-checkstyle-plugin</artifactId>
            <configuration>
              <configLocation>../resources/checkstyle.xml</configLocation>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>not-jclouds-project</id>
      <activation>
        <file>
          <!-- only in the jclouds-project module -->
          <missing>src/etc/header.txt</missing>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <dependencies>
              <dependency>
                <groupId>org.apache.jclouds</groupId>
                <artifactId>jclouds-resources</artifactId>
                <version>${project.version}</version>
              </dependency>
            </dependencies>
            <configuration>
              <!-- jclouds-resources has the checkstyle config in the classpath -->
              <configLocation>resources/checkstyle.xml</configLocation>
            </configuration>
          </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>
