Skip to content

Commit 906881f

Browse files
committed
[MNG-8524] DefaultInterpolator should be used by injection
Signed-off-by: crazyhzm <[email protected]>
1 parent aeec37f commit 906881f

File tree

9 files changed

+27
-26
lines changed

9 files changed

+27
-26
lines changed

impl/maven-cli/src/main/java/org/apache/maven/cling/extensions/BootstrapCoreExtensionManager.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,21 +108,25 @@ public class BootstrapCoreExtensionManager {
108108

109109
private final RepositorySystem repoSystem;
110110

111+
private final Interpolator interpolator;
112+
111113
@Inject
112114
public BootstrapCoreExtensionManager(
113115
DefaultPluginDependenciesResolver pluginDependenciesResolver,
114116
RepositorySystemSessionFactory repositorySystemSessionFactory,
115117
CoreExports coreExports,
116118
PlexusContainer container,
117119
@Nullable @Named("ide") WorkspaceReader ideWorkspaceReader,
118-
RepositorySystem repoSystem) {
120+
RepositorySystem repoSystem,
121+
Interpolator interpolator) {
119122
this.pluginDependenciesResolver = pluginDependenciesResolver;
120123
this.repositorySystemSessionFactory = repositorySystemSessionFactory;
121124
this.coreExports = coreExports;
122125
this.classWorld = ((DefaultPlexusContainer) container).getClassWorld();
123126
this.parentRealm = container.getContainerRealm();
124127
this.ideWorkspaceReader = ideWorkspaceReader;
125128
this.repoSystem = repoSystem;
129+
this.interpolator = interpolator;
126130
}
127131

128132
public List<CoreExtensionEntry> loadCoreExtensions(
@@ -230,8 +234,7 @@ private List<Artifact> resolveExtension(
230234
}
231235
}
232236

233-
private static UnaryOperator<String> createInterpolator(MavenExecutionRequest request) {
234-
Interpolator interpolator = new DefaultInterpolator();
237+
private UnaryOperator<String> createInterpolator(MavenExecutionRequest request) {
235238
UnaryOperator<String> callback = v -> {
236239
String r = request.getUserProperties().getProperty(v);
237240
if (r == null) {

impl/maven-cli/src/main/java/org/apache/maven/cling/extensions/ExtensionConfigurationModule.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public class ExtensionConfigurationModule implements Module {
3636

3737
private final CoreExtensionEntry extension;
3838
private final UnaryOperator<String> callback;
39+
3940
private final DefaultInterpolator interpolator = new DefaultInterpolator();
4041

4142
public ExtensionConfigurationModule(CoreExtensionEntry extension, UnaryOperator<String> callback) {

impl/maven-impl/src/main/java/org/apache/maven/internal/impl/DefaultSettingsBuilder.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@
5353
import org.apache.maven.api.settings.RepositoryPolicy;
5454
import org.apache.maven.api.settings.Server;
5555
import org.apache.maven.api.settings.Settings;
56-
import org.apache.maven.internal.impl.model.DefaultInterpolator;
5756
import org.apache.maven.settings.v4.SettingsMerger;
5857
import org.apache.maven.settings.v4.SettingsTransformer;
5958
import org.codehaus.plexus.components.secdispatcher.Dispatcher;
@@ -77,13 +76,6 @@ public class DefaultSettingsBuilder implements SettingsBuilder {
7776

7877
private final Map<String, Dispatcher> dispatchers;
7978

80-
/**
81-
* This ctor is used in legacy components.
82-
*/
83-
public DefaultSettingsBuilder() {
84-
this(new DefaultSettingsXmlFactory(), new DefaultInterpolator(), Map.of());
85-
}
86-
8779
/**
8880
* In Maven4 the {@link SecDispatcher} is injected and build settings are fully decrypted as well.
8981
*/

impl/maven-impl/src/main/java/org/apache/maven/internal/impl/DefaultToolchainsBuilder.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
import org.apache.maven.api.services.xml.XmlReaderException;
4141
import org.apache.maven.api.services.xml.XmlReaderRequest;
4242
import org.apache.maven.api.toolchain.PersistedToolchains;
43-
import org.apache.maven.internal.impl.model.DefaultInterpolator;
4443
import org.apache.maven.toolchain.v4.MavenToolchainsMerger;
4544
import org.apache.maven.toolchain.v4.MavenToolchainsTransformer;
4645

@@ -57,10 +56,6 @@ public class DefaultToolchainsBuilder implements ToolchainsBuilder {
5756

5857
private final ToolchainsXmlFactory toolchainsXmlFactory;
5958

60-
public DefaultToolchainsBuilder() {
61-
this(new DefaultInterpolator(), new DefaultToolchainsXmlFactory());
62-
}
63-
6459
@Inject
6560
public DefaultToolchainsBuilder(Interpolator interpolator, ToolchainsXmlFactory toolchainsXmlFactory) {
6661
this.interpolator = interpolator;

impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/profile/ConditionProfileActivator.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@
2828
import org.apache.maven.api.model.Activation;
2929
import org.apache.maven.api.model.Profile;
3030
import org.apache.maven.api.services.BuilderProblem.Severity;
31+
import org.apache.maven.api.services.Interpolator;
3132
import org.apache.maven.api.services.ModelProblem.Version;
3233
import org.apache.maven.api.services.ModelProblemCollector;
3334
import org.apache.maven.api.services.VersionParser;
3435
import org.apache.maven.api.services.model.ProfileActivationContext;
3536
import org.apache.maven.api.services.model.ProfileActivator;
36-
import org.apache.maven.internal.impl.model.DefaultInterpolator;
3737

3838
import static org.apache.maven.internal.impl.model.profile.ConditionParser.toBoolean;
3939

@@ -47,14 +47,18 @@ public class ConditionProfileActivator implements ProfileActivator {
4747

4848
private final VersionParser versionParser;
4949

50+
private final Interpolator interpolator;
51+
5052
/**
5153
* Constructs a new ConditionProfileActivator with the necessary dependencies.
5254
*
5355
* @param versionParser The parser for handling version comparisons
56+
* @param interpolator The interpolator for interpolating the values in the given map using the provided callback function
5457
*/
5558
@Inject
56-
public ConditionProfileActivator(VersionParser versionParser) {
59+
public ConditionProfileActivator(VersionParser versionParser, Interpolator interpolator) {
5760
this.versionParser = versionParser;
61+
this.interpolator = interpolator;
5862
}
5963

6064
/**
@@ -106,7 +110,7 @@ public boolean presentInConfig(Profile profile, ProfileActivationContext context
106110
* @param versionParser The parser for handling version comparisons
107111
* @return A map of function names to their implementations
108112
*/
109-
public static Map<String, ConditionParser.ExpressionFunction> registerFunctions(
113+
public Map<String, ConditionParser.ExpressionFunction> registerFunctions(
110114
ProfileActivationContext context, VersionParser versionParser) {
111115
Map<String, ConditionParser.ExpressionFunction> functions = new HashMap<>();
112116

@@ -156,9 +160,9 @@ public static Map<String, ConditionParser.ExpressionFunction> registerFunctions(
156160
* @return The value of the property, or null if not found
157161
* @throws IllegalArgumentException if the number of arguments is not exactly one
158162
*/
159-
static String property(ProfileActivationContext context, String name) {
163+
String property(ProfileActivationContext context, String name) {
160164
String value = doGetProperty(context, name);
161-
return new DefaultInterpolator().interpolate(value, s -> doGetProperty(context, s));
165+
return interpolator.interpolate(value, s -> doGetProperty(context, s));
162166
}
163167

164168
static String doGetProperty(ProfileActivationContext context, String name) {

impl/maven-impl/src/test/java/org/apache/maven/internal/impl/DefaultSettingsBuilderFactoryTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import org.apache.maven.api.services.SettingsBuilderResult;
3030
import org.apache.maven.api.services.Source;
3131
import org.apache.maven.api.services.xml.SettingsXmlFactory;
32+
import org.apache.maven.internal.impl.model.DefaultInterpolator;
3233
import org.junit.jupiter.api.BeforeEach;
3334
import org.junit.jupiter.api.Test;
3435
import org.junit.jupiter.api.extension.ExtendWith;
@@ -61,7 +62,8 @@ void setup() {
6162

6263
@Test
6364
void testCompleteWiring() {
64-
SettingsBuilder builder = new DefaultSettingsBuilder();
65+
SettingsBuilder builder =
66+
new DefaultSettingsBuilder(new DefaultSettingsXmlFactory(), new DefaultInterpolator(), Map.of());
6567
assertNotNull(builder);
6668

6769
SettingsBuilderRequest request = SettingsBuilderRequest.builder()

impl/maven-impl/src/test/java/org/apache/maven/internal/impl/DefaultSettingsValidatorTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,15 @@
1919
package org.apache.maven.internal.impl;
2020

2121
import java.util.List;
22+
import java.util.Map;
2223

2324
import org.apache.maven.api.services.BuilderProblem;
2425
import org.apache.maven.api.services.ProblemCollector;
2526
import org.apache.maven.api.services.SettingsBuilder;
2627
import org.apache.maven.api.settings.Profile;
2728
import org.apache.maven.api.settings.Repository;
2829
import org.apache.maven.api.settings.Settings;
30+
import org.apache.maven.internal.impl.model.DefaultInterpolator;
2931
import org.junit.jupiter.api.AfterEach;
3032
import org.junit.jupiter.api.BeforeEach;
3133
import org.junit.jupiter.api.Test;
@@ -41,7 +43,7 @@ class DefaultSettingsValidatorTest {
4143

4244
@BeforeEach
4345
void setUp() throws Exception {
44-
validator = new DefaultSettingsBuilder();
46+
validator = new DefaultSettingsBuilder(new DefaultSettingsXmlFactory(), new DefaultInterpolator(), Map.of());
4547
}
4648

4749
@AfterEach

impl/maven-impl/src/test/java/org/apache/maven/internal/impl/model/profile/ConditionParserTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,9 @@ void setUp() {
5252
new DefaultVersionParser(new DefaultModelVersionParser(new GenericVersionScheme()));
5353
DefaultRootLocator rootLocator = new DefaultRootLocator();
5454

55-
functions = ConditionProfileActivator.registerFunctions(context, versionParser);
56-
propertyResolver = s -> ConditionProfileActivator.property(context, s);
55+
ConditionProfileActivator activator = new ConditionProfileActivator(versionParser, new DefaultInterpolator());
56+
functions = activator.registerFunctions(context, versionParser);
57+
propertyResolver = s -> activator.property(context, s);
5758
parser = new ConditionParser(functions, propertyResolver);
5859
}
5960

impl/maven-impl/src/test/java/org/apache/maven/internal/impl/model/profile/ConditionProfileActivatorTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@ public class ConditionProfileActivatorTest extends AbstractProfileActivatorTest<
5353
@Override
5454
void setUp() throws Exception {
5555
activator = new ConditionProfileActivator(
56-
new DefaultVersionParser(new DefaultModelVersionParser(new GenericVersionScheme())));
56+
new DefaultVersionParser(new DefaultModelVersionParser(new GenericVersionScheme())),
57+
new DefaultInterpolator());
5758

5859
Path file = tempDir.resolve("file.txt");
5960
Files.createFile(file);

0 commit comments

Comments
 (0)