<!--
    ============LICENSE_START=======================================================
    Drools PDP Application Common Models
    ================================================================================
    Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
    ================================================================================
    Licensed 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.
    ============LICENSE_END=========================================================
-->

<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>
  <packaging>pom</packaging>
  
  <parent>
    <groupId>org.onap.policy.drools-applications.controlloop</groupId>
    <artifactId>controlloop</artifactId>
    <version>1.4.0-SNAPSHOT</version>
  </parent>

  <groupId>org.onap.policy.drools-applications.controlloop.common</groupId>
  <artifactId>common</artifactId>

  <modules>
    <module>actors</module>
    <module>guard</module>
    <module>eventmanager</module>
    <module>model-impl</module>
    <module>policy-yaml</module>
    <module>simulators</module>
    <module>controller-casablanca</module>
    <module>feature-controlloop-utils</module>
    <module>feature-controlloop-trans</module>
    <module>feature-controlloop-management</module>
    <module>feature-controlloop-amsterdam</module>
    <module>feature-controlloop-casablanca</module>
  </modules>


</project>
