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

    Licensed to jclouds, Inc. (jclouds) under one or more
    contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  jclouds 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.sonatype.oss</groupId>
        <artifactId>oss-parent</artifactId>
        <version>4</version>
    </parent>
    <groupId>org.jclouds</groupId>
    <artifactId>jclouds-project</artifactId>
    <version>1.5.10</version>
    <packaging>pom</packaging>
    <name>jclouds Project</name>
    <url>http://www.jclouds.org</url>
    <description>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>

    <organization>
        <name>jclouds</name>
        <url>http://www.jclouds.org/</url>
    </organization>

    <issueManagement>
        <system>Google Code</system>
        <url>http://code.google.com/p/jclouds/issues</url>
    </issueManagement>

    <mailingLists>
        <mailingList>
            <name>Contributors</name>
            <subscribe>http://groups.google.com/group/jclouds-contributors</subscribe>
            <unsubscribe>http://groups.google.com/group/jclouds-contributors</unsubscribe>
            <post>jclouds-contributors@googlegroups.com</post>
            <archive>http://groups.google.com/group/jclouds-contributors</archive>
        </mailingList>
        <mailingList>
            <name>Repository Commits</name>
            <subscribe>http://groups.google.com/group/jclouds-commits</subscribe>
            <unsubscribe>http://groups.google.com/group/jclouds-commits</unsubscribe>
            <post>jclouds-commits@googlegroups.com</post>
            <archive>http://groups.google.com/group/jclouds-commits</archive>
        </mailingList>
    </mailingLists>

    <scm>
        <connection>scm:git:git://github.com/jclouds/jclouds.git</connection>
        <developerConnection>scm:git:ssh://git@github.com/jclouds/jclouds.git</developerConnection>
        <url>http://github.com/jclouds/jclouds</url>
      <tag>jclouds-1.5.10</tag>
  </scm>

    <repositories>
        <repository>
            <id>sonatype-nexus-snapshots</id>
            <url>https://oss.sonatype.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>
        <repository>
            <id>sonatype-nexus-staging</id>
            <url>https://oss.sonatype.org/service/local/staging/deploy/maven2</url>
        </repository>
        <snapshotRepository>
            <id>sonatype-nexus-snapshots</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>
        <site>
            <id>jclouds-github-pages-site</id>
            <url>${maven.site.url.base}/${project.version}</url>
        </site>
    </distributionManagement>

    <developers>
        <developer>
            <name>Adrian Cole</name>
            <id>ferncam1</id>
            <email>adrian -at- jclouds -dot- org</email>
            <organization>jclouds</organization>
            <roles>
                <role>Java Developer</role>
                <role>PMC</role>
            </roles>
            <url>http://www.jclouds.org</url>
            <timezone>-8</timezone>
        </developer>
        <developer>
            <name>Hugo Duncan</name>
            <id>hugoduncan</id>
            <email>tabcdef -at- hugoduncan -dot- org</email>
            <roles>
                <role>Clojure Developer</role>
            </roles>
            <timezone>-8</timezone>
        </developer>
        <developer>
            <name>Phil Hagelberg</name>
            <id>technomancy</id>
            <email>phil -at- technomancy -dot- us</email>
            <roles>
                <role>Clojure Developer</role>
            </roles>
            <timezone>-8</timezone>
        </developer>
        <developer>
            <name>Ivan Meredith</name>
            <id>barefootnz</id>
            <email>ivan -at- ivan -dot- net -dot- nz</email>
            <roles>
                <role>Java Developer</role>
            </roles>
            <timezone>+13</timezone>
        </developer>
        <developer>
            <name>Andrew Phillips</name>
            <id>demobox</id>
            <email>aphillips -at- qrmedia -dot- com</email>
            <roles>
                <role>Apprentice</role>
            </roles>
            <timezone>+1</timezone>
        </developer>
        <developer>
            <name>Alex Yarmuda</name>
            <id>alexstaytuned</id>
            <email>oleksiy -dot- yarmula -at- gmail -dot- com</email>
            <roles>
                <role>Java Developer</role>
            </roles>
            <timezone>-8</timezone>
        </developer>
        <developer>
            <name>Chas Emerick</name>
            <id>cemerick</id>
            <email>cemerick -at- snowtide -dot- com</email>
            <roles>
                <role>Clojure Developer</role>
            </roles>
            <timezone>-5</timezone>
        </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 />
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.jcraft</groupId>
                <artifactId>jsch</artifactId>
                <version>0.1.48</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.1.v20120215</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-server</artifactId>
                <version>8.1.1.v20120215</version>
            </dependency>
            <dependency>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>
                <version>6.5.2</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>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>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.jclouds.api</groupId>
                                    <artifactId>cloudsigma</artifactId>
                                    <version>${project.version}</version>
                                </dependency>
                                <dependency>
                                    <groupId>org.jclouds.provider</groupId>
                                    <artifactId>cloudsigma-lvs</artifactId>
                                    <version>${project.version}</version>
                                </dependency>
                                <dependency>
                                    <groupId>org.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>
                    </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</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>
                        <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</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</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.5</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-remote-resources-plugin</artifactId>
                <version>1.3</version>
                <executions>             
                    <execution>
                        <id>process-remote-resources</id>
                        <goals>
                            <goal>process</goal>
                        </goals>
                        <configuration>
                            <resourceBundles>
                                <resourceBundle>org.jclouds:jclouds-resources:${project.version}</resourceBundle>
                            </resourceBundles>
                        </configuration>
                    </execution>          
                </executions>
            </plugin>
        </plugins>
        <pluginManagement>
            <plugins>
                <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</version>
                </plugin>
                <plugin>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>2.3.1</version>
                </plugin>
                <plugin>
                    <artifactId>maven-jxr-plugin</artifactId>
                    <version>2.3</version>
                </plugin>
                <plugin>
                    <artifactId>maven-release-plugin</artifactId>
                    <version>2.3.1</version>
                    <configuration>
                      <releaseProfiles>doc</releaseProfiles>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-pmd-plugin</artifactId>
                    <version>2.7.1</version>
                </plugin>
                <plugin>
                    <artifactId>maven-project-info-reports-plugin</artifactId>
                    <version>2.4</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>
                                <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>
                                <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</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.rat</groupId>
                    <artifactId>apache-rat-plugin</artifactId>
                    <version>0.8</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>findbugs-maven-plugin</artifactId>
                    <version>2.5</version>
                </plugin>
                <plugin>
                    <groupId>org.sonatype.maven.plugin</groupId>
                    <artifactId>emma-maven-plugin</artifactId>
                    <version>1.3-SNAPSHOT</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.8.1</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.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> 
                        <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>
                                <id>process-remote-resources</id>
                                <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.8.1</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.1.2</version>
                        <executions>
                            <execution>
                                <id>attach-sources</id>
                                <goals>
                                    <goal>jar-no-fork</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>
