|
|
|
|
@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
|
|
|
|
|
/* |
|
|
|
|
* Copyright 2012-2024 the original author or authors. |
|
|
|
|
* Copyright 2012-2025 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. |
|
|
|
|
@ -149,13 +149,13 @@ public class StandardConfigDataLocationResolver
@@ -149,13 +149,13 @@ public class StandardConfigDataLocationResolver
|
|
|
|
|
@Override |
|
|
|
|
public List<StandardConfigDataResource> resolveProfileSpecific(ConfigDataLocationResolverContext context, |
|
|
|
|
ConfigDataLocation location, Profiles profiles) { |
|
|
|
|
validateProfiles(profiles); |
|
|
|
|
return resolve(getProfileSpecificReferences(context, location.split(), profiles)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private Set<StandardConfigDataReference> getProfileSpecificReferences(ConfigDataLocationResolverContext context, |
|
|
|
|
ConfigDataLocation[] configDataLocations, Profiles profiles) { |
|
|
|
|
Set<StandardConfigDataReference> references = new LinkedHashSet<>(); |
|
|
|
|
validateProfiles(profiles); |
|
|
|
|
for (String profile : profiles) { |
|
|
|
|
for (ConfigDataLocation configDataLocation : configDataLocations) { |
|
|
|
|
String resourceLocation = getResourceLocation(context, configDataLocation); |
|
|
|
|
@ -172,7 +172,7 @@ public class StandardConfigDataLocationResolver
@@ -172,7 +172,7 @@ public class StandardConfigDataLocationResolver
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void validateProfile(String profile) { |
|
|
|
|
Assert.hasText(profile, "Profile must contain text"); |
|
|
|
|
Assert.hasText(profile, "'profile' must contain text"); |
|
|
|
|
Assert.state(!profile.startsWith("-") && !profile.startsWith("_"), |
|
|
|
|
() -> String.format("Invalid profile '%s': must not start with '-' or '_'", profile)); |
|
|
|
|
Assert.state(!profile.endsWith("-") && !profile.endsWith("_"), |
|
|
|
|
@ -181,7 +181,8 @@ public class StandardConfigDataLocationResolver
@@ -181,7 +181,8 @@ public class StandardConfigDataLocationResolver
|
|
|
|
|
if (codePoint == '-' || codePoint == '_' || Character.isLetterOrDigit(codePoint)) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
throw new IllegalStateException(String.format("Invalid profile '%s': must contain only letters or digits or '-' or '_'", profile)); |
|
|
|
|
throw new IllegalStateException( |
|
|
|
|
String.format("Invalid profile '%s': must contain only letters or digits or '-' or '_'", profile)); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|