<?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</groupId>
    <artifactId>apache</artifactId>
    <version>29</version>
  </parent>

  <groupId>org.apache.johnzon</groupId>
  <artifactId>johnzon</artifactId>
  <packaging>pom</packaging>
  <version>2.0.1</version>
  <name>Apache Johnzon</name>
  <description>Apache Johnzon is an implementation of JSR-353 (JavaTM API for JSON Processing).</description>
  <inceptionYear>2014</inceptionYear>
  <url>https://johnzon.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <project.build.outputTimestamp>1711178726</project.build.outputTimestamp>

    <maven.compiler.release>11</maven.compiler.release>
    <maven.compiler.target>${maven.compiler.release}</maven.compiler.target>
    <maven.compiler.source>${maven.compiler.release}</maven.compiler.source>

    <jakarta-jsonp-api.version>2.1.1</jakarta-jsonp-api.version>
    <jakarta-jsonb-api.version>3.0.0</jakarta-jsonb-api.version>
    <johnzon.site.url>https://svn.apache.org/repos/asf/johnzon/site/publish/</johnzon.site.url>
    <pubsub.url>scm:svn:${johnzon.site.url}</pubsub.url>
    <staging.directory>${project.build.directory}/site</staging.directory>
    <felix.plugin.version>5.1.9</felix.plugin.version>
    <bnd.version.policy>[$(version;==;$(@)),$(version;+;$(@)))</bnd.version.policy>
    <bnd.version>6.1.0</bnd.version>
    <cxf.version>4.0.0</cxf.version>
    <checkstyle.version>3.0.0</checkstyle.version> <!-- Increasing checkstyle to 3.1 or above will require changes to the checkstyleRules -->
    <!-- JVM values for surefire plugin -->
    <surefire.jvm.params>-Xms1024m -Xmx2048m -Dfile.encoding=UTF-8</surefire.jvm.params>
    <owb.version>4.0.0</owb.version>
    <arquillian.jvm.args />
  </properties>

  <modules>
    <module>johnzon-core</module>
    <module>johnzon-mapper</module>
    <module>johnzon-jaxrs</module>
    <module>johnzon-distribution</module>
    <module>johnzon-maven-plugin</module>
    <module>johnzon-websocket</module>
    <module>johnzon-jsonb</module>
    <module>johnzon-json-extras</module>
    <module>johnzon-jsonschema</module>
    <module>johnzon-osgi</module>
    <module>johnzon-jsonlogic</module>
  </modules>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>jakarta.json</groupId>
        <artifactId>jakarta.json-api</artifactId>
        <version>${jakarta-jsonp-api.version}</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>jakarta.json.bind</groupId>
        <artifactId>jakarta.json.bind-api</artifactId>
        <version>${jakarta-jsonb-api.version}</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13.2</version>
        <scope>test</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <dependency>
      <groupId>jakarta.json</groupId>
      <artifactId>jakarta.json-api</artifactId>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.11.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>3.2.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>3.6.3</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>3.4.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>3.1.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-report-plugin</artifactId>
          <version>3.1.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.12.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>3.0.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>${checkstyle.version}</version>
        </plugin>
        <plugin>
          <groupId>com.github.spotbugs</groupId>
          <artifactId>spotbugs-maven-plugin</artifactId>
          <!-- todo: Update spotbugs-maven-plugin to v4: https://spotbugs.readthedocs.io/en/stable/migration.html -->
          <version>3.1.12.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-pmd-plugin</artifactId>
          <version>3.21.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>3.4.5</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>versions-maven-plugin</artifactId>
          <version>2.16.0</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>taglist-maven-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-changelog-plugin</artifactId>
          <version>2.3</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-changes-plugin</artifactId>
          <version>2.12.1</version>
        </plugin>

        <plugin>
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-bundle-plugin</artifactId>
          <version>${felix.plugin.version}</version>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <encoding>${project.build.sourceEncoding}</encoding>
          <showDeprecation>true</showDeprecation>
          <showWarnings>true</showWarnings>
          <parameters>true</parameters>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <configuration>
          <consoleOutput>true</consoleOutput>
          <includes>
            <include>src/**/*</include>
            <include>pom.xml</include>
          </includes>
          <excludes>
            <exclude>**/*/MANIFEST.MF</exclude>
            <exclude>.git</exclude>
            <exclude>.gitignore</exclude>
            <exclude>.idea</exclude>
            <exclude>*.iws</exclude>
            <exclude>*.iml</exclude>
            <exclude>*.ipr</exclude>
            <exclude>**/META-INF/services/*</exclude>
            <exclude>**/*.json</exclude>
            <exclude>**/*.yml</exclude>
            <exclude>**/bench/*.txt</exclude>
          </excludes>
        </configuration>
        <executions>
          <execution>
            <phase>verify</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-scm-publish-plugin</artifactId>
        <configuration>
          <automaticRemotePathCreation>true</automaticRemotePathCreation>
          <content>${project.reporting.outputDirectory}</content>
          <pubScmUrl>${pubsub.url}</pubScmUrl>
          <tryUpdate>true</tryUpdate>
          <checkoutDirectory>${project.basedir}/.site-content</checkoutDirectory>
          <ignorePathsToDelete>
            <ignorePathToDelete>archives**</ignorePathToDelete>
          </ignorePathsToDelete>
        </configuration>
        <executions>
          <execution>
            <id>scm-publish</id>
            <phase>site-deploy</phase>
            <!-- deploy site with maven-scm-publish-plugin -->
            <goals>
              <goal>publish-scm</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <configuration>
          <stagingDirectory>${staging.directory}</stagingDirectory>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>org.apache.maven.doxia</groupId>
            <artifactId>doxia-core</artifactId>
            <version>1.10</version>
          </dependency>
          <dependency>
            <groupId>org.apache.maven.doxia</groupId>
            <artifactId>doxia-module-markdown</artifactId>
            <version>1.11.1</version>
          </dependency>
        </dependencies>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <executions>
          <execution>
            <id>verify-style</id>
            <phase>process-classes</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <encoding>UTF-8</encoding>
          <excludes>**/module-info*</excludes>
          <consoleOutput>true</consoleOutput>
          <failOnViolation>true</failOnViolation>
          <includeTestSourceDirectory>true</includeTestSourceDirectory>
          <failsOnError>true</failsOnError>
          <linkXRef>true</linkXRef>
          <logViolationsToConsole>true</logViolationsToConsole>
          <checkstyleRules>
            <module name="Checker">
              <module name="SuppressionCommentFilter" />
              <module name="FileLength">
                <property name="max" value="3500" />
                <property name="fileExtensions" value="java" />
              </module>
              <module name="FileTabCharacter" />
              <module name="TreeWalker">
                <module name="FileContentsHolder" />
                <module name="ConstantName">
                  <property name="format" value="^(([A-Z][A-Z0-9]*(_[A-Z0-9]+)*))$" />
                </module>
                <module name="LocalVariableName" />
                <module name="MethodName">
                  <property name="format" value="^_?[a-z][a-zA-Z0-9]*$" />
                </module>
                <module name="PackageName" />
                <module name="LocalFinalVariableName" />
                <module name="ParameterName" />
                <module name="StaticVariableName" />
                <module name="TypeName">
                  <property name="format" value="^_?[A-Z][a-zA-Z0-9]*$" />
                </module>
                <module name="AvoidStarImport">
                  <property name="excludes" value="java.io,java.net,java.util,jakarta.enterprise.inject.spi,jakarta.enterprise.context" />
                </module>
                <module name="IllegalImport" />
                <module name="RedundantImport" />
                <module name="UnusedImports" />
                <module name="LineLength">
                  <property name="max" value="180" />
                  <property name="ignorePattern" value="@version|@see" />
                </module>
                <module name="MethodLength">
                  <property name="max" value="264" />
                </module>
                <module name="ParameterNumber">
                  <property name="max" value="13" />
                </module>
                <module name="EmptyBlock">
                  <property name="option" value="text" />
                </module>
                <module name="NeedBraces" />
                <module name="LeftCurly">
                  <property name="option" value="EOL" />
                </module>
                <module name="RightCurly">
                  <property name="option" value="SAME" />
                </module>
                <module name="EmptyStatement" />
                <module name="EqualsHashCode" />
                <module name="DefaultComesLast" />
                <module name="MissingSwitchDefault" />
                <module name="FallThrough" />
                <module name="MultipleVariableDeclarations" />
                <module name="com.puppycrawl.tools.checkstyle.checks.design.DesignForExtensionCheck">
                  <property name="severity" value="ignore" />
                </module>
                <module name="HideUtilityClassConstructor" />
                <module name="com.puppycrawl.tools.checkstyle.checks.design.VisibilityModifierCheck">
                  <property name="packageAllowed" value="false" />
                  <property name="protectedAllowed" value="true" />
                  <property name="publicMemberPattern" value="^serialVersionUID" />
                  <property name="severity" value="warning" />
                </module>
                <module name="UpperEll" />
              </module>
            </module>
          </checkstyleRules>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <executions>
          <execution>
            <id>generate-sources</id>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <skipIfEmpty>true</skipIfEmpty>
        </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>
            <configuration>
              <show>private</show>
              <detectJavaApiLink>false</detectJavaApiLink>
              <detectLinks>false</detectLinks>
              <detectOfflineLinks>false</detectOfflineLinks>
              <doclint>all,-missing</doclint>
              <release>11</release>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <argLine>${surefire.jvm.params}</argLine>
          <trimStackTrace>false</trimStackTrace>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-release-plugin</artifactId>
        <configuration>
          <tagNameFormat>v@{project.version}</tagNameFormat>
          <pushChanges>false</pushChanges>
          <localCheckout>true</localCheckout>
          <autoVersionSubmodules>true</autoVersionSubmodules>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.eluder.coveralls</groupId>
        <artifactId>coveralls-maven-plugin</artifactId>
        <version>3.0.1</version>
        <configuration>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <inherited>true</inherited>
        <extensions>true</extensions>
        <configuration>
          <instructions>
            <_contract>*</_contract>
            <_removeheaders>Private-Package,Include-Resource,Embed-Dependency,Created-By,Bnd-LastModified,Built-By,Tool</_removeheaders>
            <_versionpolicy>${bnd.version.policy}</_versionpolicy>
            <Bundle-DocURL>http://johnzon.apache.org/</Bundle-DocURL>
          </instructions>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>biz.aQute.bnd</groupId>
            <artifactId>biz.aQute.bndlib</artifactId>
            <version>${bnd.version}</version>
          </dependency>
        </dependencies>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <executions>
          <execution>
            <id>enforce-versions</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireMavenVersion>
                  <version>[3.3,)</version>
                </requireMavenVersion>
                <requireJavaVersion>
                  <version>[11,)</version>
                </requireJavaVersion>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

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

  <distributionManagement>
    <site>
      <id>apache.website</id>
      <url>${pubsub.url}</url>
    </site>
  </distributionManagement>

  <scm>
    <connection>scm:git:https://git-wip-us.apache.org/repos/asf/johnzon.git</connection>
    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/johnzon.git</developerConnection>
    <url>https://git-wip-us.apache.org/repos/asf?p=johnzon.git</url>
    <tag>v2.0.1</tag>
  </scm>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>com.github.spotbugs</groupId>
        <artifactId>spotbugs-maven-plugin</artifactId>
        <configuration>
          <xmlOutput>true</xmlOutput>
          <!-- Optional directory to put spotbugs (previously findbugs) xdoc xml report -->
          <xmlOutputDirectory>target/site</xmlOutputDirectory>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pmd-plugin</artifactId>

        <!-- running aggregate-pmd causes weird issues with project artifact cache introduced in maven 3.5.2 so just run the non-forking variant here.
             We invoke verify anyways before generating the site, so there is no need for pmd plugin to fork test-compile -->
        <reportSets>
          <reportSet>
            <reports>
              <report>pmd</report>
              <report>cpd</report>
            </reports>
          </reportSet>
          <reportSet>
            <inherited>false</inherited>
            <reports>
              <report>aggregate-pmd-no-fork</report>
              <report>aggregate-cpd</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <configuration>
          <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
          <notimestamp>true</notimestamp>
          <show>private</show>

          <!-- enable legacy mode (=prefer classpath over modulepath)
               to avoid errors because parts of johnzon having an Automatic-Module-Name -->
          <legacyMode>true</legacyMode>
        </configuration>
        <reportSets>
          <reportSet>
            <reports>
              <report>javadoc</report>
            </reports>
          </reportSet>
          <reportSet>
            <inherited>false</inherited>
            <reports>
              <report>aggregate</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-report-plugin</artifactId>
        <configuration>
          <argLine>${surefire.jvm.params}</argLine>
          <aggregate>true</aggregate>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>${checkstyle.version}</version>
        <reportSets>
          <reportSet>
            <reports>
              <report>checkstyle</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>versions-maven-plugin</artifactId>
        <reportSets>
          <reportSet>
            <reports>
              <report>dependency-updates-report</report>
              <report>plugin-updates-report</report>
              <report>property-updates-report</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>taglist-maven-plugin</artifactId>
        <configuration>
          <tags>
            <tag>TODO</tag>
            <tag>FIXME</tag>
            <tag>NOPMD</tag>
            <tag>NOTE</tag>
          </tags>
          <aggregate>true</aggregate>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-changelog-plugin</artifactId>
        <configuration>
          <type>range</type>
          <range>30</range>
          <headingDateFormat>dd MMM, yyyy</headingDateFormat>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-changes-plugin</artifactId>
        <configuration>
          <useJql>true</useJql>
          <columnNames>Type,Key,Summary,Assignee,Status,Resolution,Created</columnNames>
          <maxEntries>200</maxEntries>
          <onlyCurrentVersion>true</onlyCurrentVersion>
          <resolutionIds>Fixed</resolutionIds>
          <sortColumnNames>Type,Key</sortColumnNames>
        </configuration>
        <reportSets>
          <reportSet>
            <reports>
              <report>changes-report</report>
              <report>jira-report</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
    </plugins>
  </reporting>

  <licenses>
    <license>
      <name>The Apache Software License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <mailingLists>
    <mailingList>
      <name>Johnzon Commits List</name>
      <subscribe>commits-subscribe@johnzon.apache.org</subscribe>
      <unsubscribe>commits-unsubscribe@johnzon.apache.org</unsubscribe>
      <post>commits@johnzon.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/johnzon-commits/</archive>
      <otherArchives>
        <otherArchive>http://mail-archives.apache.org/mod_mbox/incubator-johnzon-commits/</otherArchive>
        <otherArchive>http://mail-archives.apache.org/mod_mbox/incubator-fleece-commits/</otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>Johnzon Developer List</name>
      <subscribe>dev-subscribe@johnzon.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@johnzon.apache.org</unsubscribe>
      <post>dev@johnzon.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/johnzon-dev/</archive>
      <otherArchives>
        <otherArchive>http://mail-archives.apache.org/mod_mbox/incubator-johnzon-dev/</otherArchive>
        <otherArchive>http://mail-archives.apache.org/mod_mbox/incubator-fleece-dev/</otherArchive>
      </otherArchives>
    </mailingList>
  </mailingLists>

  <ciManagement>
    <system>jenkins</system>
    <url>https://builds.apache.org/job/johnzon/</url>
  </ciManagement>

  <developers>
    <developer>
      <id>jmclean</id>
      <name>Justin Mclean</name>
      <email>jmclean AT apache.org</email>
      <roles>
        <role>Mentor</role>
      </roles>
    </developer>

    <developer>
      <id>grobmeier</id>
      <name>Christian Grobmeier</name>
      <email>grobmeier AT apache.org</email>
    </developer>

    <developer>
      <id>dkulp</id>
      <name>Daniel Kulp</name>
      <email>dkulp AT apache.org</email>
      <roles>
        <role>Mentor</role>
      </roles>
    </developer>

    <developer>
      <id>rmannibucau</id>
      <name>Romain Manni-Bucau</name>
      <email>rmannibucau AT apache.org</email>
      <roles><role>PMC</role></roles>
    </developer>

    <developer>
      <id>jlmonteiro</id>
      <name>Jean-Louis Monteiro</name>
      <email>jlmonteiro AT apache.org</email>
      <roles><role>PMC</role></roles>
    </developer>

    <developer>
      <id>struberg</id>
      <name>Mark Struberg</name>
      <email>struberg AT apache.org</email>
      <roles>
        <role>PMC</role>
      </roles>
    </developer>

    <developer>
      <id>rsandtner</id>
      <name>Reinhard Sandtner</name>
      <email>rsandtner AT apache.org</email>
      <roles><role>PMC</role></roles>
    </developer>

    <developer>
      <id>dblevins</id>
      <name>David Blevins</name>
      <email>dblevins AT apache.org</email>
      <roles><role>PMC</role></roles>
    </developer>

    <developer>
      <id>sagara</id>
      <name>Sagara Gunathunga</name>
      <email>sagara AT apache.org</email>
    </developer>

    <developer>
      <id>salyh</id>
      <name>Hendrik Saly</name>
      <email>salyh AT apache.org</email>
      <properties>
        <picUrl>http://www.gravatar.com/avatar/af23e69dbed585db0ce6445d0adb4985.png</picUrl>
      </properties>
      <roles><role>PMC</role></roles>
    </developer>

    <developer>
      <id>jungm</id>
      <name>Markus Jung</name>
      <email>jungm AT apache.org</email>
    </developer>
  </developers>

  <contributors>
    <contributor>
      <name>Thiago Veronezi</name>
    </contributor>
    <contributor>
      <name>Karl Grosse</name>
    </contributor>

  </contributors>

  <profiles>
    <profile>
      <id>tck</id>
      <modules>
        <module>tck</module>
      </modules>
    </profile>

    <profile>
        <id>jdk9+</id>
        <activation>
            <jdk>[9,)</jdk>
        </activation>
        <properties>
            <arquillian.jvm.args>
                --add-opens=java.base/java.lang=ALL-UNNAMED
            </arquillian.jvm.args>
        </properties>
    </profile>

    <profile>
        <id>jdk18+</id>
        <activation>
            <jdk>[18,)</jdk>
        </activation>
        <properties>
            <arquillian.jvm.args>
                --add-opens=java.base/java.lang=ALL-UNNAMED
                -Xmx512m -Xms256m -XX:ReservedCodeCacheSize=64m -Dtomee.httpPort=38383
                -Djava.opts=
            </arquillian.jvm.args>
        </properties>
    </profile>
  </profiles>
</project>
