Commit Graph

282 Commits

Author SHA1 Message Date
Stephane Nicoll 8ed461947f Improve RabbitMQ support in CLI
This commit deprecates the proprietary EnableRabbitMessaging annotation
in favour of the standard @EnableRabbit introduced as of Spring Rabbit
1.4.

Fixes gh-1494
2014-09-05 17:52:20 +02:00
Andy Wilkinson f5ab0cf2dc Update CLI install to prefer local snapshots to those in a remote repo
Previously, InstallCommand used a custom Grape root and then walked
the tree of files downloaded by Aether to determine which files it
should install or uninstall. In some scenarios two files for the
same module would be present: one named foo-1.0.0.BUILD-SNAPSHOT.jar
and one named foo-1.0.0.BUILD-20140905.091809-2.jar. The former is
from the local repository and the later is from a remote repository.
In this case, the visitor would do the wrong thing and the latter
would be installed into lib.

This commit updates InstallCommand to determine the jars that it
should process by consulting GroovyCompiler's classpath, rather than
by walking Aether's cache. This approach selects the correct jar as
Aether has already figured this out as part of resolving the
dependency. It also brings InstallCommand into line with JarCommand.

The previous implementation used Java 7-specific File APIs. As part
of the above-described change this usage has been removed. The
install command can now be used on Java 6.

Fixes gh-1515
2014-09-05 15:36:04 +01:00
Phillip Webb 8bf1f9567a Apply eclipse formatting and cleanup rules 2014-09-04 09:49:13 -07:00
Stephane Nicoll 85c95744f9 Avoid duplicate script
This commit avoids a script duplication: the integration test runs the
sample instead of a copy of it in the repro directory.

Also switched the sample from ActiveMQ to HornetQ as #323 revealed
some locking on CI. Hopefully that should fix it as HornetQ is non
persistent and can be embedded several times in the same VM.

Fixes gh-1456
2014-08-29 10:26:29 +02:00
Phillip Webb f8a4df0838 Polish 2014-08-28 12:07:44 -07:00
Stephane Nicoll dd6bf5730d Add support for EnableCaching in the cli
Fixes gh-1431
2014-08-28 17:13:16 +02:00
Stephane Nicoll affb202e74 Improve JMS support in cli
This commit deprecates the proprietary EnableJmsMessaging annotation in
favour of the standard @EnableJms introduced as of Spring 4.1. This
commit also updates the sample and adds an integration test as the
feature was actually broken.

Fixes gh-1456
2014-08-28 14:25:14 +02:00
Phillip Webb de7ff0670d Polish 2014-08-19 14:22:46 -07:00
Andy Wilkinson 90b12d738b Merge branch '1.1.x' 2014-08-19 19:44:11 +01:00
Andy Wilkinson 896a85b575 Add settings.xml used by AetherGrapeEngineTests 2014-08-19 19:43:46 +01:00
Andy Wilkinson cee8c9f4ea Merge branch '1.1.x' 2014-08-19 17:56:10 +01:00
Andy Wilkinson 5f9fddd44a Explicitly apply mirror and auth settings to remote repos in the CLI
Previously, the CLI relied on Aether using the session's mirror
selector and authentication selector to customize the configured
repositories. These selectors are only used to configure what Aether
calls recessive repositories (repositories discovered when resolving
an artifact), rather than the explicitly configured repositories that
are typically used.

This commit updates AetherGrapeEngine to apply mirror and
authentication configuration to every added repository, bringing its
behaviour for these two settings into line with what it already does
for proxy configuration.

Fixes #1354
2014-08-19 17:55:54 +01:00
Dave Syer eb4aee6c45 Improve error logging in InstallCommand 2014-08-19 07:40:33 +01:00
Dave Syer 1fe1399959 Add install command
Fixes gh-1393
2014-08-18 18:01:22 +01:00
Dave Syer 457cea60e6 Add ServiceLoader for AST transformations
The loading is via a marker interface SpringBootAstTransformation
to avoid clashing with other services registered as org.groovy.*

Fixes gh-1392
2014-08-18 16:15:06 +01:00
Phillip Webb 92899474ac Polish 2014-08-06 09:10:23 -07:00
Dave Syer 0c6a0bde5f Export SPRING_HOME for commands to consume if needed 2014-08-04 15:47:38 -07:00
Dave Syer 6ba8269db8 Add public getter for dependency context 2014-07-31 15:57:41 -07:00
Dave Syer 59b8fc63d9 Scan for a valid MANIFEST.MF instead of taking the first one
Fixes gh-1321
2014-07-31 09:51:49 -07:00
Andy Wilkinson f5c8a8879a Isolate CLI integration tests from any settings decryption failures 2014-07-24 20:38:21 +01:00
Andy Wilkinson 4d4cc076c6 Don't fail hard when settings.xml can't be decrypted by the CLI 2014-07-24 17:54:09 +01:00
Phillip Webb fa88c481a5 Remote trailing whitespace 2014-07-02 15:17:14 -07:00
Dave Syer 54a23f9920 Make -q and -v do something more sensible
-q switches off all logging and the banner, -v switches logging to debug,
running with neither will be info.

Fixes gh-1108
2014-06-27 16:24:51 +01:00
Dave Syer fd757cb371 Add logging.level to application.properties
E.g.

logging.level.org.springframework: DEBUG
logging.level.org.hibernate: WARN

Fixed gh-788
2014-06-27 15:49:17 +01:00
Dave Syer 179ac6022a Remove @GrabResolvers before packaging jar in CLI
Since all dependencies are local in a jar there is no need for
a GrabResolver (and it breaks the app because the default ivy
GrapeEngine is used instead of the smart, pretty Boot one).

Fixes gh-1179
2014-06-27 10:20:56 +01:00
Phillip Webb 9632abf825 Formatting and cleanup 2014-06-26 09:41:15 -07:00
Phillip Webb 1f36d4657f Fix various Windows related issues
Fixes gh-1168
2014-06-25 14:31:41 -07:00
Phillip Webb f30b962ff9 Add support for unpacking nested JARs
Update the executable JAR code to automatically unpack any entries
which include an entry comment starting `UNPACK:` to the temp folder.
The existing Maven and Gradle plugins have been updated with new
configuration options and the `spring-boot-tools` project has been
updated to write the appropriate entry comment based on a flag passed
in via the `Library` class.

This support has been added to allow libraries such a JRuby (which
assumes that `jruby-complete.jar` is always accessible as file) to work
with Spring Boot executable jars.

Fixes gh-1070
2014-06-24 00:46:56 -07:00
Phillip Webb a374929c90 Polish 2014-06-15 09:09:06 -07:00
Dave Syer 2c691e5ae5 Enhance JarCommand to support lists of includes and excludes
The lists are comma separated. In addition, user can add prefixes
"+" or "-", to signal that those values should be removed from the
default list, not added to a fresh one. E.g.

$ spring jar app.jar --include lib/*.jar,-static/** --exclude -**/*.jar

to include a jar file specifically, and make sure it is not excluded,
and additionally not include the static/** resources that would otherwise
be included in the defaults. As soon as "+" or "-" prefixes are detected
the default entries are all added (except the ones exlcuded with "-").

Fixes gh-1090
2014-06-12 18:31:43 +01:00
Phillip Webb 9b982dabdb Restore dependency-tools API compatibility
Refactor dependency-tools to restore API compatibility with Spring
Boot 1.0. This should reduce reflection hacks that tools such as Gretty
would otherwise have to make.

See gh-1035
2014-06-08 23:58:02 -07:00
Phillip Webb e891aa3525 Polish 2014-06-06 22:58:43 -07:00
Dave Syer 32dff415c3 Rationalize the Reactor autoconfig
It didn't make sense not to do anything at all if a Reactor @Bean
was detected, so now we only back off creating the rootReactor if
one is present.
2014-06-05 12:52:23 +01:00
Andy Wilkinson 156dadaebe Initialize DependencyResolutionContext with default dependency mgmt
In the absence of a @GrabMetadata annotation,
DependencyResolutionContext provided no dependency management. This
was leading to incorrect dependency versions being pulled in. This
commit intializes the context with default dependency management that
will be replaced should @GrabMetadata be encountered.

Fixes #1021
2014-06-03 16:26:30 +01:00
Dave Syer efcbb32788 Remove some compiler warnings 2014-06-02 10:56:12 +01:00
Phillip Webb f95cb602cc Fix CLI command/option package tangle
Fix package tangle in CLI my extracting ExitStatus to a status package.

See gh-1004
2014-06-01 18:59:09 +01:00
Phillip Webb 5da23e9968 Fix grape -> compiler package tangle
Fix package tangle by moving DependencyResolutionContext from the
compiler package to grape.

See gh-1004
2014-06-01 18:49:13 +01:00
Andy Wilkinson 212c30f6c7 Enhance DependencyCustomer: allow type and classifier to be specified
Closes #1002
2014-05-30 23:27:07 +01:00
Andy Wilkinson 059d504fd7 Fix DependencyCustomizerTests following merge of 1.0.x 2014-05-30 23:27:06 +01:00
Andy Wilkinson 0d7da4375f Merge branch '1.0.x' 2014-05-30 23:26:59 +01:00
Andy Wilkinson abc1e5de8f Fix ifAnyMissingClasses to return false if no classes are missing
Fixes #1003
2014-05-30 17:28:03 +01:00
Phillip Webb 97acd20d62 Polish 2014-05-30 16:47:30 +01:00
Andy Wilkinson 2fec9c4790 Merge branch '1.0.x' 2014-05-30 15:33:47 +01:00
Andy Wilkinson 8f7c96e8f0 Honour ext and classifier on @Grabbed dependencies
We currently honour type, but ignore ext. Aether doesn't make a
distinction between the two so a Grab that specifies both type and ext
but with different values is considered to be an error.

Fixes #995
2014-05-30 15:12:09 +01:00
Dave Syer ed15f742fd Fix bug in GroovyTemplate convenience
It was ignoring the engine argument in the 3 arg version
of template().
2014-05-30 11:32:02 +01:00
Dave Syer 2f653f0616 Add support for Spring HTTP in CLI tests 2014-05-30 10:18:11 +01:00
Dave Syer ed0cfea6d2 Add SmartImportCustomizer
Only imports classes with names that are not already
imported into teh SourceUnit

Fixes gh-983
2014-05-30 06:44:38 +01:00
Phillip Webb 11a093bdc0 Polish 2014-05-30 00:31:11 +01:00
Dave Syer 48c1228253 Add support for groovy utilities in "spring jar"
Also an integration test that uses the (new)
@EnableGroovyTemplates to switch on the template conveniences
in a non-webapp

Fixes gh-990
2014-05-29 18:21:27 +01:00
Dave Syer 3c6dfb72c5 Add ExitStatus to Command.run()
The main difference for now is the removal of the --nohup
(slightly hacky) option in TestCommand. Now a TestCommand
can signal to its caller that it wants to be hung up.

Fixes gh-975
2014-05-29 13:58:12 +01:00