<?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>

    <parent>
        <groupId>org.apache</groupId>
        <artifactId>apache</artifactId>
        <version>15</version>
        <relativePath />
    </parent>

    <groupId>org.apache.unomi</groupId>
    <artifactId>unomi-root</artifactId>
    <name>Apache Unomi :: Root Project</name>
    <description>Apache Unomi is a reference implementation of the OASIS Context Server specification currently being
        worked on by the OASIS Context Server Technical Committee. It provides a high-performance user profile and
        event tracking server.
    </description>
    <url>http://unomi.incubator.apache.org</url>
    <version>1.3.0-incubating</version>
    <packaging>pom</packaging>

    <licenses>
        <license>
            <name>The Apache Software License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
    </licenses>

    <organization>
        <name>Apache Software Foundation</name>
        <url>http://www.apache.org</url>
    </organization>

    <issueManagement>
        <system>JIRA</system>
        <url>https://issues.apache.org/jira/browse/UNOMI</url>
    </issueManagement>

    <ciManagement>
        <system>Jenkins</system>
        <url>https://builds.apache.org/job/unomi-master</url>
    </ciManagement>

    <inceptionYear>2014</inceptionYear>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <cxf.version>3.1.10</cxf.version>
        <version.jackson.core>2.8.6</version.jackson.core>
        <version.jackson.jaxb>2.8.6</version.jackson.jaxb>
        <version.karaf>4.1.5</version.karaf>
        <version.karaf.cellar>4.1.0</version.karaf.cellar>
        <version.pax.exam>4.11.0</version.pax.exam>
        <elasticsearch.version>5.6.3</elasticsearch.version>

        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
        <scala.version>2.11.4</scala.version>
        <encoding>UTF-8</encoding>

        <gatling.version>2.1.2</gatling.version>
        <scala-maven-plugin.version>3.2.0</scala-maven-plugin.version>

        <!-- Librairies for Karaf packaging -->
        <xerces.version>2.11.0_1</xerces.version>
        <servicemix.specs.version>2.9.0</servicemix.specs.version>
        <xalan.bundle.version>2.7.2_3</xalan.bundle.version>
        <xalan-serializer.bundle.version>2.7.2_1</xalan-serializer.bundle.version>
        <jna.version>4.5.0</jna.version>
        <httpclient-osgi.version>4.5.5</httpclient-osgi.version>
        <httpcore-osgi.version>4.4.9</httpcore-osgi.version>

    </properties>

    <mailingLists>
        <mailingList>
            <name>unomi-dev</name>
            <subscribe>dev-subscribe@unomi.incubator.apache.org</subscribe>
            <unsubscribe>dev-unsubscribe@unomi.incubator.apache.org</unsubscribe>
            <post>dev@unomi.incubator.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/incubator-unomi-dev/</archive>
        </mailingList>
        <mailingList>
            <name>unomi-commits</name>
            <subscribe>commits-subscribe@unomi.incubator.apache.org</subscribe>
            <unsubscribe>commits-unsubscribe@unomi.incubator.apache.org</unsubscribe>
            <post>commits@unomi.incubator.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/incubator-unomi-commits/</archive>
        </mailingList>
    </mailingLists>

    <scm>
        <connection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-unomi.git</connection>
        <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-unomi.git</developerConnection>
        <tag>unomi-root-1.3.0-incubating</tag>
        <url>https://git-wip-us.apache.org/repos/asf/incubator-unomi.git</url>
    </scm>

    <developers>
        <developer>
            <id>jbonofre</id>
            <name>Jean-Baptiste Onofré</name>
            <email>jbonofre@apache.org</email>
            <timezone>+1</timezone>
            <roles>
                <role>champion</role>
                <role>committer</role>
                <role>PPMC</role>
            </roles>
            <organization>Talend</organization>
            <organizationUrl>http://www.talend.com</organizationUrl>
        </developer>
        <developer>
            <id>shuber</id>
            <name>Serge Huber</name>
            <email>shuber@apache.org</email>
            <timezone>+1</timezone>
            <roles>
                <role>committer</role>
                <role>PPMC</role>
            </roles>
            <organization>Jahia</organization>
            <organizationUrl>http://www.jahia.com</organizationUrl>
        </developer>
        <developer>
            <id>bdelacretaz</id>
            <name>Bertrand Delacretaz</name>
            <email>bdelacretaz@apache.org</email>
            <timezone>+1</timezone>
            <roles>
                <role>Mentor</role>
                <role>PPMC</role>
            </roles>
            <organization>Adobe</organization>
        </developer>
        <developer>
            <id>rvs</id>
            <name>Roman Shaposhnik</name>
            <email>rvs@apache.org</email>
            <roles>
                <role>Mentor</role>
                <role>PPMC</role>
            </roles>
            <organization>Pivotal</organization>
        </developer>
        <developer>
            <id>mattmann</id>
            <name>Chris Mattmann</name>
            <email>mattmann@apache.org</email>
            <roles>
                <role>Mentor</role>
                <role>PPMC</role>
            </roles>
            <organization>NASA JPL</organization>
        </developer>
        <developer>
            <id>draier</id>
            <name>Thomas Draier</name>
            <email>draier@apache.org</email>
            <roles>
                <role>committer</role>
                <role>PPMC</role>
            </roles>
        </developer>
        <developer>
            <name>Sergiy Shyrkov</name>
            <roles>
                <role>committer</role>
                <role>PPMC</role>
            </roles>
        </developer>
        <developer>
            <name>Kevan Jahanshahi</name>
            <roles>
                <role>committer</role>
                <role>PPMC</role>
            </roles>
        </developer>
        <developer>
            <name>Cédric Mailleux</name>
            <roles>
                <role>committer</role>
                <role>PPMC</role>
            </roles>
        </developer>
        <developer>
            <name>Régis Mora</name>
            <roles>
                <role>committer</role>
                <role>PPMC</role>
            </roles>
        </developer>
        <developer>
            <name>Quentin Lamerand</name>
            <roles>
                <role>committer</role>
                <role>PPMC</role>
            </roles>
        </developer>
        <developer>
            <id>metacosm</id>
            <name>Chris Laprun</name>
            <email>metacosm@apache.org</email>
            <timezone>+1</timezone>
            <roles>
                <role>committer</role>
                <role>PPMC</role>
            </roles>
            <organization>Jahia</organization>
            <organizationUrl>http://www.jahia.com</organizationUrl>
        </developer>
        <developer>
            <name>David Griffon</name>
            <roles>
                <role>committer</role>
                <role>PPMC</role>
            </roles>
        </developer>
        <developer>
            <id>amidani</id>
            <name>Abdelkader Midani</name>
            <email>amidani@apache.org</email>
            <timezone>+1</timezone>
            <roles>
                <role>committer</role>
                <role>PPMC</role>
            </roles>
        </developer>
    </developers>

    <distributionManagement>
        <site>
            <id>website</id>
            <!-- we put a fake URL here for staging to work -->
            <url>scp://www.mycompany.com/www/docs/project/</url>
        </site>
    </distributionManagement>

    <repositories>
        <repository>
            <id>smx.m2</id>
            <name>Apache ServiceMix M2</name>
            <url>http://svn.apache.org/repos/asf/servicemix/m2-repo/</url>
        </repository>
        <repository>
            <id>jahia.3rdparty</id>
            <url>https://devtools.jahia.com/nexus/content/repositories/thirdparty-releases/</url>
        </repository>
        <!-- Apache snapshots -->
        <repository>
            <id>apache-snapshots</id>
            <name>Apache Snapshots Repository</name>
            <url>http://repository.apache.org/content/groups/snapshots-group</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        <!-- OPS4J SNAPSHOT repository -->
        <repository>
            <id>ops4j.sonatype.snapshots.deploy</id>
            <name>OPS4J snapshot repository</name>
            <url>https://oss.sonatype.org/content/repositories/ops4j-snapshots/</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

    <profiles>
        <profile>
            <id>integration-tests</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <modules>
                <module>itests</module>
            </modules>
        </profile>

        <profile>
            <id>performance-tests</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <modules>
                <module>performance-tests</module>
            </modules>
        </profile>

        <profile>
            <id>checkstyle</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-checkstyle-plugin</artifactId>
                        <version>2.13</version>
                        <executions>
                            <execution>
                                <id>verify-style</id>
                                <phase>process-classes</phase>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <consoleOutput>true</consoleOutput>
                            <failsOnError>true</failsOnError>
                            <logViolationsToConsole>true</logViolationsToConsole>
                            <checkstyleRules>
                                <module name="Checker">
                                    <module name="TreeWalker">
                                        <module name="JavadocType" />
                                        <module name="JavadocMethod">
                                            <property name="scope" value="public" />
                                            <property name="allowMissingPropertyJavadoc" value="true" />
                                        </module>
                                        <module name="UnusedImports" />
                                        <module name="ConstantName">
                                            <property name="applyToProtected" value="false" />
                                            <property name="applyToPackage" value="false" />
                                            <property name="applyToPrivate" value="false" />
                                        </module>
                                        <module name="EmptyBlock">
                                            <property name="option" value="text" />
                                        </module>
                                        <module name="NeedBraces" />
                                        <module name="EqualsHashCode" />
                                        <module name="MagicNumber">
                                            <property name="ignoreNumbers" value=" -1, 0, 1, 2, 3, 17, 24, 31, 37, 60, 255, 256, 1000" />
                                        </module>
                                        <module name="SimplifyBooleanReturn" />
                                        <module name="IllegalCatch">
                                            <property name="illegalClassNames" value=" java.lang.Throwable" />
                                        </module>
                                        <module name="MultipleVariableDeclarations" />
                                        <module name="OneStatementPerLine" />
                                        <module name="RedundantModifier" />
                                    </module>
                                </module>
                            </checkstyleRules>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>update-licenses</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>license-maven-plugin</artifactId>
                        <version>1.8</version>
                        <configuration>
                            <verbose>false</verbose>
                            <addSvnKeyWords>true</addSvnKeyWords>
                            <licenseName>apache_v2</licenseName>
                        </configuration>
                        <executions>
                            <execution>
                                <id>first</id>
                                <goals>
                                    <goal>update-file-header</goal>
                                </goals>
                                <phase>process-sources</phase>
                                <configuration>
                                    <excludes>
                                        <exclude>**/*.json</exclude>
                                        <exclude>**/beans.xml</exclude>
                                    </excludes>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>rat</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.rat</groupId>
                        <artifactId>apache-rat-plugin</artifactId>
                        <version>0.11</version>
                        <executions>
                            <execution>
                                <phase>verify</phase>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <reportFile>${project.build.directory}/${project.build.finalName}.rat</reportFile>
                            <excludeSubProjects>false</excludeSubProjects>
                            <excludes>
                                <exclude>**/NOTICE.template</exclude>
                                <exclude>**/NOTICE-generated</exclude>
                                <exclude>**/DEPENDENCIES</exclude>
                                <exclude>**/target/**/*</exclude>
                                <!-- GIT files -->
                                <exclude>**/.git/**/*</exclude>
                                <!-- IDEA files -->
                                <exclude>**/.idea/**/*</exclude>
                                <exclude>**/*.iml</exclude>
                                <exclude>**/*.ipr</exclude>
                                <exclude>**/*.iws</exclude>
                                <!-- Eclipse files -->
                                <exclude>**/.*</exclude>
                                <exclude>**/eclipse-classes/**/*</exclude>
                                <exclude>**/dependency-reduced-pom.xml</exclude>
                                <exclude>**/.settings/**</exclude>
                                <exclude>**/bin/**</exclude>
                                <!-- resources file -->
                                <exclude>**/goal.txt</exclude>
                                <exclude>**/grep.txt</exclude>
                                <exclude>**/edit.txt</exclude>
                                <exclude>**/wc.txt</exclude>
                                <exclude>**/foo</exclude>
                                <exclude>**/org.ops4j.pax.exam.TestContainerFactory</exclude>
                                <exclude>**/maven-metadata-local.xml</exclude>
                                <exclude>**/src/test/resources/data/*.txt</exclude>
                                <!-- Test resources CSV -->
                                <exclude>**/src/test/resources/**/*.csv</exclude>
                                <exclude>**/keystore</exclude>
                                <!--manual resources -->
                                <exclude>**/*.css</exclude>
                                <exclude>**/*.ssp</exclude>
                                <exclude>**/*.conf</exclude>
                                <!-- test manifests -->
                                <exclude>**/*.mf</exclude>
                                <!-- test json files -->
                                <exclude>**/*.json</exclude>
                                <!-- SSH keys -->
                                <exclude>**/*.key</exclude>
                                <!-- For Jenkins, ignore the .repository -->
                                <exclude>.repository/**</exclude>
                                <!-- jar files -->
                                <exclude>**/*.jar</exclude>
                                <!-- Empty CDI descriptor file -->
                                <exclude>**/src/main/webapp/WEB-INF/beans.xml</exclude>
                                <!-- Web application robots.txt file -->
                                <exclude>**/src/main/webapp/robots.txt</exclude>
                                <!-- ignore generated log files -->
                                <exclude>**/*.log</exclude>
                            </excludes>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>generate-notice</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.jasig.maven</groupId>
                        <artifactId>maven-notice-plugin</artifactId>
                        <!--version>1.0.7-SNAPSHOT</version-->
                        <version>1.0.6</version>
                        <executions>
                            <execution>
                                <phase>verify</phase>
                                <goals>
                                    <goal>generate</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <fileName>NOTICE-generated</fileName>
                            <generateChildNotices>false</generateChildNotices>
                            <!-- The following options are only available in the fork here : https://github.com/Jasig/maven-notice-plugin/pull/4 . If it gets accepted we can reactivate -->
                            <!--licenseNameAliases>
                                <property>
                                    <name>Apache License, Version 2.0</name>
                                    <value>The Apache Software License, Version 2.0</value>
                                </property>
                                <property>
                                    <name>Apache 2</name>
                                    <value>The Apache Software License, Version 2.0</value>
                                </property>
                                <property>
                                    <name>ALv2</name>
                                    <value>The Apache Software License, Version 2.0</value>
                                </property>
                                <property>
                                    <name>Apache 2.0 License</name>
                                    <value>The Apache Software License, Version 2.0</value>
                                </property>
                                <property>
                                    <name>Apache License 2.0</name>
                                    <value>The Apache Software License, Version 2.0</value>
                                </property>
                                <property>
                                    <name>Apache License Version 2.0</name>
                                    <value>The Apache Software License, Version 2.0</value>
                                </property>
                            </licenseNameAliases>
                            <noticeMessage>\nThis product includes the software {0}.\nLicensed under the {1}.\n{7}</noticeMessage-->
                            <noticeTemplate>NOTICE.template</noticeTemplate>
                            <licenseMapping>
                                <param>https://source.jasig.org/licenses/license-mappings.xml</param>
                                <param>license-mappings.xml</param>
                            </licenseMapping>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <dependencyManagement>
        <dependencies>

            <dependency>
                <groupId>org.osgi</groupId>
                <artifactId>org.osgi.core</artifactId>
                <version>4.3.1</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.osgi</groupId>
                <artifactId>org.osgi.compendium</artifactId>
                <version>4.3.1</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>3.0.1</version>
            </dependency>

            <!-- Apache CXF dependencies -->
            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-rt-frontend-jaxws</artifactId>
                <version>${cxf.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-rt-frontend-jaxrs</artifactId>
                <version>${cxf.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-rt-transports-http</artifactId>
                <version>${cxf.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-rt-rs-security-cors</artifactId>
                <version>${cxf.version}</version>
            </dependency>
            <dependency>
                <!-- scope is runtime so the feature repo is listed in the features service config file, and features may be installed using the karaf-maven-plugin configuration -->
                <groupId>org.apache.cxf.karaf</groupId>
                <artifactId>apache-cxf</artifactId>
                <version>${cxf.version}</version>
                <classifier>features</classifier>
                <type>xml</type>
                <scope>runtime</scope>
            </dependency>
            <!-- End of Apache CXF dependencies -->

            <!-- Jackson dependencies -->
            <dependency>
                <groupId>com.fasterxml.jackson.jaxrs</groupId>
                <artifactId>jackson-jaxrs-json-provider</artifactId>
                <version>${version.jackson.core}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>${version.jackson.core}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${version.jackson.core}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.module</groupId>
                <artifactId>jackson-module-jaxb-annotations</artifactId>
                <version>${version.jackson.jaxb}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>${version.jackson.core}</version>
                <scope>provided</scope>
            </dependency>
            <!-- End of Jackson dependencies -->

            <!-- Apache Commons dependencies -->
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>2.4</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>3.3.2</version>
            </dependency>
            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
                <version>1.9.2</version>
            </dependency>
            <dependency>
                <groupId>commons-collections</groupId>
                <artifactId>commons-collections</artifactId>
                <version>3.2.2</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-email</artifactId>
                <version>1.3.3</version>
            </dependency>
            <!-- End of Apache Commons dependencies -->

            <!-- Apache Karaf dependencies -->
            <dependency>
                <groupId>org.apache.karaf.features</groupId>
                <artifactId>framework</artifactId>
                <version>${version.karaf}</version>
                <type>kar</type>
            </dependency>
            <dependency>
                <groupId>org.apache.karaf.features</groupId>
                <artifactId>framework</artifactId>
                <classifier>features</classifier>
                <version>${version.karaf}</version>
                <type>xml</type>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.karaf.features</groupId>
                <artifactId>standard</artifactId>
                <classifier>features</classifier>
                <version>${version.karaf}</version>
                <type>xml</type>
            </dependency>
            <dependency>
                <groupId>org.apache.karaf.features</groupId>
                <artifactId>spring</artifactId>
                <classifier>features</classifier>
                <version>${version.karaf}</version>
                <type>xml</type>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.karaf.features</groupId>
                <artifactId>enterprise</artifactId>
                <classifier>features</classifier>
                <version>${version.karaf}</version>
                <type>xml</type>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.karaf.cellar</groupId>
                <artifactId>apache-karaf-cellar</artifactId>
                <classifier>features</classifier>
                <version>${version.karaf.cellar}</version>
                <type>xml</type>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.karaf.cellar</groupId>
                <artifactId>org.apache.karaf.cellar.core</artifactId>
                <version>${version.karaf.cellar}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.karaf.cellar</groupId>
                <artifactId>org.apache.karaf.cellar.config</artifactId>
                <version>${version.karaf.cellar}</version>
            </dependency>

            <!-- End of Apache Karaf dependencies -->

            <dependency>
                <groupId>org.ops4j.pax.web</groupId>
                <artifactId>pax-web-features</artifactId>
                <version>3.1.0</version>
                <classifier>features</classifier>
                <type>xml</type>
            </dependency>
            <dependency>
                <groupId>org.ops4j.pax.web</groupId>
                <artifactId>pax-web-api</artifactId>
                <version>3.1.0</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.6.6</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient-osgi</artifactId>
                <version>${httpclient-osgi.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient-osgi</artifactId>
                <version>${httpclient-osgi.version}</version>
                <type>bundle</type>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpcore-osgi</artifactId>
                <version>${httpcore-osgi.version}</version>
            </dependency>

            <!-- Dependencies for pax exam karaf container -->
            <dependency>
                <groupId>org.ops4j.pax.exam</groupId>
                <artifactId>pax-exam-container-karaf</artifactId>
                <version>${version.pax.exam}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.ops4j.pax.exam</groupId>
                <artifactId>pax-exam-junit4</artifactId>
                <version>${version.pax.exam}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.ops4j.pax.exam</groupId>
                <artifactId>pax-exam</artifactId>
                <version>${version.pax.exam}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.ops4j.pax.url</groupId>
                <artifactId>pax-url-aether</artifactId>
                <version>1.6.0</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>javax.inject</groupId>
                <artifactId>javax.inject</artifactId>
                <version>1</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.carrotsearch</groupId>
                <artifactId>junit-benchmarks</artifactId>
                <version>0.7.2</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.h2database</groupId>
                <artifactId>h2</artifactId>
                <version>1.4.181</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>io.gatling</groupId>
                <artifactId>gatling-app</artifactId>
                <version>${gatling.version}</version>
            </dependency>
            <dependency>
                <groupId>io.gatling</groupId>
                <artifactId>gatling-recorder</artifactId>
                <version>${gatling.version}</version>
            </dependency>
            <dependency>
                <groupId>io.gatling.highcharts</groupId>
                <artifactId>gatling-charts-highcharts</artifactId>
                <version>${gatling.version}</version>
            </dependency>
            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scala-library</artifactId>
                <version>${scala.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.servicemix.bundles</groupId>
                <artifactId>org.apache.servicemix.bundles.jakarta-regexp</artifactId>
                <version>1.4_1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.servicemix.bundles</groupId>
                <artifactId>org.apache.servicemix.bundles.joda-time</artifactId>
                <version>2.3_1</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>ognl</groupId>
                <artifactId>ognl</artifactId>
                <version>3.0.11</version>
            </dependency>
            <dependency>
                <groupId>javassist</groupId>
                <artifactId>javassist</artifactId>
                <version>3.11.0.GA</version>
            </dependency>
            <dependency>
                <groupId>org.antlr</groupId>
                <artifactId>ST4</artifactId>
                <version>4.0.8</version>
                <classifier>complete</classifier>
            </dependency>
            <dependency>
                <groupId>org.glassfish</groupId>
                <artifactId>javax.json</artifactId>
                <version>1.0.4</version>
            </dependency>

            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-jcdi_1.0_spec</artifactId>
                <version>1.0</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-atinject_1.0_spec</artifactId>
                <version>1.0</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-annotation_1.1_spec</artifactId>
                <version>1.0.1</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>org.mvel</groupId>
                <artifactId>mvel2</artifactId>
                <version>2.3.1.Final</version>
            </dependency>

        </dependencies>
    </dependencyManagement>

    <modules>
        <module>api</module>
        <module>common</module>
        <module>metrics</module>
        <module>persistence-spi</module>
        <module>lifecycle-watcher</module>
        <module>persistence-elasticsearch</module>
        <module>services</module>
        <module>rest</module>
        <module>wab</module>
        <module>plugins</module>
        <module>extensions</module>
        <module>tools</module>
        <module>kar</module>
        <module>samples</module>
        <module>package</module>
    </modules>

    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.1</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-bundle-plugin</artifactId>
                    <version>3.2.0</version>
                    <extensions>true</extensions>
                    <configuration>
                        <instructions>
                            <Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>
                        </instructions>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-release-plugin</artifactId>
                    <version>2.5.3</version>
                    <configuration>
                        <useReleaseProfile>false</useReleaseProfile>
                        <autoVersionSubmodules>true</autoVersionSubmodules>
                        <preparationGoals>clean install</preparationGoals>
                        <goals>deploy</goals>
                        <arguments>-Papache-release,integration-tests</arguments>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <version>1.10</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.karaf.tooling</groupId>
                    <artifactId>karaf-maven-plugin</artifactId>
                    <version>${version.karaf}</version>
                    <extensions>true</extensions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>2.10.4</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.servicemix.tooling</groupId>
                    <artifactId>depends-maven-plugin</artifactId>
                    <version>1.4.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <!-- Version more recent than 2.18.1 don't seem to work ! -->
                    <version>2.18.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <!-- Version more recent than 2.18.1 don't seem to work ! -->
                    <version>2.18.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>2.1.2</version>
                    <executions>
                        <execution>
                            <id>attach-sources</id>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>2.3</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>2.10</version>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <extensions>true</extensions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-scm-publish-plugin</artifactId>
                <version>1.1</version>
                <configuration>
                    <checkinComment>[scm-publish] Updating Unomi website</checkinComment>
                    <pubScmUrl>scm:svn:https://svn.apache.org/repos/asf/incubator/unomi/website/</pubScmUrl>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <version>3.4</version>
                <dependencies>
                    <dependency>
                        <groupId>lt.velykis.maven.skins</groupId>
                        <artifactId>reflow-velocity-tools</artifactId>
                        <version>1.1.1</version>
                    </dependency>
                    <!-- Reflow skin requires Velocity >= 1.7  -->
                    <dependency>
                        <groupId>org.apache.velocity</groupId>
                        <artifactId>velocity</artifactId>
                        <version>1.7</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <groupId>org.apache.rat</groupId>
                <artifactId>apache-rat-plugin</artifactId>
                <version>0.11</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.10.4</version>
                <configuration>
                    <tags>
                        <tag>
                            <name>summary</name>
                            <placement>a</placement>
                            <head>MireDot summary (resource title)</head>
                        </tag>
                        <tag>
                            <name>title</name>
                            <placement>a</placement>
                            <head>MireDot title (resource title)</head>
                        </tag>
                        <tag>
                            <name>servicetag</name>
                            <placement>a</placement>
                            <head>MireDot resource tag (label)</head>
                        </tag>
                        <tag>
                            <name>statuscode</name>
                            <placement>a</placement>
                            <head>MireDot resource status code(s)</head>
                        </tag>
                        <tag>
                            <name>responseheader</name>
                            <placement>a</placement>
                            <head>MireDot response header</head>
                        </tag>
                    </tags>
                </configuration>
            </plugin>
            <plugin>
                <groupId>external.atlassian.jgitflow</groupId>
                <artifactId>jgitflow-maven-plugin</artifactId>
                <version>1.0-m5.1</version>
                <configuration>
                    <flowInitContext>
                        <masterBranchName>production</masterBranchName>
                        <developBranchName>master</developBranchName>
                        <featureBranchPrefix>feature-</featureBranchPrefix>
                        <releaseBranchPrefix>release-</releaseBranchPrefix>
                        <hotfixBranchPrefix>hotfix-</hotfixBranchPrefix>
                        <versionTagPrefix>blither-</versionTagPrefix>
                    </flowInitContext>
                    <allowSnapshots>true</allowSnapshots>
                    <allowUntracked>true</allowUntracked>
                    <enableFeatureVersions>true</enableFeatureVersions>
                    <noFeatureBuild>true</noFeatureBuild>
                    <scmCommentPrefix>[jgitflow-maven-plugin] </scmCommentPrefix>
                </configuration>
            </plugin>
        </plugins>

    </build>

    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>2.9</version>
                <configuration>
                    <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
                </configuration>
            </plugin>
        </plugins>
    </reporting>

</project>
