<?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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <artifactId>cloudstack-plugins</artifactId>
  <name>Apache CloudStack Plugin POM</name>
  <packaging>pom</packaging>
  <parent>
    <groupId>org.apache.cloudstack</groupId>
    <artifactId>cloudstack</artifactId>
    <version>4.11.0.0-SNAPSHOT</version>
  </parent>

  <build>
    <defaultGoal>install</defaultGoal>
    <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>
    </plugins>
  </build>
  <modules>
    <module>api/rate-limit</module>
    <module>api/solidfire-intg-test</module>
    <module>api/discovery</module>
    <module>acl/static-role-based</module>
    <module>acl/dynamic-role-based</module>
    <module>affinity-group-processors/host-anti-affinity</module>
    <module>affinity-group-processors/explicit-dedication</module>
    <module>deployment-planners/user-concentrated-pod</module>
    <module>deployment-planners/user-dispersing</module>
    <module>deployment-planners/implicit-dedication</module>
    <module>ha-planners/skip-heurestics</module>
    <module>host-allocators/random</module>
    <module>dedicated-resources</module>
    <module>hypervisors/ovm</module>
    <module>hypervisors/xenserver</module>
    <module>hypervisors/kvm</module>
    <module>event-bus/rabbitmq</module>
    <module>event-bus/inmemory</module>
    <module>event-bus/kafka</module>
    <module>hypervisors/baremetal</module>
    <module>hypervisors/ucs</module>
    <module>hypervisors/hyperv</module>
    <module>hypervisors/ovm3</module>
    <module>metrics</module>
    <module>network-elements/elastic-loadbalancer</module>
    <module>network-elements/ovs</module>
    <module>network-elements/juniper-contrail</module>
    <module>network-elements/palo-alto</module>
    <module>network-elements/netscaler</module>
    <module>network-elements/nicira-nvp</module>
    <module>network-elements/nuage-vsp</module>
    <module>network-elements/bigswitch</module>
    <module>network-elements/brocade-vcs</module>
    <module>network-elements/stratosphere-ssp</module>
    <module>network-elements/opendaylight</module>
    <module>outofbandmanagement-drivers/ipmitool</module>
    <module>storage-allocators/random</module>
    <module>user-authenticators/ldap</module>
    <module>user-authenticators/md5</module>
    <module>user-authenticators/pbkdf2</module>
    <module>user-authenticators/plain-text</module>
    <module>user-authenticators/saml2</module>
    <module>user-authenticators/sha256salted</module>
    <module>network-elements/dns-notifier</module>
    <module>storage/image/s3</module>
    <module>storage/image/swift</module>
    <module>storage/image/default</module>
    <module>storage/image/sample</module>
    <module>storage/volume/nexenta</module>
    <module>storage/volume/solidfire</module>
    <module>storage/volume/cloudbyte</module>
    <module>storage/volume/default</module>
    <module>storage/volume/sample</module>
    <module>alert-handlers/snmp-alerts</module>
    <module>alert-handlers/syslog-alerts</module>
    <module>network-elements/internal-loadbalancer</module>
    <module>network-elements/vxlan</module>
    <module>network-elements/globodns</module>
    <module>database/quota</module>
  </modules>

  <dependencies>
    <dependency>
      <groupId>org.apache.cloudstack</groupId>
      <artifactId>cloud-server</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.cloudstack</groupId>
      <artifactId>cloud-api</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.cloudstack</groupId>
      <artifactId>cloud-utils</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.cloudstack</groupId>
      <artifactId>cloud-framework-config</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.cloudstack</groupId>
      <artifactId>cloud-api</artifactId>
      <version>${project.version}</version>
      <type>test-jar</type>
      <scope>test</scope>      
    </dependency>
  </dependencies>

  <profiles>
    <profile>
      <id>netapp</id>
      <activation>
        <property>
          <name>noredist</name>
        </property>
      </activation>
      <modules>
        <module>file-systems/netapp</module>
      </modules>
    </profile>
    <profile>
      <id>f5</id>
      <activation>
        <property>
          <name>noredist</name>
        </property>
      </activation>
      <modules>
        <module>network-elements/f5</module>
      </modules>
    </profile>
    <profile>
      <id>srx</id>
      <activation>
        <property>
          <name>noredist</name>
        </property>
      </activation>
      <modules>
        <module>network-elements/juniper-srx</module>
      </modules>
    </profile>
    <profile>
      <id>vmware</id>
      <activation>
        <property>
          <name>noredist</name>
        </property>
      </activation>
      <modules>
        <module>hypervisors/vmware</module>
        <module>network-elements/cisco-vnmc</module>
      </modules>
    </profile>
    <profile>
      <id>mysqlha</id>
      <activation>
        <property>
          <name>noredist</name>
        </property>
      </activation>
      <modules>
        <module>database/mysql-ha</module>
      </modules>
    </profile>
    <profile>
      <id>simulator</id>
      <activation>
        <property>
          <name>simulator</name>
        </property>
      </activation>
      <modules>
        <module>hypervisors/simulator</module>
      </modules>
    </profile>
    <profile>
      <id>midonet</id>
      <modules>
        <module>network-elements/midonet</module>
      </modules>
    </profile>
  </profiles>
</project>
