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

    <artifactId>commons-rdf-parent</artifactId>
    <version>0.6.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.jacoco.version>0.7.9</commons.jacoco.version>
	    <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>
        
        <commons.japicmp.version>0.15.1</commons.japicmp.version>
        
        
	    <!--  NOTE: jsonldjava is also used by rdf4j and jena, check the version
	          is cross-compatible -->
        <jsonldjava.version>0.11.1</jsonldjava.version>
        <rdf4j.version>2.2.2</rdf4j.version>
        <jena.version>3.5.0</jena.version>
        <!--  NOTE: dexx and xerces versions should match 
        the versions marked as <optional> in jena-osgi pom
         -->
        <dexx.collection.version>0.7</dexx.collection.version>
        <servicemix.xerces.version>2.11.0_1</servicemix.xerces.version>

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

    <scm>
        <url>https://gitbox.apache.org/repos/asf/commons-rdf.git</url>
        <connection>scm:git:https://gitbox.apache.org/repos/asf/commons-rdf.git</connection>
        <developerConnection>scm:git:https://gitbox.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>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-simple</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <!--  
    Common dependencies across modules. 
    Keep this list small and only <scope>test</scope> !
    -->
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <!-- System.err logging for Jena, JSONLD-Java, RDF4J -->
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <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://docs.rdf4j.org/javadoc/2.2/</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.3.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.7</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>
                    <dependencies>
                      <dependency>
                        <!-- the current version of japicmp on JDK 9 requires the following javaee libraries -->
                        <groupId>javax.xml.bind</groupId>
                        <artifactId>jaxb-api</artifactId>
                        <version>2.3.0</version>
                      </dependency>
                      <dependency>
                        <groupId>javax.activation</groupId>
                        <artifactId>activation</artifactId>
                        <version>1.1.1</version>
                      </dependency>
                      <dependency>
                        <groupId>org.glassfish.jaxb</groupId>
                        <artifactId>jaxb-runtime</artifactId>
                        <version>2.3.0</version>
                      </dependency>
                    </dependencies>
                </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>3.0.0</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.12.0</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>
            <properties>
                <!-- COMMONSRDF-62 : JAPICMP does not handle 0.x release boundaries as defined in Semantic Versioning -->
                <commons.japicmp.breakBuildOnBinaryIncompatibleModifications>false</commons.japicmp.breakBuildOnBinaryIncompatibleModifications>
            </properties>
            <!-- 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>
