This is an automated email from the ASF dual-hosted git repository.

jbonofre pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq.git


The following commit(s) were added to refs/heads/main by this push:
     new 76b878a6b2 build(deps): bump spring-version from 6.2.19 to 7.0.8 
(#2102)
76b878a6b2 is described below

commit 76b878a6b2378971639f39870d5527c291318d76
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
AuthorDate: Fri Jul 24 06:15:52 2026 +0200

    build(deps): bump spring-version from 6.2.19 to 7.0.8 (#2102)
    
    * build(deps): bump spring-version from 6.2.19 to 7.0.8
    
    Bumps `spring-version` from 6.2.19 to 7.0.8.
    
    Updates `org.springframework:spring-aop` from 6.2.19 to 7.0.8
    - [Release 
notes](https://github.com/spring-projects/spring-framework/releases)
    - 
[Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.19...v7.0.8)
    
    Updates `org.springframework:spring-beans` from 6.2.19 to 7.0.8
    - [Release 
notes](https://github.com/spring-projects/spring-framework/releases)
    - 
[Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.19...v7.0.8)
    
    Updates `org.springframework:spring-context` from 6.2.19 to 7.0.8
    - [Release 
notes](https://github.com/spring-projects/spring-framework/releases)
    - 
[Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.19...v7.0.8)
    
    Updates `org.springframework:spring-core` from 6.2.19 to 7.0.8
    - [Release 
notes](https://github.com/spring-projects/spring-framework/releases)
    - 
[Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.19...v7.0.8)
    
    Updates `org.springframework:spring-expression` from 6.2.19 to 7.0.8
    - [Release 
notes](https://github.com/spring-projects/spring-framework/releases)
    - 
[Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.19...v7.0.8)
    
    Updates `org.springframework:spring-jms` from 6.2.19 to 7.0.8
    - [Release 
notes](https://github.com/spring-projects/spring-framework/releases)
    - 
[Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.19...v7.0.8)
    
    Updates `org.springframework:spring-tx` from 6.2.19 to 7.0.8
    - [Release 
notes](https://github.com/spring-projects/spring-framework/releases)
    - 
[Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.19...v7.0.8)
    
    Updates `org.springframework:spring-webmvc` from 6.2.19 to 7.0.8
    - [Release 
notes](https://github.com/spring-projects/spring-framework/releases)
    - 
[Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.19...v7.0.8)
    
    Updates `org.springframework:spring-web` from 6.2.19 to 7.0.8
    - [Release 
notes](https://github.com/spring-projects/spring-framework/releases)
    - 
[Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.19...v7.0.8)
    
    Updates `org.springframework:spring-test` from 6.2.19 to 7.0.8
    - [Release 
notes](https://github.com/spring-projects/spring-framework/releases)
    - 
[Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.19...v7.0.8)
    
    Updates `org.springframework:spring-oxm` from 6.2.19 to 7.0.8
    - [Release 
notes](https://github.com/spring-projects/spring-framework/releases)
    - 
[Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.19...v7.0.8)
    
    ---
    updated-dependencies:
    - dependency-name: org.springframework:spring-aop
      dependency-version: 7.0.8
      dependency-type: direct:production
      update-type: version-update:semver-major
    - dependency-name: org.springframework:spring-beans
      dependency-version: 7.0.8
      dependency-type: direct:production
      update-type: version-update:semver-major
    - dependency-name: org.springframework:spring-context
      dependency-version: 7.0.8
      dependency-type: direct:production
      update-type: version-update:semver-major
    - dependency-name: org.springframework:spring-core
      dependency-version: 7.0.8
      dependency-type: direct:production
      update-type: version-update:semver-major
    - dependency-name: org.springframework:spring-expression
      dependency-version: 7.0.8
      dependency-type: direct:production
      update-type: version-update:semver-major
    - dependency-name: org.springframework:spring-jms
      dependency-version: 7.0.8
      dependency-type: direct:production
      update-type: version-update:semver-major
    - dependency-name: org.springframework:spring-oxm
      dependency-version: 7.0.8
      dependency-type: direct:production
      update-type: version-update:semver-major
    - dependency-name: org.springframework:spring-test
      dependency-version: 7.0.8
      dependency-type: direct:production
      update-type: version-update:semver-major
    - dependency-name: org.springframework:spring-tx
      dependency-version: 7.0.8
      dependency-type: direct:production
      update-type: version-update:semver-major
    - dependency-name: org.springframework:spring-web
      dependency-version: 7.0.8
      dependency-type: direct:production
      update-type: version-update:semver-major
    - dependency-name: org.springframework:spring-webmvc
      dependency-version: 7.0.8
      dependency-type: direct:production
      update-type: version-update:semver-major
    ...
    
    Signed-off-by: dependabot[bot] <[email protected]>
    
    * Add Karaf features verification and Spring 7 support
    
    Add the karaf-maven-plugin verify goal to activemq-karaf to statically
    validate the ActiveMQ features against the Karaf 4.4 framework, standard,
    spring and enterprise descriptors on every build.
    
    Verification surfaced several pre-existing feature resolution problems,
    now fixed:
    
    - activemq-blueprint: correct the Fragment-Host header, which targeted
      org.apache.activemq.activemq-osgi while the host bundle's symbolic name
      is org.apache.activemq.osgi, so the fragment could never attach.
    - activemq-amqp-client: add the netty-codec-base and netty-codec-compression
      bundles (packages relocated in Netty 4.2) and the jakarta.jms-api bundle
      required by qpid-jms-client.
    - activemq-shell: pull the activemq-client feature so the 
org.apache.activemq.console
      package is available.
    - activemq-web-console: provide the Jakarta EE 9 servlet/JSP/EL API bundles
      the migrated WAR imports.
    
    Spring 7: Karaf only ships Spring 6.1 features and there are no ServiceMix
    OSGi wrappers for Spring 7, so add spring and spring-web features that wrap
    the plain Spring 7 jars via the pax-url wrap protocol, and point
    activemq-client and activemq-web-console at them ([7,8)). Also align
    spring-version-range with the 7.x import range.
    
    * Run Karaf features verification in activemq-karaf-itest
    
    The karaf-maven-plugin verify goal resolves the feature bundles through
    pax-url from the local repository. When bound to the activemq-karaf module
    it fails in a clean reactor build because sibling SNAPSHOTs referenced by
    the features (activemq-osgi, activemq-blueprint, activemq-http and the
    activemq-karaf bundle itself) are not installed yet at that point in the
    reactor.
    
    Move the verification to activemq-karaf-itest, which is built last (after
    all referenced modules are installed) and already sets up the local
    repository for pax-url. The feature descriptors are now referenced as
    attached mvn: artifacts of activemq-karaf instead of local files.
    
    * Use filtered properties for Jakarta versions and align to Jakarta EE 11
    
    Reference the parent pom Jakarta versions from the Karaf features through
    filtered properties instead of hardcoded versions, as requested in review.
    
    Make the activemq-web-console bundle imports deterministic so feature
    verification is stable regardless of the transitively resolved API versions:
    pin jakarta.servlet to [5,7) and jakarta.servlet.jsp to [3,5), and widen the
    org.objectweb.asm import range to [6,10) to match the asm 9.x now used by 
the
    Jetty 12 based web console. Provide the org.objectweb.asm package (used in
    provided scope by the web console) through an asm bundle in the
    activemq-web-console feature.
    
    * Address review comments: use spring-version-range and narrow servlet 
import to [6,7)
    
    ---------
    
    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] 
<49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: JB Onofré <[email protected]>
---
 activemq-blueprint/pom.xml                         |  2 +-
 activemq-karaf-itest/pom.xml                       | 38 ++++++++++++++++++++++
 .../src/main/resources/features-core.xml           | 29 ++++++++++++++---
 activemq-karaf/src/main/resources/features.xml     |  9 +++++
 activemq-web-console/pom.xml                       | 14 ++++----
 pom.xml                                            | 24 ++++++++++----
 6 files changed, 97 insertions(+), 19 deletions(-)

diff --git a/activemq-blueprint/pom.xml b/activemq-blueprint/pom.xml
index a5b08eefdc..c69489fcd6 100644
--- a/activemq-blueprint/pom.xml
+++ b/activemq-blueprint/pom.xml
@@ -58,7 +58,7 @@
                       org.apache.aries.blueprint.*;version="[1.0,2)",
                       *
                   </Import-Package>
-                  
<Fragment-Host>org.apache.activemq.activemq-osgi</Fragment-Host>
+                  <Fragment-Host>org.apache.activemq.osgi</Fragment-Host>
                   <_noee>true</_noee>
               </instructions>
           </configuration>
diff --git a/activemq-karaf-itest/pom.xml b/activemq-karaf-itest/pom.xml
index 076dba00fd..5ca9c93792 100644
--- a/activemq-karaf-itest/pom.xml
+++ b/activemq-karaf-itest/pom.xml
@@ -201,6 +201,44 @@
           </systemPropertyVariables>
         </configuration>
       </plugin>
+      <!--
+        Statically verify that the ActiveMQ Karaf features resolve against the 
Karaf
+        distribution. This runs here (last in the reactor) so all referenced 
ActiveMQ
+        artifacts (activemq-osgi, activemq-blueprint, activemq-karaf, ...) are 
already
+        installed in the local repository.
+      -->
+      <plugin>
+        <groupId>org.apache.karaf.tooling</groupId>
+        <artifactId>karaf-maven-plugin</artifactId>
+        <version>${karaf-version}</version>
+        <executions>
+          <execution>
+            <id>verify-features</id>
+            <phase>verify</phase>
+            <goals>
+              <goal>verify</goal>
+            </goals>
+            <configuration>
+              <descriptors>
+                
<descriptor>mvn:org.apache.karaf.features/framework/${karaf-version}/xml/features</descriptor>
+                
<descriptor>mvn:org.apache.karaf.features/standard/${karaf-version}/xml/features</descriptor>
+                
<descriptor>mvn:org.apache.karaf.features/spring/${karaf-version}/xml/features</descriptor>
+                
<descriptor>mvn:org.apache.karaf.features/enterprise/${karaf-version}/xml/features</descriptor>
+                
<descriptor>mvn:org.apache.activemq/activemq-karaf/${project.version}/xml/features-core</descriptor>
+                
<descriptor>mvn:org.apache.activemq/activemq-karaf/${project.version}/xml/features</descriptor>
+              </descriptors>
+              
<distribution>org.apache.karaf:apache-karaf:zip::${karaf-version}</distribution>
+              <javase>17</javase>
+              <framework>
+                <feature>framework</feature>
+              </framework>
+              <features>
+                <feature>activemq*</feature>
+              </features>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
     <pluginManagement>
         <plugins>
diff --git a/activemq-karaf/src/main/resources/features-core.xml 
b/activemq-karaf/src/main/resources/features-core.xml
index 5a1748a99c..1061ee3047 100644
--- a/activemq-karaf/src/main/resources/features-core.xml
+++ b/activemq-karaf/src/main/resources/features-core.xml
@@ -20,18 +20,39 @@
 
 <features name="activemq-core-${project.version}" 
xmlns="http://karaf.apache.org/xmlns/features/v1.4.0";>
 
+    <!--
+        Spring 7.x support. Apache Karaf only provides Spring up to 6.1.x and 
there are no
+        ServiceMix OSGi wrappers for Spring 7 yet, so the plain Spring 
Framework jars (which
+        no longer ship OSGi metadata) are wrapped on the fly with the pax-url 
wrap: protocol.
+    -->
+    <feature name="spring" description="Spring 7.x support" 
version="${spring-version}">
+        <bundle 
start-level="30">wrap:mvn:org.springframework/spring-core/${spring-version}$Bundle-SymbolicName=org.springframework.spring-core&amp;Bundle-Version=${spring-version}&amp;Export-Package=org.springframework.*;version=${spring-version}&amp;Import-Package=*;resolution:=optional</bundle>
+        <bundle 
start-level="30">wrap:mvn:org.springframework/spring-expression/${spring-version}$Bundle-SymbolicName=org.springframework.spring-expression&amp;Bundle-Version=${spring-version}&amp;Export-Package=org.springframework.*;version=${spring-version}&amp;Import-Package=*;resolution:=optional</bundle>
+        <bundle 
start-level="30">wrap:mvn:org.springframework/spring-beans/${spring-version}$Bundle-SymbolicName=org.springframework.spring-beans&amp;Bundle-Version=${spring-version}&amp;Export-Package=org.springframework.*;version=${spring-version}&amp;Import-Package=*;resolution:=optional</bundle>
+        <bundle 
start-level="30">wrap:mvn:org.springframework/spring-aop/${spring-version}$Bundle-SymbolicName=org.springframework.spring-aop&amp;Bundle-Version=${spring-version}&amp;Export-Package=org.springframework.*,org.aopalliance.*;version=${spring-version}&amp;Import-Package=*;resolution:=optional</bundle>
+        <bundle 
start-level="30">wrap:mvn:org.springframework/spring-context/${spring-version}$Bundle-SymbolicName=org.springframework.spring-context&amp;Bundle-Version=${spring-version}&amp;Export-Package=org.springframework.*;version=${spring-version}&amp;Import-Package=*;resolution:=optional</bundle>
+        <bundle 
start-level="30">wrap:mvn:org.springframework/spring-context-support/${spring-version}$Bundle-SymbolicName=org.springframework.spring-context-support&amp;Bundle-Version=${spring-version}&amp;Export-Package=org.springframework.*;version=${spring-version}&amp;Import-Package=*;resolution:=optional</bundle>
+    </feature>
+
+    <feature name="spring-web" description="Spring 7.x Web support" 
version="${spring-version}">
+        <feature version="${spring-version-range}">spring</feature>
+        <bundle 
dependency="true">mvn:jakarta.servlet/jakarta.servlet-api/${jakarta-servlet-api-version}</bundle>
+        <bundle 
start-level="30">wrap:mvn:org.springframework/spring-web/${spring-version}$Bundle-SymbolicName=org.springframework.spring-web&amp;Bundle-Version=${spring-version}&amp;Export-Package=org.springframework.*;version=${spring-version}&amp;Import-Package=*;resolution:=optional</bundle>
+        <bundle 
start-level="30">wrap:mvn:org.springframework/spring-webmvc/${spring-version}$Bundle-SymbolicName=org.springframework.spring-webmvc&amp;Bundle-Version=${spring-version}&amp;Export-Package=org.springframework.*;version=${spring-version}&amp;Import-Package=*;resolution:=optional</bundle>
+    </feature>
+
     <!-- Bundles needed if only client will be deployed in the container -->
     <feature name="activemq-client" description="ActiveMQ client libraries" 
version="${project.version}">
-        <feature version="[5,7)">spring</feature>
+        <feature version="${spring-version-range}">spring</feature>
         <feature>aries-blueprint</feature>
         <feature>activemq-combined-jms-spec</feature>
         <bundle>mvn:jakarta.activation/jakarta.activation-api/2.1.2</bundle>
         <bundle>mvn:jakarta.xml.bind/jakarta.xml.bind-api/4.0.0</bundle>
-        <bundle>mvn:jakarta.jms/jakarta.jms-api/3.1.0</bundle>
+        
<bundle>mvn:jakarta.jms/jakarta.jms-api/${jakarta-jms-api-version}</bundle>
         <bundle>mvn:jakarta.activation/jakarta.activation-api/2.1.2</bundle>
-        <bundle>mvn:jakarta.annotation/jakarta.annotation-api/2.1.1</bundle>
+        
<bundle>mvn:jakarta.annotation/jakarta.annotation-api/${jakarta-annotation-api-version}</bundle>
         
<bundle>mvn:jakarta.enterprise/jakarta.enterprise.lang-model/4.0.1</bundle>
-        <bundle>mvn:jakarta.el/jakarta.el-api/5.0.1</bundle>
+        
<bundle>mvn:jakarta.el/jakarta.el-api/${jakarta-el-api-version}</bundle>
         <bundle>mvn:jakarta.inject/jakarta.inject-api/2.0.1</bundle>
         <bundle>mvn:jakarta.interceptor/jakarta.interceptor-api/2.1.0</bundle>
         
<bundle>mvn:jakarta.enterprise/jakarta.enterprise.cdi-api/4.0.1</bundle>
diff --git a/activemq-karaf/src/main/resources/features.xml 
b/activemq-karaf/src/main/resources/features.xml
index cd7eec644c..22a311d951 100644
--- a/activemq-karaf/src/main/resources/features.xml
+++ b/activemq-karaf/src/main/resources/features.xml
@@ -39,6 +39,7 @@
 
     <feature name="activemq-shell" version="${project.version}">
         <feature>shell-compat</feature>
+        <feature version="${project.version}">activemq-client</feature>
         
<bundle>mvn:org.apache.activemq/activemq-karaf/${project.version}</bundle>
     </feature>
 
@@ -49,6 +50,11 @@
     <feature name="activemq-web-console" version="${project.version}">
       <feature>war</feature>
       <feature>eventadmin</feature>
+      <feature version="${spring-version-range}">spring-web</feature>
+      <bundle dependency="true">mvn:org.ow2.asm/asm/${asm-version}</bundle>
+      <bundle 
dependency="true">mvn:jakarta.servlet/jakarta.servlet-api/${jakarta-servlet-api-version}</bundle>
+      <bundle 
dependency="true">mvn:jakarta.el/jakarta.el-api/${jakarta-el-api-version}</bundle>
+      <bundle 
dependency="true">mvn:jakarta.servlet.jsp/jakarta.servlet.jsp-api/${jakarta-servlet-jsp-api-version}</bundle>
       <configfile 
finalname="${karaf.etc}/org.apache.activemq.webconsole.cfg">mvn:org.apache.activemq/activemq-karaf/${project.version}/cfg/activemq-webconsole</configfile>
       
<bundle>mvn:org.apache.activemq/activemq-web-console/${project.version}/war</bundle>
     </feature>
@@ -62,12 +68,15 @@
     </feature>
 
     <feature name="activemq-amqp-client" version="${pom.version}" 
description="ActiveMQ AMQP protocol client libraries">
+      <bundle 
dependency="true">mvn:jakarta.jms/jakarta.jms-api/${jakarta-jms-api-version}</bundle>
       <bundle>mvn:io.netty/netty-common/${netty-version}</bundle>
       <bundle>mvn:io.netty/netty-transport/${netty-version}</bundle>
       
<bundle>mvn:io.netty/netty-transport-native-epoll/${netty-version}</bundle>
       
<bundle>mvn:io.netty/netty-transport-native-kqueue/${netty-version}</bundle>
       
<bundle>mvn:io.netty/netty-transport-native-unix-common/${netty-version}</bundle>
       <bundle>mvn:io.netty/netty-buffer/${netty-version}</bundle>
+      <bundle>mvn:io.netty/netty-codec-base/${netty-version}</bundle>
+      <bundle>mvn:io.netty/netty-codec-compression/${netty-version}</bundle>
       <bundle>mvn:io.netty/netty-codec/${netty-version}</bundle>
       <bundle>mvn:io.netty/netty-codec-http/${netty-version}</bundle>
       <bundle>mvn:io.netty/netty-handler/${netty-version}</bundle>
diff --git a/activemq-web-console/pom.xml b/activemq-web-console/pom.xml
index 65f2e6f7ec..5edeb39c9f 100644
--- a/activemq-web-console/pom.xml
+++ b/activemq-web-console/pom.xml
@@ -139,12 +139,12 @@
               javax.management.remote,
               javax.naming,
               org.w3c.dom,
-              jakarta.servlet;version="[5,6)",
-              jakarta.servlet.annotation;version="[5,6)",
-              jakarta.servlet.http;version="[5,6)",
-              jakarta.servlet.jsp,
-              jakarta.servlet.jsp.tagext,
-              jakarta.servlet.jsp.el,
+              jakarta.servlet;version="[6,7)",
+              jakarta.servlet.annotation;version="[6,7)",
+              jakarta.servlet.http;version="[6,7)",
+              jakarta.servlet.jsp;version="[3,5)",
+              jakarta.servlet.jsp.tagext;version="[3,5)",
+              jakarta.servlet.jsp.el;version="[3,5)",
               javax.management,
               javax.management.openmbean,
               javax.net,
@@ -158,7 +158,7 @@
               org.apache.log4j;version="[2,3)";resolution:=optional,
               org.apache.log4j.spi;version="[2,3)";resolution:=optional,
               
org.eclipse.jetty*;resolution:=optional;version="${jetty-version-range}",
-              org.objectweb.asm*;version="[6,8)"
+              org.objectweb.asm*;version="[6,10)"
             </Import-Package>
             <_contract>!*</_contract>
             <_noee>true</_noee>
diff --git a/pom.xml b/pom.xml
index 680727dfc7..fed7d07b28 100644
--- a/pom.xml
+++ b/pom.xml
@@ -69,6 +69,11 @@
     <jackson-version>2.22.1</jackson-version>
     <jackson-annotations-version>2.22</jackson-annotations-version>
     <jakarta-jms-api-version>3.1.0</jakarta-jms-api-version>
+    <jakarta-annotation-api-version>3.0.0</jakarta-annotation-api-version>
+    <jakarta-servlet-api-version>6.1.0</jakarta-servlet-api-version>
+    <jakarta-servlet-jsp-api-version>4.0.0</jakarta-servlet-jsp-api-version>
+    <jakarta-el-api-version>6.0.0</jakarta-el-api-version>
+    <asm-version>9.10.1</asm-version>
     <jasypt-version>1.9.3</jasypt-version>
     <jaxb-version>4.0.9</jaxb-version>
     <jetty-version>12.1.11</jetty-version>
@@ -94,8 +99,8 @@
     <rome-version>2.1.0</rome-version>
     <shiro-version>2.2.1</shiro-version>
     <slf4j-version>2.0.18</slf4j-version>
-    <spring-version>6.2.19</spring-version>
-    <spring-version-range>[6,7)</spring-version-range>
+    <spring-version>7.0.8</spring-version>
+    <spring-version-range>[7,8)</spring-version-range>
     <taglibs-version>1.2.5</taglibs-version>
     <xpp3-version>1.1.4c</xpp3-version>
     <xstream-version>1.4.21</xstream-version>
@@ -448,19 +453,24 @@
       <dependency>
         <groupId>org.ow2.asm</groupId>
         <artifactId>asm</artifactId>
-        <version>9.10.1</version>
+        <version>${asm-version}</version>
       </dependency>
 
-     <!-- Servlet 6.1 and JSP (Jakarta EE 11) -->
+     <!-- Servlet and JSP (Jakarta EE 11, required by Spring 7) -->
      <dependency>
        <groupId>jakarta.servlet.jsp</groupId>
        <artifactId>jakarta.servlet.jsp-api</artifactId>
-       <version>4.0.0</version>
+       <version>${jakarta-servlet-jsp-api-version}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.servlet</groupId>
        <artifactId>jakarta.servlet-api</artifactId>
-       <version>6.1.0</version>
+       <version>${jakarta-servlet-api-version}</version>
+     </dependency>
+     <dependency>
+       <groupId>jakarta.el</groupId>
+       <artifactId>jakarta.el-api</artifactId>
+       <version>${jakarta-el-api-version}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.websocket</groupId>
@@ -940,7 +950,7 @@
       <dependency>
         <groupId>jakarta.annotation</groupId>
         <artifactId>jakarta.annotation-api</artifactId>
-        <version>3.0.0</version>
+        <version>${jakarta-annotation-api-version}</version>
       </dependency>
 
       <!-- JMH for micro-benchmarks -->


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact


Reply via email to