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 + "]";
     }
 }


Reply via email to