<?xml version="1.0"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd" child.project.url.inherit.append.path="false">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.inrupt.client</groupId>
  <artifactId>inrupt-client</artifactId>
  <version>2.0.0</version>
  <name>Inrupt Java Client Libraries</name>
  <url>https://docs.inrupt.com/developer-tools/java/client-libraries/</url>
  <description>
    Inrupt Java Client Libraries for use with Solid.
  </description>
  <packaging>pom</packaging>

  <properties>
    <maven.compiler.parameters>true</maven.compiler.parameters>
    <maven.compiler.release>17</maven.compiler.release>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

    <!-- dependencies -->
    <antlr.version>4.13.2</antlr.version>
    <caffeine.version>3.2.2</caffeine.version>
    <commons.codec.version>1.19.0</commons.codec.version>
    <commons.cli.version>1.10.0</commons.cli.version>
    <commons.io.version>2.20.0</commons.io.version>
    <commons.rdf.version>0.5.0</commons.rdf.version>
    <guava.version>33.5.0-jre</guava.version>
    <jackson.version>2.20.0</jackson.version>
    <jakarta.json.version>2.1.3</jakarta.json.version>
    <jena.version>5.5.0</jena.version>
    <jose4j.version>0.9.6</jose4j.version>
    <json.bind.version>3.0.1</json.bind.version>
    <okhttp.version>5.1.0</okhttp.version>
    <quarkus.version>3.26.3</quarkus.version>
    <rdf4j.version>5.1.5</rdf4j.version>
    <slf4j.version>2.0.17</slf4j.version>
    <spring.security.version>6.5.4</spring.security.version>
    <inrupt.commons.rdf4j.version>0.6.0</inrupt.commons.rdf4j.version>
    <inrupt.rdf.wrapping.version>1.1.1</inrupt.rdf.wrapping.version>

    <!-- plugins -->
    <antrun.plugin.version>3.1.0</antrun.plugin.version>
    <archetype.plugin.version>3.4.0</archetype.plugin.version>
    <assembly.plugin.version>3.7.1</assembly.plugin.version>
    <checkstyle.plugin.version>3.6.0</checkstyle.plugin.version>
    <clean.plugin.version>3.5.0</clean.plugin.version>
    <compiler.plugin.version>3.14.1</compiler.plugin.version>
    <dependency.plugin.version>3.8.1</dependency.plugin.version>
    <deploy.plugin.version>3.1.4</deploy.plugin.version>
    <enforcer.plugin.version>3.6.1</enforcer.plugin.version>
    <exec.plugin.version>3.5.0</exec.plugin.version>
    <install.plugin.version>3.1.4</install.plugin.version>
    <gpg.plugin.version>3.2.8</gpg.plugin.version>
    <jacoco.plugin.version>0.8.13</jacoco.plugin.version>
    <jar.plugin.version>3.4.2</jar.plugin.version>
    <javadoc.plugin.version>3.12.0</javadoc.plugin.version>
    <license.plugin.version>5.0.0</license.plugin.version>
    <owasp.plugin.version>12.1.6</owasp.plugin.version>
    <projectinfo.plugin.version>3.9.0</projectinfo.plugin.version>
    <pmd.plugin.version>3.27.0</pmd.plugin.version>
    <site.plugin.version>3.21.0</site.plugin.version>
    <release.plugin.version>3.1.1</release.plugin.version>
    <resources.plugin.version>3.3.1</resources.plugin.version>
    <sonar.plugin.version>5.2.0.4988</sonar.plugin.version>
    <sonatype.plugin.version>0.9.0</sonatype.plugin.version>
    <source.plugin.version>3.3.1</source.plugin.version>
    <surefire.plugin.version>3.5.4</surefire.plugin.version>

    <!-- tooling -->
    <checkstyle.tool.version>11.1.0</checkstyle.tool.version>

    <!-- testing -->
    <awaitility.version>4.3.0</awaitility.version>
    <equalsverifier.version>4.1</equalsverifier.version>
    <glassfish.json.version>2.0.1</glassfish.json.version>
    <junit.version>6.0.0</junit.version>
    <smallrye.jwt.version>4.6.2</smallrye.jwt.version>
    <smallrye.config.version>3.14.0</smallrye.config.version>
    <yasson.version>3.0.4</yasson.version>
    <wiremock.version>3.13.1</wiremock.version>
    <hamcrest.version>3.0</hamcrest.version>

    <!-- disable by default (enabled by profile in CI) -->
    <dependency-check.skip>true</dependency-check.skip>
    <archetype.test.skip>true</archetype.test.skip>
    <nvd.api.key />
    <nvd.api.datafeed />

    <!-- sonar -->
    <sonar.coverage.jacoco.xmlReportPaths>${maven.multiModuleProjectDirectory}/reports/target/site/jacoco-merged/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
    <sonar.host.url>https://sonarcloud.io</sonar.host.url>
    <sonar.organization>inrupt</sonar.organization>
    <sonar.projectKey>solid-client-java</sonar.projectKey>
    <sonar.moduleKey>${project.artifactId}</sonar.moduleKey>
  </properties>

  <modules>
    <module>access-grant</module>
    <module>acp</module>
    <module>api</module>
    <module>bom</module>
    <module>caffeine</module>
    <module>core</module>
    <module>examples</module>
    <module>guava</module>
    <module>httpclient</module>
    <module>jackson</module>
    <module>jena</module>
    <module>jsonb</module>
    <module>okhttp</module>
    <module>openid</module>
    <module>parser</module>
    <module>quarkus</module>
    <module>rdf4j</module>
    <module>solid</module>
    <module>spring</module>
    <module>test</module>
    <module>uma</module>
    <module>webid</module>
    <module>vocabulary</module>
    <module>runtime</module>
    <module>integration</module>
    <module>performance</module>
    <module>archetypes</module>
    <module>reports</module>
  </modules>

  <distributionManagement>
    <site child.site.url.inherit.append.path="false">
      <id>${project.artifactId}</id>
      <url>${project.baseUri}</url>
    </site>
  </distributionManagement>

  <dependencyManagement>
    <dependencies>
        <dependency>
          <groupId>com.google.guava</groupId>
          <artifactId>guava</artifactId>
          <version>${guava.version}</version>
        </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <version>${clean.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-archetype-plugin</artifactId>
          <version>${archetype.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>${deploy.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>${antrun.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>${assembly.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>${dependency.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-install-plugin</artifactId>
          <version>${install.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>${jar.plugin.version}</version>
          <configuration>
            <archive>
              <manifest>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
              </manifest>
            </archive>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>${javadoc.plugin.version}</version>
          <configuration>
            <sourceFileExcludes>**/generated-sources/**</sourceFileExcludes>
            <quiet>true</quiet>
            <links>
              <link>https://javaee.github.io/javaee-spec/javadocs/</link>
              <link>https://jena.apache.org/documentation/javadoc/jena/</link>
              <link>https://jena.apache.org/documentation/javadoc/arq/</link>
              <link>https://www.antlr.org/api/Java/</link>
              <link>https://rdf4j.org/javadoc/5.1.0/</link>
            </links>
            <header>
              <![CDATA[
                <h2>Inrupt Java Client Libraries</h2>
              ]]>
            </header>
            <tags>
              <tag>
                <name>implSpec</name>
                <placement>a</placement>
                <head>Implementation Requirements:</head>
              </tag>
              <tag>
                <name>implNote</name>
                <placement>a</placement>
                <head>Implementation Note:</head>
              </tag>
              <tag>
                <name>apiNote</name>
                <placement>a</placement>
                <head>API Note:</head>
              </tag>
            </tags>
          </configuration>
          <executions>
            <execution>
              <id>attach-javadocs</id>
              <goals>
                <goal>jar</goal>
              </goals>
            </execution>
            <execution>
              <goals>
                <goal>javadoc</goal>
              </goals>
              <phase>site</phase>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>${enforcer.plugin.version}</version>
          <executions>
            <execution>
              <id>enforce</id>
              <configuration>
                <rules>
                  <banDuplicatePomDependencyVersions />
                  <requirePluginVersions />
                  <banCircularDependencies />
                </rules>
              </configuration>
              <goals>
                <goal>enforce</goal>
              </goals>
            </execution>
          </executions>
          <dependencies>
            <dependency>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>extra-enforcer-rules</artifactId>
              <version>1.10.0</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-gpg-plugin</artifactId>
          <version>${gpg.plugin.version}</version>
          <executions>
            <execution>
              <id>sign-artifacts</id>
              <phase>verify</phase>
              <goals>
                <goal>sign</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>${source.plugin.version}</version>
          <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-compiler-plugin</artifactId>
          <version>${compiler.plugin.version}</version>
          <configuration>
            <compilerArgs>
              <arg>-Xlint:deprecation</arg>
              <arg>-Xlint:unchecked</arg>
            </compilerArgs>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${surefire.plugin.version}</version>
          <configuration>
            <argLine>${surefire.jacoco.args}</argLine>
            <systemPropertyVariables>
              <maven.home>${maven.home}</maven.home>
            </systemPropertyVariables>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-failsafe-plugin</artifactId>
          <!-- keep the surefire and failsafe plugin versions aligned -->
          <version>${surefire.plugin.version}</version>
          <executions>
            <execution>
              <id>integration-test</id>
              <goals>
                <goal>integration-test</goal>
                <goal>verify</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <argLine>${failsafe.jacoco.args}</argLine>
            <systemPropertyVariables>
              <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
              <maven.home>${maven.home}</maven.home>
            </systemPropertyVariables>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>${release.plugin.version}</version>
          <configuration>
            <autoVersionSubmodules>true</autoVersionSubmodules>
            <goals>install</goals>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>${checkstyle.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>com.mycila</groupId>
          <artifactId>license-maven-plugin</artifactId>
          <version>${license.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <version>${jacoco.plugin.version}</version>
          <executions>
            <execution>
              <id>before-unit-test-execution</id>
              <goals>
                <goal>prepare-agent</goal>
              </goals>
              <configuration>
                <propertyName>surefire.jacoco.args</propertyName>
              </configuration>
            </execution>
            <execution>
              <id>before-integration-test-execution</id>
              <phase>pre-integration-test</phase>
              <goals>
                <goal>prepare-agent-integration</goal>
              </goals>
              <configuration>
                <propertyName>failsafe.jacoco.args</propertyName>
              </configuration>
            </execution>
            <execution>
              <id>merge-unit-and-integration</id>
              <phase>post-integration-test</phase>
              <goals>
                <goal>merge</goal>
              </goals>
              <configuration>
                <fileSets>
                  <fileSet>
                    <directory>${project.build.directory}</directory>
                    <includes>
                      <include>*.exec</include>
                    </includes>
                  </fileSet>
                </fileSets>
                <destFile>${project.build.directory}/jacoco-merged.exec</destFile>
              </configuration>
            </execution>
            <execution>
              <id>create-merged-report</id>
              <phase>post-integration-test</phase>
              <goals>
                <goal>report</goal>
              </goals>
              <configuration>
                <dataFile>${project.build.directory}/jacoco-merged.exec</dataFile>
                <outputDirectory>${project.reporting.outputDirectory}/merged-test-report</outputDirectory>
              </configuration>
            </execution>
            <execution>
              <id>report-aggregate-unit</id>
              <phase>verify</phase>
              <goals>
                <goal>report-aggregate</goal>
              </goals>
              <configuration>
                <dataFileIncludes>*/jacoco.exec</dataFileIncludes>
                <outputDirectory>${project.reporting.outputDirectory}/jacoco-unit</outputDirectory>
              </configuration>
            </execution>
            <execution>
              <id>report-aggregate-integration</id>
              <phase>verify</phase>
              <goals>
                <goal>report-aggregate</goal>
              </goals>
              <configuration>
                <dataFileIncludes>*/jacoco-it.exec</dataFileIncludes>
                <outputDirectory>${project.reporting.outputDirectory}/jacoco-integration</outputDirectory>
              </configuration>
            </execution>
            <execution>
              <id>report-aggregate</id>
              <phase>verify</phase>
              <goals>
                <goal>report-aggregate</goal>
              </goals>
              <configuration>
                <dataFileIncludes>*/jacoco-merged.exec</dataFileIncludes>
                <outputDirectory>${project.reporting.outputDirectory}/jacoco-merged</outputDirectory>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-pmd-plugin</artifactId>
          <version>${pmd.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>${resources.plugin.version}</version>
          <configuration>
            <propertiesEncoding>UTF-8</propertiesEncoding>
            <encoding>UTF-8</encoding>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>${site.plugin.version}</version>
          <configuration>
            <outputDirectory>${project.build.directory}/site</outputDirectory>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.sonarsource.scanner.maven</groupId>
          <artifactId>sonar-maven-plugin</artifactId>
          <version>${sonar.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.sonatype.central</groupId>
          <artifactId>central-publishing-maven-plugin</artifactId>
          <version>${sonatype.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.antlr</groupId>
          <artifactId>antlr4-maven-plugin</artifactId>
          <version>${antlr.version}</version>
          <executions>
            <execution>
              <goals>
                <goal>antlr4</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.owasp</groupId>
          <artifactId>dependency-check-maven</artifactId>
          <version>${owasp.plugin.version}</version>
        </plugin>
      </plugins>
    </pluginManagement>


    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <dependencies>
          <!-- Override dependencies to use latest version of checkstyle -->
          <dependency>
            <groupId>com.puppycrawl.tools</groupId>
            <artifactId>checkstyle</artifactId>
            <version>${checkstyle.tool.version}</version>
          </dependency>
        </dependencies>
        <configuration>
          <includeTestSourceDirectory>true</includeTestSourceDirectory>
          <consoleOutput>true</consoleOutput>
          <logViolationsToConsole>true</logViolationsToConsole>
          <failsOnError>true</failsOnError>
          <failOnViolation>true</failOnViolation>
          <violationSeverity>warning</violationSeverity>
          <configLocation>./build-tools/checkstyle/checkstyle.xml</configLocation>
          <suppressionsLocation>./build-tools/checkstyle/suppressions.xml</suppressionsLocation>
          <sourceDirectories>${project.build.sourceDirectory}</sourceDirectories>
        </configuration>
        <executions>
          <execution>
            <id>checkstyle</id>
            <phase>verify</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pmd-plugin</artifactId>
        <configuration>
          <linkXRef>false</linkXRef>
          <failOnViolation>false</failOnViolation>
          <verbose>true</verbose>
          <rulesets>
            <ruleset>./build-tools/pmd/pmd.xml</ruleset>
          </rulesets>
          <excludeRoots>
            <excludeRoot>target/generated-sources</excludeRoot>
          </excludeRoots>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>com.mycila</groupId>
        <artifactId>license-maven-plugin</artifactId>
        <configuration>
          <mapping>
            <java>SLASHSTAR_STYLE</java>
          </mapping>
          <licenseSets>
            <licenseSet>
              <header>./build-tools/license/HEADER.txt</header>
              <excludes>
                <exclude>**/src/main/resources/**</exclude>
                <exclude>**/src/test/resources/**</exclude>
              </excludes>
              <includes>
                <include>**/src/main/java/**</include>
                <include>**/src/test/java/**</include>
              </includes>
            </licenseSet>
          </licenseSets>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.owasp</groupId>
        <artifactId>dependency-check-maven</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <failBuildOnCVSS>7</failBuildOnCVSS>
          <ossindexAnalyzerEnabled>false</ossindexAnalyzerEnabled>
          <formats>
            <format>HTML</format>
            <format>JSON</format>
            <format>CSV</format>
          </formats>
          <suppressionFile>
              ./build-tools/owasp/suppressions.xml
          </suppressionFile>
          <nvdApiKey>${nvd.api.key}</nvdApiKey>
          <nvdDatafeedUrl>${nvd.api.datafeed}</nvdDatafeedUrl>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.sonatype.central</groupId>
        <artifactId>central-publishing-maven-plugin</artifactId>
        <extensions>true</extensions>
        <configuration>
          <publishingServerId>central</publishingServerId>
          <autoPublish>true</autoPublish>
          <excludeArtifacts>
                  <artifact>inrupt-client-examples-webapp</artifact>
                  <artifact>inrupt-client-examples-spring-web</artifact>
                  <artifact>inrupt-client-examples-springboot</artifact>
                  <artifact>inrupt-client-examples-cli</artifact>
                  <artifact>inrupt-client-performance-base-tests</artifact>
                  <artifact>inrupt-client-integration-base-tests</artifact>
          </excludeArtifacts>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <version>${projectinfo.plugin.version}</version>
        <configuration>
          <dependencyDetailsEnabled>false</dependencyDetailsEnabled>
          <licenseMappings>
            <licenseMapping>
              <froms>
                <from>Apache 2.0</from>
                <from>Apache-2.0</from>
                <from>Apache Software License - Version 2.0</from>
                <from>The Apache License, Version 2.0</from>
                <from>The Apache Software License, Version 2.0</from>
              </froms>
              <to>Apache License, Version 2.0</to>
            </licenseMapping>
            <licenseMapping>
              <froms>
                <from>MIT</from>
                <from>The MIT License</from>
              </froms>
              <to>MIT License</to>
            </licenseMapping>
            <licenseMapping>
              <froms>
                <from>The BSD 3-Clause License</from>
                <from>BSD-3-Clause</from>
                <from>BSD License 3</from>
              </froms>
              <to>BSD 3-Clause License</to>
            </licenseMapping>
            <licenseMapping>
              <froms>
                <from>Eclipse Public License - Version 1.0</from>
              </froms>
              <to>Eclipse Public License 1.0</to>
            </licenseMapping>
            <licenseMapping>
              <froms>
                <from>Eclipse Public License v2.0</from>
              </froms>
              <to>Eclipse Public License 2.0</to>
            </licenseMapping>
            <licenseMapping>
              <froms>
                <from>EDL 1.0</from>
                <from>Eclipse Distribution License - v 1.0</from>
                <from>Eclipse Distribution License v1.0</from>
              </froms>
              <to>Eclipse Distribution License 1.0</to>
            </licenseMapping>
            <licenseMapping>
              <froms>
                <from>Eclipse Public License v2.0</from>
              </froms>
              <to>Eclipse Public License 2.0</to>
            </licenseMapping>
          </licenseMappings>
        </configuration>
        <reportSets>
          <reportSet>
            <reports>
              <report>index</report>
              <report>dependencies</report>
              <report>summary</report>
              <report>plugins</report>
              <report>licenses</report>
              <report>modules</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>${javadoc.plugin.version}</version>
        <reportSets>
          <reportSet>
            <id>default</id>
            <reports>
              <report>javadoc</report>
            </reports>
          </reportSet>
          <reportSet>
            <id>aggregate</id>
            <inherited>false</inherited>
            <reports>
              <report>aggregate</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.owasp</groupId>
        <artifactId>dependency-check-maven</artifactId>
        <version>${owasp.plugin.version}</version>
        <reportSets>
          <reportSet>
            <reports>
              <report>aggregate</report>
            </reports>
          </reportSet>
        </reportSets>
        <configuration>
          <suppressionFiles>
            <suppressionFile>./build-tools/owasp/suppressions.xml</suppressionFile>
          </suppressionFiles>
        </configuration>
      </plugin>
    </plugins>
  </reporting>

  <profiles>
    <profile>
      <id>publish</id>
      <!-- skip tests for publish profile, since these tests have already run -->
      <properties>
        <skipTests>true</skipTests>
        <pmd.skip>true</pmd.skip>
        <cpd.skip>true</cpd.skip>
        <jacoco.skip>true</jacoco.skip>
        <checkstyle.skip>true</checkstyle.skip>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>ci</id>
      <properties>
        <skipTests>false</skipTests>
        <pmd.skip>true</pmd.skip>
        <cpd.skip>true</cpd.skip>
        <jacoco.skip>false</jacoco.skip>
        <checkstyle.skip>false</checkstyle.skip>
        <archetype.test.skip>false</archetype.test.skip>
      </properties>
    </profile>
    <profile>
      <id>website</id>
      <properties>
        <skipTests>true</skipTests>
        <pmd.skip>true</pmd.skip>
        <cpd.skip>true</cpd.skip>
        <jacoco.skip>true</jacoco.skip>
        <checkstyle.skip>true</checkstyle.skip>
        <archetype.test.skip>true</archetype.test.skip>
      </properties>
    </profile>
    <profile>
      <id>dependencies</id>
      <properties>
        <skipTests>true</skipTests>
        <pmd.skip>true</pmd.skip>
        <cpd.skip>true</cpd.skip>
        <dependency-check.skip>false</dependency-check.skip>
        <jacoco.skip>true</jacoco.skip>
        <checkstyle.skip>true</checkstyle.skip>
        <archetype.test.skip>true</archetype.test.skip>
      </properties>
    </profile>
  </profiles>

  <developers>
    <developer>
      <id>acoburn</id>
      <name>Aaron Coburn</name>
      <organization>Inrupt</organization>
    </developer>
    <developer>
      <id>timea-solid</id>
      <name>Timea Turdean</name>
      <organization>Inrupt</organization>
    </developer>
    <developer>
      <id>BnjmnCummings</id>
      <name>Ben Cummings</name>
      <organization>Inrupt</organization>
    </developer>
  </developers>

  <scm child.scm.url.inherit.append.path="false" child.scm.connection.inherit.append.path="false" child.scm.developerConnection.inherit.append.path="false">
    <connection>scm:git:https://github.com/inrupt/solid-client-java.git</connection>
    <developerConnection>scm:git:git@github.com:inrupt/solid-client-java.git</developerConnection>
    <url>https://github.com/inrupt/solid-client-java</url>
    <tag>inrupt-client-2.0.0</tag>
  </scm>

  <licenses>
    <license>
      <name>MIT</name>
      <url>LICENSE</url>
    </license>
  </licenses>

  <organization>
    <name>Inrupt, Inc</name>
    <url>https://inrupt.com</url>
  </organization>

</project>
