<?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.commons</groupId>
        <artifactId>commons-parent</artifactId>
        <version>42</version>
    </parent>

    <artifactId>commons-rdf-parent</artifactId>
    <version>0.5.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <name>Commons RDF</name>
    <description>Commons Java API for RDF 1.1</description>

    <url>https://commons.apache.org/proper/commons-rdf/</url>

    <inceptionYear>2015</inceptionYear>

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <project.build.encoding>UTF-8</project.build.encoding>
        <commons.encoding>UTF-8</commons.encoding>
        <commons.componentid>rdf</commons.componentid>
        <commons.module.name>org.apache.commons.rdf</commons.module.name>
        <commons.release.version>0.5.0</commons.release.version>
        <commons.jira.id>COMMONSRDF</commons.jira.id>
        <commons.jira.pid>12316620</commons.jira.pid>
        <commons.site.path>rdf</commons.site.path>
	<commons.scmPubUrl>https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-rdf/</commons.scmPubUrl>
    <!--
        <commons.scmPubCheckoutDirectory>${project.build.directory}/site-content</commons.scmPubCheckoutDirectory>
        -->
        <commons.javadoc.java.link>https://docs.oracle.com/javase/8/docs/api/</commons.javadoc.java.link>
        
        <!-- upgrade from 0.8.0 for Java 8 support -->
        <commons.japicmp.version>0.9.1</commons.japicmp.version>
        
        
	<!--  NOTE: jsonldjava is also used by rdf4j and jena, check the version 
	      is cross-compatible -->
        <jsonldjava.version>0.9.0</jsonldjava.version>
        <rdf4j.version>2.2.2</rdf4j.version>
        <jena.version>3.4.0</jena.version>
        <!--  NOTE: dexx and xerces versions should match 
        the versions marked as <optional> in jena-osgi pom
         -->
        <dexx.collection.version>0.6</dexx.collection.version>
        <servicemix.xerces.version>2.11.0_1</servicemix.xerces.version>


        <!-- Test dependencies -->
        <slf4j.version>1.7.20</slf4j.version>
        <junit.version>4.12</junit.version>
        <skipAPICompatCheck>false</skipAPICompatCheck>
    </properties>

    <scm>
        <url>https://git-wip-us.apache.org/repos/asf/commons-rdf.git</url>
        <connection>scm:git:https://git-wip-us.apache.org/repos/asf/commons-rdf.git</connection>
        <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/commons-rdf.git</developerConnection>
        <tag>HEAD</tag>
    </scm>

    <issueManagement>
        <system>Jira</system>
        <url>https://issues.apache.org/jira/browse/COMMONSRDF</url>
    </issueManagement>
    <ciManagement>
      <system>jenkins</system>
      <url>https://builds.apache.org/</url>
    </ciManagement>

    <developers>
        <developer>
            <id>lewismc</id>
            <name>Lewis John McGibbney</name>
            <email>lewismc[at]apache[dot]org</email>
            <roles>
                <role>Committer</role>
                <role>Emeritus PPMC Member</role>
                <role>Emeritus Champion</role>
            </roles>
            <timezone>+1</timezone>
        </developer>
        <developer>
            <id>ggregory</id>
            <name>Gary Gregory</name>
            <email>ggregory[at]apache[dot]org</email>
            <roles>
                <role>Committer</role>
                <role>Emeritus PPMC Member</role>
                <role>Emeritus Mentor</role>
            </roles>
            <timezone>+1</timezone>
        </developer>
        <developer>
            <id>wikier</id>
            <name>Sergio Fernández</name>
            <email>wikier[at]apache[dot]org</email>
            <url>http://www.wikier.org</url>
            <roles>
                <role>Committer</role>
                <role>Emeritus PPMC Member</role>
            </roles>
            <timezone>+1</timezone>
        </developer>
        <developer>
            <id>stain</id>
            <name>Stian Soiland-Reyes</name>
            <email>stain[at]apache[dot]org</email>
            <url>http://orcid.org/0000-0001-9842-9718</url>
            <roles>
                <role>Committer</role>
                <role>PMC Member</role>
                <role>Emeritus PPMC Member</role>
            </roles>
            <timezone>+0</timezone>
        </developer>
        <developer>
            <id>enridaga</id>
            <name>Enrico Daga</name>
            <email>enridaga[at]apache[dot]org</email>
            <roles>
                <role>Committer</role>
                <role>Emeritus PPMC Member</role>
            </roles>
            <timezone>+0</timezone>
        </developer>
        <developer>
            <id>britter</id>
            <name>Benedikt Ritter</name>
            <email>britter[at]apache[dot]org</email>
            <roles>
                <role>Committer</role>
                <role>PMC Member</role>
                <role>Emeritus PPMC Member</role>
            </roles>
            <timezone>+1</timezone>
        </developer>
        <developer>
            <id>ansell</id>
            <name>Peter Ansell</name>
            <email>ansell[at]apache[dot]org</email>
            <url>https://github.com/ansell</url>
            <roles>
                <role>Reviewer</role>
                <role>Emeritus Committer</role>
                <role>Emeritus PPMC Member</role>
            </roles>
        </developer>
    </developers>

    <contributors>
        <contributor>
            <name>Reto Gmür</name>
            <email>reto[at]apache[dot]org</email>
            <roles>
                <role>Emeritus Committer</role>
                <role>Emeritus PPMC Member</role>
            </roles>
            <timezone>+1</timezone>
        </contributor>
        <contributor>
            <name>Andy Seaborne</name>
            <email>andy[at]apache[dot]org</email>
            <roles>
                <role>Emeritus Committer</role>
                <role>Emeritus PPPMC Member</role>
                <role>Reviewer</role>
            </roles>
            <timezone>+0</timezone>
        </contributor>
        <contributor>
            <name>Rob Vesse</name>
            <email>rvesse[at]apache[dot]org</email>
            <roles>
                <role>Emeritus Mentor</role>
            </roles>
            <timezone>+0</timezone>
        </contributor>
        <contributor>
            <name>John D Ament</name>
            <email>johndament[at]apache[dot]org</email>
            <roles>
                <role>Emeritus PPMC Member</role>
                <role>Emeritus Mentor</role>
            </roles>
            <timezone>+1</timezone>
        </contributor>
        <contributor>
            <name>Aaron Coburn</name>
            <email>acoburn[at]apache[dot]org</email>
            <roles>
                <role>Contributor</role>
            </roles>
            <timezone>+1</timezone>
        </contributor>
        <contributor>
            <name>Adam Soroka</name>
            <email>ajs6f[at]apache[dot]org</email>
            <roles>
                <role>Reviewer</role>
            </roles>
            <timezone>+0</timezone>
        </contributor>
        <contributor>
            <name>Guohui Xiao</name>
            <email>gx.xiao[at]gmail[dot]com</email>
	    <url>http://orcid.org/0000-0002-5115-4769</url>
            <roles>
                <role>Contributor</role>
            </roles>
            <timezone>+1</timezone>
        </contributor>
    </contributors>

    <modules>
        <module>commons-rdf-api</module>
        <module>commons-rdf-simple</module>
        <module>commons-rdf-rdf4j</module>
        <module>commons-rdf-jena</module>
        <module>commons-rdf-jsonld-java</module>
        <module>commons-rdf-integration-tests</module>
    </modules>

    <!--  
    Common dependencies across modules. 
    Keep this list small and only <scope>test</scope> !
    -->
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <!-- System.err logging for Jena, JSONLD-Java, RDF4J
            -->
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>${slf4j.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <skipIfEmpty>true</skipIfEmpty>
                    <archive>
                        <addMavenDescriptor>false</addMavenDescriptor>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>jar</goal>
                            <goal>test-jar</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <skipIfEmpty>true</skipIfEmpty>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <finalName>apache-commons-rdf-${project.version}</finalName>
                    <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <executions>
                    <execution>
                        <id>attach-javadocs</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <additionalparam>-Xdoclint:all</additionalparam>
                    <links>
                    <link>${commons.javadoc.java.link}</link>
                    <link>https://jena.apache.org/documentation/javadoc/jena/</link>
                    <link>https://jena.apache.org/documentation/javadoc/arq/</link>
                    <link>http://rdf4j.org/javadoc/2.0/</link>
                    </links>
                </configuration>
            </plugin>
            <!--
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${maven.compiler.source}</source>
                    <target>${maven.compiler.target}</target>
                    <encoding>${project.build.encoding}</encoding>
                </configuration>
            </plugin>
-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <configuration>
                    <useReleaseProfile>true</useReleaseProfile>
            <!-- TODO: Can we use apache-parent's apache-release rather than common-parent's release?
            It seems to force adding a -source-release
            -->
                    <releaseProfiles>release</releaseProfiles>
                    <goals>deploy</goals>
                    <autoVersionSubmodules>true</autoVersionSubmodules>
                    <localCheckout>true</localCheckout>
                    <tagNameFormat>@{version}</tagNameFormat>
                    <preparationGoals>clean install</preparationGoals>
                    <pushChanges>false</pushChanges>
                    <connectionUrl>scm:git:file://`pwd`/.git</connectionUrl>
                </configuration>
            </plugin>
            <!-- Create code coverage reports and submit them to coveralls.io.
            https://coveralls.io/github/apache/commons-rdf
            -->
            <plugin>
                <groupId>org.eluder.coveralls</groupId>
                <artifactId>coveralls-maven-plugin</artifactId>
                <version>4.2.0</version>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>jdepend-maven-plugin</artifactId>
                <version>${commons.jdepend.version}</version>
                <dependencies>
                    <!-- Forked jdepend https://github.com/nidi3/jdepend supports Java 8 -->
                    <dependency>
                      <groupId>guru.nidi</groupId>
                      <artifactId>jdepend</artifactId>
                      <version>2.9.5</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.maven.doxia</groupId>
                        <artifactId>doxia-module-markdown</artifactId>
                        <version>1.6</version>
                    </dependency>
                </dependencies>
                <!--
                <configuration>
                    <siteDirectory>${project.basedir}/src/site</siteDirectory>
                    <outputDirectory>${project.build.directory}/site</outputDirectory>
                    <showAvatarImages>false</showAvatarImages>
                </configuration>
              -->
            </plugin>
        </plugins>
        <pluginManagement>
            <plugins>
                <!--This plugin's configuration is used to store Eclipse m2e settings
                    only. It has no influence on the Maven build itself. -->

                <plugin>
                    <groupId>org.eclipse.m2e</groupId>
                    <artifactId>lifecycle-mapping</artifactId>
                    <version>1.0.0</version>
                    <configuration>
                        <lifecycleMappingMetadata>
                            <pluginExecutions>
                              <!-- No longer needed?
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.jacoco</groupId>
                                        <artifactId>jacoco-maven-plugin</artifactId>
                                        <versionRange>[${commons.jacoco.version},)</versionRange>
                                        <goals>
                                            <goal>prepare-agent</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore />
                                    </action>
                                </pluginExecution>
                              -->
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.apache.maven.plugins</groupId>
                                        <artifactId>maven-antrun-plugin</artifactId>
                                        <versionRange>[1.8,)</versionRange>
                                        <goals>
                                            <goal>run</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore />
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.apache.felix</groupId>
                                        <artifactId>maven-bundle-plugin</artifactId>
                                        <versionRange>[2.5.3,)</versionRange>
                                        <goals>
                                            <goal>manifest</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore />
                                    </action>
                                </pluginExecution>
                            </pluginExecutions>
                        </lifecycleMappingMetadata>
                    </configuration>
                </plugin>
                <plugin>
                    <!-- Check if we broke compatibibility against previous release -->
                    <groupId>com.github.siom79.japicmp</groupId>
                    <artifactId>japicmp-maven-plugin</artifactId>
                    <version>${commons.japicmp.version}</version>
                    <configuration>
                        <parameter>
                            <!-- Tell japicmp about the -incubator suffix for 0.3.0 -->
                            <oldVersionPattern>\d+\.\d+\.\d+\-incubating</oldVersionPattern>
                            <!-- japicmp requires "mvn package site" - below means "mvn
                                 site" still works (but without japicmp report) -->
                            <ignoreMissingNewVersion>true</ignoreMissingNewVersion>
                        </parameter>
                    </configuration>
                </plugin>
                <!--
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>animal-sniffer-maven-plugin</artifactId>
                    <version>1.14</version>
                    <configuration>
                        <skip>true</skip>
                    </configuration>
                </plugin>-->
                <plugin>
                    <groupId>org.apache.rat</groupId>
                    <artifactId>apache-rat-plugin</artifactId>
                    <version>${commons.rat.version}</version>
                    <configuration>
                        <excludes combine.children="append">
                            <exclude>.travis.yml</exclude>
                            <!-- Eclipse files in examples/ -->
                            <exclude>examples/.settings/**</exclude>
                            <exclude>examples/.project</exclude>
                            <exclude>examples/.classpath</exclude>
                            <!-- ServiceLoader file -->
                            <exclude>**/META-INF/services/*</exclude>
                            <!-- Duplicates of NOTICE and LICENSE -->
                            <exclude>**/src/main/resources/NOTICE</exclude>
                            <exclude>**/src/main/resources/LICENSE</exclude>
                        </excludes>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
    <reporting>
        <plugins>
            <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-javadoc-plugin</artifactId>
                 <configuration>
                     <additionalparam>-Xdoclint:all</additionalparam>
                 </configuration>
                 <reportSets>
                   <reportSet><!-- by default, id = "default" -->
                     <reports><!-- select non-aggregate reports -->
                       <report>javadoc</report>
                       <report>test-javadoc</report>
                     </reports>
                   </reportSet>
                   <reportSet><!-- aggregate reportSet, to define in poms having modules -->
                     <id>aggregate</id>
                     <inherited>false</inherited><!-- don't run aggregate in child modules -->
                     <reports>
                       <report>aggregate</report>
                     </reports>
                   </reportSet>
                 </reportSets>
             </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-checkstyle-plugin</artifactId>
                 <version>${checkstyle.plugin.version}</version>
                 <configuration>
                     <configLocation>${project.basedir}/src/conf/checkstyle.xml</configLocation>
                     <!-- Needed to define config_loc -->
                     <propertyExpansion>config_loc=${project.basedir}</propertyExpansion>
                     <enableRulesSummary>false</enableRulesSummary>
                 </configuration>
                 <reportSets>
                     <reportSet>
                         <reports>
                             <report>checkstyle-aggregate</report>
                         </reports>
                     </reportSet>
                 </reportSets>
             </plugin>
            <plugin>
                <artifactId>maven-pmd-plugin</artifactId>
                <version>3.6</version>
                <configuration>
                    <targetJdk>${maven.compiler.target}</targetJdk>
                    <linkXref>true</linkXref>
                </configuration>
                <reportSets>
                    <reportSet>
                        <id>pmd-report</id>
                        <reports>
                            <report>pmd</report>
                        </reports>
                    </reportSet>
                    <reportSet>
                        <id>pmd-aggregate</id>
                        <inherited>false</inherited>
                        <reports>
                            <report>pmd</report>
                        </reports>
                        <configuration>
                            <aggregate>true</aggregate>
                        </configuration>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>findbugs-maven-plugin</artifactId>
                <version>${commons.findbugs.version}</version>
                <configuration>
                    <threshold>Normal</threshold>
                    <effort>Default</effort>
                    <excludeFilterFile>src/conf/findbugs-exclude-filter.xml</excludeFilterFile>
                    <fork>true</fork>
                    <jvmArgs>-Duser.language=en</jvmArgs>
                </configuration>
            </plugin>
        </plugins>
    </reporting>

    <profiles>
        <profile>
            <id>ignore-japicmp</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <!-- COMMONSRDF-62 : JAPICMP does not handle 0.x release boundaries as defined in Semantic Versioning -->
                <commons.japicmp.breakBuildOnBinaryIncompatibleModifications>false</commons.japicmp.breakBuildOnBinaryIncompatibleModifications>
            </properties>
        </profile>
        <profile>
            <id>release</id>
        <!-- extends the release profile from commons -->
            <build>
            <!--
                <finalName>apache-commons-rdf-${project.version}</finalName>
-->
                <plugins>
                    <plugin>
                <!-- Avoid making *.asc.asc -->
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <configuration>
                            <excludes>
                                <exclude>**/*.asc</exclude>
                                <exclude>**/*.md5</exclude>
                                <exclude>**/*.sha1</exclude>
                            </excludes>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <distributionManagement>
      <site>
        <id>commonsrdf-site</id>
        <name>Apache Commons Site SVN</name>
        <url>scm:svn:${commons.scmPubUrl}</url>
      </site>
      <downloadUrl>${project.url}download.html</downloadUrl>
    </distributionManagement>


</project>
