Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: spring-projects/spring-framework
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v5.2.13.RELEASE
Choose a base ref
...
head repository: spring-projects/spring-framework
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v5.2.14.RELEASE
Choose a head ref
Loading
Showing with 1,672 additions and 419 deletions.
  1. +2 −3 build.gradle
  2. +57 −0 ci/README.adoc
  3. +17 −0 ci/config/changelog-generator.yml
  4. +10 −0 ci/config/release-scripts.yml
  5. +21 −0 ci/images/README.adoc
  6. +8 −0 ci/images/ci-image-jdk11/Dockerfile
  7. +8 −0 ci/images/ci-image/Dockerfile
  8. +14 −0 ci/images/get-jdk-url.sh
  9. +35 −0 ci/images/setup.sh
  10. +13 −0 ci/parameters.yml
  11. +386 −0 ci/pipeline.yml
  12. +9 −0 ci/scripts/build-project.sh
  13. +8 −0 ci/scripts/check-project.sh
  14. +2 −0 ci/scripts/common.sh
  15. +12 −0 ci/scripts/generate-changelog.sh
  16. +18 −0 ci/scripts/promote-version.sh
  17. +50 −0 ci/scripts/stage-version.sh
  18. +8 −0 ci/scripts/sync-to-maven-central.sh
  19. +22 −0 ci/tasks/build-project.yml
  20. +22 −0 ci/tasks/check-project.yml
  21. +20 −0 ci/tasks/generate-changelog.yml
  22. +18 −0 ci/tasks/promote-version.yml
  23. +17 −0 ci/tasks/stage-version.yml
  24. +1 −1 gradle.properties
  25. +12 −3 gradle/publications.gradle
  26. +2 −2 spring-aop/src/main/java/org/springframework/aop/DynamicIntroductionAdvice.java
  27. +5 −2 spring-aop/src/main/java/org/springframework/aop/framework/autoproxy/AbstractAutoProxyCreator.java
  28. +5 −3 spring-beans/src/main/java/org/springframework/beans/AbstractNestablePropertyAccessor.java
  29. +11 −9 ...ng-beans/src/main/java/org/springframework/beans/factory/config/PlaceholderConfigurerSupport.java
  30. +3 −3 spring-beans/src/main/java/org/springframework/beans/factory/groovy/GroovyBeanDefinitionReader.java
  31. +11 −7 spring-beans/src/main/java/org/springframework/beans/propertyeditors/PathEditor.java
  32. +46 −8 spring-beans/src/test/java/org/springframework/beans/BeanWrapperAutoGrowingTests.java
  33. +41 −21 spring-beans/src/test/java/org/springframework/beans/propertyeditors/PathEditorTests.java
  34. +22 −12 ...context/src/main/java/org/springframework/context/annotation/ConfigurationClassPostProcessor.java
  35. +6 −1 spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassUtils.java
  36. +2 −2 spring-context/src/main/java/org/springframework/context/event/SourceFilteringListener.java
  37. +3 −3 spring-context/src/main/java/org/springframework/context/index/CandidateComponentsIndexLoader.java
  38. +3 −3 spring-context/src/main/java/org/springframework/context/support/AbstractApplicationContext.java
  39. +10 −7 spring-context/src/main/java/org/springframework/format/annotation/DateTimeFormat.java
  40. +2 −2 spring-core/spring-core.gradle
  41. +15 −8 spring-core/src/main/java/org/springframework/core/io/ClassPathResource.java
  42. +1 −1 spring-core/src/main/java/org/springframework/objenesis/package-info.java
  43. +11 −6 spring-core/src/main/java/org/springframework/util/ReflectionUtils.java
  44. +3 −3 spring-core/src/main/java/org/springframework/util/StringUtils.java
  45. +5 −8 spring-jms/src/main/java/org/springframework/jms/listener/DefaultMessageListenerContainer.java
  46. +7 −8 spring-jms/src/test/java/org/springframework/jms/config/JmsNamespaceHandlerTests.java
  47. +4 −3 spring-jms/src/test/java/org/springframework/jms/listener/SimpleMessageListenerContainerTests.java
  48. +3 −3 ...aging/src/test/java/org/springframework/messaging/simp/stomp/ReactorNettyTcpStompClientTests.java
  49. +7 −8 ...java/org/springframework/messaging/simp/stomp/StompBrokerRelayMessageHandlerIntegrationTests.java
  50. +2 −3 .../test/java/org/springframework/orm/jpa/AbstractContainerEntityManagerFactoryIntegrationTests.java
  51. +20 −1 spring-test/src/main/java/org/springframework/mock/web/MockCookie.java
  52. +5 −1 spring-test/src/main/java/org/springframework/mock/web/MockHttpServletResponse.java
  53. +22 −3 ...in/java/org/springframework/test/context/junit/jupiter/AbstractExpressionEvaluatingCondition.java
  54. +2 −2 spring-test/src/main/java/org/springframework/test/context/junit/jupiter/SpringExtension.java
  55. +11 −15 spring-test/src/main/java/org/springframework/test/web/reactive/server/StatusAssertions.java
  56. +42 −8 spring-test/src/test/java/org/springframework/mock/web/MockHttpServletResponseTests.java
  57. +107 −0 ...rc/test/java/org/springframework/test/context/junit/jupiter/DisabledIfAndDirtiesContextTests.java
  58. +107 −0 ...src/test/java/org/springframework/test/context/junit/jupiter/EnabledIfAndDirtiesContextTests.java
  59. +14 −9 spring-test/src/test/java/org/springframework/test/web/reactive/server/StatusAssertionTests.java
  60. +1 −0 spring-test/src/test/resources/log4j2-test.xml
  61. +8 −8 spring-tx/src/main/java/org/springframework/transaction/support/TransactionSynchronizationUtils.java
  62. +4 −2 spring-web/src/main/java/org/springframework/http/MediaTypeFactory.java
  63. +14 −12 spring-web/src/main/java/org/springframework/http/ResponseEntity.java
  64. +3 −2 spring-web/src/main/java/org/springframework/web/method/HandlerTypePredicate.java
  65. +5 −1 ...eb/src/testFixtures/java/org/springframework/web/testfixture/servlet/MockHttpServletResponse.java
  66. +16 −5 spring-webflux/src/main/java/org/springframework/web/reactive/resource/ResourceUrlProvider.java
  67. +2 −2 .../java/org/springframework/web/reactive/result/method/annotation/RequestMappingHandlerMapping.java
  68. +38 −7 spring-webflux/src/test/java/org/springframework/web/reactive/resource/ResourceUrlProviderTests.java
  69. +32 −1 .../springframework/web/reactive/result/method/annotation/CrossOriginAnnotationIntegrationTests.java
  70. +2 −2 spring-webmvc/src/main/java/org/springframework/web/servlet/handler/MatchableHandlerMapping.java
  71. +2 −2 spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/AcceptHeaderLocaleResolver.java
  72. +2 −2 .../src/main/java/org/springframework/web/servlet/mvc/method/annotation/MvcUriComponentsBuilder.java
  73. +4 −4 ...webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/RequestBodyAdvice.java
  74. +8 −9 ...src/main/java/org/springframework/web/servlet/mvc/method/annotation/RequestBodyAdviceAdapter.java
  75. +2 −2 ...main/java/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerMapping.java
  76. +16 −6 spring-webmvc/src/main/java/org/springframework/web/servlet/resource/ResourceUrlProvider.java
  77. +37 −2 ...-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/CrossOriginTests.java
  78. +42 −9 spring-webmvc/src/test/java/org/springframework/web/servlet/resource/ResourceUrlProviderTests.java
  79. +4 −4 src/docs/asciidoc/core/core-appendix.adoc
  80. +78 −153 src/docs/asciidoc/core/core-beans.adoc
  81. +2 −2 src/docs/asciidoc/core/core-validation.adoc
5 changes: 2 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -10,7 +10,6 @@ plugins {
id "io.freefair.aspectj" version '4.1.6' apply false
id "com.github.ben-manes.versions" version '0.28.0'
id 'com.gradle.build-scan' version '3.2'
id "com.jfrog.artifactory" version '4.12.0' apply false
}

apply from: "$rootDir/gradle/build-scan-user-data.gradle"
@@ -29,8 +28,8 @@ configure(allprojects) { project ->
imports {
mavenBom "com.fasterxml.jackson:jackson-bom:2.10.5"
mavenBom "io.netty:netty-bom:4.1.51.Final"
mavenBom "io.projectreactor:reactor-bom:Dysprosium-SR17"
mavenBom "io.rsocket:rsocket-bom:1.0.3"
mavenBom "io.projectreactor:reactor-bom:Dysprosium-SR19"
mavenBom "io.rsocket:rsocket-bom:1.0.4"
mavenBom "org.eclipse.jetty:jetty-bom:9.4.31.v20200723"
mavenBom "org.jetbrains.kotlin:kotlin-bom:1.3.72"
mavenBom "org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.3.5"
57 changes: 57 additions & 0 deletions ci/README.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
== Spring Framework Concourse pipeline

The Spring Framework uses 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 with a build pipeline
for https://ci.spring.io/teams/spring-framework/pipelines/spring-framework-5.2.x[Spring Framework 5.2.x].

=== 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.2.x -c ci/pipeline.yml -l ci/parameters.yml
----

NOTE: This assumes that you have credhub integration configured with the appropriate secrets.
17 changes: 17 additions & 0 deletions ci/config/changelog-generator.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
changelog:
repository: spring-projects/spring-framework
sections:
- title: ":star: New Features"
labels:
- "type: enhancement"
- title: ":beetle: Bug Fixes"
labels:
- "type: bug"
- "type: regression"
- title: ":notebook_with_decorative_cover: Documentation"
labels:
- "type: documentation"
- title: ":hammer: Dependency Upgrades"
sort: "title"
labels:
- "type: dependency-upgrade"
10 changes: 10 additions & 0 deletions ci/config/release-scripts.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
logging:
level:
io.spring.concourse: DEBUG
spring:
main:
banner-mode: off
sonatype:
exclude:
- 'build-info\.json'
- '.*\.zip'
21 changes: 21 additions & 0 deletions ci/images/README.adoc
Original file line number Diff line number Diff line change
@@ -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>
----
8 changes: 8 additions & 0 deletions ci/images/ci-image-jdk11/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
FROM ubuntu:focal-20210119

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/ci-image/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
FROM ubuntu:focal-20210119

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
14 changes: 14 additions & 0 deletions ci/images/get-jdk-url.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/bash
set -e

case "$1" in
java8)
echo "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u282-b08/OpenJDK8U-jdk_x64_linux_hotspot_8u282b08.tar.gz"
;;
java11)
echo "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.10%2B9/OpenJDK11U-jdk_x64_linux_hotspot_11.0.10_9.tar.gz"
;;
*)
echo $"Unknown java version"
exit 1
esac
35 changes: 35 additions & 0 deletions ci/images/setup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#!/bin/bash
set -ex

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

export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get install --no-install-recommends -y tzdata ca-certificates net-tools libxml2-utils git curl libudev1 libxml2-utils iptables iproute2 jq fontconfig
ln -fs /usr/share/zoneinfo/UTC /etc/localtime
dpkg-reconfigure --frontend noninteractive tzdata
rm -rf /var/lib/apt/lists/*

curl https://raw.githubusercontent.com/spring-io/concourse-java-scripts/v0.0.4/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.3.2/concourse-release-scripts-0.3.2.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
13 changes: 13 additions & 0 deletions ci/parameters.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
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: "5.2.x"
milestone: "5.2.x"
build-name: "spring-framework"
pipeline-name: "spring-framework"
concourse-url: "https://ci.spring.io"
task-timeout: 1h00m
Loading