From 80942ee589f0b78948a17043451b7070cfcb3af1 Mon Sep 17 00:00:00 2001 From: Richard Zowalla Date: Sun, 4 Jan 2026 22:05:20 +0100 Subject: [PATCH] TOMEE-4569 - TomEE Maven Plugin fails in debug mode in Java 22+ -Xnoagent doesn't exist in modern Java anymore. --- .../openejb-standalone/src/main/resources/openejb | 2 +- container/openejb-core/pom.xml | 2 +- .../java/org/apache/openejb/config/RemoteServer.java | 12 ++++++++---- .../src/main/resources/bin/applicationcomposer | 2 +- server/openejb-ejbd/pom.xml | 2 +- server/openejb-http/pom.xml | 2 +- tomee/apache-tomee/src/main/resources/tomee.sh | 2 +- 7 files changed, 14 insertions(+), 10 deletions(-) diff --git a/assembly/openejb-standalone/src/main/resources/openejb b/assembly/openejb-standalone/src/main/resources/openejb index 063b984c9f0..4172eeeea86 100755 --- a/assembly/openejb-standalone/src/main/resources/openejb +++ b/assembly/openejb-standalone/src/main/resources/openejb @@ -92,7 +92,7 @@ export JDK_JAVA_OPTIONS args="$@" if [ "$1" = "debug" ]; then - OPENEJB_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005 $OPENEJB_OPTS" + OPENEJB_OPTS="-Xdebug -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005 $OPENEJB_OPTS" args="start" fi diff --git a/container/openejb-core/pom.xml b/container/openejb-core/pom.xml index abe35976edd..b78cfc5d67f 100644 --- a/container/openejb-core/pom.xml +++ b/container/openejb-core/pom.xml @@ -721,7 +721,7 @@ "-javaagent:${project.basedir}/target/openejb-javaagent-${project.version}.jar" -Xdebug - -Xnoagent -Djava.compiler=NONE + -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005 -Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java b/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java index 560dcc13616..a979b85ef7c 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java @@ -238,10 +238,14 @@ private void cmd(final List additionalArgs, final String cmd, final bool argsList.add("-XX:+HeapDumpOnOutOfMemoryError"); if (debug) { - argsList.add("-Xdebug"); - argsList.add("-Xnoagent"); - argsList.add("-Djava.compiler=NONE"); - argsList.add("-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=" + options.get(SERVER_DEBUG_PORT, 5005)); + final int debugPort = options.get(SERVER_DEBUG_PORT, 5005); + if (System.getProperty("java.vm.specification.version").compareTo("21") < 0) { + argsList.add("-Xdebug"); + argsList.add("-Djava.compiler=NONE"); + argsList.add("-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=" + debugPort); + } else { + argsList.add("-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=" + debugPort); + } } if (profile) { diff --git a/maven/applicationcomposer-maven-plugin/src/main/resources/bin/applicationcomposer b/maven/applicationcomposer-maven-plugin/src/main/resources/bin/applicationcomposer index 864f93912c2..5cf88dceffa 100644 --- a/maven/applicationcomposer-maven-plugin/src/main/resources/bin/applicationcomposer +++ b/maven/applicationcomposer-maven-plugin/src/main/resources/bin/applicationcomposer @@ -16,7 +16,7 @@ # limitations under the License. DEBUG= -#DEBUG="-Xnoagent -Djava.compiler=NONE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005" +#DEBUG="-Djava.compiler=NONE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005" cygwin=false darwin=false diff --git a/server/openejb-ejbd/pom.xml b/server/openejb-ejbd/pom.xml index 2fe8f21b625..e888b972e86 100644 --- a/server/openejb-ejbd/pom.xml +++ b/server/openejb-ejbd/pom.xml @@ -85,7 +85,7 @@ false - + "-javaagent:${project.build.directory}/openejb-javaagent-${project.version}.jar=foo=bar" -Dopenejb.classloader.forced-skip=org.apache.openejb.jee.,org.apache.openejb.api. -Dopenejb.classloader.forced-load=org.apache.openejb diff --git a/server/openejb-http/pom.xml b/server/openejb-http/pom.xml index 2ec846e98a7..58234cbd6b5 100644 --- a/server/openejb-http/pom.xml +++ b/server/openejb-http/pom.xml @@ -90,7 +90,7 @@ false - + "-javaagent:${project.build.directory}/openejb-javaagent-${project.version}.jar=foo=bar" -Dopenejb.classloader.forced-skip=org.apache.openejb.jee.,org.apache.openejb.api. -Dopenejb.classloader.forced-load=org.apache.openejb diff --git a/tomee/apache-tomee/src/main/resources/tomee.sh b/tomee/apache-tomee/src/main/resources/tomee.sh index 57b87740205..93fa90892f3 100644 --- a/tomee/apache-tomee/src/main/resources/tomee.sh +++ b/tomee/apache-tomee/src/main/resources/tomee.sh @@ -116,7 +116,7 @@ fi DEBUG= if [ $# -ge 2 ] && [ "$1" = "debug" ]; then shift - DEBUG="-Xnoagent -Djava.compiler=NONE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=${JPDA_SUSPEND:-y},address=${JPDA_ADDRESS:-5005}" + DEBUG="-Djava.compiler=NONE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=${JPDA_SUSPEND:-y},address=${JPDA_ADDRESS:-5005}" fi # execute the command