<?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.2.0-SNAPSHOT</version>
  </parent>
  <build>
    <defaultGoal>install</defaultGoal>
    <sourceDirectory>src</sourceDirectory>
    <testSourceDirectory>test</testSourceDirectory>
  </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>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/simulator</module>
    <module>hypervisors/baremetal</module>
    <module>hypervisors/ucs</module>
    <module>network-elements/elastic-loadbalancer</module>
    <module>network-elements/ovs</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/image/simulator</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>
  </modules>

  <dependencies>
    <dependency>
      <groupId>org.apache.cloudstack</groupId>
      <artifactId>cloud-server</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>

  <profiles>
    <profile>
      <id>netapp</id>
      <activation>
        <property>
          <name>nonoss</name>
        </property>
      </activation>
      <modules>
        <module>file-systems/netapp</module>
      </modules>
    </profile>
    <profile>
      <id>kvm</id>
      <activation>
        <property>
          <name>nonoss</name>
        </property>
      </activation>
      <modules>
        <module>hypervisors/kvm</module>
      </modules>
    </profile>
    <profile>
      <id>f5</id>
      <activation>
        <property>
          <name>nonoss</name>
        </property>
      </activation>
      <modules>
        <module>network-elements/f5</module>
      </modules>
    </profile>
    <profile>
      <id>netscaler</id>
      <activation>
        <property>
          <name>nonoss</name>
        </property>
      </activation>
      <modules>
        <module>network-elements/netscaler</module>
      </modules>
    </profile>
    <profile>
      <id>srx</id>
      <activation>
        <property>
          <name>nonoss</name>
        </property>
      </activation>
      <modules>
        <module>network-elements/juniper-srx</module>
      </modules>
    </profile>
    <profile>
      <id>vmware</id>
      <activation>
        <property>
          <name>nonoss</name>
        </property>
      </activation>
      <modules>
        <module>hypervisors/vmware</module>
        <module>network-elements/cisco-vnmc</module>
      </modules>
    </profile>
    <profile>
      <id>simulator</id>
      <activation>
        <property>
          <name>simulator</name>
        </property>
      </activation>
      <modules>
        <module>hypervisors/simulator</module>
        <module>storage/image/simulator</module>
      </modules>
     </profile>
  </profiles>
</project>
