From b0c5d3254a81c8ce66bff7f55c57dcb67be5dcc8 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Dec 2013 11:13:49 +0000 Subject: [PATCH] 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 --- spring-boot-cli/samples/app.groovy | 2 +- .../org/springframework/boot/cli/command/ScriptCommand.java | 2 +- .../boot/cli/compiler/GroovyCompilerConfiguration.java | 2 +- .../cli/compiler/GroovyCompilerConfigurationAdapter.java | 2 +- .../org/springframework/boot/cli/SampleIntegrationTests.java | 5 ++++- 5 files changed, 8 insertions(+), 5 deletions(-) diff --git a/spring-boot-cli/samples/app.groovy b/spring-boot-cli/samples/app.groovy index a9b02bc70b6..f273c49434a 100644 --- a/spring-boot-cli/samples/app.groovy +++ b/spring-boot-cli/samples/app.groovy @@ -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')}" } } diff --git a/spring-boot-cli/src/main/java/org/springframework/boot/cli/command/ScriptCommand.java b/spring-boot-cli/src/main/java/org/springframework/boot/cli/command/ScriptCommand.java index 4fe7e8ca83b..c342a987697 100644 --- a/spring-boot-cli/src/main/java/org/springframework/boot/cli/command/ScriptCommand.java +++ b/spring-boot-cli/src/main/java/org/springframework/boot/cli/command/ScriptCommand.java @@ -276,7 +276,7 @@ public class ScriptCommand implements Command { @Override public String[] getClasspath() { - return NO_CLASSPATH; + return DEFAULT_CLASSPATH; } @Override diff --git a/spring-boot-cli/src/main/java/org/springframework/boot/cli/compiler/GroovyCompilerConfiguration.java b/spring-boot-cli/src/main/java/org/springframework/boot/cli/compiler/GroovyCompilerConfiguration.java index 2a8873f1820..3b49d5e75f7 100644 --- a/spring-boot-cli/src/main/java/org/springframework/boot/cli/compiler/GroovyCompilerConfiguration.java +++ b/spring-boot-cli/src/main/java/org/springframework/boot/cli/compiler/GroovyCompilerConfiguration.java @@ -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. diff --git a/spring-boot-cli/src/main/java/org/springframework/boot/cli/compiler/GroovyCompilerConfigurationAdapter.java b/spring-boot-cli/src/main/java/org/springframework/boot/cli/compiler/GroovyCompilerConfigurationAdapter.java index 9f8a5636a88..ae038e1fad5 100644 --- a/spring-boot-cli/src/main/java/org/springframework/boot/cli/compiler/GroovyCompilerConfigurationAdapter.java +++ b/spring-boot-cli/src/main/java/org/springframework/boot/cli/compiler/GroovyCompilerConfigurationAdapter.java @@ -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 diff --git a/spring-boot-cli/src/test/java/org/springframework/boot/cli/SampleIntegrationTests.java b/spring-boot-cli/src/test/java/org/springframework/boot/cli/SampleIntegrationTests.java index 7c68f70505e..96e51ad7a4d 100644 --- a/spring-boot-cli/src/test/java/org/springframework/boot/cli/SampleIntegrationTests.java +++ b/spring-boot-cli/src/test/java/org/springframework/boot/cli/SampleIntegrationTests.java @@ -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