|  | <?xml version="1.0" encoding="UTF-8"?> | 
|  | <!-- | 
|  |  | 
|  | Copyright (c) 2012, 2024 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/xsd/maven-4.0.0.xsd"> | 
|  |  | 
|  | <modelVersion>4.0.0</modelVersion> | 
|  |  | 
|  | <parent> | 
|  | <groupId>org.glassfish.jersey.ext</groupId> | 
|  | <artifactId>project</artifactId> | 
|  | <version>3.0.99-SNAPSHOT</version> | 
|  | </parent> | 
|  |  | 
|  | <artifactId>jersey-spring6</artifactId> | 
|  | <name>jersey-spring6</name> | 
|  |  | 
|  | <packaging>jar</packaging> | 
|  |  | 
|  | <description> | 
|  | Jersey extension module providing support for Spring 6 integration. | 
|  | </description> | 
|  |  | 
|  | <properties> | 
|  | <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | 
|  | <java.build.outputDirectory>${project.basedir}/target</java.build.outputDirectory> | 
|  | <javaPre17.sourceDirectory>${project.basedir}/src/main/javaPre17</javaPre17.sourceDirectory> | 
|  | <java17.build.outputDirectory>${project.basedir}/target17</java17.build.outputDirectory> | 
|  | <java17.sourceDirectory>${project.basedir}/src/main/java17</java17.sourceDirectory> | 
|  | </properties> | 
|  |  | 
|  | <repositories> | 
|  | <repository> | 
|  | <name>Spring Repository</name> | 
|  | <id>spring-repository</id> | 
|  | <url>https://repo.spring.io/milestone</url> | 
|  | </repository> | 
|  | </repositories> | 
|  |  | 
|  | <dependencies> | 
|  | <dependency> | 
|  | <groupId>org.glassfish.jersey.core</groupId> | 
|  | <artifactId>jersey-server</artifactId> | 
|  | <version>${project.version}</version> | 
|  | </dependency> | 
|  |  | 
|  | <dependency> | 
|  | <groupId>org.glassfish.jersey.inject</groupId> | 
|  | <artifactId>jersey-hk2</artifactId> | 
|  | <version>${project.version}</version> | 
|  | </dependency> | 
|  |  | 
|  | <dependency> | 
|  | <groupId>org.glassfish.jersey.containers</groupId> | 
|  | <artifactId>jersey-container-servlet-core</artifactId> | 
|  | <version>${project.version}</version> | 
|  | </dependency> | 
|  |  | 
|  | <dependency> | 
|  | <groupId>org.glassfish.jersey.test-framework.providers</groupId> | 
|  | <artifactId>jersey-test-framework-provider-grizzly2</artifactId> | 
|  | <version>${project.version}</version> | 
|  | <scope>test</scope> | 
|  | </dependency> | 
|  |  | 
|  | <dependency> | 
|  | <groupId>commons-logging</groupId> | 
|  | <artifactId>commons-logging</artifactId> | 
|  | <scope>test</scope> | 
|  | </dependency> | 
|  |  | 
|  | <dependency> | 
|  | <groupId>org.glassfish.hk2</groupId> | 
|  | <artifactId>hk2</artifactId> | 
|  | <version>${hk2.version}</version> | 
|  | <exclusions> | 
|  | <exclusion> | 
|  | <groupId>org.ow2.asm</groupId> | 
|  | <artifactId>asm</artifactId> | 
|  | </exclusion> | 
|  | <exclusion> | 
|  | <groupId>org.ow2.asm</groupId> | 
|  | <artifactId>asm-util</artifactId> | 
|  | </exclusion> | 
|  | <exclusion> | 
|  | <groupId>org.ow2.asm</groupId> | 
|  | <artifactId>asm-tree</artifactId> | 
|  | </exclusion> | 
|  | <exclusion> | 
|  | <groupId>org.ow2.asm</groupId> | 
|  | <artifactId>asm-analysis</artifactId> | 
|  | </exclusion> | 
|  | <exclusion> | 
|  | <groupId>jakarta.annotation</groupId> | 
|  | <artifactId>jakarta.annotation-api</artifactId> | 
|  | </exclusion> | 
|  | </exclusions> | 
|  | </dependency> | 
|  |  | 
|  | <dependency> | 
|  | <groupId>org.glassfish.hk2</groupId> | 
|  | <artifactId>spring-bridge</artifactId> | 
|  | <version>${hk2.version}</version> | 
|  | <exclusions> | 
|  | <exclusion>  <!-- already pulled in by jersey-server --> | 
|  | <groupId>jakarta.inject</groupId> | 
|  | <artifactId>jakarta.inject</artifactId> | 
|  | </exclusion> | 
|  | <exclusion> | 
|  | <groupId>org.glassfish.hk2</groupId> | 
|  | <artifactId>hk2-api</artifactId> | 
|  | </exclusion> | 
|  | <exclusion> | 
|  | <groupId>org.springframework</groupId> | 
|  | <artifactId>spring-context</artifactId> | 
|  | </exclusion> | 
|  | <exclusion> | 
|  | <groupId>jakarta.inject</groupId> | 
|  | <artifactId>jakarta.inject-api</artifactId> | 
|  | </exclusion> | 
|  | </exclusions> | 
|  | </dependency> | 
|  |  | 
|  | <dependency> | 
|  | <groupId>org.springframework</groupId> | 
|  | <artifactId>spring-beans</artifactId> | 
|  | <version>${spring6.version}</version> | 
|  | <scope>provided</scope> | 
|  | </dependency> | 
|  |  | 
|  | <dependency> | 
|  | <groupId>org.springframework</groupId> | 
|  | <artifactId>spring-core</artifactId> | 
|  | <version>${spring6.version}</version> | 
|  | <exclusions> | 
|  | <exclusion> | 
|  | <groupId>commons-logging</groupId> | 
|  | <artifactId>commons-logging</artifactId> | 
|  | </exclusion> | 
|  | </exclusions> | 
|  | <scope>provided</scope> | 
|  | </dependency> | 
|  |  | 
|  | <dependency> | 
|  | <groupId>org.springframework</groupId> | 
|  | <artifactId>spring-context</artifactId> | 
|  | <version>${spring6.version}</version> | 
|  | <exclusions> | 
|  | <exclusion> | 
|  | <groupId>commons-logging</groupId> | 
|  | <artifactId>commons-logging</artifactId> | 
|  | </exclusion> | 
|  | </exclusions> | 
|  | <scope>provided</scope> | 
|  | </dependency> | 
|  |  | 
|  | <dependency> | 
|  | <groupId>org.springframework</groupId> | 
|  | <artifactId>spring-web</artifactId> | 
|  | <version>${spring6.version}</version> | 
|  | <scope>provided</scope> | 
|  | </dependency> | 
|  |  | 
|  | <dependency> | 
|  | <groupId>org.springframework</groupId> | 
|  | <artifactId>spring-aop</artifactId> | 
|  | <version>${spring6.version}</version> | 
|  | <scope>provided</scope> | 
|  | </dependency> | 
|  |  | 
|  | <dependency> | 
|  | <groupId>jakarta.servlet</groupId> | 
|  | <artifactId>jakarta.servlet-api</artifactId> | 
|  | <version>${servlet5.version}</version> | 
|  | <scope>provided</scope> | 
|  | </dependency> | 
|  |  | 
|  | <dependency> | 
|  | <groupId>org.glassfish.jersey.test-framework</groupId> | 
|  | <artifactId>jersey-test-framework-core</artifactId> | 
|  | <version>${project.version}</version> | 
|  | <scope>test</scope> | 
|  | </dependency> | 
|  |  | 
|  | <dependency> | 
|  | <groupId>org.aspectj</groupId> | 
|  | <artifactId>aspectjrt</artifactId> | 
|  | <version>1.6.11</version> | 
|  | <scope>test</scope> | 
|  | </dependency> | 
|  | <dependency> | 
|  | <groupId>org.aspectj</groupId> | 
|  | <artifactId>aspectjweaver</artifactId> | 
|  | <version>1.6.11</version> | 
|  | <scope>test</scope> | 
|  | </dependency> | 
|  |  | 
|  | </dependencies> | 
|  |  | 
|  | <build> | 
|  | <plugins> | 
|  | <plugin> | 
|  | <groupId>com.sun.istack</groupId> | 
|  | <artifactId>istack-commons-maven-plugin</artifactId> | 
|  | <inherited>true</inherited> | 
|  | </plugin> | 
|  | <plugin> | 
|  | <groupId>org.codehaus.mojo</groupId> | 
|  | <artifactId>build-helper-maven-plugin</artifactId> | 
|  | <inherited>true</inherited> | 
|  | </plugin> | 
|  | </plugins> | 
|  | </build> | 
|  |  | 
|  | <profiles> | 
|  | <profile> | 
|  | <id>SpringExclude</id> | 
|  | <activation> | 
|  | <jdk>[1.8,17)</jdk> | 
|  | </activation> | 
|  | <build> | 
|  | <directory>${java.build.outputDirectory}</directory> | 
|  | <plugins> | 
|  | <plugin> | 
|  | <groupId>org.codehaus.mojo</groupId> | 
|  | <artifactId>build-helper-maven-plugin</artifactId> | 
|  | <executions> | 
|  | <execution> | 
|  | <phase>generate-sources</phase> | 
|  | <goals> | 
|  | <goal>add-source</goal> | 
|  | </goals> | 
|  | <configuration> | 
|  | <sources> | 
|  | <source>${javaPre17.sourceDirectory}</source> | 
|  | </sources> | 
|  | </configuration> | 
|  | </execution> | 
|  | </executions> | 
|  | </plugin> | 
|  | <plugin> | 
|  | <groupId>org.apache.maven.plugins</groupId> | 
|  | <artifactId>maven-compiler-plugin</artifactId> | 
|  | <configuration> | 
|  | <testExcludes> | 
|  | <testExclude>org/glassfish/jersey/server/spring/**/*.java</testExclude> | 
|  | </testExcludes> | 
|  | </configuration> | 
|  | </plugin> | 
|  | </plugins> | 
|  | </build> | 
|  | </profile> | 
|  | <profile> | 
|  | <id>SpringInclude</id> | 
|  | <activation> | 
|  | <jdk>[17,)</jdk> | 
|  | </activation> | 
|  | <build> | 
|  | <directory>${java17.build.outputDirectory}</directory> | 
|  | <plugins> | 
|  | <plugin> | 
|  | <groupId>org.codehaus.mojo</groupId> | 
|  | <artifactId>build-helper-maven-plugin</artifactId> | 
|  | <executions> | 
|  | <execution> | 
|  | <phase>generate-sources</phase> | 
|  | <goals> | 
|  | <goal>add-source</goal> | 
|  | </goals> | 
|  | <configuration> | 
|  | <sources> | 
|  | <source>${java17.sourceDirectory}</source> | 
|  | </sources> | 
|  | </configuration> | 
|  | </execution> | 
|  | </executions> | 
|  | </plugin> | 
|  | </plugins> | 
|  | </build> | 
|  | </profile> | 
|  | <profile> | 
|  | <id>copyJDK17FilesToMultiReleaseJar</id> | 
|  | <activation> | 
|  | <file> | 
|  | <!-- ${java17.build.outputDirectory} does not work here --> | 
|  | <exists>target17/classes/org/glassfish/jersey/server/spring/SpringWebApplicationInitializer.class</exists> | 
|  | </file> | 
|  | <jdk>[1.8,17)</jdk> | 
|  | </activation> | 
|  | <build> | 
|  | <plugins> | 
|  | <plugin> | 
|  | <groupId>org.apache.felix</groupId> | 
|  | <artifactId>maven-bundle-plugin</artifactId> | 
|  | <inherited>true</inherited> | 
|  | <extensions>true</extensions> | 
|  | <configuration> | 
|  | <instructions> | 
|  | <Multi-Release>true</Multi-Release> | 
|  | </instructions> | 
|  | </configuration> | 
|  | </plugin> | 
|  | <plugin> | 
|  | <groupId>org.apache.maven.plugins</groupId> | 
|  | <artifactId>maven-resources-plugin</artifactId> | 
|  | <inherited>true</inherited> | 
|  | <executions> | 
|  | <execution> | 
|  | <id>copy-jdk17-classes</id> | 
|  | <phase>prepare-package</phase> | 
|  | <goals> | 
|  | <goal>copy-resources</goal> | 
|  | </goals> | 
|  | <configuration> | 
|  | <outputDirectory>${java.build.outputDirectory}/classes/META-INF/versions/17</outputDirectory> | 
|  | <resources> | 
|  | <resource> | 
|  | <directory>${java17.build.outputDirectory}/classes</directory> | 
|  | </resource> | 
|  | </resources> | 
|  | </configuration> | 
|  | </execution> | 
|  | </executions> | 
|  | </plugin> | 
|  | <plugin> | 
|  | <groupId>org.apache.maven.plugins</groupId> | 
|  | <artifactId>maven-antrun-plugin</artifactId> | 
|  | <executions> | 
|  | <execution> | 
|  | <id>copy-jdk17-sources</id> | 
|  | <phase>package</phase> | 
|  | <configuration> | 
|  | <target> | 
|  | <property name="sources-jar" value="${java.build.outputDirectory}/${project.artifactId}-${project.version}-sources.jar"/> | 
|  | <echo>sources-jar: ${sources-jar}</echo> | 
|  | <zip destfile="${sources-jar}" update="true"> | 
|  | <zipfileset dir="${java17.sourceDirectory}" prefix="META-INF/versions/17"/> | 
|  | </zip> | 
|  | </target> | 
|  | </configuration> | 
|  | <goals> | 
|  | <goal>run</goal> | 
|  | </goals> | 
|  | </execution> | 
|  | </executions> | 
|  | </plugin> | 
|  | </plugins> | 
|  | </build> | 
|  | </profile> | 
|  | <profile> | 
|  | <id>delayed-strategy-skip-test</id> | 
|  | <activation> | 
|  | <property> | 
|  | <name>org.glassfish.jersey.injection.manager.strategy</name> | 
|  | <value>delayed</value> | 
|  | </property> | 
|  | </activation> | 
|  | <build> | 
|  | <plugins> | 
|  | <plugin> | 
|  | <groupId>org.apache.maven.plugins</groupId> | 
|  | <artifactId>maven-surefire-plugin</artifactId> | 
|  | <configuration> | 
|  | <skipTests>true</skipTests> | 
|  | </configuration> | 
|  | </plugin> | 
|  | </plugins> | 
|  | </build> | 
|  | </profile> | 
|  | <profile> | 
|  | <id>HK2_JDK8_dependencyConvergence_skip</id> | 
|  | <activation> | 
|  | <jdk>1.8</jdk> | 
|  | </activation> | 
|  | <build> | 
|  | <plugins> | 
|  | <plugin> | 
|  | <groupId>org.apache.maven.plugins</groupId> | 
|  | <artifactId>maven-enforcer-plugin</artifactId> | 
|  | <configuration> | 
|  | <rulesToSkip>dependencyConvergence</rulesToSkip> | 
|  | </configuration> | 
|  | </plugin> | 
|  | </plugins> | 
|  | </build> | 
|  | </profile> | 
|  | </profiles> | 
|  | </project> |