Commit Graph

85 Commits (aef7bd60d1e6dacd0c2270add5b042cc2afcb2f4)

Author SHA1 Message Date
Phillip Webb 595cb6d55b Fix version-type logic to deal with RCx form 11 years ago
Phillip Webb 68293f34af Upgrade version to 1.0.0.BUILD-SNAPSHOT
Fixes fg-243
11 years ago
Phillip Webb 18cecd077d Move CLI integration tests into spring-boot-cli
Use `maven-failsafe-plugin` to run CLI integration tests as part of
the `spring-boot-cli` project, removing the need for
`spring-boot-cli-integration-tests`.
11 years ago
Andy Wilkinson f418a07ba7 Add basic integration tests for the CLI
Add integration tests for the CLI that invoke it as a user would, i.e.
via the shell script in the package's bin directory.
11 years ago
Andy Wilkinson 895daacde9 Roll spring-boot-maven-settings into the CLI 11 years ago
Andy Wilkinson a58e4cbb1f Add support for configuring Aether via settings.xml
Previously, Aether's configuration was largely hard-coded making it
impossible to configure a mirror, provide credentials for accessing
a repository, etc.

This commit adds support for configuring Aether via Maven's
settings.xml file. The support is optional and must be enabled by
grabbing spring-boot-maven-settings in an init script. The Aether
instance that's used when running the application will then be
configured using settings.xml. The settings file is expected to be
found in ${user.home}/.m2/settings.xml.

The configuration of the following items is currently supported:

 - Offline
 - Proxies
 - Mirrors
 - Server authentication
 - Local repository location

If the support is not enabled, settings.xml does not exist, or
settings.xml does not configure certain things then sensible defaults
are applied.
11 years ago
Dave Syer 8cb0211dce Add "integration" profile in Maven build
By default it is on, but you can switch it
off (`-P '!integration'`) to ignore integration tests
and get a faster build.

.travis.yml uses this feature so that it doesn't keep
failing on a timeout.
11 years ago
Phillip Webb b19f6bb238 Isolate class loading for launched CLI apps
Rework classloading for launched applications so that CLI classes and
dependencies are not visible. This change allows many of the previous
hacks and workarounds to be removed.

With the exception of the 'org.springframework.boot.groovy' package
and 'groovy-all' all user required depndencies are now pulled in
via @Grab annotations.

The updated classloading algorithm has enabled the following changes:

- AetherGrapeEngine is now back in the cli project and the
  spring-boot-cli-grape project has been removed. The AetherGrapeEngine
  has also been simplified.

- The TestCommand now launches a TestRunner (similar in design to the
  SpringApplicationRunner) and report test failures directly using
  the junit TextListener. Adding custom 'testers' source to the users
  project is no longer required. The previous 'double compile' for
  tests has also been removed.

- Utility classes have been removed in favor of using versions from
  spring-core.

- The CLI jar is now packaged using the 'boot-loader' rather than using
  the maven shade plugin.

This commit also applied minor polish refactoring to a number of
classes.
11 years ago
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.
11 years ago
Dave Syer a72ab9eb7d Refactor cli properties into single project 11 years ago
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
11 years ago
Phillip Webb a33425920b Rework POMs to support automated CI release 11 years ago
Dave Syer 38e565e920 Back to SNAPSHOT for dev 11 years ago
Dave Syer b634b3bde6 Update to 0.5.0.M2 11 years ago
Phillip Webb a08aac6fa5 Travis CI tweaks 11 years ago
Dave Syer 6e8cbbde3b Use reflection hack for error page in Tocmat 8 11 years ago
Sergey Shcherbakov b4542f722f Support for embedded Tomcat 8 container parallel to the current Tomcat 7 11 years ago
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.
11 years ago
Dave Syer 27ebb52196 Add back dev profile 11 years ago
Dave Syer 859e6c2ea8 Add spring-test to parents for samples 11 years ago
Dave Syer 4bb5de02e7 Switch back to SNAPSHOT for dev 11 years ago
Dave Syer 638a31f5e3 Fix poms for a milestone release 11 years ago
Dave Syer 19a880dff6 Move tools modules under spring-boot-tools 11 years ago
Dave Syer 68e5a7e887 Bump version to 0.5.0.M1 11 years ago
Phillip Webb 57f62a5a20 Remove samples from main POM 11 years ago
Phillip Webb bd5e49fc84 Revert "Remove integration tests project"
Turns out the maven-plugin still causes issues.

This reverts commit 1ccdf2f6cf.
11 years ago
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.
11 years ago
Dave Syer 92ff433dd0 Add samples to pom so they are part of reactor
(Might remove this later but getting ready for a release)
11 years ago
Dave Syer 5995b7727a Ops -> Actuator 11 years ago
Phillip Webb 3bb79db579 Renamed spring-boot-ups -> spring-boot-starter 11 years ago
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
11 years ago
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
11 years ago
Phillip Webb b665a2bb1d Renamed packages
Issue: #54095231
11 years ago
Phillip Webb 3f2bb03fb8 Renamed some projects and polish POMs
Issue: #54095231
11 years ago
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
11 years ago
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]
11 years ago
Dave Syer d639763bd7 Another attempt at making the ui sample work 11 years ago
Phillip Webb 1eca022073 Add JSP-API to tomcat starter
Add JSP API jar dependency to tomcat starter. Primarily to prevent
log warnings.
11 years ago
Dave Syer fff2a804bc Add springcli.properties for version labels
[Fixes #53030591] [bs-191] Use filtering in maven build
12 years ago
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]
12 years ago
Dave Syer 789e75d2e5 [bs-170] Out of the box support for thymeleaf security dialect
[Fixes #52121649]
12 years ago
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
12 years ago
Phillip Webb 8f62222419 Generate default manifest for all projects 12 years ago
Phillip Webb d8d8b7643b Upgrade various dependency versions 12 years ago
Dave Syer 36cbb39dec [bs-194] Restore udev in maven
Also tidy up some TODOs

[Fixes #53030439]
12 years ago
Dave Syer d260fa6456 [bs-173] Upgrade Thymeleaf layout dialect
[Fixes #52629385]
12 years ago
Dave Syer 5b78ebe6e3 Add plugin repos to bootstrap profile 12 years ago
Dave Syer 30802e542f Fix intergration tests spelling 12 years ago
Phillip Webb cd51f357a3 Further maven module restructure 12 years ago
Phillip Webb 346a0bace7 Minor pom tweaks
Fix warnings and include sonar support.
12 years ago