<?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>14</version>
    <relativePath />
  </parent>
  <groupId>org.apache.jclouds</groupId>
  <artifactId>jclouds-project</artifactId>
  <version>2.2.0</version>
  <packaging>pom</packaging>
  <name>Apache jclouds Project</name>
  <url>https://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>https://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>https://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>https://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>https://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>https://mail-archives.apache.org/mod_mbox/jclouds-issues/</archive>
    </mailingList>
  </mailingLists>

  <scm>
    <connection>scm:git:https://gitbox.apache.org/repos/asf/jclouds.git</connection>
    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/jclouds.git</developerConnection>
    <url>https://gitbox.apache.org/repos/asf?p=jclouds.git</url>
    <tag>rel/jclouds-2.2.0-rc1</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>

  <!-- to allow downstream projects to access jclouds-resources in plugin config -->
  <pluginRepositories>
    <pluginRepository>
      <id>apache-snapshots</id>
      <url>https://repository.apache.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>Andrew Bayer</name>
      <id>abayer</id>
      <roles>
        <role>Committer</role>
        <role>PMC Member</role>
      </roles>
    </developer>
    <developer>
      <name>Andrea Turli</name>
      <id>andreaturli</id>
      <roles>
        <role>Committer</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>
      <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>Chris Custine</name>
      <id>ccustine</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>Jeremy Daggett</name>
      <id>jdaggett</id>
      <roles>
        <role>Committer</role>
      </roles>
    </developer>
    <developer>
      <name>Matt Stephenson</name>
      <id>mattstep</id>
      <roles>
        <role>Committer</role>
        <role>PMC Member</role>
      </roles>
    </developer>
    <developer>
      <name>Zach Shoylev</name>
      <id>zachsh</id>
      <roles>
        <role>Committer</role>
      </roles>
    </developer>
  </developers>

  <properties>
    <maven.compile.source>1.7</maven.compile.source>
    <maven.compile.target>1.7</maven.compile.target>
    <jdk.version>1.7</jdk.version>
    <maven.compile.deprecation>true</maven.compile.deprecation>
    <maven.site.url.base>gitsite:git@github.com/jclouds/jclouds-maven-site.git</maven.site.url.base>
    <guava.version>18.0</guava.version>
    <guava.osgi.import>com.google.common.*;version="[18.0,24.0.0)"</guava.osgi.import>
    <guice.version>3.0</guice.version>
    <okhttp.version>2.2.0</okhttp.version>
    <okio.osgi.import>okio;version="[1.2.0,1.3)"</okio.osgi.import>
    <surefire.version>2.17</surefire.version>
    <assertj-core.version>1.7.0</assertj-core.version>
    <assertj-guava.version>1.3.0</assertj-guava.version>
    <auto-factory.version>0.1-beta1</auto-factory.version>
    <auto-service.version>1.0-rc3</auto-service.version>
    <auto-value.version>1.4.1</auto-value.version>
    <java-xmlbuilder.version>1.1</java-xmlbuilder.version>
    <osgi.version>4.2.0</osgi.version>
    <osgi.compendium.version>${osgi.version}</osgi.compendium.version>
    <http.proxyHost />
    <http.proxyPort />
    <jclouds.wire.httpstream.url>https://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>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>${guava.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.jclouds</groupId>
        <artifactId>jclouds-gson</artifactId>
        <version>${project.version}</version>
        <exclusions>
          <!--
            Due to the following issues:
              https://issues.apache.org/jira/browse/MSHADE-206
              https://issues.apache.org/jira/browse/MNG-5899
            The Maven reactor ignores the reduced pom.xml generated by the shade plugin, and all
            the dependencies that are shaded are included as normal dependencies too, causing
            duplicate class issues.
            This exclusion makes sure projects including the shaded version don't get the original
            gson dependency as well. 
          -->
          <exclusion>
            <groupId>org.apache.jclouds</groupId>
            <artifactId>jclouds-gson-shaded</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>com.google.code.findbugs</groupId>
        <artifactId>jsr305</artifactId>
        <version>1.3.9</version>
      </dependency>
      <dependency>
        <groupId>com.google.inject.extensions</groupId>
        <artifactId>guice-assistedinject</artifactId>
        <version>${guice.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.inject</groupId>
        <artifactId>guice</artifactId>
        <version>${guice.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.inject.extensions</groupId>
        <artifactId>guice-multibindings</artifactId>
        <version>${guice.version}</version>
      </dependency>
      <dependency>
        <groupId>org.easymock</groupId>
        <artifactId>easymock</artifactId>
        <version>3.4</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.gaul</groupId>
        <artifactId>modernizer-maven-annotations</artifactId>
        <version>1.8.0</version>
      </dependency>
      <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.8.21</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.1.2</version>
      </dependency>
      <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>1.1.2</version>
      </dependency>
      <dependency>
        <groupId>org.assertj</groupId>
        <artifactId>assertj-core</artifactId>
        <version>${assertj-core.version}</version>
      </dependency>
      <dependency>
        <groupId>org.assertj</groupId>
        <artifactId>assertj-guava</artifactId>
        <version>${assertj-guava.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.auto.factory</groupId>
        <artifactId>auto-factory</artifactId>
        <version>${auto-factory.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.auto.service</groupId>
        <artifactId>auto-service</artifactId>
        <version>${auto-service.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.auto.value</groupId>
        <artifactId>auto-value</artifactId>
        <version>${auto-value.version}</version>
      </dependency>
      <dependency>
        <groupId>com.jamesmurty.utils</groupId>
        <artifactId>java-xmlbuilder</artifactId>
        <version>${java-xmlbuilder.version}</version>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.core</artifactId>
        <version>${osgi.version}</version>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.compendium</artifactId>
        <version>${osgi.compendium.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.google.errorprone</groupId>
      <artifactId>error_prone_annotations</artifactId>
      <version>2.1.0</version>
    </dependency>
    <dependency>
      <groupId>com.google.code.findbugs</groupId>
      <artifactId>jsr305</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.easymock</groupId>
      <artifactId>easymock</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>xmlunit</groupId>
      <artifactId>xmlunit</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.assertj</groupId>
      <artifactId>assertj-core</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.assertj</groupId>
      <artifactId>assertj-guava</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
      <!-- For AutoService generated services. -->
      <resource>
        <directory>target/classes</directory>
        <includes>
          <include>META-INF/services/*</include>
        </includes>
      </resource>
    </resources>
    <testResources>
      <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>
      </plugin>
      <plugin>
        <groupId>org.basepom.maven</groupId>
        <artifactId>duplicate-finder-maven-plugin</artifactId>
        <executions>
          <execution>
            <phase>verify</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>animal-sniffer-maven-plugin</artifactId>
        <version>1.16</version>
        <executions>
          <execution>
            <phase>test</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <signature>
            <groupId>org.codehaus.mojo.signature</groupId>
            <artifactId>java17</artifactId>
            <version>1.0</version>
          </signature>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${surefire.version}</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>
        <groupId>org.apache.maven.plugins</groupId>
        <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.7,)</version>
                </requireJavaVersion>
                <requireMavenVersion>
                  <version>[3.0.2,)</version>
                </requireMavenVersion>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <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>${guava.osgi.import},${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>3.0.0</version>
        <!-- configuration and dependencies set via profiles -->
        <executions>
          <execution>
            <id>default</id>
            <phase>verify</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.gaul</groupId>
        <artifactId>modernizer-maven-plugin</artifactId>
        <version>1.8.0</version>
        <!-- configuration and dependencies set via profiles -->
        <executions>
          <execution>
            <id>modernizer</id>
            <phase>verify</phase>
            <goals>
              <goal>modernizer</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
          <configuration>
            <compilerId>javac-with-errorprone</compilerId>
            <forceJavacCompilerUse>true</forceJavacCompilerUse>
            <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:-processing</compilerArg>
              <compilerArg>-Xlint:-rawtypes</compilerArg>
              <compilerArg>-Xlint:-serial</compilerArg>
              <compilerArg>-Xlint:-unchecked</compilerArg>

              <!-- on by default: warning -->
              <compilerArg>-Xep:CannotMockFinalClass:ERROR</compilerArg>
              <compilerArg>-Xep:ElementsCountedInLoop:ERROR</compilerArg>
              <compilerArg>-Xep:EqualsHashCode:ERROR</compilerArg>
              <compilerArg>-Xep:Finally:ERROR</compilerArg>
              <compilerArg>-Xep:IncompatibleModifiers:ERROR</compilerArg>
              <compilerArg>-Xep:JUnitAmbiguousTestClass:ERROR</compilerArg>
              <compilerArg>-Xep:NonAtomicVolatileUpdate:OFF</compilerArg>  <!-- noisy -->
              <compilerArg>-Xep:NonCanonicalStaticMemberImport:ERROR</compilerArg>
              <compilerArg>-Xep:NonOverridingEquals:ERROR</compilerArg>
              <compilerArg>-Xep:PreconditionsInvalidPlaceholder:ERROR</compilerArg>
              <compilerArg>-Xep:ProtoFieldPreconditionsCheckNotNull:ERROR</compilerArg>
              <compilerArg>-Xep:RequiredModifiers:ERROR</compilerArg>
              <compilerArg>-Xep:StaticAccessedFromInstance:ERROR</compilerArg>
              <compilerArg>-Xep:StringEquality:ERROR</compilerArg>
              <compilerArg>-Xep:SynchronizeOnNonFinalField:ERROR</compilerArg>
              <compilerArg>-Xep:TypeParameterUnusedInFormals:OFF</compilerArg>  <!-- noisy -->
              <compilerArg>-Xep:UnnecessaryStaticImport:ERROR</compilerArg>
              <compilerArg>-Xep:WaitNotInLoop:ERROR</compilerArg>

              <!-- on by default: error -->
              <compilerArg>-Xep:ArrayEquals:ERROR</compilerArg>
              <compilerArg>-Xep:ArrayHashCode:ERROR</compilerArg>
              <compilerArg>-Xep:ArrayToString:ERROR</compilerArg>
              <compilerArg>-Xep:ArrayToStringCompoundAssignment:ERROR</compilerArg>
              <compilerArg>-Xep:ArrayToStringConcatenation:ERROR</compilerArg>
              <compilerArg>-Xep:AsyncFunctionReturnsNull:ERROR</compilerArg>
              <compilerArg>-Xep:BadShiftAmount:ERROR</compilerArg>
              <compilerArg>-Xep:ChainingConstructorIgnoresParameter:ERROR</compilerArg>
              <compilerArg>-Xep:CheckReturnValue:ERROR</compilerArg>
              <compilerArg>-Xep:ClassName:ERROR</compilerArg>
              <compilerArg>-Xep:ComparisonOutOfRange:ERROR</compilerArg>
              <compilerArg>-Xep:CompileTimeConstant:ERROR</compilerArg>
              <compilerArg>-Xep:DeadException:ERROR</compilerArg>
              <compilerArg>-Xep:DepAnn:ERROR</compilerArg>
              <compilerArg>-Xep:DoubleCheckedLocking:ERROR</compilerArg>
              <compilerArg>-Xep:EqualsNaN:ERROR</compilerArg>
              <compilerArg>-Xep:ForOverride:ERROR</compilerArg>
              <compilerArg>-Xep:GetClassOnClass:ERROR</compilerArg>
              <compilerArg>-Xep:GuardedByChecker:ERROR</compilerArg>
              <compilerArg>-Xep:GuiceAssistedInjectScoping:ERROR</compilerArg>
              <compilerArg>-Xep:HashtableContains:ERROR</compilerArg>
              <compilerArg>-Xep:InvalidPatternSyntax:ERROR</compilerArg>
              <compilerArg>-Xep:IsInstanceOfClass:ERROR</compilerArg>
              <compilerArg>-Xep:JUnit3TestNotRun:ERROR</compilerArg>
              <compilerArg>-Xep:JUnit4SetUpNotRun:ERROR</compilerArg>
              <compilerArg>-Xep:JUnit4TearDownNotRun:ERROR</compilerArg>
              <compilerArg>-Xep:JUnit4TestNotRun:ERROR</compilerArg>
              <compilerArg>-Xep:LongLiteralLowerCaseSuffix:ERROR</compilerArg>
              <compilerArg>-Xep:MisusedWeekYear:ERROR</compilerArg>
              <compilerArg>-Xep:NarrowingCompoundAssignment:ERROR</compilerArg>
              <compilerArg>-Xep:NonCanonicalStaticImport:ERROR</compilerArg>
              <compilerArg>-Xep:NonFinalCompileTimeConstant:ERROR</compilerArg>
              <compilerArg>-Xep:Overrides:ERROR</compilerArg>
              <!-- Disabled because of internal error on Windows with 2.0.5, see https://github.com/google/error-prone/issues/432 -->
              <!-- <compilerArg>-Xep:PackageLocation:WARNING</compilerArg> -->
              <compilerArg>-Xep:PreconditionsCheckNotNull:ERROR</compilerArg>
              <compilerArg>-Xep:PreconditionsCheckNotNullPrimitive:ERROR</compilerArg>
              <compilerArg>-Xep:ProtoFieldNullComparison:ERROR</compilerArg>
              <compilerArg>-Xep:ReturnValueIgnored:ERROR</compilerArg>
              <compilerArg>-Xep:SelfAssignment:ERROR</compilerArg>
              <compilerArg>-Xep:SelfEquals:ERROR</compilerArg>
              <compilerArg>-Xep:SizeGreaterThanOrEqualsZero:ERROR</compilerArg>
              <compilerArg>-Xep:StringBuilderInitWithChar:ERROR</compilerArg>
              <compilerArg>-Xep:SuppressWarningsDeprecated:ERROR</compilerArg>
              <compilerArg>-Xep:TryFailThrowable:ERROR</compilerArg>
              <compilerArg>-Xep:UnnecessaryTypeArgument:ERROR</compilerArg>
              <compilerArg>-Xep:UnusedAnonymousClass:ERROR</compilerArg>

              <!-- experimental: warning -->
              <compilerArg>-Xep:AssertFalse:ERROR</compilerArg>
              <compilerArg>-Xep:AssistedInjectAndInjectOnConstructors:ERROR</compilerArg>
              <compilerArg>-Xep:CollectionIncompatibleType:ERROR</compilerArg>
              <compilerArg>-Xep:GuiceInjectOnFinalField:ERROR</compilerArg>
              <compilerArg>-Xep:MissingFail:ERROR</compilerArg>
              <compilerArg>-Xep:NullablePrimitive:ERROR</compilerArg>
              <compilerArg>-Xep:OverridesGuiceInjectableMethod:OFF</compilerArg>  <!-- internal error with 2.0.5 -->
              <compilerArg>-Xep:PreconditionsErrorMessageEagerEvaluation:OFF</compilerArg>  <!-- internal error with 2.0.5 -->
              <compilerArg>-Xep:PrimitiveArrayPassedToVarargsMethod:ERROR</compilerArg>

              <!-- experimental: not a problem -->
              <compilerArg>-Xep:FallthroughSuppression</compilerArg>

              <!-- experimental: error -->
              <compilerArg>-Xep:ArraysAsListPrimitiveArray:ERROR</compilerArg>
              <compilerArg>-Xep:AssistedInjectAndInjectOnSameConstructor:ERROR</compilerArg>
              <compilerArg>-Xep:ClassCanBeStatic:ERROR</compilerArg>
              <compilerArg>-Xep:DivZero:ERROR</compilerArg>
              <compilerArg>-Xep:EmptyIf:ERROR</compilerArg>
              <compilerArg>-Xep:GuardedByValidator:ERROR</compilerArg>
              <compilerArg>-Xep:GuiceAssistedParameters:ERROR</compilerArg>
              <compilerArg>-Xep:InjectInvalidTargetingOnScopingAnnotation:ERROR</compilerArg>
              <compilerArg>-Xep:InjectMoreThanOneQualifier:OFF</compilerArg>  <!-- noisy -->
              <compilerArg>-Xep:InjectMoreThanOneScopeAnnotationOnClass:ERROR</compilerArg>
              <compilerArg>-Xep:InjectScopeAnnotationOnInterfaceOrAbstractClass:ERROR</compilerArg>
              <compilerArg>-Xep:InjectScopeOrQualifierAnnotationRetention:ERROR</compilerArg>
              <compilerArg>-Xep:InjectedConstructorAnnotations:ERROR</compilerArg>
              <compilerArg>-Xep:JMockTestWithoutRunWithOrRuleAnnotation:ERROR</compilerArg>
              <compilerArg>-Xep:JavaxInjectOnAbstractMethod:ERROR</compilerArg>
              <compilerArg>-Xep:JavaxInjectOnFinalField:ERROR</compilerArg>
              <compilerArg>-Xep:LockMethodChecker:ERROR</compilerArg>
              <compilerArg>-Xep:MalformedFormatString:ERROR</compilerArg>
              <compilerArg>-Xep:MissingCasesInEnumSwitch:OFF</compilerArg>  <!-- noisy -->
              <compilerArg>-Xep:ModifyingCollectionWithItself:ERROR</compilerArg>
              <compilerArg>-Xep:MoreThanOneInjectableConstructor:OFF</compilerArg>  <!-- internal error with 2.0.5 -->
              <compilerArg>-Xep:NoAllocation:ERROR</compilerArg>
              <compilerArg>-Xep:NonRuntimeAnnotation:ERROR</compilerArg>
              <compilerArg>-Xep:NumericEquality:ERROR</compilerArg>
              <compilerArg>-Xep:OverlappingQualifierAndScopeAnnotation:ERROR</compilerArg>
              <compilerArg>-Xep:OverridesJavaxInjectableMethod:OFF</compilerArg>  <!-- internal error with 2.0.5 -->
              <compilerArg>-Xep:ParameterPackage:OFF</compilerArg>  <!-- internal error with 2.0.5 -->
              <compilerArg>-Xep:ProtoStringFieldReferenceEquality:ERROR</compilerArg>
              <compilerArg>-Xep:SelfEquality:ERROR</compilerArg>
              <compilerArg>-Xep:UnlockMethod:ERROR</compilerArg>
              <compilerArg>-Xep:WildcardImport:ERROR</compilerArg>
            </compilerArgs>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>org.codehaus.plexus</groupId>
              <artifactId>plexus-compiler-javac-errorprone</artifactId>
              <version>2.6</version>
            </dependency>
            <dependency>
              <groupId>com.google.errorprone</groupId>
              <artifactId>error_prone_core</artifactId>
              <version>2.0.5</version>
            </dependency>
          </dependencies>
        </plugin>
        <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>512m</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>com.github.spotbugs</groupId>
                <artifactId>spotbugs-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>${surefire.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <version>0.12</version>
        </plugin>
        <plugin>
          <groupId>com.github.spotbugs</groupId>
          <artifactId>spotbugs-maven-plugin</artifactId>
          <version>3.1.3</version>
          <configuration>
            <omitVisitors>
              CloneIdiom,
              ComparatorIdiom,
              DefaultEncodingDetector,
              EqualsOperandShouldHaveClassCompatibleWithThis,
              FindBadCast2,
              FindHEmismatch,
              FindMaskedFields,
              FindNullDeref,
              FindReturnRef,
              FindUnsatisfiedObligation,
              FormatStringChecker,
              MethodReturnCheck,
              Naming,
              NoteUnconditionalParamDerefs,
              RuntimeExceptionCapture,
              SwitchFallthrough,
              UnreadFields,
            </omitVisitors>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.sonatype.maven.plugin</groupId>
          <artifactId>emma-maven-plugin</artifactId>
          <version>1.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>2.9</version>
          <configuration>
            <maxmemory>512m</maxmemory>
            <encoding>${project.build.sourceEncoding}</encoding>
            <quiet>true</quiet>
            <links>
              <link>https://download.oracle.com/javase/6/docs/api/</link>
            </links>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <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>
              <exclude>**/src/test/resources/**/*.crt</exclude>
              <exclude>src/test/resources/html/*.html</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>
              <exclude>**/CONTRIBUTING.md</exclude>

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

              <!-- SSH keys -->
              <exclude>**/test</exclude>
              <exclude>**/test.pub</exclude>
              <exclude>**/src/test/resources/**/ssh-*.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>
              <exclude>**/.java-version</exclude>
              <exclude>**/modernizer_exclusions.txt</exclude>
              <exclude>**/.factorypath</exclude>
              <exclude>**/.apt_generated/**</exclude>
              <exclude>**/.apt_generated_tests/**</exclude>
              <exclude>**/.checkstyle</exclude>
              <exclude>nb-configuration.xml</exclude>
              <exclude>nbactions.xml</exclude>
              <exclude>dependency-reduced-pom.xml</exclude>

              <!-- Temporary files generated on CloudBees slaves -->
              <exclude>.repository/**</exclude>
              <exclude>gc.log</exclude>
            </excludes>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.basepom.maven</groupId>
          <artifactId>duplicate-finder-maven-plugin</artifactId>
          <version>1.1.2</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.9</version>
                  </dependency>
                  <dependency>
                    <groupId>com.jcraft</groupId>
                    <artifactId>jsch.agentproxy.connector-factory</artifactId>
                    <version>0.0.9</version>
                  </dependency>
                </conflictingDependencies>
                <packages>
                  <package>com.jcraft.jsch.agentproxy</package>
                </packages>
              </exception>
              <!--
                TODO: Remove this when the issues are fixed or we have completely moved away from
                      gson.internal
                Due to the following issues:
                  https://issues.apache.org/jira/browse/MSHADE-206
                  https://issues.apache.org/jira/browse/MNG-5899
                The contents of the shaded gson jar are directly included as part of jclouds-core.
                The classes are exactly the same, so it is safe to exclude them here.
              -->
              <exception>
                <conflictingDependencies>
                  <dependency>
                    <groupId>org.apache.jclouds</groupId>
                    <artifactId>jclouds-core</artifactId>
                  </dependency>
                  <dependency>
                    <groupId>org.apache.jclouds</groupId>
                    <artifactId>jclouds-gson</artifactId>
                  </dependency>
                </conflictingDependencies>
                <packages>
                  <package>org.jclouds.json.gson.internal</package>
                </packages>
              </exception>
            </exceptions>
            <ignoredResourcePatterns>
              <!-- For all the jetty packages -->
              <ignoredResourcePattern>about\.html</ignoredResourcePattern>
              <!-- There are several situations where a test-jar and another test-jar or a bundle conflict on these artifacts -->
              <ignoredResourcePattern>log4j.xml</ignoredResourcePattern>
              <ignoredResourcePattern>os.xml</ignoredResourcePattern>
              <ignoredResourcePattern>virtualhardwaresection.xml</ignoredResourcePattern>
              <ignoredResourcePattern>logback.xml</ignoredResourcePattern>
              <ignoredResourcePattern>amzn_images.xml</ignoredResourcePattern>
              <ignoredResourcePattern>test.jks</ignoredResourcePattern>
              <ignoredResourcePattern>test</ignoredResourcePattern>
              <ignoredResourcePattern>CreateInternetService-options-test.xml</ignoredResourcePattern>
              <ignoredResourcePattern>.gitattributes</ignoredResourcePattern>
              <ignoredResourcePattern>functions/.gitattributes</ignoredResourcePattern>
              <ignoredResourcePattern>OSGI-OPT/bnd.bnd</ignoredResourcePattern>
              <!-- For bouncycastle -->
              <ignoredResourcePattern>META-INF/BCKEY.DSA</ignoredResourcePattern>
              <ignoredResourcePattern>META-INF/BCKEY.SF</ignoredResourcePattern>
            </ignoredResourcePatterns>
            <failBuildInCaseOfConflict>true</failBuildInCaseOfConflict>
            <skip>${skipDuplicateFinder}</skip>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
  <reporting>
    <plugins>
      <plugin>
        <!-- When building jclouds-project, override the config to use the local file -->
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <configuration>
          <configLocation>../resources/checkstyle.xml</configLocation>
          <suppressionsLocation>../resources/checkstyle-suppressions.xml</suppressionsLocation>
          <suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
          <includeTestSourceDirectory>true</includeTestSourceDirectory>
          <failOnViolation>true</failOnViolation>
          <failsOnError>true</failsOnError>
          <violationSeverity>warning</violationSeverity>
        </configuration>
      </plugin>
    </plugins>
  </reporting>
  <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
                        https://docs.oracle.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 -->
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <configuration>
              <configLocation>../resources/checkstyle.xml</configLocation>
              <includeTestSourceDirectory>true</includeTestSourceDirectory>
              <failOnViolation>true</failOnViolation>
              <failsOnError>true</failsOnError>
              <violationSeverity>warning</violationSeverity>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.gaul</groupId>
            <artifactId>modernizer-maven-plugin</artifactId>
            <configuration>
              <!-- Fix fiolations before uncommenting
              <javaVersion>${maven.compile.source}</javaVersion>
              -->
              <javaVersion>1.6</javaVersion>
              <!-- in jclouds-project use the local file. ${project.basedir}
                required here as 1.1.0 of the modernizer plugin can't find the
                exclusions file otherwise -->
              <exclusionsFile>${project.basedir}/../resources/modernizer_exclusions.txt</exclusionsFile>
            </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>
              <suppressionsLocation>resources/checkstyle-suppressions.xml</suppressionsLocation>
              <suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
              <includeTestSourceDirectory>true</includeTestSourceDirectory>
              <failOnViolation>true</failOnViolation>
              <failsOnError>true</failsOnError>
              <violationSeverity>warning</violationSeverity>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.gaul</groupId>
            <artifactId>modernizer-maven-plugin</artifactId>
            <dependencies>
              <dependency>
                <groupId>org.apache.jclouds</groupId>
                <artifactId>jclouds-resources</artifactId>
                <version>${project.version}</version>
              </dependency>
            </dependencies>
            <configuration>
              <!-- Fix vioaltions and uncomment again
              <javaVersion>${maven.compile.source}</javaVersion>
              -->
              <javaVersion>1.6</javaVersion>
              <exclusionsFile>resources/modernizer_exclusions.txt</exclusionsFile>
            </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>
                  <goal>test-jar-no-fork</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>jenkins</id>
      <build>
        <plugins>
          <!-- Make sure jclouds is built with the right JDK -->
          <plugin>
            <artifactId>maven-toolchains-plugin</artifactId>
            <version>1.1</version>
            <executions>
              <execution>
                <goals>
                  <goal>toolchain</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <toolchains>
                <jdk>
                  <version>${jdk.version}</version>
                </jdk>
              </toolchains>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
