This is an automated email from the ASF dual-hosted git repository. dblevins pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tomee.git
commit 4ec0cf515c8dec172988e0d264a235d457bf0407 Author: David Blevins <[email protected]> AuthorDate: Sun Feb 20 03:26:10 2022 -0500 Add debug option --- .../tomee/server/composer/ServerBuilder.java | 10 ++++++++++ .../org/apache/tomee/server/composer/TomEE.java | 22 ++++++++++++++++++++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/itests/tomee-server-composer/src/main/java/org/apache/tomee/server/composer/ServerBuilder.java b/itests/tomee-server-composer/src/main/java/org/apache/tomee/server/composer/ServerBuilder.java index bd57d5d..451b206 100644 --- a/itests/tomee-server-composer/src/main/java/org/apache/tomee/server/composer/ServerBuilder.java +++ b/itests/tomee-server-composer/src/main/java/org/apache/tomee/server/composer/ServerBuilder.java @@ -55,6 +55,7 @@ public abstract class ServerBuilder<T extends ServerBuilder<T>> { protected FileFilter filter = pathname -> true; protected Duration await = new Duration("1 minute"); protected boolean list = false; + protected boolean debug = false; protected final ArrayList<Consumer<File>> homeConsumers = new ArrayList<>(); protected final ArrayList<Consumer<T>> builderConsumers = new ArrayList<>(); protected final ArrayList<Consumer<StreamBuilder>> watches = new ArrayList<>(); @@ -163,6 +164,15 @@ public abstract class ServerBuilder<T extends ServerBuilder<T>> { return (T) this; } + public T debug() { + return debug(true); + } + + public T debug(final boolean debug) { + this.debug = debug; + return (T) this; + } + protected void applyHomeConsumers(final File home) { // run any customization logic that's been added for (final Consumer<File> customization : homeConsumers) { diff --git a/itests/tomee-server-composer/src/main/java/org/apache/tomee/server/composer/TomEE.java b/itests/tomee-server-composer/src/main/java/org/apache/tomee/server/composer/TomEE.java index b230099..07a4f47 100644 --- a/itests/tomee-server-composer/src/main/java/org/apache/tomee/server/composer/TomEE.java +++ b/itests/tomee-server-composer/src/main/java/org/apache/tomee/server/composer/TomEE.java @@ -179,6 +179,17 @@ public class TomEE { } } + public Builder debug(final int port, boolean suspend) { + env("JPDA_ADDRESS", port + ""); + env("JPDA_SUSPEND", suspend ? "y" : "n"); + + return debug(); + } + + public Builder debug(final int port) { + return debug(port, true); + } + public TomEE build() throws IOException { applyBuilderConsumers(); @@ -228,8 +239,15 @@ public class TomEE { final File catalinaSh = Files.file(home, "bin", "catalina" + extension); final ProcessBuilder builder = new ProcessBuilder() - .directory(home) - .command(catalinaSh.getAbsolutePath(), "run"); + .directory(home); + + // todo maybe use the list approach to fill in the arguments + // but this way we are sure about the order to put them for tomcat + if (debug) { + builder.command(catalinaSh.getAbsolutePath(), "jpda", "run"); + } else { + builder.command(catalinaSh.getAbsolutePath(), "run"); + } // make sure to configure the Locale to english otherwise the watch bellow will fail on other countries if (env.containsKey("JAVA_OPTS")) {
