1. 16 Jan, 2014 2 commits
  2. 15 Jan, 2014 7 commits
    • Phillip Webb's avatar
      Refactor CLI internals for REPL shell · c8a1d883
      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
      c8a1d883
    • Phillip Webb's avatar
      Fix CLI help formatting issue with '-cp' · cad9fbfd
      Phillip Webb authored
      Ensure that '--cp' is replaced with a same length string to prevent
      odd help text formatting.
      cad9fbfd
    • Phillip Webb's avatar
      Revert "Add launcher.count as useful performance testing aid" · 4fc9dfc2
      Phillip Webb authored
      This reverts commit e1605b46.
      4fc9dfc2
    • Phillip Webb's avatar
      Polish · 3b259bc8
      Phillip Webb authored
      3b259bc8
    • Dave Syer's avatar
      Add support for reloading resources in Gradle plugin · 5592023f
      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
      5592023f
    • Andy Wilkinson's avatar
      Support @Grab when app has multiple groovy scripts · 5fb42c3c
      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
      5fb42c3c
    • Andy Wilkinson's avatar
      Only auto-configure Reduce if Lettuce is on the classpath · b45683f1
      Andy Wilkinson authored
      Fixes #226
      b45683f1
  3. 14 Jan, 2014 18 commits
  4. 13 Jan, 2014 3 commits
  5. 12 Jan, 2014 2 commits
  6. 11 Jan, 2014 4 commits
    • Dave Syer's avatar
      Ensure SpringApplication closes its ApplicationContext · c349cb66
      Dave Syer authored
      ...even if the CommandLineRunners fail and we drop to the error
      handling path.
      
      Fixes gh-211
      c349cb66
    • Dave Syer's avatar
      Only run InitCommand if there is code to process · 420fc699
      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.
      420fc699
    • Dave Syer's avatar
      Revert CLI to JarLauncher · 322af41d
      Dave Syer authored
      Affects gh-212
      322af41d
    • Phillip Webb's avatar
      Protect against JARs with different local headers · d125357b
      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
      d125357b
  7. 10 Jan, 2014 4 commits