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