<?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-SNAPSHOT</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>HEAD</tag>
  </scm>

  <repositories>
    <repository>
      <id>apache-snapshots</id>
      <url>https://repository.apache.org/content/repositories/snapshots</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
  </repositories>

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