<?xml version="1.0" encoding="UTF-8"?>
<!--

    Copyright (c) 2010, 2023 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.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 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.eclipse.ee4j</groupId>
        <artifactId>project</artifactId>
        <version>1.0.8</version>
    </parent>

    <groupId>org.glassfish.jersey</groupId>
    <artifactId>project</artifactId>
    <packaging>pom</packaging>
    <version>3.0.99-SNAPSHOT</version>
    <name>jersey</name>
    <description>
        Eclipse Jersey is the open source (under dual EPL+GPL license) Jakarta RESTful WebServices 3.0
        production quality Reference Implementation for building RESTful Web Services.
    </description>

    <url>https://projects.eclipse.org/projects/ee4j.jersey</url>

    <!-- prerequisites -->

    <issueManagement>
        <system>JIRA</system>
        <url>https://github.com/eclipse-ee4j/jersey/issues</url>
    </issueManagement>

    <ciManagement>
        <system>Hudson</system>
        <url>http://hudson.glassfish.org/job/Jersey-trunk-multiplatform/</url>
    </ciManagement>

    <inceptionYear>2010</inceptionYear>

    <mailingLists>
        <mailingList>
            <name>Users List</name>
            <post>jersey-dev@eclipse.org</post>
        </mailingList>
    </mailingLists>

    <developers>
        <developer>
            <name>Jorge Bescos Gascon</name>
            <organization>Oracle Corporation</organization>
            <organizationUrl>http://www.oracle.com/</organizationUrl>
        </developer>
        <developer>
            <name>Lukas Jungmann</name>
            <organization>Oracle Corporation</organization>
            <organizationUrl>http://www.oracle.com/</organizationUrl>
        </developer>
        <developer>
            <name>Dmitry Kornilov</name>
            <organization>Oracle Corporation</organization>
            <organizationUrl>http://www.oracle.com/</organizationUrl>
            <url>https://dmitrykornilov.net</url>
        </developer>
        <developer>
            <name>David Kral</name>
            <organization>Oracle Corporation</organization>
            <organizationUrl>http://www.oracle.com/</organizationUrl>
        </developer>
        <developer>
            <name>Tomas Kraus</name>
            <organization>Oracle Corporation</organization>
            <organizationUrl>http://www.oracle.com/</organizationUrl>
        </developer>
        <developer>
            <name>Tomas Langer</name>
            <organization>Oracle Corporation</organization>
            <organizationUrl>http://www.oracle.com/</organizationUrl>
        </developer>
        <developer>
            <name>Maxim Nesen</name>
            <organization>Oracle Corporation</organization>
            <organizationUrl>http://www.oracle.com/</organizationUrl>
        </developer>
        <developer>
            <name>Santiago Pericas-Geertsen</name>
            <organization>Oracle Corporation</organization>
            <organizationUrl>http://www.oracle.com/</organizationUrl>
        </developer>
        <developer>
            <name>Jan Supol</name>
            <organization>Oracle Corporation</organization>
            <organizationUrl>http://www.oracle.com/</organizationUrl>
            <url>http://blog.supol.info</url>
        </developer>
    </developers>

    <contributors>
        <contributor>
            <name>Petr Bouda</name>
        </contributor>
        <contributor>
            <name>Pavel Bucek</name>
            <organization>Oracle Corporation</organization>
            <url>http://u-modreho-kralika.net/</url>
        </contributor>
        <contributor>
            <name>Michal Gajdos</name>
            <url>http://blog.dejavu.sk</url>
        </contributor>
        <contributor>
            <name>Petr Janouch</name>
        </contributor>
        <contributor>
            <name>Libor Kramolis</name>
        </contributor>
        <contributor>
            <name>Adam Lindenthal</name>
        </contributor>
        <contributor>
            <name>Jakub Podlesak</name>
            <organization>Oracle Corporation</organization>
            <organizationUrl>http://www.oracle.com/</organizationUrl>
        </contributor>
        <contributor>
            <name>Marek Potociar</name>
        </contributor>
        <contributor>
            <name>Stepan Vavra</name>
        </contributor>
    </contributors>

    <licenses>
        <license>
            <name>EPL 2.0</name>
            <url>http://www.eclipse.org/legal/epl-2.0</url>
            <distribution>repo</distribution>
            <comments>Except for 3rd content and examples.
                      See also https://github.com/eclipse-ee4j/jersey/blob/master/NOTICE.md</comments>
        </license>
        <license>
            <name>GPL2 w/ CPE</name>
            <url>https://www.gnu.org/software/classpath/license.html</url>
            <distribution>repo</distribution>
            <comments>Except for 3rd content and examples.
                      See also https://github.com/eclipse-ee4j/jersey/blob/master/NOTICE.md</comments>
        </license>
        <license>
            <name>EDL 1.0</name>
            <url>http://www.eclipse.org/org/documents/edl-v10.php</url>
            <distribution>repo</distribution>
            <comments>The examples except bookstore-webapp example</comments>
        </license>
        <license>
            <name>BSD 2-Clause</name>
            <url>https://opensource.org/licenses/BSD-2-Clause</url>
            <distribution>repo</distribution>
            <comments>The bookstore-webapp example</comments>
        </license>
        <license>
            <name>Apache License, 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
            <distribution>repo</distribution>
            <comments>Google Guava @ org.glassfish.jersey.internal.guava,
                      Dropwizard Monitoring inspired classes @ org.glassfish.jersey.server.internal.monitoring.core,
                      Hibernate Validation classes @ org.glassfish.jersey.server.validation.internal.hibernate, and
                      Jackson JAX-RS Providers @ org.glassfish.jersey.jackson.internal.jackson.jaxrs</comments>
        </license>
        <license>
            <name>Public Domain</name>
            <url>https://creativecommons.org/publicdomain/zero/1.0/</url>
            <distribution>repo</distribution>
            <comments>JSR-166 Extension to JEP 266 @ org.glassfish.jersey.internal.jsr166</comments>
        </license>
        <license>
            <name>Modified BSD</name>
            <url>https://asm.ow2.io/license.html</url>
            <distribution>repo</distribution>
            <comments>ASM @ jersey.repackaged.org.objectweb.asm</comments>
        </license>
        <license>
            <name>jQuery license</name>
            <url>jquery.org/license</url>
            <distribution>repo</distribution>
            <comments>jQuery v1.12.4</comments>
        </license>
        <license>
            <name>MIT license</name>
            <url>http://www.opensource.org/licenses/mit-license.php</url>
            <distribution>repo</distribution>
            <comments>AngularJS, Bootstrap v3.3.7,
                      jQuery Barcode plugin 0.3, KineticJS v4.7.1</comments>
        </license>
        <license>
            <name>W3C license</name>
            <url>https://www.w3.org/Consortium/Legal/copyright-documents-19990405</url>
            <distribution>repo</distribution>
            <comments>Content of core-server/etc</comments>
        </license>
    </licenses>

    <scm>
        <connection>scm:git:git@github.com:jersey/jersey.git</connection>
        <developerConnection>scm:git:git@github.com:eclipse-ee4j/jersey.git</developerConnection>
        <url>https://github.com/eclipse-ee4j/jersey</url>
        <tag>HEAD</tag>
    </scm>

    <organization>
        <name>Eclipse Foundation</name>
        <url>https://www.eclipse.org/org/foundation/</url>
    </organization>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.glassfish.jersey.tools.plugins</groupId>
                    <artifactId>jersey-doc-modulelist-maven-plugin</artifactId>
                    <version>1.0.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-enforcer-plugin</artifactId>
                    <version>${enforcer.mvn.plugin.version}</version>
                    <executions>
                        <execution>
                            <id>enforce-versions</id>
                            <goals>
                                <goal>enforce</goal>
                            </goals>
                            <configuration>
                                <rules>
                                    <requireJavaVersion>
                                        <version>${java.version}</version>
                                    </requireJavaVersion>
                                    <dependencyConvergence/>
                                </rules>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <version>${buildhelper.mvn.plugin.version}</version>
                    <executions>
                        <execution>
                            <phase>generate-sources</phase>
                            <goals>
                                <goal>add-source</goal>
                            </goals>
                            <configuration>
                                <sources>
                                    <source>${project.build.directory}/generated-sources/rsrc-gen</source>
                                </sources>
                            </configuration>
                        </execution>
                        <execution>
                            <phase>initialize</phase>
                            <id>parse-version</id>
                            <goals>
                                <goal>parse-version</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>com.sun.istack</groupId>
                    <artifactId>istack-commons-maven-plugin</artifactId>
                    <version>${istack.mvn.plugin.version}</version>
                    <executions>
                        <execution>
                            <phase>generate-sources</phase>
                            <goals>
                                <goal>rs-gen</goal>
                            </goals>
                            <configuration>
                                <resources>
                                    <directory>${basedir}/src/main/resources</directory>
                                    <includes>
                                        <include>**/localization.properties</include>
                                    </includes>
                                </resources>
                                <destDir>${project.build.directory}/generated-sources/rsrc-gen</destDir>
                                <localizationUtilitiesPkgName>org.glassfish.jersey.internal.l10n</localizationUtilitiesPkgName>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>2.5</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${compiler.mvn.plugin.version}</version>
                    <inherited>true</inherited>
                    <configuration>
                        <source>${java.version}</source>
                        <target>${java.version}</target>
                        <compilerArguments>
                            <!--<Werror />-->
                            <!-- TODO work towards eliminating all warnings in order to be able to enable the -Xlint option -->
                            <!--Xlint/-->
                        </compilerArguments>
                        <showWarnings>false</showWarnings>
                        <fork>false</fork>
                        <excludes>
                            <exclude>module-info.java</exclude>
                        </excludes>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>${jar.mvn.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>${install.mvn.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>${resources.mvn.plugin.version}</version>
                    <extensions>true</extensions>
                    <!-- Add legal information, NOTICE.md and LINCENSE.md to jars -->
                    <executions>
                        <execution>
                            <!-- copy the files to classes folder for maven-jar/war-plugin to grab it -->
                            <id>copy-legaldocs</id>
                            <goals>
                                <goal>copy-resources</goal>
                            </goals>
                            <phase>process-sources</phase>
                            <configuration>
                                <outputDirectory>${project.build.outputDirectory}</outputDirectory>
                                <resources>
                                    <resource>
                                        <directory>${legal.source.folder}</directory>
                                        <targetPath>META-INF/</targetPath>
                                        <includes>
                                            <include>NOTICE.md</include>
                                            <include>LICENSE.md</include>
                                        </includes>
                                    </resource>
                                </resources>
                            </configuration>
                        </execution>
                        <execution>
                            <!-- copy the files to source folder for maven-source-plugin to grab it -->
                            <id>copy-legaldocs-to-sources</id>
                            <goals>
                                <goal>copy-resources</goal>
                            </goals>
                            <phase>process-sources</phase>
                            <configuration>
                                <outputDirectory>${project.build.directory}/generated-sources/rsrc-gen</outputDirectory>
                                <resources>
                                    <resource>
                                        <directory>${legal.source.folder}</directory>
                                        <targetPath>META-INF/</targetPath>
                                        <includes>
                                            <include>NOTICE.md</include>
                                            <include>LICENSE.md</include>
                                        </includes>
                                    </resource>
                                </resources>
                            </configuration>
                        </execution>
                        <execution>
                            <!-- copy the files to legal folder for felix plugin to grab it -->
                            <id>copy-legaldocs-to-osgi-bundles</id>
                            <goals>
                                <goal>copy-resources</goal>
                            </goals>
                            <phase>process-sources</phase>
                            <configuration>
                                <outputDirectory>${project.build.directory}/legal</outputDirectory>
                                <resources>
                                    <resource>
                                        <directory>${legal.source.folder}</directory>
                                        <targetPath>META-INF/</targetPath>
                                        <includes>
                                            <include>NOTICE.md</include>
                                            <include>LICENSE.md</include>
                                        </includes>
                                    </resource>
                                </resources>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>${surefire.mvn.plugin.version}</version>
                    <configuration>
                        <!-- print full stack trace if error -->
                        <trimStackTrace>false</trimStackTrace>
                        <!-- for convenience reasons, 'argLine' should not be overridden in child poms. if needed, a property should be declared and used here -->
                        <argLine>
                            -Xmx${surefire.maxmem.argline}m -Dfile.encoding=UTF8 ${surefire.security.argline} ${surefire.coverage.argline}
                        </argLine>
                        <skipTests>${skip.tests}</skipTests>
                        <properties>
                            <configurationParameters>
                                junit.jupiter.execution.parallel.enabled=true
                                junit.jupiter.execution.parallel.mode.classes.default=same_thread
                                junit.jupiter.execution.parallel.mode.default=same_thread
                            </configurationParameters>
                        </properties>
                        <systemProperties>
                            <property>
                                <name>jersey.config.test.container.port</name>
                                <value>${jersey.config.test.container.port}</value>
                            </property>
                        </systemProperties>
                        <threadCount>124</threadCount>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>org.apache.maven.surefire</groupId>
                            <artifactId>surefire-logger-api</artifactId>
                            <version>${surefire.mvn.plugin.version}</version>
                            <!-- to get around bug https://github.com/junit-team/junit5/issues/1367 -->
                            <optional>true</optional>
                        </dependency>
                        <dependency>
                            <groupId>org.apache.maven.surefire</groupId>
                            <artifactId>surefire-api</artifactId>
                            <version>${surefire.mvn.plugin.version}</version>
                            <optional>true</optional>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>${assembly.mvn.plugin.version}</version>
                    <configuration>
                        <tarLongFileMode>posix</tarLongFileMode>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>${dependency.mvn.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>${javadoc.mvn.plugin.version}</version>
                    <configuration>
                        <doctitle>Jersey ${jersey.version} API Documentation</doctitle>
                        <windowtitle>Jersey ${jersey.version} API</windowtitle>
                        <bottom>
                            <![CDATA[Copyright &#169; 2007-2021,
                                <a href="http://www.oracle.com">Oracle</a>
                                and/or its affiliates.
                                All Rights Reserved. Use is subject to license terms.]]>
                        </bottom>
                        <links>
                            <link>https://jakartaee.github.io/rest/apidocs/3.0.0/</link>
                            <link>https://javaee.github.io/hk2/apidocs/</link>
                        </links>
                        <excludePackageNames>
                            *.internal.*:*.tests.*
                        </excludePackageNames>
                        <sourceFileExcludes>
                            <exclude>bundles/**</exclude>
                            <fileExclude>module-info.java</fileExclude>
                        </sourceFileExcludes>
                        <verbose>true</verbose>
                        <doclint>none</doclint>
                        <maxmemory>256m</maxmemory>
                    </configuration>
                    <executions>
                        <execution>
                            <id>attach-javadocs</id>
                            <phase>package</phase>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>${source.mvn.plugin.version}</version>
                    <executions>
                        <execution>
                            <id>attach-sources</id>
                            <phase>package</phase>
                            <goals>
                                <goal>jar-no-fork</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>${deploy.mvn.plugin.version}</version>
                    <configuration>
                        <retryFailedDeploymentCount>10</retryFailedDeploymentCount>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.ops4j.pax.exam</groupId>
                    <artifactId>maven-paxexam-plugin</artifactId>
                    <version>${paxexam.mvn.plugin.version}</version>
                    <executions>
                        <execution>
                            <id>generate-config</id>
                            <goals>
                                <goal>generate-depends-file</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <options>
                            <platform>felix</platform>
                        </options>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>${site.mvn.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>${exec.mvn.plugin.version}</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>java</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jxr-plugin</artifactId>
                    <version>${jxr.mvn.plugin.version}</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>jxr</goal>
                            </goals>
                            <phase>validate</phase>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>${checkstyle.mvn.plugin.version}</version>
                    <configuration>
                        <configLocation>etc/config/checkstyle.xml</configLocation>
                        <suppressionsLocation>etc/config/checkstyle-suppressions.xml</suppressionsLocation>
                        <outputFile>${project.build.directory}/checkstyle/checkstyle-result.xml</outputFile>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>com.puppycrawl.tools</groupId>
                            <artifactId>checkstyle</artifactId>
                            <version>${checkstyle.version}</version>
                            <exclusions>
                                <!-- MCHECKSTYLE-156 -->
                                <exclusion>
                                    <groupId>com.sun</groupId>
                                    <artifactId>tools</artifactId>
                                </exclusion>
                            </exclusions>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>findbugs-maven-plugin</artifactId>
                    <version>${findbugs.mvn.plugin.version}</version>
                    <configuration>
                        <skip>${findbugs.skip}</skip>
                        <threshold>${findbugs.threshold}</threshold>
                        <excludeFilterFile>${findbugs.exclude}</excludeFilterFile>
                        <xmlOutput>true</xmlOutput>
                        <findbugsXmlOutput>true</findbugsXmlOutput>
                        <!-- findbugs detector configuration -->
                        <jvmArgs>-Dfindbugs.glassfish.logging.validLoggerPrefixes=${findbugs.glassfish.logging.validLoggerPrefixes}</jvmArgs>
                        <plugins>
                            <plugin>
                                <groupId>org.glassfish.findbugs</groupId>
                                <artifactId>findbugs-logging-detectors</artifactId>
                                <version>${findbugs.glassfish.version}</version>
                            </plugin>
                        </plugins>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>org.glassfish.findbugs</groupId>
                            <artifactId>findbugs</artifactId>
                            <version>${findbugs.glassfish.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <version>${failsafe.mvn.plugin.version}</version>
                    <configuration>
                        <!-- print full stack trace if error -->
                        <trimStackTrace>false</trimStackTrace>
                        <skipTests>${skip.tests}</skipTests>
                        <skipITs>${skip.tests}</skipITs>
                        <argLine>${failsafe.coverage.argline}</argLine>
                        <systemProperties>
                            <property>
                                <name>jersey.config.test.container.port</name>
                                <value>${jersey.config.test.container.port}</value>
                            </property>
                        </systemProperties>
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>integration-test</goal>
                                <goal>verify</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>${war.mvn.plugin.version}</version>
                    <configuration>
                        <failOnMissingWebXml>false</failOnMissingWebXml>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-ear-plugin</artifactId>
                    <version>${ear.mvn.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.glassfish.embedded</groupId>
                    <artifactId>maven-embedded-glassfish-plugin</artifactId>
                    <version>${gfembedded.mvn.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.glassfish.copyright</groupId>
                    <artifactId>glassfish-copyright-maven-plugin</artifactId>
                    <configuration>
                        <excludeFile>etc/config/copyright-exclude</excludeFile>
                        <!--svn|mercurial|git - defaults to svn-->
                        <scm>git</scm>
                        <!-- turn on/off debugging -->
                        <debug>false</debug>
                        <!-- skip files not under SCM-->
                        <scmOnly>true</scmOnly>
                        <!-- turn off warnings -->
                        <warn>false</warn>
                        <!-- for use with repair -->
                        <update>false</update>
                        <!-- check that year is correct -->
                        <ignoreYear>false</ignoreYear>
                        <templateFile>etc/config/copyright.txt</templateFile>
                        <bsdTemplateFile>etc/config/edl-copyright.txt</bsdTemplateFile>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-bundle-plugin</artifactId>
                    <version>${felix.mvn.plugin.version}</version>
                    <extensions>true</extensions>
                    <configuration>
                        <instructions>
                            <_versionpolicy>[$(version;==;$(@)),$(version;+;$(@)))</_versionpolicy>
                            <_nodefaultversion>false</_nodefaultversion>
                            <Include-Resource>{maven-resources},${project.build.directory}/legal</Include-Resource>
                        </instructions>
                    </configuration>
                    <executions>
                        <execution>
                            <id>osgi-bundle</id>
                            <phase>package</phase>
                            <goals>
                                <goal>bundle</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>xml-maven-plugin</artifactId>
                    <version>${xml.mvn.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>com.sun.tools.xjc.maven2</groupId>
                    <artifactId>maven-jaxb-plugin</artifactId>
                    <version>1.1.1</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>buildnumber-maven-plugin</artifactId>
                    <version>${buildnumber.mvn.plugin.version}</version>
                </plugin>
                <!-- TODO: remove the old jetty plugin dependencies -->
                <plugin>
                    <groupId>org.mortbay.jetty</groupId>
                    <artifactId>jetty-maven-plugin</artifactId>
                    <version>8.1.8.v20121106</version>
                </plugin>
                <plugin>
                    <groupId>org.eclipse.jetty</groupId>
                    <artifactId>jetty-maven-plugin</artifactId>
                    <version>${jetty.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.glassfish.build</groupId>
                    <artifactId>gfnexus-maven-plugin</artifactId>
                    <version>0.16</version>
                    <configuration>
                        <stagingRepos>
                            <stagingRepo>
                                <!--
                                    The reference artifact used to identify the right staging repository
                                -->
                                <ref>org.glassfish.jersey:project:${project.version}:pom</ref>
                                <profile>com.sun.jersey</profile>
                            </stagingRepo>
                        </stagingRepos>
                        <!--
                            Temporary till there is a jersey promotion profile
                        -->
                        <promotionProfile>glassfish-integration</promotionProfile>
                        <message>JERSEY-${project.version}</message>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                    <version>${shade.mvn.plugin.version}</version>
                    <executions>
                        <execution>
                            <id>shade-archive</id>
                            <goals>
                                <goal>shade</goal>
                            </goals>
                            <configuration>
                                <minimizeJar>false</minimizeJar>
                                <filters>
                                    <filter>
                                        <artifact>*:*</artifact>
                                        <excludes>
                                            <exclude>module-info.*</exclude>
                                        </excludes>
                                    </filter>
                                </filters>
                            </configuration>
                        </execution>
                    </executions>
                    <configuration>
                        <shadeTestJar>false</shadeTestJar>
                        <minimizeJar>true</minimizeJar>
                        <promoteTransitiveDependencies>true</promoteTransitiveDependencies>
                        <!-- Do not create reduced pom - jaxrs-ri cannot be built when set to true -->
                        <createDependencyReducedPom>false</createDependencyReducedPom>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <version>${antrun.mvn.plugin.version}</version>
                    <dependencies>
                        <dependency>
                            <groupId>org.apache.ant</groupId>
                            <artifactId>ant</artifactId>
                            <version>1.10.12</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.fortasoft</groupId>
                    <artifactId>gradle-maven-plugin</artifactId>
                    <version>1.0.8</version>
                </plugin>
                <plugin>
                    <groupId>com.github.wvengen</groupId>
                    <artifactId>proguard-maven-plugin</artifactId>
                    <version>${proguard.mvn.plugin.version}</version>
                    <dependencies>
                        <dependency>
                            <groupId>net.sf.proguard</groupId>
                            <artifactId>proguard-base</artifactId>
                            <version>5.1</version><!-- transitive dependency version increased from 5.0 -->
                            <scope>runtime</scope>
                        </dependency>
                    </dependencies>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.commonjava.maven.plugins</groupId>
                <artifactId>directory-maven-plugin</artifactId>
                <version>1.0</version>
                <executions>
                    <execution>
                        <id>directories</id>
                        <goals>
                            <goal>highest-basedir</goal>
                        </goals>
                        <phase>initialize</phase>
                        <configuration>
                            <property>legal.source.folder</property>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.glassfish.jersey.tools.plugins</groupId>
                <artifactId>jersey-doc-modulelist-maven-plugin</artifactId>
                <inherited>false</inherited>
                <configuration>
                    <outputFileName>docs/src/main/docbook/modules.xml</outputFileName>
                    <templateFileName>docs/src/main/docbook/inc/modules.src</templateFileName>
                    <tableHeaderFileName>docs/src/main/docbook/inc/modules_table_header.src</tableHeaderFileName>
                    <tableFooterFileName>docs/src/main/docbook/inc/modules_table_footer.src</tableFooterFileName>
                    <tableRowFileName>docs/src/main/docbook/inc/modules_table_row.src</tableRowFileName>
                    <outputUnmatched>false</outputUnmatched>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>${buildhelper.mvn.plugin.version}</version>
                <configuration>
                    <portNames>
                        <portName>jersey.config.test.container.port</portName>
                        <portName>jersey.config.test.container.stop.port</portName>
                    </portNames>
                </configuration>
                <executions>
                    <execution>
                        <id>reserve-port</id>
                        <phase>process-test-classes</phase> <!-- pre-integration-test -->
                        <goals>
                            <goal>reserve-network-port</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        <extensions>
            <extension>
                <groupId>org.glassfish</groupId>
                <artifactId>findbugs</artifactId>
                <version>3.2-b06</version>
            </extension>
        </extensions>
    </build>

    <profiles>
        <profile>
            <id>jdk8</id>
            <activation>
                <jdk>1.8</jdk>
            </activation>
            <properties>
                <checkstyle.version>9.3</checkstyle.version>
                <istack.mvn.plugin.version>3.0.9</istack.mvn.plugin.version>
            </properties>
            <build>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-compiler-plugin</artifactId>
                            <inherited>true</inherited>
                            <configuration>
                                <source>${java.version}</source>
                                <target>${java.version}</target>
                                <excludes>
                                    <exclude>module-info.java</exclude>
                                </excludes>
                            </configuration>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
        </profile>
        <profile>
            <id>jdk11+</id>
            <!--
                JDK 9 & 10 is unsupported (as well as <release>9</release>)
                module-info for java.xml.bind is taken from JDK (lib/ct.sym/9-modules)
                and it depends on java.activation which clashes with javax.activation
            -->
            <activation>
                <jdk>[11,)</jdk>
            </activation>
            <build>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-compiler-plugin</artifactId>
                            <inherited>true</inherited>
                            <executions>
<!-- when module.info
                                <execution>
                                    <id>default-compile</id>
                                    <configuration>
                                        compile everything to ensure module-info contains right entries
                                        <release>11</release>
                                    </configuration>
                                </execution>
-->
                                <execution>
                                    <id>base-compile</id>
                                    <goals>
                                        <goal>compile</goal>
                                    </goals>
                                    <!-- recompile everything for target VM except the module-info.java -->
                                    <configuration>
                                        <excludes>
                                            <exclude>module-info.java</exclude>
                                        </excludes>
                                        <source>1.8</source>
                                        <target>1.8</target>
                                    </configuration>
                                </execution>
                            </executions>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
        </profile>
        <profile>
            <!-- Use it with release-perform goal to skip another test run. -->
            <id>testsSkip</id>
            <activation>
                <activeByDefault>false</activeByDefault>
                <!-- this is how to align back with maven standards where property 'skipTests' makes maven-surefire-plugin
                (and also maven-failsafe-plugin) skip tests execution -->
                <property>
                    <name>skipTests</name>
                    <value>true</value>
                </property>
            </activation>
            <properties>
<!--                <release.tests.args>-Dskip.tests=true</release.tests.args>-->
                <skip.tests>true</skip.tests>
                <skip.e2e>true</skip.e2e>
            </properties>
        </profile>
        <profile>
            <id>checkstyleSkip</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <checkstyle.skip>true</checkstyle.skip>
            </properties>
        </profile>
        <profile>
            <id>findbugsSkip</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <findbugs.skip>true</findbugs.skip>
            </properties>
        </profile>
        <profile> <!-- tests module will be automatically included unless tests.excluded env variable is set -->
            <id>testsIncluded</id>
            <activation>
                <activeByDefault>false</activeByDefault>
                <property>
                  <name>!tests.excluded</name>
                </property>
            </activation>
            <modules>
                <module>tests</module>
            </modules>
        </profile>
        <profile> <!-- examples module will be automatically included unless examples.excluded env variable is set -->
            <id>examplesIncluded</id>
            <activation>
                <activeByDefault>false</activeByDefault>
                <property>
                    <name>!examples.excluded</name>
                </property>
            </activation>
            <modules>
                <module>examples</module>
            </modules>
        </profile>
        <profile> <!-- bundles module will be automatically included unless bundles.excluded env variable is set -->
            <id>bundlesIncluded</id>
            <activation>
                <activeByDefault>false</activeByDefault>
                <property>
                    <name>!bundles.excluded</name>
                </property>
            </activation>
            <modules>
                <module>bundles</module>
            </modules>
        </profile>
        <profile> <!-- test-framework module will be automatically included unless test-framework.excluded env variable is set -->
            <id>testFrameworkIncluded</id>
            <activation>
                <activeByDefault>false</activeByDefault>
                <property>
                    <name>!test-framework.excluded</name>
                </property>
            </activation>
            <modules>
                <module>test-framework</module>
            </modules>
        </profile>
        <profile>
            <id>pre-release</id>
            <modules>
                <module>docs</module>
            </modules>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-deploy-plugin</artifactId>
                        <configuration>
                            <skip>true</skip>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>xdk</id>
            <activation>
                <property>
                    <name>xdk</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <!-- add xdk sax parser to the classpath and exclude xerces -->
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <inherited>true</inherited>
                        <configuration>
                            <additionalClasspathElements>
                                <additionalClasspathElement>${xdk.absolute.path}</additionalClasspathElement>
                            </additionalClasspathElements>
                            <classpathDependencyExcludes>
                                <classpathDependencyExcludes>xerces:xercesImpl</classpathDependencyExcludes>
                            </classpathDependencyExcludes>
                        </configuration>
                    </plugin>
                    <plugin>
                        <!-- ensure, that the path to the xdk sax parser has been set -->
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-enforcer-plugin</artifactId>
                        <executions>
                            <execution>
                               <id>enforce-property</id>
                               <goals>
                                   <goal>enforce</goal>
                               </goals>
                                <configuration>
                                    <rules>
                                        <requireProperty>
                                            <property>xdk.absolute.path</property>
                                            <message>Property 'xdk.absolute.path' has to be specified.</message>
                                            <regex>.*/xmlparserv2.jar$</regex>
                                            <regexMessage>
                                                Property 'xdk.absolute.path' has to point to the xdk parser jar (xmlparserv2.jar).
                                            </regexMessage>
                                        </requireProperty>
                                    </rules>
                                    <fail>true</fail>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>moxy</id>
            <activation>
                <property>
                    <name>moxy</name>
                </property>
            </activation>
            <dependencies>
                <dependency>
                    <groupId>org.eclipse.persistence</groupId>
                    <artifactId>org.eclipse.persistence.moxy</artifactId>
                    <version>${moxy.version}</version>
                </dependency>
            </dependencies>
            <repositories>
                <repository>
                    <id>eclipselink.repository</id>
                    <name>Eclipse Maven Repository</name>
                    <url>https://www.eclipse.org/downloads/download.php?r=1&amp;nf=1&amp;file=/rt/eclipselink/maven.repo</url>
                    <layout>default</layout>
                </repository>
            </repositories>
        </profile>
        <profile>
            <id>securityOff</id>
            <properties>
                <surefire.security.argline />
            </properties>
        </profile>
        <profile>
            <id>project-info</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <reporting>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-project-info-reports-plugin</artifactId>
                        <version>3.1.1</version>
                        <reportSets>
                            <reportSet>
                                <reports>
                                    <report>dependencies</report>
                                    <report>index</report>
                                </reports>
                            </reportSet>
                        </reportSets>
                    </plugin>
                </plugins>
            </reporting>
            <!-- placeholder required for site:stage -->
            <distributionManagement>
                <site>
                    <id>localhost</id>
                    <url>http://localhost</url>
                </site>
            </distributionManagement>
        </profile>
        <profile>
            <id>jdk1.7+</id>
            <activation>
                <jdk>[1.7,)</jdk>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-checkstyle-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>verify</id>
                                <phase>validate</phase>
                                <goals>
                                    <!-- Fail the build if checkstyle rules for contributions are not met. -->
                                    <goal>check</goal>
                                </goals>
                                <configuration>
                                    <configLocation>etc/config/checkstyle-verify.xml</configLocation>
                                    <consoleOutput>true</consoleOutput>
                                    <failOnViolation>true</failOnViolation>
                                    <includeTestSourceDirectory>true</includeTestSourceDirectory>
                                    <excludes>**/module-info.java</excludes>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>sonar</id>
            <properties>
                <!-- Sonar/Reporting settings (heavily inspired at http://www.aheritier.net/maven-failsafe-sonar-and-jacoco-are-in-a-boat/ -->

                <!-- Tells Sonar to use jacoco for coverage results -->
                <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>

                <!-- Don't let Sonar execute tests. We will ask it to Maven -->
                <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
                <!-- The system property jacoco.outputDir is based on. This won't work for 'sonar:sonar' (see http://jira.codehaus.org/browse/SONAR-3427), as such a property 'jacoco.outputDir' has to be explicitly specified from a command line -->
                <jacoco.outputDir>${session.executionRootDirectory}/target</jacoco.outputDir>
                <!-- Tells Sonar where the Jacoco coverage result file is located for Unit Tests -->
                <sonar.jacoco.reportPath>${jacoco.outputDir}/jacoco.exec</sonar.jacoco.reportPath>
                <!-- Tells Sonar where the Jacoco coverage result file is located for Integration Tests -->
                <sonar.jacoco.itReportPath>${jacoco.outputDir}/jacoco-it.exec</sonar.jacoco.itReportPath>

                <!-- Force JaCoCo to show 0% coverage if the report is missing -->
                <sonar.jacoco.reportMissing.force.zero>true</sonar.jacoco.reportMissing.force.zero>

                <!-- jacoco.agent.*.arg properties are dynamically generated by jacoco:prepare-agent (see bellow) -->
                <surefire.coverage.argline>${jacoco.agent.ut.arg}</surefire.coverage.argline>
                <failsafe.coverage.argline>${jacoco.agent.it.arg}</failsafe.coverage.argline>

                <!-- Maven versions -->
                <jacoco.version>0.7.4.201502262128</jacoco.version>
                <sonar-jacoco-listeners.version>3.2</sonar-jacoco-listeners.version>
                <sonar.version>2.6</sonar.version>
            </properties>
            <dependencies>
                <dependency>
                    <groupId>org.codehaus.sonar-plugins.java</groupId>
                    <artifactId>sonar-jacoco-listeners</artifactId>
                    <version>${sonar-jacoco-listeners.version}</version>
                    <scope>test</scope>
                </dependency>
            </dependencies>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.jacoco</groupId>
                        <artifactId>jacoco-maven-plugin</artifactId>
                        <version>${jacoco.version}</version>
                        <executions>
                            <!-- Prepares a variable, jacoco.agent.ut.arg, that contains the info to be passed to the JVM hosting the code being tested. -->
                            <execution>
                                <id>prepare-ut-agent</id>
                                <phase>process-test-classes</phase>
                                <goals>
                                    <goal>prepare-agent</goal>
                                </goals>
                                <configuration>
                                    <destFile>${sonar.jacoco.reportPath}</destFile>
                                    <propertyName>jacoco.agent.ut.arg</propertyName>
                                    <append>true</append>
                                </configuration>
                            </execution>
                            <!-- Prepares a variable, jacoco.agent.it.arg, that contains the info to be passed to the JVM hosting the code being tested. -->
                            <execution>
                                <id>prepare-it-agent</id>
                                <phase>pre-integration-test</phase>
                                <goals>
                                    <goal>prepare-agent</goal>
                                </goals>
                                <configuration>
                                    <destFile>${sonar.jacoco.itReportPath}</destFile>
                                    <propertyName>jacoco.agent.it.arg</propertyName>
                                    <append>true</append>
                                </configuration>
                            </execution>

                            <!-- Generate reports which may not be complete as the execution won't consider tests of projects that weren't executed during the build yet --><!-- The good thing is that with every module built, we're ensured that integrity of both jacoco .exec files was preserved -->
                            <execution>
                                <id>jacoco-report-unit-tests</id>
                                <phase>test</phase>
                                <goals>
                                    <goal>report</goal>
                                </goals>
                                <configuration>
                                    <!-- Sets the path to the file which contains the execution data. -->
                                    <dataFile>${sonar.jacoco.reportPath}</dataFile>
                                    <!-- Sets the output directory for the code coverage report. -->
                                    <outputDirectory>${project.build.directory}/jacoco</outputDirectory>
                                </configuration>
                            </execution>
                            <execution>
                                <id>jacoco-report-integration-tests</id>
                                <phase>post-integration-test</phase>
                                <goals>
                                    <goal>report-integration</goal>
                                </goals>
                                <configuration>
                                    <!-- Sets the path to the file which contains the execution data. -->
                                    <dataFile>${sonar.jacoco.itReportPath}</dataFile>
                                    <!-- Sets the output directory for the code coverage report. -->
                                    <outputDirectory>${project.build.directory}/jacoco-it</outputDirectory>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <groupId>org.codehaus.mojo</groupId>
                            <artifactId>sonar-maven-plugin</artifactId>
                            <version>${sonar.version}</version>
                        </plugin>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-surefire-plugin</artifactId>
                            <configuration>
                                <!-- If possible (in some modules, this has to be disabled due to https://jira.sonarsource.com/browse/SONARJAVA-728), enable coverage details per JUnit test -->
                                <properties>
                                    <property>
                                        <name>listener</name>
                                        <value>org.sonar.java.jacoco.JUnitListener</value>
                                    </property>
                                </properties>
                            </configuration>
                        </plugin>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-failsafe-plugin</artifactId>
                            <configuration>
                                <!-- Enable coverage details per JUnit test -->
                                <properties>
                                    <property>
                                        <name>listener</name>
                                        <value>org.sonar.java.jacoco.JUnitListener</value>
                                    </property>
                                </properties>
                                <!-- Let's put failsafe reports with surefire to have access to tests failures/success reports in Sonar -->
                                <reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory>
                            </configuration>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
        </profile>
        <profile>
            <!--
            Profile is aimed to run the build on travis
            due to travis limitations for output (max 4MB) this profile is used along with grep which reduces
            the output.
            However some e2e tests produce output which is not grepped (thus is not visible) and run longer than
            10 minutes which results in the whole build is being murdered by Travis because of death suspection

            the whole build is run as clean install but excludes several e2e tests because of the not grepped output
            -->
            <id>travis_e2e_skip</id>
            <properties>
                <skip.e2e>true</skip.e2e>
            </properties>
        </profile>
        <profile>
            <!--
             Profile is aimed to run the build on travis
            due to travis limitations for output (max 4MB) this profile is used to run e2e tests only.

            the only thing which is happen using profile is run of e2e tests (with additional build)
            everything is already build using travis_e2e_skip profile

            the whole build is run as test -Ptravis_e2e
            -->
            <id>travis_e2e</id>
            <properties>
                <skip.e2e>false</skip.e2e>
                <skip.tests>true</skip.tests>
            </properties>
        </profile>
        <profile>
                <!-- Use -Peclipse_repo to use SNAPSHOTs stored in Eclipse's Nexus instance ("Nightly Builds") -->
                <id>eclipse_repo</id>
            <repositories>
                    <repository>
                        <snapshots>
                            <enabled>true</enabled>
                        </snapshots>
                        <id>repo.jaxrs-api.eclipse.org</id>
                        <name>JAX-RS API Repository - Snapshots</name>
                        <url>https://repo.eclipse.org/content/repositories/jax-rs-api-snapshots</url>
                    </repository>
                </repositories>
        </profile>
        <profile>
            <id>license_check</id>
            <pluginRepositories>
                <pluginRepository>
                    <id>dash-licenses-snapshots</id>
                    <url>https://repo.eclipse.org/content/repositories/dash-licenses-snapshots/</url>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.eclipse.dash</groupId>
                        <artifactId>license-tool-plugin</artifactId>
                        <version>0.0.1-SNAPSHOT</version>
                        <executions>
                            <execution>
                                <id>license-check</id>
                                <goals>
                                    <goal>license-check</goal>
                                </goals>
                                <configuration>
                                    <summary>DEPENDENCIES</summary>
                                    <failWhenReviewNeeded>true</failWhenReviewNeeded>
                                    <reviewSummary>REVIEW_SUMMARY</reviewSummary>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <reporting>
        <excludeDefaults>true</excludeDefaults>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>findbugs-maven-plugin</artifactId>
                <version>${findbugs.mvn.plugin.version}</version>
                <reportSets>
                    <reportSet>
                        <configuration>
                            <skip>${findbugs.skip}</skip>
                            <threshold>${findbugs.threshold}</threshold>
                            <excludeFilterFile>${findbugs.exclude}</excludeFilterFile>
                            <findbugsXmlWithMessages>true</findbugsXmlWithMessages>
                            <!-- findbugs detector configuration -->
                            <jvmArgs>-Dfindbugs.glassfish.logging.validLoggerPrefixes=${findbugs.glassfish.logging.validLoggerPrefixes}</jvmArgs>
                            <plugins>
                                <plugin>
                                    <groupId>org.glassfish.findbugs</groupId>
                                    <artifactId>findbugs-logging-detectors</artifactId>
                                    <version>${findbugs.glassfish.version}</version>
                                </plugin>
                            </plugins>
                        </configuration>
                        <reports>
                            <report>findbugs</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>3.2.0</version>
                <!-- Run this plugin report sets only in the main Jersey pom -->
                <inherited>false</inherited>
                <configuration>
                    <doctitle>Jersey ${jersey.version} API Documentation</doctitle>
                    <windowtitle>Jersey ${jersey.version} API</windowtitle>
                    <bottom>
                        <![CDATA[Copyright &#169; 2007-2023,
                            <a href="http://www.oracle.com">Oracle</a>
                            and/or its affiliates.
                            All Rights Reserved. Use is subject to license terms.]]>
                    </bottom>
                    <excludePackageNames>
                        com.sun.ws.rs.ext:*.examples.*:*.internal.*:*.tests.*
                    </excludePackageNames>
                    <links>
                        <link>https://jax-rs.github.io/apidocs/2.1</link>
                        <link>https://javaee.github.io/hk2/apidocs/</link>
                    </links>
                    <doclint>none</doclint>
                    <sourceFileExcludes>
                        <fileExclude>module-info.java</fileExclude>
                    </sourceFileExcludes>
                </configuration>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>aggregate</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>

            <!--plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-report-plugin</artifactId>
                <version>2.12</version>
            </plugin-->
            <!--plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>cobertura-maven-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <formats>
                        <format>xml</format>
                        <format>html</format>
                    </formats>
                </configuration>
            </plugin-->

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jxr-plugin</artifactId>
                <version>2.3</version>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>jxr</report>
                        </reports>
                    </reportSet>
                    <reportSet>
                        <!-- Run this report set only in the main Jersey pom -->
                        <inherited>false</inherited>
                        <reports>
                            <report>aggregate</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <version>${checkstyle.mvn.plugin.version}</version>
                <configuration>
                    <configLocation>etc/config/checkstyle.xml</configLocation>
                    <suppressionsLocation>etc/config/checkstyle-suppressions.xml</suppressionsLocation>
                </configuration>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>checkstyle</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
        </plugins>
    </reporting>

    <modules>
        <module>archetypes</module>
        <module>bom</module>
        <module>connectors</module>
        <module>containers</module>

        <module>core-common</module>
        <module>core-server</module>
        <module>core-client</module>

        <module>ext</module>
        <module>incubator</module>
        <module>inject</module>
        <module>media</module>
        <module>security</module>
    </modules>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>jakarta.ws.rs</groupId>
                <artifactId>jakarta.ws.rs-api</artifactId>
                <version>${jaxrs.api.impl.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.annotation</groupId>
                <artifactId>jakarta.annotation-api</artifactId>
                <version>${jakarta.annotation.version}</version>
            </dependency>

            <dependency>
                <groupId>jakarta.enterprise</groupId>
                <artifactId>jakarta.enterprise.cdi-api</artifactId>
                <version>${cdi.api.version}</version>
            </dependency>

            <dependency>
                <groupId>jakarta.transaction</groupId>
                <artifactId>jakarta.transaction-api</artifactId>
                <version>${jta.api.version}</version>
            </dependency>

            <dependency>
                <groupId>jakarta.activation</groupId>
                <artifactId>jakarta.activation-api</artifactId>
                <version>${jakarta.activation-api.version}</version>
            </dependency>

            <dependency>
                <groupId>com.sun.activation</groupId>
                <artifactId>jakarta.activation</artifactId>
                <version>${jakarta.activation.version}</version>
            </dependency>

            <!--<dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>${guava.version}</version>
            </dependency>--> <!-- The latest repackaged guava version is 18.0 -->

            <dependency>
                <groupId>org.glassfish.hk2</groupId>
                <artifactId>hk2-locator</artifactId>
                <version>${hk2.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.hk2</groupId>
                <artifactId>hk2-utils</artifactId>
                <version>${hk2.version}</version>
            </dependency>

            <dependency>
                <groupId>org.glassfish.hk2</groupId>
                <artifactId>hk2-api</artifactId>
                <version>${hk2.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>jakarta.inject</groupId>
                        <artifactId>jakarta.inject-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.glassfish.hk2</groupId>
                <artifactId>osgi-resource-locator</artifactId>
                <version>1.0.3</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.main.hk2</groupId>
                <artifactId>hk2-config</artifactId>
                <version>${hk2.config.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.inject</groupId>
                <artifactId>jakarta.inject-api</artifactId>
                <version>${jakarta.inject.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.hk2.external</groupId>
                <artifactId>aopalliance-repackaged</artifactId>
                <version>${hk2.version}</version>
            </dependency>
            <dependency>
                <groupId>org.javassist</groupId>
                <artifactId>javassist</artifactId>
                <version>${javassist.version}</version>
            </dependency>

            <dependency>
                <groupId>org.glassfish.grizzly</groupId>
                <artifactId>grizzly-http-server</artifactId>
                <version>${grizzly2.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.grizzly</groupId>
                <artifactId>grizzly-http2</artifactId>
                <version>${grizzly2.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.grizzly</groupId>
                <artifactId>grizzly-http-servlet</artifactId>
                <version>${grizzly2.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.grizzly</groupId>
                <artifactId>grizzly-websockets</artifactId>
                <version>${grizzly2.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.grizzly</groupId>
                <artifactId>connection-pool</artifactId>
                <version>${grizzly2.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.grizzly</groupId>
                <artifactId>grizzly-http-client</artifactId>
                <version>${grizzly.client.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.grizzly</groupId>
                <artifactId>grizzly-npn-api</artifactId>
                <version>${grizzly.npn.version}</version>
            </dependency>

            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-all</artifactId>
                <version>${netty.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>${httpclient.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents.client5</groupId>
                <artifactId>httpclient5</artifactId>
                <version>${httpclient5.version}</version>
            </dependency>

            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-util</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-client</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-server</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-webapp</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty.http2</groupId>
                <artifactId>http2-server</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-alpn-conscrypt-server</artifactId>
                <version>${jetty.version}</version>
            </dependency>

            <dependency>
                <groupId>org.simpleframework</groupId>
                <artifactId>simple-http</artifactId>
                <version>${simple.version}</version>
             </dependency>

            <dependency>
                <groupId>org.simpleframework</groupId>
                <artifactId>simple-transport</artifactId>
                <version>${simple.version}</version>
            </dependency>

            <dependency>
                <groupId>org.simpleframework</groupId>
                <artifactId>simple-common</artifactId>
                <version>${simple.version}</version>
            </dependency>

            <dependency>
                <groupId>org.codehaus.jettison</groupId>
                <artifactId>jettison</artifactId>
                <version>${jettison.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>stax</groupId>
                        <artifactId>stax-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>jakarta.xml.bind</groupId>
                <artifactId>jakarta.xml.bind-api</artifactId>
                <version>${jakarta.jaxb.api.version}</version>
            </dependency>

            <dependency>
                <groupId>com.sun.xml.bind</groupId>
                <artifactId>jaxb-impl</artifactId>
                <version>${jaxb.ri.version}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.xml.bind</groupId>
                <artifactId>jaxb-osgi</artifactId>
                <version>${jaxb.ri.version}</version>
            </dependency>

            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.moxy</artifactId>
                <version>${moxy.version}</version>
            </dependency>

            <dependency>
                <groupId>jakarta.persistence</groupId>
                <artifactId>jakarta.persistence-api</artifactId>
                <version>${jakarta.persistence.version}</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>jakarta.ejb</groupId>
                <artifactId>jakarta.ejb-api</artifactId>
                <version>${ejb.version}</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>com.fasterxml.jackson.jaxrs</groupId>
                <artifactId>jackson-jaxrs-json-provider</artifactId>
                <version>${jackson.version}</version>
            </dependency>

            <dependency>
                <groupId>com.fasterxml.jackson.jaxrs</groupId>
                <artifactId>jackson-jaxrs-base</artifactId>
                <version>${jackson.version}</version>
            </dependency>

            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>${jackson.version}</version>
            </dependency>

            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${jackson.version}</version>
            </dependency>

            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>${jackson.version}</version>
            </dependency>

            <dependency>
                <groupId>com.fasterxml.jackson.module</groupId>
                <artifactId>jackson-module-jaxb-annotations</artifactId>
                <version>${jackson.version}</version>
            </dependency>

            <dependency>
                <groupId>com.fasterxml.jackson.module</groupId>
                <artifactId>jackson-module-jakarta-xmlbind-annotations</artifactId>
                <version>${jackson.version}</version>
            </dependency>

            <dependency>
                <groupId>xerces</groupId>
                <artifactId>xercesImpl</artifactId>
                <version>${xerces.version}</version>
            </dependency>

            <dependency>
                <groupId>org.osgi</groupId>
                <artifactId>org.osgi.core</artifactId>
                <version>${osgi.version}</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>org.osgi</groupId>
                <artifactId>org.osgi.compendium</artifactId>
                <version>${osgi.compendium.version}</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>org.osgi</groupId>
                <artifactId>org.osgi.service.cm</artifactId>
                <version>${osgi.service.cm.version}</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>org.glassfish.main.ejb</groupId>
                <artifactId>ejb-container</artifactId>
                <version>${gf.impl.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.main.common</groupId>
                <artifactId>container-common</artifactId>
                <version>${gf.impl.version}</version>
            </dependency>

            <!-- HV OSGi dependencies. -->
            <dependency>
                <groupId>com.fasterxml</groupId>
                <artifactId>classmate</artifactId>
                <version>${fasterxml.classmate.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.el</groupId>
                <artifactId>jakarta.el-api</artifactId>
                <version>${jakarta.el.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish</groupId>
                <artifactId>jakarta.el</artifactId>
                <version>${jakarta.el.impl.version}</version>
            </dependency>

            <dependency>
                <groupId>jakarta.json</groupId>
                <artifactId>jakarta.json-api</artifactId>
                <version>${jakarta.jsonp.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.parsson</groupId>
                <artifactId>parsson</artifactId>
                <version>${jsonp.ri.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.parsson</groupId>
                <artifactId>parsson-media</artifactId>
                <version>${jsonp.jaxrs.version}</version>
            </dependency>

            <dependency>
                <groupId>org.hibernate.validator</groupId>
                <artifactId>hibernate-validator</artifactId>
                <version>${validation.impl.version}</version>
            </dependency>

            <dependency>
                <groupId>org.hibernate.validator</groupId>
                <artifactId>hibernate-validator-cdi</artifactId>
                <version>${validation.impl.version}</version>
            </dependency>

            <dependency>
                <groupId>org.ops4j.pax.web</groupId>
                <artifactId>pax-web-jetty-bundle</artifactId>
                <version>${pax.web.version}</version>
            </dependency>
            <dependency>
                <groupId>org.ops4j.pax.web</groupId>
                <artifactId>pax-web-extender-war</artifactId>
                <version>${pax.web.version}</version>
            </dependency>
            <dependency>
                <groupId>org.openjdk.jmh</groupId>
                <artifactId>jmh-core</artifactId>
                <version>${jmh.version}</version>
            </dependency>
            <dependency>
                <groupId>org.openjdk.jmh</groupId>
                <artifactId>jmh-generator-annprocess</artifactId>
                <version>${jmh.version}</version>
            </dependency>
            <dependency>
                <groupId>com.esotericsoftware</groupId>
                <artifactId>kryo</artifactId>
                <version>${kryo.version}</version>
            </dependency>

            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>${commons.logging.version}</version>
            </dependency>

            <!-- Weld -->
            <dependency>
                <groupId>org.jboss.weld.se</groupId>
                <artifactId>weld-se-core</artifactId>
                <version>${weld.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.weld.servlet</groupId>
                <artifactId>weld-servlet</artifactId>
                <version>${weld.version}</version>
            </dependency>

            <dependency>
                <groupId>jakarta.validation</groupId>
                <artifactId>jakarta.validation-api</artifactId>
                <version>${jakarta.validation.api.version}</version>
            </dependency>

            <!-- Test scope -->

            <dependency>
                <groupId>org.ops4j.pax.exam</groupId>
                <artifactId>pax-exam</artifactId>
                <version>${pax.exam.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.ops4j.pax.exam</groupId>
                <artifactId>pax-exam-junit4</artifactId>
                <version>${pax.exam.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.ops4j.pax.exam</groupId>
                <artifactId>pax-exam-container-forked</artifactId>
                <version>${pax.exam.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.ops4j.pax.exam</groupId>
                <artifactId>pax-exam-junit-extender-impl</artifactId>
                <version>1.2.4</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.ops4j.pax.exam</groupId>
                <artifactId>pax-exam-link-mvn</artifactId>
                <version>${pax.exam.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>jetty</artifactId>
                <version>${jetty.plugin.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>jetty-util</artifactId>
                <version>${jetty.plugin.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>servlet-api-2.5</artifactId>
                <version>${jetty.servlet.api.25.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.junit</groupId>
                <artifactId>junit-bom</artifactId>
                <version>${junit5.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>
                <version>${testng.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.hamcrest</groupId>
                <artifactId>hamcrest</artifactId>
                <version>${hamcrest.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.jmockit</groupId>
                <artifactId>jmockit</artifactId>
                <version>${jmockit.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>${mockito.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.xmlunit</groupId>
                <artifactId>xmlunit-core</artifactId>
                <version>${xmlunit.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcprov-jdk15on</artifactId>
                <version>${bouncycastle.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcmail-jdk15on</artifactId>
                <version>${bouncycastle.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.apache.felix</groupId>
                <artifactId>org.apache.felix.framework</artifactId>
                <version>${felix.framework.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.apache.felix</groupId>
                <artifactId>org.apache.felix.eventadmin</artifactId>
                <version>${felix.eventadmin.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.apache.felix</groupId>
                <artifactId>org.apache.felix.framework.security</artifactId>
                <version>${felix.framework.security.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>jakarta.json.bind</groupId>
                <artifactId>jakarta.json.bind-api</artifactId>
                <version>${jsonb.api.version}</version>
            </dependency>

            <dependency>
                <groupId>org.eclipse</groupId>
                <artifactId>yasson</artifactId>
                <version>${yasson.version}</version>
            </dependency>

            <dependency>
               <groupId>com.google.code.gson</groupId>
               <artifactId>gson</artifactId>
               <version>${gson.version}</version>
            </dependency>

            <dependency>
                <groupId>io.opentracing</groupId>
                <artifactId>opentracing-api</artifactId>
                <version>${opentracing.version}</version>
            </dependency>

            <dependency>
                <groupId>io.opentracing</groupId>
                <artifactId>opentracing-util</artifactId>
                <version>${opentracing.version}</version>
            </dependency>

        </dependencies>
    </dependencyManagement>

    <properties>
        <archetype.mvn.plugin.version>3.2.1</archetype.mvn.plugin.version>

        <findbugs.skip>false</findbugs.skip>
        <findbugs.threshold>Low</findbugs.threshold>
        <!-- the exclude file cannot be here directly, as FindBugs would interpret the path as relative to
        each module; the default exclude filter file is at etc/config/findbugs-exclude.xml -->
        <findbugs.exclude />
        <findbugs.glassfish.logging.validLoggerPrefixes>
            jakarta.enterprise
        </findbugs.glassfish.logging.validLoggerPrefixes>
        <java.version>1.8</java.version>
<!--        <jersey.repackaged.prefix>jersey.repackaged</jersey.repackaged.prefix>-->
<!--        <netbeans.hint.license>gf-cddl-gpl</netbeans.hint.license>-->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!--        <release.tests.args>-Dmaven.test.skip=false</release.tests.args>-->
<!--        <release.preparationGoals>clean install</release.preparationGoals>-->
        <skip.e2e>false</skip.e2e>
        <skip.tests>false</skip.tests>
        <xdk.absolute.path />
        <surefire.security.argline />
        <surefire.coverage.argline />
        <surefire.maxmem.argline>1024</surefire.maxmem.argline>
        <failsafe.coverage.argline />
        <server.coverage.argline>${failsafe.coverage.argline}</server.coverage.argline>

        <!-- Versions of Maven plugins -->
        <antrun.mvn.plugin.version>3.1.0</antrun.mvn.plugin.version>
        <assembly.mvn.plugin.version>3.6.0</assembly.mvn.plugin.version>
        <enforcer.mvn.plugin.version>3.3.0</enforcer.mvn.plugin.version>
        <exec.mvn.plugin.version>3.1.0</exec.mvn.plugin.version>
        <buildhelper.mvn.plugin.version>3.4.0</buildhelper.mvn.plugin.version>
        <buildnumber.mvn.plugin.version>3.2.0</buildnumber.mvn.plugin.version>
        <checkstyle.mvn.plugin.version>3.3.0</checkstyle.mvn.plugin.version>
        <checkstyle.version>10.9.3</checkstyle.version>
        <compiler.mvn.plugin.version>3.9.0</compiler.mvn.plugin.version>
        <dependency.mvn.plugin.version>3.6.0</dependency.mvn.plugin.version>
        <deploy.mvn.plugin.version>3.1.1</deploy.mvn.plugin.version>
        <ear.mvn.plugin.version>3.3.0</ear.mvn.plugin.version>
        <failsafe.mvn.plugin.version>3.1.2</failsafe.mvn.plugin.version>
        <felix.mvn.plugin.version>5.1.9</felix.mvn.plugin.version>
        <findbugs.mvn.plugin.version>3.0.5</findbugs.mvn.plugin.version>
        <gfembedded.mvn.plugin.version>5.1</gfembedded.mvn.plugin.version>
        <install.mvn.plugin.version>3.1.1</install.mvn.plugin.version>
        <istack.mvn.plugin.version>4.2.0</istack.mvn.plugin.version>
        <jar.mvn.plugin.version>3.3.0</jar.mvn.plugin.version>
        <javadoc.mvn.plugin.version>3.5.0</javadoc.mvn.plugin.version>
        <jxr.mvn.plugin.version>3.3.0</jxr.mvn.plugin.version>
        <paxexam.mvn.plugin.version>1.2.4</paxexam.mvn.plugin.version>
        <proguard.mvn.plugin.version>2.6.0</proguard.mvn.plugin.version>
        <resources.mvn.plugin.version>3.3.1</resources.mvn.plugin.version>
        <shade.mvn.plugin.version>3.4.1</shade.mvn.plugin.version>
        <site.mvn.plugin.version>3.9.1</site.mvn.plugin.version>
        <source.mvn.plugin.version>3.3.0</source.mvn.plugin.version>
        <surefire.mvn.plugin.version>3.1.2</surefire.mvn.plugin.version>
        <war.mvn.plugin.version>3.3.2</war.mvn.plugin.version>
        <wiremock.mvn.plugin.version>2.11.0</wiremock.mvn.plugin.version>
        <xml.mvn.plugin.version>1.0.2</xml.mvn.plugin.version>
        <!-- END of Versions of Maven plugins -->

        <!-- Dependency versions -->
        <jersey.version>${project.version}</jersey.version>
        <arquillian.version>1.7.0.Final</arquillian.version>
        <arquillian.weld.version>3.0.2.Final</arquillian.weld.version>
        <!-- asm is now source integrated - keeping this property to see the version -->
        <!-- see core-server/src/main/java/jersey/repackaged/asm/.. -->
        <asm.version>9.5</asm.version>
<!--        <bnd.plugin.version>2.3.6</bnd.plugin.version>-->
        <bouncycastle.version>1.70</bouncycastle.version>
        <commons.io.version>2.13.0</commons.io.version>
<!--        <commons-lang3.version>3.3.2</commons-lang3.version>-->
        <commons.logging.version>1.2</commons.logging.version>
        <fasterxml.classmate.version>1.5.1</fasterxml.classmate.version>
        <felix.eventadmin.version>1.6.4</felix.eventadmin.version>
        <felix.framework.security.version>2.8.4</felix.framework.security.version>
        <felix.framework.version>7.0.5</felix.framework.version>
        <findbugs.glassfish.version>1.7</findbugs.glassfish.version>
        <freemarker.version>2.3.32</freemarker.version>
        <gae.version>2.0.14</gae.version>
        <groovy.version>4.0.12</groovy.version>
        <gson.version>2.9.1</gson.version>

        <!--versions, extracted here due to maven-enforcer-plugin -->
<!--        <commons.codec.version>1.15</commons.codec.version>-->
        <com.uber.jaeger.version>0.27.0</com.uber.jaeger.version>
        <org.codehaus.gmavenplus.version>3.0.0</org.codehaus.gmavenplus.version>
        <!-- end of versions extracted here due to maven-enforcer-plugin -->

        <!-- microprofile -->
        <microprofile.config.version>3.0</microprofile.config.version>
        <microprofile.rest.client.version>3.0</microprofile.rest.client.version>
        <helidon.config.version>3.0.2</helidon.config.version>
        <smallrye.config.version>3.0.0</smallrye.config.version>

        <guava.version>31.1-jre</guava.version>
        <hamcrest.version>2.2</hamcrest.version>
        <helidon.version>1.4.13</helidon.version>
        <helidon.jersey.connector.version>3.0.2</helidon.jersey.connector.version>
        <xmlunit.version>2.9.1</xmlunit.version>
        <hk2.osgi.version>org.glassfish.hk2.*;version="[2.5,4)"</hk2.osgi.version>
        <hk2.jvnet.osgi.version>org.jvnet.hk2.*;version="[2.5,4)"</hk2.jvnet.osgi.version>
        <httpclient.version>4.5.14</httpclient.version>
        <httpclient5.version>5.2.1</httpclient5.version>
        <jackson.version>2.14.1</jackson.version>
        <javassist.version>3.29.2-GA</javassist.version>
        <jboss.logging.version>3.4.3.Final</jboss.logging.version>
        <jersey1.version>1.19.3</jersey1.version>
        <jersey1.last.final.version>${jersey1.version}</jersey1.last.final.version>
        <jettison.version>1.3.7</jettison.version> <!-- TODO: 1.3.8 doesn't work; AbstractJsonTest complexBeanWithAttributes -->
        <jmh.version>1.36</jmh.version>
        <jmockit.version>1.49</jmockit.version>
        <junit4.version>4.13.2</junit4.version>
        <junit5.version>5.9.3</junit5.version>
        <junit-platform-suite.version>1.9.3</junit-platform-suite.version>
        <kryo.version>4.0.2</kryo.version>
        <mockito.version>3.12.4</mockito.version> <!-- CQ 17673 -->
        <mustache.version>0.9.10</mustache.version>
        <netty.version>4.1.93.Final</netty.version>
        <opentracing.version>0.33.0</opentracing.version>
        <osgi.version>6.0.0</osgi.version>
        <osgi.framework.version>1.10.0</osgi.framework.version>
        <osgi.compendium.version>5.0.0</osgi.compendium.version>
        <osgi.service.cm.version>1.6.0</osgi.service.cm.version>
        <pax.exam.version>4.13.4</pax.exam.version>
        <pax.web.version>0.7.4</pax.web.version><!-- TODO: UPGRADE! -->
        <reactive.streams.version>1.0.4</reactive.streams.version>
        <rxjava.version>1.3.8</rxjava.version>
        <rxjava2.version>2.2.21</rxjava2.version>
        <simple.version>6.0.1</simple.version>
        <slf4j.version>2.0.7</slf4j.version>
        <spring6.version>6.0.10</spring6.version>
        <testng.version>7.6.1</testng.version>
        <testng6.version>6.9.13.6</testng6.version>
        <!-- Jakartified, eligible for CQ -->
        <weld.version>4.0.3.Final</weld.version>
        <weld3.version>3.1.9.Final</weld3.version>
        <validation.impl.version>7.0.5.Final</validation.impl.version>
        <!-- END of Jakartified, eligible for CQ -->
        <wiremock.version>2.27.2</wiremock.version>
        <xerces.version>2.12.2</xerces.version>

        <!-- Graal VM       -->
        <graalvm.version>20.3.10</graalvm.version>

        <!-- do not need CQs (below this line till the end of version properties)-->
        <gf.impl.version>6.2.5</gf.impl.version>
        <hk2.config.version>6.2.5</hk2.config.version>
        <!-- Jakartified -->
        <cdi.api.version>3.0.0</cdi.api.version>
        <cdi.osgi.version>jakarta.enterprise.*;version="[3.0,5)"</cdi.osgi.version>
        <ejb.version>4.0.1</ejb.version>
        <grizzly2.version>3.0.1</grizzly2.version>
        <grizzly.client.version>1.16</grizzly.client.version>
        <grizzly.npn.version>2.0.0</grizzly.npn.version>
        <hk2.version>3.0.4</hk2.version>
        <jsp.version>3.0.0</jsp.version>
        <jstl.version>2.0.0</jstl.version>
        <jta.api.version>2.0.1</jta.api.version>
        <servlet5.version>5.0.0</servlet5.version>
        <istack.commons.runtime.version>4.0.1</istack.commons.runtime.version>
        <jakarta.activation-api.version>2.0.1</jakarta.activation-api.version>
        <jakarta.activation.version>2.0.1</jakarta.activation.version>
        <jakarta.el.version>4.0.0</jakarta.el.version>
        <jakarta.el.impl.version>4.0.2</jakarta.el.impl.version>
        <jakarta.annotation.osgi.version>jakarta.annotation.*;version="[2.0,3)"</jakarta.annotation.osgi.version>
        <jakarta.annotation.version>2.0.0</jakarta.annotation.version>
        <jakarta.inject.version>2.0.1</jakarta.inject.version>
        <jakarta.interceptor.version>2.0.1</jakarta.interceptor.version>
        <jakarta.jsonp.version>2.0.2</jakarta.jsonp.version>
        <jakarta.persistence.version>3.0.0</jakarta.persistence.version>
        <jakarta.validation.api.version>3.0.2</jakarta.validation.api.version> <!--Can't be updated to 3.0.1 /OSGi incompatibility with JDK 1.8 -->
        <jakarta.jaxb.api.version>3.0.1</jakarta.jaxb.api.version>
        <jaxb.ri.version>3.0.2</jaxb.ri.version>
        <jaxrs.api.spec.version>3.0</jaxrs.api.spec.version>
        <jaxrs.api.impl.version>3.0.0</jaxrs.api.impl.version>
        <jetty.osgi.version>org.eclipse.jetty.*;version="[11,15)"</jetty.osgi.version>
        <jetty.version>11.0.15</jetty.version>
        <jetty9.version>9.4.51.v20230217</jetty9.version>
        <jetty.plugin.version>11.0.15</jetty.plugin.version>
        <jetty.servlet.api.25.version>6.1.14</jetty.servlet.api.25.version>
        <jsonb.api.version>2.0.0</jsonb.api.version>
        <jsonp.ri.version>1.0.3</jsonp.ri.version>
        <jsonp.jaxrs.version>1.0.3</jsonp.jaxrs.version>
        <moxy.version>3.0.3</moxy.version>
        <yasson.version>2.0.4</yasson.version>
        <!-- END of Jakartified -->

        <javax.annotation.version>1.3.2</javax.annotation.version> <!--Deprecated, used only for @generated annotation in perf tests -->
        <mimepull.version>1.9.15</mimepull.version>
    </properties>
</project>
