java.setFork(true);
java.setDir(launchDirectory);
for (final Map.Entry<String, String> entry : this.factory.environment().entrySet()) {
final Variable v = new Variable();
v.setKey(entry.getKey());
v.setValue(entry.getValue());
java.addEnv(v);
}
// TODO add isDebugable to the logger and log only when debug is needed
this.logger.debug("java classpath : "
+ this.project.getReference(MAVEN_CLASSPATH));
if (this.factory.environment().size() > 0) {
this.logger.debug("environment :");
for (final Map.Entry<String, String> entry : this.factory.environment().entrySet()) {
this.logger.debug("\t\t" + entry.getKey() + " => "
+ entry.getValue());
}
}
for (final String arg : factory.switches.list) {
java.createArg().setValue(arg);
}
for (final String arg : args) {
java.createArg().setValue(arg);
}
java.createJvmarg().setValue("-cp");
java.createJvmarg()
.setPath((Path) this.project.getReference(MAVEN_CLASSPATH));
if (!factory.jvmArgs.matches("(-client|-server)")) {
java.createJvmarg().setValue("-client");
}
if (!factory.jvmArgs.matches("-Xmx\\d+m")) {
java.createJvmarg().setValue(DEFAULT_XMX);
}
for (String arg : factory.jvmArgs.list) {
java.createJvmarg().setValue(arg);
}
// hack to avoid jruby-core in bootclassloader where as the dependent jars are in system classloader
if (this.factory.jrubyJar != null && this.factory.jrubyJar.equals(this.factory.jrubyStdlibJar)){
java.createJvmarg().setValue("-Xbootclasspath/a:"
+ this.factory.jrubyJar.getAbsolutePath());
}
if ( this.factory.jrubyJar == null && System.getProperty( "jruby.home" ) != null ){
final Variable v = new Variable();
v.setKey( "jruby.home" );
v.setValue( System.getProperty( "jruby.home" ) );
java.addSysproperty( v );
File lib = System.getProperty("jruby.lib") != null ? new File( System.getProperty("jruby.lib") ) :
new File( System.getProperty("jruby.home"), "lib" );
File jrubyJar = new File( lib, "jruby.jar" );
java.createJvmarg().setValue("-Xbootclasspath/a:"