<!-- 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.2.0-SNAPSHOT</version>
  <packaging>pom</packaging>
  <name>Apache CloudStack</name>
  <description>Apache CloudStack is an IaaS (“Infrastracture 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>

  <properties>
    <!--skipTests>true</skipTests -->
    <cs.jdk.version>1.6</cs.jdk.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <cs.log4j.version>1.2.16</cs.log4j.version>
    <cs.log4j.extras.version>1.1</cs.log4j.extras.version>
    <cs.cglib.version>2.2.2</cs.cglib.version>
    <cs.dbcp.version>1.4</cs.dbcp.version>
    <cs.pool.version>1.6</cs.pool.version>
    <cs.codec.version>1.6</cs.codec.version>
    <cs.configuration.version>1.8</cs.configuration.version>
    <cs.collections.version>3.2.1</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>
    <cs.junit.version>4.10</cs.junit.version>
    <cs.bcprov.version>1.46</cs.bcprov.version>
    <cs.jsch.version>0.1.42</cs.jsch.version>
    <cs.jpa.version>2.0.0</cs.jpa.version>
    <cs.jasypt.version>1.9.0</cs.jasypt.version>
    <cs.trilead.version>build213-svnkit-1.3-patch</cs.trilead.version>
    <cs.ehcache.version>1.5.0</cs.ehcache.version>
    <cs.gson.version>1.7.1</cs.gson.version>
    <cs.guava.version>14.0-rc1</cs.guava.version>
    <cs.xapi.version>5.6.100-1-SNAPSHOT</cs.xapi.version>
    <cs.httpclient.version>3.1</cs.httpclient.version>
    <cs.httpcore.version>4.2.1</cs.httpcore.version>
    <cs.mysql.version>5.1.21</cs.mysql.version>
    <cs.xstream.version>1.3.1</cs.xstream.version>
    <cs.xmlrpc.version>3.1.3</cs.xmlrpc.version>
    <cs.mail.version>1.4</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>2.4</cs.servlet.version>
    <cs.jstl.version>1.2</cs.jstl.version>
    <cs.selenium.server.version>1.0-20081010.060147</cs.selenium.server.version>
    <cs.vmware.api.version>5.1</cs.vmware.api.version>
    <org.springframework.version>3.1.2.RELEASE</org.springframework.version>
    <cs.mockito.version>1.9.5</cs.mockito.version>
    <cs.aws.sdk.version>1.3.21.1</cs.aws.sdk.version>
    <cs.lang.version>2.6</cs.lang.version>
    <cs.commons-io.version>1.4</cs.commons-io.version>
    <cs.reflections.version>0.9.8</cs.reflections.version>
    <cs.java-ipv6.version>0.10</cs.java-ipv6.version>
    <cs.replace.properties>build/replace.properties</cs.replace.properties>
    <cs.libvirt-java.version>0.4.9</cs.libvirt-java.version>
    <cs.rados-java.version>0.1.1</cs.rados-java.version>
    <cs.target.dir>target</cs.target.dir>
    <cs.daemon.version>1.0.10</cs.daemon.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>api</module>
    <module>agent</module>
    <module>core</module>
    <module>server</module>
    <module>usage</module>
    <module>utils</module>
    <module>deps/XenServerJava</module>
    <module>engine</module>
    <module>plugins</module>
    <module>patches</module>
    <module>framework</module>
    <module>test</module>
    <module>client</module>
    <module>services</module>
  </modules>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${cs.mysql.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>${cs.junit.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>${org.springframework.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${org.springframework.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${org.springframework.version}</version>
    </dependency>
    <!-- <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> 
      <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> 
      <artifactId>spring-beans</artifactId> <version>${org.springframework.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-context-support</artifactId> <version>${org.springframework.version}</version> 
      </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> 
      <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> 
      <artifactId>spring-jdbc</artifactId> <version>${org.springframework.version}</version> 
      </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> 
      <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> 
      <artifactId>spring-oxm</artifactId> <version>${org.springframework.version}</version> 
      </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> 
      <version>${org.springframework.version}</version> </dependency> -->
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-all</artifactId>
      <version>1.9.5</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>org.aspectj</groupId>
      <artifactId>aspectjrt</artifactId>
      <version>1.7.1</version>
    </dependency>
    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjweaver</artifactId>
      <version>1.7.1</version>
    </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>
    <testResources>
      <testResource>
        <directory>test/resources</directory>
      </testResource>
    </testResources>
    <outputDirectory>${basedir}/${cs.target.dir}/classes</outputDirectory>
    <testOutputDirectory>${basedir}/${cs.target.dir}/test-classes</testOutputDirectory>
    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <configuration>
            <excludeDefaultDirectories>true</excludeDefaultDirectories>
            <filesets>
              <fileset>
                <directory>target</directory>
                <includes>
                  <include>**/*</include>
                </includes>
              </fileset>
            </filesets>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>2.2.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>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat7-maven-plugin</artifactId>
          <version>2.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <version>0.8</version>
          <configuration>
            <numUnapprovedLicenses>0</numUnapprovedLicenses>
            <excludeSubProjects>false</excludeSubProjects>
            <excludes>
              <exclude>CHANGES</exclude>
              <exclude>INSTALL.md</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>awsapi/overlays/**</exclude>
              <exclude>build/build.number</exclude>
              <exclude>services/console-proxy/server/js/jquery.js</exclude>
              <exclude>debian/compat</exclude>
              <exclude>debian/control</exclude>
              <exclude>debian/dirs</exclude>
              <exclude>debian/rules</exclude>
              <exclude>deps/XenServerJava/src/com/xensource/xenapi/*.java</exclude>
              <exclude>deps/XenServerJava/BSD</exclude>
              <exclude>deps/XenServerJava/Makefile</exclude>
              <exclude>dist/console-proxy/js/jquery.js</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>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/systemvmtemplate64/*</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/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/qunit/qunit.css</exclude>
              <exclude>ui/lib/qunit/qunit.js</exclude>
              <exclude>ui/lib/reset.css</exclude>
              <exclude>ui/lib/require.js</exclude>
              <exclude>waf</exclude>
              <exclude>patches/systemvm/debian/systemvm.vmx</exclude>
              <exclude>patches/systemvm/debian/config/root/.ssh/authorized_keys</exclude>
              <exclude>patches/systemvm/debian/config/etc/apache2/httpd.conf</exclude>
              <exclude>patches/systemvm/debian/config/etc/apache2/ports.conf</exclude>
              <exclude>patches/systemvm/debian/config/etc/apache2/sites-available/default</exclude>
              <exclude>patches/systemvm/debian/config/etc/apache2/sites-available/default-ssl</exclude>
              <exclude>patches/systemvm/debian/config/etc/apache2/vhostexample.conf</exclude>
              <exclude>patches/systemvm/debian/config/etc/dnsmasq.conf.tmpl</exclude>
              <exclude>patches/systemvm/debian/config/etc/vpcdnsmasq.conf</exclude>
              <exclude>patches/systemvm/debian/config/etc/ssh/sshd_config</exclude>
              <exclude>patches/systemvm/debian/config/etc/rsyslog.conf</exclude>
              <exclude>patches/systemvm/debian/config/etc/logrotate.conf</exclude>
              <exclude>patches/systemvm/debian/config/etc/logrotate.d/*</exclude>
              <exclude>patches/systemvm/debian/config/etc/sysctl.conf</exclude>
              <exclude>patches/systemvm/debian/config/root/redundant_router/keepalived.conf.templ</exclude>
              <exclude>patches/systemvm/debian/config/root/redundant_router/arping_gateways.sh.templ</exclude>
              <exclude>patches/systemvm/debian/config/root/redundant_router/conntrackd.conf.templ</exclude>
              <exclude>patches/systemvm/debian/vpn/etc/ipsec.conf</exclude>
              <exclude>patches/systemvm/debian/vpn/etc/ppp/options.xl2tpd</exclude>
              <exclude>patches/systemvm/debian/vpn/etc/xl2tpd/xl2tpd.conf</exclude>
              <exclude>patches/systemvm/debian/vpn/etc/ipsec.secrets</exclude>
              <exclude>patches/systemvm/debian/config/etc/haproxy/haproxy.cfg</exclude>
              <exclude>patches/systemvm/debian/config/etc/cloud-nic.rules</exclude>
              <exclude>patches/systemvm/debian/config/etc/modprobe.d/aesni_intel</exclude>
              <exclude>patches/systemvm/debian/config/etc/rc.local</exclude>
              <exclude>patches/systemvm/debian/config/var/www/html/userdata/.htaccess</exclude>
              <exclude>patches/systemvm/debian/config/var/www/html/latest/.htaccess</exclude>
              <exclude>patches/systemvm/debian/vpn/etc/ipsec.d/l2tp.conf</exclude>
              <exclude>tools/transifex/.tx/config</exclude>
              <exclude>tools/marvin/marvin/sandbox/advanced/sandbox.cfg</exclude>
            </excludes>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>2.5.1</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.4</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.7</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.5.1</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>cobertura-maven-plugin</artifactId>
          <configuration>
            <formats>
              <format>html</format>
              <format>xml</format>
            </formats>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

  <profiles>
    <profile>
      <id>awsapi</id>
      <modules>
        <module>awsapi</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>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>
        <!--module>tools/devcloud</module -->
      </modules>
    </profile>
    <profile>
      <id>vmware</id>
      <activation>
        <property>
          <name>nonoss</name>
        </property>
      </activation>
      <modules>
        <module>vmware-base</module>
      </modules>
    </profile>
  </profiles>
</project>
