This is an automated email from the ASF dual-hosted git repository. sjaranowski pushed a commit to branch MRRESOURCES-151 in repository https://gitbox.apache.org/repos/asf/maven-remote-resources-plugin.git
commit c313f7b7070be558c3f9ba267f999c6f41ec9281 Author: Slawomir Jaranowski <s.jaranow...@gmail.com> AuthorDate: Wed Dec 18 23:40:22 2024 +0100 [MRRESOURCES-151] Deprecate includeProjectProperties parameter --- .../remote/AbstractProcessRemoteResourcesMojo.java | 29 ++++++++++++++-------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/apache/maven/plugin/resources/remote/AbstractProcessRemoteResourcesMojo.java b/src/main/java/org/apache/maven/plugin/resources/remote/AbstractProcessRemoteResourcesMojo.java index 6767b0f..93b4e54 100644 --- a/src/main/java/org/apache/maven/plugin/resources/remote/AbstractProcessRemoteResourcesMojo.java +++ b/src/main/java/org/apache/maven/plugin/resources/remote/AbstractProcessRemoteResourcesMojo.java @@ -239,13 +239,17 @@ public abstract class AbstractProcessRemoteResourcesMojo extends AbstractMojo { * javadoc for MavenProject</a> for information about the properties on the MavenProject. */ @Parameter - protected Map<String, Object> properties = new HashMap<>(); + protected Map<String, String> properties = new HashMap<>(); /** * Whether to include properties defined in the project when filtering resources. * + * @deprecated As Maven Project is available in Velocity context we can simply use + * <code>$project.properties.propertyName</code> + * * @since 1.2 */ + @Deprecated @Parameter(defaultValue = "false") protected boolean includeProjectProperties = false; @@ -419,13 +423,6 @@ public abstract class AbstractProcessRemoteResourcesMojo extends AbstractMojo { configureLocator(); - if (includeProjectProperties) { - final Properties projectProperties = project.getProperties(); - for (Object key : projectProperties.keySet()) { - properties.put(key.toString(), projectProperties.get(key).toString()); - } - } - ClassLoader origLoader = Thread.currentThread().getContextClassLoader(); try { validate(); @@ -442,7 +439,7 @@ public abstract class AbstractProcessRemoteResourcesMojo extends AbstractMojo { velocity.setProperty("resource.loader.classpath.class", ClasspathResourceLoader.class.getName()); velocity.init(); - VelocityContext context = buildVelocityContext(properties); + VelocityContext context = buildVelocityContext(); processResourceBundles(classLoader, context); @@ -745,9 +742,19 @@ public abstract class AbstractProcessRemoteResourcesMojo extends AbstractMojo { private static final String KEY_PROJECTS = "projects"; private static final String KEY_PROJECTS_ORGS = "projectsSortedByOrganization"; - protected VelocityContext buildVelocityContext(Map<String, Object> properties) { + protected VelocityContext buildVelocityContext() { + + Map<String, Object> contextProperties = new HashMap<>(properties); + + if (includeProjectProperties) { + final Properties projectProperties = project.getProperties(); + for (String key : projectProperties.stringPropertyNames()) { + contextProperties.put(key, projectProperties.getProperty(key)); + } + } + // the following properties are expensive to calculate, so we provide them lazily - VelocityContext context = new VelocityContext(properties) { + VelocityContext context = new VelocityContext(contextProperties) { @Override public Object internalGet(String key) { Object result = super.internalGet(key);