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

#25263 fiexed in 5.2X #25341

Closed
wants to merge 316 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
316 commits
Select commit Hold shift + click to select a range
4e8a6b9
Merge branch '5.2.x'
sbrannen May 7, 2020
247662d
Fix @Transactional syntax error in reference manual
quaff May 7, 2020
21800a5
Polish @Transactional documentation in reference manual
sbrannen May 7, 2020
5af3223
Add Release pipeline for Milestone versions
bclozel May 7, 2020
1da903d
Add PartHttpMessageWriter
rstoyanchev May 7, 2020
8a59a63
Merge branch '5.2.x'
rstoyanchev May 8, 2020
f3c616c
Merge branch '5.2.x'
rstoyanchev May 8, 2020
1e64ffa
Merge branch '5.2.x'
sbrannen May 8, 2020
8f7debc
Merge branch '5.2.x'
sbrannen May 8, 2020
29fe8ce
Merge branch '5.2.x'
sbrannen May 8, 2020
2dc9020
Merge branch '5.2.x'
sbrannen May 9, 2020
73e3df5
Fix typo in core-beans.adoc
stqp May 9, 2020
745cfcb
Upgrade tests to TestNG 7.1
sbrannen May 9, 2020
613bd3b
Honor TxMgmtConfigurer when @Primary tx mgr is present in TCF
sbrannen May 9, 2020
3f30dca
Merge branch '5.2.x'
sbrannen May 10, 2020
7f59381
Add support for RxJava 3
rstoyanchev May 11, 2020
a64e709
Deprecate support for RxJava 1.x
rstoyanchev May 11, 2020
3276f81
Avoid one layer of HttpHeaders wrapping
rstoyanchev May 8, 2020
df99889
Avoided repeated creation of ReadOnlyHttpHeaders wrapper
rstoyanchev May 8, 2020
c908ec1
Wrappers for native headers on the client side
rstoyanchev May 8, 2020
67a06f5
Add mutate() to ClientResponse and deprecate from()
rstoyanchev May 8, 2020
0e9ecb6
Shortcut handling of bodyToFlux(DataBuffer.class)
rstoyanchev May 8, 2020
94824e3
Avoid parse cookies when mutating request or response
rstoyanchev May 9, 2020
2f80a08
Merge ClientResponse and related improvements
rstoyanchev May 11, 2020
65acda8
Polishing
sbrannen May 11, 2020
715e8c9
Align TransactionManagementConfigurer support in TCF with production
sbrannen May 11, 2020
7bcda3a
Update Javadoc for TestContextTransactionUtils
sbrannen May 11, 2020
e4cb25f
Reject "/path/**/other" patterns in PathPatternParser
bclozel May 11, 2020
b883aad
Use weak ETags in VersionResourceResolver
bclozel May 11, 2020
14e249a
Merge branch '5.2.x'
rstoyanchev May 12, 2020
a07dc80
Polishing
sbrannen May 11, 2020
3c3e8e6
Only proxy supported beans in BeanNameAutoProxyCreator
sbrannen May 11, 2020
b313b33
Fix AutoProxyLazyInitTests
sbrannen May 12, 2020
71d384f
Upgrade to RSocket 1.0.0
rstoyanchev May 12, 2020
c6e2a5e
Merge branch '5.2.x'
rstoyanchev May 12, 2020
e8335c9
Update Javadoc for LazyInitTargetSourceCreator
sbrannen May 12, 2020
d54b903
Fix typo in RmiSupportTests
ijliym May 12, 2020
311b333
Use computeIfAbsent in ResourceBundleMessageSource
chenqimiao May 12, 2020
6305a69
Avoid StringBuilder.append(Object) in ContentDisposition
stsypanov May 12, 2020
3809d88
Fix Checkstyle violation
sbrannen May 12, 2020
273d952
Merge branch '5.2.x'
sbrannen May 12, 2020
dd0d0d5
Introduce resolvable timeout attribute on @Transactional and <tx:method>
jhoeller May 12, 2020
f090931
Use proxyBeanMethods=false on remaining internal configuration classes
jhoeller May 12, 2020
a16d178
Polish Javadoc for NameMatchTransactionAttributeSource
sbrannen May 13, 2020
b31f2bd
@ExceptionHandler resolves nested exceptions
rstoyanchev May 12, 2020
e881d4b
Allow use of JsonInclude.Value
rstoyanchev May 13, 2020
e88eb0e
Option for advanced ObjectMapper customization
rstoyanchev May 13, 2020
875e7f8
Match multiple values in HeaderAssertions
rstoyanchev May 13, 2020
a3c5625
Internal cache of pre-filtered BeanPostProcessors (for faster iteration)
jhoeller May 13, 2020
5de6ae6
Ignore resolved bean from non-active scope in getIfAvailable/getIfUnique
jhoeller May 13, 2020
67547e6
Add JMH benchmark infrastructure
bclozel May 13, 2020
612a63c
Optimize MediaType parsing
bclozel May 13, 2020
60fac67
Polish
bclozel May 13, 2020
3c1ee64
Explicit nullability declarations for all AOP Alliance methods
jhoeller May 13, 2020
99bd1a1
Defensive null check against name parameter in AutowireMode#from
jhoeller May 13, 2020
26c2055
Merge branch '5.2.x'
jhoeller May 13, 2020
2349829
Upgrade to Undertow 2.1 and Jackson 2.11
jhoeller May 13, 2020
fe3b36a
Polishing
sbrannen May 14, 2020
6403a9f
Defer decision on BindingResult type until access
rstoyanchev May 13, 2020
de37859
Provide access to CloseStatus in WebSocketSession
rstoyanchev May 14, 2020
b122483
Add metadataPush support to RSocketRequester
rstoyanchev May 14, 2020
9bfe410
Avoid using regex for URL matching when possible
encircled Apr 9, 2020
5672651
Avoid using regex matching for static patterns
bclozel May 15, 2020
703d546
Avoid unnecessary boxing/unboxing of primitives
stsypanov May 14, 2020
212bb7f
Add GenericConversionService JMH benchmark
bclozel May 15, 2020
9999414
Merge branch '5.2.x'
jhoeller May 18, 2020
16f1414
Merge branch '5.2.x'
jhoeller May 18, 2020
92f7587
Upgrade to JDK 15 build 23 on CI server
sbrannen May 19, 2020
23233c3
Shared read-only instance of UrlPathHelper
rstoyanchev May 19, 2020
5ca7928
Use Servlet 4 mapping type if available
rstoyanchev May 19, 2020
d56ca04
Introduce queryForStream on JdbcTemplate and NamedParameterJdbcTemplate
jhoeller May 19, 2020
59cab5e
Polishing
sbrannen May 19, 2020
da071c1
Remove unused code
sbrannen May 19, 2020
8da5627
Fix ExceptionHandlerExceptionResolver.setResponseBodyAdvice behaviour
Dec 13, 2019
7c2471e
Polish
bclozel May 19, 2020
59443bf
Merge branch '5.2.x'
sbrannen May 20, 2020
593928a
Upgrade JDK 15 CI image to JDK 15 build 24
bclozel May 22, 2020
399453d
Merge branch '5.2.x'
jhoeller May 22, 2020
b5d9f27
Merge branch '5.2.x'
rstoyanchev May 24, 2020
5392ac2
Add dependency on BouncyCastle for JDK 15+
sbrannen May 25, 2020
a853a58
Avoid duplicate addition of void.class in ClassUtils
sbrannen May 26, 2020
9bf7ff2
Introduce EntityManager initialization callbacks
jhoeller May 26, 2020
67533a1
Upgrade to Groovy 3.0.4, RxJava 3.0.4, Undertow 2.1.1, EclipseLink 2.…
jhoeller May 26, 2020
94f1d77
Polish StringHttpMessageConverter.getContentTypeCharset()
quaff May 26, 2020
9292442
Merge branch '5.2.x'
jhoeller May 26, 2020
83b5647
Upgrade to Gradle 6.4.1
sbrannen May 27, 2020
c4ef002
Stop to writing to STD_OUT in tests
sbrannen May 27, 2020
763f7b9
Make TaskExecutor and TaskScheduler tests more robust
sbrannen May 27, 2020
cc061ca
Merge branch '5.2.x'
sbrannen May 27, 2020
90ccabd
Merge branch '5.2.x'
rstoyanchev May 27, 2020
d706899
Merge branch '5.2.x'
rstoyanchev May 28, 2020
967478b
Merge branch '5.2.x'
sbrannen May 28, 2020
7e2b817
Polish ContentDisposition
sbrannen May 28, 2020
5f9e951
Merge branch '5.2.x'
sbrannen May 29, 2020
42ff01b
Merge branch '5.2.x'
jhoeller May 29, 2020
6d6269f
Switch to Reactor 2020.0.0 snapshots
rstoyanchev May 29, 2020
30351c2
Deprecate methods in ReactorNettyWebSocketClient
izeye May 12, 2020
b31b8ce
Polishing in MockServerHttpRequest
midumitrescu May 28, 2020
8d44947
Polishing contribution
rstoyanchev May 29, 2020
1175b7e
Deprecate HandlerInterceptorAdapter
rstoyanchev May 29, 2020
7207f76
Deprecate InstantiationAwareBeanPostProcessorAdapter
jhoeller May 29, 2020
e955e52
Refactor method name dispatching to switch statements
jhoeller May 29, 2020
2a5fc08
Merge branch '5.2.x'
sbrannen Jun 2, 2020
2549674
Refactor method name dispatching to switch statements
YooInKeun May 31, 2020
0f0b1ff
Use computeIfAbsent in ScriptFactoryPostProcessor
sbrannen Jun 2, 2020
a7f8120
Merge branch '5.2.x'
rstoyanchev Jun 3, 2020
0b163fa
Upgrade to Gradle 6.5
sbrannen Jun 3, 2020
da7ead8
Polishing
sbrannen Jun 3, 2020
104f7f3
Merge branch '5.2.x'
sbrannen Jun 4, 2020
a7df011
Merge branch '5.2.x'
sbrannen Jun 4, 2020
e11da64
Fix obsolete link in Kotlin docs
LinkedList Jun 5, 2020
6a829a3
Respect MediaType charset in Jackson converters
poutsma Jun 4, 2020
5f1326f
Respect MimeType charset in Jackson codecs
poutsma Jun 5, 2020
aaa7c6c
Merge branch '5.2.x'
sbrannen Jun 5, 2020
5051d73
Merge branch '5.2.x'
jhoeller Jun 6, 2020
65b09be
Polishing
jhoeller Jun 6, 2020
f860b35
Upgrade to Undertow 2.1.3
jhoeller Jun 6, 2020
a34f1e3
Merge branch '5.2.x'
jhoeller Jun 6, 2020
0bfcabe
Merge branch '5.2.x'
sbrannen Jun 8, 2020
8b59b6a
Merge branch '5.2.x'
poutsma Jun 8, 2020
150fe96
Merge branch '5.2.x'
rstoyanchev Jun 8, 2020
edbc54f
Merge branch '5.2.x'
sbrannen Jun 8, 2020
9c1c787
Polishing
jhoeller Jun 8, 2020
21b1f30
Merge branch '5.2.x'
jhoeller Jun 8, 2020
1984cfe
Merge branch '5.2.x'
rstoyanchev Jun 8, 2020
e0d7129
Merge branch '5.2.x'
snicoll Jun 9, 2020
3cc7efc
Merge branch '5.2.x'
rstoyanchev Jun 9, 2020
33181da
Merge branch '5.2.x'
rstoyanchev Jun 9, 2020
905483b
Polish Javadoc for @PropertySource
sbrannen Jun 9, 2020
b9e52a8
Delete dead code in MockServerHttpRequest
sbrannen Jun 9, 2020
eb3be3a
Refactor method name dispatching to switch statements in AutowireUtils
lee-garden Jun 6, 2020
202799e
Rethrow XMLStreamExceptions as DecodingExceptions
poutsma Jun 10, 2020
8fb7399
Upgrade to Dom4j 2.1.3 and Jaxen 1.2.0
May 14, 2020
335ca75
Polish contribution
sbrannen Jun 10, 2020
b0e07cc
Delete dead code in spring-webmvc
sbrannen Jun 10, 2020
663f2e8
Merge branch '5.2.x'
jhoeller Jun 10, 2020
e866fac
Wrap ternary operator within parentheses as outlined in Code Style
lee-garden Jun 10, 2020
bc4945d
Ensure non-null condition comes 1st in ternary operator
sbrannen Jun 11, 2020
1279b3b
Merge branch '5.2.x'
jhoeller Jun 11, 2020
188722a
Merge branch '5.2.x'
jhoeller Jun 11, 2020
b66e718
Upgrade to Rome 1.13.1
jhoeller Jun 11, 2020
f9cca5d
Add tests for Assert.noNullElements(Collection, ...)
rweisleder Jun 12, 2020
d9969d1
Update Javadoc for Assert regarding Guava Preconditions
sbrannen Jun 12, 2020
30385da
Upgrade JDK 15 CI image to JDK 15 build 26
sbrannen Jun 12, 2020
50a0094
Ensure spring-core JAR is reproducible
sbrannen Jun 13, 2020
e190851
Merge branch '5.2.x'
sbrannen Jun 13, 2020
adc76a1
Suppress warnings in ResponseCreatorsTests
sbrannen Jun 14, 2020
a0f4d81
Remove http -> web package dependency
rstoyanchev Jun 10, 2020
5225a57
Support for parsed PathPatterns in Spring MVC
rstoyanchev Jun 15, 2020
bb7e5f0
Merge branch '5.2.x'
sbrannen Jun 15, 2020
b572f76
HandlerMappings expose usesPathPatterns() method
rstoyanchev Jun 15, 2020
b50cf9d
Support user-defined key type in JDBC KeyHolder
eXsio Jun 16, 2020
cc30101
Polish JDBC KeyHolder support
sbrannen Jun 16, 2020
97aba77
Merge branch '5.2.x'
poutsma Jun 16, 2020
2a74eff
Upgrade to Kotlin 1.4 M2
sdeleuze Jun 16, 2020
e2944c3
Make DispatcherServlet.properties loading lazy
sdeleuze Jun 16, 2020
50391ad
Add @author tags for JDBC KeyHolder support
sbrannen Jun 16, 2020
456d2c4
Suppress warnings in Gradle build
sbrannen Jun 16, 2020
8099fc8
Use try-with-resources language construct where feasible
sbrannen Jun 16, 2020
7949937
Remove redundant assignment of default values to volatile fields
stsypanov Jun 17, 2020
6ea7ff1
Upgrade to ASM master (8.1 beta)
jhoeller Jun 17, 2020
d36407d
Deprecate rarely used bean definition variants
jhoeller Jun 17, 2020
17cab96
Deprecate TransactionSynchronizationAdapter
jhoeller Jun 17, 2020
77dd058
Polishing
sbrannen Jun 17, 2020
9984a33
Merge branch '5.2.x'
sbrannen Jun 17, 2020
775d99a
Merge branch '5.2.x'
sbrannen Jun 17, 2020
8853f4b
Merge branch '5.2.x'
sbrannen Jun 17, 2020
217b6e3
Rollback reactive transaction on cancel
mp911de Jun 16, 2020
7f79a37
Merge branch '5.2.x'
jhoeller Jun 17, 2020
aff601e
Add support for R2DBC
mp911de May 13, 2020
e01160d
Multipart RequestMatcher's
spac-valentin Apr 21, 2020
bc33ae3
Update multipart RequestMatcher
rstoyanchev Jun 17, 2020
de0a043
Add contains form data RequestMatcher
rstoyanchev Jun 17, 2020
533608b
Merge branch 'pr/23772'
rstoyanchev Jun 18, 2020
3026313
Suppress warnings in Gradle build
sbrannen Jun 18, 2020
d60c55c
Use computeIfAbsent in ResourceBundleMessageSource
chenqimiao May 14, 2020
edf25ce
Polish ResourceBundleMessageSourceTests
sbrannen Jun 18, 2020
bad81ce
Align DispatcherServlet defaults for Java and XML
mdeinum Jun 17, 2020
6615e9c
Support multi-value X-Forwarded-Prefix headers
bclozel Jun 18, 2020
6b355df
Revert "Upgrade to Kotlin 1.4 M2"
sdeleuze Jun 18, 2020
96b03c5
Revert "Upgrade to Kotlin 1.4 M2" for spring-r2dbc
sbrannen Jun 18, 2020
dc38010
Merge branch '5.2.x'
sbrannen Jun 18, 2020
1c75f95
Provide a flag to disable SpEL support
sdeleuze Jun 18, 2020
2d5f972
Deprecate superseded Object[] signatures in JdbcOperations/JdbcTemplate
jhoeller Jun 18, 2020
ce728a6
Update docs for PathPattern support in WebMvc
rstoyanchev Jun 18, 2020
1e501f2
Provide a flag to disable XML support
sdeleuze Jun 19, 2020
c418cef
Merge branch '5.2.x'
sbrannen Jun 19, 2020
e0e1c12
Merge branch '5.2.x'
bclozel Jun 19, 2020
3a653bd
Deprecate JCA CCI support
jhoeller Jun 19, 2020
34cb489
Update CI images to use ubuntu:bionic-20200526
bclozel Jun 19, 2020
7391f9b
Fix Reactor Core DirectProcessor deprecation
bclozel Jun 19, 2020
b1da893
MatchableHandlerMapping is backwards compatible
rstoyanchev Jun 19, 2020
78d1591
Merge branch '5.2.x'
rstoyanchev Jun 19, 2020
2d8b2fe
Avoid dependency on netty-common in DataBufferUtils
rstoyanchev Jun 20, 2020
63dff52
Disable and remove unsupported features from native images
sdeleuze Jun 19, 2020
2f0970b
Fix an AllEncompassingFormHttpMessageConverter regression
sdeleuze Jun 20, 2020
9d5881e
Suppress warnings, remove unused code, etc.
sbrannen Jun 20, 2020
ab0e651
Polish SerializationTestUtils, clean up warnings, etc.
sbrannen Jun 20, 2020
c6e2d1d
Upgrade JDK 15 CI image to JDK 15 build 28
sbrannen Jun 21, 2020
01fa923
Merge branch '5.2.x'
sbrannen Jun 21, 2020
ff9daa9
Adjust WebFlux behavior for @RequestPart List<T>
rstoyanchev Jun 20, 2020
883ad09
Add support for X-Forwarded-For and Forwarded for
Sep 6, 2019
d627f60
Update "Forwarded: for" contribution
rstoyanchev Jun 20, 2020
96bbec7
Restore use of tcpConfiguration method
rstoyanchev Jun 21, 2020
7cf1ccc
Use MonoProcessor instead of FluxIdentityProcessor
rstoyanchev Jun 21, 2020
ed648b7
Merge branch '5.2.x'
poutsma Jun 22, 2020
bf50332
Merge branch '5.2.x'
sbrannen Jun 22, 2020
53df8ca
Introduce unit tests for IntegerToEnumConverterFactory
Jun 20, 2020
b733474
Polish contribution
sbrannen Jun 22, 2020
eeb6c10
Polishing
sbrannen Jun 22, 2020
1f78ced
Merge branch '5.2.x'
bclozel Jun 22, 2020
6316a35
Reduce String creation in BeanPropertyRowMapper
mdeinum Jun 23, 2020
23aeba0
Fix typos in WebRequest.checkNotModified docs
kamilszymanski Apr 14, 2016
a678db3
Polish
izeye Oct 3, 2015
41b7686
Upgrade to XStream 1.4.12, HtmlUnit 2.41, Apache HttpClient 5.0.1
jhoeller Jun 23, 2020
b67de25
add @Override in class AnnotationBeanConfigurerAspect
Jun 18, 2020
97efacc
Merge branch '5.2.x'
jhoeller Jun 23, 2020
734f4a4
Replace of ReplayProcessor in RSocket tests
rstoyanchev Jun 22, 2020
837dfe2
Set PathPatternParser in RouterFunctionMapping
rstoyanchev Jun 23, 2020
eee0b76
Merge branch '5.2.x'
rstoyanchev Jun 23, 2020
8eedd9d
Use JDBC 4 API for connection validation
mdeinum Jun 23, 2020
56c6618
Avoid package cycle through dedicated ResourcePropertiesPersister
jhoeller Jun 23, 2020
d0209e5
Nullability refinements and related polishing
jhoeller Jun 23, 2020
f9331d9
Merge branch '5.2.x'
sbrannen Jun 23, 2020
1edc08f
Polishing
sbrannen Jun 23, 2020
0e83aaa
Fix hanging test
sbrannen Jun 23, 2020
22bf62d
Replace remaining use of deprecated Processors in tests
rstoyanchev Jun 23, 2020
4716e48
Upgrade to Reactor 2020.0.0-M1
rstoyanchev Jun 23, 2020
19fb0f1
Merge branch '5.2.x'
rstoyanchev Jun 23, 2020
7e71749
Merge branch '5.2.x'
jhoeller Jun 23, 2020
57f868f
Direct matches by URL path work again
rstoyanchev Jun 24, 2020
973ee9b
(Re)introduce DefaultMultipartMessageReader
poutsma May 28, 2020
51cc719
Remove UndertowDataBuffer
poutsma May 28, 2020
7517394
Polishing
sbrannen Jun 23, 2020
bc9b9bc
Replace cascading if statements with switch statement
WellsYuu Jun 24, 2020
b33d2fe
Clean up warnings in Gradle build, polishing, etc.
sbrannen Jun 24, 2020
a142d21
Use @SafeVarargs in Jackson builder and factory
marschall Jun 24, 2020
049f525
Suppress varargs warning
sbrannen Jun 24, 2020
3a06622
Include module names into alphabetical order
jhoeller Jun 24, 2020
b16f6fa
Shared static instance of DefaultDataBufferFactory
rstoyanchev Jun 24, 2020
115ea25
Fix typo
rstoyanchev Jun 24, 2020
ba5f4f5
Merge branch '5.2.x'
sbrannen Jun 26, 2020
43df06b
Replace anonymous inner classes with lambda expressions
WellsYuu Jun 26, 2020
df673e6
Polish contribution
sbrannen Jun 26, 2020
d599ec9
Merge branch '5.2.x'
sbrannen Jun 27, 2020
622ccc5
Merge branch '5.2.x'
sbrannen Jun 27, 2020
a924411
Check for valid IPv6 host in UriComponentsBuilder.fromUriString
sbrannen Jun 29, 2020
f7dd1e3
Merge pull request #1 from spring-projects/master
lifejwang11 Jun 30, 2020
3665355
fixed Overloaded @Bean method causes bean to be created twice and oth…
Jun 30, 2020
ddbeef8
新增作者信息
Jun 30, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 5 additions & 1 deletion README.md
@@ -1,4 +1,4 @@
# <img src="src/docs/asciidoc/images/spring-framework.png" width="80" height="80"> Spring Framework [![Build Status](https://build.spring.io/plugins/servlet/wittified/build-status/SPR-PUBM)](https://build.spring.io/browse/SPR)
# <img src="src/docs/spring-framework.png" width="80" height="80"> Spring Framework [![Build Status](https://ci.spring.io/api/v1/teams/spring-framework/pipelines/spring-framework-5.3.x/jobs/build/badge)](https://ci.spring.io/teams/spring-framework/pipelines/spring-framework-5.3.x?groups=Build")

This is the home of the Spring Framework: the foundation for all [Spring projects](https://spring.io/projects). Collectively the Spring Framework and the family of Spring projects are often referred to simply as "Spring".

Expand All @@ -17,6 +17,10 @@ For access to artifacts or a distribution zip, see the [Spring Framework Artifac
The Spring Framework maintains reference documentation ([published](https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/) and [source](src/docs/asciidoc)), Github [wiki pages](https://github.com/spring-projects/spring-framework/wiki), and an
[API reference](https://docs.spring.io/spring-framework/docs/current/javadoc-api/). There are also [guides and tutorials](https://spring.io/guides) across Spring projects.

## Micro-Benchmarks

See the [Micro-Benchmarks](https://github.com/spring-projects/spring-framework/wiki/Micro-Benchmarks) Wiki page.

## Build from Source

See the [Build from Source](https://github.com/spring-projects/spring-framework/wiki/Build-from-Source) Wiki page and the [CONTRIBUTING.md](CONTRIBUTING.md) file.
Expand Down
67 changes: 37 additions & 30 deletions build.gradle
@@ -1,18 +1,15 @@
plugins {
id 'io.spring.dependency-management' version '1.0.8.RELEASE' apply false
id 'io.spring.dependency-management' version '1.0.9.RELEASE' apply false
id 'org.jetbrains.kotlin.jvm' version '1.3.72' apply false
id 'org.jetbrains.dokka' version '0.10.1' apply false
id 'org.asciidoctor.jvm.convert' version '2.4.0'
id 'io.spring.gradle-enterprise-conventions' version '0.0.2'
id 'io.spring.nohttp' version '0.0.5.RELEASE'
id 'de.undercouch.download' version '4.0.0'
id 'com.gradle.build-scan' version '3.2'
id "com.jfrog.artifactory" version '4.12.0' apply false
id "io.freefair.aspectj" version '4.1.1' apply false
id "com.github.ben-manes.versions" version '0.24.0'
id 'de.undercouch.download' version '4.0.4'
id "io.freefair.aspectj" version '5.0.0' apply false
id "com.github.ben-manes.versions" version '0.28.0'
id "me.champeau.gradle.jmh" version "0.5.0" apply false
}

apply from: "$rootDir/gradle/build-scan-user-data.gradle"
ext {
moduleProjects = subprojects.findAll { it.name.startsWith("spring-") }
javaProjects = subprojects - project(":framework-bom")
Expand All @@ -26,13 +23,14 @@ configure(allprojects) { project ->

dependencyManagement {
imports {
mavenBom "com.fasterxml.jackson:jackson-bom:2.10.4"
mavenBom "com.fasterxml.jackson:jackson-bom:2.11.0"
mavenBom "io.netty:netty-bom:4.1.50.Final"
mavenBom "io.projectreactor:reactor-bom:Dysprosium-SR8"
mavenBom "io.projectreactor:reactor-bom:2020.0.0-M1"
mavenBom "io.r2dbc:r2dbc-bom:Arabba-SR5"
mavenBom "io.rsocket:rsocket-bom:1.0.1"
mavenBom "org.eclipse.jetty:jetty-bom:9.4.30.v20200611"
mavenBom "org.jetbrains.kotlin:kotlin-bom:1.3.72"
mavenBom "org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.3.5"
mavenBom "org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.3.7"
mavenBom "org.junit:junit-bom:5.6.2"
}
dependencies {
Expand All @@ -43,24 +41,28 @@ configure(allprojects) { project ->
entry 'log4j-jul'
}
dependency "org.slf4j:slf4j-api:1.7.30"
dependency("com.google.code.findbugs:findbugs:3.0.1") {
exclude group: "dom4j", name: "dom4j"
}
dependency "com.google.code.findbugs:jsr305:3.0.2"

dependencySet(group: 'org.aspectj', version: '1.9.5') {
entry 'aspectjrt'
entry 'aspectjtools'
entry 'aspectjweaver'
}
dependencySet(group: 'org.codehaus.groovy', version: '2.5.12') {
dependencySet(group: 'org.codehaus.groovy', version: '3.0.4') {
entry 'groovy'
entry 'groovy-jsr223'
entry 'groovy-templates'
entry 'groovy-templates' // requires findbugs for warning-free compilation
entry 'groovy-test'
entry 'groovy-xml'
}

dependency "io.reactivex:rxjava:1.3.8"
dependency "io.reactivex:rxjava-reactive-streams:1.2.1"
dependency "io.reactivex.rxjava2:rxjava:2.2.19"
dependency "io.reactivex.rxjava3:rxjava:3.0.4"
dependency "io.projectreactor.tools:blockhound:1.0.2.RELEASE"

dependency "com.caucho:hessian:4.0.62"
Expand All @@ -69,9 +71,9 @@ configure(allprojects) { project ->
exclude group: "stax", name: "stax-api"
}
dependency "com.google.code.gson:gson:2.8.6"
dependency "com.google.protobuf:protobuf-java-util:3.11.4"
dependency "com.google.protobuf:protobuf-java-util:3.12.1"
dependency "com.googlecode.protobuf-java-format:protobuf-java-format:1.4"
dependency("com.thoughtworks.xstream:xstream:1.4.11.1") {
dependency("com.thoughtworks.xstream:xstream:1.4.12") {
exclude group: "xpp3", name: "xpp3_min"
exclude group: "xmlpull", name: "xmlpull"
}
Expand All @@ -89,7 +91,7 @@ configure(allprojects) { project ->
dependency "com.h2database:h2:1.4.200"
dependency "com.github.ben-manes.caffeine:caffeine:2.8.4"
dependency "com.github.librepdf:openpdf:1.3.19"
dependency "com.rometools:rome:1.12.2"
dependency "com.rometools:rome:1.13.1"
dependency "commons-io:commons-io:2.5"
dependency "io.vavr:vavr:0.10.3"
dependency "net.sf.jopt-simple:jopt-simple:5.0.4"
Expand Down Expand Up @@ -131,7 +133,7 @@ configure(allprojects) { project ->
entry 'tomcat-embed-core'
entry 'tomcat-embed-websocket'
}
dependencySet(group: 'io.undertow', version: '2.0.30.Final') {
dependencySet(group: 'io.undertow', version: '2.1.3.Final') {
entry 'undertow-core'
entry('undertow-websockets-jsr') {
exclude group: "org.jboss.spec.javax.websocket", name: "jboss-websocket-api_1.1_spec"
Expand All @@ -152,6 +154,8 @@ configure(allprojects) { project ->
dependency("org.apache.httpcomponents:httpasyncclient:4.1.4") {
exclude group: "commons-logging", name: "commons-logging"
}
dependency 'org.apache.httpcomponents.client5:httpclient5:5.0.1'
dependency 'org.apache.httpcomponents.core5:httpcore5-reactive:5.0.1'
dependency "org.eclipse.jetty:jetty-reactive-httpclient:1.1.3"

dependency "org.jruby:jruby:9.2.11.1"
Expand All @@ -161,22 +165,23 @@ configure(allprojects) { project ->
dependency "commons-fileupload:commons-fileupload:1.4"
dependency "org.synchronoss.cloud:nio-multipart-parser:1.1.0"

dependency("dom4j:dom4j:1.6.1") {
exclude group: "xml-apis", name: "xml-apis"
dependency("org.dom4j:dom4j:2.1.3") {
exclude group: "jaxen", name: "jaxen"
exclude group: "net.java.dev.msv", name: "xsdlib"
exclude group: "pull-parser", name: "pull-parser"
exclude group: "xpp3", name: "xpp3"
}
dependency("jaxen:jaxen:1.1.1") {
exclude group: "xml-apis", name: "xml-apis"
exclude group: "xom", name: "xom"
exclude group: "xerces", name: "xercesImpl"
dependency("jaxen:jaxen:1.2.0") {
exclude group: "dom4j", name: "dom4j"
}

dependency("junit:junit:4.12") {
dependency("junit:junit:4.13") {
exclude group: "org.hamcrest", name: "hamcrest-core"
}
dependency("de.bechte.junit:junit-hierarchicalcontextrunner:4.12.1") {
exclude group: "junit", name: "junit"
}
dependency "org.testng:testng:6.14.3"
dependency "org.testng:testng:7.1.0"
dependency "org.hamcrest:hamcrest:2.1"
dependency "org.awaitility:awaitility:3.1.6"
dependency "org.assertj:assertj-core:3.16.1"
Expand All @@ -194,10 +199,10 @@ configure(allprojects) { project ->
}
dependency "io.mockk:mockk:1.10.0"

dependency("net.sourceforge.htmlunit:htmlunit:2.40.0") {
dependency("net.sourceforge.htmlunit:htmlunit:2.41.0") {
exclude group: "commons-logging", name: "commons-logging"
}
dependency("org.seleniumhq.selenium:htmlunit-driver:2.40.0") {
dependency("org.seleniumhq.selenium:htmlunit-driver:2.41.0") {
exclude group: "commons-logging", name: "commons-logging"
}
dependency("org.seleniumhq.selenium:selenium-java:3.141.59") {
Expand All @@ -206,6 +211,7 @@ configure(allprojects) { project ->
}
dependency "org.skyscreamer:jsonassert:1.5.0"
dependency "com.jayway.jsonpath:json-path:2.4.0"
dependency "org.bouncycastle:bcpkix-jdk15on:1.65"

dependencySet(group: 'org.apache.tiles', version: '3.0.8') {
entry 'tiles-api'
Expand All @@ -225,7 +231,7 @@ configure(allprojects) { project ->
dependency "com.ibm.websphere:uow:6.0.2.17"
dependency "com.jamonapi:jamon:2.82"
dependency "joda-time:joda-time:2.10.6"
dependency "org.eclipse.persistence:org.eclipse.persistence.jpa:2.7.6"
dependency "org.eclipse.persistence:org.eclipse.persistence.jpa:2.7.7"
dependency "org.javamoney:moneta:1.3"

dependency "com.sun.activation:javax.activation:1.2.0"
Expand Down Expand Up @@ -279,6 +285,7 @@ configure(allprojects) { project ->
repositories {
mavenCentral()
maven { url "https://repo.spring.io/libs-spring-framework-build" }
maven { url "https://repo.spring.io/milestone" } // Reactor
}
}
configurations.all {
Expand Down Expand Up @@ -326,7 +333,7 @@ configure([rootProject] + javaProjects) { project ->

checkstyle {
toolVersion = "8.33"
configDir = rootProject.file("src/checkstyle")
configDirectory.set(rootProject.file("src/checkstyle"))
}

dependencies {
Expand Down Expand Up @@ -365,7 +372,7 @@ configure([rootProject] + javaProjects) { project ->
"https://fasterxml.github.io/jackson-databind/javadoc/2.10/",
"https://fasterxml.github.io/jackson-dataformat-xml/javadoc/2.10/",
"https://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/",
"https://junit.org/junit4/javadoc/4.12/",
"https://junit.org/junit4/javadoc/4.13/",
"https://junit.org/junit5/docs/5.6.2/api/"
] as String[]
}
Expand Down
1 change: 0 additions & 1 deletion buildSrc/settings.gradle
@@ -1 +0,0 @@
apply from: "../gradle/build-cache-settings.gradle"
51 changes: 51 additions & 0 deletions ci/README.adoc
@@ -0,0 +1,51 @@
== Spring Framework Concourse pipeline

The Spring Framework is using https://concourse-ci.org/[Concourse] for its CI build and other automated tasks.
The Spring team has a dedicated Concourse instance available at https://ci.spring.io.

=== Setting up your development environment

If you're part of the Spring Framework project on GitHub, you can get access to CI management features.
First, you need to go to https://ci.spring.io and install the client CLI for your platform (see bottom right of the screen).

You can then login with the instance using:

[source]
----
$ fly -t spring login -n spring-framework -c https://ci.spring.io
----

Once logged in, you should get something like:

[source]
----
$ fly ts
name url team expiry
spring https://ci.spring.io spring-framework Wed, 25 Mar 2020 17:45:26 UTC
----

=== Pipeline configuration and structure
The build pipelines are described in `pipeline.yml` file.
This file is listing Concourse resources, i.e. build inputs and outputs such as container images, artifact repositories, source repositories, notification services, etc.
It also describes jobs (a job is a sequence of inputs, tasks and outputs); jobs are organized by groups.

The `pipeline.yml` definition contains `((parameters))` which are loaded from the `parameters.yml` file or from our https://docs.cloudfoundry.org/credhub/[credhub instance].

You'll find in this folder the following resources:
* `pipeline.yml` the build pipeline
* `parameters.yml` the build parameters used for the pipeline
* `images/` holds the container images definitions used in this pipeline
* `scripts/` holds the build scripts that ship within the CI container images
* `tasks` contains the task definitions used in the main `pipeline.yml`

=== Updating the build pipeline

Updating files on the repository is not enough to update the build pipeline, as changes need to be applied.
The pipeline can be deployed using the following command:

[source]
----
$ fly -t spring set-pipeline -p spring-framework-5.3.x -c ci/pipeline.yml -l ci/parameters.yml
----

NOTE: This assumes that you have credhub integration configured with the appropriate secrets.
21 changes: 21 additions & 0 deletions ci/images/README.adoc
@@ -0,0 +1,21 @@
== CI Images

These images are used by CI to run the actual builds.

To build the image locally run the following from this directory:

----
$ docker build --no-cache -f <image-folder>/Dockerfile .
----

For example

----
$ docker build --no-cache -f spring-framework-ci-image/Dockerfile .
----

To test run:

----
$ docker run -it --entrypoint /bin/bash <SHA>
----
20 changes: 20 additions & 0 deletions ci/images/get-jdk-url.sh
@@ -0,0 +1,20 @@
#!/bin/bash
set -e

case "$1" in
java8)
echo "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jdk_x64_linux_hotspot_8u252b09.tar.gz"
;;
java11)
echo "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_x64_linux_hotspot_11.0.7_10.tar.gz"
;;
java14)
echo "https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.1%2B7/OpenJDK14U-jdk_x64_linux_hotspot_14.0.1_7.tar.gz"
;;
java15)
echo "https://download.java.net/java/early_access/jdk15/28/GPL/openjdk-15-ea+28_linux-x64_bin.tar.gz"
;;
*)
echo $"Unknown java version"
exit 1
esac
32 changes: 32 additions & 0 deletions ci/images/setup.sh
@@ -0,0 +1,32 @@
#!/bin/bash
set -ex

###########################################################
# UTILS
###########################################################

apt-get update
apt-get install --no-install-recommends -y ca-certificates net-tools libxml2-utils git curl libudev1 libxml2-utils iptables iproute2 jq fontconfig
rm -rf /var/lib/apt/lists/*

curl https://raw.githubusercontent.com/spring-io/concourse-java-scripts/v0.0.3/concourse-java.sh > /opt/concourse-java.sh

curl --output /opt/concourse-release-scripts.jar https://repo.spring.io/release/io/spring/concourse/releasescripts/concourse-release-scripts/0.1.0/concourse-release-scripts-0.1.0.jar

###########################################################
# JAVA
###########################################################
JDK_URL=$( ./get-jdk-url.sh $1 )

mkdir -p /opt/openjdk
cd /opt/openjdk
curl -L ${JDK_URL} | tar zx --strip-components=1
test -f /opt/openjdk/bin/java
test -f /opt/openjdk/bin/javac

###########################################################
# GRADLE ENTERPRISE
###########################################################
cd /
mkdir ~/.gradle
echo 'systemProp.user.name=concourse' > ~/.gradle/gradle.properties
8 changes: 8 additions & 0 deletions ci/images/spring-framework-ci-image/Dockerfile
@@ -0,0 +1,8 @@
FROM ubuntu:bionic-20200526

ADD setup.sh /setup.sh
ADD get-jdk-url.sh /get-jdk-url.sh
RUN ./setup.sh java8

ENV JAVA_HOME /opt/openjdk
ENV PATH $JAVA_HOME/bin:$PATH
8 changes: 8 additions & 0 deletions ci/images/spring-framework-jdk11-ci-image/Dockerfile
@@ -0,0 +1,8 @@
FROM ubuntu:bionic-20200526

ADD setup.sh /setup.sh
ADD get-jdk-url.sh /get-jdk-url.sh
RUN ./setup.sh java11

ENV JAVA_HOME /opt/openjdk
ENV PATH $JAVA_HOME/bin:$PATH
8 changes: 8 additions & 0 deletions ci/images/spring-framework-jdk14-ci-image/Dockerfile
@@ -0,0 +1,8 @@
FROM ubuntu:bionic-20200526

ADD setup.sh /setup.sh
ADD get-jdk-url.sh /get-jdk-url.sh
RUN ./setup.sh java14

ENV JAVA_HOME /opt/openjdk
ENV PATH $JAVA_HOME/bin:$PATH
8 changes: 8 additions & 0 deletions ci/images/spring-framework-jdk15-ci-image/Dockerfile
@@ -0,0 +1,8 @@
FROM ubuntu:bionic-20200526

ADD setup.sh /setup.sh
ADD get-jdk-url.sh /get-jdk-url.sh
RUN ./setup.sh java15

ENV JAVA_HOME /opt/openjdk
ENV PATH $JAVA_HOME/bin:$PATH
14 changes: 14 additions & 0 deletions ci/parameters.yml
@@ -0,0 +1,14 @@
email-server: "smtp.svc.pivotal.io"
email-from: "ci@spring.io"
email-to: ["spring-framework-dev@pivotal.io"]
github-repo: "https://github.com/spring-projects/spring-framework.git"
github-repo-name: "spring-projects/spring-framework"
docker-hub-organization: "springci"
artifactory-server: "https://repo.spring.io"
branch: "master"
build-name: "spring-framework"
pipeline-name: "spring-framework"
concourse-url: "https://ci.spring.io"
bintray-subject: "spring"
bintray-repo: "jars"
task-timeout: 1h00m