You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2022/02/21 03:08:29 UTC

[tomee] 01/09: Add debug option

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 <db...@tomitribe.com>
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")) {