- 16 Jan, 2014 2 commits
-
-
Phillip Webb authored
Update the integrated shell to deal with a null line which can be triggered with CTRL-D. Fixes gh-229
-
Dave Syer authored
Fixes gh-230
-
- 15 Jan, 2014 7 commits
-
-
Phillip Webb authored
Numerous updates to the Spring CLI, primarily for better embedded REPL shell support: * Refactor the CLI application to help separate concerts between the main CLI and the embedded shell. Both the CLI and embedded shell now delegate to a new `CommandRunner` to handle running commands. The runner can be configured differently depending depending on need. For example, the embedded shell adds the 'prompt' and 'clear' commands. * Most `Command` implementations have been moved to sub-packages so that they can be co-located with the classes that they use. * Option commands are now only used in the CLI, the embedded shell does not user them and details have been removed from the Command interface. * The REPL shell has been significantly refactored to: - Support CTRL-C to cancel the running process. This is supported when running external commands and most internal commands. - Fork a new JVM when running commands (primarily for CTRL-C support but also for potential memory and classpath issues) - Change the "continue" trigger from `<<` to `\` - Support command completion of files - Add ANSI color output - Provide 'help' support for internal commands (such as 'clear') - Remove the now redundant `stop` command Fixes gh-227
-
Phillip Webb authored
Ensure that '--cp' is replaced with a same length string to prevent odd help text formatting.
-
Phillip Webb authored
This reverts commit e1605b46.
-
Phillip Webb authored
-
Dave Syer authored
Usage: $ gradle bootRun ... Edit files in src/main/resources and see the changes live in a web app (e.g. static resources in /static). The old functionality of bootRun has been replaced (since it didn't add a lot of value and also didn't expose any JMV argument setters of anything). This new feature set is backed by any existing "run" task configuration. In addition autodetects a main class if there is one in the project sources, so no need for mainClassName = '...' in build.gradle. Applies the 'application' plugin (so no need to declare that either). Fixes gh-225
-
Andy Wilkinson authored
The AST transformation that processes @Grab annotations is driven once per source file. Previously, this meant that if an app consisted of multiple source files then multiple, discrete dependency resolutions would be performed. This commit updates AetherGrapeEngine to cache a previous resolution's outcome and use its dependency to influence the outcome of subsequent resolutions. For example if a one resolution results in spring-core 4.0.0.RELEASE being added to the classpath, subsequent resolutions that depend upon spring-core will always get the 4.0.0.RELEASE version. This is achieved by using the dependencies found by earlier resolutions as dependency management configuration of the current resolution. This removes the possibility of multiple versions of the same dependency ending up on the classpath. In addition to using the results of earlier resolutions to provide dependency management configuration, default dependency management configuration is also provided. This configuration is specified by the springcli.properties file and ensures that, where Boot prescribes certain versions of a dependency, that is the version that will be resolved. For example, this ensures that spring-data-redis, which depends upon Spring 3.1.4, pulls in the version of Spring that Boot requires instead. Fixes #224
-
Andy Wilkinson authored
Fixes #226
-
- 14 Jan, 2014 18 commits
-
-
Dave Syer authored
Actually System.in works fine, it's the output streams that get buffered. We can fix it by diverting them for the duration of the command. Fixes gh-217
-
Dave Syer authored
Improves gh-218
-
Dave Syer authored
Fixes gh-219
-
Dave Syer authored
We might also want to rethink "!" as a shell exec command (since it means something in a real shell and in JLine). E.g. use "exec" or something. Partial fix for gh-220 (ideally we'd process the events and catch and handle exceptions).
-
Dave Syer authored
Related to gh-212
-
Dave Syer authored
-
Dave Syer authored
InitCommand remains for now, so that you can @Grab a jar with custom commands if you so choose. Contributes to gh-212
-
Andy Wilkinson authored
A typical cause of startup failure is an incorrectly configured classpath. Previously the classpath used to launch the application wasn't easy for a user to discover. This made problem diagnosis difficult. This commit adds an application listener that, in the event of a start error, logs the thread context class loader's classpath at INFO level. The classpath is also logged at DEBUG level when an application starts successfully.
-
Dave Syer authored
In this commit we retain "init" as a command inside the ShellCommand but not on the bash command line. Seems to have an impact on performance so relevant to gh-212.
-
Dave Syer authored
-
Dave Syer authored
-
Dave Syer authored
-
Andy Wilkinson authored
-
Phillip Webb authored
-
Phillip Webb authored
Update SpringApplication to run by default in 'headless' mode. This prevents the AWT system from creating a Java icon (for example in the OSX dock). Also update builds to run tests in 'headless' mode.
-
Phillip Webb authored
-
Phillip Webb authored
-
Phillip Webb authored
-
- 13 Jan, 2014 3 commits
-
-
Andy Wilkinson authored
-
Dave Syer authored
-
Dave Syer authored
Fixed gh-212 again
-
- 12 Jan, 2014 2 commits
- 11 Jan, 2014 4 commits
-
-
Dave Syer authored
...even if the CommandLineRunners fail and we drop to the error handling path. Fixes gh-211
-
Dave Syer authored
This appears to be a significant improvement in performance (checking for the existence of init.grooy is cheap, but compiling it is expensive). I'm going to say this fixes gh-212.
-
Dave Syer authored
Affects gh-212
-
Phillip Webb authored
Fix JarEntryData to re-read the local header, rather than relying on the central directory record. This protects against the situation where a JAR file is written with an 'Extra Field Length' that is different in the local header to the central directory header. This appears to be the case with aspectj 1.7.4 which contains the following central directory file header for ProceedingJoinPoint: 50 4B 01 02 signature 14 03 version made by 0A 00 version required 00 00 general 08 00 compress methods 0E 40 59 43 last modified 2D 59 20 70 crc EC 00 00 00 csize 8D 01 00 00 size 2A 00 fname len 00 00 ext field len 00 00 file comment len 00 00 disk num 00 00 int file att 00 00 A4 81 ext file att 97 F3 00 00 relative offset of the local file header ... file name and the following local header: 50 4B 03 04 signature 0A 00 version required 00 00 general 08 00 compress method 0E 40 59 43 last modified 2D 59 20 70 crc EC 00 00 00 csize 8D 01 00 00 size 2A 00 fname len 14 00 ext field len ... file name ... extra field Note that the 'ext field len' is 0x00 in the central record but 0x14 in the local record. Fixes gh-203
-
- 10 Jan, 2014 4 commits
-
-
Phillip Webb authored
-
Phillip Webb authored
Revert commit fd15b62a to ensure that we don't accidentally use Java 8 features.
-
Phillip Webb authored
Replace references to 'files' throughout the code-base with 'sources' following the rename of `FileOptions` to `SourceOptions`. Also cleanup ResourceUtils a little
-
Phillip Webb authored
-