<!--

    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>11</version>
  </parent>

  <groupId>org.apache.cloudstack</groupId>
  <artifactId>cloudstack</artifactId>
  <version>4.9.3.1</version>
  <packaging>pom</packaging>
  <name>Apache CloudStack</name>
  <description>Apache CloudStack is an IaaS (“Infrastructure as a Service”) cloud orchestration platform.</description>
  <url>http://www.cloudstack.org</url>
  <scm>
    <connection>scm:git:https://git-wip-us.apache.org/repos/asf/cloudstack.git</connection>
    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/cloudstack.git</developerConnection>
  </scm>
  <issueManagement>
    <system>jira</system>
    <url>https://issues.apache.org/jira/browse/CLOUDSTACK</url>
  </issueManagement>

  <repositories>
    <repository>
      <id>juniper-contrail</id>
      <url>http://juniper.github.io/contrail-maven/snapshots</url>
    </repository>
  </repositories>

  <properties>
    <cs.jdk.version>1.7</cs.jdk.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

    <cs.log4j.version>1.2.17</cs.log4j.version>
    <cs.log4j.extras.version>1.2.17</cs.log4j.extras.version>
    <cs.cglib.version>3.2.1</cs.cglib.version>
    <cs.dbcp.version>1.4</cs.dbcp.version>
    <cs.pool.version>1.6</cs.pool.version>
    <cs.codec.version>1.10</cs.codec.version>
    <cs.configuration.version>1.10</cs.configuration.version>
    <cs.collections.version>3.2.2</cs.collections.version>
    <cs.logging.version>1.1.1</cs.logging.version>
    <cs.discovery.version>0.5</cs.discovery.version>
    <cs.ejb.version>3.0</cs.ejb.version>
    <!-- do not forget to also upgrade hamcrest library with junit -->
    <cs.junit.version>4.12</cs.junit.version>
    <cs.hamcrest.version>1.3</cs.hamcrest.version>
    <cs.junit.dataprovider.version>1.10.0</cs.junit.dataprovider.version>
    <cs.bcprov.version>1.59</cs.bcprov.version>
    <cs.jsch.version>0.1.53</cs.jsch.version>
    <cs.jpa.version>2.1.1</cs.jpa.version>
    <cs.jasypt.version>1.9.2</cs.jasypt.version>
    <cs.trilead.version>1.0.0-build220</cs.trilead.version>
    <cs.ehcache.version>2.6.11</cs.ehcache.version>
    <cs.gson.version>1.7.2</cs.gson.version>
    <cs.guava-testlib.version>18.0</cs.guava-testlib.version>
    <cs.guava.version>19.0</cs.guava.version>
    <cs.xapi.version>6.2.0-3.1</cs.xapi.version>
    <cs.httpclient.version>4.5.2</cs.httpclient.version>
    <cs.httpcore.version>4.4.4</cs.httpcore.version>
    <cs.commons-httpclient.version>3.1</cs.commons-httpclient.version>
    <cs.mysql.version>5.1.34</cs.mysql.version>
    <cs.xstream.version>1.4.9</cs.xstream.version>
    <cs.xmlrpc.version>3.1.3</cs.xmlrpc.version>
    <cs.mail.version>1.5.0-b01</cs.mail.version>
    <cs.axis.version>1.4</cs.axis.version>
    <cs.axis2.version>1.5.6</cs.axis2.version>
    <cs.rampart.version>1.5.1</cs.rampart.version>
    <cs.axiom.version>1.2.8</cs.axiom.version>
    <cs.neethi.version>2.0.4</cs.neethi.version>
    <cs.servlet.version>3.1.0</cs.servlet.version>
    <cs.jstl.version>1.2</cs.jstl.version>
    <cs.jstl-api.version>1.2.1</cs.jstl-api.version>
    <cs.selenium.server.version>1.0-20081010.060147</cs.selenium.server.version>
    <cs.vmware.api.version>6.0</cs.vmware.api.version>
    <org.springframework.version>3.2.16.RELEASE</org.springframework.version>
    <cs.mockito.version>1.10.19</cs.mockito.version>
    <cs.powermock.version>1.6.4</cs.powermock.version>
    <cs.aws.sdk.version>1.10.64</cs.aws.sdk.version>
    <cs.jackson.version>2.7.1</cs.jackson.version>
    <cs.lang.version>2.6</cs.lang.version>
    <cs.commons-lang3.version>3.4</cs.commons-lang3.version>
    <cs.commons-io.version>2.4</cs.commons-io.version>
    <cs.commons-fileupload.version>1.3.1</cs.commons-fileupload.version>
    <cs.commons-collections.version>3.2.2</cs.commons-collections.version>
    <cs.commons-validator.version>1.5.0</cs.commons-validator.version>
    <cs.reflections.version>0.9.10</cs.reflections.version>
    <cs.javassist.version>3.18.2-GA</cs.javassist.version>
    <cs.java-ipv6.version>0.16</cs.java-ipv6.version>
    <cs.replace.properties>build/replace.properties</cs.replace.properties>
    <cs.libvirt-java.version>0.5.1</cs.libvirt-java.version>
    <cs.rados-java.version>0.2.0</cs.rados-java.version>
    <cs.target.dir>target</cs.target.dir>
    <cs.daemon.version>1.0.15</cs.daemon.version>
    <cs.jna.version>4.0.0</cs.jna.version>
    <cs.checkstyle.version>2.17</cs.checkstyle.version>
    <cs.mycila.license.version>2.11</cs.mycila.license.version>
    <cs.findbugs.version>3.0.3</cs.findbugs.version>
    <cs.javadoc.version>2.10.3</cs.javadoc.version>
    <cs.opensaml.version>2.6.4</cs.opensaml.version>
    <cs.xml-apis.version>1.4.01</cs.xml-apis.version>
    <cs.joda-time.version>2.8.1</cs.joda-time.version>
    <cs.batik.version>1.8</cs.batik.version>
    <cs.servicemix.version>2.3.4_1</cs.servicemix.version>
    <cs.jetty.version>9.2.15.v20160210</cs.jetty.version>
    <cs.cxf.version>3.1.4</cs.cxf.version>
    <cs.groovy.version>2.4.6</cs.groovy.version>
    <cs.apache-jsp.version>9.2.15.v20160210</cs.apache-jsp.version>
    <cs.nitro.version>10.1</cs.nitro.version>
  </properties>

  <distributionManagement>
    <site>
      <id>apache.cloudstack.site</id>
      <url>${site.deploy.url}</url>
    </site>
  </distributionManagement>

  <inceptionYear>2012</inceptionYear>

  <mailingLists>
    <mailingList>
      <name>Apache CloudStack User List</name>
      <subscribe>users-subscribe@cloudstack.apache.org</subscribe>
      <unsubscribe>users-unsubscribe@cloudstack.apache.org</unsubscribe>
      <post>users@cloudstack.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/cloudstack-users</archive>
      <otherArchives>
        <otherArchive>http://mail-archives.apache.org/mod_mbox/incubator-cloudstack-users</otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>Apache CloudStack Developer List</name>
      <subscribe>dev-subscribe@cloudstack.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@cloudstack.apache.org</unsubscribe>
      <post>dev@cloudstack.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/cloudstack-dev</archive>
      <otherArchives>
        <otherArchive>http://mail-archives.apache.org/mod_mbox/incubator-cloudstack-dev</otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>Apache CloudStack Commits List</name>
      <subscribe>commits-subscribe@cloudstack.apache.org</subscribe>
      <unsubscribe>commits-unsubscribe@cloudstack.apache.org</unsubscribe>
      <post>commits@cloudstack.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/cloudstack-commits</archive>
      <otherArchives>
        <otherArchive>http://mail-archives.apache.org/mod_mbox/incubator-cloudstack-commits</otherArchive>
      </otherArchives>
    </mailingList>
  </mailingLists>

  <developers>
    <developer>
      <name>The Apache CloudStack Team</name>
      <email>dev@cloudstack.apache.org</email>
      <url>http://cloudstack.apache.org/</url>
      <organization>Apache Software Foundation</organization>
      <organizationUrl>http://apache.org/</organizationUrl>
    </developer>
  </developers>

  <ciManagement>
    <system>Jenkins</system>
    <url>http://builds.apache.org/</url>
  </ciManagement>

  <licenses>
    <license>
      <name>The Apache Software License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <organization>
    <name>The Apache Software Foundation</name>
    <url>http://www.apache.org/</url>
  </organization>

  <modules>
    <module>tools/checkstyle</module>
    <module>api</module>
    <module>agent</module>
    <module>core</module>
    <module>server</module>
    <module>usage</module>
    <module>utils</module>
    <module>engine</module>
    <module>plugins</module>
    <module>framework</module>
    <module>client</module>
    <module>services</module>
    <module>maven-standard</module>
    <module>quickcloud</module>
  </modules>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>apache-jsp</artifactId>
        <version>${cs.apache-jsp.version}</version>
      </dependency>
      <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-all</artifactId>
        <version>${cs.groovy.version}</version>
      </dependency>
      <dependency>
        <groupId>org.bouncycastle</groupId>
        <artifactId>bcprov-jdk15on</artifactId>
        <version>${cs.bcprov.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.xmlgraphics</groupId>
        <artifactId>batik-css</artifactId>
        <version>${cs.batik.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.xmlgraphics</groupId>
        <artifactId>batik-ext</artifactId>
        <version>${cs.batik.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.xmlgraphics</groupId>
        <artifactId>batik-util</artifactId>
        <version>${cs.batik.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-collections</groupId>
        <artifactId>commons-collections</artifactId>
        <version>${cs.commons-collections.version}</version>
      </dependency>
      <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${cs.mysql.version}</version>
        <scope>provided,test</scope>
      </dependency>
      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${cs.log4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${org.springframework.version}</version>
      </dependency>
      <dependency>
        <groupId>cglib</groupId>
        <artifactId>cglib-nodep</artifactId>
        <version>${cs.cglib.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-dbcp</groupId>
        <artifactId>commons-dbcp</artifactId>
        <version>${cs.dbcp.version}</version>
        <exclusions>
          <exclusion>
            <artifactId>commons-pool</artifactId>
            <groupId>commons-pool</groupId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>net.sf.ehcache</groupId>
        <artifactId>ehcache-core</artifactId>
        <version>${cs.ehcache.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>${cs.codec.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>${cs.commons-fileupload.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-pool</groupId>
        <artifactId>commons-pool</artifactId>
        <version>${cs.pool.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-validator</groupId>
        <artifactId>commons-validator</artifactId>
        <version>${cs.commons-validator.version}</version>
      </dependency>
      <dependency>
        <groupId>com.jcraft</groupId>
        <artifactId>jsch</artifactId>
        <version>${cs.jsch.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jasypt</groupId>
        <artifactId>jasypt</artifactId>
        <version>${cs.jasypt.version}</version>
      </dependency>
      <dependency>
        <groupId>com.trilead</groupId>
        <artifactId>trilead-ssh2</artifactId>
        <version>${cs.trilead.version}</version>
      </dependency>
      <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk</artifactId>
        <version>${cs.aws.sdk.version}</version>
      </dependency>
      <dependency>
        <groupId>log4j</groupId>
        <artifactId>apache-log4j-extras</artifactId>
        <version>${cs.log4j.extras.version}</version>
        <exclusions>
          <exclusion>
            <artifactId>log4j</artifactId>
            <groupId>log4j</groupId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>javax.ejb</groupId>
        <artifactId>ejb-api</artifactId>
        <version>${cs.ejb.version}</version>
      </dependency>
      <dependency>
        <groupId>com.googlecode.java-ipv6</groupId>
        <artifactId>java-ipv6</artifactId>
        <version>${cs.java-ipv6.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-configuration</groupId>
        <artifactId>commons-configuration</artifactId>
        <version>${cs.configuration.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>${cs.commons-io.version}</version>
      </dependency>
      <!-- Test dependency in mysql for db tests -->
      <dependency>
        <groupId>org.reflections</groupId>
        <artifactId>reflections</artifactId>
        <version>${cs.reflections.version}</version>
      </dependency>
      <dependency>
        <groupId>org.javassist</groupId>
        <artifactId>javassist</artifactId>
        <version>${cs.javassist.version}</version>
      </dependency>
      <dependency>
        <groupId>org.owasp.esapi</groupId>
        <artifactId>esapi</artifactId>
        <version>2.1.0.1</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>javax.persistence</artifactId>
        <version>${cs.jpa.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${org.springframework.version}</version>
      </dependency>
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>${cs.servlet.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore</artifactId>
        <version>${cs.httpcore.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>${cs.httpclient.version}</version>
      </dependency>
      <dependency>
        <groupId>com.thoughtworks.xstream</groupId>
        <artifactId>xstream</artifactId>
        <version>${cs.xstream.version}</version>
      </dependency>
      <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>${cs.mail.version}</version>
      </dependency>
      <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>${cs.jstl.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
        <version>${org.springframework.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${org.springframework.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>${cs.gson.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>${cs.guava.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.servicemix.bundles</groupId>
        <artifactId>org.apache.servicemix.bundles.snmp4j</artifactId>
        <version>${cs.servicemix.version}</version>
      </dependency>
      <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjtools</artifactId>
        <version>1.8.9</version>
      </dependency>
      <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>1.8.9</version>
      </dependency>
      <dependency>
        <groupId>org.apache.axis</groupId>
        <artifactId>axis</artifactId>
        <version>${cs.axis.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-daemon</groupId>
        <artifactId>commons-daemon</artifactId>
        <version>${cs.daemon.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.axis</groupId>
        <artifactId>axis-jaxrpc</artifactId>
        <version>${cs.axis.version}</version>
      </dependency>
      <dependency>
        <groupId>wsdl4j</groupId>
        <artifactId>wsdl4j</artifactId>
        <version>1.6.3</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.21</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.21</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <dependency>
      <groupId>org.hamcrest</groupId>
      <artifactId>hamcrest-all</artifactId>
      <version>${cs.hamcrest.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-all</artifactId>
      <version>${cs.mockito.version}</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>hamcrest-core</artifactId>
          <groupId>org.hamcrest</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>${cs.junit.version}</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>hamcrest-core</artifactId>
          <groupId>org.hamcrest</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>com.tngtech.java</groupId>
      <artifactId>junit-dataprovider</artifactId>
      <version>${cs.junit.dataprovider.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.powermock</groupId>
      <artifactId>powermock-module-junit4</artifactId>
      <version>${cs.powermock.version}</version>
    </dependency>
    <dependency>
      <groupId>org.powermock</groupId>
      <artifactId>powermock-api-mockito</artifactId>
      <version>${cs.powermock.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>${org.springframework.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>javax.inject</groupId>
      <artifactId>javax.inject</artifactId>
      <version>1</version>
    </dependency>
  </dependencies>

  <build>
    <defaultGoal>install</defaultGoal>
    <sourceDirectory>src</sourceDirectory>
    <testSourceDirectory>test</testSourceDirectory>
    <resources>
      <resource>
        <directory>${basedir}/resources</directory>
      </resource>
    </resources>
    <testResources>
      <testResource>
        <directory>test/resources</directory>
      </testResource>
    </testResources>
    <outputDirectory>${basedir}/${cs.target.dir}/classes</outputDirectory>
    <testOutputDirectory>${basedir}/${cs.target.dir}/test-classes</testOutputDirectory>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <executions>
          <execution>
            <id>cloudstack-checkstyle</id>
            <phase>none</phase>
            <inherited>false</inherited>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>com.mycila</groupId>
        <artifactId>license-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>cloudstack-checklicence</id>
            <phase>none</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>cloudstack-findbugs</id>
            <phase>none</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>${cs.checkstyle.version}</version>
          <dependencies>
            <dependency>
              <groupId>org.apache.cloudstack</groupId>
              <artifactId>checkstyle</artifactId>
              <version>${project.version}</version>
            </dependency>
          </dependencies>
          <executions>
            <execution>
              <id>cloudstack-checkstyle</id>
              <phase>validate</phase>
              <goals>
                <goal>check</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <failsOnError>true</failsOnError>
            <configLocation>cloud-style.xml</configLocation>
            <consoleOutput>true</consoleOutput>
            <includeTestSourceDirectory>true</includeTestSourceDirectory>
            <sourceDirectory>${project.basedir}</sourceDirectory>
            <includes>**\/*.java</includes>
            <excludes>**\/deps\/,**\/test\/,**\/target\/,**\/bin\/,**\/*.xml,**\/*.ini,**\/*.sh,**\/*.bat,**\/apidoc\/</excludes>
          </configuration>
        </plugin>
        <plugin>
          <groupId>com.mycila</groupId>
          <artifactId>license-maven-plugin</artifactId>
          <version>${cs.mycila.license.version}</version>
          <executions>
            <execution>
              <id>cloudstack-checklicence</id>
              <phase>process-classes</phase>
              <goals>
                <goal>check</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <strictCheck>true</strictCheck>
            <aggregate>true</aggregate>
            <header>LICENSE.header</header>
            <mapping>
              <xml>XML_STYLE</xml>
              <java>DOUBLESLASH_STYLE</java>
              <clj>SEMICOLON_STYLE</clj>
            </mapping>
            <useDefaultExcludes>false</useDefaultExcludes>
            <excludes>
              <exclude>**/target/**</exclude>
              <exclude>.settings/**</exclude>
              <exclude>.checkstyle</exclude>
              <exclude>.project</exclude>
              <exclude>.classpath</exclude>
              <exclude>.pmd*</exclude>
            </excludes>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <configuration>
            <excludeDefaultDirectories>true</excludeDefaultDirectories>
            <filesets>
              <fileset>
                <directory>${cs.target.dir}</directory>
                <includes>
                  <include>**/*</include>
                </includes>
              </fileset>
              <fileset>
                <directory>dist</directory>
                <includes>
                  <include>**/*</include>
                </includes>
              </fileset>
              <fileset>
                <directory>${basedir}</directory>
                <includes>
                  <include>${cs.target.dir}</include>
                  <include>dist</include>
                </includes>
              </fileset>
            </filesets>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>2.5.1</version>
          <executions>
            <execution>
              <id>default</id>
              <goals>
                <goal>perform</goal>
              </goals>
              <configuration>
                <pomFileName>pom.xml</pomFileName>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build
          itself. -->
        <plugin>
          <groupId>org.eclipse.m2e</groupId>
          <artifactId>lifecycle-mapping</artifactId>
          <version>1.0.0</version>
          <configuration>
            <lifecycleMappingMetadata>
              <pluginExecutions>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <versionRange>[1.7,)</versionRange>
                    <goals>
                      <goal>run</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore/>
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <versionRange>[2.0,)</versionRange>
                    <goals>
                      <goal>copy-dependencies</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore/>
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>com.mycila</groupId>
                    <artifactId>license-maven-plugin</artifactId>
                    <versionRange>[2.5,)</versionRange>
                    <goals>
                      <goal>format</goal>
                      <goal>check</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore></ignore>
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.codehaus.gmaven</groupId>
                    <artifactId>gmaven-plugin</artifactId>
                    <versionRange>[1.3,)</versionRange>
                    <goals>
                      <goal>compile</goal>
                      <goal>testCompile</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore></ignore>
                  </action>
                </pluginExecution>
                <pluginExecution>
			<pluginExecutionFilter>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-checkstyle-plugin</artifactId>
				<versionRange>[2.11,)</versionRange>
				<goals>
					<goal>check</goal>
				</goals>
			</pluginExecutionFilter>
			<action>
				<ignore></ignore>
			</action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat7-maven-plugin</artifactId>
          <version>2.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>1.8</version>
        </plugin>
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <configuration>
            <numUnapprovedLicenses>0</numUnapprovedLicenses>
            <excludeSubProjects>false</excludeSubProjects>
            <excludes>
              <exclude>CHANGES.md</exclude>
              <exclude>README.md</exclude>
              <exclude>INSTALL.md</exclude>
              <exclude>CONTRIBUTING.md</exclude>
              <exclude>tools/docker/Dockerfile</exclude>
              <exclude>tools/docker/supervisord.conf</exclude>
              <exclude>.java-version</exclude>
              <exclude>.python-version</exclude>
              <exclude>.idea/</exclude>
              <exclude>**/*.log</exclude>
              <exclude>**/*.patch</exclude>
              <exclude>**/.classpath</exclude>
              <exclude>**/.project</exclude>
              <exclude>**/.idea/**</exclude>
              <exclude>**/*.iml</exclude>
              <exclude>**/.settings/**</exclude>
              <exclude>.metadata/**</exclude>
              <exclude>.git/**</exclude>
              <exclude>.gitignore</exclude>
              <exclude>**/*.crt</exclude>
              <exclude>**/*.csr</exclude>
              <exclude>**/*.key</exclude>
              <exclude>**/authorized_keys</exclude>
              <exclude>**/*.war</exclude>
              <exclude>**/*.mar</exclude>
              <exclude>**/*.jar</exclude>
              <exclude>**/*.iso</exclude>
              <exclude>**/*.tgz</exclude>
              <exclude>**/*.zip</exclude>
              <exclude>**/target/**</exclude>
              <exclude>**/.vagrant</exclude>
              <exclude>**/*.json</exclude>
              <exclude>build/build.number</exclude>
              <exclude>services/console-proxy/server/js/jquery.js</exclude>
              <exclude>debian/cloudstack-usage.dirs</exclude>
              <exclude>debian/cloudstack-agent.dirs</exclude>
              <exclude>debian/compat</exclude>
              <exclude>debian/control</exclude>
              <exclude>debian/dirs</exclude>
              <exclude>debian/rules</exclude>
              <exclude>debian/source/format</exclude>
              <exclude>dist/console-proxy/js/jquery.js</exclude>
              <exclude>plugins/hypervisors/hyperv/DotNet/ServerResource/ServerResource.sln</exclude>
              <exclude>plugins/hypervisors/hyperv/DotNet/ServerResource/packages/**</exclude>
              <exclude>plugins/hypervisors/hyperv/DotNet/ServerResource/.nuget/**</exclude>
              <exclude>plugins/hypervisors/hyperv/DotNet/ServerResource/**/obj/**</exclude>
              <exclude>plugins/hypervisors/hyperv/DotNet/ServerResource/**/bin/**</exclude>
              <exclude>plugins/hypervisors/hyperv/DotNet/ServerResource/**/packages.config</exclude>
              <exclude>plugins/hypervisors/hyperv/DotNet/ServerResource/**/App.config</exclude>
              <exclude>plugins/hypervisors/hyperv/DotNet/ServerResource/**/*.csproj</exclude>
              <exclude>plugins/hypervisors/hyperv/DotNet/ServerResource/**/*.settings</exclude>
              <exclude>plugins/hypervisors/hyperv/conf/agent.properties</exclude>
              <exclude>scripts/vm/systemvm/id_rsa.cloud</exclude>
              <exclude>services/console-proxy/server/conf/agent.properties</exclude>
              <exclude>services/console-proxy/server/conf/environment.properties</exclude>
              <exclude>services/secondary-storage/conf/agent.properties</exclude>
              <exclude>services/secondary-storage/conf/environment.properties</exclude>
              <exclude>test/systemvm/README.md</exclude>
              <exclude>tools/appliance/.ruby-version</exclude>
              <exclude>tools/vagrant/systemvm/vagrant.pub</exclude>
              <exclude>tools/vagrant/systemvm/.ruby-version</exclude>
              <exclude>tools/devcloud/basebuild/puppet-devcloudinitial/files/network.conf</exclude>
              <exclude>tools/appliance/definitions/devcloud/*</exclude>
              <exclude>tools/appliance/definitions/systemvmtemplate/*</exclude>
              <exclude>tools/appliance/definitions/systemvm64template/*</exclude>
              <exclude>tools/appliance/definitions/builtin/*</exclude>
              <exclude>tools/cli/cloudmonkey.egg-info/*</exclude>
              <exclude>tools/devcloud/src/deps/boxes/basebox-build/definition.rb</exclude>
              <exclude>tools/devcloud/src/deps/boxes/basebox-build/preseed.cfg</exclude>
              <exclude>tools/marvin/Marvin.egg-info/*</exclude>
              <exclude>ui/css/token-input-facebook.css</exclude>
              <exclude>ui/lib/flot/jquery.colorhelpers.js</exclude>
              <exclude>ui/lib/flot/jquery.flot.crosshair.js</exclude>
              <exclude>ui/lib/flot/jquery.flot.fillbetween.js</exclude>
              <exclude>ui/lib/flot/jquery.flot.image.js</exclude>
              <exclude>ui/lib/flot/jquery.flot.js</exclude>
              <exclude>ui/lib/flot/jquery.flot.navigate.js</exclude>
              <exclude>ui/lib/flot/jquery.flot.pie.js</exclude>
              <exclude>ui/lib/flot/jquery.flot.resize.js</exclude>
              <exclude>ui/lib/flot/jquery.flot.selection.js</exclude>
              <exclude>ui/lib/flot/jquery.flot.stack.js</exclude>
              <exclude>ui/lib/flot/jquery.flot.symbol.js</exclude>
              <exclude>ui/lib/flot/jquery.flot.threshold.js</exclude>
              <exclude>ui/lib/jquery-ui/css/jquery-ui.css</exclude>
              <exclude>ui/lib/jquery-ui/index.html</exclude>
              <exclude>ui/lib/jquery-ui/js/jquery-ui.js</exclude>
              <exclude>ui/lib/jquery.cookies.js</exclude>
              <exclude>ui/lib/jquery.easing.js</exclude>
              <exclude>ui/lib/jquery.js</exclude>
              <exclude>ui/lib/jquery.md5.js</exclude>
              <exclude>ui/lib/jquery.validate.js</exclude>
              <exclude>ui/lib/jquery.tokeninput.js</exclude>
              <exclude>ui/lib/qunit/qunit.css</exclude>
              <exclude>ui/lib/qunit/qunit.js</exclude>
              <exclude>ui/lib/reset.css</exclude>
              <exclude>ui/lib/require.js</exclude>
              <exclude>utils/testsmallfileinactive</exclude>
              <exclude>systemvm/conf/agent.properties</exclude>
              <exclude>systemvm/conf/environment.properties</exclude>
              <exclude>systemvm/js/jquery.js</exclude>
              <exclude>systemvm/patches/debian/systemvm.vmx</exclude>
              <exclude>systemvm/patches/debian/config/root/.ssh/authorized_keys</exclude>
              <exclude>systemvm/patches/debian/config/etc/apache2/httpd.conf</exclude>
              <exclude>systemvm/patches/debian/config/etc/apache2/vhost.template</exclude>
              <exclude>systemvm/patches/debian/config/etc/dnsmasq.conf.tmpl</exclude>
              <exclude>systemvm/patches/debian/config/etc/vpcdnsmasq.conf</exclude>
              <exclude>systemvm/patches/debian/config/etc/ssh/sshd_config</exclude>
              <exclude>systemvm/patches/debian/config/etc/rsyslog.conf</exclude>
              <exclude>systemvm/patches/debian/config/etc/logrotate.conf</exclude>
              <exclude>systemvm/patches/debian/config/etc/logrotate.d/*</exclude>
              <exclude>systemvm/patches/debian/config/etc/sysctl.conf</exclude>
              <exclude>systemvm/patches/debian/config/root/redundant_router/keepalived.conf.templ</exclude>
              <exclude>systemvm/patches/debian/config/root/redundant_router/arping_gateways.sh.templ</exclude>
              <exclude>systemvm/patches/debian/config/root/redundant_router/conntrackd.conf.templ</exclude>
              <exclude>systemvm/patches/debian/vpn/etc/ipsec.conf</exclude>
              <exclude>systemvm/patches/debian/vpn/etc/ppp/options.xl2tpd</exclude>
              <exclude>systemvm/patches/debian/vpn/etc/xl2tpd/xl2tpd.conf</exclude>
              <exclude>systemvm/patches/debian/vpn/etc/ipsec.secrets</exclude>
              <exclude>systemvm/patches/debian/config/etc/haproxy/haproxy.cfg</exclude>
              <exclude>systemvm/patches/debian/config/etc/cloud-nic.rules</exclude>
              <exclude>systemvm/patches/debian/config/etc/modprobe.d/aesni_intel</exclude>
              <exclude>systemvm/patches/debian/config/etc/rc.local</exclude>
              <exclude>systemvm/patches/debian/config/var/www/html/userdata/.htaccess</exclude>
              <exclude>systemvm/patches/debian/config/var/www/html/latest/.htaccess</exclude>
              <exclude>systemvm/patches/debian/vpn/etc/ipsec.d/l2tp.conf</exclude>
              <exclude>tools/transifex/.tx/config</exclude>
              <exclude>tools/logo/apache_cloudstack.png</exclude>
              <exclude>tools/marvin/marvin/sandbox/advanced/sandbox.cfg</exclude>
              <exclude>tools/ngui/static/bootstrap/*</exclude>
              <exclude>tools/ngui/static/js/lib/*</exclude>
              <exclude>**/.checkstyle</exclude>
              <exclude>scripts/installer/windows/acs_license.rtf</exclude>
              <exclude>**/*.md</exclude>
              <exclude>test/integration/component/test_host_ha.sh</exclude>
            </excludes>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.2</version>
          <configuration>
            <source>${cs.jdk.version}</source>
            <target>${cs.jdk.version}</target>
            <fork>true</fork>
            <meminitial>128m</meminitial>
            <maxmem>512m</maxmem>
            <compilerArgument>-XDignore.symbol.file=true</compilerArgument>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>2.5</version>
          <configuration>
            <archive>
              <manifest>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
              </manifest>
            </archive>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>1.9.1</version>
          <executions>
            <execution>
              <id>remove-old-installers</id>
              <goals>
                <goal>remove-project-artifact</goal>
              </goals>
              <configuration>
                <removeAll>true</removeAll>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>2.9</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>cobertura-maven-plugin</artifactId>
          <configuration>
            <formats>
              <format>html</format>
              <format>xml</format>
            </formats>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>findbugs-maven-plugin</artifactId>
          <version>${cs.findbugs.version}</version>
          <dependencies>
            <dependency>
              <groupId>org.apache.cloudstack</groupId>
              <artifactId>checkstyle</artifactId>
              <version>${project.version}</version>
            </dependency>
          </dependencies>
          <configuration>
            <effort>Max</effort>
            <threshold>High</threshold>
            <xmlOutput>true</xmlOutput>
            <failOnError>false</failOnError>
            <maxHeap>2048</maxHeap>
            <excludeFilterFile>findbugsExcludeFilter.xml</excludeFilterFile>
          </configuration>
          <executions>
            <execution>
              <id>cloudstack-findbugs</id>
              <goals>
                <goal>check</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-pmd-plugin</artifactId>
          <version>3.3</version>
          <dependencies>
            <dependency>
              <groupId>org.apache.cloudstack</groupId>
              <artifactId>checkstyle</artifactId>
              <version>${project.version}</version>
            </dependency>
          </dependencies>
          <configuration>
            <failOnViolation>false</failOnViolation>
            <rulesets>
              <ruleset>cloud-pmd.xml</ruleset>
            </rulesets>
          </configuration>
          <executions>
            <execution>
              <id>cloudstack-pmd</id>
              <goals>
                <goal>check</goal>
                <goal>cpd-check</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.18.1</version>
          <configuration>
            <argLine>-Djava.security.egd=file:/dev/./urandom -noverify</argLine>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-failsafe-plugin</artifactId>
          <version>2.18.1</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
        <version>${cs.findbugs.version}</version>
        <configuration>
          <threshold>Low</threshold><!-- High|Normal|Low|Exp|Ignore -->
          <effort>Default</effort><!-- Min|Default|Max -->
          <excludeFilterFile>${basedir}/findbugsExcludeFilter.xml</excludeFilterFile>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>${cs.javadoc.version}</version>
        <configuration>
          <minmemory>128m</minmemory>
          <maxmemory>1g</maxmemory>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <version>2.7</version>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>cobertura-maven-plugin</artifactId>
        <version>2.6</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <version>3.4</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.7</version>
      </plugin>
    </plugins>
  </reporting>
  <profiles>
    <profile>
      <id>systemvm</id>
      <activation>
        <property>
          <name>systemvm</name>
        </property>
      </activation>
      <modules>
        <module>systemvm</module>
      </modules>
    </profile>
    <profile>
      <id>eclipse</id>
      <properties>
        <cs.target.dir>target-eclipse</cs.target.dir>
      </properties>
    </profile>
    <profile>
      <id>developer</id>
      <properties>
        <marvin.config>tools/devcloud/devcloud.cfg</marvin.config>
      </properties>
      <modules>
        <module>test</module>
        <module>developer</module>
        <module>tools</module>
      </modules>
    </profile>
    <profile>
      <id>impatient</id>
      <properties>
        <marvin.config>tools/devcloud/devcloud.cfg</marvin.config>
      </properties>
      <modules>
        <module>developer</module>
      </modules>
    </profile>
    <profile>
      <id>vmware</id>
      <activation>
        <property>
          <name>noredist</name>
        </property>
      </activation>
      <modules>
        <module>vmware-base</module>
      </modules>
    </profile>
    <profile>
      <id>disablecheckstyle</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <executions>
              <execution>
                <id>cloudstack-checkstyle</id>
                <phase>none</phase>
                <inherited>true</inherited>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>enablefindbugs</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>findbugs-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>cloudstack-findbugs</id>
                <phase>process-classes</phase>
                <inherited>true</inherited>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>buildw</id>
      <activation>
        <property>
          <name>buildw</name>
        </property>
      </activation>
      <modules>
        <module>tools/wix-cloudstack-maven-plugin</module>
      </modules>
    </profile>
  </profiles>
</project>
