100 Commits
Author SHA1 Message Date
Phillip Webb bef5fe29e3 Allow recursive profile group references
Update the original fix for issue #24327 so that recursive elements
are tolerated rather than fail.

See gh-24327
2020-12-08 18:58:05 -08:00
Phillip Webb a2a7bd5b02 Merge pull request #24327 from dreis2211
* pr/24327:
  Polish 'Fail on recursive references in profile groups'
  Fail on recursive references in profile groups

Closes gh-24327
2020-12-08 18:14:47 -08:00
Phillip Webb 0931f04eb0 Polish 'Fail on recursive references in profile groups'
See gh-24327
2020-12-08 18:13:57 -08:00
Phillip Webb 2ab730182b Merge branch '2.3.x' 2020-12-08 18:13:12 -08:00
Phillip Webb 92306dcbe0 Merge branch '2.2.x' into 2.3.x 2020-12-08 18:12:51 -08:00
Phillip Webb 0d157e046f Fix checkstyle violations
See gh-21015
2020-12-08 18:12:30 -08:00
Phillip Webb 92a7ae76f6 Merge pull request #24301 from JimStockwell
* pr/24301:
  Update README with instructions on running tests

Closes gh-24301
2020-12-08 17:33:22 -08:00
Phillip Webb e95c514661 Merge branch '2.3.x'
Closes gh-24412
2020-12-08 17:28:18 -08:00
Phillip Webb 49e754f48b Merge branch '2.2.x' into 2.3.x
Closes gh-24411
2020-12-08 17:23:33 -08:00
Phillip Webb 286ef61071 Narrow auto-configure checkstyle suppressions
Closes gh-21015
2020-12-08 17:04:03 -08:00
Phillip Webb b48f4028a3 Merge branch '2.3.x' 2020-12-08 16:32:45 -08:00
Phillip Webb 30717b6ae3 Merge branch '2.2.x' into 2.3.x 2020-12-08 16:32:26 -08:00
Phillip Webb 4f95486822 Polish note about Maven/Gradle restarts
See gh-24271
2020-12-08 16:31:46 -08:00
Phillip Webb b9e87a4ab2 Merge branch '2.3.x'
Closes gh-24410
2020-12-08 16:25:16 -08:00
Phillip Webb 445c6b8aa6 Merge branch '2.2.x' into 2.3.x
Closes gh-24409
2020-12-08 16:25:03 -08:00
Phillip Webb 9dfd766da8 Merge pull request #24271 from CubeOfCheese
* pr/24271:
  Polish "Triggering a restart" formatting
  Document devtools restart with Maven/Gradle

Closes gh-24271
2020-12-08 16:24:44 -08:00
Phillip Webb 10d3121e27 Polish "Triggering a restart" formatting
See gh-24271
2020-12-08 16:24:18 -08:00
Phillip Webb 3618bddf51 Merge branch '2.3.x'
Closes gh-24408
2020-12-08 16:15:31 -08:00
Phillip Webb 06531b9b71 Merge branch '2.2.x' into 2.3.x
Closes gh-24407
2020-12-08 16:08:32 -08:00
Phillip Webb 8eec9cf32f Restore release scripts POM
Closes gh-21460
2020-05-14 21:16:12 -07:00
Phillip Webb c7023c5b17 Increase bintray timeout 2020-05-14 21:04:29 -07:00
Phillip Webb eb3b0f82a3 Use http liquibase XSDs
Update the lquibase test to use `http://` rather than `https://` so that
it can be resolved from the local jar.
2020-05-14 17:55:10 -07:00
Phillip Webb a2187bbd05 Merge pull request #17274 from nosan
* gh-17274:
  Polish 'Add @WebServiceClientTest slice test support'
  Add @WebServiceClientTest slice test support

Closes gh-17274
2020-05-14 00:46:36 -07:00
Phillip Webb 194c9fac64 Polish 'Add @WebServiceClientTest slice test support'
See gh-17274
2020-05-14 00:21:50 -07:00
Phillip Webb 9a1a2ca613 Merge branch '2.2.x'
Closes gh-21448
2020-05-13 23:28:29 -07:00
Phillip Webb 5eabb0400c Merge branch '2.1.x' into 2.2.x
Closes gh-21447
2020-05-13 23:01:02 -07:00
Phillip Webb d7c7ca31f3 Upgrade to spring-javaformat 0.0.22
Closes gh-21446
2020-05-13 23:00:18 -07:00
Phillip Webb fd505e516f Merge branch '2.2.x'
Closes gh-21444
2020-05-13 19:11:29 -07:00
Phillip Webb 49a21ded7a Create endpoint beans as late as possible
Update `EndpointDiscoverer` so that `@Endpoint` and `@EndpointExtension`
beans are created as late as possible.

Prior to this commit, endpoint beans and extension beans would be
created during the discovery phase which could cause early bean
initialization. The problem was especially nasty when using an embedded
servlet container since `ServletEndpointRegistrar` is loaded as the
container is initialized. This would trigger discovery and load all
endpoint beans, including the health endpoint, and all health indicator
beans.

Fixes gh-20714
2020-05-13 19:10:54 -07:00
Phillip Webb 038ae93406 Update copyright year of changed files 2020-05-13 16:48:51 -07:00
Phillip Webb 12381467da Polish 2020-05-13 16:48:51 -07:00
Phillip Webb 6a1f61c1bf Merge branch '2.2.x' 2020-05-13 12:23:10 -07:00
Phillip Webb daed512076 Restore getUseRelativeRedirects in deprecated form
Restore the `getUseRelativeRedirects` method with a `Boolean` object
result and introduce `isUseRelativeRedirects` for the primitive boolean
variant.

See gh-20796
2020-05-13 11:36:24 -07:00
Phillip Webb 5157a75119 Polish 2020-05-13 11:36:02 -07:00
Phillip Webb 0607af870d Improve ConfigurationPropertySource performance
Further improve the performance of `containsDescendantOf` by using
a Map to limit the number of candidates that need checking.

Closes gh-21416
2020-05-12 20:17:06 -07:00
Phillip Webb 4af6e7ff99 Improve ConfigurationPropertySource performance
Attempt to improve the performance of the `ConfigurationPropertySource`
adapters `containsDescendantOf` method. The method now operates on
arrays rather than iterators and reduces the inner for-loop when
possible.

See gh-21416
2020-05-12 16:44:57 -07:00
Phillip Webb 49921d65ac Ensure @ActiveProfiles replaces existing profiles
Update `SpringBootContextLoader` to both add `spring.profiles.active`
properties and to directly call `Environment.setActiveProfiles`.
The additional `setActiveProfiles` call prevents `AbstractEnvironment`
from accidentally loading `spring.profiles.active` properties directly
when `doGetActiveProfiles` is called.

Directly setting active profiles has only become necessary since we
started adding properties using the square bracket notation. Previously
we added a comma-separated list which would be picked up by both the
`AbstractEnvironment` and the `ConfigurationFileApplicationListener`.

Closes gh-21302
2020-05-08 17:16:06 -07:00
Phillip Webb 7afd25fc9a Add ConfigurationPropertyCaching support
Add a `ConfigurationPropertyCaching` utility interface that can be
used to control the property source caching.

Prior to this commit, a `ConfigurationPropertySource` that was backed
by a mutable `EnumerablePropertySource` would need to call the
`getPropertyNames()` method each time a property was accessed. Since
this this operation can be expensive, we now provide a way to cache
the results for a specific length of time.

This commit also improves the performance of immutable property sources
by limiting the number of candidates that need to be searched.
Previously, all mapped names would be enumerated. Now, mappings are
grouped by `ConfigurationPropertyName`. This is especially helpful when
the `ConfigurationPropertyName` isn't mapped at all since the hash based
map lookup will be very fast and the resulting mappings will be empty.

Closes gh-20625
2020-05-07 15:22:24 -07:00
Phillip Webb 85e9a73e85 Add hashcode support to ConfigurationPropertyName
Provide a hashcode implementation for `ConfigurationPropertyName` so
that instances can be stored in Map without them all ending up in the
same bucket.

See gh-20625
2020-05-07 15:22:20 -07:00
Phillip Webb 5309912927 Test large property source performance
Add a test to ensure that a large number of property sources that each
contain many items can perform well.

See gh-20625
2020-05-07 15:22:10 -07:00
Phillip Webb 81058cab03 Allow clash in spring.config.name
Remove the recently added slash restriction since Spring Cloud
Config Server needs to support names with slashes.

See gh-21217
2020-05-07 07:56:01 -07:00
Phillip Webb 559c178637 Simplify regex expressions 2020-05-07 07:44:31 -07:00
Phillip Webb b4963d2463 Fix legacy environment names in isAncestorOf
Fix the `SystemEnvironmentPropertyMapper.isAncestorOf` implementation
to convert names based on their dashed form and to silently ignore
any invalid results.

Closes gh-14479
2020-05-06 11:35:39 -07:00
Phillip Webb 66e8968b98 Merge pull request #21136 from Grubhart
* pr/21136:
  Polish 'Add Period converter support'
  Add Period converter support

Closes gh-21136
2020-05-06 00:30:26 -07:00
Phillip Webb 5ae623c43a Polish 'Add Period converter support'
Polish period converter support, primarily by changing
`PeriodStyle` to parse and print periods that include
more than one unit.

See gh-21136
2020-05-06 00:21:50 -07:00
Phillip Webb fb9bf7a0b2 Merge pull request #21259 from dreis2211
* pr/21259:
  Further optimize StringSequence.startsWith
  Optimize StringSequence.startsWith

Closes gh-21259
2020-05-05 18:37:11 -07:00
Phillip Webb 4a8492d428 Further optimize StringSequence.startsWith
See gh-21259
2020-05-05 18:37:10 -07:00
Phillip Webb 3325709a78 Upgrade to JNA 5.5.0
Upgrade JNA to 5.5.0 and only use the jna-platform dependency.

Closes gh-21313
2020-05-05 12:50:33 -07:00
Phillip Webb 365f65d214 Merge branch '2.2.x'
Closes gh-21321
2020-05-05 12:12:54 -07:00
Phillip Webb 98d27db767 Merge branch '2.1.x' into 2.2.x
Closes gh-21320
2020-05-05 12:12:31 -07:00
Phillip Webb df70c42f98 Allow classpath wildcards with Java 11 or above
Update `StaticResourceJars` to catch both `IOException` and
`InvalidPathException` when checking URLs. Prior to this commit only
`IOException` was caught which worked on Java 8 but not Java 11 or
above.

Fixes gh-21312
2020-05-05 12:10:31 -07:00
Phillip Webb 720d23af41 Further restrict configuration wildcard patterns
Extend wildcard restrictions to the `spring.config.name` property. Also
refine exception messages to include the property value.

Closes gh-21217
2020-05-05 10:27:35 -07:00
Phillip Webb 9486842bad Merge branch '2.2.x'
Closes gh-21294
2020-05-01 18:31:14 -07:00
Phillip Webb 92ef515fbe Fix @DefaultValue PropertyEditor based conversion
Update `ValueObjectBinder` reattempt conversion if the `@DefaultValue`
contains a single element. Prior to this commit, single element
conversion relied on the `ArrayToObjectConverter` which isn't always
available.

Fixes gh-21264
2020-05-01 18:26:18 -07:00
Phillip Webb ff3b05a421 Add json starter to integration test repo 2020-04-30 20:55:35 -07:00
Phillip Webb 07415e1603 Attempt to fix Windows CI test failure 2020-04-30 18:17:29 -07:00
Phillip Webb 57179c0d3d Add InputStreamSourceToByteArrayConverter
Add an `InputStreamSourceToByteArrayConverter` that can be used to
convert from an `InputStreamSource` (such as a `Resource`) to a
byte array.

Closes gh-21285
2020-04-30 16:40:05 -07:00
Phillip Webb d52bf83ab2 Polish 2020-04-30 16:40:05 -07:00
Phillip Webb ad1248e4ec Replace "folder" with "directory"
Consistently use the term "directory" instead of "folder"

Closes gh-21218
2020-04-28 19:20:24 -07:00
Phillip Webb a9f8fe343f Merge branch '2.2.x' 2020-04-27 21:52:24 -07:00
Phillip Webb 1f492001ec Merge branch '2.1.x' into 2.2.x 2020-04-27 21:51:04 -07:00
Phillip Webb 50e9674631 Backport "Attempt to prevent JarFiles from being left open"
Update `JarFile` so that `super.close()` is called early so that the
file is not left open. Since we re-implement `JarFile` methods to work
directly on the underlying `RandomAccessDataFile`, it should be safe
to close immediately.

Closes gh-21177
2020-04-27 19:03:52 -07:00
Phillip Webb 6fe30a8a7e Merge branch '2.2.x'
Closes gh-21175
2020-04-27 16:20:36 -07:00
Phillip Webb 36b082e8c1 Merge branch '2.1.x' into 2.2.x
Closes gh-21174
2020-04-27 16:18:55 -07:00
Phillip Webb e2705b2cfd Throw exception if classpath*: is used
Update `ConfigFileApplicationListener` to throw a better exception if
`classpath*:` is used as a location.

Closes gh-21168
2020-04-27 13:42:40 -07:00
Phillip Webb 77b9dd900c Merge branch '2.2.x'
See gh-21127
2020-04-25 22:21:23 -07:00
Phillip Webb 7d53f7d27f Attempt to prevent JarFiles from being left open
Update `JarFile` to also call `super.close()` early for nested jars.

See gh-21126
2020-04-25 22:20:53 -07:00
Phillip Webb 4f47b7b46a Merge branch '2.2.x'
See gh-21127
2020-04-25 13:32:43 -07:00
Phillip Webb 7c6e912463 Attempt to prevent JarFiles from being left open
Update `JarFile` so that `super.close()` is called early so that the
file is not left open. Since we re-implement `JarFile` methods to work
directly on the underlying `RandomAccessDataFile`, it should be safe
to close immediately.

See gh-21126
2020-04-25 13:03:07 -07:00
Phillip Webb 6ccba24494 Merge branch '2.2.x'
Close gh-20507 in 2.3.0.RC1
2020-04-23 16:40:49 -07:00
Phillip Webb 581ce09f88 Merge branch '2.1.x' into 2.2.x
Closes gh-21106
2020-04-23 16:39:38 -07:00
Phillip Webb 416cfc2c86 Improve @Value documentation
Improve "@ConfigurationProperties vs. @Value" documentation with the
recommendation that kebab-case is used with the `@Value` annotation.

Closes gh-20507
2020-04-23 16:39:22 -07:00
Phillip Webb 96baf2713c Merge branch '2.2.x' 2020-04-23 16:35:36 -07:00
Phillip Webb db28c0c65c Backport "Attempt to fix CI" 2020-04-23 16:35:01 -07:00
Phillip Webb 4de69c380d Attempt to fix CI 2020-04-23 15:55:10 -07:00
Phillip Webb c2a21f00ee Merge pull request #21104 from dreis2211
* pr/21104:
  Fix PropertiesMigrationListenerTests

Closes gh-21104
2020-04-23 14:57:42 -07:00
Phillip Webb 49345025ac Merge branch '2.2.x'
Closes gh-21105
2020-04-23 14:44:08 -07:00
Phillip Webb 93f7e2b6ba Limit when PortInUseException is thrown
Refactor `PortInUseException` logic to a single place and refine when
the exception is thrown.

Prior to this commit, we assumed that a `BindException` was only thrown
when the port was in use. In fact, it's possible that the exception
could be thrown because the requested address "could not be assigned".

We now only throw a `PortInUserException` if the `BindException` message
includes the phrase "in use".

Fixes gh-21101
2020-04-23 14:42:30 -07:00
Phillip Webb b73d5038d5 Merge branch '2.2.x' 2020-04-23 14:35:08 -07:00
Phillip Webb 9bb53a4c37 Polish 2020-04-23 14:31:49 -07:00
Phillip Webb 48821bccb7 Merge branch '2.2.x'
Closes gh-21092
2020-04-22 16:50:41 -07:00
Phillip Webb d1649fbb9a Merge branch '2.1.x' into 2.2.x
Closes gh-21091
2020-04-22 16:49:33 -07:00
Phillip Webb e0f94f54ac Add "Health as Gauge" how-to documentation
Add how-to documentation describing how health information can be
exported to a Micrometer Gauge.

Closes gh-18329
2020-04-22 16:45:46 -07:00
Phillip Webb 3e3587e0fb Polish 2020-04-22 12:57:08 -07:00
Phillip Webb 56711d678a Merge branch '2.2.x'
Closes gh-21083
2020-04-22 11:59:22 -07:00
Phillip Webb 102729b5e1 Merge branch '2.1.x' into 2.2.x
Closes gh-21082
2020-04-22 11:58:39 -07:00
Phillip Webb b3d33754a5 Remove outdated FIXMEs from tests
Closes gh-19782
2020-04-22 11:55:35 -07:00
Phillip Webb bf41da5322 Update copyright year of changed files 2020-04-21 18:12:27 -07:00
Phillip Webb ed7a5db174 Fail operations when JarFile is closed
Update `JarFile` to track when the instance has been closed and throw
an exception in the same way that `ZipFile` does.

Closes gh-21072
2020-04-21 18:12:03 -07:00
Phillip Webb cc33e23d31 Merge branch '2.2.x'
Closes gh-21074
2020-04-21 17:22:11 -07:00
Phillip Webb 6bf933205c Merge branch '2.1.x' into 2.2.x
Fixes gh-21073
2020-04-21 17:21:32 -07:00
Phillip Webb c85918b8b3 Create new JarFile instance for URL connections
Update `JarURLConnection` to ensure that when connections are opened
a new copy of the JarFile is provided.

Prior to this commit, a single `JarFile` instance was shared which meant
that it could be accidental closed if accessed via
`JarURLConnection.getJarFile()`. If the underlying jar file is closed
then it's possible for a `NoClassDefFoundError` to be thrown if running
on JDK 11 with an active `SecurityManager`.

Closes gh-17796
2020-04-21 16:32:51 -07:00
Phillip Webb e83c3b87c0 Merge branch '2.2.x'
Closes gh-21071
2020-04-21 11:45:05 -07:00
Phillip Webb 7d0b14fe1c Merge branch '2.1.x' into 2.2.x
Closes gh-21070
2020-04-21 11:43:09 -07:00
Phillip Webb 6011470ba6 Auto-configure cors on WelcomePageHandlerMapping
Update `WebMvcAutoConfiguration` to automatically apply cors
configuration to the `WelcomePageHandlerMapping`.

Fixes gh-21048
2020-04-21 11:40:26 -07:00
Phillip Webb 03a9738f3b Merge branch '2.2.x'
Closes gh-21053
2020-04-20 17:57:57 -07:00
Phillip Webb 7d68c7c4c4 Merge branch '2.1.x' into 2.2.x
Closes gh-21052
2020-04-20 17:55:33 -07:00
Phillip Webb a2fdf23e41 Don't throw NettyWebServer on permission errors
Update `NettyWebServer` so that the `PortInUseException` is not thrown
for permission denied errors.

Fixes gh-19807
2020-04-20 17:54:13 -07:00
Phillip Webb c7611112f7 Include cause when throwing PortInUseException
Update classes that throw `PortInUseException` so that they also
include the cause. Prior to this commit the cause was not included
which could make diagnosing the real cause difficult.

See gh-19807
2020-04-20 17:54:10 -07:00
Phillip Webb 85befdf10e Polish 2020-04-20 17:53:55 -07:00