This is an automated email from the ASF dual-hosted git repository. gnodet pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/maven.git
commit f5a407cf79494d90ad1df4aa6336239c542d98e1 Author: Guillaume Nodet <gno...@gmail.com> AuthorDate: Mon Jan 13 10:38:10 2025 +0100 [MNG-8515] Use specialized methods * UnaryOperator<String> instead of Function<String, String> * BinaryOperator<String> instead of BiFunction<String, String, String> --- .../java/org/apache/maven/api/cli/Options.java | 4 +-- .../org/apache/maven/api/cli/mvn/MavenOptions.java | 4 +-- .../maven/api/cli/mvnenc/EncryptOptions.java | 4 +-- .../apache/maven/api/cli/mvnsh/ShellOptions.java | 4 +-- .../apache/maven/api/services/Interpolator.java | 29 ++++++++-------- .../maven/api/services/SettingsBuilderRequest.java | 14 ++++---- .../maven/cli/ExtensionConfigurationModule.java | 12 +++---- .../main/java/org/apache/maven/cli/MavenCli.java | 14 ++++---- .../internal/BootstrapCoreExtensionManager.java | 12 +++---- .../apache/maven/cli/props/MavenProperties.java | 8 ++--- .../maven/cli/props/MavenPropertiesLoader.java | 14 ++++---- .../extensions/BootstrapCoreExtensionManager.java | 12 +++---- .../extensions/ExtensionConfigurationModule.java | 12 +++---- .../org/apache/maven/cling/invoker/BaseParser.java | 4 +-- .../apache/maven/cling/invoker/LookupInvoker.java | 4 +-- .../invoker/PlexusContainerCapsuleFactory.java | 4 +-- .../java/org/apache/maven/cling/invoker/Utils.java | 8 ++--- .../cling/invoker/mvn/CommonsCliMavenOptions.java | 7 ++-- .../cling/invoker/mvn/LayeredMavenOptions.java | 4 +-- .../invoker/mvnenc/CommonsCliEncryptOptions.java | 6 ++-- .../invoker/mvnsh/CommonsCliShellOptions.java | 7 ++-- .../apache/maven/cling/props/MavenProperties.java | 8 ++--- .../maven/cling/props/MavenPropertiesLoader.java | 14 ++++---- .../impl/DefaultPluginConfigurationExpander.java | 4 +-- .../internal/impl/DefaultSettingsBuilder.java | 8 ++--- .../internal/impl/DefaultToolchainsBuilder.java | 4 +-- .../internal/impl/model/DefaultInterpolator.java | 39 ++++++++++------------ .../internal/impl/model/DefaultModelBuilder.java | 3 +- .../impl/model/DefaultModelInterpolator.java | 7 ++-- .../impl/model/DefaultModelNormalizer.java | 4 +-- .../impl/model/DefaultModelPathTranslator.java | 4 +-- .../impl/model/profile/ConditionParser.java | 6 ++-- .../model/profile/ConditionProfileActivator.java | 4 +-- .../impl/model/DefaultInterpolatorTest.java | 6 ++-- .../impl/model/profile/ConditionParserTest.java | 4 +-- src/mdo/transformer.vm | 10 +++--- 36 files changed, 154 insertions(+), 158 deletions(-) diff --git a/api/maven-api-cli/src/main/java/org/apache/maven/api/cli/Options.java b/api/maven-api-cli/src/main/java/org/apache/maven/api/cli/Options.java index 6adc57bac4..d2bf596cd9 100644 --- a/api/maven-api-cli/src/main/java/org/apache/maven/api/cli/Options.java +++ b/api/maven-api-cli/src/main/java/org/apache/maven/api/cli/Options.java @@ -21,7 +21,7 @@ package org.apache.maven.api.cli; import java.util.Map; import java.util.Optional; import java.util.function.Consumer; -import java.util.function.Function; +import java.util.function.UnaryOperator; import org.apache.maven.api.annotations.Experimental; import org.apache.maven.api.annotations.Nonnull; @@ -205,7 +205,7 @@ public interface Options { * @return a new {@link Options} instance with interpolated values */ @Nonnull - Options interpolate(@Nonnull Function<String, String> callback); + Options interpolate(@Nonnull UnaryOperator<String> callback); /** * Emits warning messages if deprecated options are used. diff --git a/api/maven-api-cli/src/main/java/org/apache/maven/api/cli/mvn/MavenOptions.java b/api/maven-api-cli/src/main/java/org/apache/maven/api/cli/mvn/MavenOptions.java index 75a932ba8a..21f241750e 100644 --- a/api/maven-api-cli/src/main/java/org/apache/maven/api/cli/mvn/MavenOptions.java +++ b/api/maven-api-cli/src/main/java/org/apache/maven/api/cli/mvn/MavenOptions.java @@ -20,7 +20,7 @@ package org.apache.maven.api.cli.mvn; import java.util.List; import java.util.Optional; -import java.util.function.Function; +import java.util.function.UnaryOperator; import org.apache.maven.api.annotations.Experimental; import org.apache.maven.api.annotations.Nonnull; @@ -222,5 +222,5 @@ public interface MavenOptions extends Options { * @return a new MavenOptions instance with interpolated values */ @Nonnull - MavenOptions interpolate(@Nonnull Function<String, String> callback); + MavenOptions interpolate(@Nonnull UnaryOperator<String> callback); } diff --git a/api/maven-api-cli/src/main/java/org/apache/maven/api/cli/mvnenc/EncryptOptions.java b/api/maven-api-cli/src/main/java/org/apache/maven/api/cli/mvnenc/EncryptOptions.java index 5e9456397b..9a7da37502 100644 --- a/api/maven-api-cli/src/main/java/org/apache/maven/api/cli/mvnenc/EncryptOptions.java +++ b/api/maven-api-cli/src/main/java/org/apache/maven/api/cli/mvnenc/EncryptOptions.java @@ -20,7 +20,7 @@ package org.apache.maven.api.cli.mvnenc; import java.util.List; import java.util.Optional; -import java.util.function.Function; +import java.util.function.UnaryOperator; import org.apache.maven.api.annotations.Experimental; import org.apache.maven.api.annotations.Nonnull; @@ -64,5 +64,5 @@ public interface EncryptOptions extends Options { * @return a new EncryptOptions instance with interpolated values */ @Nonnull - EncryptOptions interpolate(Function<String, String> callback); + EncryptOptions interpolate(UnaryOperator<String> callback); } diff --git a/api/maven-api-cli/src/main/java/org/apache/maven/api/cli/mvnsh/ShellOptions.java b/api/maven-api-cli/src/main/java/org/apache/maven/api/cli/mvnsh/ShellOptions.java index 4777229b88..4e1a63c6d7 100644 --- a/api/maven-api-cli/src/main/java/org/apache/maven/api/cli/mvnsh/ShellOptions.java +++ b/api/maven-api-cli/src/main/java/org/apache/maven/api/cli/mvnsh/ShellOptions.java @@ -18,7 +18,7 @@ */ package org.apache.maven.api.cli.mvnsh; -import java.util.function.Function; +import java.util.function.UnaryOperator; import org.apache.maven.api.annotations.Experimental; import org.apache.maven.api.annotations.Nonnull; @@ -39,5 +39,5 @@ public interface ShellOptions extends Options { * @return a new EncryptOptions instance with interpolated values */ @Nonnull - ShellOptions interpolate(Function<String, String> callback); + ShellOptions interpolate(UnaryOperator<String> callback); } diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/Interpolator.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/Interpolator.java index 18b6924b2f..790e938976 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/Interpolator.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/Interpolator.java @@ -23,8 +23,9 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.function.BiFunction; +import java.util.function.BinaryOperator; import java.util.function.Function; +import java.util.function.UnaryOperator; import org.apache.maven.api.Service; import org.apache.maven.api.annotations.Experimental; @@ -47,7 +48,7 @@ public interface Interpolator extends Service { * @param properties The map containing key-value pairs to be interpolated. * @param callback The function to resolve variable values not found in the map. */ - default void interpolate(@Nonnull Map<String, String> properties, @Nullable Function<String, String> callback) { + default void interpolate(@Nonnull Map<String, String> properties, @Nullable UnaryOperator<String> callback) { interpolate(properties, callback, null, true); } @@ -59,7 +60,7 @@ public interface Interpolator extends Service { * @param defaultsToEmpty If true, unresolved placeholders are replaced with empty strings. If false, they are left unchanged. */ default void interpolate( - @Nonnull Map<String, String> map, @Nullable Function<String, String> callback, boolean defaultsToEmpty) { + @Nonnull Map<String, String> map, @Nullable UnaryOperator<String> callback, boolean defaultsToEmpty) { interpolate(map, callback, null, defaultsToEmpty); } @@ -72,8 +73,8 @@ public interface Interpolator extends Service { */ void interpolate( @Nonnull Map<String, String> map, - @Nullable Function<String, String> callback, - @Nullable BiFunction<String, String, String> postprocessor, + @Nullable UnaryOperator<String> callback, + @Nullable BinaryOperator<String> postprocessor, boolean defaultsToEmpty); /** @@ -85,7 +86,7 @@ public interface Interpolator extends Service { * @return The interpolated string, or null if the input was null. */ @Nullable - default String interpolate(@Nullable String val, @Nullable Function<String, String> callback) { + default String interpolate(@Nullable String val, @Nullable UnaryOperator<String> callback) { return interpolate(val, callback, false); } @@ -99,7 +100,7 @@ public interface Interpolator extends Service { */ @Nullable default String interpolate( - @Nullable String val, @Nullable Function<String, String> callback, boolean defaultsToEmpty) { + @Nullable String val, @Nullable UnaryOperator<String> callback, boolean defaultsToEmpty) { return interpolate(val, callback, null, defaultsToEmpty); } @@ -114,8 +115,8 @@ public interface Interpolator extends Service { @Nullable String interpolate( @Nullable String val, - @Nullable Function<String, String> callback, - @Nullable BiFunction<String, String, String> postprocessor, + @Nullable UnaryOperator<String> callback, + @Nullable BinaryOperator<String> postprocessor, boolean defaultsToEmpty); /** @@ -127,9 +128,9 @@ public interface Interpolator extends Service { * * @throws NullPointerException if the input collection is null or contains null elements. */ - static Function<String, String> chain(Collection<? extends Function<String, String>> functions) { + static UnaryOperator<String> chain(Collection<? extends UnaryOperator<String>> functions) { return s -> { - for (Function<String, String> function : functions) { + for (UnaryOperator<String> function : functions) { String v = function.apply(s); if (v != null) { return v; @@ -140,7 +141,7 @@ public interface Interpolator extends Service { } @SafeVarargs - static Function<String, String> chain(Function<String, String>... functions) { + static UnaryOperator<String> chain(UnaryOperator<String>... functions) { return chain(List.of(functions)); } @@ -150,14 +151,14 @@ public interface Interpolator extends Service { * improving performance for repeated calls with the same input. * * @param callback The original function to be memoized. It takes a String as input and returns a String. - * @return A new {@code Function<String, String>} that caches the results of the original function. + * @return A new {@code UnaryOperator<String>} that caches the results of the original function. * If the original function returns null for a given input, null will be cached and returned for subsequent calls with the same input. * * @see Function * @see Optional * @see HashMap#computeIfAbsent(Object, Function) */ - static Function<String, String> memoize(Function<String, String> callback) { + static UnaryOperator<String> memoize(UnaryOperator<String> callback) { Map<String, Optional<String>> cache = new HashMap<>(); return s -> cache.computeIfAbsent(s, v -> Optional.ofNullable(callback.apply(v))) .orElse(null); diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/SettingsBuilderRequest.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/SettingsBuilderRequest.java index d1c6750c45..311f922362 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/SettingsBuilderRequest.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/SettingsBuilderRequest.java @@ -21,7 +21,7 @@ package org.apache.maven.api.services; import java.nio.file.Files; import java.nio.file.Path; import java.util.Optional; -import java.util.function.Function; +import java.util.function.UnaryOperator; import org.apache.maven.api.ProtoSession; import org.apache.maven.api.annotations.Experimental; @@ -72,7 +72,7 @@ public interface SettingsBuilderRequest { * @return the interpolation source for interpolation */ @Nonnull - Optional<Function<String, String>> getInterpolationSource(); + Optional<UnaryOperator<String>> getInterpolationSource(); @Nonnull static SettingsBuilderRequest build( @@ -136,7 +136,7 @@ public interface SettingsBuilderRequest { Source installationSettingsSource; Source projectSettingsSource; Source userSettingsSource; - Function<String, String> interpolationSource; + UnaryOperator<String> interpolationSource; public SettingsBuilderRequestBuilder session(ProtoSession session) { this.session = session; @@ -158,7 +158,7 @@ public interface SettingsBuilderRequest { return this; } - public SettingsBuilderRequestBuilder interpolationSource(Function<String, String> interpolationSource) { + public SettingsBuilderRequestBuilder interpolationSource(UnaryOperator<String> interpolationSource) { this.interpolationSource = interpolationSource; return this; } @@ -177,7 +177,7 @@ public interface SettingsBuilderRequest { private final Source installationSettingsSource; private final Source projectSettingsSource; private final Source userSettingsSource; - private final Function<String, String> interpolationSource; + private final UnaryOperator<String> interpolationSource; @SuppressWarnings("checkstyle:ParameterNumber") DefaultSettingsBuilderRequest( @@ -185,7 +185,7 @@ public interface SettingsBuilderRequest { @Nullable Source installationSettingsSource, @Nullable Source projectSettingsSource, @Nullable Source userSettingsSource, - @Nullable Function<String, String> interpolationSource) { + @Nullable UnaryOperator<String> interpolationSource) { super(session); this.installationSettingsSource = installationSettingsSource; this.projectSettingsSource = projectSettingsSource; @@ -213,7 +213,7 @@ public interface SettingsBuilderRequest { @Nonnull @Override - public Optional<Function<String, String>> getInterpolationSource() { + public Optional<UnaryOperator<String>> getInterpolationSource() { return Optional.ofNullable(interpolationSource); } } diff --git a/compat/maven-embedder/src/main/java/org/apache/maven/cli/ExtensionConfigurationModule.java b/compat/maven-embedder/src/main/java/org/apache/maven/cli/ExtensionConfigurationModule.java index b0f4b9e9ba..85bcc8cb1c 100644 --- a/compat/maven-embedder/src/main/java/org/apache/maven/cli/ExtensionConfigurationModule.java +++ b/compat/maven-embedder/src/main/java/org/apache/maven/cli/ExtensionConfigurationModule.java @@ -18,7 +18,7 @@ */ package org.apache.maven.cli; -import java.util.function.Function; +import java.util.function.UnaryOperator; import com.google.inject.Binder; import com.google.inject.Module; @@ -36,10 +36,10 @@ import org.codehaus.plexus.configuration.PlexusConfiguration; public class ExtensionConfigurationModule implements Module { private final CoreExtensionEntry extension; - private final Function<String, String> callback; + private final UnaryOperator<String> callback; private final DefaultInterpolator interpolator = new DefaultInterpolator(); - public ExtensionConfigurationModule(CoreExtensionEntry extension, Function<String, String> callback) { + public ExtensionConfigurationModule(CoreExtensionEntry extension, UnaryOperator<String> callback) { this.extension = extension; this.callback = callback; } @@ -51,8 +51,8 @@ public class ExtensionConfigurationModule implements Module { if (configuration == null) { configuration = new XmlNodeImpl("configuration"); } - Function<String, String> cb = Interpolator.memoize(callback); - Function<String, String> it = s -> interpolator.interpolate(s, cb); + UnaryOperator<String> cb = Interpolator.memoize(callback); + UnaryOperator<String> it = s -> interpolator.interpolate(s, cb); configuration = new ExtensionInterpolator(it).transform(configuration); binder.bind(XmlNode.class) @@ -65,7 +65,7 @@ public class ExtensionConfigurationModule implements Module { } static class ExtensionInterpolator extends MavenTransformer { - ExtensionInterpolator(Function<String, String> transformer) { + ExtensionInterpolator(UnaryOperator<String> transformer) { super(transformer); } diff --git a/compat/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java b/compat/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java index 0b2d95ea2a..979b4a523a 100644 --- a/compat/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java +++ b/compat/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java @@ -45,7 +45,7 @@ import java.util.Properties; import java.util.ServiceLoader; import java.util.Set; import java.util.function.Consumer; -import java.util.function.Function; +import java.util.function.UnaryOperator; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Stream; @@ -643,7 +643,7 @@ public class MavenCli { populateProperties(cliRequest.commandLine, paths, cliRequest.systemProperties, cliRequest.userProperties); // now that we have properties, interpolate all arguments - Function<String, String> callback = v -> { + UnaryOperator<String> callback = v -> { String r = paths.getProperty(v); if (r == null) { r = cliRequest.systemProperties.getProperty(v); @@ -724,7 +724,7 @@ public class MavenCli { container.setLoggerManager(plexusLoggerManager); - Function<String, String> extensionSource = expression -> { + UnaryOperator<String> extensionSource = expression -> { String value = cliRequest.userProperties.getProperty(expression); if (value == null) { value = cliRequest.systemProperties.getProperty(expression); @@ -1660,7 +1660,7 @@ public class MavenCli { // ---------------------------------------------------------------------- // Load config files // ---------------------------------------------------------------------- - Function<String, String> callback = + UnaryOperator<String> callback = or(paths::getProperty, prefix("cli.", commandLine::getOptionValue), systemProperties::getProperty); Path mavenConf; @@ -1686,7 +1686,7 @@ public class MavenCli { .forEach(k -> System.setProperty(k, userProperties.getProperty(k))); } - private static Function<String, String> prefix(String prefix, Function<String, String> cb) { + private static UnaryOperator<String> prefix(String prefix, UnaryOperator<String> cb) { return s -> { String v = null; if (s.startsWith(prefix)) { @@ -1696,9 +1696,9 @@ public class MavenCli { }; } - private static Function<String, String> or(Function<String, String>... callbacks) { + private static UnaryOperator<String> or(UnaryOperator<String>... callbacks) { return s -> { - for (Function<String, String> cb : callbacks) { + for (UnaryOperator<String> cb : callbacks) { String r = cb.apply(s); if (r != null) { return r; diff --git a/compat/maven-embedder/src/main/java/org/apache/maven/cli/internal/BootstrapCoreExtensionManager.java b/compat/maven-embedder/src/main/java/org/apache/maven/cli/internal/BootstrapCoreExtensionManager.java index a19c0f81d7..5dc8858b82 100644 --- a/compat/maven-embedder/src/main/java/org/apache/maven/cli/internal/BootstrapCoreExtensionManager.java +++ b/compat/maven-embedder/src/main/java/org/apache/maven/cli/internal/BootstrapCoreExtensionManager.java @@ -27,7 +27,7 @@ import java.util.Collections; import java.util.List; import java.util.NoSuchElementException; import java.util.Set; -import java.util.function.Function; +import java.util.function.UnaryOperator; import java.util.stream.Collectors; import org.apache.maven.RepositoryUtils; @@ -139,7 +139,7 @@ public class BootstrapCoreExtensionManager { InternalSession.associate(repoSession, iSession); List<RemoteRepository> repositories = RepositoryUtils.toRepos(request.getPluginArtifactRepositories()); - Function<String, String> interpolator = createInterpolator(request); + UnaryOperator<String> interpolator = createInterpolator(request); return resolveCoreExtensions(repoSession, repositories, providedArtifacts, extensions, interpolator); } @@ -150,7 +150,7 @@ public class BootstrapCoreExtensionManager { List<RemoteRepository> repositories, Set<String> providedArtifacts, List<CoreExtension> configuration, - Function<String, String> interpolator) + UnaryOperator<String> interpolator) throws Exception { List<CoreExtensionEntry> extensions = new ArrayList<>(); @@ -208,7 +208,7 @@ public class BootstrapCoreExtensionManager { RepositorySystemSession repoSession, List<RemoteRepository> repositories, DependencyFilter dependencyFilter, - Function<String, String> interpolator) + UnaryOperator<String> interpolator) throws ExtensionResolutionException { try { /* TODO: Enhance the PluginDependenciesResolver to provide a @@ -232,9 +232,9 @@ public class BootstrapCoreExtensionManager { } } - private static Function<String, String> createInterpolator(MavenExecutionRequest request) { + private static UnaryOperator<String> createInterpolator(MavenExecutionRequest request) { Interpolator interpolator = new DefaultInterpolator(); - Function<String, String> callback = v -> { + UnaryOperator<String> callback = v -> { String r = request.getUserProperties().getProperty(v); if (r == null) { r = request.getSystemProperties().getProperty(v); diff --git a/compat/maven-embedder/src/main/java/org/apache/maven/cli/props/MavenProperties.java b/compat/maven-embedder/src/main/java/org/apache/maven/cli/props/MavenProperties.java index b2a9479331..0a1d955f86 100644 --- a/compat/maven-embedder/src/main/java/org/apache/maven/cli/props/MavenProperties.java +++ b/compat/maven-embedder/src/main/java/org/apache/maven/cli/props/MavenProperties.java @@ -42,7 +42,7 @@ import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Set; -import java.util.function.Function; +import java.util.function.UnaryOperator; import org.apache.maven.internal.impl.model.DefaultInterpolator; @@ -81,7 +81,7 @@ public class MavenProperties extends AbstractMap<String, String> { private List<String> header; private List<String> footer; private Path location; - private Function<String, String> callback; + private UnaryOperator<String> callback; boolean substitute = true; boolean typed; @@ -91,7 +91,7 @@ public class MavenProperties extends AbstractMap<String, String> { this(location, null); } - public MavenProperties(Path location, Function<String, String> callback) throws IOException { + public MavenProperties(Path location, UnaryOperator<String> callback) throws IOException { this.location = location; this.callback = callback; if (Files.exists(location)) { @@ -474,7 +474,7 @@ public class MavenProperties extends AbstractMap<String, String> { substitute(callback); } - public void substitute(Function<String, String> callback) { + public void substitute(UnaryOperator<String> callback) { new DefaultInterpolator().interpolate(storage, callback); } diff --git a/compat/maven-embedder/src/main/java/org/apache/maven/cli/props/MavenPropertiesLoader.java b/compat/maven-embedder/src/main/java/org/apache/maven/cli/props/MavenPropertiesLoader.java index d83f56850f..62bfe2c838 100644 --- a/compat/maven-embedder/src/main/java/org/apache/maven/cli/props/MavenPropertiesLoader.java +++ b/compat/maven-embedder/src/main/java/org/apache/maven/cli/props/MavenPropertiesLoader.java @@ -24,7 +24,7 @@ import java.nio.file.Path; import java.util.Enumeration; import java.util.Map; import java.util.StringTokenizer; -import java.util.function.Function; +import java.util.function.UnaryOperator; import org.apache.maven.internal.impl.model.DefaultInterpolator; @@ -37,7 +37,7 @@ public class MavenPropertiesLoader { "maven.override."; // prefix that marks that system property should override defaults. public static void loadProperties( - java.util.Properties properties, Path path, Function<String, String> callback, boolean escape) + java.util.Properties properties, Path path, UnaryOperator<String> callback, boolean escape) throws IOException { MavenProperties sp = new MavenProperties(false); if (Files.exists(path)) { @@ -50,7 +50,7 @@ public class MavenPropertiesLoader { sp.forEach(properties::setProperty); } - public static void substitute(MavenProperties props, Function<String, String> callback) { + public static void substitute(MavenProperties props, UnaryOperator<String> callback) { for (Enumeration<?> e = props.propertyNames(); e.hasMoreElements(); ) { String name = (String) e.nextElement(); String value = props.getProperty(name); @@ -67,8 +67,8 @@ public class MavenPropertiesLoader { props.keySet().removeIf(k -> k.startsWith(OVERRIDE_PREFIX)); } - private static MavenProperties loadPropertiesFile( - Path path, boolean failIfNotFound, Function<String, String> callback) throws IOException { + private static MavenProperties loadPropertiesFile(Path path, boolean failIfNotFound, UnaryOperator<String> callback) + throws IOException { MavenProperties configProps = new MavenProperties(null, false); if (Files.exists(path) || failIfNotFound) { configProps.load(path); @@ -78,7 +78,7 @@ public class MavenPropertiesLoader { return configProps; } - private static void loadIncludes(Path configProp, MavenProperties configProps, Function<String, String> callback) + private static void loadIncludes(Path configProp, MavenProperties configProps, UnaryOperator<String> callback) throws IOException { String includes = configProps.get(INCLUDES_PROPERTY); if (includes != null) { @@ -162,7 +162,7 @@ public class MavenPropertiesLoader { } public static String substVars( - String value, String name, Map<String, String> props, Function<String, String> callback) { + String value, String name, Map<String, String> props, UnaryOperator<String> callback) { return DefaultInterpolator.substVars(value, name, null, props, callback, null, false); } } diff --git a/impl/maven-cli/src/main/java/org/apache/maven/cling/extensions/BootstrapCoreExtensionManager.java b/impl/maven-cli/src/main/java/org/apache/maven/cling/extensions/BootstrapCoreExtensionManager.java index b5eb37166b..944504f304 100644 --- a/impl/maven-cli/src/main/java/org/apache/maven/cling/extensions/BootstrapCoreExtensionManager.java +++ b/impl/maven-cli/src/main/java/org/apache/maven/cling/extensions/BootstrapCoreExtensionManager.java @@ -24,7 +24,7 @@ import java.util.Collections; import java.util.List; import java.util.NoSuchElementException; import java.util.Set; -import java.util.function.Function; +import java.util.function.UnaryOperator; import java.util.stream.Collectors; import org.apache.maven.RepositoryUtils; @@ -137,7 +137,7 @@ public class BootstrapCoreExtensionManager { InternalSession.associate(repoSession, iSession); List<RemoteRepository> repositories = RepositoryUtils.toRepos(request.getPluginArtifactRepositories()); - Function<String, String> interpolator = createInterpolator(request); + UnaryOperator<String> interpolator = createInterpolator(request); return resolveCoreExtensions(repoSession, repositories, providedArtifacts, extensions, interpolator); } @@ -148,7 +148,7 @@ public class BootstrapCoreExtensionManager { List<RemoteRepository> repositories, Set<String> providedArtifacts, List<CoreExtension> configuration, - Function<String, String> interpolator) + UnaryOperator<String> interpolator) throws Exception { List<CoreExtensionEntry> extensions = new ArrayList<>(); @@ -206,7 +206,7 @@ public class BootstrapCoreExtensionManager { RepositorySystemSession repoSession, List<RemoteRepository> repositories, DependencyFilter dependencyFilter, - Function<String, String> interpolator) + UnaryOperator<String> interpolator) throws ExtensionResolutionException { try { /* TODO: Enhance the PluginDependenciesResolver to provide a @@ -230,9 +230,9 @@ public class BootstrapCoreExtensionManager { } } - private static Function<String, String> createInterpolator(MavenExecutionRequest request) { + private static UnaryOperator<String> createInterpolator(MavenExecutionRequest request) { Interpolator interpolator = new DefaultInterpolator(); - Function<String, String> callback = v -> { + UnaryOperator<String> callback = v -> { String r = request.getUserProperties().getProperty(v); if (r == null) { r = request.getSystemProperties().getProperty(v); diff --git a/impl/maven-cli/src/main/java/org/apache/maven/cling/extensions/ExtensionConfigurationModule.java b/impl/maven-cli/src/main/java/org/apache/maven/cling/extensions/ExtensionConfigurationModule.java index 2b04b3abae..f9778a42ba 100644 --- a/impl/maven-cli/src/main/java/org/apache/maven/cling/extensions/ExtensionConfigurationModule.java +++ b/impl/maven-cli/src/main/java/org/apache/maven/cling/extensions/ExtensionConfigurationModule.java @@ -18,7 +18,7 @@ */ package org.apache.maven.cling.extensions; -import java.util.function.Function; +import java.util.function.UnaryOperator; import com.google.inject.Binder; import com.google.inject.Module; @@ -35,10 +35,10 @@ import org.codehaus.plexus.configuration.PlexusConfiguration; public class ExtensionConfigurationModule implements Module { private final CoreExtensionEntry extension; - private final Function<String, String> callback; + private final UnaryOperator<String> callback; private final DefaultInterpolator interpolator = new DefaultInterpolator(); - public ExtensionConfigurationModule(CoreExtensionEntry extension, Function<String, String> callback) { + public ExtensionConfigurationModule(CoreExtensionEntry extension, UnaryOperator<String> callback) { this.extension = extension; this.callback = callback; } @@ -50,8 +50,8 @@ public class ExtensionConfigurationModule implements Module { if (configuration == null) { configuration = new XmlNodeImpl("configuration"); } - Function<String, String> cb = Interpolator.memoize(callback); - Function<String, String> it = s -> interpolator.interpolate(s, cb); + UnaryOperator<String> cb = Interpolator.memoize(callback); + UnaryOperator<String> it = s -> interpolator.interpolate(s, cb); configuration = new ExtensionInterpolator(it).transform(configuration); binder.bind(XmlNode.class) @@ -64,7 +64,7 @@ public class ExtensionConfigurationModule implements Module { } static class ExtensionInterpolator extends MavenTransformer { - ExtensionInterpolator(Function<String, String> transformer) { + ExtensionInterpolator(UnaryOperator<String> transformer) { super(transformer); } diff --git a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/BaseParser.java b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/BaseParser.java index 466237e043..27f4add0af 100644 --- a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/BaseParser.java +++ b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/BaseParser.java @@ -33,7 +33,7 @@ import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Properties; -import java.util.function.Function; +import java.util.function.UnaryOperator; import java.util.stream.Collectors; import org.apache.maven.api.Constants; @@ -264,7 +264,7 @@ public abstract class BaseParser implements Parser { // Load config files // ---------------------------------------------------------------------- Map<String, String> paths = context.extraInterpolationSource(); - Function<String, String> callback = + UnaryOperator<String> callback = or(paths::get, prefix("cli.", userSpecifiedProperties::get), context.systemProperties::get); Path mavenConf; diff --git a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/LookupInvoker.java b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/LookupInvoker.java index 971e0cedbd..da4046a2dc 100644 --- a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/LookupInvoker.java +++ b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/LookupInvoker.java @@ -31,7 +31,7 @@ import java.util.Locale; import java.util.Map; import java.util.Properties; import java.util.function.Consumer; -import java.util.function.Function; +import java.util.function.UnaryOperator; import org.apache.maven.api.Constants; import org.apache.maven.api.ProtoSession; @@ -563,7 +563,7 @@ public abstract class LookupInvoker<C extends LookupContext> implements Invoker context.projectSettingsPath = projectSettingsFile; context.userSettingsPath = userSettingsFile; - Function<String, String> interpolationSource = Interpolator.chain( + UnaryOperator<String> interpolationSource = Interpolator.chain( context.protoSession.getUserProperties()::get, context.protoSession.getSystemProperties()::get); SettingsBuilderRequest settingsRequest = SettingsBuilderRequest.builder() .session(context.protoSession) diff --git a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/PlexusContainerCapsuleFactory.java b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/PlexusContainerCapsuleFactory.java index 56d6cc099f..c29bce1150 100644 --- a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/PlexusContainerCapsuleFactory.java +++ b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/PlexusContainerCapsuleFactory.java @@ -25,7 +25,7 @@ import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; -import java.util.function.Function; +import java.util.function.UnaryOperator; import com.google.inject.AbstractModule; import com.google.inject.Module; @@ -111,7 +111,7 @@ public class PlexusContainerCapsuleFactory<C extends LookupContext> implements C container.setLoggerManager(createLoggerManager()); ProtoSession protoSession = context.protoSession; - Function<String, String> extensionSource = expression -> { + UnaryOperator<String> extensionSource = expression -> { String value = protoSession.getUserProperties().get(expression); if (value == null) { value = protoSession.getSystemProperties().get(expression); diff --git a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/Utils.java b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/Utils.java index d4ab26da33..792e882068 100644 --- a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/Utils.java +++ b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/Utils.java @@ -25,7 +25,7 @@ import java.util.Map; import java.util.Optional; import java.util.Properties; import java.util.ServiceLoader; -import java.util.function.Function; +import java.util.function.UnaryOperator; import org.apache.maven.api.annotations.Nonnull; import org.apache.maven.api.annotations.Nullable; @@ -93,7 +93,7 @@ public final class Utils { } @Nonnull - public static Function<String, String> prefix(String prefix, Function<String, String> cb) { + public static UnaryOperator<String> prefix(String prefix, UnaryOperator<String> cb) { return s -> { String v = null; if (s.startsWith(prefix)) { @@ -105,9 +105,9 @@ public final class Utils { @SafeVarargs @Nonnull - public static Function<String, String> or(Function<String, String>... callbacks) { + public static UnaryOperator<String> or(UnaryOperator<String>... callbacks) { return s -> { - for (Function<String, String> cb : callbacks) { + for (UnaryOperator<String> cb : callbacks) { String r = cb.apply(s); if (r != null) { return r; diff --git a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvn/CommonsCliMavenOptions.java b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvn/CommonsCliMavenOptions.java index c1885a6695..0ba2e6e0ab 100644 --- a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvn/CommonsCliMavenOptions.java +++ b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvn/CommonsCliMavenOptions.java @@ -22,7 +22,7 @@ import java.util.Arrays; import java.util.List; import java.util.ListIterator; import java.util.Optional; -import java.util.function.Function; +import java.util.function.UnaryOperator; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; @@ -44,8 +44,7 @@ public class CommonsCliMavenOptions extends CommonsCliOptions implements MavenOp super(source, cliManager, commandLine); } - private static CommonsCliMavenOptions interpolate( - CommonsCliMavenOptions options, Function<String, String> callback) { + private static CommonsCliMavenOptions interpolate(CommonsCliMavenOptions options, UnaryOperator<String> callback) { try { // now that we have properties, interpolate all arguments Interpolator interpolator = createInterpolator(); @@ -248,7 +247,7 @@ public class CommonsCliMavenOptions extends CommonsCliOptions implements MavenOp } @Override - public MavenOptions interpolate(Function<String, String> callback) { + public MavenOptions interpolate(UnaryOperator<String> callback) { return interpolate(this, callback); } diff --git a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvn/LayeredMavenOptions.java b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvn/LayeredMavenOptions.java index d19157af04..353f795913 100644 --- a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvn/LayeredMavenOptions.java +++ b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvn/LayeredMavenOptions.java @@ -23,7 +23,7 @@ import java.util.Collection; import java.util.List; import java.util.Objects; import java.util.Optional; -import java.util.function.Function; +import java.util.function.UnaryOperator; import org.apache.maven.api.cli.mvn.MavenOptions; import org.apache.maven.cling.invoker.LayeredOptions; @@ -160,7 +160,7 @@ public class LayeredMavenOptions<O extends MavenOptions> extends LayeredOptions< } @Override - public MavenOptions interpolate(Function<String, String> callback) { + public MavenOptions interpolate(UnaryOperator<String> callback) { ArrayList<MavenOptions> interpolatedOptions = new ArrayList<>(options.size()); for (MavenOptions o : options) { interpolatedOptions.add(o.interpolate(callback)); diff --git a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvnenc/CommonsCliEncryptOptions.java b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvnenc/CommonsCliEncryptOptions.java index 7059f8bafb..d67e93ec00 100644 --- a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvnenc/CommonsCliEncryptOptions.java +++ b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvnenc/CommonsCliEncryptOptions.java @@ -22,7 +22,7 @@ import java.util.List; import java.util.ListIterator; import java.util.Optional; import java.util.function.Consumer; -import java.util.function.Function; +import java.util.function.UnaryOperator; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; @@ -50,7 +50,7 @@ public class CommonsCliEncryptOptions extends CommonsCliOptions implements Encry } private static CommonsCliEncryptOptions interpolate( - CommonsCliEncryptOptions options, Function<String, String> callback) { + CommonsCliEncryptOptions options, UnaryOperator<String> callback) { try { // now that we have properties, interpolate all arguments Interpolator interpolator = createInterpolator(); @@ -100,7 +100,7 @@ public class CommonsCliEncryptOptions extends CommonsCliOptions implements Encry } @Override - public EncryptOptions interpolate(Function<String, String> callback) { + public EncryptOptions interpolate(UnaryOperator<String> callback) { return interpolate(this, callback); } diff --git a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvnsh/CommonsCliShellOptions.java b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvnsh/CommonsCliShellOptions.java index d64882896f..a45a973eaa 100644 --- a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvnsh/CommonsCliShellOptions.java +++ b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvnsh/CommonsCliShellOptions.java @@ -20,7 +20,7 @@ package org.apache.maven.cling.invoker.mvnsh; import java.util.List; import java.util.ListIterator; -import java.util.function.Function; +import java.util.function.UnaryOperator; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; @@ -46,8 +46,7 @@ public class CommonsCliShellOptions extends CommonsCliOptions implements ShellOp super(source, cliManager, commandLine); } - private static CommonsCliShellOptions interpolate( - CommonsCliShellOptions options, Function<String, String> callback) { + private static CommonsCliShellOptions interpolate(CommonsCliShellOptions options, UnaryOperator<String> callback) { try { // now that we have properties, interpolate all arguments Interpolator interpolator = createInterpolator(); @@ -73,7 +72,7 @@ public class CommonsCliShellOptions extends CommonsCliOptions implements ShellOp } @Override - public ShellOptions interpolate(Function<String, String> callback) { + public ShellOptions interpolate(UnaryOperator<String> callback) { return interpolate(this, callback); } diff --git a/impl/maven-cli/src/main/java/org/apache/maven/cling/props/MavenProperties.java b/impl/maven-cli/src/main/java/org/apache/maven/cling/props/MavenProperties.java index 2249477490..a7d624cc5d 100644 --- a/impl/maven-cli/src/main/java/org/apache/maven/cling/props/MavenProperties.java +++ b/impl/maven-cli/src/main/java/org/apache/maven/cling/props/MavenProperties.java @@ -42,7 +42,7 @@ import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Set; -import java.util.function.Function; +import java.util.function.UnaryOperator; import org.apache.maven.internal.impl.model.DefaultInterpolator; @@ -80,7 +80,7 @@ public class MavenProperties extends AbstractMap<String, String> { private List<String> header; private List<String> footer; private Path location; - private Function<String, String> callback; + private UnaryOperator<String> callback; boolean substitute = true; boolean typed; @@ -90,7 +90,7 @@ public class MavenProperties extends AbstractMap<String, String> { this(location, null); } - public MavenProperties(Path location, Function<String, String> callback) throws IOException { + public MavenProperties(Path location, UnaryOperator<String> callback) throws IOException { this.location = location; this.callback = callback; if (Files.exists(location)) { @@ -473,7 +473,7 @@ public class MavenProperties extends AbstractMap<String, String> { substitute(callback); } - public void substitute(Function<String, String> callback) { + public void substitute(UnaryOperator<String> callback) { new DefaultInterpolator().interpolate(storage, callback); } diff --git a/impl/maven-cli/src/main/java/org/apache/maven/cling/props/MavenPropertiesLoader.java b/impl/maven-cli/src/main/java/org/apache/maven/cling/props/MavenPropertiesLoader.java index df9b0a6d5a..3bfb64a639 100644 --- a/impl/maven-cli/src/main/java/org/apache/maven/cling/props/MavenPropertiesLoader.java +++ b/impl/maven-cli/src/main/java/org/apache/maven/cling/props/MavenPropertiesLoader.java @@ -24,7 +24,7 @@ import java.nio.file.Path; import java.util.Enumeration; import java.util.Map; import java.util.StringTokenizer; -import java.util.function.Function; +import java.util.function.UnaryOperator; import org.apache.maven.internal.impl.model.DefaultInterpolator; @@ -36,7 +36,7 @@ public class MavenPropertiesLoader { "maven.override."; // prefix that marks that system property should override defaults. public static void loadProperties( - java.util.Properties properties, Path path, Function<String, String> callback, boolean escape) + java.util.Properties properties, Path path, UnaryOperator<String> callback, boolean escape) throws IOException { MavenProperties sp = new MavenProperties(false); if (Files.exists(path)) { @@ -49,7 +49,7 @@ public class MavenPropertiesLoader { sp.forEach(properties::setProperty); } - public static void substitute(MavenProperties props, Function<String, String> callback) { + public static void substitute(MavenProperties props, UnaryOperator<String> callback) { for (Enumeration<?> e = props.propertyNames(); e.hasMoreElements(); ) { String name = (String) e.nextElement(); String value = props.getProperty(name); @@ -66,8 +66,8 @@ public class MavenPropertiesLoader { props.keySet().removeIf(k -> k.startsWith(OVERRIDE_PREFIX)); } - private static MavenProperties loadPropertiesFile( - Path path, boolean failIfNotFound, Function<String, String> callback) throws IOException { + private static MavenProperties loadPropertiesFile(Path path, boolean failIfNotFound, UnaryOperator<String> callback) + throws IOException { MavenProperties configProps = new MavenProperties(null, false); if (Files.exists(path) || failIfNotFound) { configProps.load(path); @@ -77,7 +77,7 @@ public class MavenPropertiesLoader { return configProps; } - private static void loadIncludes(Path configProp, MavenProperties configProps, Function<String, String> callback) + private static void loadIncludes(Path configProp, MavenProperties configProps, UnaryOperator<String> callback) throws IOException { String includes = configProps.get(INCLUDES_PROPERTY); if (includes != null) { @@ -161,7 +161,7 @@ public class MavenPropertiesLoader { } public static String substVars( - String value, String name, Map<String, String> props, Function<String, String> callback) { + String value, String name, Map<String, String> props, UnaryOperator<String> callback) { return DefaultInterpolator.substVars(value, name, null, props, callback, null, false); } } diff --git a/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/DefaultPluginConfigurationExpander.java b/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/DefaultPluginConfigurationExpander.java index 6a6b215323..3276bb9558 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/DefaultPluginConfigurationExpander.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/DefaultPluginConfigurationExpander.java @@ -20,7 +20,7 @@ package org.apache.maven.internal.impl; import java.util.ArrayList; import java.util.List; -import java.util.function.Function; +import java.util.function.UnaryOperator; import org.apache.maven.api.di.Named; import org.apache.maven.api.di.Singleton; @@ -90,7 +90,7 @@ public class DefaultPluginConfigurationExpander implements PluginConfigurationEx }); } - static <T> List<T> map(List<T> list, Function<T, T> mapper) { + static <T> List<T> map(List<T> list, UnaryOperator<T> mapper) { List<T> newList = list; for (int i = 0; i < newList.size(); i++) { T oldT = newList.get(i); diff --git a/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/DefaultSettingsBuilder.java b/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/DefaultSettingsBuilder.java index 397ce98531..1936ab647d 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/DefaultSettingsBuilder.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/DefaultSettingsBuilder.java @@ -29,8 +29,8 @@ import java.nio.file.Paths; import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; -import java.util.function.Function; import java.util.function.Supplier; +import java.util.function.UnaryOperator; import org.apache.maven.api.Constants; import org.apache.maven.api.ProtoSession; @@ -232,7 +232,7 @@ public class DefaultSettingsBuilder implements SettingsBuilder { private Settings interpolate( Settings settings, SettingsBuilderRequest request, ProblemCollector<BuilderProblem> problems) { - Function<String, String> src; + UnaryOperator<String> src; if (request.getInterpolationSource().isPresent()) { src = request.getInterpolationSource().get(); } else { @@ -245,7 +245,7 @@ public class DefaultSettingsBuilder implements SettingsBuilder { } static class DefSettingsTransformer extends SettingsTransformer { - DefSettingsTransformer(Function<String, String> transformer) { + DefSettingsTransformer(UnaryOperator<String> transformer) { super(transformer); } @@ -267,7 +267,7 @@ public class DefaultSettingsBuilder implements SettingsBuilder { } SecDispatcher secDispatcher = new DefaultSecDispatcher(dispatchers, getSecuritySettings(request.getSession())); final AtomicInteger preMaven4Passwords = new AtomicInteger(0); - Function<String, String> decryptFunction = str -> { + UnaryOperator<String> decryptFunction = str -> { if (str != null && !str.isEmpty() && !str.contains("${") && secDispatcher.isAnyEncryptedString(str)) { if (secDispatcher.isLegacyEncryptedString(str)) { // add a problem diff --git a/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/DefaultToolchainsBuilder.java b/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/DefaultToolchainsBuilder.java index 0bcf493cfd..7f67382568 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/DefaultToolchainsBuilder.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/DefaultToolchainsBuilder.java @@ -24,7 +24,7 @@ import javax.xml.stream.XMLStreamException; import java.io.IOException; import java.io.InputStream; import java.util.Map; -import java.util.function.Function; +import java.util.function.UnaryOperator; import org.apache.maven.api.di.Inject; import org.apache.maven.api.di.Named; @@ -156,7 +156,7 @@ public class DefaultToolchainsBuilder implements ToolchainsBuilder { ProblemCollector<BuilderProblem> problems) { Map<String, String> userProperties = request.getSession().getUserProperties(); Map<String, String> systemProperties = request.getSession().getSystemProperties(); - Function<String, String> src = Interpolator.chain(userProperties::get, systemProperties::get); + UnaryOperator<String> src = Interpolator.chain(userProperties::get, systemProperties::get); return new MavenToolchainsTransformer(value -> value != null ? interpolator.interpolate(value, src) : null) .visit(toolchains); } diff --git a/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultInterpolator.java b/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultInterpolator.java index f73d876c90..bb96532caf 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultInterpolator.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultInterpolator.java @@ -22,8 +22,8 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; -import java.util.function.BiFunction; -import java.util.function.Function; +import java.util.function.BinaryOperator; +import java.util.function.UnaryOperator; import org.apache.maven.api.annotations.Nullable; import org.apache.maven.api.di.Named; @@ -43,8 +43,8 @@ public class DefaultInterpolator implements Interpolator { @Override public void interpolate( Map<String, String> map, - Function<String, String> callback, - BiFunction<String, String, String> postprocessor, + UnaryOperator<String> callback, + BinaryOperator<String> postprocessor, boolean defaultsToEmpty) { Map<String, String> org = new HashMap<>(map); for (String name : map.keySet()) { @@ -68,10 +68,7 @@ public class DefaultInterpolator implements Interpolator { @Override public String interpolate( - String val, - Function<String, String> callback, - BiFunction<String, String, String> postprocessor, - boolean defaultsToEmpty) { + String val, UnaryOperator<String> callback, BinaryOperator<String> postprocessor, boolean defaultsToEmpty) { return interpolate(val, null, null, callback, postprocessor, defaultsToEmpty); } @@ -80,8 +77,8 @@ public class DefaultInterpolator implements Interpolator { @Nullable String val, @Nullable String currentKey, @Nullable Set<String> cycleMap, - @Nullable Function<String, String> callback, - @Nullable BiFunction<String, String, String> postprocessor, + @Nullable UnaryOperator<String> callback, + @Nullable BinaryOperator<String> postprocessor, boolean defaultsToEmpty) { return substVars(val, currentKey, cycleMap, null, callback, postprocessor, defaultsToEmpty); } @@ -92,7 +89,7 @@ public class DefaultInterpolator implements Interpolator { * @param properties the property set to perform substitution on * @param callback Callback for substitution */ - public void performSubstitution(Map<String, String> properties, Function<String, String> callback) { + public void performSubstitution(Map<String, String> properties, UnaryOperator<String> callback) { performSubstitution(properties, callback, true); } @@ -104,7 +101,7 @@ public class DefaultInterpolator implements Interpolator { * @param defaultsToEmptyString sets an empty string if a replacement value is not found, leaves intact otherwise */ public void performSubstitution( - Map<String, String> properties, Function<String, String> callback, boolean defaultsToEmptyString) { + Map<String, String> properties, UnaryOperator<String> callback, boolean defaultsToEmptyString) { Map<String, String> org = new HashMap<>(properties); for (String name : properties.keySet()) { properties.compute( @@ -166,7 +163,7 @@ public class DefaultInterpolator implements Interpolator { String currentKey, Set<String> cycleMap, Map<String, String> configProps, - Function<String, String> callback) { + UnaryOperator<String> callback) { return substVars(val, currentKey, cycleMap, configProps, callback, null, false); } @@ -199,8 +196,8 @@ public class DefaultInterpolator implements Interpolator { String currentKey, Set<String> cycleMap, Map<String, String> configProps, - Function<String, String> callback, - BiFunction<String, String, String> postprocessor, + UnaryOperator<String> callback, + BinaryOperator<String> postprocessor, boolean defaultsToEmptyString) { return unescape( doSubstVars(val, currentKey, cycleMap, configProps, callback, postprocessor, defaultsToEmptyString)); @@ -211,8 +208,8 @@ public class DefaultInterpolator implements Interpolator { String currentKey, Set<String> cycleMap, Map<String, String> configProps, - Function<String, String> callback, - BiFunction<String, String, String> postprocessor, + UnaryOperator<String> callback, + BinaryOperator<String> postprocessor, boolean defaultsToEmptyString) { if (val == null || val.isEmpty()) { return val; @@ -291,8 +288,8 @@ public class DefaultInterpolator implements Interpolator { String org, Set<String> cycleMap, Map<String, String> configProps, - Function<String, String> callback, - BiFunction<String, String, String> postprocessor, + UnaryOperator<String> callback, + BinaryOperator<String> postprocessor, boolean defaultsToEmptyString) { // Process chained operators from left to right @@ -365,8 +362,8 @@ public class DefaultInterpolator implements Interpolator { String variable, Set<String> cycleMap, Map<String, String> configProps, - Function<String, String> callback, - BiFunction<String, String, String> postprocessor, + UnaryOperator<String> callback, + BinaryOperator<String> postprocessor, boolean defaultsToEmptyString) { // Verify that this is not a recursive variable reference diff --git a/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelBuilder.java b/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelBuilder.java index 0367d7fd37..4957626832 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelBuilder.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelBuilder.java @@ -40,7 +40,6 @@ import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.Executor; import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicReference; -import java.util.function.Function; import java.util.function.Supplier; import java.util.function.UnaryOperator; import java.util.regex.Matcher; @@ -1880,7 +1879,7 @@ public class DefaultModelBuilder implements ModelBuilder { Map<String, String> map1 = request.getSession().getUserProperties(); Map<String, String> map2 = model.getProperties(); Map<String, String> map3 = request.getSession().getSystemProperties(); - Function<String, String> cb = Interpolator.chain(map1::get, map2::get, map3::get); + UnaryOperator<String> cb = Interpolator.chain(map1::get, map2::get, map3::get); try { String interpolated = interpolator.interpolate(interpolatedModel.getParent().getVersion(), cb); diff --git a/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelInterpolator.java b/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelInterpolator.java index 444b8c75c1..72fde20b36 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelInterpolator.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelInterpolator.java @@ -26,8 +26,9 @@ import java.util.List; import java.util.Map; import java.util.Optional; import java.util.Set; -import java.util.function.BiFunction; +import java.util.function.BinaryOperator; import java.util.function.Function; +import java.util.function.UnaryOperator; import org.apache.maven.api.di.Inject; import org.apache.maven.api.di.Named; @@ -110,8 +111,8 @@ public class DefaultModelInterpolator implements ModelInterpolator { Map<String, Optional<String>> cache = new HashMap<>(); Function<String, Optional<String>> ucb = v -> Optional.ofNullable(callback(model, projectDir, request, problems, v)); - Function<String, String> cb = v -> cache.computeIfAbsent(v, ucb).orElse(null); - BiFunction<String, String, String> postprocessor = (e, v) -> postProcess(projectDir, request, e, v); + UnaryOperator<String> cb = v -> cache.computeIfAbsent(v, ucb).orElse(null); + BinaryOperator<String> postprocessor = (e, v) -> postProcess(projectDir, request, e, v); return value -> { try { return interpolator.interpolate(value, cb, postprocessor, false); diff --git a/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelNormalizer.java b/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelNormalizer.java index ea5c2cfb60..ae482df29d 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelNormalizer.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelNormalizer.java @@ -23,7 +23,7 @@ import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import java.util.function.Function; +import java.util.function.UnaryOperator; import org.apache.maven.api.di.Named; import org.apache.maven.api.di.Singleton; @@ -130,7 +130,7 @@ public class DefaultModelNormalizer implements ModelNormalizer { /** * Returns a list suited for the builders, i.e. null if not modified */ - private <T> List<T> injectList(List<T> list, Function<T, T> modifer) { + private <T> List<T> injectList(List<T> list, UnaryOperator<T> modifer) { List<T> newList = null; for (int i = 0; i < list.size(); i++) { T oldT = list.get(i); diff --git a/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelPathTranslator.java b/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelPathTranslator.java index 3d08148c13..1974beb419 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelPathTranslator.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelPathTranslator.java @@ -22,7 +22,7 @@ import java.nio.file.Path; import java.util.ArrayList; import java.util.List; import java.util.Objects; -import java.util.function.Function; +import java.util.function.UnaryOperator; import org.apache.maven.api.di.Inject; import org.apache.maven.api.di.Named; @@ -88,7 +88,7 @@ public class DefaultModelPathTranslator implements ModelPathTranslator { return model; } - private <T> List<T> map(List<T> resources, Function<T, T> mapper) { + private <T> List<T> map(List<T> resources, UnaryOperator<T> mapper) { List<T> newResources = null; if (resources != null) { for (int i = 0; i < resources.size(); i++) { diff --git a/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/profile/ConditionParser.java b/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/profile/ConditionParser.java index 6e649f0012..84e1a54419 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/profile/ConditionParser.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/profile/ConditionParser.java @@ -21,7 +21,7 @@ package org.apache.maven.internal.impl.model.profile; import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.function.Function; +import java.util.function.UnaryOperator; /** * The {@code ConditionParser} class is responsible for parsing and evaluating expressions. @@ -46,7 +46,7 @@ public class ConditionParser { } private final Map<String, ExpressionFunction> functions; // Map to store functions by their names - private final Function<String, String> propertyResolver; // Property resolver + private final UnaryOperator<String> propertyResolver; // Property resolver private List<String> tokens; // List of tokens derived from the expression private int current; // Keeps track of the current token index @@ -56,7 +56,7 @@ public class ConditionParser { * @param functions a map of function names to their corresponding {@code ExpressionFunction} implementations * @param propertyResolver the property resolver */ - public ConditionParser(Map<String, ExpressionFunction> functions, Function<String, String> propertyResolver) { + public ConditionParser(Map<String, ExpressionFunction> functions, UnaryOperator<String> propertyResolver) { this.functions = functions; this.propertyResolver = propertyResolver; } diff --git a/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/profile/ConditionProfileActivator.java b/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/profile/ConditionProfileActivator.java index 7070905a2e..eb5787e4f9 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/profile/ConditionProfileActivator.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/profile/ConditionProfileActivator.java @@ -20,7 +20,7 @@ package org.apache.maven.internal.impl.model.profile; import java.util.HashMap; import java.util.Map; -import java.util.function.Function; +import java.util.function.UnaryOperator; import org.apache.maven.api.di.Inject; import org.apache.maven.api.di.Named; @@ -73,7 +73,7 @@ public class ConditionProfileActivator implements ProfileActivator { String condition = profile.getActivation().getCondition(); try { Map<String, ConditionParser.ExpressionFunction> functions = registerFunctions(context, versionParser); - Function<String, String> propertyResolver = s -> property(context, s); + UnaryOperator<String> propertyResolver = s -> property(context, s); return toBoolean(new ConditionParser(functions, propertyResolver).parse(condition)); } catch (Exception e) { problems.add( diff --git a/impl/maven-impl/src/test/java/org/apache/maven/internal/impl/model/DefaultInterpolatorTest.java b/impl/maven-impl/src/test/java/org/apache/maven/internal/impl/model/DefaultInterpolatorTest.java index 9a0c9c70a6..bbdd861773 100644 --- a/impl/maven-impl/src/test/java/org/apache/maven/internal/impl/model/DefaultInterpolatorTest.java +++ b/impl/maven-impl/src/test/java/org/apache/maven/internal/impl/model/DefaultInterpolatorTest.java @@ -21,7 +21,7 @@ package org.apache.maven.internal.impl.model; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; -import java.util.function.Function; +import java.util.function.UnaryOperator; import org.apache.maven.api.services.InterpolatorException; import org.junit.jupiter.api.Test; @@ -207,7 +207,7 @@ class DefaultInterpolatorTest { performSubstitution(props, null); } - private void performSubstitution(Map<String, String> props, Function<String, String> callback) { + private void performSubstitution(Map<String, String> props, UnaryOperator<String> callback) { new DefaultInterpolator().performSubstitution(props, callback); } @@ -215,7 +215,7 @@ class DefaultInterpolatorTest { String val, String currentKey, Map<String, String> configProps, - Function<String, String> callback, + UnaryOperator<String> callback, boolean defaultsToEmptyString) { return new DefaultInterpolator() .substVars(val, currentKey, null, configProps, callback, null, defaultsToEmptyString); diff --git a/impl/maven-impl/src/test/java/org/apache/maven/internal/impl/model/profile/ConditionParserTest.java b/impl/maven-impl/src/test/java/org/apache/maven/internal/impl/model/profile/ConditionParserTest.java index c2887d96f7..1cd3bf1201 100644 --- a/impl/maven-impl/src/test/java/org/apache/maven/internal/impl/model/profile/ConditionParserTest.java +++ b/impl/maven-impl/src/test/java/org/apache/maven/internal/impl/model/profile/ConditionParserTest.java @@ -19,7 +19,7 @@ package org.apache.maven.internal.impl.model.profile; import java.util.Map; -import java.util.function.Function; +import java.util.function.UnaryOperator; import org.apache.maven.api.model.Model; import org.apache.maven.api.services.model.ProfileActivationContext; @@ -43,7 +43,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; class ConditionParserTest { ConditionParser parser; Map<String, ExpressionFunction> functions; - Function<String, String> propertyResolver; + UnaryOperator<String> propertyResolver; @BeforeEach void setUp() { diff --git a/src/mdo/transformer.vm b/src/mdo/transformer.vm index 04b6b707b8..93178d5614 100644 --- a/src/mdo/transformer.vm +++ b/src/mdo/transformer.vm @@ -40,7 +40,7 @@ import java.util.Map; import java.util.Properties; import java.util.Objects; import java.util.function.BinaryOperator; -import java.util.function.Function; +import java.util.function.UnaryOperator; import java.util.function.Supplier; import java.util.stream.Collectors; @@ -54,9 +54,9 @@ import org.apache.maven.internal.xml.XmlNodeImpl; @Generated public class ${className} { - private final Function<String, String> transformer; + private final UnaryOperator<String> transformer; - public ${className}(Function<String, String> transformer) { + public ${className}(UnaryOperator<String> transformer) { this.transformer = transformer; } @@ -141,7 +141,7 @@ public class ${className} { #end #end - protected <T> List<T> transform(List<T> list, Function<T, T> transformer) { + protected <T> List<T> transform(List<T> list, UnaryOperator<T> transformer) { List<T> newList = list; for (int i = 0; i < list.size(); i++) { T oldVal = list.get(i); @@ -156,7 +156,7 @@ public class ${className} { return newList; } - protected <T> Map<String, T> transform(Map<String, T> map, Function<T, T> transformer) { + protected <T> Map<String, T> transform(Map<String, T> map, UnaryOperator<T> transformer) { Map<String, T> newMap = map; for (String key : map.keySet()) { T oldVal = map.get(key);