BAEL-7139 implemented (#15082)
This commit is contained in:
parent
49929794b8
commit
7343754f15
@ -15,6 +15,14 @@
|
|||||||
<relativePath>../../parent-boot-3</relativePath>
|
<relativePath>../../parent-boot-3</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
<repositories>
|
||||||
|
<repository>
|
||||||
|
<id>repository.spring.release</id>
|
||||||
|
<name>Spring GA Repository</name>
|
||||||
|
<url>https://repo.spring.io/milestone</url>
|
||||||
|
</repository>
|
||||||
|
</repositories>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
@ -94,6 +102,17 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-test</artifactId>
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
|
<version>3.2.0-M2</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.junit.jupiter</groupId>
|
||||||
|
<artifactId>junit-jupiter</artifactId>
|
||||||
|
<version>5.10.0</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.junit.jupiter</groupId>
|
||||||
|
<artifactId>junit-jupiter-api</artifactId>
|
||||||
|
<version>5.10.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.postgresql</groupId>
|
<groupId>org.postgresql</groupId>
|
||||||
@ -175,6 +194,18 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
<dependencyManagement>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-dependencies</artifactId>
|
||||||
|
<version>3.2.0-M2</version>
|
||||||
|
<scope>import</scope>
|
||||||
|
<type>pom</type>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</dependencyManagement>
|
||||||
|
|
||||||
<profiles>
|
<profiles>
|
||||||
|
|
||||||
<profile>
|
<profile>
|
||||||
@ -244,9 +275,6 @@
|
|||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
<configuration>
|
|
||||||
<compilerArgs>--enable-preview</compilerArgs>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
@ -0,0 +1,70 @@
|
|||||||
|
package com.baeldung.conditionalonthreading;
|
||||||
|
|
||||||
|
import org.assertj.core.api.Assertions;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.condition.EnabledForJreRange;
|
||||||
|
import org.junit.jupiter.api.condition.JRE;
|
||||||
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnThreading;
|
||||||
|
import org.springframework.boot.autoconfigure.thread.Threading;
|
||||||
|
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
public class ConditionalOnThreadingUnitTest {
|
||||||
|
|
||||||
|
ApplicationContextRunner applicationContextRunner = new ApplicationContextRunner()
|
||||||
|
.withUserConfiguration(CurrentConfig.class);
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
static class CurrentConfig {
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@ConditionalOnThreading(Threading.PLATFORM)
|
||||||
|
ThreadingType platformBean() {
|
||||||
|
return ThreadingType.PLATFORM;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@ConditionalOnThreading(Threading.VIRTUAL)
|
||||||
|
ThreadingType virtualBean() {
|
||||||
|
return ThreadingType.VIRTUAL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
enum ThreadingType {
|
||||||
|
PLATFORM, VIRTUAL
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@EnabledForJreRange(max = JRE.JAVA_20)
|
||||||
|
public void whenJava20AndVirtualThreadsEnabled_thenThreadingIsPlatform() {
|
||||||
|
applicationContextRunner.withPropertyValues("spring.threads.virtual.enabled=true").run(context -> {
|
||||||
|
Assertions.assertThat(context.getBean(ThreadingType.class)).isEqualTo(ThreadingType.PLATFORM);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@EnabledForJreRange(max = JRE.JAVA_20)
|
||||||
|
public void whenJava20AndVirtualThreadsDisabled_thenThreadingIsPlatform() {
|
||||||
|
applicationContextRunner.withPropertyValues("spring.threads.virtual.enabled=false").run(context -> {
|
||||||
|
Assertions.assertThat(context.getBean(ThreadingType.class)).isEqualTo(ThreadingType.PLATFORM);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@EnabledForJreRange(min = JRE.JAVA_21)
|
||||||
|
public void whenJava21AndVirtualThreadsEnabled_thenThreadingIsVirtual() {
|
||||||
|
applicationContextRunner.withPropertyValues("spring.threads.virtual.enabled=true").run(context -> {
|
||||||
|
Assertions.assertThat(context.getBean(ThreadingType.class)).isEqualTo(ThreadingType.VIRTUAL);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@EnabledForJreRange(min = JRE.JAVA_21)
|
||||||
|
public void whenJava21AndVirtualThreadsDisabled_thenThreadingIsPlatform() {
|
||||||
|
applicationContextRunner.withPropertyValues("spring.threads.virtual.enabled=false").run(context -> {
|
||||||
|
Assertions.assertThat(context.getBean(ThreadingType.class)).isEqualTo(ThreadingType.PLATFORM);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user