<?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.3.0</version>
  </parent>

  <build>
    <defaultGoal>install</defaultGoal>
  </build>
  <modules>
    <module>api/rate-limit</module>
    <module>api/discovery</module>
    <module>acl/static-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/xen</module>
    <module>hypervisors/kvm</module>
    <module>event-bus/rabbitmq</module>
    <module>hypervisors/baremetal</module>
    <module>hypervisors/ucs</module>
    <module>hypervisors/hyperv</module>
    <module>hypervisors/docker</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/bigswitch-vns</module>
    <module>network-elements/midonet</module>
    <module>network-elements/stratosphere-ssp</module>
    <module>storage-allocators/random</module>
    <module>user-authenticators/ldap</module>
    <module>user-authenticators/md5</module>
    <module>user-authenticators/plain-text</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/solidfire</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>
  </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>kvm</id>
      <activation>
        <property>
          <name>noredist</name>
        </property>
      </activation>
      <modules>
        <module>hypervisors/kvm</module>
      </modules>
    </profile>
    <profile>
      <id>f5</id>
      <activation>
        <property>
          <name>noredist</name>
        </property>
      </activation>
      <modules>
        <module>network-elements/f5</module>
      </modules>
    </profile>
    <profile>
      <id>netscaler</id>
      <activation>
        <property>
          <name>noredist</name>
        </property>
      </activation>
      <modules>
        <module>network-elements/netscaler</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>
  </profiles>
</project>
