<?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>18</version>
    </parent>

    <!-- Project Information -->

    <groupId>org.apache.chemistry.opencmis</groupId>
    <artifactId>chemistry-opencmis</artifactId>
    <name>Apache Chemistry OpenCMIS</name>
    <version>1.2.0-SNAPSHOT</version>
    <packaging>pom</packaging>

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

    <url>https://chemistry.apache.org/java/</url>

    <ciManagement>
        <system>Apache Build Server</system>
        <url>https://builds.apache.org/view/A-D/view/Chemistry/</url>
    </ciManagement>
    <inceptionYear>2009</inceptionYear>
    <description>
        Apache Chemistry OpenCMIS is an open source implementation of the OASIS CMIS specification.
    </description>

    <licenses>
        <license>
            <name>Apache 2</name>
            <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
        </license>
    </licenses>

    <scm>
        <connection>scm:svn:https://svn.apache.org/repos/asf/chemistry/opencmis/trunk</connection>
        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/chemistry/opencmis/trunk</developerConnection>
        <url>https://svn.apache.org/viewvc/chemistry/opencmis/trunk</url>
    </scm>

    <distributionManagement>
        <site>
            <id>${site.staging.id}</id>
            <url>${site.staging.url}</url>
        </site>
    </distributionManagement>

    <issueManagement>
        <system>Jira</system>
        <url>https://issues.apache.org/jira/browse/CMIS</url>
    </issueManagement>

    <mailingLists>
        <mailingList>
            <name>Chemistry Development List</name>
            <subscribe>dev-subscribe@chemistry.apache.org</subscribe>
            <unsubscribe>dev-unsubscribe@chemistry.apache.org</unsubscribe>
            <post>dev@chemistry.apache.org</post>
            <archive>
                https://mail-archives.apache.org/mod_mbox/chemistry-dev/
            </archive>
        </mailingList>
        <mailingList>
            <name>Chemistry Source Control List</name>
            <subscribe>commits-subscribe@chemistry.apache.org</subscribe>
            <unsubscribe>commits-unsubscribe@chemistry.apache.org</unsubscribe>
            <post>commits@chemistry.apache.org</post>
            <archive>
                https://mail-archives.apache.org/mod_mbox/chemistry-commits/
            </archive>
        </mailingList>
    </mailingLists>

    <!-- Project Environment -->
    <modules>
        <module>chemistry-opencmis-commons/chemistry-opencmis-commons-api</module>
        <module>chemistry-opencmis-commons/chemistry-opencmis-commons-impl</module>
        <module>chemistry-opencmis-client/chemistry-opencmis-client-api</module>
        <module>chemistry-opencmis-client/chemistry-opencmis-client-impl</module>
        <module>chemistry-opencmis-client/chemistry-opencmis-client-bindings</module>
        <module>chemistry-opencmis-server/chemistry-opencmis-server-support</module>
        <module>chemistry-opencmis-server/chemistry-opencmis-server-bindings</module>
        <module>chemistry-opencmis-server/chemistry-opencmis-server-bindings-war</module>
        <module>chemistry-opencmis-server/chemistry-opencmis-server-inmemory</module>
        <module>chemistry-opencmis-server/chemistry-opencmis-server-fileshare</module>
        <module>chemistry-opencmis-server/chemistry-opencmis-server-archetype</module>
        <module>chemistry-opencmis-server/chemistry-opencmis-server-extension-archetype</module>
        <module>chemistry-opencmis-server/chemistry-opencmis-server-async</module>
        <module>chemistry-opencmis-bridge/chemistry-opencmis-bridge</module>
        <module>chemistry-opencmis-test/chemistry-opencmis-test-fit</module>
        <module>chemistry-opencmis-test/chemistry-opencmis-test-tck</module>
        <module>chemistry-opencmis-workbench/chemistry-opencmis-workbench</module>
        <module>chemistry-opencmis-osgi/chemistry-opencmis-osgi-client</module>
        <module>chemistry-opencmis-android/chemistry-opencmis-android-client</module>
        <module>chemistry-opencmis-dist</module>
    </modules>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compile.source>1.7</maven.compile.source>
        <maven.compile.target>1.7</maven.compile.target>
        <docs.start.url>https://chemistry.apache.org/java/opencmis.html</docs.start.url>
        <docs.download.directory>${project.build.directory}/downloaded-site</docs.download.directory>
        <!--
            | Here we configure Maven documentation site (incl. Javadocs) deployment
            |
            | By default site is deployed to:
            | https://svn.apache.org/repos/asf/chemistry/site/trunk/content/java/${site.label}/maven/
            | where site.label = project.version

            | For details/changes see https://chemistry.apache.org/java/documentation-lifecycle.html
            |
            | Note: Site label (or any other property like site.staging.url) can be overriden on the command line to deploy to distinct location during site development
            -->
        <site.label>${project.version}</site.label>
        <site.staging.id>apache-site-staging</site.staging.id>
        <!-- We're using wagon-svn to deploy directly to svn.apache.org to feed CMS with generated docs -->
        <site.staging.protocol>svn:https</site.staging.protocol>
        <site.staging.host>svn.apache.org</site.staging.host>
        <site.staging.folder>/repos/asf/chemistry/site/trunk/content/java/${site.label}/maven</site.staging.folder>
        <site.staging.url>${site.staging.protocol}://${site.staging.host}${site.staging.folder}</site.staging.url>
        <parentBasedir>${project.basedir}</parentBasedir>

        <woodstox.version>4.4.1</woodstox.version>
        <osgi.version>5.0.0</osgi.version>
        <felix.plugin.version>3.3.0</felix.plugin.version>
        <junit.version>4.12</junit.version>
        <surefire.version>2.19.1</surefire.version>
        <failsafe.version>2.19.1</failsafe.version>
        <jacoco.version>0.7.5.201505241946</jacoco.version>
        <slf4j.version>1.7.25</slf4j.version>
        <log4j.version>2.6.1</log4j.version>
        <apacheclient.version>4.2.6</apacheclient.version>
        <cxf.version>3.1.14</cxf.version>
        <okhttp.version>3.8.1</okhttp.version>
    </properties>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.antlr</groupId>
                    <artifactId>maven-gunit-plugin</artifactId>
                    <version>3.3</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>${surefire.version}</version>
                    <configuration>
                        <argLine>--add-modules java.xml.ws</argLine>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <version>${failsafe.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>3.1.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <version>1.8</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>1.2.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>2.4</version>
                    <configuration>
                        <archive>
                            <manifestEntries>
                                <DisableIBMJAXWSEngine>true</DisableIBMJAXWSEngine>
                            </manifestEntries>
                        </archive>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-remote-resources-plugin</artifactId>
                    <version>1.4</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-archetype-plugin</artifactId>
                    <version>3.0.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-release-plugin</artifactId>
                    <version>2.5.3</version>
                </plugin>
                <plugin>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>3.0.1</version>
                </plugin>
                <plugin>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>2.6</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-enforcer-plugin</artifactId>
                    <version>1.4.1</version>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>buildnumber-maven-plugin</artifactId>
                <version>1.2</version>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>create</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <doCheck>false</doCheck>
                    <doUpdate>false</doUpdate>
                    <getRevisionOnlyOnce>true</getRevisionOnlyOnce>
                    <revisionOnScmFailure>?</revisionOnScmFailure>
                    <timestampFormat>{0,date,yyyy-MM-dd'T'HH:mm:ssZ}</timestampFormat>
                </configuration>
            </plugin>
            <!-- Working, but not attached to the deployment.
            Blocked on http://jira.codehaus.org/browse/MINSTALL-82
            <plugin>
                <groupId>net.ju-n.maven.plugins</groupId>
                <artifactId>checksum-maven-plugin</artifactId>
                <version>1.2</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>artifacts</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <algorithms>
                        <algorithm>SHA-256</algorithm>
                    </algorithms>
                </configuration>
            </plugin>
             -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <archiveClasses>true</archiveClasses>
                    <attachClasses>true</attachClasses>
                    <archive>
                        <manifestEntries>
                            <X-Compile-Source-JDK>${maven.compile.source}</X-Compile-Source-JDK>
                            <X-Compile-Target-JDK>${maven.compile.target}</X-Compile-Target-JDK>
                            <X-Apache-SVN-Revision>${buildNumber}</X-Apache-SVN-Revision>
                            <Implementation-Title>${project.name}</Implementation-Title>
                            <Implementation-Version>${project.version}</Implementation-Version>
                            <Implementation-Vendor-Id>${project.groupId}</Implementation-Vendor-Id>
                            <Implementation-Vendor>${project.organization.name}</Implementation-Vendor>
                        </manifestEntries>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <configuration>
                    <useReleaseProfile>false</useReleaseProfile>
                    <!-- TODO: Add autogenerated JIRA release notes -->
                    <preparationGoals>clean install</preparationGoals>
                    <goals>deploy site</goals>
                    <arguments>-Papache-release</arguments>
                    <!-- Add this profile to also deploy the site upon release -->
                    <!-- <arguments>-Papache-release,site-deploy</arguments> -->
                    <autoVersionSubmodules>true</autoVersionSubmodules>
                    <username>${apache.username}</username>
                    <password>${apache.password}</password>
                    <!-- To lock files during release -->
                    <useEditMode>true</useEditMode>
                </configuration>
            </plugin>
            <plugin>
                <inherited>true</inherited>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                    <target>${maven.compile.target}</target>
                    <source>${maven.compile.source}</source>
                    <encoding>UTF-8</encoding>
                    <fork>true</fork>
                </configuration>
            </plugin>
            <plugin>
                <inherited>true</inherited>
                <artifactId>maven-source-plugin</artifactId>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar-no-fork</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <includePom>true</includePom>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-remote-resources-plugin</artifactId>
                <configuration>
                    <appendedResourcesDirectory>${parentBasedir}/src/main/appended-resources</appendedResourcesDirectory>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.sonatype.plugins</groupId>
                <artifactId>maven-version-plugin</artifactId>
                <version>1.0</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <version>2.10</version>
                <configuration>
                    <configLocation>src/main/resources/checkstyle.xml</configLocation>
                    <suppressionsLocation>src/main/resources/suppressions.xml</suppressionsLocation>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <version>3.4</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-gpg-plugin</artifactId>
                <version>1.6</version>
            </plugin>
            <plugin>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifestEntries>
                            <X-Compile-Source-JDK>${maven.compile.source}</X-Compile-Source-JDK>
                            <X-Compile-Target-JDK>${maven.compile.target}</X-Compile-Target-JDK>
                            <X-Apache-SVN-Revision>${buildNumber}</X-Apache-SVN-Revision>
                            <Implementation-Title>${project.name}</Implementation-Title>
                            <Implementation-Version>${project.version}</Implementation-Version>
                            <Implementation-Vendor-Id>${project.groupId}</Implementation-Vendor-Id>
                            <Implementation-Vendor>${project.organization.name}</Implementation-Vendor>
                        </manifestEntries>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-deploy-plugin</artifactId>
                <version>2.8.2</version>
                <dependencies>
                    <dependency>
                        <groupId>com.google.code.maven-svn-wagon</groupId>
                        <artifactId>maven-svn-wagon</artifactId>
                        <version>1.4</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <deployAtEnd>false</deployAtEnd>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <version>3.0.0-M1</version>
                <executions>
                    <execution>
                        <id>enforce-versions</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <requireJavaVersion>
                                    <version>[9,)</version>
                                </requireJavaVersion>
                                <requireMavenVersion>
                                    <version>[3.5,)</version>
                                </requireMavenVersion>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.rat</groupId>
                <artifactId>apache-rat-plugin</artifactId>
                <version>0.12</version>
                <configuration>
                    <licenses>
                        <license implementation="org.apache.rat.analysis.license.FullTextMatchingLicense">
                            <licenseFamilyCategory>OASIS</licenseFamilyCategory>
                            <licenseFamilyName>OASISOpen</licenseFamilyName>
                            <notes />
                            <fullText>.*OASIS Open.*</fullText>
                        </license>
                    </licenses>
                    <licenseFamilies>
                        <licenseFamily implementation="org.apache.rat.license.Apache20LicenseFamily" />
                        <licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily">
                            <familyName>OASISOpen</familyName>
                        </licenseFamily>
                    </licenseFamilies>
                    <excludes>
                        <!-- general -->
                        <exclude>**/*.log</exclude>
                        <exclude>**/*.json</exclude>
                        <exclude>/src/main/resources/META-INF/services/**/*</exclude>
                        <exclude>/src/main/webapp/WEB-INF/classes/META-INF/**/*</exclude>
                        <!-- client -->
                        <exclude>/src/main/assembly/client-with-dependencies-assembly-notice.txt</exclude>
                        <!-- archetype -->
                        <exclude>/src/main/resources/archetype-resources/**/*</exclude>
                        <exclude>/src/test/resources/projects/server/*</exclude>
                        <!-- workbench -->
                        <exclude>/src/main/resources/META-INF/README-cmis-workbench.txt</exclude>
                        <exclude>**/info.plist</exclude>
                    </excludes>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.10.4</version>
                <configuration>
                    <tags>
                        <tag>
                            <name>cmis</name>
                            <placement>a</placement>
                            <head>CMIS:</head>
                        </tag>
                    </tags>
                    <locale>en</locale>
                    <encoding>utf-8</encoding>
                </configuration>
            </plugin>
        </plugins>
        <extensions>
            <extension>
                <groupId>com.google.code.maven-svn-wagon</groupId>
                <artifactId>maven-svn-wagon</artifactId>
                <version>1.4</version>
            </extension>
        </extensions>
    </build>

    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
            <type>jar</type>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-report-plugin</artifactId>
                <version>2.14.1</version>
                <configuration>
                    <aggregate>true</aggregate>
                    <reportsDirectories>
                        <reportsDirectory>${project.build.directory}/surefire-reports/</reportsDirectory>
                        <reportsDirectory>${project.build.directory}/failsafe-reports/</reportsDirectory>
                    </reportsDirectories>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jxr-plugin</artifactId>
                <version>2.2</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>2.7</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <inherited>false</inherited>
                <reportSets>
                    <reportSet>
                        <id>aggregate</id>
                        <reports>
                            <report>aggregate</report>
                        </reports>
                    </reportSet>
                </reportSets>
                <configuration>
                    <doctitle>Apache Chemistry OpenCMIS ${project.version}</doctitle>
                    <windowtitle>Apache Chemistry OpenCMIS ${project.version}</windowtitle>

                    <sourcepath>
                        ${basedir}/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java:
                        ${basedir}/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java:
                        ${basedir}/chemistry-opencmis-client/chemistry-opencmis-client-api/src/main/java:
                        ${basedir}/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java:
                        ${basedir}/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java:
                        ${basedir}/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java:
                        ${basedir}/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java:
                        ${basedir}/chemistry-opencmis-server/chemistry-opencmis-server-async/src/main/java:
                        ${basedir}/chemistry-opencmis-bridge/chemistry-opencmis-bridge/src/main/java:
                        ${basedir}/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java
                    </sourcepath>
 
                    <groups>
                        <group>
                            <title>OpenCMIS Client API</title>
                            <packages>org.apache.chemistry.opencmis.client:org.apache.chemistry.opencmis.client.api:org.apache.chemistry.opencmis.client.util</packages>
                        </group>
                        <group>
                            <title>OpenCMIS Commons API</title>
                            <packages>org.apache.chemistry.opencmis.commons:org.apache.chemistry.opencmis.commons.*</packages>
                        </group>
                        <group>
                            <title>OpenCMIS Bindings SPI</title>
                            <packages>org.apache.chemistry.opencmis.client.bindings</packages>
                        </group>
                        <group>
                            <title>OpenCMIS Server</title>
                            <packages>org.apache.chemistry.opencmis.commons.server:org.apache.chemistry.opencmis.commons.impl.server:org.apache.chemistry.opencmis.server.support:org.apache.chemistry.opencmis.server.support.wrapper:org.apache.chemistry.opencmis.server.support.query:org.apache.chemistry.opencmis.server.filter:org.apache.chemistry.opencmis.server.shared</packages>
                        </group>
                        <group>
                            <title>OpenCMIS Server (async)</title>
                            <packages>org.apache.chemistry.opencmis.server.async</packages>
                        </group>
                        <group>
                            <title>OpenCMIS Bridge</title>
                            <packages>org.apache.chemistry.opencmis.bridge*</packages>
                        </group>
                        <group>
                            <title>OpenCMIS TCK</title>
                            <packages>org.apache.chemistry.opencmis.tck*</packages>
                        </group>
                    </groups>

                    <sourceFileExcludes>
                        <exclude>**/CmisQl*</exclude>
                        <exclude>**/CmisQueryWalk*</exclude>
                        <exclude>**/TextSearch*</exclude>
                        <exclude>org/apache/chemistry/opencmis/commons/impl/*</exclude>
                        <exclude>org/apache/chemistry/opencmis/commons/impl/dataobjects/**</exclude>
                        <exclude>org/apache/chemistry/opencmis/commons/impl/json/**</exclude>
                        <exclude>org/apache/chemistry/opencmis/commons/impl/jaxb/**</exclude>
                        <exclude>org/apache/chemistry/opencmis/commons/impl/server/ObjectInfoImpl*</exclude>
                        <exclude>org/apache/chemistry/opencmis/commons/impl/server/RenditionInfoImpl*</exclude>
                        <exclude>org/apache/chemistry/opencmis/commons/impl/server/LinkInfoImp*</exclude>
                        <exclude>org/apache/chemistry/opencmis/client/runtime/**</exclude>
                        <exclude>org/apache/chemistry/opencmis/client/bindings/impl/**</exclude>
                        <exclude>org/apache/chemistry/opencmis/client/bindings/cache/**</exclude>
                        <exclude>org/apache/chemistry/opencmis/client/bindings/spi/**</exclude>
                        <exclude>org/apache/chemistry/opencmis/server/impl/**</exclude>
                        <exclude>org/apache/chemistry/opencmis/server/shared/**</exclude>
                        <exclude>org/apache/chemistry/opencmis/server/support/filter/**</exclude>
                        <exclude>org/apache/chemistry/opencmis/server/async/impl/**</exclude>
                    </sourceFileExcludes>
                    <tags>
                        <tag>
                            <name>cmis</name>
                            <placement>a</placement>
                            <head>CMIS:</head>
                        </tag>
                    </tags>
                    <locale>en</locale>
                    <encoding>utf-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </reporting>

    <profiles>
        <profile>
            <id>coverage</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.jacoco</groupId>
                        <artifactId>jacoco-maven-plugin</artifactId>
                        <version>${jacoco.version}</version>
                        <executions>
                            <execution>
                                <id>default-prepare-agent</id>
                                <goals>
                                    <goal>prepare-agent</goal>
                                </goals>
                            </execution>
                            <execution>
                                <id>default-report</id>
                                <goals>
                                    <goal>report</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <!--
            Extending the default -Papache-release profile used *only*
            during releases
        -->
        <profile>
            <id>apache-release</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <!--
                        We want to package up licenses
                        resources in the JARs produced
                    -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-remote-resources-plugin</artifactId>
                        <configuration>
                            <appendedResourcesDirectory>${parentBasedir}/src/main/appended-resources</appendedResourcesDirectory>
                        </configuration>
                    </plugin>
                    <plugin>
                        <artifactId>maven-war-plugin</artifactId>
                        <configuration>
                            <webResources>
                                <resource>
                                    <!-- this is relative to the pom.xml directory -->
                                    <directory>${project.build.directory}/maven-shared-archive-resources</directory>
                                    <includes>
                                        <include>META-INF/*</include>
                                    </includes>
                                </resource>
                            </webResources>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>site-deploy</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-site-plugin</artifactId>
                        <inherited>false</inherited>
                        <executions>
                            <execution>
                                <id>site-deploy-toplevel</id>
                                <goals>
                                    <goal>deploy</goal>
                                </goals>
                                <phase>site</phase>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>disable-java8-doclint</id>
            <activation>
                <jdk>[1.8,)</jdk>
            </activation>
            <properties>
                <additionalparam>-Xdoclint:accessibility -Xdoclint:html -Xdoclint:reference -Xdoclint:syntax</additionalparam>
            </properties>
        </profile>
    </profiles>
</project>
