Compare commits

..

1 Commits

Author SHA1 Message Date
Spring Builds da19cb342d Release v6.0.7 2023-03-20 09:37:53 +00:00
522 changed files with 4229 additions and 5875 deletions
+9 -9
View File
@@ -1,16 +1,16 @@
plugins {
id 'io.spring.nohttp' version '0.0.11'
id 'io.freefair.aspectj' version '8.0.1' apply false
id 'io.freefair.aspectj' version '6.5.0.3' apply false
// kotlinVersion is managed in gradle.properties
id 'org.jetbrains.kotlin.plugin.serialization' version "${kotlinVersion}" apply false
id 'org.jetbrains.dokka' version '1.8.10'
id 'org.jetbrains.dokka' version '1.7.20'
id 'org.asciidoctor.jvm.convert' version '3.3.2' apply false
id 'org.asciidoctor.jvm.pdf' version '3.3.2' apply false
id 'org.unbroken-dome.xjc' version '2.0.0' apply false
id 'com.github.ben-manes.versions' version '0.46.0'
id 'com.github.johnrengelman.shadow' version '8.1.1' apply false
id 'de.undercouch.download' version '5.4.0'
id 'me.champeau.jmh' version '0.7.0' apply false
id 'com.github.ben-manes.versions' version '0.42.0'
id 'com.github.johnrengelman.shadow' version '7.1.2' apply false
id 'de.undercouch.download' version '5.1.0'
id 'me.champeau.jmh' version '0.6.8' apply false
}
ext {
@@ -78,7 +78,7 @@ configure([rootProject] + javaProjects) { project ->
}
checkstyle {
toolVersion = "10.9.3"
toolVersion = "10.9.1"
configDirectory.set(rootProject.file("src/checkstyle"))
}
@@ -105,11 +105,11 @@ configure([rootProject] + javaProjects) { project ->
testRuntimeOnly("org.junit.platform:junit-platform-suite-engine")
testRuntimeOnly("org.apache.logging.log4j:log4j-core")
testRuntimeOnly("org.apache.logging.log4j:log4j-jul")
testRuntimeOnly("org.apache.logging.log4j:log4j-slf4j2-impl")
testRuntimeOnly("org.apache.logging.log4j:log4j-slf4j-impl")
// JSR-305 only used for non-required meta-annotations
compileOnly("com.google.code.findbugs:jsr305")
testCompileOnly("com.google.code.findbugs:jsr305")
checkstyle("io.spring.javaformat:spring-javaformat-checkstyle:0.0.38")
checkstyle("io.spring.javaformat:spring-javaformat-checkstyle:0.0.31")
}
ext.javadocLinks = [
@@ -26,8 +26,8 @@ import org.gradle.testretry.TestRetryTaskExtension;
* Conventions that are applied in the presence of the {@link JavaBasePlugin}. When the
* plugin is applied:
* <ul>
* <li>The {@link TestRetryPlugin Test Retry} plugin is applied so that flaky tests
* are retried 3 times when running on the CI server.
* <li>The {@link TestRetryPlugin Test Retry} plugins is applied so that flaky tests
* are retried 3 times when running on the CI.
* </ul>
*
* @author Brian Clozel
@@ -41,7 +41,7 @@ class TestConventions {
private void configureTestConventions(Project project) {
project.getTasks().withType(Test.class,
test -> project.getPlugins().withType(TestRetryPlugin.class, testRetryPlugin -> {
(test) -> project.getPlugins().withType(TestRetryPlugin.class, (testRetryPlugin) -> {
TestRetryTaskExtension testRetry = test.getExtensions().getByType(TestRetryTaskExtension.class);
testRetry.getFailOnPassedAfterRetry().set(true);
testRetry.getMaxRetries().set(isCi() ? 3 : 0);
+1 -1
View File
@@ -6,6 +6,6 @@ RUN ./setup.sh
ENV JAVA_HOME /opt/openjdk/java17
ENV JDK17 /opt/openjdk/java17
ENV JDK20 /opt/openjdk/java20
ENV JDK19 /opt/openjdk/java19
ENV PATH $JAVA_HOME/bin:$PATH
+2 -2
View File
@@ -5,8 +5,8 @@ case "$1" in
java17)
echo "https://github.com/bell-sw/Liberica/releases/download/17.0.6+10/bellsoft-jdk17.0.6+10-linux-amd64.tar.gz"
;;
java20)
echo "https://github.com/bell-sw/Liberica/releases/download/20%2B37/bellsoft-jdk20+37-linux-amd64.tar.gz"
java19)
echo "https://github.com/bell-sw/Liberica/releases/download/19.0.2+9/bellsoft-jdk19.0.2+9-linux-amd64.tar.gz"
;;
*)
echo $"Unknown java version"
+1 -1
View File
@@ -20,7 +20,7 @@ curl https://raw.githubusercontent.com/spring-io/concourse-java-scripts/v0.0.4/c
mkdir -p /opt/openjdk
pushd /opt/openjdk > /dev/null
for jdk in java17 java20
for jdk in java17 java19
do
JDK_URL=$( /get-jdk-url.sh $jdk )
mkdir $jdk
+8 -8
View File
@@ -127,14 +127,14 @@ resources:
access_token: ((github-ci-status-token))
branch: ((branch))
context: build
- name: repo-status-jdk20-build
- name: repo-status-jdk19-build
type: github-status-resource
icon: eye-check-outline
source:
repository: ((github-repo-name))
access_token: ((github-ci-status-token))
branch: ((branch))
context: jdk20-build
context: jdk19-build
- name: slack-alert
type: slack-notification
icon: slack
@@ -231,7 +231,7 @@ jobs:
"zip.type": "schema"
get_params:
threads: 8
- name: jdk20-build
- name: jdk19-build
serial: true
public: true
plan:
@@ -239,7 +239,7 @@ jobs:
- get: git-repo
- get: every-morning
trigger: true
- put: repo-status-jdk20-build
- put: repo-status-jdk19-build
params: { state: "pending", commit: "git-repo" }
- do:
- task: check-project
@@ -248,16 +248,16 @@ jobs:
privileged: true
timeout: ((task-timeout))
params:
TEST_TOOLCHAIN: 20
TEST_TOOLCHAIN: 19
<<: *build-project-task-params
on_failure:
do:
- put: repo-status-jdk20-build
- put: repo-status-jdk19-build
params: { state: "failure", commit: "git-repo" }
- put: slack-alert
params:
<<: *slack-fail-params
- put: repo-status-jdk20-build
- put: repo-status-jdk19-build
params: { state: "success", commit: "git-repo" }
- name: build-pull-requests
serial: true
@@ -441,7 +441,7 @@ jobs:
groups:
- name: "builds"
jobs: ["build", "jdk20-build"]
jobs: ["build", "jdk19-build"]
- name: "releases"
jobs: ["stage-milestone", "stage-rc", "stage-release", "promote-milestone", "promote-rc", "promote-release", "create-github-release"]
- name: "ci-images"
+1 -1
View File
@@ -4,6 +4,6 @@ set -e
source $(dirname $0)/common.sh
pushd git-repo > /dev/null
./gradlew -Dorg.gradle.internal.launcher.welcomeMessageEnabled=false -Porg.gradle.java.installations.fromEnv=JDK17,JDK20 \
./gradlew -Dorg.gradle.internal.launcher.welcomeMessageEnabled=false -Porg.gradle.java.installations.fromEnv=JDK17,JDK19 \
-PmainToolchain=${MAIN_TOOLCHAIN} -PtestToolchain=${TEST_TOOLCHAIN} --no-daemon --max-workers=4 check
popd > /dev/null
@@ -1300,7 +1300,7 @@ listing shows our custom `BeanDefinitionParser` implementation:
}
private static void parseChildComponents(List<Element> childElements, BeanDefinitionBuilder factory) {
ManagedList<BeanDefinition> children = new ManagedList<>(childElements.size());
ManagedList<BeanDefinition> children = new ManagedList<BeanDefinition>(childElements.size());
for (Element element : childElements) {
children.add(parseComponentElement(element));
}
@@ -7189,7 +7189,7 @@ You can add the following dependency to your file pom.xml:
<dependency>
<groupId>jakarta.inject</groupId>
<artifactId>jakarta.inject-api</artifactId>
<version>2.0.0</version>
<version>1</version>
</dependency>
----
=====
@@ -293,7 +293,7 @@ being placed in it. The following example shows how to do so:
.Java
----
class Simple {
public List<Boolean> booleanList = new ArrayList<>();
public List<Boolean> booleanList = new ArrayList<Boolean>();
}
Simple simple = new Simple();
@@ -1478,7 +1478,7 @@ show how to use the `#this` and `#root` variables:
.Java
----
// create an array of integers
List<Integer> primes = new ArrayList<>();
List<Integer> primes = new ArrayList<Integer>();
primes.addAll(Arrays.asList(2,3,5,7,11,13,17));
// create parser and set variable 'primes' as the array of integers
@@ -2122,7 +2122,7 @@ This section lists the classes used in the examples throughout this chapter.
public static String Advisors = "advisors";
public static String President = "president";
private List<Inventor> members = new ArrayList<>();
private List<Inventor> members = new ArrayList<Inventor>();
private Map officers = new HashMap();
public List getMembers() {
@@ -1028,30 +1028,12 @@ the call stack and makes a determination whether to mark the transaction for rol
In its default configuration, the Spring Framework's transaction infrastructure code
marks a transaction for rollback only in the case of runtime, unchecked exceptions.
That is, when the thrown exception is an instance or subclass of `RuntimeException`.
(`Error` instances also, by default, result in a rollback).
(`Error` instances also, by default, result in a rollback). Checked exceptions that are
thrown from a transactional method do not result in rollback in the default
configuration.
As of Spring Framework 5.2, the default configuration also provides support for
Vavr's `Try` method to trigger transaction rollbacks when it returns a 'Failure'.
This allows you to handle functional-style errors using Try and have the transaction
automatically rolled back in case of a failure. For more information on Vavr's Try,
refer to the [official Vavr documentation](https://www.vavr.io/vavr-docs/#_try).
Here's an example of how to use Vavr's Try with a transactional method:
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
.Java
----
@Transactional
public Try<String> myTransactionalMethod() {
// If myDataAccessOperation throws an exception, it will be caught by the
// Try instance created with Try.of() and wrapped inside the Failure class
// which can be checked using the isFailure() method on the Try instance.
return Try.of(delegate::myDataAccessOperation);
}
----
Checked exceptions that are thrown from a transactional method do not result in a rollback
in the default configuration. You can configure exactly which `Exception` types mark a
transaction for rollback, including checked exceptions by specifying _rollback rules_.
You can configure exactly which `Exception` types mark a transaction for rollback,
including checked exceptions by specifying _rollback rules_.
.Rollback rules
[[transaction-declarative-rollback-rules]]
@@ -4546,7 +4528,7 @@ JDBC `?` placeholders:
}
public int[] batchUpdate(final List<Actor> actors) {
List<Object[]> batch = new ArrayList<>();
List<Object[]> batch = new ArrayList<Object[]>();
for (Actor actor : actors) {
Object[] values = new Object[] {
actor.getFirstName(), actor.getLastName(), actor.getId()};
@@ -4710,7 +4692,7 @@ example uses only one configuration method (we show examples of multiple methods
}
public void add(Actor actor) {
Map<String, Object> parameters = new HashMap<>(3);
Map<String, Object> parameters = new HashMap<String, Object>(3);
parameters.put("id", actor.getId());
parameters.put("first_name", actor.getFirstName());
parameters.put("last_name", actor.getLastName());
@@ -4768,7 +4750,7 @@ listing shows how it works:
}
public void add(Actor actor) {
Map<String, Object> parameters = new HashMap<>(2);
Map<String, Object> parameters = new HashMap<String, Object>(2);
parameters.put("first_name", actor.getFirstName());
parameters.put("last_name", actor.getLastName());
Number newId = insertActor.executeAndReturnKey(parameters);
@@ -4828,7 +4810,7 @@ You can limit the columns for an insert by specifying a list of column names wit
}
public void add(Actor actor) {
Map<String, Object> parameters = new HashMap<>(2);
Map<String, Object> parameters = new HashMap<String, Object>(2);
parameters.put("first_name", actor.getFirstName());
parameters.put("last_name", actor.getLastName());
Number newId = insertActor.executeAndReturnKey(parameters);
+1 -1
View File
@@ -13,7 +13,7 @@ Spring MVC Test, WebTestClient.
JDBC, R2DBC, O/R Mapping, XML Marshalling.
<<web.adoc#spring-web, Web Servlet>> :: Spring MVC, WebSocket, SockJS,
STOMP Messaging.
<<web-reactive.adoc#spring-web-reactive, Web Reactive>> :: Spring WebFlux, WebClient,
<<web-reactive.adoc#spring-webflux, Web Reactive>> :: Spring WebFlux, WebClient,
WebSocket, RSocket.
<<integration.adoc#spring-integration, Integration>> :: REST Clients, JMS, JCA, JMX,
Email, Tasks, Scheduling, Caching, Observability.
@@ -1655,7 +1655,7 @@ content types that a controller method produces, as the following example shows:
----
@GetMapping("/pets/{petId}", produces = ["application/json"])
@ResponseBody
fun getPet(@PathVariable petId: String): Pet {
fun getPet(@PathVariable String petId): Pet {
// ...
}
----
@@ -1704,7 +1704,7 @@ You can also use the same with request header conditions, as the following examp
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
.Java
----
@GetMapping(path = "/pets/{petId}", headers = "myHeader=myValue") // <1>
@GetMapping(path = "/pets", headers = "myHeader=myValue") // <1>
public void findPet(@PathVariable String petId) {
// ...
}
@@ -1714,7 +1714,7 @@ You can also use the same with request header conditions, as the following examp
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
.Kotlin
----
@GetMapping("/pets/{petId}", headers = ["myHeader=myValue"]) // <1>
@GetMapping("/pets", headers = ["myHeader=myValue"]) // <1>
fun findPet(@PathVariable petId: String) {
// ...
}
@@ -743,7 +743,7 @@ or to render a JSON response, as the following example shows:
@RequestMapping(path = "/error")
public Map<String, Object> handle(HttpServletRequest request) {
Map<String, Object> map = new HashMap<>();
Map<String, Object> map = new HashMap<String, Object>();
map.put("status", request.getAttribute("jakarta.servlet.error.status_code"));
map.put("reason", request.getAttribute("jakarta.servlet.error.message"));
return map;
@@ -1903,7 +1903,7 @@ You can also use the same with request header conditions, as the following examp
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
.Java
----
@GetMapping(path = "/pets/{petId}", headers = "myHeader=myValue") // <1>
@GetMapping(path = "/pets", headers = "myHeader=myValue") // <1>
public void findPet(@PathVariable String petId) {
// ...
}
@@ -1913,7 +1913,7 @@ You can also use the same with request header conditions, as the following examp
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
.Kotlin
----
@GetMapping("/pets/{petId}", headers = ["myHeader=myValue"]) // <1>
@GetMapping("/pets", headers = ["myHeader=myValue"]) // <1>
fun findPet(@PathVariable petId: String) {
// ...
}
@@ -4393,7 +4393,7 @@ return value with `DeferredResult`, as the following example shows:
@GetMapping("/quotes")
@ResponseBody
public DeferredResult<String> quotes() {
DeferredResult<String> deferredResult = new DeferredResult<>();
DeferredResult<String> deferredResult = new DeferredResult<String>();
// Save the deferredResult somewhere..
return deferredResult;
}
+43 -43
View File
@@ -8,32 +8,32 @@ javaPlatform {
dependencies {
api(platform("com.fasterxml.jackson:jackson-bom:2.14.2"))
api(platform("io.micrometer:micrometer-bom:1.10.6"))
api(platform("io.netty:netty-bom:4.1.91.Final"))
api(platform("io.micrometer:micrometer-bom:1.10.4"))
api(platform("io.netty:netty-bom:4.1.90.Final"))
api(platform("io.netty:netty5-bom:5.0.0.Alpha5"))
api(platform("io.projectreactor:reactor-bom:2022.0.6"))
api(platform("io.projectreactor:reactor-bom:2022.0.5"))
api(platform("io.rsocket:rsocket-bom:1.1.3"))
api(platform("org.apache.groovy:groovy-bom:4.0.11"))
api(platform("org.apache.groovy:groovy-bom:4.0.8"))
api(platform("org.apache.logging.log4j:log4j-bom:2.20.0"))
api(platform("org.eclipse.jetty:jetty-bom:11.0.14"))
api(platform("org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4"))
api(platform("org.jetbrains.kotlinx:kotlinx-serialization-bom:1.4.0"))
api(platform("org.junit:junit-bom:5.9.2"))
api(platform("org.mockito:mockito-bom:5.3.0"))
api(platform("org.mockito:mockito-bom:5.2.0"))
constraints {
api("com.fasterxml:aalto-xml:1.3.2")
api("com.fasterxml:aalto-xml:1.3.1")
api("com.fasterxml.woodstox:woodstox-core:6.5.0")
api("com.github.ben-manes.caffeine:caffeine:3.1.5")
api("com.github.ben-manes.caffeine:caffeine:3.1.2")
api("com.github.librepdf:openpdf:1.3.30")
api("com.google.code.findbugs:findbugs:3.0.1")
api("com.google.code.findbugs:jsr305:3.0.2")
api("com.google.code.gson:gson:2.10.1")
api("com.google.code.gson:gson:2.10")
api("com.google.protobuf:protobuf-java-util:3.21.12")
api("com.googlecode.protobuf-java-format:protobuf-java-format:1.4")
api("com.h2database:h2:2.1.214")
api("com.jayway.jsonpath:json-path:2.8.0")
api("com.rometools:rome:1.19.0")
api("com.jayway.jsonpath:json-path:2.7.0")
api("com.rometools:rome:1.18.0")
api("com.squareup.okhttp3:mockwebserver:3.14.9")
api("com.squareup.okhttp3:okhttp:3.14.9")
api("com.sun.activation:jakarta.activation:2.0.1")
@@ -41,31 +41,31 @@ dependencies {
api("com.sun.xml.bind:jaxb-core:3.0.2")
api("com.sun.xml.bind:jaxb-impl:3.0.2")
api("com.sun.xml.bind:jaxb-xjc:3.0.2")
api("com.thoughtworks.qdox:qdox:2.0.3")
api("com.thoughtworks.xstream:xstream:1.4.20")
api("com.thoughtworks.qdox:qdox:2.0.2")
api("com.thoughtworks.xstream:xstream:1.4.19")
api("commons-io:commons-io:2.11.0")
api("de.bechte.junit:junit-hierarchicalcontextrunner:4.12.2")
api("info.picocli:picocli:4.7.1")
api("de.bechte.junit:junit-hierarchicalcontextrunner:4.12.1")
api("info.picocli:picocli:4.7.0")
api("io.micrometer:context-propagation:1.0.0")
api("io.mockk:mockk:1.13.4")
api("io.mockk:mockk:1.12.1")
api("io.projectreactor.netty:reactor-netty5-http:2.0.0-M3")
api("io.projectreactor.tools:blockhound:1.0.7.RELEASE")
api("io.projectreactor.tools:blockhound:1.0.6.RELEASE")
api("io.r2dbc:r2dbc-h2:1.0.0.RELEASE")
api("io.r2dbc:r2dbc-spi-test:1.0.0.RELEASE")
api("io.r2dbc:r2dbc-spi:1.0.0.RELEASE")
api("io.reactivex.rxjava3:rxjava:3.1.6")
api("io.smallrye.reactive:mutiny:1.9.0")
api("io.undertow:undertow-core:2.3.5.Final")
api("io.undertow:undertow-servlet:2.3.5.Final")
api("io.undertow:undertow-websockets-jsr:2.3.5.Final")
api("io.reactivex.rxjava3:rxjava:3.1.5")
api("io.smallrye.reactive:mutiny:1.8.0")
api("io.undertow:undertow-core:2.3.4.Final")
api("io.undertow:undertow-servlet:2.3.4.Final")
api("io.undertow:undertow-websockets-jsr:2.3.4.Final")
api("io.vavr:vavr:0.10.4")
api("jakarta.activation:jakarta.activation-api:2.0.1")
api("jakarta.annotation:jakarta.annotation-api:2.0.0")
api("jakarta.ejb:jakarta.ejb-api:4.0.1")
api("jakarta.ejb:jakarta.ejb-api:4.0.0")
api("jakarta.el:jakarta.el-api:4.0.0")
api("jakarta.enterprise.concurrent:jakarta.enterprise.concurrent-api:2.0.0")
api("jakarta.faces:jakarta.faces-api:3.0.0")
api("jakarta.inject:jakarta.inject-api:2.0.1")
api("jakarta.inject:jakarta.inject-api:2.0.0")
api("jakarta.inject:jakarta.inject-tck:2.0.1")
api("jakarta.interceptor:jakarta.interceptor-api:2.0.0")
api("jakarta.jms:jakarta.jms-api:3.0.0")
@@ -75,7 +75,7 @@ dependencies {
api("jakarta.persistence:jakarta.persistence-api:3.0.0")
api("jakarta.resource:jakarta.resource-api:2.0.0")
api("jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.0")
api("jakarta.servlet.jsp:jakarta.servlet.jsp-api:3.1.1")
api("jakarta.servlet.jsp:jakarta.servlet.jsp-api:3.1.0")
api("jakarta.servlet:jakarta.servlet-api:6.0.0")
api("jakarta.transaction:jakarta.transaction-api:2.0.1")
api("jakarta.validation:jakarta.validation-api:3.0.2")
@@ -89,9 +89,9 @@ dependencies {
api("net.sf.jopt-simple:jopt-simple:5.0.4")
api("net.sourceforge.htmlunit:htmlunit:2.70.0")
api("org.apache-extras.beanshell:bsh:2.0b6")
api("org.apache.activemq:activemq-broker:5.17.2")
api("org.apache.activemq:activemq-kahadb-store:5.17.2")
api("org.apache.activemq:activemq-stomp:5.17.2")
api("org.apache.activemq:activemq-broker:5.16.2")
api("org.apache.activemq:activemq-kahadb-store:5.16.2")
api("org.apache.activemq:activemq-stomp:5.16.2")
api("org.apache.commons:commons-pool2:2.9.0")
api("org.apache.derby:derby:10.16.1.1")
api("org.apache.derby:derbyclient:10.16.1.1")
@@ -103,41 +103,41 @@ dependencies {
api("org.apache.tomcat.embed:tomcat-embed-websocket:10.1.7")
api("org.apache.tomcat:tomcat-util:10.1.7")
api("org.apache.tomcat:tomcat-websocket:10.1.7")
api("org.aspectj:aspectjrt:1.9.19")
api("org.aspectj:aspectjtools:1.9.19")
api("org.aspectj:aspectjweaver:1.9.19")
api("org.aspectj:aspectjrt:1.9.9.1")
api("org.aspectj:aspectjtools:1.9.9.1")
api("org.aspectj:aspectjweaver:1.9.9.1")
api("org.assertj:assertj-core:3.24.2")
api("org.awaitility:awaitility:4.2.0")
api("org.bouncycastle:bcpkix-jdk18on:1.72")
api("org.codehaus.jettison:jettison:1.5.4")
api("org.dom4j:dom4j:2.1.4")
api("org.eclipse.jetty:jetty-reactive-httpclient:3.0.8")
api("org.awaitility:awaitility:3.1.6")
api("org.bouncycastle:bcpkix-jdk18on:1.71")
api("org.codehaus.jettison:jettison:1.3.8")
api("org.dom4j:dom4j:2.1.3")
api("org.eclipse.jetty:jetty-reactive-httpclient:3.0.7")
api("org.eclipse.persistence:org.eclipse.persistence.jpa:3.0.3")
api("org.eclipse:yasson:2.0.4")
api("org.ehcache:ehcache:3.10.8")
api("org.ehcache:ehcache:3.4.0")
api("org.ehcache:jcache:1.0.1")
api("org.freemarker:freemarker:2.3.32")
// Substitute for "javax.management:jmxremote_optional:1.0.1_04" which
// is not available on Maven Central
api("org.glassfish.external:opendmk_jmxremote_optional_jar:1.0-b01-ea")
api("org.glassfish.tyrus:tyrus-container-servlet:2.1.3")
api("org.glassfish.tyrus:tyrus-container-servlet:2.0.1")
api("org.glassfish:jakarta.el:4.0.2")
api("org.graalvm.sdk:graal-sdk:22.3.1")
api("org.graalvm.sdk:graal-sdk:22.3.0")
api("org.hamcrest:hamcrest:2.2")
api("org.hibernate:hibernate-core-jakarta:5.6.15.Final")
api("org.hibernate:hibernate-validator:7.0.5.Final")
api("org.hsqldb:hsqldb:2.7.1")
api("org.javamoney:moneta:1.4.2")
api("org.jruby:jruby:9.4.2.0")
api("org.jruby:jruby:9.4.0.0")
api("org.junit.support:testng-engine:1.0.4")
api("org.mozilla:rhino:1.7.14")
api("org.mozilla:rhino:1.7.11")
api("org.ogce:xpp3:1.1.6")
api("org.python:jython-standalone:2.7.3")
api("org.python:jython-standalone:2.7.1")
api("org.quartz-scheduler:quartz:2.3.2")
api("org.seleniumhq.selenium:htmlunit-driver:2.70.0")
api("org.seleniumhq.selenium:selenium-java:3.141.59")
api("org.skyscreamer:jsonassert:1.5.1")
api("org.slf4j:slf4j-api:2.0.7")
api("org.skyscreamer:jsonassert:1.5.0")
api("org.slf4j:slf4j-api:2.0.6")
api("org.testng:testng:7.7.1")
api("org.webjars:underscorejs:1.8.3")
api("org.webjars:webjars-locator-core:0.52")
+1 -1
View File
@@ -1,4 +1,4 @@
version=6.0.8
version=6.0.7
org.gradle.caching=true
org.gradle.jvmargs=-Xmx2048m
+5 -6
View File
@@ -5,10 +5,10 @@
* One can choose the toolchain to use for compiling the MAIN sources and/or compiling
* and running the TEST sources. These options apply to Java, Kotlin and Groovy sources
* when available.
* {@code "./gradlew check -PmainToolchain=17 -PtestToolchain=20"} will use:
* {@code "./gradlew check -PmainToolchain=17 -PtestToolchain=19"} will use:
* <ul>
* <li>a JDK17 toolchain for compiling the main SourceSet
* <li>a JDK20 toolchain for compiling and running the test SourceSet
* <li>a JDK19 toolchain for compiling and running the test SourceSet
* </ul>
*
* By default, the build will fall back to using the current JDK and 17 language level for all sourceSets.
@@ -23,9 +23,9 @@
* {@code
* $ echo JDK17
* /opt/openjdk/java17
* $ echo JDK20
* /opt/openjdk/java20
* $ ./gradlew -Porg.gradle.java.installations.fromEnv=JDK17,JDK20 check
* $ echo JDK19
* /opt/openjdk/java18
* $ ./gradlew -Porg.gradle.java.installations.fromEnv=JDK17,JDK19 check
* }
*
* @author Brian Clozel
@@ -81,7 +81,6 @@ plugins.withType(JavaPlugin) {
javaLauncher = javaToolchains.launcherFor {
languageVersion = testLanguageVersion
}
jvmArgs += ['-Djava.locale.providers=COMPAT']
}
}
}
Binary file not shown.
+1 -1
View File
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip
networkTimeout=10000
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Vendored
+2 -2
View File
@@ -144,7 +144,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC3045
# shellcheck disable=SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
@@ -152,7 +152,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC3045
# shellcheck disable=SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -99,7 +99,7 @@ class AopNamespaceHandlerScopeIntegrationTests {
RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(oldRequest));
assertThat(requestScoped.getName()).isEqualTo(bram);
assertThat(((Advised) requestScoped).getAdvisors()).as("Should have advisors").isNotEmpty();
assertThat(((Advised) requestScoped).getAdvisors().length > 0).as("Should have advisors").isTrue();
}
@Test
@@ -131,7 +131,7 @@ class AopNamespaceHandlerScopeIntegrationTests {
request.setSession(oldSession);
assertThat(sessionScoped.getName()).isEqualTo(bram);
assertThat(((Advised) sessionScoped).getAdvisors()).as("Should have advisors").isNotEmpty();
assertThat(((Advised) sessionScoped).getAdvisors().length > 0).as("Should have advisors").isTrue();
}
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -52,25 +52,25 @@ class ComponentBeanDefinitionParserTests {
@Test
void testBionicBasic() {
Component cp = getBionicFamily();
assertThat(cp.getName()).isEqualTo("Bionic-1");
assertThat("Bionic-1").isEqualTo(cp.getName());
}
@Test
void testBionicFirstLevelChildren() {
Component cp = getBionicFamily();
List<Component> components = cp.getComponents();
assertThat(components).hasSize(2);
assertThat(components.get(0).getName()).isEqualTo("Mother-1");
assertThat(components.get(1).getName()).isEqualTo("Rock-1");
assertThat(2).isEqualTo(components.size());
assertThat("Mother-1").isEqualTo(components.get(0).getName());
assertThat("Rock-1").isEqualTo(components.get(1).getName());
}
@Test
void testBionicSecondLevelChildren() {
Component cp = getBionicFamily();
List<Component> components = cp.getComponents().get(0).getComponents();
assertThat(components).hasSize(2);
assertThat(components.get(0).getName()).isEqualTo("Karate-1");
assertThat(components.get(1).getName()).isEqualTo("Sport-1");
assertThat(2).isEqualTo(components.size());
assertThat("Karate-1").isEqualTo(components.get(0).getName());
assertThat("Sport-1").isEqualTo(components.get(1).getName());
}
private Component getBionicFamily() {
+1 -1
View File
@@ -7,7 +7,7 @@ pluginManagement {
}
plugins {
id "com.gradle.enterprise" version "3.12.6"
id "com.gradle.enterprise" version "3.12.3"
id "io.spring.ge.conventions" version "0.0.13"
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -120,11 +120,6 @@ final class JdkDynamicAopProxy implements AopProxy, InvocationHandler, Serializa
if (logger.isTraceEnabled()) {
logger.trace("Creating JDK dynamic proxy: " + this.advised.getTargetSource());
}
if (classLoader == null || classLoader.getParent() == null) {
// JDK bootstrap loader or platform loader suggested ->
// use higher-level loader which can see Spring infrastructure classes
classLoader = getClass().getClassLoader();
}
return Proxy.newProxyInstance(classLoader, this.proxiedInterfaces, this);
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -70,7 +70,7 @@ public class MethodInvocationProceedingJoinPointTests {
AtomicInteger depth = new AtomicInteger();
pf.addAdvice((MethodBeforeAdvice) (method, args, target) -> {
JoinPoint jp = AbstractAspectJAdvice.currentJoinPoint();
assertThat(jp.toString()).as("Method named in toString").contains(method.getName());
assertThat(jp.toString().contains(method.getName())).as("Method named in toString").isTrue();
// Ensure that these don't cause problems
jp.toShortString();
jp.toLongString();
@@ -319,10 +319,10 @@ abstract class AbstractAspectJAdvisorFactoryTests {
@Test
void introductionOnTargetNotImplementingInterface() {
NotLockable notLockableTarget = new NotLockable();
assertThat(notLockableTarget).isNotInstanceOf(Lockable.class);
assertThat(notLockableTarget instanceof Lockable).isFalse();
NotLockable notLockable1 = createProxy(notLockableTarget, NotLockable.class,
getAdvisorFactory().getAdvisors(aspectInstanceFactory(new MakeLockable(), "someBean")));
assertThat(notLockable1).isInstanceOf(Lockable.class);
assertThat(notLockable1 instanceof Lockable).isTrue();
Lockable lockable = (Lockable) notLockable1;
assertThat(lockable.locked()).isFalse();
lockable.lock();
@@ -331,7 +331,7 @@ abstract class AbstractAspectJAdvisorFactoryTests {
NotLockable notLockable2Target = new NotLockable();
NotLockable notLockable2 = createProxy(notLockable2Target, NotLockable.class,
getAdvisorFactory().getAdvisors(aspectInstanceFactory(new MakeLockable(), "someBean")));
assertThat(notLockable2).isInstanceOf(Lockable.class);
assertThat(notLockable2 instanceof Lockable).isTrue();
Lockable lockable2 = (Lockable) notLockable2;
assertThat(lockable2.locked()).isFalse();
notLockable2.setIntValue(1);
@@ -345,7 +345,7 @@ abstract class AbstractAspectJAdvisorFactoryTests {
assertThat(AopUtils.findAdvisorsThatCanApply(
getAdvisorFactory().getAdvisors(
aspectInstanceFactory(new MakeLockable(), "someBean")),
CannotBeUnlocked.class)).isEmpty();
CannotBeUnlocked.class).isEmpty()).isTrue();
assertThat(AopUtils.findAdvisorsThatCanApply(getAdvisorFactory().getAdvisors(
aspectInstanceFactory(new MakeLockable(),"someBean")), NotLockable.class)).hasSize(2);
}
@@ -373,7 +373,7 @@ abstract class AbstractAspectJAdvisorFactoryTests {
AopUtils.findAdvisorsThatCanApply(
getAdvisorFactory().getAdvisors(aspectInstanceFactory(new MakeLockable(), "someBean")),
List.class));
assertThat(proxy).as("Type pattern must have excluded mixin").isNotInstanceOf(Lockable.class);
assertThat(proxy instanceof Lockable).as("Type pattern must have excluded mixin").isFalse();
}
@Test
@@ -430,7 +430,7 @@ abstract class AbstractAspectJAdvisorFactoryTests {
UnsupportedOperationException expectedException = new UnsupportedOperationException();
List<Advisor> advisors = getAdvisorFactory().getAdvisors(
aspectInstanceFactory(new ExceptionThrowingAspect(expectedException), "someBean"));
assertThat(advisors).as("One advice method was found").hasSize(1);
assertThat(advisors.size()).as("One advice method was found").isEqualTo(1);
ITestBean itb = createProxy(target, ITestBean.class, advisors);
assertThatExceptionOfType(UnsupportedOperationException.class).isThrownBy(itb::getAge);
}
@@ -443,7 +443,7 @@ abstract class AbstractAspectJAdvisorFactoryTests {
RemoteException expectedException = new RemoteException();
List<Advisor> advisors = getAdvisorFactory().getAdvisors(
aspectInstanceFactory(new ExceptionThrowingAspect(expectedException), "someBean"));
assertThat(advisors).as("One advice method was found").hasSize(1);
assertThat(advisors.size()).as("One advice method was found").isEqualTo(1);
ITestBean itb = createProxy(target, ITestBean.class, advisors);
assertThatExceptionOfType(UndeclaredThrowableException.class)
.isThrownBy(itb::getAge)
@@ -456,7 +456,7 @@ abstract class AbstractAspectJAdvisorFactoryTests {
TwoAdviceAspect twoAdviceAspect = new TwoAdviceAspect();
List<Advisor> advisors = getAdvisorFactory().getAdvisors(
aspectInstanceFactory(twoAdviceAspect, "someBean"));
assertThat(advisors).as("Two advice methods found").hasSize(2);
assertThat(advisors.size()).as("Two advice methods found").isEqualTo(2);
ITestBean itb = createProxy(target, ITestBean.class, advisors);
itb.setName("");
assertThat(itb.getAge()).isEqualTo(0);
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,10 +16,7 @@
package org.springframework.aop.framework;
import java.sql.SQLException;
import java.sql.Savepoint;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.accessibility.Accessible;
@@ -197,11 +194,11 @@ public class ProxyFactoryTests {
TestBeanSubclass raw = new TestBeanSubclass();
ProxyFactory factory = new ProxyFactory(raw);
//System.out.println("Proxied interfaces are " + StringUtils.arrayToDelimitedString(factory.getProxiedInterfaces(), ","));
assertThat(factory.getProxiedInterfaces()).as("Found correct number of interfaces").hasSize(5);
assertThat(factory.getProxiedInterfaces().length).as("Found correct number of interfaces").isEqualTo(5);
ITestBean tb = (ITestBean) factory.getProxy();
assertThat(tb).as("Picked up secondary interface").isInstanceOf(IOther.class);
raw.setAge(25);
assertThat(tb.getAge()).isEqualTo(raw.getAge());
assertThat(tb.getAge() == raw.getAge()).isTrue();
long t = 555555L;
TimestampIntroductionInterceptor ti = new TimestampIntroductionInterceptor(t);
@@ -211,10 +208,10 @@ public class ProxyFactoryTests {
factory.addAdvisor(0, new DefaultIntroductionAdvisor(ti, TimeStamped.class));
Class<?>[] newProxiedInterfaces = factory.getProxiedInterfaces();
assertThat(newProxiedInterfaces).as("Advisor proxies one more interface after introduction").hasSize(oldProxiedInterfaces.length + 1);
assertThat(newProxiedInterfaces.length).as("Advisor proxies one more interface after introduction").isEqualTo(oldProxiedInterfaces.length + 1);
TimeStamped ts = (TimeStamped) factory.getProxy();
assertThat(ts.getTimeStamp()).isEqualTo(t);
assertThat(ts.getTimeStamp() == t).isTrue();
// Shouldn't fail;
((IOther) ts).absquatulate();
}
@@ -234,13 +231,13 @@ public class ProxyFactoryTests {
factory.addAdvice(0, di);
assertThat(factory.getProxy()).isInstanceOf(ITestBean.class);
assertThat(factory.adviceIncluded(di)).isTrue();
assertThat(factory.adviceIncluded(diUnused)).isFalse();
assertThat(factory.countAdvicesOfType(NopInterceptor.class)).isEqualTo(1);
assertThat(factory.countAdvicesOfType(MyInterceptor.class)).isEqualTo(0);
assertThat(!factory.adviceIncluded(diUnused)).isTrue();
assertThat(factory.countAdvicesOfType(NopInterceptor.class) == 1).isTrue();
assertThat(factory.countAdvicesOfType(MyInterceptor.class) == 0).isTrue();
factory.addAdvice(0, diUnused);
assertThat(factory.adviceIncluded(diUnused)).isTrue();
assertThat(factory.countAdvicesOfType(NopInterceptor.class)).isEqualTo(2);
assertThat(factory.countAdvicesOfType(NopInterceptor.class) == 2).isTrue();
}
@Test
@@ -260,8 +257,7 @@ public class ProxyFactoryTests {
public void testCanAddAndRemoveAspectInterfacesOnSingleton() {
ProxyFactory config = new ProxyFactory(new TestBean());
assertThat(config.getProxy()).as("Shouldn't implement TimeStamped before manipulation")
.isNotInstanceOf(TimeStamped.class);
assertThat(config.getProxy() instanceof TimeStamped).as("Shouldn't implement TimeStamped before manipulation").isFalse();
long time = 666L;
TimestampIntroductionInterceptor ti = new TimestampIntroductionInterceptor();
@@ -271,26 +267,26 @@ public class ProxyFactoryTests {
int oldCount = config.getAdvisors().length;
config.addAdvisor(0, new DefaultIntroductionAdvisor(ti, TimeStamped.class));
assertThat(config.getAdvisors()).hasSize(oldCount + 1);
assertThat(config.getAdvisors().length == oldCount + 1).isTrue();
TimeStamped ts = (TimeStamped) config.getProxy();
assertThat(ts.getTimeStamp()).isEqualTo(time);
assertThat(ts.getTimeStamp() == time).isTrue();
// Can remove
config.removeAdvice(ti);
assertThat(config.getAdvisors()).hasSize(oldCount);
assertThat(config.getAdvisors().length == oldCount).isTrue();
assertThatRuntimeException()
.as("Existing object won't implement this interface any more")
.isThrownBy(ts::getTimeStamp); // Existing reference will fail
assertThat(config.getProxy()).as("Should no longer implement TimeStamped").isNotInstanceOf(TimeStamped.class);
assertThat(config.getProxy() instanceof TimeStamped).as("Should no longer implement TimeStamped").isFalse();
// Now check non-effect of removing interceptor that isn't there
config.removeAdvice(new DebugInterceptor());
assertThat(config.getAdvisors()).hasSize(oldCount);
assertThat(config.getAdvisors().length == oldCount).isTrue();
ITestBean it = (ITestBean) ts;
DebugInterceptor debugInterceptor = new DebugInterceptor();
@@ -300,7 +296,7 @@ public class ProxyFactoryTests {
config.removeAdvice(debugInterceptor);
it.getSpouse();
// not invoked again
assertThat(debugInterceptor.getCount()).isEqualTo(1);
assertThat(debugInterceptor.getCount() == 1).isTrue();
}
@Test
@@ -309,13 +305,13 @@ public class ProxyFactoryTests {
pf.setTargetClass(ITestBean.class);
Object proxy = pf.getProxy();
assertThat(AopUtils.isJdkDynamicProxy(proxy)).as("Proxy is a JDK proxy").isTrue();
assertThat(proxy).isInstanceOf(ITestBean.class);
assertThat(proxy instanceof ITestBean).isTrue();
assertThat(AopProxyUtils.ultimateTargetClass(proxy)).isEqualTo(ITestBean.class);
ProxyFactory pf2 = new ProxyFactory(proxy);
Object proxy2 = pf2.getProxy();
assertThat(AopUtils.isJdkDynamicProxy(proxy2)).as("Proxy is a JDK proxy").isTrue();
assertThat(proxy2).isInstanceOf(ITestBean.class);
assertThat(proxy2 instanceof ITestBean).isTrue();
assertThat(AopProxyUtils.ultimateTargetClass(proxy2)).isEqualTo(ITestBean.class);
}
@@ -325,14 +321,14 @@ public class ProxyFactoryTests {
pf.setTargetClass(TestBean.class);
Object proxy = pf.getProxy();
assertThat(AopUtils.isCglibProxy(proxy)).as("Proxy is a CGLIB proxy").isTrue();
assertThat(proxy).isInstanceOf(TestBean.class);
assertThat(proxy instanceof TestBean).isTrue();
assertThat(AopProxyUtils.ultimateTargetClass(proxy)).isEqualTo(TestBean.class);
ProxyFactory pf2 = new ProxyFactory(proxy);
pf2.setProxyTargetClass(true);
Object proxy2 = pf2.getProxy();
assertThat(AopUtils.isCglibProxy(proxy2)).as("Proxy is a CGLIB proxy").isTrue();
assertThat(proxy2).isInstanceOf(TestBean.class);
assertThat(proxy2 instanceof TestBean).isTrue();
assertThat(AopProxyUtils.ultimateTargetClass(proxy2)).isEqualTo(TestBean.class);
}
@@ -342,8 +338,8 @@ public class ProxyFactoryTests {
JFrame frame = new JFrame();
ProxyFactory proxyFactory = new ProxyFactory(frame);
Object proxy = proxyFactory.getProxy();
assertThat(proxy).isInstanceOf(RootPaneContainer.class);
assertThat(proxy).isInstanceOf(Accessible.class);
assertThat(proxy instanceof RootPaneContainer).isTrue();
assertThat(proxy instanceof Accessible).isTrue();
}
@Test
@@ -384,40 +380,6 @@ public class ProxyFactoryTests {
assertThat(proxy.getName()).isEqualTo("tb");
}
@Test
public void testCharSequenceProxy() {
CharSequence target = "test";
ProxyFactory pf = new ProxyFactory(target);
ClassLoader cl = target.getClass().getClassLoader();
assertThat(((CharSequence) pf.getProxy(cl)).toString()).isEqualTo(target);
}
@Test
public void testDateProxy() {
Date target = new Date();
ProxyFactory pf = new ProxyFactory(target);
pf.setProxyTargetClass(true);
ClassLoader cl = target.getClass().getClassLoader();
assertThat(((Date) pf.getProxy(cl)).getTime()).isEqualTo(target.getTime());
}
@Test
public void testJdbcSavepointProxy() throws SQLException {
Savepoint target = new Savepoint() {
@Override
public int getSavepointId() throws SQLException {
return 1;
}
@Override
public String getSavepointName() throws SQLException {
return "sp";
}
};
ProxyFactory pf = new ProxyFactory(target);
ClassLoader cl = Savepoint.class.getClassLoader();
assertThat(((Savepoint) pf.getProxy(cl)).getSavepointName()).isEqualTo("sp");
}
@Order(2)
public static class A implements Runnable {
@@ -429,7 +391,7 @@ public class ProxyFactoryTests {
@Order(1)
public static class B implements Runnable {
public static class B implements Runnable{
@Override
public void run() {
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -26,7 +26,7 @@ class InvocationCheckExposedInvocationTestBean extends ExposedInvocationTestBean
@Override
protected void assertions(MethodInvocation invocation) {
assertThat(invocation.getThis()).isSameAs(this);
assertThat(invocation.getThis() == this).isTrue();
assertThat(ITestBean.class.isAssignableFrom(invocation.getMethod().getDeclaringClass())).as("Invocation should be on ITestBean: " + invocation.getMethod()).isTrue();
}
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -128,7 +128,7 @@ class ScopedProxyBeanRegistrationAotProcessorTests {
this.beanFactory.registerBeanDefinition("test", scopedBean);
compile((freshBeanFactory, compiled) -> {
Object bean = freshBeanFactory.getBean("test");
assertThat(bean).isInstanceOf(NumberHolder.class).isInstanceOf(AopInfrastructureBean.class);
assertThat(bean).isNotNull().isInstanceOf(NumberHolder.class).isInstanceOf(AopInfrastructureBean.class);
});
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -142,7 +142,7 @@ public class ComposablePointcutTests {
pc1.intersection(GETTER_METHOD_MATCHER);
assertThat(pc1.equals(pc2)).isFalse();
assertThat(pc1.hashCode()).isNotEqualTo(pc2.hashCode());
assertThat(pc1.hashCode() == pc2.hashCode()).isFalse();
pc2.intersection(GETTER_METHOD_MATCHER);
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -97,7 +97,7 @@ public class ControlFlowPointcutTests {
assertThat(new ControlFlowPointcut(One.class, "getAge").equals(new ControlFlowPointcut(One.class))).isFalse();
assertThat(new ControlFlowPointcut(One.class).hashCode()).isEqualTo(new ControlFlowPointcut(One.class).hashCode());
assertThat(new ControlFlowPointcut(One.class, "getAge").hashCode()).isEqualTo(new ControlFlowPointcut(One.class, "getAge").hashCode());
assertThat(new ControlFlowPointcut(One.class, "getAge").hashCode()).isNotEqualTo(new ControlFlowPointcut(One.class).hashCode());
assertThat(new ControlFlowPointcut(One.class, "getAge").hashCode() == new ControlFlowPointcut(One.class).hashCode()).isFalse();
}
@Test
@@ -56,7 +56,7 @@ class DelegatingIntroductionInterceptorTests {
@Test
void testIntroductionInterceptorWithDelegation() throws Exception {
TestBean raw = new TestBean();
assertThat(raw).isNotInstanceOf(TimeStamped.class);
assertThat(! (raw instanceof TimeStamped)).isTrue();
ProxyFactory factory = new ProxyFactory(raw);
TimeStamped ts = mock();
@@ -66,13 +66,13 @@ class DelegatingIntroductionInterceptorTests {
factory.addAdvisor(0, new DefaultIntroductionAdvisor(new DelegatingIntroductionInterceptor(ts)));
TimeStamped tsp = (TimeStamped) factory.getProxy();
assertThat(tsp.getTimeStamp()).isEqualTo(timestamp);
assertThat(tsp.getTimeStamp() == timestamp).isTrue();
}
@Test
void testIntroductionInterceptorWithInterfaceHierarchy() throws Exception {
TestBean raw = new TestBean();
assertThat(raw).isNotInstanceOf(SubTimeStamped.class);
assertThat(! (raw instanceof SubTimeStamped)).isTrue();
ProxyFactory factory = new ProxyFactory(raw);
SubTimeStamped ts = mock();
@@ -82,13 +82,13 @@ class DelegatingIntroductionInterceptorTests {
factory.addAdvisor(0, new DefaultIntroductionAdvisor(new DelegatingIntroductionInterceptor(ts), SubTimeStamped.class));
SubTimeStamped tsp = (SubTimeStamped) factory.getProxy();
assertThat(tsp.getTimeStamp()).isEqualTo(timestamp);
assertThat(tsp.getTimeStamp() == timestamp).isTrue();
}
@Test
void testIntroductionInterceptorWithSuperInterface() throws Exception {
TestBean raw = new TestBean();
assertThat(raw).isNotInstanceOf(TimeStamped.class);
assertThat(! (raw instanceof TimeStamped)).isTrue();
ProxyFactory factory = new ProxyFactory(raw);
SubTimeStamped ts = mock();
@@ -98,8 +98,8 @@ class DelegatingIntroductionInterceptorTests {
factory.addAdvisor(0, new DefaultIntroductionAdvisor(new DelegatingIntroductionInterceptor(ts), TimeStamped.class));
TimeStamped tsp = (TimeStamped) factory.getProxy();
assertThat(tsp).isNotInstanceOf(SubTimeStamped.class);
assertThat(tsp.getTimeStamp()).isEqualTo(timestamp);
assertThat(!(tsp instanceof SubTimeStamped)).isTrue();
assertThat(tsp.getTimeStamp() == timestamp).isTrue();
}
@Test
@@ -125,7 +125,7 @@ class DelegatingIntroductionInterceptorTests {
//assertTrue(Arrays.binarySearch(pf.getProxiedInterfaces(), TimeStamped.class) != -1);
TimeStamped ts = (TimeStamped) pf.getProxy();
assertThat(ts.getTimeStamp()).isEqualTo(t);
assertThat(ts.getTimeStamp() == t).isTrue();
((ITester) ts).foo();
((ITestBean) ts).getAge();
@@ -160,10 +160,10 @@ class DelegatingIntroductionInterceptorTests {
assertThat(ts).isInstanceOf(TimeStamped.class);
// Shouldn't proxy framework interfaces
assertThat(ts).isNotInstanceOf(MethodInterceptor.class);
assertThat(ts).isNotInstanceOf(IntroductionInterceptor.class);
assertThat(!(ts instanceof MethodInterceptor)).isTrue();
assertThat(!(ts instanceof IntroductionInterceptor)).isTrue();
assertThat(ts.getTimeStamp()).isEqualTo(t);
assertThat(ts.getTimeStamp() == t).isTrue();
((ITester) ts).foo();
((ITestBean) ts).getAge();
@@ -174,14 +174,14 @@ class DelegatingIntroductionInterceptorTests {
pf = new ProxyFactory(target);
pf.addAdvisor(0, new DefaultIntroductionAdvisor(ii));
Object o = pf.getProxy();
assertThat(o).isNotInstanceOf(TimeStamped.class);
assertThat(!(o instanceof TimeStamped)).isTrue();
}
@SuppressWarnings("serial")
@Test
void testIntroductionInterceptorDoesntReplaceToString() throws Exception {
TestBean raw = new TestBean();
assertThat(raw).isNotInstanceOf(TimeStamped.class);
assertThat(! (raw instanceof TimeStamped)).isTrue();
ProxyFactory factory = new ProxyFactory(raw);
TimeStamped ts = new SerializableTimeStamped(0);
@@ -266,7 +266,7 @@ class DelegatingIntroductionInterceptorTests {
TimeStamped ts = (TimeStamped) pf.getProxy();
// From introduction interceptor, not target
assertThat(ts.getTimeStamp()).isEqualTo(t);
assertThat(ts.getTimeStamp() == t).isTrue();
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -129,7 +129,7 @@ public class NameMatchMethodPointcutTests {
pc1.setMappedName(foo);
assertThat(pc1.equals(pc2)).isFalse();
assertThat(pc1.hashCode()).isNotEqualTo(pc2.hashCode());
assertThat(pc1.hashCode() != pc2.hashCode()).isTrue();
pc2.setMappedName(foo);
assertThat(pc2).isEqualTo(pc1);
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -543,7 +543,7 @@ public abstract class AbstractCacheAnnotationTests {
Object r1 = service.multiConditionalCacheAndEvict(key);
Object r3 = service.multiConditionalCacheAndEvict(key);
assertThat(r1.equals(r3)).isFalse();
assertThat(!r1.equals(r3)).isTrue();
assertThat(primary.get(key)).isNull();
Object key2 = 3;
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2021 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -92,7 +92,7 @@ public class AspectJEnableCachingIsolatedTests {
load(MultiCacheManagerConfig.class);
}
catch (IllegalStateException ex) {
assertThat(ex.getMessage()).contains("bean of type CacheManager");
assertThat(ex.getMessage().contains("bean of type CacheManager")).isTrue();
}
}
@@ -107,7 +107,7 @@ public class AspectJEnableCachingIsolatedTests {
load(MultiCacheManagerConfigurer.class, EnableCachingConfig.class);
}
catch (IllegalStateException ex) {
assertThat(ex.getMessage()).contains("implementations of CachingConfigurer");
assertThat(ex.getMessage().contains("implementations of CachingConfigurer")).isTrue();
}
}
@@ -117,7 +117,7 @@ public class AspectJEnableCachingIsolatedTests {
load(EmptyConfig.class);
}
catch (IllegalStateException ex) {
assertThat(ex.getMessage()).contains("no bean of type CacheManager");
assertThat(ex.getMessage().contains("no bean of type CacheManager")).isTrue();
}
}
@@ -1,28 +0,0 @@
/*
* Copyright 2002-2023 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.beans.factory.aot;
/**
* Record class holding key information for beans registered in a bean factory.
*
* @param beanName the name of the registered bean
* @param beanClass the type of the registered bean
* @author Brian Clozel
* @since 6.0.8
*/
record BeanRegistrationKey(String beanName, Class<?> beanClass) {
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -26,8 +26,6 @@ import org.springframework.aot.generate.GeneratedMethods;
import org.springframework.aot.generate.GenerationContext;
import org.springframework.aot.generate.MethodReference;
import org.springframework.aot.generate.MethodReference.ArgumentCodeGenerator;
import org.springframework.aot.hint.MemberCategory;
import org.springframework.aot.hint.RuntimeHints;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.javapoet.ClassName;
import org.springframework.javapoet.CodeBlock;
@@ -40,7 +38,6 @@ import org.springframework.javapoet.MethodSpec;
* @author Phillip Webb
* @author Sebastien Deleuze
* @author Stephane Nicoll
* @author Brian Clozel
* @since 6.0
* @see BeanRegistrationsAotProcessor
*/
@@ -49,10 +46,9 @@ class BeanRegistrationsAotContribution
private static final String BEAN_FACTORY_PARAMETER_NAME = "beanFactory";
private final Map<BeanRegistrationKey, Registration> registrations;
private final Map<String, Registration> registrations;
BeanRegistrationsAotContribution(Map<BeanRegistrationKey, Registration> registrations) {
BeanRegistrationsAotContribution(Map<String, Registration> registrations) {
this.registrations = registrations;
}
@@ -73,23 +69,26 @@ class BeanRegistrationsAotContribution
GeneratedMethod generatedAliasesMethod = codeGenerator.getMethods().add("registerAliases",
this::generateRegisterAliasesMethod);
beanFactoryInitializationCode.addInitializer(generatedAliasesMethod.toMethodReference());
generateRegisterHints(generationContext.getRuntimeHints(), this.registrations);
}
private void generateRegisterBeanDefinitionsMethod(MethodSpec.Builder method,
GenerationContext generationContext, BeanRegistrationsCode beanRegistrationsCode) {
GenerationContext generationContext,
BeanRegistrationsCode beanRegistrationsCode) {
method.addJavadoc("Register the bean definitions.");
method.addModifiers(Modifier.PUBLIC);
method.addParameter(DefaultListableBeanFactory.class, BEAN_FACTORY_PARAMETER_NAME);
method.addParameter(DefaultListableBeanFactory.class,
BEAN_FACTORY_PARAMETER_NAME);
CodeBlock.Builder code = CodeBlock.builder();
this.registrations.forEach((registeredBean, registration) -> {
this.registrations.forEach((beanName, registration) -> {
MethodReference beanDefinitionMethod = registration.methodGenerator
.generateBeanDefinitionMethod(generationContext, beanRegistrationsCode);
.generateBeanDefinitionMethod(generationContext,
beanRegistrationsCode);
CodeBlock methodInvocation = beanDefinitionMethod.toInvokeCodeBlock(
ArgumentCodeGenerator.none(), beanRegistrationsCode.getClassName());
code.addStatement("$L.registerBeanDefinition($S, $L)",
BEAN_FACTORY_PARAMETER_NAME, registeredBean.beanName(), methodInvocation);
BEAN_FACTORY_PARAMETER_NAME, beanName,
methodInvocation);
});
method.addCode(code.build());
}
@@ -97,22 +96,18 @@ class BeanRegistrationsAotContribution
private void generateRegisterAliasesMethod(MethodSpec.Builder method) {
method.addJavadoc("Register the aliases.");
method.addModifiers(Modifier.PUBLIC);
method.addParameter(DefaultListableBeanFactory.class, BEAN_FACTORY_PARAMETER_NAME);
method.addParameter(DefaultListableBeanFactory.class,
BEAN_FACTORY_PARAMETER_NAME);
CodeBlock.Builder code = CodeBlock.builder();
this.registrations.forEach((registeredBean, registration) -> {
this.registrations.forEach((beanName, registration) -> {
for (String alias : registration.aliases) {
code.addStatement("$L.registerAlias($S, $S)", BEAN_FACTORY_PARAMETER_NAME,
registeredBean.beanName(), alias);
code.addStatement("$L.registerAlias($S, $S)",
BEAN_FACTORY_PARAMETER_NAME, beanName, alias);
}
});
method.addCode(code.build());
}
private void generateRegisterHints(RuntimeHints runtimeHints, Map<BeanRegistrationKey, Registration> registrations) {
registrations.keySet().forEach(beanRegistrationKey -> runtimeHints.reflection()
.registerType(beanRegistrationKey.beanClass(), MemberCategory.INTROSPECT_DECLARED_METHODS));
}
/**
* Gather the necessary information to register a particular bean.
* @param methodGenerator the {@link BeanDefinitionMethodGenerator} to use
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -31,7 +31,6 @@ import org.springframework.lang.Nullable;
* @author Phillip Webb
* @author Sebastien Deleuze
* @author Stephane Nicoll
* @author Brian Clozel
* @since 6.0
*/
class BeanRegistrationsAotProcessor implements BeanFactoryInitializationAotProcessor {
@@ -41,15 +40,15 @@ class BeanRegistrationsAotProcessor implements BeanFactoryInitializationAotProce
public BeanRegistrationsAotContribution processAheadOfTime(ConfigurableListableBeanFactory beanFactory) {
BeanDefinitionMethodGeneratorFactory beanDefinitionMethodGeneratorFactory =
new BeanDefinitionMethodGeneratorFactory(beanFactory);
Map<BeanRegistrationKey, Registration> registrations = new LinkedHashMap<>();
Map<String, Registration> registrations = new LinkedHashMap<>();
for (String beanName : beanFactory.getBeanDefinitionNames()) {
RegisteredBean registeredBean = RegisteredBean.of(beanFactory, beanName);
BeanDefinitionMethodGenerator beanDefinitionMethodGenerator =
beanDefinitionMethodGeneratorFactory.getBeanDefinitionMethodGenerator(registeredBean);
if (beanDefinitionMethodGenerator != null) {
registrations.put(new BeanRegistrationKey(beanName, registeredBean.getBeanClass()),
new Registration(beanDefinitionMethodGenerator, beanFactory.getAliases(beanName)));
registrations.put(beanName, new Registration(beanDefinitionMethodGenerator,
beanFactory.getAliases(beanName)));
}
}
@@ -294,9 +294,7 @@ class ConstructorResolver {
}
throw new BeanCreationException(mbd.getResourceDescription(), beanName,
"Could not resolve matching constructor on bean class [" + mbd.getBeanClassName() + "] " +
"(hint: specify index/type/name arguments for simple parameters to avoid type ambiguities. " +
"You should also check the consistency of arguments when mixing indexed and named arguments, " +
"especially in case of bean definition inheritance)");
"(hint: specify index/type/name arguments for simple parameters to avoid type ambiguities)");
}
else if (ambiguousConstructors != null && !mbd.isLenientConstructorResolution()) {
throw new BeanCreationException(mbd.getResourceDescription(), beanName,
@@ -49,7 +49,6 @@ import org.springframework.util.StringUtils;
* @author Costin Leau
* @author Stephane Nicoll
* @author Sam Brannen
* @author Sebastien Deleuze
* @since 2.0
* @see AbstractBeanFactory
* @see org.springframework.beans.factory.DisposableBean
@@ -115,7 +114,7 @@ class DisposableBeanAdapter implements DisposableBean, Runnable, Serializable {
(bean instanceof AutoCloseable && CLOSE_METHOD_NAME.equals(destroyMethodNames[0]));
if (!this.invokeAutoCloseable) {
this.destroyMethodNames = destroyMethodNames;
List<Method> destroyMethods = new ArrayList<>(destroyMethodNames.length);
Method[] destroyMethods = new Method[destroyMethodNames.length];
for (int i = 0; i < destroyMethodNames.length; i++) {
String destroyMethodName = destroyMethodNames[i];
Method destroyMethod = determineDestroyMethod(destroyMethodName);
@@ -138,10 +137,10 @@ class DisposableBeanAdapter implements DisposableBean, Runnable, Serializable {
}
}
destroyMethod = ClassUtils.getInterfaceMethodIfPossible(destroyMethod, bean.getClass());
destroyMethods.add(destroyMethod);
}
destroyMethods[i] = destroyMethod;
}
this.destroyMethods = destroyMethods.toArray(Method[]::new);
this.destroyMethods = destroyMethods;
}
}
@@ -254,18 +253,7 @@ class DisposableBeanAdapter implements DisposableBean, Runnable, Serializable {
@Nullable
private Method determineDestroyMethod(String name) {
try {
Class<?> beanClass = this.bean.getClass();
Method destroyMethod = findDestroyMethod(beanClass, name);
if (destroyMethod != null) {
return destroyMethod;
}
for (Class<?> beanInterface : beanClass.getInterfaces()) {
destroyMethod = findDestroyMethod(beanInterface, name);
if (destroyMethod != null) {
return destroyMethod;
}
}
return null;
return findDestroyMethod(name);
}
catch (IllegalArgumentException ex) {
throw new BeanDefinitionValidationException("Could not find unique destroy method on bean with name '" +
@@ -274,10 +262,10 @@ class DisposableBeanAdapter implements DisposableBean, Runnable, Serializable {
}
@Nullable
private Method findDestroyMethod(Class<?> clazz, String name) {
private Method findDestroyMethod(String name) {
return (this.nonPublicAccessAllowed ?
BeanUtils.findMethodWithMinimalParameters(clazz, name) :
BeanUtils.findMethodWithMinimalParameters(clazz.getMethods(), name));
BeanUtils.findMethodWithMinimalParameters(this.bean.getClass(), name) :
BeanUtils.findMethodWithMinimalParameters(this.bean.getClass().getMethods(), name));
}
/**
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -205,11 +205,11 @@ abstract class AbstractPropertyAccessorTests {
kerry.setSpouse(target);
AbstractPropertyAccessor accessor = createAccessor(target);
Integer KA = (Integer) accessor.getPropertyValue("spouse.age");
assertThat(KA).as("kerry is 35").isEqualTo(35);
assertThat(KA == 35).as("kerry is 35").isTrue();
Integer RA = (Integer) accessor.getPropertyValue("spouse.spouse.age");
assertThat(RA).as("rod is 31, not" + RA).isEqualTo(31);
assertThat(RA == 31).as("rod is 31, not" + RA).isTrue();
ITestBean spousesSpouse = (ITestBean) accessor.getPropertyValue("spouse.spouse");
assertThat(target).as("spousesSpouse = initial point").isSameAs(spousesSpouse);
assertThat(target == spousesSpouse).as("spousesSpouse = initial point").isTrue();
}
@Test
@@ -236,14 +236,13 @@ abstract class AbstractPropertyAccessorTests {
}
@Test
@SuppressWarnings("unchecked")
void getPropertyIntermediateMapEntryIsNullWithAutoGrow() {
Foo target = new Foo();
AbstractPropertyAccessor accessor = createAccessor(target);
accessor.setConversionService(new DefaultConversionService());
accessor.setAutoGrowNestedPaths(true);
accessor.setPropertyValue("listOfMaps[0]['luckyNumber']", "9");
assertThat(target.listOfMaps.get(0)).containsEntry("luckyNumber", "9");
assertThat(target.listOfMaps.get(0).get("luckyNumber")).isEqualTo("9");
}
@Test
@@ -299,14 +298,13 @@ abstract class AbstractPropertyAccessorTests {
accessor.setPropertyValue("spouse.company", "Lewisham");
assertThat(kerry.getName()).as("kerry name is Kerry").isEqualTo("Kerry");
assertThat(target.getSpouse()).as("nested set worked").isSameAs(kerry);
assertThat(target.getSpouse() == kerry).as("nested set worked").isTrue();
assertThat(kerry.getSpouse()).as("no back relation").isNull();
accessor.setPropertyValue(new PropertyValue("spouse.spouse", target));
assertThat(kerry.getSpouse()).as("nested set worked").isSameAs(target);
assertThat(kerry.getSpouse() == target).as("nested set worked").isTrue();
AbstractPropertyAccessor kerryAccessor = createAccessor(kerry);
assertThat(kerryAccessor.getPropertyValue("spouse.spouse.spouse.spouse.company")).as("spouse.spouse.spouse.spouse.company=Lewisham")
.isEqualTo("Lewisham");
assertThat("Lewisham".equals(kerryAccessor.getPropertyValue("spouse.spouse.spouse.spouse.company"))).as("spouse.spouse.spouse.spouse.company=Lewisham").isTrue();
}
@Test
@@ -317,13 +315,13 @@ abstract class AbstractPropertyAccessorTests {
AbstractPropertyAccessor accessor = createAccessor(target);
accessor.setPropertyValue("spouse", kerry);
assertThat(target.getSpouse()).as("nested set worked").isSameAs(kerry);
assertThat(target.getSpouse() == kerry).as("nested set worked").isTrue();
assertThat(kerry.getSpouse()).as("no back relation").isNull();
accessor.setPropertyValue(new PropertyValue("spouse.spouse", target));
assertThat(kerry.getSpouse()).as("nested set worked").isSameAs(target);
assertThat(kerry.getAge()).as("kerry age not set").isEqualTo(0);
assertThat(kerry.getSpouse() == target).as("nested set worked").isTrue();
assertThat(kerry.getAge() == 0).as("kerry age not set").isTrue();
accessor.setPropertyValue(new PropertyValue("spouse.age", 35));
assertThat(kerry.getAge()).as("Set primitive on spouse").isEqualTo(35);
assertThat(kerry.getAge() == 35).as("Set primitive on spouse").isTrue();
assertThat(accessor.getPropertyValue("spouse")).isEqualTo(kerry);
assertThat(accessor.getPropertyValue("spouse.spouse")).isEqualTo(target);
@@ -361,7 +359,7 @@ abstract class AbstractPropertyAccessorTests {
accessor.getPropertyValue("spouse.bla");
}
catch (NotReadablePropertyException ex) {
assertThat(ex.getMessage()).contains(TestBean.class.getName());
assertThat(ex.getMessage().contains(TestBean.class.getName())).isTrue();
}
}
@@ -444,12 +442,12 @@ abstract class AbstractPropertyAccessorTests {
target.setAge(age);
target.setName(name);
AbstractPropertyAccessor accessor = createAccessor(target);
assertThat(target.getAge()).as("age is OK").isEqualTo(age);
assertThat(name).as("name is OK").isEqualTo(target.getName());
assertThat(target.getAge() == age).as("age is OK").isTrue();
assertThat(name.equals(target.getName())).as("name is OK").isTrue();
accessor.setPropertyValues(new MutablePropertyValues());
// Check its unchanged
assertThat(target.getAge()).as("age is OK").isEqualTo(age);
assertThat(name).as("name is OK").isEqualTo(target.getName());
assertThat(target.getAge() == age).as("age is OK").isTrue();
assertThat(name.equals(target.getName())).as("name is OK").isTrue();
}
@@ -465,9 +463,9 @@ abstract class AbstractPropertyAccessorTests {
pvs.addPropertyValue(new PropertyValue("name", newName));
pvs.addPropertyValue(new PropertyValue("touchy", newTouchy));
accessor.setPropertyValues(pvs);
assertThat(target.getName()).as("Name property should have changed").isEqualTo(newName);
assertThat(target.getTouchy()).as("Touchy property should have changed").isEqualTo(newTouchy);
assertThat(target.getAge()).as("Age property should have changed").isEqualTo(newAge);
assertThat(target.getName().equals(newName)).as("Name property should have changed").isTrue();
assertThat(target.getTouchy().equals(newTouchy)).as("Touchy property should have changed").isTrue();
assertThat(target.getAge() == newAge).as("Age property should have changed").isTrue();
}
@Test
@@ -482,7 +480,7 @@ abstract class AbstractPropertyAccessorTests {
accessor.setPropertyValue(new PropertyValue("touchy", newTouchy));
assertThat(target.getName()).as("Name property should have changed").isEqualTo(newName);
assertThat(target.getTouchy()).as("Touchy property should have changed").isEqualTo(newTouchy);
assertThat(target.getAge()).as("Age property should have changed").isEqualTo(newAge);
assertThat(target.getAge() == newAge).as("Age property should have changed").isTrue();
}
@Test
@@ -561,11 +559,11 @@ abstract class AbstractPropertyAccessorTests {
}
});
accessor.setPropertyValue("name", new String[] {});
assertThat(target.getName()).isEmpty();
assertThat(target.getName()).isEqualTo("");
accessor.setPropertyValue("name", new String[] {"a1", "b2"});
assertThat(target.getName()).isEqualTo("a1-b2");
accessor.setPropertyValue("name", null);
assertThat(target.getName()).isEmpty();
assertThat(target.getName()).isEqualTo("");
}
@Test
@@ -579,7 +577,7 @@ abstract class AbstractPropertyAccessorTests {
accessor.setPropertyValue("bool2", "false");
assertThat(Boolean.FALSE.equals(accessor.getPropertyValue("bool2"))).as("Correct bool2 value").isTrue();
assertThat(target.getBool2()).as("Correct bool2 value").isFalse();
assertThat(!target.getBool2()).as("Correct bool2 value").isTrue();
}
@Test
@@ -731,7 +729,7 @@ abstract class AbstractPropertyAccessorTests {
String freedomVal = target.properties.getProperty("freedom");
String peaceVal = target.properties.getProperty("peace");
assertThat(peaceVal).as("peace==war").isEqualTo("war");
assertThat(freedomVal).as("Freedom==slavery").isEqualTo("slavery");
assertThat(freedomVal.equals("slavery")).as("Freedom==slavery").isTrue();
}
@Test
@@ -1346,7 +1344,7 @@ abstract class AbstractPropertyAccessorTests {
pvs.addPropertyValue(new PropertyValue("more.garbage", new Object()));
AbstractPropertyAccessor accessor = createAccessor(target);
accessor.setPropertyValues(pvs, true);
assertThat(target.getName()).as("Set valid and ignored invalid").isEqualTo("rod");
assertThat(target.getName().equals("rod")).as("Set valid and ignored invalid").isTrue();
assertThatExceptionOfType(NotWritablePropertyException.class).isThrownBy(() ->
accessor.setPropertyValues(pvs, false)); // Don't ignore: should fail
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -31,7 +31,7 @@ public abstract class AbstractPropertyValuesTests {
* Must contain: forname=Tony surname=Blair age=50
*/
protected void doTestTony(PropertyValues pvs) {
assertThat(pvs.getPropertyValues()).as("Contains 3").hasSize(3);
assertThat(pvs.getPropertyValues().length == 3).as("Contains 3").isTrue();
assertThat(pvs.contains("forname")).as("Contains forname").isTrue();
assertThat(pvs.contains("surname")).as("Contains surname").isTrue();
assertThat(pvs.contains("age")).as("Contains age").isTrue();
@@ -45,13 +45,13 @@ public abstract class AbstractPropertyValuesTests {
m.put("age", "50");
for (PropertyValue element : ps) {
Object val = m.get(element.getName());
assertThat(val).as("Can't have unexpected value").isNotNull();
assertThat(val != null).as("Can't have unexpected value").isTrue();
boolean condition = val instanceof String;
assertThat(condition).as("Val i string").isTrue();
assertThat(val.equals(element.getValue())).as("val matches expected").isTrue();
m.remove(element.getName());
}
assertThat(m).as("Map size is 0").isEmpty();
assertThat(m.size() == 0).as("Map size is 0").isTrue();
}
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -135,7 +135,7 @@ class BeanUtilsTests {
PropertyDescriptor[] actual = Introspector.getBeanInfo(TestBean.class).getPropertyDescriptors();
PropertyDescriptor[] descriptors = BeanUtils.getPropertyDescriptors(TestBean.class);
assertThat(descriptors).as("Descriptors should not be null").isNotNull();
assertThat(descriptors).as("Invalid number of descriptors returned").hasSameSizeAs(actual);
assertThat(descriptors.length).as("Invalid number of descriptors returned").isEqualTo(actual.length);
}
@Test
@@ -161,13 +161,13 @@ class BeanUtilsTests {
tb.setAge(32);
tb.setTouchy("touchy");
TestBean tb2 = new TestBean();
assertThat(tb2.getName()).as("Name empty").isNull();
assertThat(tb2.getAge()).as("Age empty").isEqualTo(0);
assertThat(tb2.getTouchy()).as("Touchy empty").isNull();
assertThat(tb2.getName() == null).as("Name empty").isTrue();
assertThat(tb2.getAge() == 0).as("Age empty").isTrue();
assertThat(tb2.getTouchy() == null).as("Touchy empty").isTrue();
BeanUtils.copyProperties(tb, tb2);
assertThat(tb2.getName()).as("Name copied").isEqualTo(tb.getName());
assertThat(tb2.getAge()).as("Age copied").isEqualTo(tb.getAge());
assertThat(tb2.getTouchy()).as("Touchy copied").isEqualTo(tb.getTouchy());
assertThat(tb2.getName().equals(tb.getName())).as("Name copied").isTrue();
assertThat(tb2.getAge() == tb.getAge()).as("Age copied").isTrue();
assertThat(tb2.getTouchy().equals(tb.getTouchy())).as("Touchy copied").isTrue();
}
@Test
@@ -177,13 +177,13 @@ class BeanUtilsTests {
tb.setAge(32);
tb.setTouchy("touchy");
TestBean tb2 = new TestBean();
assertThat(tb2.getName()).as("Name empty").isNull();
assertThat(tb2.getAge()).as("Age empty").isEqualTo(0);
assertThat(tb2.getTouchy()).as("Touchy empty").isNull();
assertThat(tb2.getName() == null).as("Name empty").isTrue();
assertThat(tb2.getAge() == 0).as("Age empty").isTrue();
assertThat(tb2.getTouchy() == null).as("Touchy empty").isTrue();
BeanUtils.copyProperties(tb, tb2);
assertThat(tb2.getName()).as("Name copied").isEqualTo(tb.getName());
assertThat(tb2.getAge()).as("Age copied").isEqualTo(tb.getAge());
assertThat(tb2.getTouchy()).as("Touchy copied").isEqualTo(tb.getTouchy());
assertThat(tb2.getName().equals(tb.getName())).as("Name copied").isTrue();
assertThat(tb2.getAge() == tb.getAge()).as("Age copied").isTrue();
assertThat(tb2.getTouchy().equals(tb.getTouchy())).as("Touchy copied").isTrue();
}
@Test
@@ -193,13 +193,13 @@ class BeanUtilsTests {
tb.setAge(32);
tb.setTouchy("touchy");
DerivedTestBean tb2 = new DerivedTestBean();
assertThat(tb2.getName()).as("Name empty").isNull();
assertThat(tb2.getAge()).as("Age empty").isEqualTo(0);
assertThat(tb2.getTouchy()).as("Touchy empty").isNull();
assertThat(tb2.getName() == null).as("Name empty").isTrue();
assertThat(tb2.getAge() == 0).as("Age empty").isTrue();
assertThat(tb2.getTouchy() == null).as("Touchy empty").isTrue();
BeanUtils.copyProperties(tb, tb2);
assertThat(tb2.getName()).as("Name copied").isEqualTo(tb.getName());
assertThat(tb2.getAge()).as("Age copied").isEqualTo(tb.getAge());
assertThat(tb2.getTouchy()).as("Touchy copied").isEqualTo(tb.getTouchy());
assertThat(tb2.getName().equals(tb.getName())).as("Name copied").isTrue();
assertThat(tb2.getAge() == tb.getAge()).as("Age copied").isTrue();
assertThat(tb2.getTouchy().equals(tb.getTouchy())).as("Touchy copied").isTrue();
}
/**
@@ -342,37 +342,37 @@ class BeanUtilsTests {
@Test
void copyPropertiesWithEditable() throws Exception {
TestBean tb = new TestBean();
assertThat(tb.getName()).as("Name empty").isNull();
assertThat(tb.getName() == null).as("Name empty").isTrue();
tb.setAge(32);
tb.setTouchy("bla");
TestBean tb2 = new TestBean();
tb2.setName("rod");
assertThat(tb2.getAge()).as("Age empty").isEqualTo(0);
assertThat(tb2.getTouchy()).as("Touchy empty").isNull();
assertThat(tb2.getAge() == 0).as("Age empty").isTrue();
assertThat(tb2.getTouchy() == null).as("Touchy empty").isTrue();
// "touchy" should not be copied: it's not defined in ITestBean
BeanUtils.copyProperties(tb, tb2, ITestBean.class);
assertThat(tb2.getName()).as("Name copied").isNull();
assertThat(tb2.getAge()).as("Age copied").isEqualTo(32);
assertThat(tb2.getTouchy()).as("Touchy still empty").isNull();
assertThat(tb2.getName() == null).as("Name copied").isTrue();
assertThat(tb2.getAge() == 32).as("Age copied").isTrue();
assertThat(tb2.getTouchy() == null).as("Touchy still empty").isTrue();
}
@Test
void copyPropertiesWithIgnore() throws Exception {
TestBean tb = new TestBean();
assertThat(tb.getName()).as("Name empty").isNull();
assertThat(tb.getName() == null).as("Name empty").isTrue();
tb.setAge(32);
tb.setTouchy("bla");
TestBean tb2 = new TestBean();
tb2.setName("rod");
assertThat(tb2.getAge()).as("Age empty").isEqualTo(0);
assertThat(tb2.getTouchy()).as("Touchy empty").isNull();
assertThat(tb2.getAge() == 0).as("Age empty").isTrue();
assertThat(tb2.getTouchy() == null).as("Touchy empty").isTrue();
// "spouse", "touchy", "age" should not be copied
BeanUtils.copyProperties(tb, tb2, "spouse", "touchy", "age");
assertThat(tb2.getName()).as("Name copied").isNull();
assertThat(tb2.getAge()).as("Age still empty").isEqualTo(0);
assertThat(tb2.getTouchy()).as("Touchy still empty").isNull();
assertThat(tb2.getName() == null).as("Name copied").isTrue();
assertThat(tb2.getAge() == 0).as("Age still empty").isTrue();
assertThat(tb2.getTouchy() == null).as("Touchy still empty").isTrue();
}
@Test
@@ -381,7 +381,7 @@ class BeanUtilsTests {
source.setName("name");
TestBean target = new TestBean();
BeanUtils.copyProperties(source, target, "specialProperty");
assertThat(target.getName()).isEqualTo("name");
assertThat("name").isEqualTo(target.getName());
}
@Test
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -90,15 +90,15 @@ public class BeanWrapperAutoGrowingTests {
@Test
public void getPropertyValueAutoGrow2dArray() {
assertThat(wrapper.getPropertyValue("multiArray[0][0]")).isNotNull();
assertNotNull(wrapper.getPropertyValue("multiArray[0][0]"));
assertThat(bean.getMultiArray()[0]).hasSize(1);
assertThat(bean.getMultiArray()[0][0]).isInstanceOf(Bean.class);
}
@Test
public void getPropertyValueAutoGrow3dArray() {
assertThat(wrapper.getPropertyValue("threeDimensionalArray[1][2][3]")).isNotNull();
assertThat(bean.getThreeDimensionalArray()[1]).hasNumberOfRows(3);
assertNotNull(wrapper.getPropertyValue("threeDimensionalArray[1][2][3]"));
assertThat(bean.getThreeDimensionalArray()[1].length).isEqualTo(3);
assertThat(bean.getThreeDimensionalArray()[1][2][3]).isInstanceOf(Bean.class);
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -161,8 +161,8 @@ class BeanWrapperGenericsTests {
value2.add(Boolean.TRUE);
input.put("2", value2);
bw.setPropertyValue("collectionMap", input);
assertThat(gb.getCollectionMap().get(1)).isInstanceOf(HashSet.class);
assertThat(gb.getCollectionMap().get(2)).isInstanceOf(ArrayList.class);
assertThat(gb.getCollectionMap().get(1) instanceof HashSet).isTrue();
assertThat(gb.getCollectionMap().get(2) instanceof ArrayList).isTrue();
}
@Test
@@ -174,7 +174,7 @@ class BeanWrapperGenericsTests {
HashSet<Integer> value1 = new HashSet<>();
value1.add(1);
bw.setPropertyValue("collectionMap[1]", value1);
assertThat(gb.getCollectionMap().get(1)).isInstanceOf(HashSet.class);
assertThat(gb.getCollectionMap().get(1) instanceof HashSet).isTrue();
}
@Test
@@ -320,7 +320,7 @@ class BeanWrapperGenericsTests {
bw.setPropertyValue("mapOfInteger", map);
Object obj = gb.getMapOfInteger().get("testKey");
assertThat(obj).isInstanceOf(Integer.class);
assertThat(obj instanceof Integer).isTrue();
}
@Test
@@ -334,7 +334,7 @@ class BeanWrapperGenericsTests {
bw.setPropertyValue("mapOfListOfInteger", map);
Object obj = gb.getMapOfListOfInteger().get("testKey").get(0);
assertThat(obj).isInstanceOf(Integer.class);
assertThat(obj instanceof Integer).isTrue();
assertThat(((Integer) obj).intValue()).isEqualTo(1);
}
@@ -350,7 +350,7 @@ class BeanWrapperGenericsTests {
bw.setPropertyValue("listOfMapOfInteger", list);
Object obj = gb.getListOfMapOfInteger().get(0).get("testKey");
assertThat(obj).isInstanceOf(Integer.class);
assertThat(obj instanceof Integer).isTrue();
assertThat(((Integer) obj).intValue()).isEqualTo(5);
}
@@ -365,7 +365,7 @@ class BeanWrapperGenericsTests {
bw.setPropertyValue("mapOfListOfListOfInteger", map);
Object obj = gb.getMapOfListOfListOfInteger().get("testKey").get(0).get(0);
assertThat(obj).isInstanceOf(Integer.class);
assertThat(obj instanceof Integer).isTrue();
assertThat(((Integer) obj).intValue()).isEqualTo(1);
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -246,16 +246,16 @@ class BeanWrapperTests extends AbstractPropertyAccessorTests {
accessor.setPropertyValue("object", tb);
assertThat(target.value).isSameAs(tb);
assertThat(target.getObject()).containsSame(tb);
assertThat(((Optional<TestBean>) accessor.getPropertyValue("object"))).containsSame(tb);
assertThat(target.getObject().get()).isSameAs(tb);
assertThat(((Optional<TestBean>) accessor.getPropertyValue("object")).get()).isSameAs(tb);
assertThat(target.value.getName()).isEqualTo("x");
assertThat(target.getObject().get().getName()).isEqualTo("x");
assertThat(accessor.getPropertyValue("object.name")).isEqualTo("x");
accessor.setPropertyValue("object.name", "y");
assertThat(target.value).isSameAs(tb);
assertThat(target.getObject()).containsSame(tb);
assertThat(((Optional<TestBean>) accessor.getPropertyValue("object"))).containsSame(tb);
assertThat(target.getObject().get()).isSameAs(tb);
assertThat(((Optional<TestBean>) accessor.getPropertyValue("object")).get()).isSameAs(tb);
assertThat(target.value.getName()).isEqualTo("y");
assertThat(target.getObject().get().getName()).isEqualTo("y");
assertThat(accessor.getPropertyValue("object.name")).isEqualTo("y");
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -585,7 +585,7 @@ class ExtendedBeanInfoTests {
assertThat(hasReadMethodForProperty(ebi, "foo")).isTrue();
assertThat(hasWriteMethodForProperty(ebi, "foo")).isTrue();
assertThat(ebi.getPropertyDescriptors()).hasSameSizeAs(bi.getPropertyDescriptors());
assertThat(ebi.getPropertyDescriptors()).hasSize(bi.getPropertyDescriptors().length);
}
@Test
@@ -711,7 +711,7 @@ class ExtendedBeanInfoTests {
BeanInfo bi = Introspector.getBeanInfo(TestBean.class);
BeanInfo ebi = new ExtendedBeanInfo(bi);
assertThat(ebi.getPropertyDescriptors()).hasSameSizeAs(bi.getPropertyDescriptors());
assertThat(ebi.getPropertyDescriptors()).hasSize(bi.getPropertyDescriptors().length);
}
@Test
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -70,7 +70,7 @@ public class MutablePropertyValuesTests extends AbstractPropertyValuesTests {
pvs.addPropertyValue(new PropertyValue("age", "50"));
MutablePropertyValues pvs2 = pvs;
PropertyValues changes = pvs2.changesSince(pvs);
assertThat(changes.getPropertyValues().length).as("changes are empty").isEqualTo(0);
assertThat(changes.getPropertyValues().length == 0).as("changes are empty").isTrue();
}
@Test
@@ -82,28 +82,26 @@ public class MutablePropertyValuesTests extends AbstractPropertyValuesTests {
MutablePropertyValues pvs2 = new MutablePropertyValues(pvs);
PropertyValues changes = pvs2.changesSince(pvs);
assertThat(changes.getPropertyValues().length).as("changes are empty, not of length " + changes.getPropertyValues().length)
.isEqualTo(0);
assertThat(changes.getPropertyValues().length == 0).as("changes are empty, not of length " + changes.getPropertyValues().length).isTrue();
pvs2.addPropertyValue(new PropertyValue("forname", "Gordon"));
changes = pvs2.changesSince(pvs);
assertThat(changes.getPropertyValues().length).as("1 change").isEqualTo(1);
PropertyValue fn = changes.getPropertyValue("forname");
assertThat(fn).as("change is forname").isNotNull();
assertThat(fn != null).as("change is forname").isTrue();
assertThat(fn.getValue().equals("Gordon")).as("new value is gordon").isTrue();
MutablePropertyValues pvs3 = new MutablePropertyValues(pvs);
changes = pvs3.changesSince(pvs);
assertThat(changes.getPropertyValues().length).as("changes are empty, not of length " + changes.getPropertyValues().length)
.isEqualTo(0);
assertThat(changes.getPropertyValues().length == 0).as("changes are empty, not of length " + changes.getPropertyValues().length).isTrue();
// add new
pvs3.addPropertyValue(new PropertyValue("foo", "bar"));
pvs3.addPropertyValue(new PropertyValue("fi", "fum"));
changes = pvs3.changesSince(pvs);
assertThat(changes.getPropertyValues().length).as("2 change").isEqualTo(2);
assertThat(changes.getPropertyValues().length == 2).as("2 change").isTrue();
fn = changes.getPropertyValue("foo");
assertThat(fn).as("change in foo").isNotNull();
assertThat(fn != null).as("change in foo").isTrue();
assertThat(fn.getValue().equals("bar")).as("new value is bar").isTrue();
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -30,8 +30,8 @@ public class PropertyAccessorUtilsTests {
@Test
public void getPropertyName() {
assertThat(PropertyAccessorUtils.getPropertyName("")).isEmpty();
assertThat(PropertyAccessorUtils.getPropertyName("[user]")).isEmpty();
assertThat(PropertyAccessorUtils.getPropertyName("")).isEqualTo("");
assertThat(PropertyAccessorUtils.getPropertyName("[user]")).isEqualTo("");
assertThat(PropertyAccessorUtils.getPropertyName("user")).isEqualTo("user");
}
@@ -69,7 +69,7 @@ public class PropertyAccessorUtilsTests {
@Test
public void canonicalPropertyName() {
assertThat(PropertyAccessorUtils.canonicalPropertyName(null)).isEmpty();
assertThat(PropertyAccessorUtils.canonicalPropertyName(null)).isEqualTo("");
assertThat(PropertyAccessorUtils.canonicalPropertyName("map")).isEqualTo("map");
assertThat(PropertyAccessorUtils.canonicalPropertyName("map[key1]")).isEqualTo("map[key1]");
assertThat(PropertyAccessorUtils.canonicalPropertyName("map['key1']")).isEqualTo("map[key1]");
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -85,7 +85,7 @@ public class BeanFactoryUtilsTests {
StaticListableBeanFactory lbf = new StaticListableBeanFactory();
lbf.addBean("t1", new TestBean());
lbf.addBean("t2", new TestBean());
assertThat(BeanFactoryUtils.countBeansIncludingAncestors(lbf)).isEqualTo(2);
assertThat(BeanFactoryUtils.countBeansIncludingAncestors(lbf) == 2).isTrue();
}
/**
@@ -94,10 +94,9 @@ public class BeanFactoryUtilsTests {
@Test
public void testHierarchicalCountBeansWithOverride() {
// Leaf count
assertThat(this.listableBeanFactory.getBeanDefinitionCount()).isEqualTo(1);
assertThat(this.listableBeanFactory.getBeanDefinitionCount() == 1).isTrue();
// Count minus duplicate
assertThat(BeanFactoryUtils.countBeansIncludingAncestors(this.listableBeanFactory)).as("Should count 8 beans, not " + BeanFactoryUtils.countBeansIncludingAncestors(this.listableBeanFactory))
.isEqualTo(8);
assertThat(BeanFactoryUtils.countBeansIncludingAncestors(this.listableBeanFactory) == 8).as("Should count 8 beans, not " + BeanFactoryUtils.countBeansIncludingAncestors(this.listableBeanFactory)).isTrue();
}
@Test
@@ -114,7 +113,7 @@ public class BeanFactoryUtilsTests {
assertThat(names).hasSize(1);
assertThat(names.contains("indexedBean")).isTrue();
// Distinguish from default ListableBeanFactory behavior
assertThat(listableBeanFactory.getBeanNamesForType(IndexedTestBean.class)).isEmpty();
assertThat(listableBeanFactory.getBeanNamesForType(IndexedTestBean.class).length == 0).isTrue();
}
@Test
@@ -289,7 +288,7 @@ public class BeanFactoryUtilsTests {
assertThat(names).hasSize(1);
assertThat(names.contains("annotatedBean")).isTrue();
// Distinguish from default ListableBeanFactory behavior
assertThat(listableBeanFactory.getBeanNamesForAnnotation(TestAnnotation.class)).isEmpty();
assertThat(listableBeanFactory.getBeanNamesForAnnotation(TestAnnotation.class).length == 0).isTrue();
}
@Test
@@ -137,7 +137,7 @@ class DefaultListableBeanFactoryTests {
KnowsIfInstantiated.clearInstantiationRecord();
Properties p = new Properties();
p.setProperty("x1.(class)", KnowsIfInstantiated.class.getName());
assertThat(KnowsIfInstantiated.wasInstantiated()).as("singleton not instantiated").isFalse();
assertThat(!KnowsIfInstantiated.wasInstantiated()).as("singleton not instantiated").isTrue();
registerBeanDefinitions(p);
lbf.preInstantiateSingletons();
assertThat(KnowsIfInstantiated.wasInstantiated()).as("singleton was instantiated").isTrue();
@@ -149,12 +149,12 @@ class DefaultListableBeanFactoryTests {
Properties p = new Properties();
p.setProperty("x1.(class)", KnowsIfInstantiated.class.getName());
p.setProperty("x1.(lazy-init)", "true");
assertThat(KnowsIfInstantiated.wasInstantiated()).as("singleton not instantiated").isFalse();
assertThat(!KnowsIfInstantiated.wasInstantiated()).as("singleton not instantiated").isTrue();
registerBeanDefinitions(p);
assertThat(KnowsIfInstantiated.wasInstantiated()).as("singleton not instantiated").isFalse();
assertThat(!KnowsIfInstantiated.wasInstantiated()).as("singleton not instantiated").isTrue();
lbf.preInstantiateSingletons();
assertThat(KnowsIfInstantiated.wasInstantiated()).as("singleton not instantiated").isFalse();
assertThat(!KnowsIfInstantiated.wasInstantiated()).as("singleton not instantiated").isTrue();
lbf.getBean("x1");
assertThat(KnowsIfInstantiated.wasInstantiated()).as("singleton was instantiated").isTrue();
}
@@ -166,13 +166,13 @@ class DefaultListableBeanFactoryTests {
// Reset static state
DummyFactory.reset();
p.setProperty("x1.singleton", "false");
assertThat(DummyFactory.wasPrototypeCreated()).as("prototype not instantiated").isFalse();
assertThat(!DummyFactory.wasPrototypeCreated()).as("prototype not instantiated").isTrue();
registerBeanDefinitions(p);
assertThat(DummyFactory.wasPrototypeCreated()).as("prototype not instantiated").isFalse();
assertThat(!DummyFactory.wasPrototypeCreated()).as("prototype not instantiated").isTrue();
assertThat(lbf.getType("x1")).isEqualTo(TestBean.class);
lbf.preInstantiateSingletons();
assertThat(DummyFactory.wasPrototypeCreated()).as("prototype not instantiated").isFalse();
assertThat(!DummyFactory.wasPrototypeCreated()).as("prototype not instantiated").isTrue();
lbf.getBean("x1");
assertThat(lbf.getType("x1")).isEqualTo(TestBean.class);
assertThat(lbf.containsBean("x1")).isTrue();
@@ -190,7 +190,7 @@ class DefaultListableBeanFactoryTests {
p.setProperty("x1.singleton", "false");
registerBeanDefinitions(p);
assertThat(DummyFactory.wasPrototypeCreated()).as("prototype not instantiated").isFalse();
assertThat(!DummyFactory.wasPrototypeCreated()).as("prototype not instantiated").isTrue();
assertBeanNamesForType(TestBean.class, false, false);
assertThat(lbf.getBeanNamesForAnnotation(SuppressWarnings.class)).isEmpty();
@@ -209,7 +209,7 @@ class DefaultListableBeanFactoryTests {
assertThat(lbf.isTypeMatch("&x1", ResolvableType.forClassWithGenerics(FactoryBean.class, String.class))).isFalse();
assertThat(lbf.getType("x1")).isEqualTo(TestBean.class);
assertThat(lbf.getType("&x1")).isEqualTo(DummyFactory.class);
assertThat(DummyFactory.wasPrototypeCreated()).as("prototype not instantiated").isFalse();
assertThat(!DummyFactory.wasPrototypeCreated()).as("prototype not instantiated").isTrue();
}
@Test
@@ -222,7 +222,7 @@ class DefaultListableBeanFactoryTests {
p.setProperty("x1.singleton", "true");
registerBeanDefinitions(p);
assertThat(DummyFactory.wasPrototypeCreated()).as("prototype not instantiated").isFalse();
assertThat(!DummyFactory.wasPrototypeCreated()).as("prototype not instantiated").isTrue();
assertBeanNamesForType(TestBean.class, false, false);
assertThat(lbf.getBeanNamesForAnnotation(SuppressWarnings.class)).isEmpty();
@@ -241,7 +241,7 @@ class DefaultListableBeanFactoryTests {
assertThat(lbf.isTypeMatch("&x1", ResolvableType.forClassWithGenerics(FactoryBean.class, String.class))).isFalse();
assertThat(lbf.getType("x1")).isEqualTo(TestBean.class);
assertThat(lbf.getType("&x1")).isEqualTo(DummyFactory.class);
assertThat(DummyFactory.wasPrototypeCreated()).as("prototype not instantiated").isFalse();
assertThat(!DummyFactory.wasPrototypeCreated()).as("prototype not instantiated").isTrue();
}
@Test
@@ -253,7 +253,7 @@ class DefaultListableBeanFactoryTests {
p.setProperty("x1.singleton", "false");
registerBeanDefinitions(p);
assertThat(DummyFactory.wasPrototypeCreated()).as("prototype not instantiated").isFalse();
assertThat(!DummyFactory.wasPrototypeCreated()).as("prototype not instantiated").isTrue();
assertBeanNamesForType(TestBean.class, false, false);
assertThat(lbf.getBeanNamesForAnnotation(SuppressWarnings.class)).isEmpty();
@@ -272,7 +272,7 @@ class DefaultListableBeanFactoryTests {
assertThat(lbf.isTypeMatch("&x1", ResolvableType.forClassWithGenerics(FactoryBean.class, String.class))).isFalse();
assertThat(lbf.getType("x1")).isEqualTo(TestBean.class);
assertThat(lbf.getType("&x1")).isEqualTo(DummyFactory.class);
assertThat(DummyFactory.wasPrototypeCreated()).as("prototype not instantiated").isFalse();
assertThat(!DummyFactory.wasPrototypeCreated()).as("prototype not instantiated").isTrue();
}
@Test
@@ -303,7 +303,7 @@ class DefaultListableBeanFactoryTests {
assertThat(lbf.isTypeMatch("&x1", Object.class)).isTrue();
assertThat(lbf.getType("x1")).isEqualTo(TestBean.class);
assertThat(lbf.getType("&x1")).isEqualTo(DummyFactory.class);
assertThat(DummyFactory.wasPrototypeCreated()).as("prototype not instantiated").isFalse();
assertThat(!DummyFactory.wasPrototypeCreated()).as("prototype not instantiated").isTrue();
lbf.registerAlias("x1", "x2");
assertThat(lbf.containsBean("x2")).isTrue();
@@ -449,9 +449,9 @@ class DefaultListableBeanFactoryTests {
@Test
void empty() {
assertThat(lbf.getBeanDefinitionNames()).as("No beans defined --> array != null").isNotNull();
assertThat(lbf.getBeanDefinitionNames()).as("No beans defined after no arg constructor").isEmpty();
assertThat(lbf.getBeanDefinitionCount()).as("No beans defined after no arg constructor").isEqualTo(0);
assertThat(lbf.getBeanDefinitionNames() != null).as("No beans defined --> array != null").isTrue();
assertThat(lbf.getBeanDefinitionNames().length == 0).as("No beans defined after no arg constructor").isTrue();
assertThat(lbf.getBeanDefinitionCount() == 0).as("No beans defined after no arg constructor").isTrue();
}
@Test
@@ -459,7 +459,7 @@ class DefaultListableBeanFactoryTests {
Properties p = new Properties();
registerBeanDefinitions(p);
assertThat(lbf.getBeanDefinitionCount()).as("No beans defined after ignorable invalid").isEqualTo(0);
assertThat(lbf.getBeanDefinitionCount() == 0).as("No beans defined after ignorable invalid").isTrue();
}
@Test
@@ -469,7 +469,7 @@ class DefaultListableBeanFactoryTests {
p.setProperty("qwert", "er");
registerBeanDefinitions(p, "test");
assertThat(lbf.getBeanDefinitionCount()).as("No beans defined after harmless ignorable rubbish").isEqualTo(0);
assertThat(lbf.getBeanDefinitionCount() == 0).as("No beans defined after harmless ignorable rubbish").isTrue();
}
@Test
@@ -480,7 +480,7 @@ class DefaultListableBeanFactoryTests {
p.setProperty("test.age", "48");
int count = registerBeanDefinitions(p);
assertThat(count).as("1 beans registered, not " + count).isEqualTo(1);
assertThat(count == 1).as("1 beans registered, not " + count).isTrue();
testPropertiesPopulation(lbf);
}
@@ -493,7 +493,7 @@ class DefaultListableBeanFactoryTests {
p.setProperty(PREFIX + "test.age", "0x30");
int count = registerBeanDefinitions(p, PREFIX);
assertThat(count).as("1 beans registered, not " + count).isEqualTo(1);
assertThat(count == 1).as("1 beans registered, not " + count).isTrue();
testPropertiesPopulation(lbf);
}
@@ -524,13 +524,13 @@ class DefaultListableBeanFactoryTests {
p.setProperty(PREFIX + "kerry.spouse(ref)", "rod");
int count = registerBeanDefinitions(p, PREFIX);
assertThat(count).as("2 beans registered, not " + count).isEqualTo(2);
assertThat(count == 2).as("2 beans registered, not " + count).isTrue();
TestBean kerry = lbf.getBean("kerry", TestBean.class);
assertThat(kerry.getName()).as("Kerry name is Kerry").isEqualTo("Kerry");
assertThat("Kerry".equals(kerry.getName())).as("Kerry name is Kerry").isTrue();
ITestBean spouse = kerry.getSpouse();
assertThat(spouse).as("Kerry spouse is non null").isNotNull();
assertThat(spouse.getName()).as("Kerry spouse name is Rod").isEqualTo("Rod");
assertThat(spouse != null).as("Kerry spouse is non null").isTrue();
assertThat("Rod".equals(spouse.getName())).as("Kerry spouse name is Rod").isTrue();
}
@Test
@@ -541,7 +541,7 @@ class DefaultListableBeanFactoryTests {
p.setProperty("tb.someMap[my.key]", "my.value");
int count = registerBeanDefinitions(p);
assertThat(count).as("1 beans registered, not " + count).isEqualTo(1);
assertThat(count == 1).as("1 beans registered, not " + count).isTrue();
assertThat(lbf.getBeanDefinitionCount()).isEqualTo(1);
TestBean tb = lbf.getBean("tb", TestBean.class);
@@ -682,8 +682,8 @@ class DefaultListableBeanFactoryTests {
registerBeanDefinitions(p);
TestBean kerry1 = (TestBean) lbf.getBean("kerry");
TestBean kerry2 = (TestBean) lbf.getBean("kerry");
assertThat(kerry1).as("Non null").isNotNull();
assertThat(kerry1).as("Singletons equal").isSameAs(kerry2);
assertThat(kerry1 != null).as("Non null").isTrue();
assertThat(kerry1 == kerry2).as("Singletons equal").isTrue();
p = new Properties();
p.setProperty("kerry.(class)", TestBean.class.getName());
@@ -692,8 +692,8 @@ class DefaultListableBeanFactoryTests {
registerBeanDefinitions(p);
kerry1 = (TestBean) lbf.getBean("kerry");
kerry2 = (TestBean) lbf.getBean("kerry");
assertThat(kerry1).as("Non null").isNotNull();
assertThat(kerry1).as("Prototypes NOT equal").isNotSameAs(kerry2);
assertThat(kerry1 != null).as("Non null").isTrue();
assertThat(kerry1 != kerry2).as("Prototypes NOT equal").isTrue();
p = new Properties();
p.setProperty("kerry.(class)", TestBean.class.getName());
@@ -702,8 +702,8 @@ class DefaultListableBeanFactoryTests {
registerBeanDefinitions(p);
kerry1 = (TestBean) lbf.getBean("kerry");
kerry2 = (TestBean) lbf.getBean("kerry");
assertThat(kerry1).as("Non null").isNotNull();
assertThat(kerry1).as("Specified singletons equal").isSameAs(kerry2);
assertThat(kerry1 != null).as("Non null").isTrue();
assertThat(kerry1 == kerry2).as("Specified singletons equal").isTrue();
}
@Test
@@ -737,7 +737,7 @@ class DefaultListableBeanFactoryTests {
TestBean kerry2 = (TestBean) lbf.getBean("kerry");
assertThat(kerry1.getName()).isEqualTo("kerry");
assertThat(kerry1).as("Non null").isNotNull();
assertThat(kerry1).as("Singletons equal").isSameAs(kerry2);
assertThat(kerry1 == kerry2).as("Singletons equal").isTrue();
p = new Properties();
p.setProperty("wife.(class)", TestBean.class.getName());
@@ -750,8 +750,8 @@ class DefaultListableBeanFactoryTests {
assertThat(lbf.isSingleton("kerry")).isFalse();
kerry1 = (TestBean) lbf.getBean("kerry");
kerry2 = (TestBean) lbf.getBean("kerry");
assertThat(kerry1).as("Non null").isNotNull();
assertThat(kerry1).as("Prototypes NOT equal").isNotSameAs(kerry2);
assertThat(kerry1 != null).as("Non null").isTrue();
assertThat(kerry1 != kerry2).as("Prototypes NOT equal").isTrue();
p = new Properties();
p.setProperty("kerry.(class)", TestBean.class.getName());
@@ -760,8 +760,8 @@ class DefaultListableBeanFactoryTests {
registerBeanDefinitions(p);
kerry1 = (TestBean) lbf.getBean("kerry");
kerry2 = (TestBean) lbf.getBean("kerry");
assertThat(kerry1).as("Non null").isNotNull();
assertThat(kerry1).as("Specified singletons equal").isSameAs(kerry2);
assertThat(kerry1 != null).as("Non null").isTrue();
assertThat(kerry1 == kerry2).as("Specified singletons equal").isTrue();
}
@Test
@@ -790,32 +790,6 @@ class DefaultListableBeanFactoryTests {
assertThat(mergedBeanDefinition1).as("Use cached merged bean definition").isSameAs(mergedBeanDefinition2);
}
@Test
void hintAtPossibleDuplicateArgumentsInParentAndChildWhenMixingIndexAndNamed() {
final String EXPECTED_NAME = "Juergen";
final int EXPECTED_AGE = 41;
RootBeanDefinition parentDefinition = new RootBeanDefinition(TestBean.class);
parentDefinition.setAbstract(true);
parentDefinition.getConstructorArgumentValues().addIndexedArgumentValue(0, EXPECTED_NAME);
ChildBeanDefinition childDefinition = new ChildBeanDefinition("parent");
childDefinition.getConstructorArgumentValues().addGenericArgumentValue(new ConstructorArgumentValues.ValueHolder(EXPECTED_NAME, null, "name"));
childDefinition.getConstructorArgumentValues().addGenericArgumentValue(new ConstructorArgumentValues.ValueHolder(EXPECTED_AGE, null, "age"));
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
factory.registerBeanDefinition("parent", parentDefinition);
factory.registerBeanDefinition("child", childDefinition);
assertThatExceptionOfType(BeanCreationException.class)
.isThrownBy(() -> factory.getBean("child", TestBean.class))
.withMessage("Error creating bean with name 'child': Could not resolve matching constructor on bean class " +
"[org.springframework.beans.testfixture.beans.TestBean] (hint: specify index/type/name arguments " +
"for simple parameters to avoid type ambiguities. " +
"You should also check the consistency of arguments when mixing indexed and named arguments, " +
"especially in case of bean definition inheritance)");
}
@Test
void getTypeWorksAfterParentChildMerging() {
RootBeanDefinition parentDefinition = new RootBeanDefinition(TestBean.class);
@@ -998,7 +972,7 @@ class DefaultListableBeanFactoryTests {
TestBean k = (TestBean) lbf.getBean("k");
TestBean r = (TestBean) lbf.getBean("r");
assertThat(k.getSpouse()).isSameAs(r);
assertThat(k.getSpouse() == r).isTrue();
}
@Test
@@ -1010,7 +984,7 @@ class DefaultListableBeanFactoryTests {
registerBeanDefinitions(p);
TestBean r = (TestBean) lbf.getBean("r");
assertThat(r.getName()).isEqualTo(name);
assertThat(r.getName().equals(name)).isTrue();
}
@Test
@@ -1026,7 +1000,7 @@ class DefaultListableBeanFactoryTests {
lbf.registerBeanDefinition("testBean", bd);
TestBean testBean = (TestBean) lbf.getBean("testBean");
assertThat(testBean.getMyFloat()).isEqualTo(1.1f);
assertThat(testBean.getMyFloat() == 1.1f).isTrue();
}
@Test
@@ -1050,7 +1024,7 @@ class DefaultListableBeanFactoryTests {
lbf.registerBeanDefinition("testBean", bd);
TestBean testBean = (TestBean) lbf.getBean("testBean");
assertThat(testBean.getMyFloat()).isEqualTo(1.1f);
assertThat(testBean.getMyFloat() == 1.1f).isTrue();
}
@Test
@@ -1067,7 +1041,7 @@ class DefaultListableBeanFactoryTests {
lbf.registerSingleton("myFloat", "1,1");
TestBean testBean = (TestBean) lbf.getBean("testBean");
assertThat(testBean.getMyFloat()).isEqualTo(1.1f);
assertThat(testBean.getMyFloat() == 1.1f).isTrue();
}
@Test
@@ -1084,7 +1058,7 @@ class DefaultListableBeanFactoryTests {
TestBean testBean = (TestBean) lbf.getBean("testBean");
assertThat(testBean.getName()).isEqualTo("myName");
assertThat(testBean.getAge()).isEqualTo(5);
assertThat(testBean.getMyFloat()).isEqualTo(1.1f);
assertThat(testBean.getMyFloat() == 1.1f).isTrue();
}
@Test
@@ -1102,7 +1076,7 @@ class DefaultListableBeanFactoryTests {
TestBean testBean = (TestBean) lbf.getBean("testBean");
assertThat(testBean.getName()).isEqualTo("myName");
assertThat(testBean.getAge()).isEqualTo(5);
assertThat(testBean.getMyFloat()).isEqualTo(1.1f);
assertThat(testBean.getMyFloat() == 1.1f).isTrue();
}
@Test
@@ -1326,7 +1300,7 @@ class DefaultListableBeanFactoryTests {
assertThat(lbf.getBeanDefinitionCount()).isEqualTo(1);
Object registered = lbf.autowire(NoDependencies.class, AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE, false);
assertThat(lbf.getBeanDefinitionCount()).isEqualTo(1);
assertThat(registered).isInstanceOf(NoDependencies.class);
assertThat(registered instanceof NoDependencies).isTrue();
}
@Test
@@ -1397,8 +1371,8 @@ class DefaultListableBeanFactoryTests {
lbf.autowire(ConstructorDependenciesBean.class, AutowireCapableBeanFactory.AUTOWIRE_CONSTRUCTOR, true);
Object spouse = lbf.getBean("spouse");
assertThat(bean.getSpouse1()).isSameAs(spouse);
assertThat(BeanFactoryUtils.beanOfType(lbf, TestBean.class)).isSameAs(spouse);
assertThat(bean.getSpouse1() == spouse).isTrue();
assertThat(BeanFactoryUtils.beanOfType(lbf, TestBean.class) == spouse).isTrue();
}
@Test
@@ -1410,7 +1384,7 @@ class DefaultListableBeanFactoryTests {
TestBean spouse = (TestBean) lbf.getBean("spouse");
assertThat(bean.getSpouse()).isEqualTo(spouse);
assertThat(BeanFactoryUtils.beanOfType(lbf, TestBean.class)).isSameAs(spouse);
assertThat(BeanFactoryUtils.beanOfType(lbf, TestBean.class) == spouse).isTrue();
}
@Test
@@ -2274,7 +2248,7 @@ class DefaultListableBeanFactoryTests {
for (int i = 0; i < 1000; i++) {
TestBean bean = (TestBean) lbf.getBean("bean" + i);
TestBean otherBean = (TestBean) lbf.getBean("bean" + (i < 99 ? i + 1 : 0));
assertThat(bean.getSpouse()).isSameAs(otherBean);
assertThat(bean.getSpouse() == otherBean).isTrue();
}
}
@@ -2376,8 +2350,8 @@ class DefaultListableBeanFactoryTests {
factory.registerBeanDefinition("tb2", bd2);
factory.registerBeanDefinition("tb3", new RootBeanDefinition(TestBean.class));
assertThat(((AbstractBeanDefinition) factory.getMergedBeanDefinition("tb1")).getLazyInit()).isTrue();
assertThat(((AbstractBeanDefinition) factory.getMergedBeanDefinition("tb2")).getLazyInit()).isFalse();
assertThat(((AbstractBeanDefinition) factory.getMergedBeanDefinition("tb1")).getLazyInit()).isEqualTo(Boolean.TRUE);
assertThat(((AbstractBeanDefinition) factory.getMergedBeanDefinition("tb2")).getLazyInit()).isEqualTo(Boolean.FALSE);
assertThat(((AbstractBeanDefinition) factory.getMergedBeanDefinition("tb3")).getLazyInit()).isNull();
factory.preInstantiateSingletons();
@@ -2431,7 +2405,7 @@ class DefaultListableBeanFactoryTests {
assertThat(tb.getBeanName()).isEqualTo("myBeanName");
DerivedTestBean tb2 = (DerivedTestBean) lbf.getBean("test");
assertThat(tb).isNotSameAs(tb2);
assertThat(tb != tb2).isTrue();
assertThat(tb2.getName()).isEqualTo("myName");
assertThat(tb2.getBeanName()).isEqualTo("myBeanName");
}
@@ -2450,7 +2424,7 @@ class DefaultListableBeanFactoryTests {
assertThat(tb.getBeanName()).isEqualTo("myBeanName");
DerivedTestBean tb2 = (DerivedTestBean) lbf.getBean("test");
assertThat(tb).isNotSameAs(tb2);
assertThat(tb != tb2).isTrue();
assertThat(tb2.getName()).isEqualTo("myName");
assertThat(tb2.getBeanName()).isEqualTo("myBeanName");
}
@@ -2773,7 +2747,7 @@ class DefaultListableBeanFactoryTests {
bd.setFactoryMethodName("empty");
lbf.registerBeanDefinition("optionalBean", bd);
assertThat((Optional<?>) lbf.getBean(Optional.class)).isEmpty();
assertThat((Optional<?>) lbf.getBean(Optional.class)).isSameAs(Optional.empty());
}
@Test
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -494,7 +494,7 @@ public class InjectAnnotationBeanPostProcessorTests {
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
OptionalFieldInjectionBean bean = (OptionalFieldInjectionBean) bf.getBean("annotatedBean");
assertThat(bean.getTestBean()).isPresent();
assertThat(bean.getTestBean().isPresent()).isTrue();
assertThat(bean.getTestBean().get()).isSameAs(bf.getBean("testBean"));
}
@@ -503,7 +503,7 @@ public class InjectAnnotationBeanPostProcessorTests {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(OptionalFieldInjectionBean.class));
OptionalFieldInjectionBean bean = (OptionalFieldInjectionBean) bf.getBean("annotatedBean");
assertThat(bean.getTestBean()).isNotPresent();
assertThat(bean.getTestBean().isPresent()).isFalse();
}
@Test
@@ -512,7 +512,7 @@ public class InjectAnnotationBeanPostProcessorTests {
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
OptionalMethodInjectionBean bean = (OptionalMethodInjectionBean) bf.getBean("annotatedBean");
assertThat(bean.getTestBean()).isPresent();
assertThat(bean.getTestBean().isPresent()).isTrue();
assertThat(bean.getTestBean().get()).isSameAs(bf.getBean("testBean"));
}
@@ -521,7 +521,7 @@ public class InjectAnnotationBeanPostProcessorTests {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(OptionalMethodInjectionBean.class));
OptionalMethodInjectionBean bean = (OptionalMethodInjectionBean) bf.getBean("annotatedBean");
assertThat(bean.getTestBean()).isNotPresent();
assertThat(bean.getTestBean().isPresent()).isFalse();
}
@Test
@@ -530,7 +530,7 @@ public class InjectAnnotationBeanPostProcessorTests {
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
OptionalListFieldInjectionBean bean = (OptionalListFieldInjectionBean) bf.getBean("annotatedBean");
assertThat(bean.getTestBean()).isPresent();
assertThat(bean.getTestBean().isPresent()).isTrue();
assertThat(bean.getTestBean().get().get(0)).isSameAs(bf.getBean("testBean"));
}
@@ -539,7 +539,7 @@ public class InjectAnnotationBeanPostProcessorTests {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(OptionalListFieldInjectionBean.class));
OptionalListFieldInjectionBean bean = (OptionalListFieldInjectionBean) bf.getBean("annotatedBean");
assertThat(bean.getTestBean()).isNotPresent();
assertThat(bean.getTestBean().isPresent()).isFalse();
}
@Test
@@ -548,7 +548,7 @@ public class InjectAnnotationBeanPostProcessorTests {
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
OptionalListMethodInjectionBean bean = (OptionalListMethodInjectionBean) bf.getBean("annotatedBean");
assertThat(bean.getTestBean()).isPresent();
assertThat(bean.getTestBean().isPresent()).isTrue();
assertThat(bean.getTestBean().get().get(0)).isSameAs(bf.getBean("testBean"));
}
@@ -557,7 +557,7 @@ public class InjectAnnotationBeanPostProcessorTests {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(OptionalListMethodInjectionBean.class));
OptionalListMethodInjectionBean bean = (OptionalListMethodInjectionBean) bf.getBean("annotatedBean");
assertThat(bean.getTestBean()).isNotPresent();
assertThat(bean.getTestBean().isPresent()).isFalse();
}
@Test
@@ -566,7 +566,7 @@ public class InjectAnnotationBeanPostProcessorTests {
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
ProviderOfOptionalFieldInjectionBean bean = (ProviderOfOptionalFieldInjectionBean) bf.getBean("annotatedBean");
assertThat(bean.getTestBean()).isPresent();
assertThat(bean.getTestBean().isPresent()).isTrue();
assertThat(bean.getTestBean().get()).isSameAs(bf.getBean("testBean"));
}
@@ -575,7 +575,7 @@ public class InjectAnnotationBeanPostProcessorTests {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ProviderOfOptionalFieldInjectionBean.class));
ProviderOfOptionalFieldInjectionBean bean = (ProviderOfOptionalFieldInjectionBean) bf.getBean("annotatedBean");
assertThat(bean.getTestBean()).isNotPresent();
assertThat(bean.getTestBean().isPresent()).isFalse();
}
@Test
@@ -584,7 +584,7 @@ public class InjectAnnotationBeanPostProcessorTests {
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
ProviderOfOptionalMethodInjectionBean bean = (ProviderOfOptionalMethodInjectionBean) bf.getBean("annotatedBean");
assertThat(bean.getTestBean()).isPresent();
assertThat(bean.getTestBean().isPresent()).isTrue();
assertThat(bean.getTestBean().get()).isSameAs(bf.getBean("testBean"));
}
@@ -593,7 +593,7 @@ public class InjectAnnotationBeanPostProcessorTests {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ProviderOfOptionalMethodInjectionBean.class));
ProviderOfOptionalMethodInjectionBean bean = (ProviderOfOptionalMethodInjectionBean) bf.getBean("annotatedBean");
assertThat(bean.getTestBean()).isNotPresent();
assertThat(bean.getTestBean().isPresent()).isFalse();
}
@Test
@@ -406,7 +406,7 @@ class BeanDefinitionMethodGeneratorTests {
compile(method, (actual, compiled) -> {
ManagedList<RootBeanDefinition> actualPropertyValue = (ManagedList<RootBeanDefinition>) actual
.getPropertyValues().get("someList");
assertThat(actualPropertyValue).hasSize(2);
assertThat(actualPropertyValue).isNotNull().hasSize(2);
assertThat(actualPropertyValue.get(0).getPropertyValues().get("name")).isEqualTo("one");
assertThat(actualPropertyValue.get(1).getPropertyValues().get("name")).isEqualTo("two");
assertThat(compiled.getSourceFileFromPackage(TestBean.class.getPackageName()))
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
package org.springframework.beans.factory.aot;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.function.BiConsumer;
@@ -30,9 +31,7 @@ import org.springframework.aot.generate.ClassNameGenerator;
import org.springframework.aot.generate.GenerationContext;
import org.springframework.aot.generate.MethodReference;
import org.springframework.aot.generate.MethodReference.ArgumentCodeGenerator;
import org.springframework.aot.hint.MemberCategory;
import org.springframework.aot.test.generate.TestGenerationContext;
import org.springframework.beans.factory.aot.BeanRegistrationsAotContribution.Registration;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.support.RegisteredBean;
import org.springframework.beans.factory.support.RootBeanDefinition;
@@ -48,7 +47,7 @@ import org.springframework.javapoet.MethodSpec;
import org.springframework.javapoet.ParameterizedTypeName;
import static org.assertj.core.api.Assertions.assertThat;
import static org.springframework.aot.hint.predicate.RuntimeHintsPredicates.reflection;
import static org.springframework.beans.factory.aot.BeanRegistrationsAotContribution.Registration;
/**
* Tests for {@link BeanRegistrationsAotContribution}.
@@ -56,25 +55,35 @@ import static org.springframework.aot.hint.predicate.RuntimeHintsPredicates.refl
* @author Phillip Webb
* @author Sebastien Deleuze
* @author Stephane Nicoll
* @author Brian Clozel
*/
class BeanRegistrationsAotContributionTests {
private final DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
private final DefaultListableBeanFactory beanFactory;
private final BeanDefinitionMethodGeneratorFactory methodGeneratorFactory = new BeanDefinitionMethodGeneratorFactory(
AotServices.factoriesAndBeans(new MockSpringFactoriesLoader(), this.beanFactory));
private final BeanDefinitionMethodGeneratorFactory methodGeneratorFactory;
private TestGenerationContext generationContext = new TestGenerationContext();
private TestGenerationContext generationContext;
private MockBeanFactoryInitializationCode beanFactoryInitializationCode = new MockBeanFactoryInitializationCode(this.generationContext);
private MockBeanFactoryInitializationCode beanFactoryInitializationCode;
BeanRegistrationsAotContributionTests() {
MockSpringFactoriesLoader springFactoriesLoader = new MockSpringFactoriesLoader();
this.beanFactory = new DefaultListableBeanFactory();
this.methodGeneratorFactory = new BeanDefinitionMethodGeneratorFactory(
AotServices.factoriesAndBeans(springFactoriesLoader, this.beanFactory));
this.generationContext = new TestGenerationContext();
this.beanFactoryInitializationCode = new MockBeanFactoryInitializationCode(this.generationContext);
}
@Test
void applyToAppliesContribution() {
RegisteredBean registeredBean = registerBean(new RootBeanDefinition(TestBean.class));
BeanDefinitionMethodGenerator generator = new BeanDefinitionMethodGenerator(this.methodGeneratorFactory,
registeredBean, null, List.of());
RegisteredBean registeredBean = registerBean(
new RootBeanDefinition(TestBean.class));
BeanDefinitionMethodGenerator generator = new BeanDefinitionMethodGenerator(
this.methodGeneratorFactory, registeredBean, null,
Collections.emptyList());
BeanRegistrationsAotContribution contribution = createContribution(generator);
contribution.applyTo(this.generationContext, this.beanFactoryInitializationCode);
compile((consumer, compiled) -> {
@@ -86,9 +95,11 @@ class BeanRegistrationsAotContributionTests {
@Test
void applyToAppliesContributionWithAliases() {
RegisteredBean registeredBean = registerBean(new RootBeanDefinition(TestBean.class));
BeanDefinitionMethodGenerator generator = new BeanDefinitionMethodGenerator(this.methodGeneratorFactory,
registeredBean, null, List.of());
RegisteredBean registeredBean = registerBean(
new RootBeanDefinition(TestBean.class));
BeanDefinitionMethodGenerator generator = new BeanDefinitionMethodGenerator(
this.methodGeneratorFactory, registeredBean, null,
Collections.emptyList());
BeanRegistrationsAotContribution contribution = createContribution(generator, "testAlias");
contribution.applyTo(this.generationContext, this.beanFactoryInitializationCode);
compile((consumer, compiled) -> {
@@ -103,9 +114,11 @@ class BeanRegistrationsAotContributionTests {
this.generationContext = new TestGenerationContext(
new ClassNameGenerator(TestGenerationContext.TEST_TARGET, "Management"));
this.beanFactoryInitializationCode = new MockBeanFactoryInitializationCode(this.generationContext);
RegisteredBean registeredBean = registerBean(new RootBeanDefinition(TestBean.class));
BeanDefinitionMethodGenerator generator = new BeanDefinitionMethodGenerator(this.methodGeneratorFactory,
registeredBean, null, List.of());
RegisteredBean registeredBean = registerBean(
new RootBeanDefinition(TestBean.class));
BeanDefinitionMethodGenerator generator = new BeanDefinitionMethodGenerator(
this.methodGeneratorFactory, registeredBean, null,
Collections.emptyList());
BeanRegistrationsAotContribution contribution = createContribution(generator);
contribution.applyTo(this.generationContext, this.beanFactoryInitializationCode);
compile((consumer, compiled) -> {
@@ -117,15 +130,19 @@ class BeanRegistrationsAotContributionTests {
@Test
void applyToCallsRegistrationsWithBeanRegistrationsCode() {
List<BeanRegistrationsCode> beanRegistrationsCodes = new ArrayList<>();
RegisteredBean registeredBean = registerBean(new RootBeanDefinition(TestBean.class));
BeanDefinitionMethodGenerator generator = new BeanDefinitionMethodGenerator(this.methodGeneratorFactory,
registeredBean, null, List.of()) {
RegisteredBean registeredBean = registerBean(
new RootBeanDefinition(TestBean.class));
BeanDefinitionMethodGenerator generator = new BeanDefinitionMethodGenerator(
this.methodGeneratorFactory, registeredBean, null,
Collections.emptyList()) {
@Override
MethodReference generateBeanDefinitionMethod(GenerationContext generationContext,
MethodReference generateBeanDefinitionMethod(
GenerationContext generationContext,
BeanRegistrationsCode beanRegistrationsCode) {
beanRegistrationsCodes.add(beanRegistrationsCode);
return super.generateBeanDefinitionMethod(generationContext, beanRegistrationsCode);
return super.generateBeanDefinitionMethod(generationContext,
beanRegistrationsCode);
}
};
@@ -136,18 +153,6 @@ class BeanRegistrationsAotContributionTests {
assertThat(actual.getMethods()).isNotNull();
}
@Test
void applyToRegisterReflectionHints() {
RegisteredBean registeredBean = registerBean(new RootBeanDefinition(TestBean.class));
BeanDefinitionMethodGenerator generator = new BeanDefinitionMethodGenerator(this.methodGeneratorFactory,
registeredBean, null, List.of());
BeanRegistrationsAotContribution contribution = createContribution(generator);
contribution.applyTo(this.generationContext, this.beanFactoryInitializationCode);
assertThat(reflection().onType(TestBean.class)
.withMemberCategory(MemberCategory.INTROSPECT_DECLARED_METHODS))
.accepts(this.generationContext.getRuntimeHints());
}
private RegisteredBean registerBean(RootBeanDefinition rootBeanDefinition) {
String beanName = "testBean";
this.beanFactory.registerBeanDefinition(beanName, rootBeanDefinition);
@@ -155,9 +160,12 @@ class BeanRegistrationsAotContributionTests {
}
@SuppressWarnings({ "unchecked", "cast" })
private void compile(BiConsumer<Consumer<DefaultListableBeanFactory>, Compiled> result) {
MethodReference beanRegistrationsMethodReference = this.beanFactoryInitializationCode.getInitializers().get(0);
MethodReference aliasesMethodReference = this.beanFactoryInitializationCode.getInitializers().get(1);
private void compile(
BiConsumer<Consumer<DefaultListableBeanFactory>, Compiled> result) {
MethodReference beanRegistrationsMethodReference = this.beanFactoryInitializationCode
.getInitializers().get(0);
MethodReference aliasesMethodReference = this.beanFactoryInitializationCode
.getInitializers().get(1);
this.beanFactoryInitializationCode.getTypeBuilder().set(type -> {
ArgumentCodeGenerator beanFactory = ArgumentCodeGenerator.of(DefaultListableBeanFactory.class, "beanFactory");
ClassName className = this.beanFactoryInitializationCode.getClassName();
@@ -165,8 +173,7 @@ class BeanRegistrationsAotContributionTests {
CodeBlock aliasesMethodInvocation = aliasesMethodReference.toInvokeCodeBlock(beanFactory, className);
type.addModifiers(Modifier.PUBLIC);
type.addSuperinterface(ParameterizedTypeName.get(Consumer.class, DefaultListableBeanFactory.class));
type.addMethod(MethodSpec.methodBuilder("accept")
.addModifiers(Modifier.PUBLIC)
type.addMethod(MethodSpec.methodBuilder("accept").addModifiers(Modifier.PUBLIC)
.addParameter(DefaultListableBeanFactory.class, "beanFactory")
.addStatement(beanRegistrationsMethodInvocation)
.addStatement(aliasesMethodInvocation)
@@ -179,8 +186,7 @@ class BeanRegistrationsAotContributionTests {
private BeanRegistrationsAotContribution createContribution(
BeanDefinitionMethodGenerator methodGenerator,String... aliases) {
return new BeanRegistrationsAotContribution(
Map.of(new BeanRegistrationKey("testBean", TestBean.class), new Registration(methodGenerator, aliases)));
return new BeanRegistrationsAotContribution(Map.of("testBean", new Registration(methodGenerator, aliases)));
}
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -51,7 +51,7 @@ class BeanRegistrationsAotProcessorTests {
BeanRegistrationsAotContribution contribution = processor
.processAheadOfTime(beanFactory);
assertThat(contribution).extracting("registrations")
.asInstanceOf(InstanceOfAssertFactories.MAP).hasSize(2);
.asInstanceOf(InstanceOfAssertFactories.MAP).containsKeys("b1", "b2");
}
@Test
@@ -63,7 +63,7 @@ class BeanRegistrationsAotProcessorTests {
BeanRegistrationsAotContribution contribution = processor
.processAheadOfTime(beanFactory);
assertThat(contribution).extracting("registrations").asInstanceOf(InstanceOfAssertFactories.MAP)
.hasEntrySatisfying(new BeanRegistrationKey("test", TestBean.class), registration ->
.hasEntrySatisfying("test", registration ->
assertThat(registration).extracting("aliases").asInstanceOf(InstanceOfAssertFactories.ARRAY)
.singleElement().isEqualTo("testAlias"));
}
@@ -67,7 +67,7 @@ public class ObjectFactoryCreatingFactoryBeanTests {
Date date1 = (Date) objectFactory.getObject();
Date date2 = (Date) objectFactory.getObject();
assertThat(date1).isNotSameAs(date2);
assertThat(date1 != date2).isTrue();
}
@Test
@@ -79,7 +79,7 @@ public class ObjectFactoryCreatingFactoryBeanTests {
Date date1 = (Date) objectFactory.getObject();
Date date2 = (Date) objectFactory.getObject();
assertThat(date1).isNotSameAs(date2);
assertThat(date1 != date2).isTrue();
}
@Test
@@ -89,7 +89,7 @@ public class ObjectFactoryCreatingFactoryBeanTests {
Date date1 = (Date) provider.get();
Date date2 = (Date) provider.get();
assertThat(date1).isNotSameAs(date2);
assertThat(date1 != date2).isTrue();
}
@Test
@@ -101,7 +101,7 @@ public class ObjectFactoryCreatingFactoryBeanTests {
Date date1 = (Date) provider.get();
Date date2 = (Date) provider.get();
assertThat(date1).isNotSameAs(date2);
assertThat(date1 != date2).isTrue();
}
@Test
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -138,7 +138,7 @@ public class PropertiesFactoryBeanTests {
assertThat(props.getProperty("tb.array[0].age")).isEqualTo("99");
assertThat(props.getProperty("key2")).isEqualTo("value2");
Properties newProps = pfb.getObject();
assertThat(props).isNotSameAs(newProps);
assertThat(props != newProps).isTrue();
assertThat(newProps.getProperty("tb.array[0].age")).isEqualTo("99");
assertThat(newProps.getProperty("key2")).isEqualTo("value2");
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -51,7 +51,7 @@ public class PropertyPathFactoryBeanTests {
Object result2 = xbf.getBean("otb.spouse");
boolean condition = result1 instanceof TestBean;
assertThat(condition).isTrue();
assertThat(result1).isSameAs(result2);
assertThat(result1 == result2).isTrue();
assertThat(((TestBean) result1).getAge()).isEqualTo(99);
}
@@ -73,9 +73,9 @@ public class PropertyPathFactoryBeanTests {
assertThat(((TestBean) result1).getAge()).isEqualTo(11);
assertThat(((TestBean) result2).getAge()).isEqualTo(11);
assertThat(((TestBean) result3).getAge()).isEqualTo(11);
assertThat(result1).isNotSameAs(result2);
assertThat(result1).isNotSameAs(result3);
assertThat(result2).isNotSameAs(result3);
assertThat(result1 != result2).isTrue();
assertThat(result1 != result3).isTrue();
assertThat(result2 != result3).isTrue();
}
@Test
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -276,7 +276,7 @@ public class PropertyResourceConfigurerTests {
}
catch (BeanInitializationException ex) {
// prove that the processor chokes on the invalid key
assertThat(ex.getMessage().toLowerCase()).contains("argh");
assertThat(ex.getMessage().toLowerCase().contains("argh")).isTrue();
}
}
}
@@ -165,7 +165,7 @@ public class ServiceLocatorFactoryBeanTests {
assertThat(testBean4).isNotSameAs(testBean2);
assertThat(testBean4).isNotSameAs(testBean3);
assertThat(factory.toString()).contains("TestServiceLocator3");
assertThat(factory.toString().contains("TestServiceLocator3")).isTrue();
}
@Disabled @Test // worked when using an ApplicationContext (see commented), fails when using BeanFactory
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -180,7 +180,7 @@ class YamlPropertiesFactoryBeanTests {
factory.setResources(new ByteArrayResource("foo: bar\nspam:".getBytes()));
Properties properties = factory.getObject();
assertThat(properties.getProperty("foo")).isEqualTo("bar");
assertThat(properties.getProperty("spam")).isEmpty();
assertThat(properties.getProperty("spam")).isEqualTo("");
}
@Test
@@ -189,7 +189,7 @@ class YamlPropertiesFactoryBeanTests {
factory.setResources(new ByteArrayResource("a: alpha\ntest: []".getBytes()));
Properties properties = factory.getObject();
assertThat(properties.getProperty("a")).isEqualTo("alpha");
assertThat(properties.getProperty("test")).isEmpty();
assertThat(properties.getProperty("test")).isEqualTo("");
}
@Test
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -55,7 +55,7 @@ public class CustomProblemReporterTests {
@Test
public void testErrorsAreCollated() {
this.reader.loadBeanDefinitions(qualifiedResource(CustomProblemReporterTests.class, "context.xml"));
assertThat(this.problemReporter.getErrors()).as("Incorrect number of errors collated").hasSize(4);
assertThat(this.problemReporter.getErrors().length).as("Incorrect number of errors collated").isEqualTo(4);
TestBean bean = (TestBean) this.beanFactory.getBean("validBean");
assertThat(bean).isNotNull();
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -44,7 +44,7 @@ public class BeanDefinitionTests {
otherBd.setScope("request");
assertThat(bd.equals(otherBd)).isTrue();
assertThat(otherBd.equals(bd)).isTrue();
assertThat(bd.hashCode()).isEqualTo(otherBd.hashCode());
assertThat(bd.hashCode() == otherBd.hashCode()).isTrue();
}
@Test
@@ -66,7 +66,7 @@ public class BeanDefinitionTests {
otherBd.getPropertyValues().add("age", "99");
assertThat(bd.equals(otherBd)).isTrue();
assertThat(otherBd.equals(bd)).isTrue();
assertThat(bd.hashCode()).isEqualTo(otherBd.hashCode());
assertThat(bd.hashCode() == otherBd.hashCode()).isTrue();
}
@Test
@@ -88,7 +88,7 @@ public class BeanDefinitionTests {
otherBd.getConstructorArgumentValues().addIndexedArgumentValue(1, 5);
assertThat(bd.equals(otherBd)).isTrue();
assertThat(otherBd.equals(bd)).isTrue();
assertThat(bd.hashCode()).isEqualTo(otherBd.hashCode());
assertThat(bd.hashCode() == otherBd.hashCode()).isTrue();
}
@Test
@@ -111,7 +111,7 @@ public class BeanDefinitionTests {
otherBd.getConstructorArgumentValues().addIndexedArgumentValue(1, 5, "long");
assertThat(bd.equals(otherBd)).isTrue();
assertThat(otherBd.equals(bd)).isTrue();
assertThat(bd.hashCode()).isEqualTo(otherBd.hashCode());
assertThat(bd.hashCode() == otherBd.hashCode()).isTrue();
}
@Test
@@ -132,17 +132,17 @@ public class BeanDefinitionTests {
otherBd.setParentName("parent");
assertThat(bd.equals(otherBd)).isTrue();
assertThat(otherBd.equals(bd)).isTrue();
assertThat(bd.hashCode()).isEqualTo(otherBd.hashCode());
assertThat(bd.hashCode() == otherBd.hashCode()).isTrue();
bd.getPropertyValues();
assertThat(bd.equals(otherBd)).isTrue();
assertThat(otherBd.equals(bd)).isTrue();
assertThat(bd.hashCode()).isEqualTo(otherBd.hashCode());
assertThat(bd.hashCode() == otherBd.hashCode()).isTrue();
bd.getConstructorArgumentValues();
assertThat(bd.equals(otherBd)).isTrue();
assertThat(otherBd.equals(bd)).isTrue();
assertThat(bd.hashCode()).isEqualTo(otherBd.hashCode());
assertThat(bd.hashCode() == otherBd.hashCode()).isTrue();
}
@Test
@@ -163,7 +163,7 @@ public class BeanDefinitionTests {
BeanDefinitionHolder otherHolder = new BeanDefinitionHolder(bd, "bd");
assertThat(holder.equals(otherHolder)).isTrue();
assertThat(otherHolder.equals(holder)).isTrue();
assertThat(holder.hashCode()).isEqualTo(otherHolder.hashCode());
assertThat(holder.hashCode() == otherHolder.hashCode()).isTrue();
}
@Test
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -39,7 +39,7 @@ public class ManagedMapTests {
ManagedMap child = ManagedMap.ofEntries(Map.entry("tree", "three"));
child.setMergeEnabled(true);
Map mergedMap = (Map) child.merge(parent);
assertThat(mergedMap).as("merge() obviously did not work.").hasSize(3);
assertThat(mergedMap.size()).as("merge() obviously did not work.").isEqualTo(3);
}
@Test
@@ -70,7 +70,7 @@ public class ManagedMapTests {
ManagedMap child = new ManagedMap();
child.setMergeEnabled(true);
Map mergedMap = (Map) child.merge(parent);
assertThat(mergedMap).as("merge() obviously did not work.").hasSize(2);
assertThat(mergedMap.size()).as("merge() obviously did not work.").isEqualTo(2);
}
@Test
@@ -81,7 +81,7 @@ public class ManagedMapTests {
child.setMergeEnabled(true);
Map mergedMap = (Map) child.merge(parent);
// child value for 'one' must override parent value...
assertThat(mergedMap).as("merge() obviously did not work.").hasSize(2);
assertThat(mergedMap.size()).as("merge() obviously did not work.").isEqualTo(2);
assertThat(mergedMap.get("one")).as("Parent value not being overridden during merge().").isEqualTo("fork");
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -33,7 +33,6 @@ import static org.assertj.core.api.Assertions.assertThatIllegalStateException;
public class ManagedPropertiesTests {
@Test
@SuppressWarnings("unchecked")
public void mergeSunnyDay() {
ManagedProperties parent = new ManagedProperties();
parent.setProperty("one", "one");
@@ -42,7 +41,7 @@ public class ManagedPropertiesTests {
child.setProperty("three", "three");
child.setMergeEnabled(true);
Map mergedMap = (Map) child.merge(parent);
assertThat(mergedMap).as("merge() obviously did not work.").hasSize(3);
assertThat(mergedMap.size()).as("merge() obviously did not work.").isEqualTo(3);
}
@Test
@@ -68,7 +67,6 @@ public class ManagedPropertiesTests {
}
@Test
@SuppressWarnings("unchecked")
public void mergeEmptyChild() {
ManagedProperties parent = new ManagedProperties();
parent.setProperty("one", "one");
@@ -76,11 +74,10 @@ public class ManagedPropertiesTests {
ManagedProperties child = new ManagedProperties();
child.setMergeEnabled(true);
Map mergedMap = (Map) child.merge(parent);
assertThat(mergedMap).as("merge() obviously did not work.").hasSize(2);
assertThat(mergedMap.size()).as("merge() obviously did not work.").isEqualTo(2);
}
@Test
@SuppressWarnings("unchecked")
public void mergeChildValuesOverrideTheParents() {
ManagedProperties parent = new ManagedProperties();
parent.setProperty("one", "one");
@@ -90,7 +87,7 @@ public class ManagedPropertiesTests {
child.setMergeEnabled(true);
Map mergedMap = (Map) child.merge(parent);
// child value for 'one' must override parent value...
assertThat(mergedMap).as("merge() obviously did not work.").hasSize(2);
assertThat(mergedMap.size()).as("merge() obviously did not work.").isEqualTo(2);
assertThat(mergedMap.get("one")).as("Parent value not being overridden during merge().").isEqualTo("fork");
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -73,8 +73,8 @@ public class Spr8954Tests {
@SuppressWarnings("rawtypes")
Map<String, FactoryBean> fbBeans = bf.getBeansOfType(FactoryBean.class);
assertThat(fbBeans.size()).isEqualTo(1);
assertThat(fbBeans.keySet().iterator().next()).isEqualTo("&foo");
assertThat(1).isEqualTo(fbBeans.size());
assertThat("&foo").isEqualTo(fbBeans.keySet().iterator().next());
Map<String, AnInterface> aiBeans = bf.getBeansOfType(AnInterface.class);
assertThat(aiBeans).hasSize(1);
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -56,13 +56,13 @@ public class BeanNameGenerationTests {
GeneratedNameBean child1 = topLevel1.getChild();
assertThat(child1.getBeanName()).isNotNull();
assertThat(child1.getBeanName()).startsWith(className);
assertThat(child1.getBeanName().startsWith(className)).isTrue();
GeneratedNameBean child2 = topLevel2.getChild();
assertThat(child2.getBeanName()).isNotNull();
assertThat(child2.getBeanName()).startsWith(className);
assertThat(child2.getBeanName().startsWith(className)).isTrue();
assertThat(child1.getBeanName()).isNotEqualTo(child2.getBeanName());
assertThat(child1.getBeanName().equals(child2.getBeanName())).isFalse();
}
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -53,8 +53,8 @@ public class CollectionMergingTests {
@Test
public void mergeList() throws Exception {
TestBean bean = (TestBean) this.beanFactory.getBean("childWithList");
List<?> list = bean.getSomeList();
assertThat(list).as("Incorrect size").hasSize(3);
List list = bean.getSomeList();
assertThat(list.size()).as("Incorrect size").isEqualTo(3);
assertThat(list.get(0)).isEqualTo("Rob Harrop");
assertThat(list.get(1)).isEqualTo("Rod Johnson");
assertThat(list.get(2)).isEqualTo("Juergen Hoeller");
@@ -66,14 +66,16 @@ public class CollectionMergingTests {
List<?> list = bean.getSomeList();
assertThat(list).isNotNull();
assertThat(list).hasSize(3);
assertThat(list.get(2) instanceof TestBean).isTrue();
assertThat(list.get(2)).isNotNull();
boolean condition = list.get(2) instanceof TestBean;
assertThat(condition).isTrue();
}
@Test
public void mergeSet() {
TestBean bean = (TestBean) this.beanFactory.getBean("childWithSet");
Set<?> set = bean.getSomeSet();
assertThat(set).as("Incorrect size").hasSize(2);
Set set = bean.getSomeSet();
assertThat(set.size()).as("Incorrect size").isEqualTo(2);
assertThat(set.contains("Rob Harrop")).isTrue();
assertThat(set.contains("Sally Greenwood")).isTrue();
}
@@ -87,15 +89,17 @@ public class CollectionMergingTests {
Iterator it = set.iterator();
it.next();
Object o = it.next();
assertThat(o instanceof TestBean).isTrue();
assertThat(o).isNotNull();
boolean condition = o instanceof TestBean;
assertThat(condition).isTrue();
assertThat(((TestBean) o).getName()).isEqualTo("Sally");
}
@Test
public void mergeMap() throws Exception {
TestBean bean = (TestBean) this.beanFactory.getBean("childWithMap");
Map<?, ?> map = bean.getSomeMap();
assertThat(map).as("Incorrect size").hasSize(3);
Map map = bean.getSomeMap();
assertThat(map.size()).as("Incorrect size").isEqualTo(3);
assertThat(map.get("Rob")).isEqualTo("Sally");
assertThat(map.get("Rod")).isEqualTo("Kerry");
assertThat(map.get("Juergen")).isEqualTo("Eva");
@@ -108,7 +112,8 @@ public class CollectionMergingTests {
assertThat(map).isNotNull();
assertThat(map).hasSize(2);
assertThat(map.get("Rob")).isNotNull();
assertThat(map.get("Rob") instanceof TestBean).isTrue();
boolean condition = map.get("Rob") instanceof TestBean;
assertThat(condition).isTrue();
assertThat(((TestBean) map.get("Rob")).getName()).isEqualTo("Sally");
}
@@ -116,7 +121,7 @@ public class CollectionMergingTests {
public void mergeProperties() throws Exception {
TestBean bean = (TestBean) this.beanFactory.getBean("childWithProps");
Properties props = bean.getSomeProperties();
assertThat(props).as("Incorrect size").hasSize(3);
assertThat(props.size()).as("Incorrect size").isEqualTo(3);
assertThat(props.getProperty("Rob")).isEqualTo("Sally");
assertThat(props.getProperty("Rod")).isEqualTo("Kerry");
assertThat(props.getProperty("Juergen")).isEqualTo("Eva");
@@ -125,8 +130,8 @@ public class CollectionMergingTests {
@Test
public void mergeListInConstructor() throws Exception {
TestBean bean = (TestBean) this.beanFactory.getBean("childWithListInConstructor");
List<?> list = bean.getSomeList();
assertThat(list).as("Incorrect size").hasSize(3);
List list = bean.getSomeList();
assertThat(list.size()).as("Incorrect size").isEqualTo(3);
assertThat(list.get(0)).isEqualTo("Rob Harrop");
assertThat(list.get(1)).isEqualTo("Rod Johnson");
assertThat(list.get(2)).isEqualTo("Juergen Hoeller");
@@ -139,14 +144,15 @@ public class CollectionMergingTests {
assertThat(list).isNotNull();
assertThat(list).hasSize(3);
assertThat(list.get(2)).isNotNull();
assertThat(list.get(2) instanceof TestBean).isTrue();
boolean condition = list.get(2) instanceof TestBean;
assertThat(condition).isTrue();
}
@Test
public void mergeSetInConstructor() {
TestBean bean = (TestBean) this.beanFactory.getBean("childWithSetInConstructor");
Set<?> set = bean.getSomeSet();
assertThat(set).as("Incorrect size").hasSize(2);
Set set = bean.getSomeSet();
assertThat(set.size()).as("Incorrect size").isEqualTo(2);
assertThat(set.contains("Rob Harrop")).isTrue();
assertThat(set.contains("Sally Greenwood")).isTrue();
}
@@ -160,15 +166,17 @@ public class CollectionMergingTests {
Iterator it = set.iterator();
it.next();
Object o = it.next();
assertThat(o instanceof TestBean).isTrue();
assertThat(o).isNotNull();
boolean condition = o instanceof TestBean;
assertThat(condition).isTrue();
assertThat(((TestBean) o).getName()).isEqualTo("Sally");
}
@Test
public void mergeMapInConstructor() throws Exception {
TestBean bean = (TestBean) this.beanFactory.getBean("childWithMapInConstructor");
Map<?, ?> map = bean.getSomeMap();
assertThat(map).as("Incorrect size").hasSize(3);
Map map = bean.getSomeMap();
assertThat(map.size()).as("Incorrect size").isEqualTo(3);
assertThat(map.get("Rob")).isEqualTo("Sally");
assertThat(map.get("Rod")).isEqualTo("Kerry");
assertThat(map.get("Juergen")).isEqualTo("Eva");
@@ -180,7 +188,9 @@ public class CollectionMergingTests {
Map<?, ?> map = bean.getSomeMap();
assertThat(map).isNotNull();
assertThat(map).hasSize(2);
assertThat(map.get("Rob") instanceof TestBean).isTrue();
assertThat(map.get("Rob")).isNotNull();
boolean condition = map.get("Rob") instanceof TestBean;
assertThat(condition).isTrue();
assertThat(((TestBean) map.get("Rob")).getName()).isEqualTo("Sally");
}
@@ -188,7 +198,7 @@ public class CollectionMergingTests {
public void mergePropertiesInConstructor() throws Exception {
TestBean bean = (TestBean) this.beanFactory.getBean("childWithPropsInConstructor");
Properties props = bean.getSomeProperties();
assertThat(props).as("Incorrect size").hasSize(3);
assertThat(props.size()).as("Incorrect size").isEqualTo(3);
assertThat(props.getProperty("Rob")).isEqualTo("Sally");
assertThat(props.getProperty("Rod")).isEqualTo("Kerry");
assertThat(props.getProperty("Juergen")).isEqualTo("Eva");
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -81,15 +81,15 @@ public class CollectionsWithDefaultTypesTests {
@SuppressWarnings("rawtypes")
public void testBuildCollectionFromMixtureOfReferencesAndValues() throws Exception {
MixedCollectionBean jumble = (MixedCollectionBean) this.beanFactory.getBean("jumble");
assertThat(jumble.getJumble()).as("Expected 3 elements, not " + jumble.getJumble().size()).hasSize(3);
assertThat(jumble.getJumble().size() == 3).as("Expected 3 elements, not " + jumble.getJumble().size()).isTrue();
List l = (List) jumble.getJumble();
assertThat(l.get(0).equals("literal")).isTrue();
Integer[] array1 = (Integer[]) l.get(1);
assertThat(array1[0].equals(2)).isTrue();
assertThat(array1[1].equals(4)).isTrue();
int[] array2 = (int[]) l.get(2);
assertThat(array2[0]).isEqualTo(3);
assertThat(array2[1]).isEqualTo(5);
assertThat(array2[0] == 3).isTrue();
assertThat(array2[1] == 5).isTrue();
}
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -282,7 +282,7 @@ public class FactoryMethodTests {
FactoryMethods fm2 = (FactoryMethods) xbf.getBean("testBeanOnlyPrototype", tbArg2);
assertThat(fm2.getTestBean().getName()).isEqualTo("arg2");
assertThat(fm2.getNum()).isEqualTo(fm1.getNum());
assertThat(fm2.getStringValue()).isEqualTo("testBeanOnlyPrototypeDISetterString");
assertThat("testBeanOnlyPrototypeDISetterString").isEqualTo(fm2.getStringValue());
assertThat(fm2.getStringValue()).isEqualTo(fm2.getStringValue());
// The TestBean reference is resolved to a prototype in the factory
assertThat(fm2.getTestBean()).isSameAs(fm2.getTestBean());
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -91,7 +91,7 @@ public class UtilNamespaceHandlerTests {
void testNestedProperties() {
TestBean bean = (TestBean) this.beanFactory.getBean("testBean");
Properties props = bean.getSomeProperties();
assertThat(props).as("Incorrect property value").containsEntry("foo", "bar");
assertThat(props.get("foo")).as("Incorrect property value").isEqualTo("bar");
}
@Test
@@ -111,7 +111,7 @@ public class UtilNamespaceHandlerTests {
Map<?, ?> map = (Map) this.beanFactory.getBean("simpleMap");
assertThat(map.get("foo")).isEqualTo("bar");
Map<?, ?> map2 = (Map) this.beanFactory.getBean("simpleMap");
assertThat(map).isSameAs(map2);
assertThat(map == map2).isTrue();
}
@Test
@@ -120,7 +120,7 @@ public class UtilNamespaceHandlerTests {
assertThat(map.get("foo")).isEqualTo("bar");
Map<?, ?> map2 = (Map) this.beanFactory.getBean("scopedMap");
assertThat(map2.get("foo")).isEqualTo("bar");
assertThat(map).isNotSameAs(map2);
assertThat(map != map2).isTrue();
}
@Test
@@ -128,7 +128,7 @@ public class UtilNamespaceHandlerTests {
List<?> list = (List) this.beanFactory.getBean("simpleList");
assertThat(list.get(0)).isEqualTo("Rob Harrop");
List<?> list2 = (List) this.beanFactory.getBean("simpleList");
assertThat(list).isSameAs(list2);
assertThat(list == list2).isTrue();
}
@Test
@@ -137,7 +137,7 @@ public class UtilNamespaceHandlerTests {
assertThat(list.get(0)).isEqualTo("Rob Harrop");
List<?> list2 = (List) this.beanFactory.getBean("scopedList");
assertThat(list2.get(0)).isEqualTo("Rob Harrop");
assertThat(list).isNotSameAs(list2);
assertThat(list != list2).isTrue();
}
@Test
@@ -145,7 +145,7 @@ public class UtilNamespaceHandlerTests {
Set<?> set = (Set) this.beanFactory.getBean("simpleSet");
assertThat(set.contains("Rob Harrop")).isTrue();
Set<?> set2 = (Set) this.beanFactory.getBean("simpleSet");
assertThat(set).isSameAs(set2);
assertThat(set == set2).isTrue();
}
@Test
@@ -154,7 +154,7 @@ public class UtilNamespaceHandlerTests {
assertThat(set.contains("Rob Harrop")).isTrue();
Set<?> set2 = (Set) this.beanFactory.getBean("scopedSet");
assertThat(set2.contains("Rob Harrop")).isTrue();
assertThat(set).isNotSameAs(set2);
assertThat(set != set2).isTrue();
}
@Test
@@ -194,9 +194,9 @@ public class UtilNamespaceHandlerTests {
assertThat(bean2.getSomeList()).isEqualTo(list);
assertThat(bean2.getSomeSet()).isEqualTo(set);
assertThat(bean2.getSomeMap()).isEqualTo(map);
assertThat(list).isNotSameAs(bean2.getSomeList());
assertThat(set).isNotSameAs(bean2.getSomeSet());
assertThat(map).isNotSameAs(bean2.getSomeMap());
assertThat(list == bean2.getSomeList()).isFalse();
assertThat(set == bean2.getSomeSet()).isFalse();
assertThat(map == bean2.getSomeMap()).isFalse();
}
@Test
@@ -216,11 +216,11 @@ public class UtilNamespaceHandlerTests {
TestBean bean2 = (TestBean) this.beanFactory.getBean("nestedShortcutCollections");
assertThat(Arrays.equals(bean.getStringArray(), bean2.getStringArray())).isTrue();
assertThat(bean.getStringArray()).isNotSameAs(bean2.getStringArray());
assertThat(bean.getStringArray() == bean2.getStringArray()).isFalse();
assertThat(bean2.getSomeList()).isEqualTo(list);
assertThat(bean2.getSomeSet()).isEqualTo(set);
assertThat(list).isNotSameAs(bean2.getSomeList());
assertThat(set).isNotSameAs(bean2.getSomeSet());
assertThat(list == bean2.getSomeList()).isFalse();
assertThat(set == bean2.getSomeSet()).isFalse();
}
@Test
@@ -244,9 +244,9 @@ public class UtilNamespaceHandlerTests {
assertThat(bean2.getSomeList()).isEqualTo(list);
assertThat(bean2.getSomeSet()).isEqualTo(set);
assertThat(bean2.getSomeMap()).isEqualTo(map);
assertThat(list).isNotSameAs(bean2.getSomeList());
assertThat(set).isNotSameAs(bean2.getSomeSet());
assertThat(map).isNotSameAs(bean2.getSomeMap());
assertThat(list == bean2.getSomeList()).isFalse();
assertThat(set == bean2.getSomeSet()).isFalse();
assertThat(map == bean2.getSomeMap()).isFalse();
}
@Test
@@ -338,56 +338,56 @@ public class UtilNamespaceHandlerTests {
@Test
void testLoadProperties() {
Properties props = (Properties) this.beanFactory.getBean("myProperties");
assertThat(props).as("Incorrect property value").containsEntry("foo", "bar");
assertThat(props).as("Incorrect property value").doesNotContainKey("foo2");
assertThat(props.get("foo")).as("Incorrect property value").isEqualTo("bar");
assertThat(props.get("foo2")).as("Incorrect property value").isNull();
Properties props2 = (Properties) this.beanFactory.getBean("myProperties");
assertThat(props).isSameAs(props2);
assertThat(props == props2).isTrue();
}
@Test
void testScopedProperties() {
Properties props = (Properties) this.beanFactory.getBean("myScopedProperties");
assertThat(props).as("Incorrect property value").containsEntry("foo", "bar");
assertThat(props).as("Incorrect property value").doesNotContainKey("foo2");
assertThat(props.get("foo")).as("Incorrect property value").isEqualTo("bar");
assertThat(props.get("foo2")).as("Incorrect property value").isNull();
Properties props2 = (Properties) this.beanFactory.getBean("myScopedProperties");
assertThat(props).as("Incorrect property value").containsEntry("foo", "bar");
assertThat(props).as("Incorrect property value").doesNotContainKey("foo2");
assertThat(props).isNotSameAs(props2);
assertThat(props.get("foo")).as("Incorrect property value").isEqualTo("bar");
assertThat(props.get("foo2")).as("Incorrect property value").isNull();
assertThat(props != props2).isTrue();
}
@Test
void testLocalProperties() {
Properties props = (Properties) this.beanFactory.getBean("myLocalProperties");
assertThat(props).as("Incorrect property value").doesNotContainKey("foo");
assertThat(props).as("Incorrect property value").containsEntry("foo2", "bar2");
assertThat(props.get("foo")).as("Incorrect property value").isNull();
assertThat(props.get("foo2")).as("Incorrect property value").isEqualTo("bar2");
}
@Test
void testMergedProperties() {
Properties props = (Properties) this.beanFactory.getBean("myMergedProperties");
assertThat(props).as("Incorrect property value").containsEntry("foo", "bar");
assertThat(props).as("Incorrect property value").containsEntry("foo2", "bar2");
assertThat(props.get("foo")).as("Incorrect property value").isEqualTo("bar");
assertThat(props.get("foo2")).as("Incorrect property value").isEqualTo("bar2");
}
@Test
void testLocalOverrideDefault() {
Properties props = (Properties) this.beanFactory.getBean("defaultLocalOverrideProperties");
assertThat(props).as("Incorrect property value").containsEntry("foo", "bar");
assertThat(props).as("Incorrect property value").containsEntry("foo2", "local2");
assertThat(props.get("foo")).as("Incorrect property value").isEqualTo("bar");
assertThat(props.get("foo2")).as("Incorrect property value").isEqualTo("local2");
}
@Test
void testLocalOverrideFalse() {
Properties props = (Properties) this.beanFactory.getBean("falseLocalOverrideProperties");
assertThat(props).as("Incorrect property value").containsEntry("foo", "bar");
assertThat(props).as("Incorrect property value").containsEntry("foo2", "local2");
assertThat(props.get("foo")).as("Incorrect property value").isEqualTo("bar");
assertThat(props.get("foo2")).as("Incorrect property value").isEqualTo("local2");
}
@Test
void testLocalOverrideTrue() {
Properties props = (Properties) this.beanFactory.getBean("trueLocalOverrideProperties");
assertThat(props).as("Incorrect property value").containsEntry("foo", "local");
assertThat(props).as("Incorrect property value").containsEntry("foo2", "local2");
assertThat(props.get("foo")).as("Incorrect property value").isEqualTo("local");
assertThat(props.get("foo2")).as("Incorrect property value").isEqualTo("local2");
}
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -91,25 +91,25 @@ public class XmlBeanCollectionTests {
//assertTrue("5 beans in reftypes, not " + this.beanFactory.getBeanDefinitionCount(), this.beanFactory.getBeanDefinitionCount() == 5);
TestBean jen = (TestBean) this.beanFactory.getBean("jenny");
TestBean dave = (TestBean) this.beanFactory.getBean("david");
assertThat(jen.getSpouse()).isSameAs(dave);
assertThat(jen.getSpouse() == dave).isTrue();
}
@Test
public void testPropertyWithLiteralValueSubelement() throws Exception {
TestBean verbose = (TestBean) this.beanFactory.getBean("verbose");
assertThat(verbose.getName()).isEqualTo("verbose");
assertThat(verbose.getName().equals("verbose")).isTrue();
}
@Test
public void testPropertyWithIdRefLocalAttrSubelement() throws Exception {
TestBean verbose = (TestBean) this.beanFactory.getBean("verbose2");
assertThat(verbose.getName()).isEqualTo("verbose");
assertThat(verbose.getName().equals("verbose")).isTrue();
}
@Test
public void testPropertyWithIdRefBeanAttrSubelement() throws Exception {
TestBean verbose = (TestBean) this.beanFactory.getBean("verbose3");
assertThat(verbose.getName()).isEqualTo("verbose");
assertThat(verbose.getName().equals("verbose")).isTrue();
}
@Test
@@ -122,10 +122,10 @@ public class XmlBeanCollectionTests {
// Our bean doesn't modify the collection:
// of course it could be a different copy in a real object.
Object[] friends = rod.getFriends().toArray();
assertThat(friends.length).isEqualTo(2);
assertThat(friends.length == 2).isTrue();
assertThat(friends[0]).as("First friend must be jen, not " + friends[0]).isSameAs(jen);
assertThat(friends[1]).isSameAs(dave);
assertThat(friends[0] == jen).as("First friend must be jen, not " + friends[0]).isTrue();
assertThat(friends[1] == dave).isTrue();
// Should be ordered
}
@@ -136,34 +136,34 @@ public class XmlBeanCollectionTests {
TestBean rod = (TestBean) this.beanFactory.getBean("pRod");
Object[] friends = rod.getFriends().toArray();
assertThat(friends.length).isEqualTo(2);
assertThat(friends[0].toString()).as("First friend must be jen, not " + friends[0]).isEqualTo(jen.toString());
assertThat(friends[0]).as("Jen not same instance").isNotSameAs(jen);
assertThat(friends[1].toString()).isEqualTo(dave.toString());
assertThat(friends[1]).as("Dave not same instance").isNotSameAs(dave);
assertThat(friends.length == 2).isTrue();
assertThat(friends[0].toString().equals(jen.toString())).as("First friend must be jen, not " + friends[0]).isTrue();
assertThat(friends[0] != jen).as("Jen not same instance").isTrue();
assertThat(friends[1].toString().equals(dave.toString())).isTrue();
assertThat(friends[1] != dave).as("Dave not same instance").isTrue();
assertThat(dave.getSpouse().getName()).isEqualTo("Jen");
TestBean rod2 = (TestBean) this.beanFactory.getBean("pRod");
Object[] friends2 = rod2.getFriends().toArray();
assertThat(friends2.length).isEqualTo(2);
assertThat(friends2[0].toString()).as("First friend must be jen, not " + friends2[0]).isEqualTo(jen.toString());
assertThat(friends2[0]).as("Jen not same instance").isNotSameAs(friends[0]);
assertThat(friends2[1].toString()).isEqualTo(dave.toString());
assertThat(friends2[1]).as("Dave not same instance").isNotSameAs(friends[1]);
assertThat(friends2.length == 2).isTrue();
assertThat(friends2[0].toString().equals(jen.toString())).as("First friend must be jen, not " + friends2[0]).isTrue();
assertThat(friends2[0] != friends[0]).as("Jen not same instance").isTrue();
assertThat(friends2[1].toString().equals(dave.toString())).isTrue();
assertThat(friends2[1] != friends[1]).as("Dave not same instance").isTrue();
}
@Test
public void testRefSubelementsBuildCollectionFromSingleElement() throws Exception {
TestBean loner = (TestBean) this.beanFactory.getBean("loner");
TestBean dave = (TestBean) this.beanFactory.getBean("david");
assertThat(loner.getFriends().size()).isEqualTo(1);
assertThat(loner.getFriends().size() == 1).isTrue();
assertThat(loner.getFriends().contains(dave)).isTrue();
}
@Test
public void testBuildCollectionFromMixtureOfReferencesAndValues() throws Exception {
MixedCollectionBean jumble = (MixedCollectionBean) this.beanFactory.getBean("jumble");
assertThat(jumble.getJumble().size()).as("Expected 5 elements, not " + jumble.getJumble().size()).isEqualTo(5);
assertThat(jumble.getJumble().size() == 5).as("Expected 5 elements, not " + jumble.getJumble().size()).isTrue();
List l = (List) jumble.getJumble();
assertThat(l.get(0).equals(this.beanFactory.getBean("david"))).isTrue();
assertThat(l.get(1).equals("literal")).isTrue();
@@ -185,25 +185,25 @@ public class XmlBeanCollectionTests {
@Test
public void testEmptyMap() throws Exception {
HasMap hasMap = (HasMap) this.beanFactory.getBean("emptyMap");
assertThat(hasMap.getMap().size()).isEqualTo(0);
assertThat(hasMap.getMap().size() == 0).isTrue();
}
@Test
public void testMapWithLiteralsOnly() throws Exception {
HasMap hasMap = (HasMap) this.beanFactory.getBean("literalMap");
assertThat(hasMap.getMap().size()).isEqualTo(3);
assertThat(hasMap.getMap().size() == 3).isTrue();
assertThat(hasMap.getMap().get("foo").equals("bar")).isTrue();
assertThat(hasMap.getMap().get("fi").equals("fum")).isTrue();
assertThat(hasMap.getMap().get("fa")).isNull();
assertThat(hasMap.getMap().get("fa") == null).isTrue();
}
@Test
public void testMapWithLiteralsAndReferences() throws Exception {
HasMap hasMap = (HasMap) this.beanFactory.getBean("mixedMap");
assertThat(hasMap.getMap().size()).isEqualTo(5);
assertThat(hasMap.getMap().size() == 5).isTrue();
assertThat(hasMap.getMap().get("foo").equals(10)).isTrue();
TestBean jenny = (TestBean) this.beanFactory.getBean("jenny");
assertThat(hasMap.getMap().get("jenny")).isSameAs(jenny);
assertThat(hasMap.getMap().get("jenny") == jenny).isTrue();
assertThat(hasMap.getMap().get(5).equals("david")).isTrue();
boolean condition1 = hasMap.getMap().get("bar") instanceof Long;
assertThat(condition1).isTrue();
@@ -217,22 +217,22 @@ public class XmlBeanCollectionTests {
public void testMapWithLiteralsAndPrototypeReferences() throws Exception {
TestBean jenny = (TestBean) this.beanFactory.getBean("pJenny");
HasMap hasMap = (HasMap) this.beanFactory.getBean("pMixedMap");
assertThat(hasMap.getMap().size()).isEqualTo(2);
assertThat(hasMap.getMap().size() == 2).isTrue();
assertThat(hasMap.getMap().get("foo").equals("bar")).isTrue();
assertThat(hasMap.getMap().get("jenny").toString()).isEqualTo(jenny.toString());
assertThat(hasMap.getMap().get("jenny")).as("Not same instance").isNotSameAs(jenny);
assertThat(hasMap.getMap().get("jenny").toString().equals(jenny.toString())).isTrue();
assertThat(hasMap.getMap().get("jenny") != jenny).as("Not same instance").isTrue();
HasMap hasMap2 = (HasMap) this.beanFactory.getBean("pMixedMap");
assertThat(hasMap2.getMap().size()).isEqualTo(2);
assertThat(hasMap2.getMap().size() == 2).isTrue();
assertThat(hasMap2.getMap().get("foo").equals("bar")).isTrue();
assertThat(hasMap2.getMap().get("jenny").toString()).isEqualTo(jenny.toString());
assertThat(hasMap2.getMap().get("jenny")).as("Not same instance").isNotSameAs(hasMap.getMap().get("jenny"));
assertThat(hasMap2.getMap().get("jenny").toString().equals(jenny.toString())).isTrue();
assertThat(hasMap2.getMap().get("jenny") != hasMap.getMap().get("jenny")).as("Not same instance").isTrue();
}
@Test
public void testMapWithLiteralsReferencesAndList() throws Exception {
HasMap hasMap = (HasMap) this.beanFactory.getBean("mixedMapWithList");
assertThat(hasMap.getMap().size()).isEqualTo(4);
assertThat(hasMap.getMap().size() == 4).isTrue();
assertThat(hasMap.getMap().get(null).equals("bar")).isTrue();
TestBean jenny = (TestBean) this.beanFactory.getBean("jenny");
assertThat(hasMap.getMap().get("jenny").equals(jenny)).isTrue();
@@ -240,28 +240,28 @@ public class XmlBeanCollectionTests {
// Check list
List l = (List) hasMap.getMap().get("list");
assertThat(l).isNotNull();
assertThat(l.size()).isEqualTo(4);
assertThat(l.size() == 4).isTrue();
assertThat(l.get(0).equals("zero")).isTrue();
assertThat(l.get(3)).isNull();
assertThat(l.get(3) == null).isTrue();
// Check nested map in list
Map m = (Map) l.get(1);
assertThat(m).isNotNull();
assertThat(m.size()).isEqualTo(2);
assertThat(m.size() == 2).isTrue();
assertThat(m.get("fo").equals("bar")).isTrue();
assertThat(m.get("jen").equals(jenny)).as("Map element 'jenny' should be equal to jenny bean, not " + m.get("jen")).isTrue();
// Check nested list in list
l = (List) l.get(2);
assertThat(l).isNotNull();
assertThat(l.size()).isEqualTo(2);
assertThat(l.size() == 2).isTrue();
assertThat(l.get(0).equals(jenny)).isTrue();
assertThat(l.get(1).equals("ba")).isTrue();
// Check nested map
m = (Map) hasMap.getMap().get("map");
assertThat(m).isNotNull();
assertThat(m.size()).isEqualTo(2);
assertThat(m.size() == 2).isTrue();
assertThat(m.get("foo").equals("bar")).isTrue();
assertThat(m.get("jenny").equals(jenny)).as("Map element 'jenny' should be equal to jenny bean, not " + m.get("jenny")).isTrue();
}
@@ -269,13 +269,13 @@ public class XmlBeanCollectionTests {
@Test
public void testEmptySet() throws Exception {
HasMap hasMap = (HasMap) this.beanFactory.getBean("emptySet");
assertThat(hasMap.getSet().size()).isEqualTo(0);
assertThat(hasMap.getSet().size() == 0).isTrue();
}
@Test
public void testPopulatedSet() throws Exception {
HasMap hasMap = (HasMap) this.beanFactory.getBean("set");
assertThat(hasMap.getSet().size()).isEqualTo(3);
assertThat(hasMap.getSet().size() == 3).isTrue();
assertThat(hasMap.getSet().contains("bar")).isTrue();
TestBean jenny = (TestBean) this.beanFactory.getBean("jenny");
assertThat(hasMap.getSet().contains(jenny)).isTrue();
@@ -289,7 +289,7 @@ public class XmlBeanCollectionTests {
@Test
public void testPopulatedConcurrentSet() throws Exception {
HasMap hasMap = (HasMap) this.beanFactory.getBean("concurrentSet");
assertThat(hasMap.getConcurrentSet().size()).isEqualTo(3);
assertThat(hasMap.getConcurrentSet().size() == 3).isTrue();
assertThat(hasMap.getConcurrentSet().contains("bar")).isTrue();
TestBean jenny = (TestBean) this.beanFactory.getBean("jenny");
assertThat(hasMap.getConcurrentSet().contains(jenny)).isTrue();
@@ -299,7 +299,7 @@ public class XmlBeanCollectionTests {
@Test
public void testPopulatedIdentityMap() throws Exception {
HasMap hasMap = (HasMap) this.beanFactory.getBean("identityMap");
assertThat(hasMap.getIdentityMap().size()).isEqualTo(2);
assertThat(hasMap.getIdentityMap().size() == 2).isTrue();
HashSet set = new HashSet(hasMap.getIdentityMap().keySet());
assertThat(set.contains("foo")).isTrue();
assertThat(set.contains("jenny")).isTrue();
@@ -308,14 +308,14 @@ public class XmlBeanCollectionTests {
@Test
public void testEmptyProps() throws Exception {
HasMap hasMap = (HasMap) this.beanFactory.getBean("emptyProps");
assertThat(hasMap.getProps().size()).isEqualTo(0);
assertThat(hasMap.getProps().size() == 0).isTrue();
assertThat(Properties.class).isEqualTo(hasMap.getProps().getClass());
}
@Test
public void testPopulatedProps() throws Exception {
HasMap hasMap = (HasMap) this.beanFactory.getBean("props");
assertThat(hasMap.getProps().size()).isEqualTo(2);
assertThat(hasMap.getProps().size() == 2).isTrue();
assertThat(hasMap.getProps().get("foo").equals("bar")).isTrue();
assertThat(hasMap.getProps().get("2").equals("TWO")).isTrue();
}
@@ -323,7 +323,7 @@ public class XmlBeanCollectionTests {
@Test
public void testObjectArray() throws Exception {
HasMap hasMap = (HasMap) this.beanFactory.getBean("objectArray");
assertThat(hasMap.getObjectArray().length).isEqualTo(2);
assertThat(hasMap.getObjectArray().length == 2).isTrue();
assertThat(hasMap.getObjectArray()[0].equals("one")).isTrue();
assertThat(hasMap.getObjectArray()[1].equals(this.beanFactory.getBean("jenny"))).isTrue();
}
@@ -331,16 +331,16 @@ public class XmlBeanCollectionTests {
@Test
public void testIntegerArray() throws Exception {
HasMap hasMap = (HasMap) this.beanFactory.getBean("integerArray");
assertThat(hasMap.getIntegerArray().length).isEqualTo(3);
assertThat(hasMap.getIntegerArray()[0]).isEqualTo(0);
assertThat(hasMap.getIntegerArray()[1]).isEqualTo(1);
assertThat(hasMap.getIntegerArray()[2]).isEqualTo(2);
assertThat(hasMap.getIntegerArray().length == 3).isTrue();
assertThat(hasMap.getIntegerArray()[0] == 0).isTrue();
assertThat(hasMap.getIntegerArray()[1] == 1).isTrue();
assertThat(hasMap.getIntegerArray()[2] == 2).isTrue();
}
@Test
public void testClassArray() throws Exception {
HasMap hasMap = (HasMap) this.beanFactory.getBean("classArray");
assertThat(hasMap.getClassArray().length).isEqualTo(2);
assertThat(hasMap.getClassArray().length == 2).isTrue();
assertThat(hasMap.getClassArray()[0].equals(String.class)).isTrue();
assertThat(hasMap.getClassArray()[1].equals(Exception.class)).isTrue();
}
@@ -348,7 +348,7 @@ public class XmlBeanCollectionTests {
@Test
public void testClassList() throws Exception {
HasMap hasMap = (HasMap) this.beanFactory.getBean("classList");
assertThat(hasMap.getClassList().size()).isEqualTo(2);
assertThat(hasMap.getClassList().size()== 2).isTrue();
assertThat(hasMap.getClassList().get(0).equals(String.class)).isTrue();
assertThat(hasMap.getClassList().get(1).equals(Exception.class)).isTrue();
}
@@ -371,7 +371,7 @@ public class XmlBeanCollectionTests {
List list = (List) this.beanFactory.getBean("listFactory");
boolean condition = list instanceof LinkedList;
assertThat(condition).isTrue();
assertThat(list.size()).isEqualTo(2);
assertThat(list.size() == 2).isTrue();
assertThat(list.get(0)).isEqualTo("bar");
assertThat(list.get(1)).isEqualTo("jenny");
}
@@ -381,7 +381,7 @@ public class XmlBeanCollectionTests {
List list = (List) this.beanFactory.getBean("pListFactory");
boolean condition = list instanceof LinkedList;
assertThat(condition).isTrue();
assertThat(list.size()).isEqualTo(2);
assertThat(list.size() == 2).isTrue();
assertThat(list.get(0)).isEqualTo("bar");
assertThat(list.get(1)).isEqualTo("jenny");
}
@@ -391,7 +391,7 @@ public class XmlBeanCollectionTests {
Set set = (Set) this.beanFactory.getBean("setFactory");
boolean condition = set instanceof TreeSet;
assertThat(condition).isTrue();
assertThat(set.size()).isEqualTo(2);
assertThat(set.size() == 2).isTrue();
assertThat(set.contains("bar")).isTrue();
assertThat(set.contains("jenny")).isTrue();
}
@@ -401,7 +401,7 @@ public class XmlBeanCollectionTests {
Set set = (Set) this.beanFactory.getBean("pSetFactory");
boolean condition = set instanceof TreeSet;
assertThat(condition).isTrue();
assertThat(set.size()).isEqualTo(2);
assertThat(set.size() == 2).isTrue();
assertThat(set.contains("bar")).isTrue();
assertThat(set.contains("jenny")).isTrue();
}
@@ -411,7 +411,7 @@ public class XmlBeanCollectionTests {
Map map = (Map) this.beanFactory.getBean("mapFactory");
boolean condition = map instanceof TreeMap;
assertThat(condition).isTrue();
assertThat(map.size()).isEqualTo(2);
assertThat(map.size() == 2).isTrue();
assertThat(map.get("foo")).isEqualTo("bar");
assertThat(map.get("jen")).isEqualTo("jenny");
}
@@ -421,7 +421,7 @@ public class XmlBeanCollectionTests {
Map map = (Map) this.beanFactory.getBean("pMapFactory");
boolean condition = map instanceof TreeMap;
assertThat(condition).isTrue();
assertThat(map.size()).isEqualTo(2);
assertThat(map.size() == 2).isTrue();
assertThat(map.get("foo")).isEqualTo("bar");
assertThat(map.get("jen")).isEqualTo("jenny");
}
@@ -441,7 +441,7 @@ public class XmlBeanCollectionTests {
@Test
public void testEnumSetFactory() throws Exception {
Set set = (Set) this.beanFactory.getBean("enumSetFactory");
assertThat(set.size()).isEqualTo(2);
assertThat(set.size() == 2).isTrue();
assertThat(set.contains("ONE")).isTrue();
assertThat(set.contains("TWO")).isTrue();
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -124,7 +124,7 @@ public class XmlListableBeanFactoryTests extends AbstractListableBeanFactoryTest
@Test
public void descriptionButNoProperties() {
TestBean validEmpty = (TestBean) getBeanFactory().getBean("validEmptyWithDescription");
assertThat(validEmpty.getAge()).isZero();
assertThat(validEmpty.getAge()).isEqualTo(0);
}
/**
@@ -136,71 +136,71 @@ public class XmlListableBeanFactoryTests extends AbstractListableBeanFactoryTest
TestBean tb1 = (TestBean) getBeanFactory().getBean("aliased");
TestBean alias1 = (TestBean) getBeanFactory().getBean("myalias");
assertThat(tb1).isSameAs(alias1);
assertThat(tb1 == alias1).isTrue();
List tb1Aliases = Arrays.asList(getBeanFactory().getAliases("aliased"));
assertThat(tb1Aliases).hasSize(2);
assertThat(tb1Aliases).contains("myalias");
assertThat(tb1Aliases).contains("youralias");
assertThat(beanNames).contains("aliased");
assertThat(beanNames).doesNotContain("myalias");
assertThat(beanNames).doesNotContain("youralias");
assertThat(tb1Aliases.contains("myalias")).isTrue();
assertThat(tb1Aliases.contains("youralias")).isTrue();
assertThat(beanNames.contains("aliased")).isTrue();
assertThat(beanNames.contains("myalias")).isFalse();
assertThat(beanNames.contains("youralias")).isFalse();
TestBean tb2 = (TestBean) getBeanFactory().getBean("multiAliased");
TestBean alias2 = (TestBean) getBeanFactory().getBean("alias1");
TestBean alias3 = (TestBean) getBeanFactory().getBean("alias2");
TestBean alias3a = (TestBean) getBeanFactory().getBean("alias3");
TestBean alias3b = (TestBean) getBeanFactory().getBean("alias4");
assertThat(tb2).isSameAs(alias2);
assertThat(tb2).isSameAs(alias3);
assertThat(tb2).isSameAs(alias3a);
assertThat(tb2).isSameAs(alias3b);
assertThat(tb2 == alias2).isTrue();
assertThat(tb2 == alias3).isTrue();
assertThat(tb2 == alias3a).isTrue();
assertThat(tb2 == alias3b).isTrue();
List tb2Aliases = Arrays.asList(getBeanFactory().getAliases("multiAliased"));
assertThat(tb2Aliases).hasSize(4);
assertThat(tb2Aliases).contains("alias1");
assertThat(tb2Aliases).contains("alias2");
assertThat(tb2Aliases).contains("alias3");
assertThat(tb2Aliases).contains("alias4");
assertThat(beanNames).contains("multiAliased");
assertThat(beanNames).doesNotContain("alias1");
assertThat(beanNames).doesNotContain("alias2");
assertThat(beanNames).doesNotContain("alias3");
assertThat(beanNames).doesNotContain("alias4");
assertThat(tb2Aliases.contains("alias1")).isTrue();
assertThat(tb2Aliases.contains("alias2")).isTrue();
assertThat(tb2Aliases.contains("alias3")).isTrue();
assertThat(tb2Aliases.contains("alias4")).isTrue();
assertThat(beanNames.contains("multiAliased")).isTrue();
assertThat(beanNames.contains("alias1")).isFalse();
assertThat(beanNames.contains("alias2")).isFalse();
assertThat(beanNames.contains("alias3")).isFalse();
assertThat(beanNames.contains("alias4")).isFalse();
TestBean tb3 = (TestBean) getBeanFactory().getBean("aliasWithoutId1");
TestBean alias4 = (TestBean) getBeanFactory().getBean("aliasWithoutId2");
TestBean alias5 = (TestBean) getBeanFactory().getBean("aliasWithoutId3");
assertThat(tb3).isSameAs(alias4);
assertThat(tb3).isSameAs(alias5);
assertThat(tb3 == alias4).isTrue();
assertThat(tb3 == alias5).isTrue();
List tb3Aliases = Arrays.asList(getBeanFactory().getAliases("aliasWithoutId1"));
assertThat(tb3Aliases).hasSize(2);
assertThat(tb3Aliases).contains("aliasWithoutId2");
assertThat(tb3Aliases).contains("aliasWithoutId3");
assertThat(beanNames).contains("aliasWithoutId1");
assertThat(beanNames).doesNotContain("aliasWithoutId2");
assertThat(beanNames).doesNotContain("aliasWithoutId3");
assertThat(tb3Aliases.contains("aliasWithoutId2")).isTrue();
assertThat(tb3Aliases.contains("aliasWithoutId3")).isTrue();
assertThat(beanNames.contains("aliasWithoutId1")).isTrue();
assertThat(beanNames.contains("aliasWithoutId2")).isFalse();
assertThat(beanNames.contains("aliasWithoutId3")).isFalse();
TestBean tb4 = (TestBean) getBeanFactory().getBean(TestBean.class.getName() + "#0");
assertThat(tb4.getName()).isNull();
Map drs = getListableBeanFactory().getBeansOfType(DummyReferencer.class, false, false);
assertThat(drs).hasSize(5);
assertThat(drs).containsKey(DummyReferencer.class.getName() + "#0");
assertThat(drs).containsKey(DummyReferencer.class.getName() + "#1");
assertThat(drs).containsKey(DummyReferencer.class.getName() + "#2");
assertThat(drs.containsKey(DummyReferencer.class.getName() + "#0")).isTrue();
assertThat(drs.containsKey(DummyReferencer.class.getName() + "#1")).isTrue();
assertThat(drs.containsKey(DummyReferencer.class.getName() + "#2")).isTrue();
}
@Test
public void factoryNesting() {
ITestBean father = (ITestBean) getBeanFactory().getBean("father");
assertThat(father).as("Bean from root context").isNotNull();
assertThat(father != null).as("Bean from root context").isTrue();
TestBean rod = (TestBean) getBeanFactory().getBean("rod");
assertThat(rod.getName()).as("Bean from child context").isEqualTo("Rod");
assertThat(rod.getSpouse()).as("Bean has external reference").isSameAs(father);
assertThat("Rod".equals(rod.getName())).as("Bean from child context").isTrue();
assertThat(rod.getSpouse() == father).as("Bean has external reference").isTrue();
rod = (TestBean) parent.getBean("rod");
assertThat(rod.getName()).as("Bean from root context").isEqualTo("Roderick");
assertThat("Roderick".equals(rod.getName())).as("Bean from root context").isTrue();
}
@Test
@@ -208,25 +208,25 @@ public class XmlListableBeanFactoryTests extends AbstractListableBeanFactoryTest
DummyFactory factory = (DummyFactory) getBeanFactory().getBean("&singletonFactory");
DummyReferencer ref = (DummyReferencer) getBeanFactory().getBean("factoryReferencer");
assertThat(ref.getTestBean1()).isSameAs(ref.getTestBean2());
assertThat(ref.getDummyFactory()).isSameAs(factory);
assertThat(ref.getTestBean1() == ref.getTestBean2()).isTrue();
assertThat(ref.getDummyFactory() == factory).isTrue();
DummyReferencer ref2 = (DummyReferencer) getBeanFactory().getBean("factoryReferencerWithConstructor");
assertThat(ref2.getTestBean1()).isSameAs(ref2.getTestBean2());
assertThat(ref2.getDummyFactory()).isSameAs(factory);
assertThat(ref2.getTestBean1() == ref2.getTestBean2()).isTrue();
assertThat(ref2.getDummyFactory() == factory).isTrue();
}
@Test
public void prototypeReferences() {
// check that not broken by circular reference resolution mechanism
DummyReferencer ref1 = (DummyReferencer) getBeanFactory().getBean("prototypeReferencer");
assertThat(ref1.getTestBean1()).as("Not referencing same bean twice").isNotSameAs(ref1.getTestBean2());
assertThat(ref1.getTestBean1() != ref1.getTestBean2()).as("Not referencing same bean twice").isTrue();
DummyReferencer ref2 = (DummyReferencer) getBeanFactory().getBean("prototypeReferencer");
assertThat(ref1).as("Not the same referencer").isNotSameAs(ref2);
assertThat(ref2.getTestBean1()).as("Not referencing same bean twice").isNotSameAs(ref2.getTestBean2());
assertThat(ref1.getTestBean1()).as("Not referencing same bean twice").isNotSameAs(ref2.getTestBean1());
assertThat(ref1.getTestBean2()).as("Not referencing same bean twice").isNotSameAs(ref2.getTestBean2());
assertThat(ref1.getTestBean1()).as("Not referencing same bean twice").isNotSameAs(ref2.getTestBean2());
assertThat(ref1 != ref2).as("Not the same referencer").isTrue();
assertThat(ref2.getTestBean1() != ref2.getTestBean2()).as("Not referencing same bean twice").isTrue();
assertThat(ref1.getTestBean1() != ref2.getTestBean1()).as("Not referencing same bean twice").isTrue();
assertThat(ref1.getTestBean2() != ref2.getTestBean2()).as("Not referencing same bean twice").isTrue();
assertThat(ref1.getTestBean1() != ref2.getTestBean2()).as("Not referencing same bean twice").isTrue();
}
@Test
@@ -245,8 +245,8 @@ public class XmlListableBeanFactoryTests extends AbstractListableBeanFactoryTest
public void emptyValues() {
TestBean rod = (TestBean) getBeanFactory().getBean("rod");
TestBean kerry = (TestBean) getBeanFactory().getBean("kerry");
assertThat(rod.getTouchy()).as("Touchy is empty").isEqualTo("");
assertThat(kerry.getTouchy()).as("Touchy is empty").isEqualTo("");
assertThat("".equals(rod.getTouchy())).as("Touchy is empty").isTrue();
assertThat("".equals(kerry.getTouchy())).as("Touchy is empty").isTrue();
}
@Test
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -37,7 +37,7 @@ public class ByteArrayPropertyEditorTests {
byteEditor.setAsText(text);
Object value = byteEditor.getValue();
assertThat(value).isInstanceOf(byte[].class);
assertThat(value).isNotNull().isInstanceOf(byte[].class);
byte[] bytes = (byte[]) value;
for (int i = 0; i < text.length(); ++i) {
assertThat(bytes[i]).as("cyte[] differs at index '" + i + "'").isEqualTo((byte) text.charAt(i));
@@ -47,10 +47,10 @@ public class ByteArrayPropertyEditorTests {
@Test
public void getAsTextReturnsEmptyStringIfValueIsNull() throws Exception {
assertThat(byteEditor.getAsText()).isEmpty();
assertThat(byteEditor.getAsText()).isEqualTo("");
byteEditor.setAsText(null);
assertThat(byteEditor.getAsText()).isEmpty();
assertThat(byteEditor.getAsText()).isEqualTo("");
}
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -37,7 +37,7 @@ public class CharArrayPropertyEditorTests {
charEditor.setAsText(text);
Object value = charEditor.getValue();
assertThat(value).isInstanceOf(char[].class);
assertThat(value).isNotNull().isInstanceOf(char[].class);
char[] chars = (char[]) value;
for (int i = 0; i < text.length(); ++i) {
assertThat(chars[i]).as("char[] differs at index '" + i + "'").isEqualTo(text.charAt(i));
@@ -47,10 +47,10 @@ public class CharArrayPropertyEditorTests {
@Test
public void getAsTextReturnsEmptyStringIfValueIsNull() throws Exception {
assertThat(charEditor.getAsText()).isEmpty();
assertThat(charEditor.getAsText()).isEqualTo("");
charEditor.setAsText(null);
assertThat(charEditor.getAsText()).isEmpty();
assertThat(charEditor.getAsText()).isEqualTo("");
}
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -62,7 +62,7 @@ public class CustomCollectionEditorTests {
boolean condition = value instanceof ArrayList;
assertThat(condition).isTrue();
List<?> list = (List<?>) value;
assertThat(list).as("There must be 3 elements in the converted collection").hasSize(3);
assertThat(list.size()).as("There must be 3 elements in the converted collection").isEqualTo(3);
assertThat(list.get(0)).isEqualTo(0);
assertThat(list.get(1)).isEqualTo(1);
assertThat(list.get(2)).isEqualTo(2);
@@ -74,7 +74,7 @@ public class CustomCollectionEditorTests {
editor.setValue("0, 1, 2");
Collection<?> value = (Collection<?>) editor.getValue();
assertThat(value).isNotNull();
assertThat(value).as("There must be 1 element in the converted collection").hasSize(1);
assertThat(value.size()).as("There must be 1 element in the converted collection").isEqualTo(1);
assertThat(value.iterator().next()).isEqualTo("0, 1, 2");
}
@@ -87,7 +87,7 @@ public class CustomCollectionEditorTests {
boolean condition = value instanceof ArrayList;
assertThat(condition).isTrue();
List<?> list = (List<?>) value;
assertThat(list).as("There must be 1 element in the converted collection").hasSize(1);
assertThat(list.size()).as("There must be 1 element in the converted collection").isEqualTo(1);
assertThat(list.get(0)).isEqualTo("0, 1, 2");
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -350,30 +350,30 @@ class CustomEditorTests {
bw.setPropertyValue("double2", "6.1");
bw.setPropertyValue("bigDecimal", "4.5");
assertThat(Short.valueOf("1")).as("Correct short1 value").isEqualTo(bw.getPropertyValue("short1"));
assertThat(tb.getShort1()).as("Correct short1 value").isOne();
assertThat(Short.valueOf("2")).as("Correct short2 value").isEqualTo(bw.getPropertyValue("short2"));
assertThat(Short.valueOf("2")).as("Correct short2 value").isEqualTo(tb.getShort2());
assertThat(Integer.valueOf("7")).as("Correct int1 value").isEqualTo(bw.getPropertyValue("int1"));
assertThat(tb.getInt1()).as("Correct int1 value").isEqualTo(7);
assertThat(Integer.valueOf("8")).as("Correct int2 value").isEqualTo(bw.getPropertyValue("int2"));
assertThat(Integer.valueOf("8")).as("Correct int2 value").isEqualTo(tb.getInt2());
assertThat(Long.valueOf("5")).as("Correct long1 value").isEqualTo(bw.getPropertyValue("long1"));
assertThat(tb.getLong1()).as("Correct long1 value").isEqualTo(5);
assertThat(Long.valueOf("6")).as("Correct long2 value").isEqualTo(bw.getPropertyValue("long2"));
assertThat(Long.valueOf("6")).as("Correct long2 value").isEqualTo(tb.getLong2());
assertThat(new BigInteger("3")).as("Correct bigInteger value").isEqualTo(bw.getPropertyValue("bigInteger"));
assertThat(new BigInteger("3")).as("Correct bigInteger value").isEqualTo(tb.getBigInteger());
assertThat(Float.valueOf("7.1")).as("Correct float1 value").isEqualTo(bw.getPropertyValue("float1"));
assertThat(Float.valueOf("7.1")).as("Correct float1 value").isEqualTo(tb.getFloat1());
assertThat(Float.valueOf("8.1")).as("Correct float2 value").isEqualTo(bw.getPropertyValue("float2"));
assertThat(Float.valueOf("8.1")).as("Correct float2 value").isEqualTo(tb.getFloat2());
assertThat(Double.valueOf("5.1")).as("Correct double1 value").isEqualTo(bw.getPropertyValue("double1"));
assertThat(tb.getDouble1()).as("Correct double1 value").isEqualTo(5.1);
assertThat(Double.valueOf("6.1")).as("Correct double2 value").isEqualTo(bw.getPropertyValue("double2"));
assertThat(Double.valueOf("6.1")).as("Correct double2 value").isEqualTo(tb.getDouble2());
assertThat(new BigDecimal("4.5")).as("Correct bigDecimal value").isEqualTo(bw.getPropertyValue("bigDecimal"));
assertThat(new BigDecimal("4.5")).as("Correct bigDecimal value").isEqualTo(tb.getBigDecimal());
assertThat(Short.valueOf("1").equals(bw.getPropertyValue("short1"))).as("Correct short1 value").isTrue();
assertThat(tb.getShort1() == 1).as("Correct short1 value").isTrue();
assertThat(Short.valueOf("2").equals(bw.getPropertyValue("short2"))).as("Correct short2 value").isTrue();
assertThat(Short.valueOf("2").equals(tb.getShort2())).as("Correct short2 value").isTrue();
assertThat(Integer.valueOf("7").equals(bw.getPropertyValue("int1"))).as("Correct int1 value").isTrue();
assertThat(tb.getInt1() == 7).as("Correct int1 value").isTrue();
assertThat(Integer.valueOf("8").equals(bw.getPropertyValue("int2"))).as("Correct int2 value").isTrue();
assertThat(Integer.valueOf("8").equals(tb.getInt2())).as("Correct int2 value").isTrue();
assertThat(Long.valueOf("5").equals(bw.getPropertyValue("long1"))).as("Correct long1 value").isTrue();
assertThat(tb.getLong1() == 5).as("Correct long1 value").isTrue();
assertThat(Long.valueOf("6").equals(bw.getPropertyValue("long2"))).as("Correct long2 value").isTrue();
assertThat(Long.valueOf("6").equals(tb.getLong2())).as("Correct long2 value").isTrue();
assertThat(new BigInteger("3").equals(bw.getPropertyValue("bigInteger"))).as("Correct bigInteger value").isTrue();
assertThat(new BigInteger("3").equals(tb.getBigInteger())).as("Correct bigInteger value").isTrue();
assertThat(Float.valueOf("7.1").equals(bw.getPropertyValue("float1"))).as("Correct float1 value").isTrue();
assertThat(Float.valueOf("7.1").equals(tb.getFloat1())).as("Correct float1 value").isTrue();
assertThat(Float.valueOf("8.1").equals(bw.getPropertyValue("float2"))).as("Correct float2 value").isTrue();
assertThat(Float.valueOf("8.1").equals(tb.getFloat2())).as("Correct float2 value").isTrue();
assertThat(Double.valueOf("5.1").equals(bw.getPropertyValue("double1"))).as("Correct double1 value").isTrue();
assertThat(tb.getDouble1() == 5.1).as("Correct double1 value").isTrue();
assertThat(Double.valueOf("6.1").equals(bw.getPropertyValue("double2"))).as("Correct double2 value").isTrue();
assertThat(Double.valueOf("6.1").equals(tb.getDouble2())).as("Correct double2 value").isTrue();
assertThat(new BigDecimal("4.5").equals(bw.getPropertyValue("bigDecimal"))).as("Correct bigDecimal value").isTrue();
assertThat(new BigDecimal("4.5").equals(tb.getBigDecimal())).as("Correct bigDecimal value").isTrue();
}
@Test
@@ -408,29 +408,29 @@ class CustomEditorTests {
bw.setPropertyValue("bigDecimal", "4,5");
assertThat(bw.getPropertyValue("short1")).as("Correct short1 value").isEqualTo(Short.valueOf("1"));
assertThat(tb.getShort1()).as("Correct short1 value").isOne();
assertThat(tb.getShort1() == 1).as("Correct short1 value").isTrue();
assertThat(bw.getPropertyValue("short2")).as("Correct short2 value").isEqualTo(Short.valueOf("2"));
assertThat(tb.getShort2()).as("Correct short2 value").isEqualTo(Short.valueOf("2"));
assertThat(bw.getPropertyValue("int1")).as("Correct int1 value").isEqualTo(Integer.valueOf("7"));
assertThat(tb.getInt1()).as("Correct int1 value").isEqualTo(7);
assertThat(tb.getInt1() == 7).as("Correct int1 value").isTrue();
assertThat(bw.getPropertyValue("int2")).as("Correct int2 value").isEqualTo(Integer.valueOf("8"));
assertThat(tb.getInt2()).as("Correct int2 value").isEqualTo(Integer.valueOf("8"));
assertThat(bw.getPropertyValue("long1")).as("Correct long1 value").isEqualTo(Long.valueOf("5"));
assertThat(tb.getLong1()).as("Correct long1 value").isEqualTo(5);
assertThat(tb.getLong1() == 5).as("Correct long1 value").isTrue();
assertThat(bw.getPropertyValue("long2")).as("Correct long2 value").isEqualTo(Long.valueOf("6"));
assertThat(tb.getLong2()).as("Correct long2 value").isEqualTo(Long.valueOf("6"));
assertThat(new BigInteger("3")).as("Correct bigInteger value").isEqualTo(bw.getPropertyValue("bigInteger"));
assertThat(new BigInteger("3")).as("Correct bigInteger value").isEqualTo(tb.getBigInteger());
assertThat(new BigInteger("3").equals(bw.getPropertyValue("bigInteger"))).as("Correct bigInteger value").isTrue();
assertThat(new BigInteger("3").equals(tb.getBigInteger())).as("Correct bigInteger value").isTrue();
assertThat(bw.getPropertyValue("float1")).as("Correct float1 value").isEqualTo(Float.valueOf("7.1"));
assertThat(Float.valueOf(tb.getFloat1())).as("Correct float1 value").isEqualTo(Float.valueOf("7.1"));
assertThat(bw.getPropertyValue("float2")).as("Correct float2 value").isEqualTo(Float.valueOf("8.1"));
assertThat(tb.getFloat2()).as("Correct float2 value").isEqualTo(Float.valueOf("8.1"));
assertThat(bw.getPropertyValue("double1")).as("Correct double1 value").isEqualTo(Double.valueOf("5.1"));
assertThat(tb.getDouble1()).as("Correct double1 value").isEqualTo(5.1);
assertThat(tb.getDouble1() == 5.1).as("Correct double1 value").isTrue();
assertThat(bw.getPropertyValue("double2")).as("Correct double2 value").isEqualTo(Double.valueOf("6.1"));
assertThat(tb.getDouble2()).as("Correct double2 value").isEqualTo(Double.valueOf("6.1"));
assertThat(new BigDecimal("4.5")).as("Correct bigDecimal value").isEqualTo(bw.getPropertyValue("bigDecimal"));
assertThat(new BigDecimal("4.5")).as("Correct bigDecimal value").isEqualTo(tb.getBigDecimal());
assertThat(new BigDecimal("4.5").equals(bw.getPropertyValue("bigDecimal"))).as("Correct bigDecimal value").isTrue();
assertThat(new BigDecimal("4.5").equals(tb.getBigDecimal())).as("Correct bigDecimal value").isTrue();
}
@Test
@@ -444,13 +444,13 @@ class CustomEditorTests {
bw.setPropertyValue("long1", "5");
bw.setPropertyValue("long2", "6");
assertThat(Long.valueOf("5").equals(bw.getPropertyValue("long1"))).as("Correct long1 value").isTrue();
assertThat(tb.getLong1()).as("Correct long1 value").isEqualTo(5);
assertThat(tb.getLong1() == 5).as("Correct long1 value").isTrue();
assertThat(Long.valueOf("6").equals(bw.getPropertyValue("long2"))).as("Correct long2 value").isTrue();
assertThat(Long.valueOf("6").equals(tb.getLong2())).as("Correct long2 value").isTrue();
bw.setPropertyValue("long2", "");
assertThat(bw.getPropertyValue("long2")).as("Correct long2 value").isNull();
assertThat(tb.getLong2()).as("Correct long2 value").isNull();
assertThat(bw.getPropertyValue("long2") == null).as("Correct long2 value").isTrue();
assertThat(tb.getLong2() == null).as("Correct long2 value").isTrue();
assertThatExceptionOfType(BeansException.class).isThrownBy(() ->
bw.setPropertyValue("long1", ""));
assertThat(bw.getPropertyValue("long1")).isEqualTo(5L);
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -42,7 +42,7 @@ public class FileEditorTests {
boolean condition = value instanceof File;
assertThat(condition).isTrue();
File file = (File) value;
assertThat(file).exists();
assertThat(file.exists()).isTrue();
}
@Test
@@ -86,9 +86,9 @@ public class FileEditorTests {
boolean condition = value instanceof File;
assertThat(condition).isTrue();
File file = (File) value;
assertThat(file).exists();
assertThat(file.exists()).isTrue();
String absolutePath = file.getAbsolutePath().replace('\\', '/');
assertThat(absolutePath).endsWith(fileName);
assertThat(absolutePath.endsWith(fileName)).isTrue();
}
@Test
@@ -101,9 +101,9 @@ public class FileEditorTests {
boolean condition = value instanceof File;
assertThat(condition).isTrue();
File file = (File) value;
assertThat(file).doesNotExist();
assertThat(file.exists()).isFalse();
String absolutePath = file.getAbsolutePath().replace('\\', '/');
assertThat(absolutePath).endsWith(fileName);
assertThat(absolutePath.endsWith(fileName)).isTrue();
}
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -52,7 +52,7 @@ public class InputStreamEditorTests {
boolean condition = value instanceof InputStream;
assertThat(condition).isTrue();
stream = (InputStream) value;
assertThat(stream.available()).isGreaterThan(0);
assertThat(stream.available() > 0).isTrue();
}
finally {
if (stream != null) {
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2021 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -39,9 +39,9 @@ public class PathEditorTests {
pathEditor.setAsText("classpath:" + ClassUtils.classPackageAsResourcePath(getClass()) + "/" +
ClassUtils.getShortName(getClass()) + ".class");
Object value = pathEditor.getValue();
assertThat(value).isInstanceOf(Path.class);
assertThat(value instanceof Path).isTrue();
Path path = (Path) value;
assertThat(path.toFile()).exists();
assertThat(path.toFile().exists()).isTrue();
}
@Test
@@ -56,9 +56,9 @@ public class PathEditorTests {
PropertyEditor pathEditor = new PathEditor();
pathEditor.setAsText("file:/no_way_this_file_is_found.doc");
Object value = pathEditor.getValue();
assertThat(value).isInstanceOf(Path.class);
assertThat(value instanceof Path).isTrue();
Path path = (Path) value;
assertThat(path.toFile()).doesNotExist();
assertThat(!path.toFile().exists()).isTrue();
}
@Test
@@ -66,9 +66,9 @@ public class PathEditorTests {
PropertyEditor pathEditor = new PathEditor();
pathEditor.setAsText("/no_way_this_file_is_found.doc");
Object value = pathEditor.getValue();
assertThat(value).isInstanceOf(Path.class);
assertThat(value instanceof Path).isTrue();
Path path = (Path) value;
assertThat(path.toFile()).doesNotExist();
assertThat(!path.toFile().exists()).isTrue();
}
@Test
@@ -76,9 +76,9 @@ public class PathEditorTests {
PropertyEditor pathEditor = new PathEditor();
pathEditor.setAsText("C:\\no_way_this_file_is_found.doc");
Object value = pathEditor.getValue();
assertThat(value).isInstanceOf(Path.class);
assertThat(value instanceof Path).isTrue();
Path path = (Path) value;
assertThat(path.toFile()).doesNotExist();
assertThat(!path.toFile().exists()).isTrue();
}
@Test
@@ -87,9 +87,9 @@ public class PathEditorTests {
try {
pathEditor.setAsText("file://C:\\no_way_this_file_is_found.doc");
Object value = pathEditor.getValue();
assertThat(value).isInstanceOf(Path.class);
assertThat(value instanceof Path).isTrue();
Path path = (Path) value;
assertThat(path.toFile()).doesNotExist();
assertThat(!path.toFile().exists()).isTrue();
}
catch (IllegalArgumentException ex) {
if (File.separatorChar == '\\') { // on Windows, otherwise silently ignore
@@ -105,15 +105,15 @@ public class PathEditorTests {
ClassUtils.getShortName(getClass()) + ".class";
pathEditor.setAsText(fileName);
Object value = pathEditor.getValue();
assertThat(value).isInstanceOf(Path.class);
assertThat(value instanceof Path).isTrue();
Path path = (Path) value;
File file = path.toFile();
assertThat(file).exists();
assertThat(file.exists()).isTrue();
String absolutePath = file.getAbsolutePath();
if (File.separatorChar == '\\') {
absolutePath = absolutePath.replace('\\', '/');
}
assertThat(absolutePath).endsWith(fileName);
assertThat(absolutePath.endsWith(fileName)).isTrue();
}
@Test
@@ -123,15 +123,15 @@ public class PathEditorTests {
ClassUtils.getShortName(getClass()) + ".clazz";
pathEditor.setAsText(fileName);
Object value = pathEditor.getValue();
assertThat(value).isInstanceOf(Path.class);
assertThat(value instanceof Path).isTrue();
Path path = (Path) value;
File file = path.toFile();
assertThat(file).doesNotExist();
assertThat(file.exists()).isFalse();
String absolutePath = file.getAbsolutePath();
if (File.separatorChar == '\\') {
absolutePath = absolutePath.replace('\\', '/');
}
assertThat(absolutePath).endsWith(fileName);
assertThat(absolutePath.endsWith(fileName)).isTrue();
}
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -40,7 +40,7 @@ public class PropertiesEditorTests {
PropertiesEditor pe= new PropertiesEditor();
pe.setAsText(s);
Properties p = (Properties) pe.getValue();
assertThat(p.entrySet().size()).as("contains one entry").isEqualTo(1);
assertThat(p.entrySet().size() == 1).as("contains one entry").isTrue();
assertThat(p.get("foo").equals("bar")).as("foo=bar").isTrue();
}
@@ -51,7 +51,7 @@ public class PropertiesEditorTests {
PropertiesEditor pe= new PropertiesEditor();
pe.setAsText(s);
Properties p = (Properties) pe.getValue();
assertThat(p.entrySet().size()).as("contains two entries").isEqualTo(2);
assertThat(p.entrySet().size() == 2).as("contains two entries").isTrue();
assertThat(p.get("foo").equals("bar with whitespace")).as("foo=bar with whitespace").isTrue();
assertThat(p.get("me").equals("mi")).as("me=mi").isTrue();
}
@@ -64,7 +64,7 @@ public class PropertiesEditorTests {
PropertiesEditor pe= new PropertiesEditor();
pe.setAsText(s);
Properties p = (Properties) pe.getValue();
assertThat(p.entrySet().size()).as("contains two entries").isEqualTo(3);
assertThat(p.entrySet().size() == 3).as("contains two entries").isTrue();
assertThat(p.get("foo").equals("bar")).as("foo=bar").isTrue();
assertThat(p.get("me").equals("mi")).as("me=mi").isTrue();
assertThat(p.get("x").equals("y=z")).as("x='y=z'").isTrue();
@@ -76,7 +76,7 @@ public class PropertiesEditorTests {
PropertiesEditor pe= new PropertiesEditor();
pe.setAsText(s);
Properties p = (Properties) pe.getValue();
assertThat(p.entrySet().size()).as("contains two entries").isEqualTo(3);
assertThat(p.entrySet().size() == 3).as("contains two entries").isTrue();
assertThat(p.get("foo").equals("bar")).as("foo=bar").isTrue();
assertThat(p.get("me").equals("mi")).as("me=mi").isTrue();
assertThat(p.get("x").equals("")).as("x='y=z'").isTrue();
@@ -88,7 +88,7 @@ public class PropertiesEditorTests {
PropertiesEditor pe= new PropertiesEditor();
pe.setAsText(s);
Properties p = (Properties) pe.getValue();
assertThat(p.entrySet().size()).as("contains three entries").isEqualTo(3);
assertThat(p.entrySet().size() == 3).as("contains three entries").isTrue();
assertThat(p.get("foo").equals("")).as("foo is empty").isTrue();
assertThat(p.get("me").equals("mi")).as("me=mi").isTrue();
}
@@ -107,7 +107,7 @@ public class PropertiesEditorTests {
PropertiesEditor pe= new PropertiesEditor();
pe.setAsText(s);
Properties p = (Properties) pe.getValue();
assertThat(p.entrySet().size()).as("contains three entries").isEqualTo(3);
assertThat(p.entrySet().size() == 3).as("contains three entries").isTrue();
assertThat(p.get("foo").equals("bar")).as("foo is bar").isTrue();
assertThat(p.get("me").equals("mi")).as("me=mi").isTrue();
}
@@ -129,7 +129,7 @@ public class PropertiesEditorTests {
PropertiesEditor pe= new PropertiesEditor();
pe.setAsText(s);
Properties p = (Properties) pe.getValue();
assertThat(p.size()).as("contains 3 entries, not " + p.size()).isEqualTo(3);
assertThat(p.size() == 3).as("contains 3 entries, not " + p.size()).isTrue();
assertThat(p.get("foo").equals("bar")).as("foo is bar").isTrue();
assertThat(p.get("me").equals("mi")).as("me=mi").isTrue();
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -99,7 +99,7 @@ public class URIEditorTests {
assertThat(condition).isTrue();
URI uri = (URI) value;
assertThat(uriEditor.getAsText()).isEqualTo(uri.toString());
assertThat(uri.getScheme()).startsWith("classpath");
assertThat(uri.getScheme().startsWith("classpath")).isTrue();
}
@Test
@@ -107,13 +107,13 @@ public class URIEditorTests {
PropertyEditor uriEditor = new URIEditor();
uriEditor.setAsText(null);
assertThat(uriEditor.getValue()).isNull();
assertThat(uriEditor.getAsText()).isEmpty();
assertThat(uriEditor.getAsText()).isEqualTo("");
}
@Test
public void getAsTextReturnsEmptyStringIfValueNotSet() throws Exception {
PropertyEditor uriEditor = new URIEditor();
assertThat(uriEditor.getAsText()).isEmpty();
assertThat(uriEditor.getAsText()).isEqualTo("");
}
@Test
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -86,13 +86,13 @@ public class URLEditorTests {
PropertyEditor urlEditor = new URLEditor();
urlEditor.setAsText(null);
assertThat(urlEditor.getValue()).isNull();
assertThat(urlEditor.getAsText()).isEmpty();
assertThat(urlEditor.getAsText()).isEqualTo("");
}
@Test
public void testGetAsTextReturnsEmptyStringIfValueNotSet() throws Exception {
PropertyEditor urlEditor = new URLEditor();
assertThat(urlEditor.getAsText()).isEmpty();
assertThat(urlEditor.getAsText()).isEqualTo("");
}
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -60,7 +60,7 @@ class ZoneIdEditorTests {
@Test
void getNullAsText() {
assertThat(editor.getAsText()).as("The returned value is not correct.").isEmpty();
assertThat(editor.getAsText()).as("The returned value is not correct.").isEqualTo("");
}
@Test
@@ -52,101 +52,101 @@ public class PagedListHolderTests {
tbs.add(tb3);
PagedListHolder holder = new PagedListHolder(tbs);
assertThat(holder.getSource()).as("Correct source").isSameAs(tbs);
assertThat(holder.getNrOfElements()).as("Correct number of elements").isEqualTo(3);
assertThat(holder.getPageCount()).as("Correct number of pages").isEqualTo(1);
assertThat(holder.getPageSize()).as("Correct page size").isEqualTo(PagedListHolder.DEFAULT_PAGE_SIZE);
assertThat(holder.getPage()).as("Correct page number").isEqualTo(0);
assertThat(holder.getSource() == tbs).as("Correct source").isTrue();
assertThat(holder.getNrOfElements() == 3).as("Correct number of elements").isTrue();
assertThat(holder.getPageCount() == 1).as("Correct number of pages").isTrue();
assertThat(holder.getPageSize() == PagedListHolder.DEFAULT_PAGE_SIZE).as("Correct page size").isTrue();
assertThat(holder.getPage() == 0).as("Correct page number").isTrue();
assertThat(holder.isFirstPage()).as("First page").isTrue();
assertThat(holder.isLastPage()).as("Last page").isTrue();
assertThat(holder.getFirstElementOnPage()).as("Correct first element").isEqualTo(0);
assertThat(holder.getLastElementOnPage()).as("Correct first element").isEqualTo(2);
assertThat(holder.getPageList().size()).as("Correct page list size").isEqualTo(3);
assertThat(holder.getPageList().get(0)).as("Correct page list contents").isSameAs(tb1);
assertThat(holder.getPageList().get(1)).as("Correct page list contents").isSameAs(tb2);
assertThat(holder.getPageList().get(2)).as("Correct page list contents").isSameAs(tb3);
assertThat(holder.getFirstElementOnPage() == 0).as("Correct first element").isTrue();
assertThat(holder.getLastElementOnPage() == 2).as("Correct first element").isTrue();
assertThat(holder.getPageList().size() == 3).as("Correct page list size").isTrue();
assertThat(holder.getPageList().get(0) == tb1).as("Correct page list contents").isTrue();
assertThat(holder.getPageList().get(1) == tb2).as("Correct page list contents").isTrue();
assertThat(holder.getPageList().get(2) == tb3).as("Correct page list contents").isTrue();
holder.setPageSize(2);
assertThat(holder.getPageCount()).as("Correct number of pages").isEqualTo(2);
assertThat(holder.getPageSize()).as("Correct page size").isEqualTo(2);
assertThat(holder.getPage()).as("Correct page number").isEqualTo(0);
assertThat(holder.getPageCount() == 2).as("Correct number of pages").isTrue();
assertThat(holder.getPageSize() == 2).as("Correct page size").isTrue();
assertThat(holder.getPage() == 0).as("Correct page number").isTrue();
assertThat(holder.isFirstPage()).as("First page").isTrue();
assertThat(holder.isLastPage()).as("Last page").isFalse();
assertThat(holder.getFirstElementOnPage()).as("Correct first element").isEqualTo(0);
assertThat(holder.getLastElementOnPage()).as("Correct last element").isEqualTo(1);
assertThat(holder.getPageList().size()).as("Correct page list size").isEqualTo(2);
assertThat(holder.getPageList().get(0)).as("Correct page list contents").isSameAs(tb1);
assertThat(holder.getPageList().get(1)).as("Correct page list contents").isSameAs(tb2);
assertThat(holder.getFirstElementOnPage() == 0).as("Correct first element").isTrue();
assertThat(holder.getLastElementOnPage() == 1).as("Correct last element").isTrue();
assertThat(holder.getPageList().size() == 2).as("Correct page list size").isTrue();
assertThat(holder.getPageList().get(0) == tb1).as("Correct page list contents").isTrue();
assertThat(holder.getPageList().get(1) == tb2).as("Correct page list contents").isTrue();
holder.setPage(1);
assertThat(holder.getPage()).as("Correct page number").isEqualTo(1);
assertThat(holder.getPage() == 1).as("Correct page number").isTrue();
assertThat(holder.isFirstPage()).as("First page").isFalse();
assertThat(holder.isLastPage()).as("Last page").isTrue();
assertThat(holder.getFirstElementOnPage()).as("Correct first element").isEqualTo(2);
assertThat(holder.getLastElementOnPage()).as("Correct last element").isEqualTo(2);
assertThat(holder.getPageList().size()).as("Correct page list size").isEqualTo(1);
assertThat(holder.getPageList().get(0)).as("Correct page list contents").isSameAs(tb3);
assertThat(holder.getFirstElementOnPage() == 2).as("Correct first element").isTrue();
assertThat(holder.getLastElementOnPage() == 2).as("Correct last element").isTrue();
assertThat(holder.getPageList().size() == 1).as("Correct page list size").isTrue();
assertThat(holder.getPageList().get(0) == tb3).as("Correct page list contents").isTrue();
holder.setPageSize(3);
assertThat(holder.getPageCount()).as("Correct number of pages").isEqualTo(1);
assertThat(holder.getPageSize()).as("Correct page size").isEqualTo(3);
assertThat(holder.getPage()).as("Correct page number").isEqualTo(0);
assertThat(holder.getPageCount() == 1).as("Correct number of pages").isTrue();
assertThat(holder.getPageSize() == 3).as("Correct page size").isTrue();
assertThat(holder.getPage() == 0).as("Correct page number").isTrue();
assertThat(holder.isFirstPage()).as("First page").isTrue();
assertThat(holder.isLastPage()).as("Last page").isTrue();
assertThat(holder.getFirstElementOnPage()).as("Correct first element").isEqualTo(0);
assertThat(holder.getLastElementOnPage()).as("Correct last element").isEqualTo(2);
assertThat(holder.getFirstElementOnPage() == 0).as("Correct first element").isTrue();
assertThat(holder.getLastElementOnPage() == 2).as("Correct last element").isTrue();
holder.setPage(1);
holder.setPageSize(2);
assertThat(holder.getPageCount()).as("Correct number of pages").isEqualTo(2);
assertThat(holder.getPageSize()).as("Correct page size").isEqualTo(2);
assertThat(holder.getPage()).as("Correct page number").isEqualTo(1);
assertThat(holder.getPageCount() == 2).as("Correct number of pages").isTrue();
assertThat(holder.getPageSize() == 2).as("Correct page size").isTrue();
assertThat(holder.getPage() == 1).as("Correct page number").isTrue();
assertThat(holder.isFirstPage()).as("First page").isFalse();
assertThat(holder.isLastPage()).as("Last page").isTrue();
assertThat(holder.getFirstElementOnPage()).as("Correct first element").isEqualTo(2);
assertThat(holder.getLastElementOnPage()).as("Correct last element").isEqualTo(2);
assertThat(holder.getFirstElementOnPage() == 2).as("Correct first element").isTrue();
assertThat(holder.getLastElementOnPage() == 2).as("Correct last element").isTrue();
holder.setPageSize(2);
holder.setPage(1);
((MutableSortDefinition) holder.getSort()).setProperty("name");
((MutableSortDefinition) holder.getSort()).setIgnoreCase(false);
holder.resort();
assertThat(holder.getSource()).as("Correct source").isSameAs(tbs);
assertThat(holder.getNrOfElements()).as("Correct number of elements").isEqualTo(3);
assertThat(holder.getPageCount()).as("Correct number of pages").isEqualTo(2);
assertThat(holder.getPageSize()).as("Correct page size").isEqualTo(2);
assertThat(holder.getPage()).as("Correct page number").isEqualTo(0);
assertThat(holder.getSource() == tbs).as("Correct source").isTrue();
assertThat(holder.getNrOfElements() == 3).as("Correct number of elements").isTrue();
assertThat(holder.getPageCount() == 2).as("Correct number of pages").isTrue();
assertThat(holder.getPageSize() == 2).as("Correct page size").isTrue();
assertThat(holder.getPage() == 0).as("Correct page number").isTrue();
assertThat(holder.isFirstPage()).as("First page").isTrue();
assertThat(holder.isLastPage()).as("Last page").isFalse();
assertThat(holder.getFirstElementOnPage()).as("Correct first element").isEqualTo(0);
assertThat(holder.getLastElementOnPage()).as("Correct last element").isEqualTo(1);
assertThat(holder.getPageList().size()).as("Correct page list size").isEqualTo(2);
assertThat(holder.getPageList().get(0)).as("Correct page list contents").isSameAs(tb3);
assertThat(holder.getPageList().get(1)).as("Correct page list contents").isSameAs(tb1);
assertThat(holder.getFirstElementOnPage() == 0).as("Correct first element").isTrue();
assertThat(holder.getLastElementOnPage() == 1).as("Correct last element").isTrue();
assertThat(holder.getPageList().size() == 2).as("Correct page list size").isTrue();
assertThat(holder.getPageList().get(0) == tb3).as("Correct page list contents").isTrue();
assertThat(holder.getPageList().get(1) == tb1).as("Correct page list contents").isTrue();
((MutableSortDefinition) holder.getSort()).setProperty("name");
holder.resort();
assertThat(holder.getPageList().get(0)).as("Correct page list contents").isSameAs(tb2);
assertThat(holder.getPageList().get(1)).as("Correct page list contents").isSameAs(tb1);
assertThat(holder.getPageList().get(0) == tb2).as("Correct page list contents").isTrue();
assertThat(holder.getPageList().get(1) == tb1).as("Correct page list contents").isTrue();
((MutableSortDefinition) holder.getSort()).setProperty("name");
holder.resort();
assertThat(holder.getPageList().get(0)).as("Correct page list contents").isSameAs(tb3);
assertThat(holder.getPageList().get(1)).as("Correct page list contents").isSameAs(tb1);
assertThat(holder.getPageList().get(0) == tb3).as("Correct page list contents").isTrue();
assertThat(holder.getPageList().get(1) == tb1).as("Correct page list contents").isTrue();
holder.setPage(1);
assertThat(holder.getPageList().size()).as("Correct page list size").isEqualTo(1);
assertThat(holder.getPageList().get(0)).as("Correct page list contents").isSameAs(tb2);
assertThat(holder.getPageList().size() == 1).as("Correct page list size").isTrue();
assertThat(holder.getPageList().get(0) == tb2).as("Correct page list contents").isTrue();
((MutableSortDefinition) holder.getSort()).setProperty("age");
holder.resort();
assertThat(holder.getPageList().get(0)).as("Correct page list contents").isSameAs(tb1);
assertThat(holder.getPageList().get(1)).as("Correct page list contents").isSameAs(tb3);
assertThat(holder.getPageList().get(0) == tb1).as("Correct page list contents").isTrue();
assertThat(holder.getPageList().get(1) == tb3).as("Correct page list contents").isTrue();
((MutableSortDefinition) holder.getSort()).setIgnoreCase(true);
holder.resort();
assertThat(holder.getPageList().get(0)).as("Correct page list contents").isSameAs(tb1);
assertThat(holder.getPageList().get(1)).as("Correct page list contents").isSameAs(tb3);
assertThat(holder.getPageList().get(0) == tb1).as("Correct page list contents").isTrue();
assertThat(holder.getPageList().get(1) == tb3).as("Correct page list contents").isTrue();
holder.nextPage();
assertThat(holder.getPage()).isEqualTo(1);
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -39,9 +39,9 @@ public class PropertyComparatorTests {
dog2.setNickName("biscy");
PropertyComparator<Dog> c = new PropertyComparator<>("nickName", false, true);
assertThat(c.compare(dog, dog2)).isGreaterThan(0);
assertThat(c.compare(dog, dog)).isEqualTo(0);
assertThat(c.compare(dog2, dog)).isLessThan(0);
assertThat(c.compare(dog, dog2) > 0).isTrue();
assertThat(c.compare(dog, dog) == 0).isTrue();
assertThat(c.compare(dog2, dog) < 0).isTrue();
}
@Test
@@ -49,7 +49,7 @@ public class PropertyComparatorTests {
Dog dog = new Dog();
Dog dog2 = new Dog();
PropertyComparator<Dog> c = new PropertyComparator<>("nickName", false, true);
assertThat(c.compare(dog, dog2)).isEqualTo(0);
assertThat(c.compare(dog, dog2) == 0).isTrue();
}
@Test
@@ -64,13 +64,13 @@ public class PropertyComparatorTests {
dog2.setFirstName("biscuit");
dog2.setLastName("grayspots");
assertThat(c.compare(dog1, dog2)).isEqualTo(0);
assertThat(c.compare(dog1, dog2) == 0).isTrue();
c = c.thenComparing(new PropertyComparator<>("firstName", false, true));
assertThat(c.compare(dog1, dog2)).isGreaterThan(0);
assertThat(c.compare(dog1, dog2) > 0).isTrue();
dog2.setLastName("konikk dog");
assertThat(c.compare(dog2, dog1)).isGreaterThan(0);
assertThat(c.compare(dog2, dog1) > 0).isTrue();
}
@Test
@@ -86,9 +86,9 @@ public class PropertyComparatorTests {
dog2.setFirstName("biscuit");
dog2.setLastName("grayspots");
assertThat(c.compare(dog1, dog2)).isGreaterThan(0);
assertThat(c.compare(dog1, dog2) > 0).isTrue();
c = c.reversed();
assertThat(c.compare(dog1, dog2)).isLessThan(0);
assertThat(c.compare(dog1, dog2) < 0).isTrue();
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -58,11 +58,11 @@ public abstract class AbstractBeanFactoryTests {
assertThat(getBeanFactory().containsBean("roderick")).isTrue();
TestBean rod = (TestBean) getBeanFactory().getBean("rod");
TestBean roderick = (TestBean) getBeanFactory().getBean("roderick");
assertThat(rod).as("not == ").isNotSameAs(roderick);
assertThat(rod != roderick).as("not == ").isTrue();
assertThat(rod.getName().equals("Rod")).as("rod.name is Rod").isTrue();
assertThat(rod.getAge()).as("rod.age is 31").isEqualTo(31);
assertThat(rod.getAge() == 31).as("rod.age is 31").isTrue();
assertThat(roderick.getName().equals("Roderick")).as("roderick.name is Roderick").isTrue();
assertThat(roderick.getAge()).as("roderick.age was inherited").isEqualTo(rod.getAge());
assertThat(roderick.getAge() == rod.getAge()).as("roderick.age was inherited").isTrue();
}
@Test
@@ -104,7 +104,7 @@ public abstract class AbstractBeanFactoryTests {
assertThat(condition).as("Rod bean is a TestBean").isTrue();
TestBean rod = (TestBean) o;
assertThat(rod.getName().equals("Rod")).as("rod.name is Rod").isTrue();
assertThat(rod.getAge()).as("rod.age is 31").isEqualTo(31);
assertThat(rod.getAge() == 31).as("rod.age is 31").isTrue();
}
@Test
@@ -158,19 +158,19 @@ public abstract class AbstractBeanFactoryTests {
Object o1 = getBeanFactory().getBean("rod");
boolean condition = o1 instanceof TestBean;
assertThat(condition).as("Rod bean2 is a TestBean").isTrue();
assertThat(o).as("Object equals applies").isSameAs(o1);
assertThat(o == o1).as("Object equals applies").isTrue();
}
@Test
public void prototypeInstancesAreIndependent() {
TestBean tb1 = (TestBean) getBeanFactory().getBean("kathy");
TestBean tb2 = (TestBean) getBeanFactory().getBean("kathy");
assertThat(tb1).as("ref equal DOES NOT apply").isNotSameAs(tb2);
assertThat(tb1 != tb2).as("ref equal DOES NOT apply").isTrue();
assertThat(tb1.equals(tb2)).as("object equal true").isTrue();
tb1.setAge(1);
tb2.setAge(2);
assertThat(tb1.getAge()).as("1 age independent = 1").isEqualTo(1);
assertThat(tb2.getAge()).as("2 age independent = 2").isEqualTo(2);
assertThat(tb1.getAge() == 1).as("1 age independent = 1").isTrue();
assertThat(tb2.getAge() == 2).as("2 age independent = 2").isTrue();
boolean condition = !tb1.equals(tb2);
assertThat(condition).as("object equal now false").isTrue();
}
@@ -212,8 +212,8 @@ public abstract class AbstractBeanFactoryTests {
assertThat(tb.getName().equals(DummyFactory.SINGLETON_NAME)).as("Singleton from factory has correct name, not " + tb.getName()).isTrue();
DummyFactory factory = (DummyFactory) getBeanFactory().getBean("&singletonFactory");
TestBean tb2 = (TestBean) getBeanFactory().getBean("singletonFactory");
assertThat(tb).as("Singleton references ==").isSameAs(tb2);
assertThat(factory.getBeanFactory()).as("FactoryBean is BeanFactoryAware").isNotNull();
assertThat(tb == tb2).as("Singleton references ==").isTrue();
assertThat(factory.getBeanFactory() != null).as("FactoryBean is BeanFactoryAware").isTrue();
}
@Test
@@ -224,7 +224,7 @@ public abstract class AbstractBeanFactoryTests {
boolean condition = !tb.getName().equals(DummyFactory.SINGLETON_NAME);
assertThat(condition).isTrue();
TestBean tb2 = (TestBean) getBeanFactory().getBean("prototypeFactory");
assertThat(tb).as("Prototype references !=").isNotSameAs(tb2);
assertThat(tb != tb2).as("Prototype references !=").isTrue();
}
/**
@@ -274,7 +274,7 @@ public abstract class AbstractBeanFactoryTests {
cbf.registerAlias("rod", alias);
Object rod = getBeanFactory().getBean("rod");
Object aliasRod = getBeanFactory().getBean(alias);
assertThat(rod).isSameAs(aliasRod);
assertThat(rod == aliasRod).isTrue();
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -50,25 +50,24 @@ public abstract class AbstractListableBeanFactoryTests extends AbstractBeanFacto
protected final void assertCount(int count) {
String[] defnames = getListableBeanFactory().getBeanDefinitionNames();
assertThat(defnames.length).as("We should have " + count + " beans, not " + defnames.length).isEqualTo(count);
assertThat(defnames.length == count).as("We should have " + count + " beans, not " + defnames.length).isTrue();
}
protected void assertTestBeanCount(int count) {
String[] defNames = getListableBeanFactory().getBeanNamesForType(TestBean.class, true, false);
assertThat(defNames.length).as("We should have " + count + " beans for class org.springframework.beans.testfixture.beans.TestBean, not " +
defNames.length).isEqualTo(count);
assertThat(defNames.length == count).as("We should have " + count + " beans for class org.springframework.beans.testfixture.beans.TestBean, not " +
defNames.length).isTrue();
int countIncludingFactoryBeans = count + 2;
String[] names = getListableBeanFactory().getBeanNamesForType(TestBean.class, true, true);
assertThat(names.length).as("We should have " + countIncludingFactoryBeans +
" beans for class org.springframework.beans.testfixture.beans.TestBean, not " + names.length)
.isEqualTo(countIncludingFactoryBeans);
assertThat(names.length == countIncludingFactoryBeans).as("We should have " + countIncludingFactoryBeans +
" beans for class org.springframework.beans.testfixture.beans.TestBean, not " + names.length).isTrue();
}
@Test
public void getDefinitionsForNoSuchClass() {
String[] defnames = getListableBeanFactory().getBeanNamesForType(String.class);
assertThat(defnames.length).as("No string definitions").isEqualTo(0);
assertThat(defnames.length == 0).as("No string definitions").isTrue();
}
/**
@@ -77,11 +76,11 @@ public abstract class AbstractListableBeanFactoryTests extends AbstractBeanFacto
*/
@Test
public void getCountForFactoryClass() {
assertThat(getListableBeanFactory().getBeanNamesForType(FactoryBean.class).length).as("Should have 2 factories, not " +
getListableBeanFactory().getBeanNamesForType(FactoryBean.class).length).isEqualTo(2);
assertThat(getListableBeanFactory().getBeanNamesForType(FactoryBean.class).length == 2).as("Should have 2 factories, not " +
getListableBeanFactory().getBeanNamesForType(FactoryBean.class).length).isTrue();
assertThat(getListableBeanFactory().getBeanNamesForType(FactoryBean.class).length).as("Should have 2 factories, not " +
getListableBeanFactory().getBeanNamesForType(FactoryBean.class).length).isEqualTo(2);
assertThat(getListableBeanFactory().getBeanNamesForType(FactoryBean.class).length == 2).as("Should have 2 factories, not " +
getListableBeanFactory().getBeanNamesForType(FactoryBean.class).length).isTrue();
}
@Test
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -222,7 +222,7 @@ class CandidateComponentsIndexerTests {
for (Class<?> c : classes) {
assertThat(metadata).has(Metadata.of(c, Component.class));
}
assertThat(metadata.getItems()).hasSameSizeAs(classes);
assertThat(metadata.getItems()).hasSize(classes.length);
}
private void testSingleComponent(Class<?> target, Class<?>... stereotypes) {
@@ -93,11 +93,11 @@ public class CaffeineCacheManagerTests {
Cache cache1x = cm.getCache("c1");
boolean condition1 = cache1x instanceof CaffeineCache;
assertThat(condition1).isTrue();
assertThat(cache1x).isNotSameAs(cache1);
assertThat(cache1x != cache1).isTrue();
Cache cache2x = cm.getCache("c2");
boolean condition = cache2x instanceof CaffeineCache;
assertThat(condition).isTrue();
assertThat(cache2x).isNotSameAs(cache2);
assertThat(cache2x != cache2).isTrue();
Cache cache3x = cm.getCache("c3");
assertThat(cache3x).isNull();
@@ -123,7 +123,7 @@ public class CaffeineCacheManagerTests {
Caffeine<Object, Object> caffeine = Caffeine.newBuilder().maximumSize(10);
cm.setCaffeine(caffeine);
Cache cache1x = cm.getCache("c1");
assertThat(cache1x).isNotSameAs(cache1);
assertThat(cache1x != cache1).isTrue();
cm.setCaffeine(caffeine); // Set same instance
Cache cache1xx = cm.getCache("c1");
@@ -137,7 +137,7 @@ public class CaffeineCacheManagerTests {
cm.setCaffeineSpec(CaffeineSpec.parse("maximumSize=10"));
Cache cache1x = cm.getCache("c1");
assertThat(cache1x).isNotSameAs(cache1);
assertThat(cache1x != cache1).isTrue();
}
@Test
@@ -147,7 +147,7 @@ public class CaffeineCacheManagerTests {
cm.setCacheSpecification("maximumSize=10");
Cache cache1x = cm.getCache("c1");
assertThat(cache1x).isNotSameAs(cache1);
assertThat(cache1x != cache1).isTrue();
}
@Test
@@ -160,7 +160,7 @@ public class CaffeineCacheManagerTests {
cm.setCacheLoader(loader);
Cache cache1x = cm.getCache("c1");
assertThat(cache1x).isNotSameAs(cache1);
assertThat(cache1x != cache1).isTrue();
cm.setCacheLoader(loader); // Set same instance
Cache cache1xx = cm.getCache("c1");
@@ -201,11 +201,11 @@ public class CaffeineCacheManagerTests {
Cache cache1 = cm.getCache("c1");
Cache cache2 = cm.getCache("c2");
assertThat(nc).isSameAs(cache2.getNativeCache());
assertThat(nc == cache2.getNativeCache()).isTrue();
cm.setCaffeine(Caffeine.newBuilder().maximumSize(10));
assertThat(cm.getCache("c1")).isNotSameAs(cache1);
assertThat(cm.getCache("c2")).isSameAs(cache2);
assertThat(cm.getCache("c1") != cache1).isTrue();
assertThat(cm.getCache("c2") == cache2).isTrue();
}
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -72,7 +72,7 @@ public class JCacheCustomInterceptorTests {
@Test
public void onlyOneInterceptorIsAvailable() {
Map<String, JCacheInterceptor> interceptors = ctx.getBeansOfType(JCacheInterceptor.class);
assertThat(interceptors).as("Only one interceptor should be defined").hasSize(1);
assertThat(interceptors.size()).as("Only one interceptor should be defined").isEqualTo(1);
JCacheInterceptor interceptor = interceptors.values().iterator().next();
assertThat(interceptor.getClass()).as("Custom interceptor not defined").isEqualTo(TestCacheInterceptor.class);
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -45,8 +45,7 @@ public abstract class AbstractCacheOperationTests<O extends JCacheOperation<?>>
public void simple() {
O operation = createSimpleOperation();
assertThat(operation.getCacheName()).as("Wrong cache name").isEqualTo("simpleCache");
assertThat(operation.getAnnotations()).as("Unexpected number of annotation on " + operation.getMethod())
.hasSize(1);
assertThat(operation.getAnnotations().size()).as("Unexpected number of annotation on " + operation.getMethod()).isEqualTo(1);
assertThat(operation.getAnnotations().iterator().next()).as("Wrong method annotation").isEqualTo(operation.getCacheAnnotation());
assertThat(operation.getCacheResolver()).as("cache resolver should be set").isNotNull();
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -37,25 +37,25 @@ public class InternetAddressEditorTests {
@Test
public void uninitialized() {
assertThat(editor.getAsText()).as("Uninitialized editor did not return empty value string").isEmpty();
assertThat(editor.getAsText()).as("Uninitialized editor did not return empty value string").isEqualTo(EMPTY);
}
@Test
public void setNull() {
editor.setAsText(null);
assertThat(editor.getAsText()).as("Setting null did not result in empty value string").isEmpty();
assertThat(editor.getAsText()).as("Setting null did not result in empty value string").isEqualTo(EMPTY);
}
@Test
public void setEmpty() {
editor.setAsText(EMPTY);
assertThat(editor.getAsText()).as("Setting empty string did not result in empty value string").isEmpty();
assertThat(editor.getAsText()).as("Setting empty string did not result in empty value string").isEqualTo(EMPTY);
}
@Test
public void allWhitespace() {
editor.setAsText(" ");
assertThat(editor.getAsText()).as("All whitespace was not recognized").isEmpty();
assertThat(editor.getAsText()).as("All whitespace was not recognized").isEqualTo(EMPTY);
}
@Test
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -39,8 +39,8 @@ public class QuartzSchedulerLifecycleTests {
sw.start("lazyScheduler");
context.close();
sw.stop();
assertThat(sw.getTotalTimeMillis()).as("Quartz Scheduler with lazy-init is hanging on destruction: " +
sw.getTotalTimeMillis()).isLessThan(500);
assertThat(sw.getTotalTimeMillis() < 500).as("Quartz Scheduler with lazy-init is hanging on destruction: " +
sw.getTotalTimeMillis()).isTrue();
}
@Test // SPR-6354
@@ -52,8 +52,8 @@ public class QuartzSchedulerLifecycleTests {
sw.start("lazyScheduler");
context.close();
sw.stop();
assertThat(sw.getTotalTimeMillis()).as("Quartz Scheduler with lazy-init is hanging on destruction: " +
sw.getTotalTimeMillis()).isLessThan(500);
assertThat(sw.getTotalTimeMillis() < 500).as("Quartz Scheduler with lazy-init is hanging on destruction: " +
sw.getTotalTimeMillis()).isTrue();
}
}
@@ -126,7 +126,7 @@ class QuartzSupportTests {
bean.start();
Thread.sleep(500);
assertThat(DummyJob.count).as("DummyJob should have been executed at least once.").isGreaterThan(0);
assertThat(DummyJob.count > 0).as("DummyJob should have been executed at least once.").isTrue();
assertThat(taskExecutor.count).isEqualTo(DummyJob.count);
bean.destroy();
@@ -168,7 +168,7 @@ class QuartzSupportTests {
Thread.sleep(500);
assertThat(DummyJobBean.param).isEqualTo(10);
assertThat(DummyJobBean.count).isGreaterThan(0);
assertThat(DummyJobBean.count > 0).isTrue();
bean.destroy();
}
@@ -203,7 +203,7 @@ class QuartzSupportTests {
Thread.sleep(500);
assertThat(DummyJob.param).isEqualTo(10);
assertThat(DummyJob.count).as("DummyJob should have been executed at least once.").isGreaterThan(0);
assertThat(DummyJob.count > 0).as("DummyJob should have been executed at least once.").isTrue();
bean.destroy();
}
@@ -239,7 +239,7 @@ class QuartzSupportTests {
Thread.sleep(500);
assertThat(DummyJob.param).isEqualTo(0);
assertThat(DummyJob.count).isEqualTo(0);
assertThat(DummyJob.count == 0).isTrue();
bean.destroy();
}
@@ -273,7 +273,7 @@ class QuartzSupportTests {
Thread.sleep(500);
assertThat(DummyJobBean.param).isEqualTo(10);
assertThat(DummyJobBean.count).isGreaterThan(0);
assertThat(DummyJobBean.count > 0).isTrue();
bean.destroy();
}
@@ -292,7 +292,7 @@ class QuartzSupportTests {
Thread.sleep(500);
assertThat(DummyJob.param).isEqualTo(10);
assertThat(DummyJob.count).as("DummyJob should have been executed at least once.").isGreaterThan(0);
assertThat(DummyJob.count > 0).as("DummyJob should have been executed at least once.").isTrue();
bean.destroy();
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -106,7 +106,7 @@ import org.springframework.core.io.support.PropertySourceFactory;
*
* <h3>A note on property overriding with {@code @PropertySource}</h3>
*
* <p>In cases where a given property key exists in more than one property resource
* <p>In cases where a given property key exists in more than one {@code .properties}
* file, the last {@code @PropertySource} annotation processed will 'win' and override
* any previous key with the same name.
*
@@ -182,13 +182,14 @@ public @interface PropertySource {
String name() default "";
/**
* Indicate the resource locations of the properties files to be loaded.
* <p>The default {@link #factory() factory} supports both traditional and
* XML-based properties file formats &mdash; for example,
* {@code "classpath:/com/myco/app.properties"} or {@code "file:/path/to/file.xml"}.
* Indicate the resource location(s) of the properties file to be loaded.
* <p>Both traditional and XML-based properties file formats are supported
* &mdash; for example, {@code "classpath:/com/myco/app.properties"}
* or {@code "file:/path/to/file.xml"}.
* <p>Resource location wildcards (e.g. *&#42;/*.properties) are not permitted;
* each location must evaluate to exactly one resource.
* <p>${...} placeholders will be resolved against property sources already
* each location must evaluate to exactly one {@code .properties} or {@code .xml}
* resource.
* <p>${...} placeholders will be resolved against any/all property sources already
* registered with the {@code Environment}. See {@linkplain PropertySource above}
* for examples.
* <p>Each location will be added to the enclosing {@code Environment} as its own
@@ -213,9 +214,7 @@ public @interface PropertySource {
/**
* Specify a custom {@link PropertySourceFactory}, if any.
* <p>By default, a default factory for standard resource files will be used
* which supports {@code *.properties} and {@code *.xml} file formats for
* {@link java.util.Properties}.
* <p>By default, a default factory for standard resource files will be used.
* @since 4.3
* @see org.springframework.core.io.support.DefaultPropertySourceFactory
* @see org.springframework.core.io.support.ResourcePropertySource
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -281,11 +281,11 @@ public class ConcurrentTaskScheduler extends ConcurrentTaskExecutor implements T
return executor.schedule(task, new TriggerAdapter(trigger));
}
private static class TriggerAdapter implements jakarta.enterprise.concurrent.Trigger {
private final Trigger adaptee;
public TriggerAdapter(Trigger adaptee) {
this.adaptee = adaptee;
}
@@ -294,45 +294,48 @@ public class ConcurrentTaskScheduler extends ConcurrentTaskExecutor implements T
@Nullable
public Date getNextRunTime(@Nullable LastExecution le, Date taskScheduledTime) {
Instant instant = this.adaptee.nextExecution(new LastExecutionAdapter(le));
return (instant != null ? Date.from(instant) : null);
return instant != null ? Date.from(instant) : null;
}
@Nullable
private static Instant toInstant(@Nullable Date date) {
return date != null ? date.toInstant() : null;
}
@Override
public boolean skipRun(LastExecution lastExecutionInfo, Date scheduledRunTime) {
return false;
}
private static class LastExecutionAdapter implements TriggerContext {
@Nullable
private final LastExecution le;
public LastExecutionAdapter(@Nullable LastExecution le) {
this.le = le;
}
@Override
public Instant lastScheduledExecution() {
return (this.le != null ? toInstant(this.le.getScheduledStart()) : null);
return (this.le != null) ? toInstant(this.le.getScheduledStart()) : null;
}
@Override
public Instant lastActualExecution() {
return (this.le != null ? toInstant(this.le.getRunStart()) : null);
return (this.le != null) ? toInstant(this.le.getRunStart()) : null;
}
@Override
public Instant lastCompletion() {
return (this.le != null ? toInstant(this.le.getRunEnd()) : null);
}
@Nullable
private static Instant toInstant(@Nullable Date date) {
return (date != null ? date.toInstant() : null);
return (this.le != null) ? toInstant(this.le.getRunEnd()) : null;
}
}
}
}
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2018 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -125,7 +125,7 @@ public class FieldError extends ObjectError {
@Override
public String toString() {
return "Field error in object '" + getObjectName() + "' on field '" + this.field +
"': rejected value [" + ObjectUtils.nullSafeConciseToString(this.rejectedValue) + "]; " +
"': rejected value [" + ObjectUtils.nullSafeToString(this.rejectedValue) + "]; " +
resolvableToString();
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -74,9 +74,8 @@ class ProceedTests {
@Test
void testProceedWithArgsInSameAspect() {
this.testBean.setMyFloat(1.0F);
assertThat(this.testBean.getMyFloat()).as("value changed in around advice").isGreaterThan(1.9F);
assertThat(this.firstTestAspect.getLastBeforeFloatValue()).as("changed value visible to next advice in chain")
.isGreaterThan(1.9F);
assertThat(this.testBean.getMyFloat() > 1.9F).as("value changed in around advice").isTrue();
assertThat(this.firstTestAspect.getLastBeforeFloatValue() > 1.9F).as("changed value visible to next advice in chain").isTrue();
}
@Test
@@ -258,7 +258,7 @@ class AspectJAutoProxyCreatorTests {
AdviceUsingThisJoinPoint aspectInstance = (AdviceUsingThisJoinPoint) bf.getBean("aspect");
//(AdviceUsingThisJoinPoint) Aspects.aspectOf(AdviceUsingThisJoinPoint.class);
//assertEquals("method-execution(int TestBean.getAge())",aspectInstance.getLastMethodEntered());
assertThat(aspectInstance.getLastMethodEntered()).doesNotStartWith("TestBean.getAge())");
assertThat(aspectInstance.getLastMethodEntered().indexOf("TestBean.getAge())") != 0).isTrue();
}
@Test

Some files were not shown because too many files have changed in this diff Show More