You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by kw...@apache.org on 2015/04/29 19:55:45 UTC

svn commit: r1676805 - in /sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/run: LauncherCallable.java ServerConfiguration.java

Author: kwin
Date: Wed Apr 29 17:55:45 2015
New Revision: 1676805

URL: http://svn.apache.org/r1676805
Log:
SLING-4677 allow to start Sling in debug mode with a simple mojo parameter

Modified:
    sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/run/LauncherCallable.java
    sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/run/ServerConfiguration.java

Modified: sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/run/LauncherCallable.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/run/LauncherCallable.java?rev=1676805&r1=1676804&r2=1676805&view=diff
==============================================================================
--- sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/run/LauncherCallable.java (original)
+++ sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/run/LauncherCallable.java Wed Apr 29 17:55:45 2015
@@ -141,6 +141,7 @@ public class LauncherCallable implements
 
         args.add("java");
         add(args, this.configuration.getVmOpts());
+        add(args, this.configuration.getVmDebugOpts());
 
         args.add("-cp");
         args.add("bin");

Modified: sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/run/ServerConfiguration.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/run/ServerConfiguration.java?rev=1676805&r1=1676804&r2=1676805&view=diff
==============================================================================
--- sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/run/ServerConfiguration.java (original)
+++ sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/run/ServerConfiguration.java Wed Apr 29 17:55:45 2015
@@ -28,6 +28,9 @@ public class ServerConfiguration impleme
 
     private static final String DEFAULT_VM_OPTS = "-Xmx1024m -XX:MaxPermSize=256m -Djava.awt.headless=true";
 
+    // http://docs.oracle.com/javase/7/docs/technotes/guides/jpda/conninv.html#Invocation
+    private static final String DEFAULT_VM_DEBUG_OPTS = "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000";
+
     /** The unique id. */
     private String id;
 
@@ -46,6 +49,9 @@ public class ServerConfiguration impleme
     /** The vm options. */
     private String vmOpts = DEFAULT_VM_OPTS;
 
+    /** Attach a debugger to the forked JVM. If set to "true", the process will allow a debugger to attach on port 8000. If set to some other string, that string will be appended to the vmOpts, allowing you to configure arbitrary debuggability options (without overwriting the other options specified through the vmOpts parameter).*/
+    private String debug;
+
     /** Additional application options. */
     private String opts;
 
@@ -103,6 +109,21 @@ public class ServerConfiguration impleme
         this.vmOpts = vmOpts;
     }
 
+    /**
+     * @return the debugging options to use or {@code null}. Should be appended to the ones being returned by {@link #getVmOpts()}.
+     * @see <a href="http://docs.oracle.com/javase/7/docs/technotes/guides/jpda/conninv.html#Invocation">JPDA Sun VM Invocation Options</a>
+     */
+    public String getVmDebugOpts() {
+        if (Boolean.valueOf(debug).equals(Boolean.TRUE)) {
+            return DEFAULT_VM_DEBUG_OPTS;
+        }
+        return debug;
+    }
+
+    public void setDebug(final String debug) {
+        this.debug = debug;
+    }
+
     public String getOpts() {
         return opts;
     }
@@ -151,6 +172,7 @@ public class ServerConfiguration impleme
         copy.setPort(this.getPort());
         copy.setContextPath(this.getContextPath());
         copy.setVmOpts(this.getVmOpts());
+        copy.setDebug(this.debug);
         copy.setOpts(this.getOpts());
         copy.setInstances(1);
         copy.setFolder(this.getFolder());
@@ -164,7 +186,7 @@ public class ServerConfiguration impleme
         return "LaunchpadConfiguration [id=" + id + ", runmode=" + runmode
                 + ", port=" + port + ", controlPort=" + controlPort
                 + ", contextPath=" + contextPath
-                + ", vmOpts=" + vmOpts + ", opts=" + opts + ", instances="
+                + ", vmOpts=" + vmOpts + ", vmDebugOpts=" + getVmDebugOpts() + ", opts=" + opts + ", instances="
                 + instances + ", folder=" + folder + "]";
     }
 }