Provide application auto-configuration to provide remote endpoint
support along with a client-side application that can be used to
establish connections.
See gh-3086
Add MVC style Dispatcher, Mapper and Handler classes to support remote
server calls. Spring MVC is not used directly since it may not be on the
classpath (for example if the user is developing a Jersey application).
See gh-3086
Update the `Restarter` so that class files and resources can change
independently of the underlying source folders. This change will
allow updates to be pushed to a remotely running application, without
requiring the application to run in an exploded form.
See gh-3086
Add a "restart" Spring `Scope` that remains between application
restarts. Allows beans such as the livereload server to remain active
during restarts and not disconnect clients.
See gh-3085
Add a minimal server to support livereload.com browser plugins. Includes
a partial websocket implementation to save needing a dependency to
spring-websocket.
See gh-3085
Add auto-configuration for application Restarts. Restarts are enabled
by default (when not running from a fat jar) and will be triggered when
any classpath folder changes.
The ClassPathRestartStrategy additional customization of when a full
restart is required. By default a PatternClassPathRestartStrategy with
patterns loaded from DeveloperToolsProperties.
Closes gh-3084
Add Restarter class that can be used to restart a running application
when underlying class files change. The Restarter is automatically
initialized via a ApplicationListener and automatically detects
classpath URLs that are likely to change (when not running from a fat
jar).
See gh-3084
Add a parent last classloader for use with application restarts. The
classloader provides a layer on top of the regular classloader to
contain the classes that might change when an application is restarted.
See gh-3084
Add a filesystem watcher that can be used to inform listeners of
changes (add, delete, modify) to files in specific source folders.
The implementation uses a background thread rather than the WatchService
API to remain compatible with Java 6 and because WatchService is slow on
OSX.
See gh-3084
Add auto-configuration to automatically apply properties that make
sense during application development. Currently the single property
`spring.thymeleaf.cache` is set to `false`.
Closes gh-3083
Add a `DeferredLog` utility class that can be used to allow early
logging. Output to a DeferredLog is cached until a real Log is provided
via the `replayTo` method.
Closes gh-3081
Make sure the Hazelcast statistics support is not triggered if the Spring
support is not present. The Hazelcast dependency alone may be used with
JCache and this should not trigger the support of the native Hazelcast
metrics infra.
See gh-2633
Previously the @Value annotation was not on a top level @Bean field
(it was nested inside). Manually constructing the bean in a separate
configuration class seems like the best way to get it to actually bind
at runtime.
Add an explicit link to the `RedisAutoConfiguration` to make sure it is
applied before the cache counter-part. Request the general
`redisTemplate` so that non String-values can be handled by default as
well.
See gh-2633
Users can add @ExportMetric[Reader,Writer] to readers and writers that
they want to participate in the default exporter. There is also still an
@ActuatorMetricWriter that is used for the legacy (non-Java8) Gauge and
CounterServices.
The redis export and aggregate use case is a lot nicer with this
shared data between the two component types.
Also made MetricExportProperties itself a Trigger (so the default
delay etc. can be configured via spring.metrics.export.*).
There was a counting error affecting bean paths like
nested[0].foo[1].bar (needed to reset a counter to 0).
Tests seem fine and I added a couple of new ones for that
use case.
Fixes gh-3065
Remove `spring.cache.config` as it is too generic and does not express
enough what is configured. This property is replaced by cache library
specific properties, that is `spring.cache.ehcache.config`,
`spring.cache.hazelcast.config`, `spring.cache.infinispan.config` and
`spring.cache.jcache.config`.
See gh-2633
Log4j2 can auto-reload its configuration file as long as the reference
to a `java.io.File` is provided in the `ConfigurationSource`. Previously,
we always created such `ConfigurationSource` with only the URL regardless
of its type.
Detect when the configuration URL points to a File and create the
`ConfigurationSource` accordingly.
The `spring-boot-sample-actuator-log4j2` has been updated to reload the
logging configuration every 30 sec if necessary.
Fixes gh-3024, gh-3030