Skip to content

Commit 6eae09b

Browse files
quaffsnicoll
authored andcommitted
Document the semantic of using multiple profile expressions
This commit clarifies the semantic of declaring multiple profile expression with the "spring.config.activate.on-profile" property. See gh-44866 Signed-off-by: Yanming Zhou <[email protected]>
1 parent 8404736 commit 6eae09b

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

Diff for: spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/features/external-config.adoc

+3-1
Original file line numberDiff line numberDiff line change
@@ -545,7 +545,9 @@ The following activation properties are available:
545545
| Property | Note
546546

547547
| `on-profile`
548-
| A profile expression that must match for the document to be active.
548+
| A profile expression that must match for the document to be active,
549+
or a list of profile expressions of which at least one must match for the document to be active.
550+
Please note comma-separated list such as `foo,bar` is equal to `foo\|bar` instead of `foo&bar`.
549551

550552
| `on-cloud-platform`
551553
| The javadoc:org.springframework.boot.cloud.CloudPlatform[] that must be detected for the document to be active.

Diff for: spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/config/ConfigDataPropertiesTests.java

+12-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2024 the original author or authors.
2+
* Copyright 2012-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -200,6 +200,17 @@ void isActiveAgainstBoundDataWhenCloudPlatformDoesntMatch() {
200200
assertThat(properties.isActive(context)).isFalse();
201201
}
202202

203+
@Test
204+
void isActiveAgainstBoundDataWhenProfilesMatchCommaSeparatedList() {
205+
MapConfigurationPropertySource source = new MapConfigurationPropertySource();
206+
source.put("spring.config.activate.on-profile", "a&b,nonexistent");
207+
Binder binder = new Binder(source);
208+
ConfigDataProperties properties = ConfigDataProperties.get(binder);
209+
ConfigDataActivationContext context = new ConfigDataActivationContext(NULL_CLOUD_PLATFORM,
210+
createTestProfiles());
211+
assertThat(properties.isActive(context)).isTrue();
212+
}
213+
203214
@Test
204215
void getImportOriginWhenCommaListReturnsOrigin() {
205216
MapConfigurationPropertySource source = new MapConfigurationPropertySource();

0 commit comments

Comments
 (0)