Commit Graph

102 Commits

Author SHA1 Message Date
Spencer Gibb
922608651a fix test path 2017-05-01 09:27:37 -06:00
Spencer Gibb
b40ceef356 RefreshEventListener no longer depends on RefreshEndpoint.
Instead it depends on ContextRefresher with actually does the work.

This allows applications to use the listener even if they don't depend
on actuator.

fixes gh-171
2017-04-03 20:13:11 -06:00
Spencer Gibb
78d10fc223 Use relaxed property resolver in KeyCondition
Allows users to define properties like encrypt.key-store.password=letmein

fixes gh-191

(cherry picked from commit 7744b63)
2017-04-03 19:52:17 -06:00
Spencer Gibb
1eddbc125b fix compile errors in tests 2017-03-15 12:08:04 -06:00
Dave Syer
45b0c078eb Merge branch '1.1.x' 2017-03-15 12:18:14 +00:00
Dave Syer
ba281228f6 Apply bootstrap initializers to all contexts in a hierarchy
The fix for gh-153 was sensible, but has now exposed another issue
which is that the bootstrap initializers, whilst they are now only
created once, actually only get applied to the parent context
in a hierarchy.

Most of the time this doesn't matter because the child contexts all
benefit from environment changes and additional beans added
to the parent. If the children are supposed to actually have
different environments, though, there is a problem. So this change
locates the existing bootstrap context and applies it to each
new context created separately.

Unfortunately we have to use reflection to do that for now because
there is no way to discover the parent with a public API before
the context is refreshed.

See gh-190
2017-03-15 12:16:32 +00:00
Dave Syer
70d601df84 Register a BeanDefinition manually instead of using @Bean
For RefreshScope this stops Spring from moaning about the @Bean
method with a WARN log (which is benign but hard to get rid of
and confusing for users).

See gh-401
2017-03-15 12:15:51 +00:00
Spencer Gibb
1865bc6306 polish 2017-03-01 10:43:01 -07:00
Biju Kunjummen
4e0d2e520f Fixes possible infinite loop
Fixes edge case of an infinite loop in decrypting properties in a hierarchy of application contexts.


fixes gh-178
2017-03-01 12:41:00 -05:00
Dave Syer
d2ab1c6de9 Merge branch '1.1.x' 2017-02-24 09:42:36 +00:00
Dave Syer
331e790026 Ensure there is a single bootstrap parent context
Only one neds to be created, and once it is in place in the hierarchy
it should be usable by all the child contexts that get added.

Fixes gh-153
2017-02-24 09:38:30 +00:00
Spencer Gibb
dcaef01b27 Update to boot 1.5 test classes 2017-02-21 08:19:24 -07:00
Dave Syer
d5a63c988d Merge branch '1.1.x' 2017-02-21 10:18:29 +00:00
Dave Syer
8347c5741c Extract target from @ConfigurationProperties proxy
Fixes gh-175 (more of a workaround really and gh-177 is still open
to track further changes).
2017-02-21 10:01:05 +00:00
Spencer Gibb
a86356327c fix tests for boot 1.4.x 2017-02-14 14:23:27 -07:00
Spencer Gibb
5b8ae3a96a Make sure bootstrap sources are ordered before use.
Make call to sort() before setting on builder.sources().

fixes gh-176

(cherry picked from commit 6dc35d1)
2017-02-14 14:18:48 -07:00
Spencer Gibb
6dc35d1edc Make sure bootstrap sources are ordered before use.
Make call to sort() before setting on builder.sources().

fixes gh-176
2017-02-14 14:17:11 -07:00
Dave Syer
3269b8df54 Fix line endings 2017-02-10 10:55:37 +00:00
Matt Benson
941275ded2 consider spring.profiles.include values from bootstrap PropertySources (#123) 2017-01-26 12:14:43 -05:00
Spencer Gibb
210c7b9017 Update spring-cloud-build to 1.3.1.BUILD-SNAPSHOT 2017-01-09 18:25:48 -07:00
Matthew Reid
63e4e3b8d6 Allow lifecycle endpoints to be globally disabled using endpoints.enabled property (#148)
fixes gh-158
2017-01-09 14:37:48 -05:00
Anders Båtstrand
69192f6f67 Exposing context names, fixes https://github.com/spring-cloud/spring-cloud-netflix/issues/1585. 2017-01-04 11:00:51 +01:00
Ryan Baxter
8d3d07bde6 We no longer need InfoEndpointRebinderConfiguration since we will not be supporting Boot 1.3.x in Dalston. See #145. 2016-11-21 12:07:01 -05:00
Ryan Baxter
dde952982e Revert "Make sure we copy variables to new InfoEndpoint. Fixes #143."
This reverts commit 30f34cf3bc.
2016-11-21 12:01:31 -05:00
Ryan Baxter
0a6466d9c0 Revert "Added TODO to remove InfoEndpointRebinderConfiguration"
This reverts commit 2266cc9c1a.
2016-11-21 12:01:21 -05:00
Ryan Baxter
2266cc9c1a Added TODO to remove InfoEndpointRebinderConfiguration 2016-11-21 11:47:12 -05:00
Ryan Baxter
30f34cf3bc Make sure we copy variables to new InfoEndpoint. Fixes #143. 2016-11-21 11:47:12 -05:00
Ryan Baxter
607b6a9b0c Added TODO to remove InfoEndpointRebinderConfiguration 2016-11-21 11:01:02 -05:00
Ryan Baxter
982df797f0 Make sure we copy variables to new InfoEndpoint. Fixes #143. 2016-11-18 11:53:34 -05:00
Dave Syer
d4fd2b7aa5 Extract logging system shutdown into a separate listener
LoggingSystemShutdownListener runs immediately after
BootstrapApplicationListener and contains the code which used to be
in that to clean up the logging system (and make it go dark). That
is still a little bit of a hack to work around some limitations in
the static logging libraries (via the Spring Boot Logging System
and LoggingApplicationListener).

If the LoggingApplicationListener is then *not* applied in the
ContextRefresher, then we don't need the LoggingSystemShutdownListener
either. In fact we can narrow down the ContextRefresher to be only
interested in the listeners that affect the Environment (of which
we know of only 2). It means that any listeners that are added that
affect the Environment will not be applied, but there are plenty of
more "official" channels for modifying the Environment
(EnvironmentPostProcessor and PropertySourceLocator), so users can
easily migrate to a better implementation.
2016-09-16 13:44:48 +01:00
Dave Syer
68c7fcf7d8 Apply correct ordering in logging system on startup
Completes the work started in 7f687b1, where the call to
LoggingSystem.beforeInitialization() was ommitted which results
in JUL logging never being available in the application.

Partial fix for #131 (but a /refresh is still broken)
2016-09-16 12:11:15 +01:00
Spencer Gibb
e13764db66 Fixes indexed properties merging problem.
Given the following in one property source
```
mine[0].someValue=Foo
mine[0].someKey={cipher}XXXX
mine[1].someValue=Bar
mine[1].someKey={cipher}XXXX
yours[0].anotherKey=Baz
```
only `mine[*].someKey` were added to "decrypted" property source. Due to house spring boot manages indexed properties, they can not be merged across property source. This change includes all indexed properties in the "decrypted" property source if any one of them is encrypted.

In the above example, `yours[*].*` is included even though unrelated.

fixes gh-466
2016-09-09 14:23:19 -06:00
Dave Syer
7f687b10e3 Adjust the logging lifecycle during bootstrap
Anticipating a change in Spring Boot 1.4.1 to support child context
creation without (needless) re-initialization of the logging system,
we need to carefully manage the lifecycle, in particular calling
cleanUp() when we know there are changes in the pipeline.

Fixes gh-125
2016-08-25 18:04:14 +01:00
Matt Benson
8281c829e2 correct GenericScope#setName() Javadoc (#124) 2016-08-17 13:26:00 -04:00
Dave Syer
ee56f22b20 Add comment about shutdown errors in context.close() 2016-06-01 12:06:28 +01:00
Dave Syer
31a2b3ea0e Make some tests more robust so they pass with BOot 1.4 as well
A couple of tests here make assumptions about the property source
names added using @IntegrationTest. If we are a bit more defensive
and search for a source with a matching name instead of grabbing
one by the precise name, we can have tests that pass in Boot 1.3
and 1.4.
2016-05-05 14:05:46 +01:00
Dave Syer
6f3cb2f132 Remove usage of deprecated code 2016-05-05 12:37:46 +01:00
Spencer Gibb
6e24ebd2f0 fix typo 2016-04-25 13:39:35 -06:00
Dave Syer
bda78f53a5 Add metadata manually for health endpoint 2016-04-25 15:35:56 +01:00
Dave Syer
c940192867 Switch off info endpoint rebinding in Spring Boot 1.4
The new info endpoint doesn't need special treatment to pick up
changes in the Environment, so we can just skip installing the
old bean that manipulates it.

Fixes gh-108
2016-04-20 11:27:40 +01:00
Dave Syer
b54c8e80e8 Add support for endpoints.env.post.enabled=false
Separately disable the POST /env from the GET. Fixes gh-106.
2016-04-18 10:04:56 +01:00
Dave Syer
1824a96968 Add conditional annotation to the refresh scope health indicator
i.e. management.health.refresh.enabled=false to disable

Fixes gh-106
2016-04-07 15:56:58 +01:00
Venil Noronha
b92016b260 Moved RefreshEndpoint logic to ContextRefresher.
Fixes gh-101
2016-04-01 15:03:30 -06:00
David Welch
072d6b40c7 Disable startup logging for Bootstrap environment
Fixes gh-100
2016-03-11 08:52:40 +00:00
Dave Syer
34c9b11284 Prevent possible memory leak with restart 2016-03-09 16:57:33 +00:00
Dave Syer
091b6af12a Sort bean names before generating serialization ID
Fixes gh-93
2016-03-09 16:57:33 +00:00
Dave Syer
7eccbc4bac Make LoggingRebinder case insensitive
Partly to account for the fact that Sprng Boot publishes config
meta data with lower case values (don't ask).
2016-03-04 09:22:03 +00:00
Dave Syer
1c430d4ff3 Add test for serialization ID in RefreshScope
It should be unique and deterministic by default.
2016-02-29 13:57:37 +00:00
Dave Syer
099953f795 Use system environment property source 2016-02-25 11:52:34 +00:00
Spencer Gibb
86ff712398 Properly close child contexts in destroy()
fixes gh-91
2016-02-22 10:49:54 -07:00