531 Commits

Author SHA1 Message Date
Andy Wilkinson
4ca2f78f8f Update JarCommand to use Repackager to add nested jars
Closes gh-2099
2015-05-20 13:31:01 +01:00
Stephane Nicoll
e0dfe9fb86 Add start/stop goals to maven plugin
SpringApplicationLifecycle provides basic lifecycle operations on the
current Spring Boot application (that is checking if the application has
fully started and gracefully terminate the app). It can be registered as
an MBean of the platform MBean server if a specific property is set.

The Maven plugin uses that MBean to check that the application is ready
before ending the "start" phase. It uses it to trigger a proper shutdown
of the application during the "stop" phase.

If the process has to be forked, the platform MBean server is exposed on
a configurable port so that the maven plugin can connect to it.

Such change permits the maven plugin to integrate a classical integration
test scenario where the "start" goal is invoked during the
pre-integration phase and the "stop" goal during the post-integration
phase.

Closes gh-2525
2015-05-19 11:22:47 +02:00
Andy Wilkinson
e3a53cb087 Remove classes and methods deprecated since 1.2 and earlier
Closes gh-2697
2015-05-14 19:00:12 +01:00
Stephane Nicoll
b20d11fe9c polish
Rework 155c60b7 to structure the code consistently, in particular with a more
natural order of attributes. Update test to use non-default values to ensure
that the customization has been applied.

See gh-2793
2015-05-13 14:08:17 +02:00
Eddú Meléndez
0b8fd67507 Add extra attributes to the init command
Update the CLI init command to expose additional attributes supported
by Spring Initializr. These are: groupId, artifactId, version, name,
description and language.

Closes gh-2793 and gh-2907
2015-05-13 14:07:11 +02:00
Andy Wilkinson
2053f4b2bf Clear JAVA_OPTS in CLI tests; avoid permsize config error with Java 8
When a Java 8 JVM is launched with -XX:MaxPermSize a warning message
is output indicating that the option will be ignored. This causes the
CLI tests that assert that no error output has been produced to fail.

This commit updates the CLI's integration test harness to remove
JAVA_OPTS from the environment of the CLI process. This prevents any
unwanted max perm size configuration from leaking into that
environment and breaking the build.
2015-05-11 12:22:02 +01:00
Andy Wilkinson
a5e9a38b76 Clear JAVA_OPTS in CLI tests; avoid permsize config error with Java 8
When a Java 8 JMV is launched with -XX:MaxPermSize a warning message
is output indicating that the option will be ignored. This causes the
CLI tests that assert that no error output has been produced to fail.

This commit updates the CLI's integration test harness to remove
JAVA_OPTS from the environment of the CLI process. This prevents any
unwanted max perm size configuration from leaking into that
environment and breaking the build.
2015-05-11 11:12:22 +01:00
Andy Wilkinson
51c49b69c5 Support bom-based dependency management in the CLI
Previously, the CLI’s dependency management used proprietary Properties
file-based metadata to configure its dependency management. Since
spring-boot-gradle-plugin’s move to using the separate dependency
management plugin the CLI was the only user of this format.

This commit updates the CLI to use Maven boms to configure its
dependency management. By default it uses the spring-boot-dependencies
bom. This configuration can be augmented and overridden using the new
@DependencyManagementBom annotation which replaces @GrabMetadata.

Closes gh-2688
Closes gh-2439
2015-05-07 14:58:23 +01:00
Andy Wilkinson
ee7c86a07d Start building against Reactor 2.0.1 snapshots
See gh-2719
2015-04-27 13:47:42 +01:00
Phillip Webb
a8d099f6b8 Revert "Add start/stop goals to maven plugin"
This reverts commit 54e12a07e6d7d8e38982a7c398ef76a0283e7e8d.
2015-04-16 12:32:06 -07:00
Stephane Nicoll
54e12a07e6 Add start/stop goals to maven plugin
SpringApplicationLifecycle provides lifecycle operations on the current
Spring Boot application. It can be registered as an MBean of the platform
MBean server if a specific property is set. Besides, the JMX name can
also be customized via a property in case more than one Spring Boot
application is started in the same process.

The Maven plugin uses that MBean to check that the application is ready
before ending the "start" phase. It uses it to trigger a proper shutdown
of the application during the "stop" phase.

If the process has to be forked, the platform MBean server is exposed on
a configurable port so that the maven plugin can connect to it.

Such change permits the maven plugin to integrate a classical integration
test scenario where the "start" goal is invoked during the
pre-integration phase and the "stop" goal during the post-integration
phase.

Closes gh-2525
2015-04-16 11:50:18 +02:00
Andy Wilkinson
a9adb85333 Merge branch '1.2.x' 2015-04-08 15:15:19 +01:00
Andy Wilkinson
0141f50ec8 Wait for stream reading threads to finish when awaiting CLI invocation
Closes gh-2787 (I hope)
2015-04-08 15:15:09 +01:00
Andy Wilkinson
8b1022effa Upgrade to Spring Batch 3.0.4 snapshots
Closes gh-2712
2015-04-07 18:47:28 +01:00
Phillip Webb
59692cd938 Polish formatting 2015-04-06 18:03:59 -07:00
Dave Syer
c9c1e8b517 Add animal sniffer for Java 6 and jdk1.8 to actuator
The build now requires java 8 (although no language features are yet
in use). Bamboo has been updated.

Fixes gh-716
2015-04-06 08:54:43 +01:00
Spring Buildmaster
e03c11dda8 Next development version 2015-03-30 22:56:20 -07:00
Andy Wilkinson
bc99ad2120 Ignore Batch tests that use JDBC as they don’t work with Spring 4.2
Spring Framework’s ParamterizedRowMapper has been deprecated since
3.1 and has been removed in 4.2. Spring Batch currently relies on
ParameterizedRowMapper, making it incompatible with 4.2. To allow us to
build successfully against 4.2, this commit ignores Spring Boot’s tests
that use Spring Batch’s JDBC support.

See gh-2575
2015-03-25 10:48:00 +00:00
Phillip Webb
a57a88f5cf Move master to 1.3.0.BUILD-SNAPSHOT 2015-02-26 17:01:02 -08:00
Spring Buildmaster
8f0ad02237 Next development version 2015-02-26 15:26:53 -08:00
Phillip Webb
56e31a8c6b Polish 2015-02-23 19:21:37 -08:00
Stephane Nicoll
9d0e50c6ac Support of spring initializr meta-data v2.1
Update the `init` command to support the latest meta-data format. Recent
Spring Initializr version also supports Spring Boot CLI now and generates
a textual service capabilities when requested. The command no longer
generates the capabilities of the service unless said service does not
support it.

Closes gh-2515
2015-02-18 17:43:53 +01:00
Andy Wilkinson
54e90c03fc Polish the javadoc in spring-boot-cli
Add missing @param and @return elements
2015-02-04 14:00:44 +00:00
Phillip Webb
072f873f34 Polish 2015-02-01 21:37:17 -08:00
Stephane Nicoll
4bee1b0e1b Fix wrong help page for archive detection logic
Fixes gh-2355
2015-01-23 17:24:14 +01:00
Andy Wilkinson
16cb44f890 Merge branch '1.1.x' 2015-01-14 16:55:45 +00:00
Andy Wilkinson
376de01636 Don't remove @GrabResolver in JarCommand, disable initClass instead
Previously, JarCommand removed all @GrabResolver annotations in an
AST transformation. This was being performed as custom resolver
configuration is not necessary in a jar as all of the dependencies are
available from the jar. Furthermore, leaving the annotations in place
caused a failure when the jar was run due to a missing Ivy dependency
that's required by Groovy's default GrapeEngine, GrapeIvy.

The removal of @GrabResolver annotations was being done before they
could be used by Groovy's GrabAnnotationTransformation to configure
the GrapeEngine's resolvers. This resulted in the annotations having
no effect such that a dependency that was only available from a
repository made available by @GrabResolver would fail to resolve if
it was not cached locally.

This commit updates the AST transformation to leave the @GrabResolver
annotations in place but to set their initClass attribute to false.
This allows the annotation to be used while the jar's being compiled,
but supresses the generation of the static initializer that adds the
custom resolver to the GrapeEngine when the compiled code's run via
java -jar.

Fixes gh-2330
2015-01-14 16:42:43 +00:00
Spring Buildmaster
60725cd8bd Next development version 2015-01-07 23:37:07 -08:00
Spring Buildmaster
63e6a25097 Next development version 2014-12-10 18:06:30 -08:00
Spring Buildmaster
1a788c1741 Next development version 2014-12-10 16:35:50 -08:00
Phillip Webb
a8ae4d1a3f Only include zip files when using spring jar
Update JarCommand to only include nested libraries that are actually
zip files. Similar to commit 38585bf3 which introduced the same
functionality to the Repackager.

Fixes gh-2094
2014-12-09 14:16:35 -08:00
Phillip Webb
3523bca79b Polish 2014-12-09 14:16:14 -08:00
Phillip Webb
d3ccdc6319 Polish 2014-12-08 08:51:01 -08:00
Stephane Nicoll
9b598b49c2 Fix JMS support in the CLI
Partly back port changes from affb202e and 85c95744f to fix the usage
of JMS in the CLI. Restore the integration test using HornetQ and fix the
coordinates of the JMS API.

Fixes gh-2075
2014-12-08 08:39:47 +01:00
Phillip Webb
064fee38b1 Formatting 2014-12-05 09:48:40 -08:00
Stephane Nicoll
8efdffbc0e Smarter output detection for generated projects
Previously, specifying a simple target name for a regular project would
store the (zip) archive in a file matching the target name. Only adding a
slash at the end of the name allows to extract it as a directory. It
turns out that such convention is not easy to catch and if a simple name
is provided on the command-line, the user probably wants to create a
directory with such a name with the content of the project.

Note that if a build file is required and the name does not have any
extension, we still store a file with the required name as auto-detecting
the extension to use is not that easy.

Fixes gh-2056
2014-12-05 14:43:31 +01:00
Stephane Nicoll
61223e709c Fix error message 2014-12-05 14:42:51 +01:00
Phillip Webb
447c9ff204 Polish 2014-12-02 15:19:51 -08:00
Graeme Rocher
dbcbebca4a Propagate exception / test failures so that the correct status code is returned.
Fixes gh-2048 and fixes gh-2051
2014-12-02 16:22:47 +00:00
Andy Wilkinson
8520554eb2 Allow the SpringApplication class used by the CLI to be configured
This commit adds support to the CLI for launching a custom
SpringApplication implementation. The class that is launched can be
configured using the spring.application.class.name System property
or the SPRING_APPLICATION_CLASS_NAME environment variable with the
former taking priority.

Closes gh-2030
2014-12-02 10:01:05 +00:00
Phillip Webb
2a8579026f Polish 2014-11-20 10:16:33 -08:00
Andy Wilkinson
0e2300cf85 Disable check of Groovy template location by default for CLI apps
In 1.1, the Groovy template support did not check that its configured
template location exists. A check was added in 1.2, however this
breaks CLI web applications that don't have the expected templates
location.

Rather than reintroducing 1.1's behaviour by removing the check, this
commit updates the CLI to set
spring.groovy.template.check-template-location to false by default.
This allows flow-blown applications to benefit from the check, while
allowing CLI apps to behave as they did in 1.1.

Closes gh-1959
2014-11-20 14:09:51 +00:00
Phillip Webb
c34cfb27a3 Polish 2014-11-19 10:52:26 -08:00
Stephane Nicoll
8f488bd019 Update init to new metadata format
Spring initializr now declares an improved metadata format (v2).

InitializrServiceMetadata has been updated to parse this format. Note
that the client could be further improved by using HAL generated links.

Closes gh-1953
2014-11-19 16:38:53 +01:00
Spring Buildmaster
46b7738334 Next development version 2014-11-11 17:12:24 -08:00
Phillip Webb
4fa8a94dd4 Update to latest Maven plugins
Fixes gh-1899
2014-11-11 12:44:31 -08:00
Phillip Webb
6027b2405c Add 'User-Agent' header to CLI REST calls
Update the InitializrService so that a 'SpringBootCli' User-Agent header
is sent with each request. This should allow the server-side code to
gracefully evolve the JSON format if needed.

Fixes gh-1869
2014-11-10 21:47:01 -08:00
Phillip Webb
e76a571dd3 Add @SpringBootApplication annotation
Add a new @SpringBootApplication which is equivalent to @Configuration,
@EnableAutoConfiguration and @ComponentScan.

See gh-1842
2014-11-06 22:49:10 -08:00
Phillip Webb
b6bacd5e8a Upgrade to Servlet 3.1, Tomcat 8 and Jetty 9
Upgrade to latest versions of Tomcat and Jetty and to the latest Servlet
API whilst will remaining compatible with Tomcat 7 and Jetty 8.

Fixes gh-1832, gh-369
2014-11-05 16:35:34 -08:00
Phillip Webb
a973fd41f4 Polish 2014-11-03 18:49:20 -08:00