<?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/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.apache</groupId>
        <artifactId>apache</artifactId>
        <version>17</version>
    </parent>

    <groupId>org.apache.streams</groupId>
    <artifactId>streams-master</artifactId>
    <name>Apache Streams :: streams-master</name>
    <description>Apache Streams Master Pom</description>
    <packaging>pom</packaging>
    <version>0.3-incubating-SNAPSHOT</version>

    <inceptionYear>2012</inceptionYear>

    <!-- <url>http://people.apache.org/sblackmon/${project.version}/${project.artifactId}</url> -->
    <url>http://streams.incubator.apache.org/site/${project.version}/${project.artifactId}</url>

    <licenses>
        <license>
            <name>Apache License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
            <comments>A business-friendly OSS license</comments>
        </license>
    </licenses>

    <scm>
        <connection>scm:git:git@github.com:apache/incubator-streams-master.git</connection>
        <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-streams-master.git</developerConnection>
        <url>scm:git:git@github.com:apache/incubator-streams-master.git</url>
    </scm>

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

    <ciManagement>
        <system>jenkins</system>
        <url>http://builds.apache.org/job/Streams%20Master/</url>
    </ciManagement>

    <prerequisites>
        <maven>3.0.5</maven>
    </prerequisites>

    <mailingLists>
      <!-- <mailingList>
          <name>User Mailing List</name>
          <post>user@streams.incubator.apache.org</post>
          <subscribe>user-subscribe@streams.incubator.apache.org</subscribe>
          <unsubscribe>user-unsubscribe@streams.incubator.apache.org</unsubscribe>
          <archive>http://mail-archives.apache.org/mod_mbox/incubator-streams-user/</archive>
      </mailingList> -->
      <mailingList>
            <name>Dev Mailing List</name>
            <post>dev@streams.incubator.apache.org</post>
            <subscribe>dev-subscribe@streams.incubator.apache.org</subscribe>
            <unsubscribe>dev-unsubscribe@streams.incubator.apache.org</unsubscribe>
            <archive>http://mail-archives.apache.org/mod_mbox/incubator-streams-dev/</archive>
        </mailingList>
        <mailingList>
            <name>Commits Mailing List</name>
            <post>commits@streams.incubator.apache.org</post>
            <subscribe>commits-subscribe@streams.incubator.apache.org</subscribe>
            <unsubscribe>commits-unsubscribe@streams.incubator.apache.org</unsubscribe>
            <archive>http://mail-archives.apache.org/mod_mbox/incubator-streams-commits/</archive>
        </mailingList>
    </mailingLists>

    <developers>
      <developer>
          <id>rbaxter85</id>
          <name>Ryan Baxter</name>
          <email>rbaxter85@apache.org</email>
          <url>http://twitter.com/ryanjbaxter</url>
          <roles>
            <role>Committer</role>
          </roles>
      </developer>
      <developer>
            <id>sblackmon</id>
            <name>Steve Blackmon</name>
            <email>sblackmon@apache.org</email>
            <url>http://twitter.com/steveblackmon</url>
            <roles>
              <role>PPMC Member</role>
              <role>Committer</role>
            </roles>
            <properties>
              <picUrl>https://avatars.githubusercontent.com/steveblackmon</picUrl>
            </properties>
        </developer>
        <developer>
          <id>rdouglas</id>
          <name>Robert Douglas</name>
          <email>rdouglas@apache.org</email>
          <roles>
            <role>PPMC Member</role>
            <role>Committer</role>
          </roles>
        </developer>
        <developer>
          <id>ate</id>
          <name>Ate Douma</name>
          <email>ate@apache.org</email>
          <url>http://twitter.com/atedouma</url>
          <roles>
            <role>Mentor</role>
            <role>PPMC Member</role>
            <role>Committer</role>
          </roles>
      </developer>
      <developer>
          <id>rebanks</id>
          <name>Ryan Ebanks</name>
          <email>rebanks@apache.org</email>
          <url>http://twitter.com/ebanksre</url>
          <roles>
            <role>PPMC Member</role>
            <role>Committer</role>
          </roles>
      </developer>
      <developer>
          <id>chansen</id>
          <name>Carol Hansen</name>
          <email>chansen@apache.org</email>
          <url>http://twitter.com/carolbirgitta</url>
          <roles>
            <role>PPMC Member</role>
            <role>Committer</role>
          </roles>
      </developer>
      <developer>
          <id>ahart</id>
          <name>Andrew Hart</name>
          <email>ahart@apache.org</email>
          <url>http://twitter.com/andrewfhart</url>
          <roles>
            <role>Mentor</role>
            <role>PPMC Member</role>
            <role>Committer</role>
          </roles>
      </developer>
      <developer>
          <id>mfranklin</id>
          <name>Matt Franklin</name>
          <email>mfranklin@apache.org</email>
          <url>http://twitter.com/mattfranklin</url>
          <roles>
            <role>Mentor</role>
            <role>PPMC Member</role>
            <role>Committer</role>
          </roles>
      </developer>
      <developer>
        <id>letourneau</id>
        <name>Jason Letourneau</name>
        <email>letourneau@apache.org</email>
        <url>http://twitter.com/jletourneau8080</url>
        <roles>
          <role>PPMC Member</role>
          <role>Committer</role>
        </roles>
      </developer>
      <developer>
        <id>craigmcc</id>
        <name>Craig McClanahan</name>
        <email>craigmcc@apache.org</email>
        <url>http://twitter.com/craigmcclanahan</url>
        <roles>
          <role>Mentor</role>
          <role>PPMC Member</role>
          <role>Committer</role>
        </roles>
      </developer>
      <developer>
        <id>dsullivan</id>
        <name>Danny Sullivan</name>
        <email>dsullivan@apache.org</email>
        <url>http://twitter.com/dbsullivan23</url>
        <roles>
          <role>PPMC Member</role>
          <role>Committer</role>
        </roles>
      </developer>
    </developers>

    <repositories>
        <repository>
            <id>apache-repo</id>
            <name>Apache Repository</name>
            <url>https://repository.apache.org/content/repositories/releases</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>

    <distributionManagement>
        <repository>
            <id>streams.releases</id>
            <name>Streams Releases</name>
            <url>${release.repository.url}</url>
        </repository>
        <!-- Snapshots (not-releases) are published to this repository -->
        <snapshotRepository>
            <id>streams.snapshots</id>
            <name>Streams Snapshots</name>
            <url>${snapshot.repository.url}</url>
        </snapshotRepository>
        <site>
            <id>site.streams.master</id>
            <url>scm:svn:https://svn.apache.org/repos/infra/websites/production/streams/content/site/${project.version}/${project.artifactId}/</url>
        </site>
        <!-- <site>
            <id>site.streams.sblackmon.home</id>
            <url>scp://people.apache.org/home/sblackmon/public_html/${project.version}/${project.artifactId}/</url>
        </site> -->
    </distributionManagement>

    <properties>

        <!-- Build Properties -->
        <java.version>1.7</java.version>
        <scala.version>2.10</scala.version>
        <maven.javadoc.failOnError>false</maven.javadoc.failOnError>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <streams.version>0.3-incubating-SNAPSHOT</streams.version>

        <!-- Release Properties -->
        <snapshot.repository.url>
            https://repository.apache.org/content/repositories/snapshots
        </snapshot.repository.url>
        <release.repository.url>
            https://repository.apache.org/service/local/staging/deploy/maven2
        </release.repository.url>

        <!-- Plugin and Plugin Dependency Versions -->
        <apache-rat.plugin.version>0.11</apache-rat.plugin.version>
        <build-helper.plugin.version>1.8</build-helper.plugin.version>
        <bundle.plugin.version>1.4.3</bundle.plugin.version>
        <compiler.plugin.version>3.0</compiler.plugin.version>
        <clean.plugin.version>2.6</clean.plugin.version>
        <dependency.plugin.version>2.8</dependency.plugin.version>
        <depgraph.plugin.version>1.0.2</depgraph.plugin.version>
        <docker.plugin.version>0.11.5-M1</docker.plugin.version>
        <enforcer.plugin.version>1.3.1</enforcer.plugin.version>
        <failsafe.plugin.version>2.17</failsafe.plugin.version>
        <jar.plugin.version>2.6</jar.plugin.version>
        <javadoc.plugin.version>2.10.2</javadoc.plugin.version>
        <pax.plugin.version>1.5</pax.plugin.version>
        <reflections.plugin.version>0.9.8</reflections.plugin.version>
        <remote-resources.plugin.version>1.4</remote-resources.plugin.version>
        <reports.plugin.version>2.8.1</reports.plugin.version>
        <resources.plugin.version>2.7</resources.plugin.version>
        <scm.plugin.version>1.9.4</scm.plugin.version>
        <shade.plugin.version>2.3</shade.plugin.version>
        <site.plugin.version>3.4</site.plugin.version>
        <source.plugin.version>2.4</source.plugin.version>
        <surefire.plugin.version>2.17</surefire.plugin.version>
        <wagon.plugin.version>2.5</wagon.plugin.version>
        <war.plugin.version>2.5</war.plugin.version>

        <!-- Library Dependency Versions -->
        <jackson.version>2.3.2</jackson.version>
        <jackson-xml-databind.version>0.6.2</jackson-xml-databind.version>
        <aalto.version>0.9.9</aalto.version>
        <joda-time.version>2.2</joda-time.version>
        <rave.version>0.22</rave.version>
        <datastax.version>1.0.3</datastax.version>
        <jsonschema2pojo.version>0.4.6</jsonschema2pojo.version>
        <jaxb2.version>0.8.3</jaxb2.version>
        <jaxb2-basics.version>0.8.4</jaxb2-basics.version>
        <jaxbutil.version>1.2.6</jaxbutil.version>
        <junit.version>4.11</junit.version>
        <slf4j.version>1.7.6</slf4j.version>
        <log4j.version>1.2.16</log4j.version>
        <logback.version>1.1.1</logback.version>
        <hamcrest.version>1.3</hamcrest.version>
        <commons-io.version>2.4</commons-io.version>
        <commons-codec.version>1.10</commons-codec.version>
        <commons-validator.version>1.4.0</commons-validator.version>
        <commons-lang3.version>3.1</commons-lang3.version>
        <typesafe.config.version>1.2.0</typesafe.config.version>
        <reflections.version>0.9.9</reflections.version>
        <orgjson.version>20140107</orgjson.version>
        <guava.version>17.0</guava.version>
        <clojure.version>1.4.0</clojure.version>
        <zookeeper.version>3.4.5</zookeeper.version>
        <netty.version>3.8.0.Final</netty.version>
        <json-path.version>0.9.1</json-path.version>
        <build-helper.version>1.8</build-helper.version>
        <facebook4j.version>2.1.0</facebook4j.version>
        <mockito.version>1.9.5</mockito.version>
        <powermock.version>1.5.6</powermock.version>
        <httpcomponents.core.version>4.3.3</httpcomponents.core.version>
        <httpcomponents.client.version>4.3.5</httpcomponents.client.version>

        <!-- osgi configuration -->
        <org.osgi.service.http.port>8080</org.osgi.service.http.port>
        <org.osgi.service.http.port.secure>8443</org.osgi.service.http.port.secure>

    </properties>

    <build>

        <pluginManagement>
            <plugins>
                <plugin>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>${clean.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-remote-resources-plugin</artifactId>
                    <version>${remote-resources.plugin.version}</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>process</goal>
                            </goals>
                            <configuration>
                                <resourceBundles>
                                    <!-- Will generate META-INF/DEPENDENCIES META-INF/LICENSE META-INF/NOTICE -->
                                    <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
                                    <!-- Will generate META-INF/DISCLAIMER  -->
                                    <resourceBundle>org.apache:apache-incubator-disclaimer-resource-bundle:1.1</resourceBundle>
                                </resourceBundles>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>${resources.plugin.version}</version>
                    <configuration>
                        <encoding>${project.build.sourceEncoding}</encoding>
                    </configuration>
                    <executions>
                        <execution>
                            <id>copy-resources</id>
                            <!-- validate is first to run-->
                            <!-- copy these files to src/site/resources -->
                            <phase>validate</phase>
                            <goals>
                                <goal>copy-resources</goal>
                            </goals>
                            <configuration>
                                <outputDirectory>${basedir}/src/site/resources</outputDirectory>
                                <resources>
                                    <resource>
                                        <directory>src/main/jsonschema</directory>
                                    </resource>
                                    <resource>
                                        <directory>src/main/xmlschema</directory>
                                    </resource>
                                    <resource>
                                        <directory>src/main/resources</directory>
                                    </resource>
                                </resources>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.jsonschema2pojo</groupId>
                    <artifactId>jsonschema2pojo-maven-plugin</artifactId>
                    <version>${jsonschema2pojo.version}</version>
                    <configuration>
                        <addCompileSourceRoot>true</addCompileSourceRoot>
                        <generateBuilders>true</generateBuilders>
                        <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                        <sourcePaths>
                            <sourcePath>src/main/jsonschema</sourcePath>
                        </sourcePaths>
                        <useLongIntegers>true</useLongIntegers>
                        <useJodaDates>true</useJodaDates>
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>generate</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.jvnet.jaxb2.maven2</groupId>
                    <artifactId>maven-jaxb2-plugin</artifactId>
                    <version>${jaxb2.version}</version>
                    <configuration>
                        <schemaDirectory>src/main/xmlschema</schemaDirectory>
                        <generateDirectory>target/generated-sources/jaxb2</generateDirectory>
                        <verbose>true</verbose>
                        <debug>true</debug>
                        <encoding>${project.build.sourceEncoding}</encoding>
                        <forceRegenerate>true</forceRegenerate>
                        <removeOldOutput>false</removeOldOutput>
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>generate</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <version>${build-helper.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-enforcer-plugin</artifactId>
                    <version>${enforcer.plugin.version}</version>
                    <executions>
                        <execution>
                            <id>enforce-java</id>
                            <goals>
                                <goal>enforce</goal>
                            </goals>
                            <configuration>
                                <rules>
                                    <requireJavaVersion>
                                        <message>Java 6 or higher is required to compile this module</message>
                                        <version>${java.version}</version>
                                    </requireJavaVersion>
                                </rules>
                            </configuration>
                        </execution>
                        <execution>
                            <id>enforce-banned-dependencies</id>
                            <goals>
                                <goal>enforce</goal>
                            </goals>
                            <configuration>
                                <rules>
                                    <bannedDependencies>
                                        <excludes>
                                            <exclude>org.slf4j:slf4j-log4j12</exclude>
                                            <exclude>org.slf4j:slf4j-jcl</exclude>
                                            <exclude>org.slf4j:slf4j-jdk14</exclude>
                                            <exclude>org.log4j:log4j</exclude>
                                            <exclude>commons-logging:commons-logging</exclude>
                                        </excludes>
                                    </bannedDependencies>
                                </rules>
                                <fail>true</fail>
                            </configuration>
                        </execution>
                        <execution>
                            <id>enforce-no-snapshots</id>
                            <goals>
                                <goal>enforce</goal>
                            </goals>
                            <configuration>
                                <rules>
                                    <requireReleaseDeps>
                                        <message>No Snapshots Allowed!</message>
                                        <!-- Don't fail for modules within this project's groupId or sub-groupIds -->
                                        <excludes>
                                            <exclude>org.apache.streams:*</exclude>
                                            <exclude>org.apache.streams.*:*</exclude>
                                        </excludes>
                                        <!-- Don't fail for parents being snapshots as the only parent modules are within this project -->
                                        <failWhenParentIsSnapshot>false</failWhenParentIsSnapshot>
                                    </requireReleaseDeps>
                                </rules>
                                <fail>true</fail>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <version>${failsafe.plugin.version}</version>
                    <executions>
                        <execution>
                            <id>integration-tests</id>
                            <goals>
                                <goal>integration-test</goal>
                                <goal>verify</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>${jar.plugin.version}</version>
                    <configuration>
                        <skipIfEmpty>true</skipIfEmpty>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.reflections</groupId>
                    <artifactId>reflections-maven</artifactId>
                    <version>${reflections.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.ops4j</groupId>
                    <artifactId>maven-pax-plugin</artifactId>
                    <version>${pax.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-bundle-plugin</artifactId>
                    <version>${bundle.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>${site.plugin.version}</version>
                    <dependencies>
                        <dependency>
                            <groupId>org.apache.maven.doxia</groupId>
                            <artifactId>doxia-module-markdown</artifactId>
                            <version>1.6</version>
                        </dependency>
                        <dependency>
                            <groupId>org.apache.maven.wagon</groupId>
                            <artifactId>wagon-ssh</artifactId>
                            <version>${wagon.plugin.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>org.apache.maven.wagon</groupId>
                            <artifactId>wagon-scm</artifactId>
                            <version>${wagon.plugin.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>org.apache.maven.scm</groupId>
                            <artifactId>maven-scm-api</artifactId>
                            <version>${scm.plugin.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>org.apache.maven.scm</groupId>
                            <artifactId>maven-scm-provider-svn-commons</artifactId>
                            <version>${scm.plugin.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>org.apache.maven.scm</groupId>
                            <artifactId>maven-scm-provider-svnexe</artifactId>
                            <version>${scm.plugin.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <!-- Apache POM doesn't define default war-plugin version, so do it here -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>${war.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>${dependency.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>com.github.ferstl</groupId>
                    <artifactId>depgraph-maven-plugin</artifactId>
                    <version>${depgraph.plugin.version}</version>
                </plugin>
            </plugins>
        </pluginManagement>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-remote-resources-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>process</goal>
                        </goals>
                        <configuration>
                            <!-- add apache-incubator-disclaimer-resource-bundle to be removed again when graduating from Incubator -->
                            <resourceBundles combine.children="append">
                                <resourceBundle>org.apache:apache-incubator-disclaimer-resource-bundle:1.1</resourceBundle>
                            </resourceBundles>
                            <properties>
                                <projectName>${notice.file.project.name}</projectName>
                            </properties>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <!-- copy legal files added/appended by maven-remote-resources-plugin
                         from /WEB-INF/classes/META-INF/ to root /META-INF folder as expected
                         for war artifacts,
                    -->
                    <webResources>
                        <resource>
                            <directory>${project.build.directory}/classes</directory>
                            <includes>
                                <include>META-INF/LICENSE</include>
                                <include>META-INF/NOTICE</include>
                                <include>META-INF/DEPENDENCIES</include>
                                <include>META-INF/DISCLAIMER</include>
                            </includes>
                            <filtering>false</filtering>
                        </resource>
                    </webResources>
                    <!-- exclude legal files added/appended by maven-remote-resources-plugin
                         under /WEB-INF/classes/META-INF/ as for war artifacts these should (see above)
                         be provided under /META-INF/ instead.
                     -->
                    <packagingExcludes>
                        WEB-INF/classes/META-INF/LICENSE,
                        WEB-INF/classes/META-INF/LICENSE.txt,
                        WEB-INF/classes/META-INF/NOTICE,
                        WEB-INF/classes/META-INF/NOTICE.txt,
                        WEB-INF/classes/META-INF/DISCLAIMER,
                        WEB-INF/classes/META-INF/DEPENDENCIES
                    </packagingExcludes>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>${javadoc.plugin.version}</version>
                <configuration>
                    <additionalparam>-Xdoclint:none</additionalparam>
                    <aggregate>true</aggregate>
                    <failOnError>false</failOnError>
                    <minmemory>128m</minmemory>
                    <maxmemory>1g</maxmemory>
                </configuration>

            </plugin>

        </plugins>


    </build>

    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>${reports.plugin.version}</version>
                <configuration>
                  <customBundle>${project.basedir}/src/site/custom/project-info-report.properties</customBundle>
                  <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
                </configuration>
                <reportSets>
                  <reportSet>
                    <reports><!-- select reports -->
                      <!--<report>cim</report>-->
                      <!--<report>scm</report>-->
                      <report>license</report>
                      <report>mailing-list</report>
                      <report>project-team</report>
                      <report>scm</report>
                      <report>help</report>
                      <report>issue-tracking</report>
                      <report>dependencies</report>
                      <report>dependency-info</report>
                      <report>dependency-management</report>
                      <report>distribution-management</report>
                      <report>plugin-management</report>
                    </reports>
                  </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <artifactId>maven-site-plugin</artifactId>
                <version>${site.plugin.version}</version>
                <configuration>
                    <topSiteURL>scm:svn:https://svn.apache.org/repos/infra/websites/production/streams/content/site/${project.version}/${project.artifactId}</topSiteURL>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.github.ferstl</groupId>
                <artifactId>depgraph-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </reporting>

    <profiles>
        <profile>
            <id>apache-release</id>
            <properties>
                <skipTests>false</skipTests>
                <maven.test.skip>false</maven.test.skip>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <version>${source.plugin.version}</version>
                        <configuration>
                            <skipSource>true</skipSource>
                        </configuration>
                        <executions>
                            <execution>
                                <id>attach-sources</id>
                                <goals>
                                    <goal>jar-no-fork</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-jar-plugin</artifactId>
                        <configuration>
                            <skip>false</skip>
                        </configuration>
                        <executions>
                            <execution>
                                <id>test-jar</id>
                                <goals>
                                    <goal>test-jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <dependencies>
                            <dependency>
                                <groupId>org.apache.apache.resources</groupId>
                                <artifactId>apache-source-release-assembly-descriptor</artifactId>
                                <version>1.0.5</version>
                            </dependency>
                        </dependencies>
                        <executions>
                            <execution>
                                <id>source-release-assembly</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                                <configuration>
                                    <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
                                    <descriptorRefs>
                                        <descriptorRef>source-release</descriptorRef>
                                    </descriptorRefs>
                                    <tarLongFileMode>gnu</tarLongFileMode>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <artifactId>maven-release-plugin</artifactId>
                        <configuration>
                            <releaseProfiles>apache-release</releaseProfiles>
                            <preparationGoals>clean install</preparationGoals>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.rat</groupId>
                        <artifactId>apache-rat-plugin</artifactId>
                        <version>${apache-rat.plugin.version}</version>
                        <executions>
                            <execution>
                                <phase>verify</phase>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <excludes>
                                <exclude>.git</exclude>
                                <exclude>.gitignore</exclude>
                                <exclude>.git/**</exclude>
                                <exclude>.idea/**</exclude>
                                <exclude>**/DEPENDENCIES</exclude>
                                <exclude>**/LICENSE</exclude>
                                <exclude>**/MANIFEST.MF</exclude>
                                <exclude>**/NOTICE</exclude>
                                <exclude>**/README.*</exclude>
                                <exclude>**/target/**</exclude>
                                <exclude>**/overlays/**</exclude>
                                <exclude>**/src/main/resources/**</exclude>
                                <exclude>**/src/test/resources/**</exclude>
                                <exclude>**/.gitignore</exclude>
                                <exclude>**/*.properties</exclude>
                                <exclude>**/*.iml</exclude>
                                <exclude>**/*.ini</exclude>
                                <exclude>**/*.jar</exclude>
                                <exclude>dependency-reduced-pom.xml</exclude>
                                <exclude>rat.txt</exclude>
                            </excludes>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <configuration>
                            <skipTests>false</skipTests>
                            <skipExec>true</skipExec>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>com.github.ferstl</groupId>
                        <artifactId>depgraph-maven-plugin</artifactId>
                        <version>${depgraph.plugin.version}</version>
                    </plugin>
                </plugins>
            </build>
            <reporting>
                <plugins>
                    <plugin>
                        <artifactId>maven-project-info-reports-plugin</artifactId>
                        <configuration>
                            <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <reportSets>
                            <reportSet>
                                <id>aggregate</id>
                                <reports>
                                    <report>javadoc-no-fork</report>
                                    <report>test-javadoc-no-fork</report>
                                    <report>aggregate</report>
                                </reports>
                            </reportSet>
                            <reportSet>
                                <id>html</id>
                                <reports>
                                    <report>javadoc</report>
                                </reports>
                            </reportSet>
                        </reportSets>
                    </plugin>
                    <plugin>
                        <artifactId>maven-site-plugin</artifactId>
                    </plugin>
                    <plugin>
                        <groupId>com.github.ferstl</groupId>
                        <artifactId>depgraph-maven-plugin</artifactId>
                        <version>${depgraph.plugin.version}</version>
                    </plugin>
		                <plugin>
                        <groupId>org.apache.rat</groupId>
                        <artifactId>apache-rat-plugin</artifactId>
                        <version>${apache-rat.plugin.version}</version>
                    </plugin>
                </plugins>
            </reporting>
        </profile>
    </profiles>
</project>
