Browse Source

Fix CLI script

pull/9/head
Dave Syer 13 years ago
parent
commit
01ebd6da08
  1. 8
      README.md
  2. 4
      spring-bootstrap/src/main/java/org/springframework/bootstrap/context/embedded/tomcat/TomcatEmbeddedServletContainer.java
  3. 11
      spring-bootstrap/src/test/java/org/springframework/bootstrap/SimpleMainTests.java
  4. 1
      spring-bootstrap/src/test/java/org/springframework/bootstrap/context/initializer/LoggingApplicationContextInitializerTests.java
  5. 2
      spring-cli/src/main/java/org/springframework/cli/SpringCli.java
  6. 6
      spring-cli/src/main/java/org/springframework/cli/runner/SpringApplicationRunner.java
  7. 4
      spring-cli/src/main/scripts/spring
  8. 3
      spring-cli/src/test/java/org/springframework/cli/SpringCliTests.java

8
README.md

@ -30,7 +30,7 @@ instructions will look like this: @@ -30,7 +30,7 @@ instructions will look like this:
2) Get Spring
$ curl -s spring.cfapps.io/installer | bash
$ curl -s initializr.cfapps.io/installer | bash
or use the [Windows installer](#installing)
@ -43,7 +43,7 @@ or above. @@ -43,7 +43,7 @@ or above.
An `alias` can be used for the Spring Zero command line tool:
$ alias spr="java -jar ~/.m2/repository/org/springframework/zero/spring-cli/0.5.0.BUILD-SNAPSHOT/spring-cli-0.5.0.BUILD-SNAPSHOT.jar"
$ alias spring="java -jar ~/.m2/repository/org/springframework/zero/spring-cli/0.5.0.BUILD-SNAPSHOT/spring-cli-0.5.0.BUILD-SNAPSHOT.jar"
_Also see [docs/CONTRIBUTING](docs/CONTRIBUTING.md) if you want to submit pull requests._
@ -62,7 +62,7 @@ snippets that can just run, for example: @@ -62,7 +62,7 @@ snippets that can just run, for example:
}
}
<ctrl-d>
$ spr run app.groovy
$ spring run app.groovy
$ curl localhost:8080
Hello World!
@ -165,7 +165,7 @@ _See [spring-launcher/README](spring-launcher/README.md) & @@ -165,7 +165,7 @@ _See [spring-launcher/README](spring-launcher/README.md) &
## Samples
Groovy samples for use with the command line application are available in
[spring-cli/samples](spring-cli/samples/#). To run the CLI samples type
`spr run <sample>.groovy` from samples directory.
`spring run <sample>.groovy` from samples directory.
Java samples are available in [spring-zero-sample](spring-zero-samples/#) and should
be build with maven and run use `java -jar target/<sample>.jar`. The following java

4
spring-bootstrap/src/main/java/org/springframework/bootstrap/context/embedded/tomcat/TomcatEmbeddedServletContainer.java

@ -38,6 +38,8 @@ public class TomcatEmbeddedServletContainer implements EmbeddedServletContainer @@ -38,6 +38,8 @@ public class TomcatEmbeddedServletContainer implements EmbeddedServletContainer
private final Log logger = LogFactory.getLog(TomcatEmbeddedServletContainer.class);
private static int containerCounter = 0;
private final Tomcat tomcat;
/**
@ -55,7 +57,7 @@ public class TomcatEmbeddedServletContainer implements EmbeddedServletContainer @@ -55,7 +57,7 @@ public class TomcatEmbeddedServletContainer implements EmbeddedServletContainer
this.tomcat.start();
// Unlike Jetty, all Tomcat threads are daemon threads. We create a
// blocking non-daemon to stop immediate shutdown
Thread awaitThread = new Thread() {
Thread awaitThread = new Thread("container-" + (containerCounter++)) {
@Override
public void run() {
TomcatEmbeddedServletContainer.this.tomcat.getServer().await();

11
spring-bootstrap/src/test/java/org/springframework/bootstrap/SimpleMainTests.java

@ -39,6 +39,7 @@ import static org.junit.Assert.assertTrue; @@ -39,6 +39,7 @@ import static org.junit.Assert.assertTrue;
@Configuration
public class SimpleMainTests {
private static final String SPRING_STARTUP = "root of context hierarchy";
private PrintStream savedOutput;
private ByteArrayOutputStream output;
@ -58,33 +59,33 @@ public class SimpleMainTests { @@ -58,33 +59,33 @@ public class SimpleMainTests {
@Test(expected = IllegalArgumentException.class)
public void emptyApplicationContext() throws Exception {
SpringApplication.main(getArgs());
assertTrue(getOutput().contains("Pre-instantiating singletons"));
assertTrue(getOutput().contains(SPRING_STARTUP));
}
@Test
public void basePackageScan() throws Exception {
SpringApplication.main(getArgs(ClassUtils.getPackageName(getClass())
+ ".sampleconfig"));
assertTrue(getOutput().contains("Pre-instantiating singletons"));
assertTrue(getOutput().contains(SPRING_STARTUP));
}
@Test
public void configClassContext() throws Exception {
SpringApplication.main(getArgs(getClass().getName()));
assertTrue(getOutput().contains("Pre-instantiating singletons"));
assertTrue(getOutput().contains(SPRING_STARTUP));
}
@Test
public void xmlContext() throws Exception {
SpringApplication.main(getArgs("org/springframework/bootstrap/sample-beans.xml"));
assertTrue(getOutput().contains("Pre-instantiating singletons"));
assertTrue(getOutput().contains(SPRING_STARTUP));
}
@Test
public void mixedContext() throws Exception {
SpringApplication.main(getArgs(getClass().getName(),
"org/springframework/bootstrap/sample-beans.xml"));
assertTrue(getOutput().contains("Pre-instantiating singletons"));
assertTrue(getOutput().contains(SPRING_STARTUP));
}
private String[] getArgs(String... args) {

1
spring-bootstrap/src/test/java/org/springframework/bootstrap/context/initializer/LoggingApplicationContextInitializerTests.java

@ -71,6 +71,7 @@ public class LoggingApplicationContextInitializerTests { @@ -71,6 +71,7 @@ public class LoggingApplicationContextInitializerTests {
System.clearProperty("LOG_PATH");
System.clearProperty("PID");
System.setOut(this.savedOutput);
System.out.println(getOutput());
}
private String getOutput() {

2
spring-cli/src/main/java/org/springframework/cli/SpringCli.java

@ -39,7 +39,7 @@ import java.util.Set; @@ -39,7 +39,7 @@ import java.util.Set;
*/
public class SpringCli {
public static final String CLI_APP = "spr";
public static final String CLI_APP = "spring";
private static final Set<SpringCliException.Option> NO_EXCEPTION_OPTIONS = EnumSet
.noneOf(SpringCliException.Option.class);

6
spring-cli/src/main/java/org/springframework/cli/runner/SpringApplicationRunner.java

@ -33,6 +33,10 @@ import org.springframework.cli.compiler.GroovyCompiler; @@ -33,6 +33,10 @@ import org.springframework.cli.compiler.GroovyCompiler;
*/
public class SpringApplicationRunner {
private static int watcherCounter = 0;
private static int runnerCounter = 0;
// FIXME logging
private SpringApplicationRunnerConfiguration configuration;
@ -118,6 +122,7 @@ public class SpringApplicationRunner { @@ -118,6 +122,7 @@ public class SpringApplicationRunner {
* @param sources the sources to launch
*/
public RunThread(Object... sources) {
super("runner-" + (runnerCounter++));
this.sources = sources;
if (sources.length != 0 && sources[0] instanceof Class) {
setContextClassLoader(((Class<?>) sources[0]).getClassLoader());
@ -171,6 +176,7 @@ public class SpringApplicationRunner { @@ -171,6 +176,7 @@ public class SpringApplicationRunner {
private long previous;
public FileWatchThread() {
super("filewatcher-" + (watcherCounter++));
this.previous = 0;
for (File file : SpringApplicationRunner.this.files) {
long current = file.lastModified();

4
spring-cli/src/main/scripts/spring

@ -63,7 +63,7 @@ if [ -f build.gradle ]; then @@ -63,7 +63,7 @@ if [ -f build.gradle ]; then
TARGETDIR=build/classes/main
fi
for f in "${TARGETDIR}" "${SPRING_HOME}"/classes "${SPRING_BIN}" "${SPRING_HOME}"/*.jar "${SPRING_HOME}"/lib/*.jar; do
for f in . "${TARGETDIR}" "${SPRING_HOME}"/classes "${SPRING_BIN}" "${SPRING_HOME}"/*.jar "${SPRING_HOME}"/lib/*.jar; do
if [ -f $f -o -d $f ]; then
if [ "${CLASSPATH}" == "" ]; then
CLASSPATH="${f}"
@ -77,4 +77,4 @@ if $cygwin; then @@ -77,4 +77,4 @@ if $cygwin; then
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
fi
${JAVA_HOME}/bin/java ${JAVA_OPTS} -cp "$CLASSPATH" org.springframework.bootstrap.cli.SpringBootstrapCli $*
${JAVA_HOME}/bin/java ${JAVA_OPTS} -cp "$CLASSPATH" org.springframework.cli.SpringCli $*

3
spring-cli/src/test/java/org/springframework/cli/SpringCliTests.java

@ -133,7 +133,8 @@ public class SpringCliTests { @@ -133,7 +133,8 @@ public class SpringCliTests {
@Test
public void exceptionMessages() throws Exception {
assertThat(new NoSuchCommandException("name").getMessage(),
equalTo("spr: 'name' is not a valid command. See 'spr help'."));
equalTo(SpringCli.CLI_APP + ": 'name' is not a valid command. See '"
+ SpringCli.CLI_APP + " help'."));
}
@Test

Loading…
Cancel
Save