Make "." be the CLI's default classpath

Previously, the default classpath was empty. Now, in the absence of the
user providing a classpath via the -cp option, the default classpath
will be ".". If the user does specify a classpath, the classpath that's
used will be exactly what they have specified, i.e. "." will no longer
be on the classpath unless specified by the user.

The app sample integration test has been updated to verify that "." is
only the classpath by default.

Fixes #115
This commit is contained in:
Andy Wilkinson 2013-12-04 11:13:49 +00:00
parent f7f53e4e64
commit b0c5d3254a
5 changed files with 8 additions and 5 deletions

View File

@ -7,7 +7,7 @@ class Example implements CommandLineRunner {
private MyService myService
void run(String... args) {
print "Hello " + this.myService.sayWorld()
println "Hello ${this.myService.sayWorld()} From ${getClass().getClassLoader().getResource('samples/app.groovy')}"
}
}

View File

@ -276,7 +276,7 @@ public class ScriptCommand implements Command {
@Override
public String[] getClasspath() {
return NO_CLASSPATH;
return DEFAULT_CLASSPATH;
}
@Override

View File

@ -31,7 +31,7 @@ public interface GroovyCompilerConfiguration {
/**
* Constant to be used when there is no {@link #getClasspath() classpath}.
*/
public static final String[] NO_CLASSPATH = {};
public static final String[] DEFAULT_CLASSPATH = { "." };
/**
* Returns the scope in which the compiler operates.

View File

@ -82,7 +82,7 @@ public class GroovyCompilerConfigurationAdapter implements GroovyCompilerConfigu
if (this.options.has(classpathOption)) {
return this.options.valueOf(classpathOption).split(":");
}
return NO_CLASSPATH;
return DEFAULT_CLASSPATH;
}
@Override

View File

@ -17,6 +17,7 @@
package org.springframework.boot.cli;
import java.io.File;
import java.net.URI;
import org.codehaus.plexus.util.FileUtils;
import org.junit.BeforeClass;
@ -48,7 +49,9 @@ public class SampleIntegrationTests {
@Test
public void appSample() throws Exception {
String output = this.cli.run("app.groovy");
assertTrue("Wrong output: " + output, output.contains("Hello World"));
URI scriptUri = new File("samples/app.groovy").toURI();
assertTrue("Wrong output: " + output,
output.contains("Hello World! From " + scriptUri));
}
@Test