diff --git a/spring-context/src/main/java/org/springframework/instrument/classloading/jboss/JBossLoadTimeWeaver.java b/spring-context/src/main/java/org/springframework/instrument/classloading/jboss/JBossLoadTimeWeaver.java
index 130dad7e624..f6db661d974 100644
--- a/spring-context/src/main/java/org/springframework/instrument/classloading/jboss/JBossLoadTimeWeaver.java
+++ b/spring-context/src/main/java/org/springframework/instrument/classloading/jboss/JBossLoadTimeWeaver.java
@@ -17,6 +17,7 @@
package org.springframework.instrument.classloading.jboss;
import java.lang.instrument.ClassFileTransformer;
+import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
@@ -26,12 +27,14 @@ import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
import org.springframework.util.ClassUtils;
import org.springframework.util.ReflectionUtils;
+import org.springframework.util.function.ThrowingFunction;
/**
* {@link LoadTimeWeaver} implementation for JBoss's instrumentable ClassLoader.
* Thanks to Ales Justin and Marius Bogoevici for the initial prototype.
*
- *
This weaver supports WildFly 13+.
+ *
This weaver supports WildFly 13-23 (DelegatingClassFileTransformer) as well as
+ * WildFly 24+ (DelegatingClassTransformer), as of Spring Framework 6.1.15.
*
* @author Costin Leau
* @author Juergen Hoeller
@@ -39,9 +42,15 @@ import org.springframework.util.ReflectionUtils;
*/
public class JBossLoadTimeWeaver implements LoadTimeWeaver {
- private static final String DELEGATING_TRANSFORMER_CLASS_NAME =
+ private static final String LEGACY_DELEGATING_TRANSFORMER_CLASS_NAME =
"org.jboss.as.server.deployment.module.DelegatingClassFileTransformer";
+ private static final String DELEGATING_TRANSFORMER_CLASS_NAME =
+ "org.jboss.as.server.deployment.module.DelegatingClassTransformer";
+
+ private static final String CLASS_TRANSFORMER_CLASS_NAME =
+ "org.jboss.modules.ClassTransformer";
+
private static final String WRAPPER_TRANSFORMER_CLASS_NAME =
"org.jboss.modules.JLIClassTransformer";
@@ -52,6 +61,8 @@ public class JBossLoadTimeWeaver implements LoadTimeWeaver {
private final Method addTransformer;
+ private final ThrowingFunction