Skip to content

Commit 40b7b07

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

File tree

6 files changed

+30
-15
lines changed

6 files changed

+30
-15
lines changed

compat/maven-embedder/src/main/java/org/apache/maven/cli/internal/BootstrapCoreExtensionManager.java

+6-3
Original file line numberDiff line numberDiff line change
@@ -110,21 +110,25 @@ public class BootstrapCoreExtensionManager {
110110

111111
private final RepositorySystem repoSystem;
112112

113+
private final Interpolator interpolator;
114+
113115
@Inject
114116
public BootstrapCoreExtensionManager(
115117
DefaultPluginDependenciesResolver pluginDependenciesResolver,
116118
RepositorySystemSessionFactory repositorySystemSessionFactory,
117119
CoreExports coreExports,
118120
PlexusContainer container,
119121
@Nullable @Named("ide") WorkspaceReader ideWorkspaceReader,
120-
RepositorySystem repoSystem) {
122+
RepositorySystem repoSystem,
123+
Interpolator interpolator) {
121124
this.pluginDependenciesResolver = pluginDependenciesResolver;
122125
this.repositorySystemSessionFactory = repositorySystemSessionFactory;
123126
this.coreExports = coreExports;
124127
this.classWorld = ((DefaultPlexusContainer) container).getClassWorld();
125128
this.parentRealm = container.getContainerRealm();
126129
this.ideWorkspaceReader = ideWorkspaceReader;
127130
this.repoSystem = repoSystem;
131+
this.interpolator = interpolator;
128132
}
129133

130134
public List<CoreExtensionEntry> loadCoreExtensions(
@@ -232,8 +236,7 @@ private List<Artifact> resolveExtension(
232236
}
233237
}
234238

235-
private static UnaryOperator<String> createInterpolator(MavenExecutionRequest request) {
236-
Interpolator interpolator = new DefaultInterpolator();
239+
private UnaryOperator<String> createInterpolator(MavenExecutionRequest request) {
237240
UnaryOperator<String> callback = v -> {
238241
String r = request.getUserProperties().getProperty(v);
239242
if (r == null) {

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

+6-3
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

+4-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.google.inject.Binder;
2424
import com.google.inject.Module;
2525
import com.google.inject.name.Names;
26+
import org.apache.maven.api.di.Inject;
2627
import org.apache.maven.api.services.Interpolator;
2728
import org.apache.maven.api.xml.XmlNode;
2829
import org.apache.maven.extension.internal.CoreExtensionEntry;
@@ -36,7 +37,9 @@ public class ExtensionConfigurationModule implements Module {
3637

3738
private final CoreExtensionEntry extension;
3839
private final UnaryOperator<String> callback;
39-
private final DefaultInterpolator interpolator = new DefaultInterpolator();
40+
41+
@Inject
42+
private DefaultInterpolator interpolator;
4043

4144
public ExtensionConfigurationModule(CoreExtensionEntry extension, UnaryOperator<String> callback) {
4245
this.extension = extension;

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

+9-5
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/model/profile/ConditionParserTest.java

+3-2
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

+2-1
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)