<?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-SNAPSHOT</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>1698151225</project.build.outputTimestamp>

    <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.8</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.5.0</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>
          <release>11</release>
          <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>HEAD</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>
      </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>
        </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>
  </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>
