Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rework configuration properties support #9000

Closed
12 tasks
philwebb opened this issue Apr 25, 2017 · 0 comments
Closed
12 tasks

Rework configuration properties support #9000

philwebb opened this issue Apr 25, 2017 · 0 comments
Milestone

Comments

@philwebb
Copy link
Member

philwebb commented Apr 25, 2017

This bug groups the various issues that we want to fix when we rework configuration property support:

Main issues:

Fixed along the way:

@philwebb philwebb added this to the 2.0.0.M1 milestone Apr 25, 2017
philwebb added a commit to philwebb/spring-boot that referenced this issue Apr 25, 2017
Deprecate `RelaxedDataBinder`, `RelaxedPropertyResolver` and related
classes in preparation for the updated configuration properties binder
work.

See spring-projectsgh-9000
philwebb pushed a commit to philwebb/spring-boot that referenced this issue Apr 25, 2017
Update `spring-boot` to use the new configuration properties support.

See spring-projectsgh-9000
philwebb pushed a commit to philwebb/spring-boot that referenced this issue Apr 25, 2017
Update `spring-boot-test` to use the new configuration properties
support.

See spring-projectsgh-9000
philwebb pushed a commit to philwebb/spring-boot that referenced this issue Apr 25, 2017
Update `spring-boot-autoconfigure` to use the new configuration
properties support.

See spring-projectsgh-9000
philwebb pushed a commit to philwebb/spring-boot that referenced this issue Apr 25, 2017
Update `spring-boot-actuator` to use the new configuration properties
support.

See spring-projectsgh-9000
philwebb pushed a commit to philwebb/spring-boot that referenced this issue Apr 25, 2017
Update `spring-boot-devtools` to use the new configuration properties
support.

See spring-projectsgh-9000
philwebb pushed a commit to philwebb/spring-boot that referenced this issue Apr 25, 2017
Update `spring-boot-samples` to use the new configuration properties
support.

See spring-projectsgh-9000
philwebb pushed a commit to philwebb/spring-boot that referenced this issue Apr 25, 2017
Remove the deprecated relaxed binder code that has now been replaced
with the configuration properties binder.

Closes spring-projectsgh-9000
philwebb added a commit that referenced this issue Apr 27, 2017
Deprecate `RelaxedDataBinder`, `RelaxedPropertyResolver` and related
classes in preparation for the updated configuration properties binder
work.

See gh-9000
philwebb pushed a commit that referenced this issue Apr 27, 2017
Update `spring-boot` to use the new configuration properties support.

See gh-9000
philwebb pushed a commit that referenced this issue Apr 27, 2017
Update `spring-boot-test` to use the new configuration properties
support.

See gh-9000
philwebb pushed a commit that referenced this issue Apr 27, 2017
Update `spring-boot-autoconfigure` to use the new configuration
properties support.

See gh-9000
philwebb pushed a commit that referenced this issue Apr 27, 2017
Update `spring-boot-actuator` to use the new configuration properties
support.

See gh-9000
philwebb pushed a commit that referenced this issue Apr 27, 2017
Update `spring-boot-devtools` to use the new configuration properties
support.

See gh-9000
philwebb pushed a commit that referenced this issue Apr 27, 2017
Update `spring-boot-samples` to use the new configuration properties
support.

See gh-9000
philwebb added a commit that referenced this issue Apr 27, 2017
philwebb added a commit that referenced this issue Apr 28, 2017
philwebb added a commit that referenced this issue Apr 28, 2017
Migrate a few tests that were missed to use the new `Binder`.

See gh-9000
philwebb added a commit that referenced this issue Apr 28, 2017
Remove the last deprecated class from `org.springframework.boot.bind`

See gh-9000
philwebb added a commit that referenced this issue May 2, 2017
Fix a cache size bug in `DefaultPropertyMapper` which caused the
cache to be purged immediately.

See gh-9000
philwebb added a commit that referenced this issue May 2, 2017
Fix an issue with `ConfigurationPropertyName` where the `isAncesorOf`
method would not work with `ConfigurationPropertyName.EMPTY`

See gh-9000
philwebb added a commit that referenced this issue May 2, 2017
Update `NoUnboundElementsBindHandler` to also support ignoring
nested properties. This change is required to allow the
`NoUnboundElementsBindHandler` to be used alongside the
`IgnoreNestedPropertiesBindHandler`.

See gh-9000
philwebb added a commit that referenced this issue May 3, 2017
Fix a few issues and try a few more things to improve performance.

See gh-9000
philwebb added a commit to philwebb/spring-boot that referenced this issue May 9, 2017
philwebb added a commit to philwebb/spring-boot that referenced this issue May 9, 2017
philwebb added a commit that referenced this issue May 10, 2017
Rework the ConfigurationPropertySources and related adapter classes to
help with performance. The ConfigurationPropertySources class now only
monitors for updates when `.attach` is used. The `.get` methods now
return the adapted version, but no longer checks to see if sources have
been added or removed on each call.

This commit also fixes a few caching issues and makes both the
`PropertyMapper` implementations true static singletons.

See gh-9000
philwebb added a commit that referenced this issue May 10, 2017
Improve ConfigurationPropertySource support by reworking some of the
stream calls based on advice offered by Tagir Valeev from JetBrains.

Also improved ConfigurationPropertySource.containsDescendantOf so that
it returns an enum rather than an Optional<Boolean> (again based on
feedback from Tagir).

See gh-9000
philwebb added a commit that referenced this issue May 10, 2017
Significantly rework `ConfigurationPropertyName` in an attempt to reduce
the amount of memory and garbage produced. The name elements are now
stored as CharSequences and whenever possible subsequences are used.

This helps to reduce the memory footprint since the underlying char
array can be shared between the source string, and the individual
elements.

For example: `ConfigurationProperty.of("foo.bar.baz")` will return
a name that provides access to the elements `foo`, `bar` and `baz`.
However, these three names all share the same char[], just using
different offsets and lengths.

See gh-9000
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant