Commit Graph

223 Commits (9ea461229cce9cd5b89695f27be8f7e6165034f1)

Author SHA1 Message Date
Andy Wilkinson 918e122ddc Fix remote DevTools' support for adding and removing classes
Previously, remote DevTools only correctly supported modifying
existing classes. New classes that were added would be missed, and
deleted classes could cause a failure as they would be found by
component scanning but hidden by RestartClassLoader.

This commit introduces a DevTools-specific ResourcePatternResolver
that is installed as the application context's resource loader. This
custom resolver is aware of the files that have been added and
deleted and modifies the result returned from getResource and
getResources accordingly.

New intergration tests have been introduced to verify DevTools'
behaviour. The tests cover four scenarios:

- Adding a new controller
- Removing an existing controller
- Adding a request mapping to a controller
- Removing a request mapping from a controller

These four scenarios are tested with:

- DevTools updating a local application
- DevTools updating a remote application packaged in a jar file
- DevTools updating a remote application that's been exploded

Closes gh-7379
8 years ago
Spring Buildmaster e712a9ba8c Next Development Version 8 years ago
Andy Wilkinson 389f2e0f7b Make Rabbit Client milestones available to all profiles
See gh-7053
8 years ago
Andy Wilkinson 7c3d7d882a Merge branch '1.5.x' 8 years ago
Andy Wilkinson ef3395beaa Raise the minimum supported version of Gradle to 2.9
Closes gh-6884
8 years ago
Andy Wilkinson 86034e5c5c Merge branch '1.5.x' 8 years ago
Andy Wilkinson 3ea09d2e04 Merge branch '1.4.x' into 1.5.x 8 years ago
Andy Wilkinson 02e89acd1e Add managed version for kotlin-runtime to spring-boot-parent
See gh-7101
8 years ago
Andy Wilkinson 312292b93e Update Animal Sniffer and related annotations for Java 8 baseline
Closes gh-6981
8 years ago
Stephane Nicoll 9bc77254a7 Start building against Spring Framework 5 snapshot
This commit enables compatibility build against Spring Framework 5.

The Velocity and Guava support that are deprecated in the 1.x line have
been removed and few other classes contain minor change to comply to non
backward compatible changes in Spring Framework 5.

This commit also switches the required java version to 8.

Closes gh-6977
8 years ago
Stephane Nicoll 6643ec3713 Next development version 8 years ago
Stephane Nicoll 6bd670edbc Initiate 1.4.x branch 8 years ago
Spring Buildmaster 7e9ed5e1a7 Next Development Version 8 years ago
Andy Wilkinson 5806a18eee Upgrade to dependency management plugin 0.6.1.RELEASE
Closes gh-6810
8 years ago
Phillip Webb 56544c8dd5 Polish 8 years ago
Spring Buildmaster 334baaeffd Next development version 8 years ago
Andy Wilkinson f84f31b47d Add setReadTimeout and setConnectTimeout to RestTemplateBuilder
Closes gh-6346
8 years ago
Andy Wilkinson d124d68213 Upgrade to Dependency Management Plugin 0.6.0.RELEASE
Closes gh-6257
9 years ago
Stephane Nicoll f9288a3af1 Revert "Polish maven repositories definition"
This commit reverts 62fa602fea

See gh-6031
9 years ago
Stephane Nicoll 62fa602fea Polish maven repositories definition
Previously, Maven repositories definition was specified in a profile that
is active by default. It means that as soon as any profile is enabled by
the user, said profile is no longer enabled. This has the nasty
consequences of having copy/paste in several places to make sure our own
profiles still have the proper repositories definition.

This commit creates a single "repositories" profile that is always active
unless a given property is explicitely specified. This allows to remove
the duplication and make things more consistent.

Some Gradle-specific repositories were also hard-coded in two modules
without any profile at all, meaning they were polluting the build of
anybody using it. While the impacted modules are gradle specific, that
repository has been shared in the new "repositories" profile as well.

Closes gh-6031
9 years ago
Andy Wilkinson ce68fdf515 Merge branch '1.3.x' 9 years ago
Andy Wilkinson 1037239efc Upgrade to Dependency Management Plugin 0.5.7.RELEASE
Closes gh-6105
9 years ago
Spring Buildmaster 819a9574a6 Next Development Version 9 years ago
Spring Buildmaster 376bbe68d8 Next Development Version 9 years ago
Ruben Dijkstra 9a1db18172 Upgrade animal sniffer Java signature
Closes gh-5684
9 years ago
Phillip Webb 893a6c32f3 Upgrade to checkstyle 6.17
Fixes gh-5547
9 years ago
Andy Wilkinson 779649bfdb Merge branch '1.3.x' 9 years ago
Andy Wilkinson bb473c32e2 Enable Animal Sniffer checking of spring-boot-loader-tools
Previously, Animal Sniffer checking of spring-boot-loader-tools
was disabled as it failed with an NPE. This has been fixed in
Animal Sniffer 1.15.

This commit upgrades Animal Sniffer to 1.15 and adds the necessary
annotations to suppress failures for safe usage of sun.* and Java 7
APIs.

Note that UsesUnsafeJava has been copied from spring-boot and made
package-private. This retains the clearer intent of the custom
annotation (versus @IgnoreJRERequirement) while avoiding the change
in the build order that would be necessary for
spring-boot-loader-tools to use the annotation from spring-boot.

Closes gh-5284
9 years ago
Spring Buildmaster 225d877ab9 Next Development Version 9 years ago
Andy Wilkinson 2429e1a7e8 Merge branch '1.3.x' 9 years ago
Andy Wilkinson 718f509271 Upgrade to Dependency Management Plugin 0.5.6.RELEASE
Closes gh-5211
9 years ago
Phillip Webb 8b4d801dd6 Add support for AssertJ
Add AssertJ as a managed dependency and also include it in
spring-boot-starter-test. Also provide a simple adapter class to allow
Hamcrest matchers to be used as AssertJ Conditions.

Fixes gh-5048
9 years ago
Stephane Nicoll fb0664902f Add dependency management for lombok
Closes gh-4598
9 years ago
Stephane Nicoll bead239448 Remove support for Log4j
Apache Log4j 1.x is EOL and has now been replaced by log4j 2. This commit
removes the deprecated support for Log4j 1.x

See gh-4905
9 years ago
Phillip Webb fbaf209240 Move master to 1.4.0.BUILD-SNAPSHOT 9 years ago
Spring Buildmaster 504d3e97ba Next development version 9 years ago
Andy Wilkinson 2aff82bb64 Merge branch '1.2.x' 9 years ago
Spring Buildmaster 8db59059a5 Next Development Version 9 years ago
Stephane Nicoll bb736e255b Fix SNAPSHOT version 9 years ago
Matt Benson ea7a758901 Upgrade to maven-invoker-plugin 1.10
Closes gh-4760
9 years ago
Andy Wilkinson 17c4fa9d81 Upgrade to Gradle Dependency Management Plugin 0.5.4.RELEASE
Closes gh-4538
9 years ago
Spring Buildmaster 3f6f57a80e Next Development Version 9 years ago
Phillip Webb edd3f1eade Revert spring-security-oauth upgrade
It doesn't appear to be in Maven Central and it's breaking the eclipse
setup.
9 years ago
Dave Syer 02523799aa Add release repo to default profile 9 years ago
Spring Buildmaster 2b38a861e3 Next Development Version 9 years ago
Phillip Webb 2a16c25977 Replace import-control checkstyle file with regex
Fix Eclipse build warnings by replacing checkstyle's import-control file
with a simple regex rule.

Fixes gh-4006
9 years ago
Phillip Webb 47576354f7 Merge branch '1.2.x' 9 years ago
Phillip Webb cb6e30c8f5 Ignore helpmojo from Eclipse m2e config
Ignore the `helpmojo` goal to save needing an additional Eclipse plugin.
9 years ago
Andy Wilkinson a5ca1eb019 Move dependency management for Spring REST Docs into dependencies pom 9 years ago
Andy Wilkinson e9349ee53f Suppress warning from M2E by explicitly ignoring invoker plugin 9 years ago
Andy Wilkinson 1be4394855 Add lifecycle mapping for checkstyle plugin to keep Eclipse happy 9 years ago
Spring Buildmaster 9409c49c10 Next development version 9 years ago
Stephane Nicoll 002d3bd85d Add fast profile
Checkstyle and animal sniffer takes a significant amount of time when
building the project.

Add a "fast" profile that flips the `disable.checks` property. Can be
enabled either via `-Pfast` or `-Ddisable.checks=true`.

See gh-3928
9 years ago
Stephane Nicoll e70f02c4a2 Relocate checkstyle configuration
See gh-3928
9 years ago
Phillip Webb 43528abe1e Try to get cargo working 9 years ago
Phillip Webb c813060f18 Add checkstyle to build
Fixes gh-3928
9 years ago
Andy Wilkinson b31e578489 Upgrade to Spring REST Docs 1.0.0.RC1 9 years ago
Stephane Nicoll 1a71eb1f3b Move spring-restdocs version to dependency management
Closes gh-3905
9 years ago
Phillip Webb 85bb347fba Add eclipse specific profile to set execution env
Update the parent POM to include a new profile which is automatically
enabled by eclipse.

The profile duplicates `default` and also set the compiler version to
1.8. This means that M2E sets the execution environment to `JavaSE-1.8`
but the command line build still compiles 1.6 compatible code.

Fixes gh-3618
9 years ago
Stephane Nicoll 19fe86169f Upgrade maven-enforcer-plugin to 1.4
Closes gh-3661
9 years ago
Stephane Nicoll 3298761437 Update maven prerequisite
Closes gh-3614
9 years ago
Huang YunKun e142c063b5 Remove pre Java8 option 'MaxPermSize'
Closes gh-3487
9 years ago
Andy Wilkinson 4ad23166ea Use a Java 7-compatible version of org.json:json and remove duplicate
Closes gh-3412
10 years ago
Spring Buildmaster 7ce391db4f Next development version 10 years ago
Andy Wilkinson b3b648f050 Upgrade dependency management plugin for compatibility with Gradle 2.5
Closes gh-3334
10 years ago
Dave Syer d1e6c3b5c0 All JDK 1.8 as a lower limit 10 years ago
Phillip Webb 6b92160295 Enforce Java 8 for compiling 10 years ago
Spring Buildmaster 5d81c87b43 Next Development Version 10 years ago
Phillip Webb b41f852338 Add @UsesUnsafeJava annotation
Add a new annotation to indicate to Animal Sniffer that a method uses
a call to `Unsafe`.

Closes gh-3080
10 years ago
Andy Wilkinson 3c484f8c15 Upgrade to dependency-management-plugin 0.5.1.RELEASE
Closes gh-2935
10 years ago
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
10 years ago
Andy Wilkinson 73e7f1eec0 Merge branch '1.2.x' 10 years ago
Xiang Li 71ce0f6c95 Remove duplicate json.version property from spring-boot-parent pom.xml
Closes gh-2854
10 years ago
Andy Wilkinson dcd0eb7895 Update to Dependency Management Plugin 0.5.0.RELEASE
Closes gh-2822
10 years ago
Stephane Nicoll bbbb34a690 Expose cache statistics as metrics
Add an abstraction that provides a standard manner to retrieve a
statistics snapshot of a cache.

Specific implementations for JSR-107, ehcache, hazelcast, guava and
concurrent map are provided. At the moment the size of the cache and
the hit/miss ratios are recorded. Cache metrics are exposed via the
`cache.` prefix followed by the name of the cache. In case of conflict,
the name of the cache manager is added as a qualifier.

It is possible to easily register a new CacheStatisticsProvider for an
unsupported cache system and the CacheStatistics object itself can be
extended to provide additional metrics.

See gh-2633
Closes gh-2770
10 years ago
Phillip Webb 8143d1f36d Apply animal sniffer to entire build
Move animal sniffer configuration out of spring-boot-dependencies to
spring-boot-parent and apply it to all projects.

See gh-716
10 years ago
Spring Buildmaster e03c11dda8 Next development version 10 years ago
Stephane Nicoll 80194bd0e3 Upgrade to maven-archiver 2.6
Closes gh-2376
10 years ago
Andy Wilkinson 2c3c62d71c Replace basic Gradle dependency management with use of separate plugin
This commit replaces Spring Boot's basic dependency management support
with separate dependency management plugin. This has a number of
benefits including:

1. A Maven bom can be used rather than a custom properties file
2. Dependency management is applied transitively rather than only to
   direct dependencies
3. Exclusions are applied as they would be in Maven
4. Gradle-generated poms are automatically configured with the
   appropriate dependency management

Closes gh-2133
10 years ago
Phillip Webb a57a88f5cf Move master to 1.3.0.BUILD-SNAPSHOT 10 years ago
Spring Buildmaster 8f0ad02237 Next development version 10 years ago
Phillip Webb 4b9cb6afee Revert "Disable javadoc linting when building with JDK 8+"
This reverts commit 78432fc745.
10 years ago
Andy Wilkinson 78432fc745 Disable javadoc linting when building with JDK 8+
Java 8 introduced new, aggressive linting of javadoc that’s enabled by
default. The linter isn’t sufficiently configurable to allow us to tune
it to meet the project’s conventions for javadoc so our only realistic
option is to disable linting.

This commit introduces a new profile to disable javadoc linting. To
maintain compatibility with JDK 7, the profile is only active when the
build’s running on JDK 8 or later.

Closes gh-2233
10 years ago
Spring Buildmaster 60725cd8bd Next development version 10 years ago
Stephane Nicoll 77427f53cc Support of Lombok annotated ConfigurationProperties
Previously, no configuration properties were discovered on a class using
lombok instead of regular getters/setters.

This commit adds a support for some of the lombok annotations,
specifically that is @Data, @Getter and @Setter. Provides the same
semantic as what lombok is generating.

Closes gh-2114
10 years ago
Spring Buildmaster 1a788c1741 Next development version 10 years ago
Phillip Webb 90e9187b80 Polish deployment tests 10 years ago
Phillip Webb 44dde9fc12 Add deployment integration tests
Add deployment tests for Tomcat, TomEE and WildFly to ensure that
a basic Spring Boot application can be deployed to a traditional
Application server.

Since the deployment tests can be quite slow, they currently only
run in the "full" build profile.

Fixes gh-1736
10 years ago
Phillip Webb 4fa8a94dd4 Update to latest Maven plugins
Fixes gh-1899
10 years ago
Stephane Nicoll 884c058e57 Add processor to generate configuration meta-data
Adds an annotation processor to generates a JSON meta-data file at
compile time from @ConfigurationProperties items. Each meta-data file
can include an array or 'properties' and 'groups'.

A 'property' is a single item that may appear in a Spring Boot
'application.properties' file with a given value. For example,
'server.port' and 'server.context-path' are properties. Each property
may optionally include 'type' and 'description' attributes to provide
the data type (e.g. `java.lang.Integer`, `java.lang.String`) and
some short documentation (taken from the field javadoc) about what the
property is for. For consistency, the type of a primitive is translated
to its wrapper counterpart, i.e. `boolean` becomes `java.lang.Boolean`.

A 'group' provides a higher level grouping of properties. For example
the 'server.port' and 'server.context-path' properties are in the
'server' group.

Both 'property' and 'group' items may additional have 'sourceType' and
'sourceMethod' attributes to indicate the source that contributed them.

Users may use `META-INF/additional-spring-configuration-metadata.json`
to manually provide additionally meta-data that is not covered by
@ConfigurationProperties objects. The contents of this file will be
read and merged with harvested items. The complete meta-data file is
finally written to `META-INF/spring-configuration-metadata.json`.

See gh-1001
10 years ago
Phillip Webb 830ce80824 Polish CLI init command
Rename a few classes and methods and extract some logic into helper
classes. Also change 2 char shortcuts to a single char.

Closes gh-1751
10 years ago
Phillip Webb 1a61ffd7d1 Update maven-invoker-plugin to 1.9 10 years ago
Phillip Webb e6e0cf094b Move more repositories to generated settings.xml 10 years ago
Phillip Webb a1f1ab7a50 Upgrade maven-plugin-plugin to 3.3 10 years ago
Phillip Webb 80ee963cc5 Merge branch '1.1.x' 10 years ago
Phillip Webb ccda6f63d9 Attempt to fix failing build 10 years ago
Phillip Webb e237dbeec5 Move repositories out of parent POM
Move repository declarations out of the parent POM and into setting.xml
(except for the default profile). Also added jboss repository in an
attempt to fix the failing CI release.

Fixed gh-1349
10 years ago
Stephane Nicoll 249e09d9bc Switch master to 1.2.0.BUILD-SNAPSHOT 11 years ago
Spring Buildmaster 40327e1ae6 Next development version 11 years ago
Phillip Webb 6fd244c28b Move m2e ignore configuration to parent POM 11 years ago