Commit Graph

77 Commits

Author SHA1 Message Date
Andy Wilkinson
c0ae78f3ec Isolate Aether in a separate class loader
Prior to this commit, the Aether-based GrapeEngine was loaded in the
same class loader as the rest of Boot. This led to Aether's and its
dependencies' types polluting the application's class path. Most
notably, this caused problems with logging as the logging framework
could be permaturely initialized.

This commit isolates AetherGrapeEngine, Aether and its dependencies
into a separate class loader. This is done by customizing the
packaging of the CLI's jar file with the internal directory housing
all of the types that will be loaded by the separate class loader.
2013-10-22 17:13:20 +01:00
Dave Syer
a72ab9eb7d Refactor cli properties into single project 2013-10-08 15:53:55 -04:00
Andy Wilkinson
c1ec5e5c0e Support @Grab without a version or group
Usually, use of @Grab requires you to specify a group, module, and
version when identifying a dependency. This can be done in two
different ways:

@Grab(group='alpha', module='bravo', version='1.0.0')
@Grab('alpha:bravo:1.0.0')

This commit allows users to only specify a module: the group is
inferred and the version is the one dictated by the boot CLI. Both
forms are supported:

@Grab(module='bravo')
@Grab('bravo')

Groovy's global AST transformations, which is how Grab is implemented,
do not support ordering and we need to augment the AST for the Grab
annotation before its processed by the Grab AST transformation. To
work around this, reflection is used to get hold of the compile
operations in the conversion phase, and a new AST transformation is
inserted immediately before the first AST transformation operation.

To allow a module's groupId and version to be resolved consistently,
META-INF/springcli.properties has been enhanced to include properties
for each module that we want to support in the following form:

<module>.groudId = <groudId>
<module>.version = <version>

<groupId> and <version> are taken from the Maven project's
dependencies and VPP, a Velocity-based pre-processor, is used to
automatically generate the enhanced properties file.

To prevent pollution of spring-boot-cli's class path with the
dependencies that are only required to populate springcli.properties,
a separate project, spring-boot-cli-properties, has been created.
spring-boot-cli depends upon this now project causing it to, via the
shade plug, include the properties file in its jar.

Previously DependencyCustomizer allow a dependency to be added by
specifying its full coordinates, i.e. a group ID, artifact ID, and
version. This commit updates DependencyCustomizer to only require
an artifact/module ID. The group ID and version are then resolved
using the same mechanism as the enhanced @Grab support.

[#56328644] [bs-312] Allow @Grab without version
2013-10-08 10:41:35 +01:00
Phillip Webb
a33425920b Rework POMs to support automated CI release 2013-09-05 22:05:29 -07:00
Dave Syer
38e565e920 Back to SNAPSHOT for dev 2013-09-05 17:15:15 -07:00
Dave Syer
b634b3bde6 Update to 0.5.0.M2 2013-09-05 17:15:15 -07:00
Phillip Webb
a08aac6fa5 Travis CI tweaks 2013-09-05 17:14:14 -07:00
Dave Syer
6e8cbbde3b Use reflection hack for error page in Tocmat 8 2013-09-05 17:14:10 -07:00
Sergey Shcherbakov
b4542f722f Support for embedded Tomcat 8 container parallel to the current Tomcat 7 2013-09-05 17:14:10 -07:00
Phillip Webb
1db22aca5c Rework POM structure
Rework main build POM to be an aggregator pom that does not inherit
from any parent. Introduce new spring-boot-dependencies module to
act as a parent for both spring-boot-starter-parent and
spring-boot-parent.
2013-08-02 21:58:24 -07:00
Dave Syer
27ebb52196 Add back dev profile 2013-08-02 14:57:08 +01:00
Dave Syer
859e6c2ea8 Add spring-test to parents for samples 2013-08-02 14:44:45 +01:00
Dave Syer
4bb5de02e7 Switch back to SNAPSHOT for dev 2013-08-02 12:00:14 +01:00
Dave Syer
638a31f5e3 Fix poms for a milestone release 2013-08-02 12:00:14 +01:00
Dave Syer
19a880dff6 Move tools modules under spring-boot-tools 2013-08-02 12:00:14 +01:00
Dave Syer
68e5a7e887 Bump version to 0.5.0.M1 2013-08-02 12:00:14 +01:00
Phillip Webb
57f62a5a20 Remove samples from main POM 2013-08-01 00:10:56 -07:00
Phillip Webb
bd5e49fc84 Revert "Remove integration tests project"
Turns out the maven-plugin still causes issues.

This reverts commit 1ccdf2f6cf.
2013-08-01 00:09:49 -07:00
Phillip Webb
1ccdf2f6cf Remove integration tests project
Remove no longer required integration tests project. Samples can
now be called as part of the build since the maven plugin is no
longer an extension.
2013-07-31 13:30:48 -07:00
Dave Syer
92ff433dd0 Add samples to pom so they are part of reactor
(Might remove this later but getting ready for a release)
2013-07-31 15:13:24 +01:00
Dave Syer
5995b7727a Ops -> Actuator 2013-07-31 09:46:34 +01:00
Phillip Webb
3bb79db579 Renamed spring-boot-ups -> spring-boot-starter 2013-07-31 01:11:10 -07:00
Phillip Webb
2752177fba Add spring-boot-gradle-plugin
Develop gradle plugin that can repackage JAR/WAR archives so that
they can be launched using 'java -jar'

Issue: #53129653
2013-07-30 00:06:35 -07:00
Phillip Webb
5e4238f38a Create spring-loader-tools project
Create spring-loader-tools containing utilities that can be used
with both Maven and Gradle plugings.

Refactored existing Maven plugin to use the new project.

Issue: #53129653
2013-07-28 23:49:20 -07:00
Phillip Webb
b665a2bb1d Renamed packages
Issue: #54095231
2013-07-26 14:11:04 -07:00
Phillip Webb
3f2bb03fb8 Renamed some projects and polish POMs
Issue: #54095231
2013-07-26 12:31:37 -07:00
Dave Syer
2098e23fca Change package names zero->boot
* actuator -> boot-ops
* cli -> boot-cli
* launcher -> boot-load
* autoconfig -> boot-config
* bootstrap -> boot-strap
* starters -> boot-up

[#54095231] [bs-253] Refactor Zero->Boot
2013-07-26 14:13:41 +01:00
Dave Syer
683ddbf525 Add Reactor autoconfiguration
* Make Rector @Autowirable
* Create a ConsumerBeanPostProcessor so users can add
@On and @Reply to bean methods
* Added groovy auto compiler and script sample

[#53955419] [bs-250]
2013-07-24 18:02:50 +01:00
Dave Syer
d639763bd7 Another attempt at making the ui sample work 2013-07-23 15:47:26 +01:00
Phillip Webb
1eca022073 Add JSP-API to tomcat starter
Add JSP API jar dependency to tomcat starter. Primarily to prevent
log warnings.
2013-07-19 08:50:14 -07:00
Dave Syer
fff2a804bc Add springcli.properties for version labels
[Fixes #53030591] [bs-191] Use filtering in maven build
2013-07-18 16:33:12 +01:00
Dave Syer
6fd6afc7a3 Upgrade Spring Security to 3.2.0
Existing users should update their dependencies to
spring-security-config instead of *-javaconfig.

[Fixes #53472823] [bs-234]
2013-07-18 13:36:56 +01:00
Dave Syer
789e75d2e5 [bs-170] Out of the box support for thymeleaf security dialect
[Fixes #52121649]
2013-07-15 09:59:14 +01:00
Phillip Webb
dc1b787a01 Support color log output
Rework logback formatting to include ansi color output. Also added
support for JUL over SLF4J to ensure that tomcat logging looks OK.

Issue: #53249833
2013-07-13 21:05:07 -07:00
Phillip Webb
8f62222419 Generate default manifest for all projects 2013-07-12 00:44:16 -07:00
Phillip Webb
d8d8b7643b Upgrade various dependency versions 2013-07-10 15:58:23 -07:00
Dave Syer
36cbb39dec [bs-194] Restore udev in maven
Also tidy up some TODOs

[Fixes #53030439]
2013-07-10 17:03:26 +01:00
Dave Syer
d260fa6456 [bs-173] Upgrade Thymeleaf layout dialect
[Fixes #52629385]
2013-07-10 11:10:15 +01:00
Dave Syer
5b78ebe6e3 Add plugin repos to bootstrap profile 2013-07-09 10:22:42 +01:00
Dave Syer
30802e542f Fix intergration tests spelling 2013-07-09 10:16:39 +01:00
Phillip Webb
cd51f357a3 Further maven module restructure 2013-07-08 13:42:44 -07:00
Phillip Webb
346a0bace7 Minor pom tweaks
Fix warnings and include sonar support.
2013-07-08 13:42:42 -07:00
Phillip Webb
40bf334871 Restructure projects layout 2013-07-08 13:42:39 -07:00
Phillip Webb
56bfa30b2c Add setup profile
Add a setup profile allowing the maven plugin to be build alone.
Required to prevent 'unresolveable build extension' errors on a
fresh checkout.

Issue: #52091115
2013-06-20 17:24:47 -07:00
Phillip Webb
19b392bb3d Develop bootstrap maven plugin
Develop a maven plugin that can be used to package executable jar/war
archives. The plugin is intended to be used as a drop-in replacement
for the standard maven-jar-plugin. To use the plugin declare it with
<extensions>true</extensions> then set the project type to
'executable-jar' or 'executable-war'.

Configuration options for 'executable-war' generation are intentionally
much more limited then the standard maven-war-plugin (for example
overlays are not supported). It is anticipated that builds requiring
complex configuration will continue to use the standard plugin in
combination with a custom assembly.

Issue: #52091115
2013-06-20 14:36:11 -07:00
Dave Syer
1f17ac3e34 Add some security managed dependencies 2013-06-14 15:32:47 +01:00
Phillip Webb
7d7dc5107d Use Spring 4.0 snapshot 2013-06-12 15:42:55 -07:00
Phillip Webb
ced99ff18c Polish pom.xml
Polish pom.xml formatting and pull version numbers into parent pom
when possible.
2013-06-12 15:42:55 -07:00
Dave Syer
7bd1aeb514 Add global properties for versions 2013-06-07 14:14:22 +01:00
Dave Syer
7b0ec252dd Revert to Spring 4.0.0.M1 2013-06-05 09:31:15 +01:00