<?xml version="1.0" encoding="UTF-8"?>
<!--
============LICENSE_START=======================================================
ONAP : APPC
================================================================================
Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
================================================================================
Copyright (C) 2017 Amdocs
=============================================================================
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/maven-v4_0_0.xsd">
    <parent>
        <groupId>org.onap.ccsdk.parent</groupId>
        <artifactId>odlparent</artifactId>
        <version>1.0.3</version>
    </parent>


    <modelVersion>4.0.0</modelVersion>
    <packaging>pom</packaging>
    <groupId>org.onap.appc</groupId>
    <artifactId>appc</artifactId>
    <version>1.4.0-SNAPSHOT</version>
    <name>appc</name>
    <description>Construct the Application Controller component for the ECOMP project.</description>
    <inceptionYear>2015-07-20</inceptionYear>
    <organization>
        <name>OpenECOMP</name>
    </organization>


    <!-- ================================================================================== -->
    <!-- Configuration properties -->
    <!-- ================================================================================== -->
    <properties>
        <!-- VERSIONS -->


        <cdp.pal.version>1.1.25.8-oss</cdp.pal.version>
        <dmaap.client.version>1.1.5</dmaap.client.version>
        <eelf.version>1.0.0</eelf.version>
        <eelf.maven.plugin.version>1.0.0</eelf.maven.plugin.version>
        <cadi-version>1.3.0</cadi-version>
        <inno-version>1.2.11</inno-version>
        <dme2-version>3.1.200</dme2-version>
        <bundle.plugin.version>2.5.0</bundle.plugin.version>
        <maven.compile.plugin.version>2.5.1</maven.compile.plugin.version>
        <equinox.osgi.version>3.8.1.v20120830-144521</equinox.osgi.version>
        <apache.httpcomponents.version>4.4</apache.httpcomponents.version>
        <commons.lang3.version>3.4</commons.lang3.version>
        <antlr.version>4.5.1</antlr.version>
        <logback.version>1.2.0</logback.version>
        <toscalib.version>1.1.0</toscalib.version>
        <sdc-client.version>1.3.0</sdc-client.version>
        <jackson.yml.version>2.3.2</jackson.yml.version>

        <!-- SONAR -->
        <sonar.language>java</sonar.language>
        <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
        <sonar.surefire.reportsPath>${project.build.directory}/surefire-reports</sonar.surefire.reportsPath>
        <sonar.jacoco.reportPath>${project.build.directory}/code-coverage/jacoco-ut.exec</sonar.jacoco.reportPath>
        <sonar.jacoco.reportMissing.force.zero>true</sonar.jacoco.reportMissing.force.zero>
        <sonar.projectVersion>${project.version}</sonar.projectVersion>

        <salGeneratorPath>target/generated-sources/yang-gen-sal</salGeneratorPath>
        <maven.javadoc.failOnError>false</maven.javadoc.failOnError>
        <!-- ADDING TO SUPPORT APPC-PROVIDER-MODEL yang-gen-sal FOLDER GENERATION -->
        <yang.file.directory>src/main/yang</yang.file.directory>
        <features.file>features.xml</features.file>
        <jmxGeneratorPath>target/generated-sources/yang-gen-config</jmxGeneratorPath>
        <!-- <salGeneratorPath>src/main/yang-gen-sal</salGeneratorPath> -->

        <onap.nexus.url>https://nexus.onap.org</onap.nexus.url>
        
        <sdnctl.dblib.version>${ccsdk.sli.core.version}</sdnctl.dblib.version>
        <sdnctl.sli.version>${ccsdk.sli.core.version}</sdnctl.sli.version>
        <!-- <ccsdk.sli.adaptors.version>${ccsdk.sli.adaptors.version}</ccsdk.sli.adaptors.version> -->
        <commons.collections.version>3.2.2</commons.collections.version>
        <odl.sal.api.gen.plugin.version>0.11.1</odl.sal.api.gen.plugin.version>
        <odl.yangtools.version>1.2.1</odl.yangtools.version>
        <odl.mdsal.yang.binding.version>0.11.1</odl.mdsal.yang.binding.version>
        <odl.mdsal.version>1.6.1</odl.mdsal.version>
        <odl.mdsal.features.version>2.3.1</odl.mdsal.features.version>
        <odl.yang.jmx.generator.version>0.7.1</odl.yang.jmx.generator.version>
        <odl.ietf-yang-types.version>2010.09.24.11.1</odl.ietf-yang-types.version>
        <odl.ietf-inet-types.version>2010.09.24.11.1</odl.ietf-inet-types.version>
        <odl.controller.config.api.version>0.7.1</odl.controller.config.api.version>
        <odl.commons.opendaylight.version>2.0.5</odl.commons.opendaylight.version>
        <odl.karaf.empty.distro.version>1.8.3-Carbon</odl.karaf.empty.distro.version>

    </properties>


    <!-- ================================================================================== -->
    <!-- Javadoc Generation Plugin -->
    <!-- ================================================================================== -->
    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.10</version>
                <configuration>
                    <excludePackageNames>org.onap.ccsdk.sli</excludePackageNames>
                    <failOnError>false</failOnError>
                    <doclet>org.umlgraph.doclet.UmlGraphDoc</doclet>
                    <docletArtifact>
                        <groupId>org.umlgraph</groupId>
                        <artifactId>umlgraph</artifactId>
                        <version>5.6</version>
                    </docletArtifact>
                    <additionalparam>-views</additionalparam>
                    <useStandardDocletOptions>true</useStandardDocletOptions>
                </configuration>
            </plugin>
        </plugins>
    </reporting>


    <!-- ================================================================================== -->
    <!-- Distribution Management Sites -->
    <!-- ================================================================================== -->
    <distributionManagement>
        <!-- This site is used for Javadocs -->
        <site>
            <id>ecomp-site</id>
            <url>dav:${onap.nexus.url}/content/sites/site/org/onap/appc/${project.version}</url>
        </site>
        <repository>
            <id>ecomp-releases</id>
            <name>openecomp-repository-releases</name>
            <url>${onap.nexus.url}/content/repositories/releases</url>
        </repository>
        <snapshotRepository>
            <id>ecomp-snapshots</id>
            <name>openecomp-repository-snapshots</name>
            <url>${onap.nexus.url}/content/repositories/snapshots</url>
        </snapshotRepository>
    </distributionManagement>


    <!-- ================================================================================== -->
    <!-- Define plugin repositories -->
    <!-- ================================================================================== -->
    <pluginRepositories>
        <pluginRepository>
            <id>opendaylight-mirror</id>
            <name>opendaylight-mirror</name>
            <url>https://nexus.opendaylight.org/content/repositories/public/</url>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>never</updatePolicy>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
        <pluginRepository>
            <id>opendaylight-snapshot</id>
            <name>opendaylight-snapshot</name>
            <url>https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
        <!-- Black Duck plugin dependencies -->
        <pluginRepository>
            <id>JCenter</id>
            <name>JCenter Repository</name>
            <url>http://jcenter.bintray.com</url>
        </pluginRepository>
        <pluginRepository>
            <id>Restlet</id>
            <name>Restlet Repository</name>
            <url>http://maven.restlet.com</url>
        </pluginRepository>
    </pluginRepositories>


    <!-- ================================================================================== -->
    <!-- Define project-wide dependencies -->
    <!-- ================================================================================== -->
    <dependencyManagement>
        <dependencies>
              <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>22.0</version>
      </dependency>
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava-testlib</artifactId>
        <version>22.0</version>
        <scope>test</scope>
      </dependency>
            <dependency>
                <groupId>org.opendaylight.controller</groupId>
                <artifactId>config-api</artifactId>
                <version>${odl.controller.config.api.version}</version>
            </dependency>
            <dependency>
                <groupId>org.opendaylight.controller</groupId>
                <artifactId>sal-binding-config</artifactId>
                <version>${odl.mdsal.version}</version>
            </dependency>
            <dependency>
                <groupId>org.opendaylight.controller</groupId>
                <artifactId>sal-binding-api</artifactId>
                <version>${odl.mdsal.version}</version>
            </dependency>
            <dependency>
                <groupId>org.opendaylight.controller</groupId>
                <artifactId>sal-test-model</artifactId>
                <version>${odl.mdsal.version}</version>
            </dependency>
            <dependency>
                <groupId>org.opendaylight.controller</groupId>
                <artifactId>sal-binding-broker-impl</artifactId>
                <version>${odl.mdsal.version}</version>
            </dependency>
            <dependency>
                <groupId>org.opendaylight.controller</groupId>
                <artifactId>sal-common-util</artifactId>
                <version>${odl.mdsal.version}</version>
            </dependency>
            <dependency>
                <groupId>org.opendaylight.mdsal</groupId>
                <artifactId>yang-binding</artifactId>
                <version>${odl.mdsal.yang.binding.version}</version>
            </dependency>
            <dependency>
                <groupId>org.opendaylight.yangtools</groupId>
                <artifactId>yang-common</artifactId>
                <version>${odl.yangtools.version}</version>
            </dependency>
            <dependency>
                <groupId>org.opendaylight.controller</groupId>
                <artifactId>features-mdsal</artifactId>
                <version>${odl.mdsal.features.version}</version>
                <classifier>features</classifier>
                <type>xml</type>
            </dependency>
            <dependency>
                <groupId>org.opendaylight.mdsal</groupId>
                <artifactId>features-mdsal</artifactId>
                <version>${odl.mdsal.features.version}</version>
                <classifier>features</classifier>
                <type>xml</type>
            </dependency>
            <dependency>
                <groupId>org.opendaylight.controller</groupId>
                <artifactId>opendaylight-karaf-empty</artifactId>
                <version>${odl.karaf.empty.distro.version}</version>
                <type>zip</type>
            </dependency>
            <dependency>
                <groupId>org.opendaylight.mdsal.model</groupId>
                <artifactId>ietf-inet-types</artifactId>
                <version>${odl.ietf-inet-types.version}</version>
            </dependency>
            <dependency>
                <groupId>org.opendaylight.mdsal.model</groupId>
                <artifactId>ietf-yang-types</artifactId>
                <version>${odl.ietf-yang-types.version}</version>
            </dependency>
            <!-- CURRENTLY DOES NOT EXIST IN 3.0. Replacement? -->
            <!-- Required for launching the feature tests -->
            <!-- <dependency> -->
            <!-- <groupId>org.opendaylight.yangtools</groupId> -->
            <!-- <artifactId>features-test</artifactId> -->
            <!-- <version>${odl.yangtools.version}</version> -->
            <!-- <scope>test</scope> -->
            <!-- </dependency> -->

            <!-- YANG tools -->
            <dependency>
                <groupId>org.opendaylight.yangtools</groupId>
                <artifactId>features-yangtools</artifactId>
                <version>${odl.yangtools.version}</version>
                <classifier>features</classifier>
                <type>xml</type>
            </dependency>
            <!-- SDNC -->
            <dependency>
                <groupId>org.onap.ccsdk.sli.core</groupId>
                <artifactId>sli-common</artifactId>
                <version>${sdnctl.sli.version}</version>
            </dependency>
            <dependency>
                <groupId>org.onap.ccsdk.sli.core</groupId>
                <artifactId>sli-provider</artifactId>
                <version>${sdnctl.sli.version}</version>
            </dependency>
            <!-- dblib -->
            <dependency>
                <groupId>org.onap.ccsdk.sli.core</groupId>
                <artifactId>dblib-provider</artifactId>
                <version>${sdnctl.dblib.version}</version>
            </dependency>
            <!-- A&AI service provider dependency override in order to use a stable
                version -->
            <dependency>
                <groupId>org.onap.ccsdk.sli.adaptors</groupId>
                <artifactId>aai-service-provider</artifactId>
                <version>${sdnctl.aai.service.version}</version>
            </dependency>
            <!-- APPC -->
            <dependency>
                <groupId>org.onap.appc</groupId>
                <artifactId>appc-controller-features</artifactId>
                <classifier>features</classifier>
                <type>xml</type>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.onap.appc</groupId>
                <artifactId>appc-controller-model</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.onap.appc</groupId>
                <artifactId>appc-controller-bundle</artifactId>
                <version>${project.version}</version>
                <classifier>config</classifier>
                <type>xml</type>
            </dependency>
            <dependency>
                <groupId>org.onap.appc</groupId>
                <artifactId>appc-controller-bundle</artifactId>
                <version>${project.version}</version>
            </dependency>
            <!-- OTHER -->
            <dependency>
                <groupId>equinoxSDK381</groupId>
                <artifactId>org.eclipse.osgi</artifactId>
                <version>${equinox.osgi.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>${commons.lang3.version}</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.assertj</groupId>
                <artifactId>assertj-core</artifactId>
                <version>3.9.0</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.assertj</groupId>
                <artifactId>assertj-guava</artifactId>
                <version>3.1.0</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
				<version>${logback.version}</version>
                <scope>compile</scope>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>${logback.version}</version>
                <scope>compile</scope>
            </dependency>
            <!-- <dependency> -->
            <!-- <groupId>org.slf4j</groupId> -->
            <!-- <artifactId>slf4j-api</artifactId> -->
            <!-- <version>1.7.12</version> -->
            <!-- </dependency> -->
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>2.6</version>
            </dependency>
            <dependency>
                <groupId>org.apache.sshd</groupId>
                <artifactId>sshd-core</artifactId>
                <version>2.0.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.sshd</groupId>
                <artifactId>sshd-sftp</artifactId>
                <version>2.0.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.sshd</groupId>
                <artifactId>sshd-scp</artifactId>
                <version>2.0.0</version>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>1.10.19</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.att.cdp</groupId>
                <artifactId>cdp-pal-common</artifactId>
                <version>${cdp.pal.version}</version>
            </dependency>
            <dependency>
                <groupId>com.att.cdp</groupId>
                <artifactId>cdp-pal-openstack</artifactId>
                <version>${cdp.pal.version}</version>
            </dependency>
            <dependency>
                <groupId>com.att.authz</groupId>
                <artifactId>authz-client</artifactId>
                <version>2.3</version>
            </dependency>
            <!-- EELF logging framework -->
            <dependency>
                <groupId>com.att.eelf</groupId>
                <artifactId>eelf-core</artifactId>
                <version>${eelf.version}</version>
            </dependency>
            <!-- Maria DB -->
            <dependency>
                <groupId>org.mariadb.jdbc</groupId>
                <artifactId>mariadb-java-client</artifactId>
                <version>2.1.1</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>
    </dependencies>


    <!-- ================================================================================== -->
    <!-- Define common plugins and make them available for all modules -->
    <!-- ================================================================================== -->
    <build>
        <pluginManagement>
            <plugins>
                <!-- Define the site plugin to generate documentation -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>3.4</version>
                    <dependencies>
                        <!-- add support for ssh/scp -->
                        <dependency>
                            <groupId>org.apache.maven.wagon</groupId>
                            <artifactId>wagon-ssh</artifactId>
                            <version>1.0</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <!-- Define the compiler plugin -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${maven.compile.plugin.version}</version>
                </plugin>
                <!-- Define the javadoc plugin -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>2.10</version>
                    <configuration>
                        <excludePackageNames>org.opendaylight.*:org.onap.ccsdk.sli</excludePackageNames>
                    </configuration>
                </plugin>
                <!-- Define the source plugin -->
                <plugin>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>2.1.1</version>
                </plugin>
                <!-- Resources plugin -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>2.6</version>
                    <executions>
                        <execution>
                            <id>filter</id>
                            <goals>
                                <goal>resources</goal>
                            </goals>
                            <phase>generate-resources</phase>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <artifactId>maven-release-plugin</artifactId>
                    <version>2.5.2</version>
                    <configuration>
                        <goals>-s ${mvn.settings} deploy</goals>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>2.5.5</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>2.8.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>2.10</version>
                </plugin>
                <!-- Maven surefire plugin for testing -->
                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.17</version>
                </plugin>
                <!-- Maven OSGi bundle plugin used to package OSGi bundles -->
                <plugin>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-bundle-plugin</artifactId>
                    <version>${bundle.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <version>1.9.1</version>
                </plugin>
                <plugin>
                  <groupId>org.sonarsource.scanner.maven</groupId>
                  <artifactId>sonar-maven-plugin</artifactId>
                  <version>3.2</version>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <!--maven staging plugin -->
            <plugin>
                <groupId>org.sonatype.plugins</groupId>
                <artifactId>nexus-staging-maven-plugin</artifactId>
                <version>1.6.7</version>
                <extensions>true</extensions>
                <configuration>
                    <nexusUrl>${onap.nexus.url}</nexusUrl>
                    <stagingProfileId>176c31dfe190a</stagingProfileId>
                    <serverId>ecomp-staging</serverId>
                </configuration>
            </plugin>
            <!-- Javadocs Plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <version>3.6</version>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.maven.wagon</groupId>
                        <artifactId>wagon-webdav-jackrabbit</artifactId>
                        <version>2.10</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>properties-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>set-system-properties</goal>
                        </goals>
                        <configuration>
                            <properties>
                                <property>
                                    <name>maven.wagon.http.ssl.allowall</name>
                                    <value>${ssl.allowall}</value>
                                </property>
                                <property>
                                    <name>maven.wagon.http.ssl.insecure</name>
                                    <value>${ssl.insecure}</value>
                                </property>
                            </properties>
                        </configuration>
                    </execution>
                </executions>

            </plugin>

            <!-- blackduck maven plugin -->
            <!-- <plugin> <groupId>com.blackducksoftware.integration</groupId> <artifactId>hub-maven-plugin</artifactId>
                <version>2.0.0</version> <inherited>false</inherited> <configuration> <hubProjectName>${project.name}</hubProjectName>
                <outputDirectory>${project.basedir}</outputDirectory> <deployHubBdio>false</deployHubBdio>
                </configuration> <executions> <execution> <id>create-bdio-file</id> <phase>package</phase>
                <goals> <goal>build-bom</goal> </goals> </execution> </executions> </plugin> -->

            <!-- force Eclipse to skip the additional-install step specified in the
                org.opendaylight.odlparent:odlparent-lite:1.7.1-Boron-SR1.pom profile -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-install-plugin</artifactId>
                <executions>
                    <execution>
                        <id>additional-install</id>
                        <goals>
                            <goal>install-file</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>


    <!-- ================================================================================== -->
    <!-- The modules we build every time -->
    <!-- ================================================================================== -->
    <modules>
        <module>appc-parent</module>
        <module>appc-common</module>
        <module>appc-core</module>
    </modules>
    <!-- Adding profiles for testing -->
    <profiles>
        <profile>
            <id>appc-core</id>
            <properties>
                <ssl.allowall>true</ssl.allowall>
                <ssl.insecure>true</ssl.insecure>
                <openecomp.git.port>7999</openecomp.git.port>
                <openecomp.git.project>st_osecomp</openecomp.git.project>
                <openecomp.git.protocol>http</openecomp.git.protocol>
            </properties>
            <!-- Core app-c from 1604 -->
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <modules>
                <module>appc-common</module>
                <module>appc-adapters</module>
                <module>appc-provider</module>
                <module>appc-event-listener</module>
                <module>appc-sdc-listener</module>
                <module>appc-lifecycle-management</module>
                <module>appc-oam</module>
                <module>appc-config</module>
                <module>appc-directed-graph</module>
                <module>appc-outbound</module>
                <module>appc-inbound</module>
                <module>appc-sequence-generator</module>
                <module>appc-client</module>
                <module>appc-test-dependencies</module>
            </modules>
        </profile>
        <profile>
            <id>request-dispatcher</id>
            <properties>
                <ssl.allowall>true</ssl.allowall>
                <ssl.insecure>true</ssl.insecure>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <modules>
                <module>appc-dispatcher</module>
                <module>appc-metric</module>
                <module>appc-dg</module>
                <module>appc-dg-util</module>
            </modules>
        </profile>
    </profiles>
</project>
