You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mt...@apache.org on 2022/04/27 18:55:28 UTC
[maven] branch master updated: [MNG-7404] Drop deprecated prefixless expressions
This is an automated email from the ASF dual-hosted git repository.
mthmulders pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven.git
The following commit(s) were added to refs/heads/master by this push:
new 93196d4bb [MNG-7404] Drop deprecated prefixless expressions
93196d4bb is described below
commit 93196d4bb72d3bf434256111f294d5bd1dd09d11
Author: Giovanni van der Schelde <Gi...@infosupport.com>
AuthorDate: Tue Mar 15 10:40:44 2022 +0100
[MNG-7404] Drop deprecated prefixless expressions
Fixed failing unit tests to use the 'project.' prefix and removed legacy
unit tests that tested support for prefixless expressions.
Closes #696.
---
.../apache/maven/project/PomConstructionTest.java | 34 -------
.../child/pom.xml | 104 ---------------------
.../unprefixed-expression-interpolation/pom.xml | 36 -------
.../AbstractStringBasedModelInterpolator.java | 15 +--
.../interpolation/ProblemDetectingValueSource.java | 86 -----------------
.../StringSearchModelInterpolator.java | 2 +-
.../StringVisitorModelInterpolator.java | 2 +-
.../AbstractModelInterpolatorTest.java | 16 +---
8 files changed, 9 insertions(+), 286 deletions(-)
diff --git a/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java b/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java
index a96583d64..3b2d63aae 100644
--- a/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java
+++ b/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java
@@ -736,40 +736,6 @@ public class PomConstructionTest
}
}
- @Test
- public void testInterpolationOfLegacyExpressionsThatDontIncludeTheProjectPrefix()
- throws Exception
- {
- PomTestWrapper pom = buildPom( "unprefixed-expression-interpolation/child" );
-
- assertEquals( pom.getBasedir(), new File( pom.getValue( "properties/projectDir" ).toString() ) );
-
- assertEquals( "org.apache.maven.its.mng3831.child", pom.getValue( "properties/projectGroupId" ) );
- assertEquals( "child", pom.getValue( "properties/projectArtifactId" ) );
- assertEquals( "2.0-alpha-1", pom.getValue( "properties/projectVersion" ) );
- assertEquals( "jar", pom.getValue( "properties/projectPackaging" ) );
-
- assertEquals( "child-name", pom.getValue( "properties/projectName" ) );
- assertEquals( "child-desc", pom.getValue( "properties/projectDesc" ) );
- assertEquals( "https://child.org/", pom.getValue( "properties/projectUrl" ) );
- assertEquals( "2008", pom.getValue( "properties/projectYear" ) );
- assertEquals( "child-org-name", pom.getValue( "properties/projectOrgName" ) );
-
- assertEquals( "2.0.0", pom.getValue( "properties/projectPrereqMvn" ) );
- assertEquals( "https://scm.org/", pom.getValue( "properties/projectScmUrl" ) );
- assertEquals( "https://issue.org/", pom.getValue( "properties/projectIssueUrl" ) );
- assertEquals( "https://ci.org/", pom.getValue( "properties/projectCiUrl" ) );
- assertEquals( "child-dist-repo", pom.getValue( "properties/projectDistRepoName" ) );
- assertEquals( "https://dist.org/", pom.getValue( "properties/projectDistRepoUrl" ) );
- assertEquals( "https://site.org/", pom.getValue( "properties/projectDistSiteUrl" ) );
-
- assertEquals( "org.apache.maven.its.mng3831", pom.getValue( "properties/parentGroupId" ) );
- assertEquals( "parent", pom.getValue( "properties/parentArtifactId" ) );
- assertEquals( "1.0", pom.getValue( "properties/parentVersion" ) );
-
- assertThat( pom.getValue( "properties/projectBuildOut" ).toString(), endsWith( "bin" ) );
- assertThat( pom.getValue( "properties/projectSiteOut" ).toString(), endsWith( "doc" ) );
- }
@Test
public void testInterpolationWithBasedirAlignedDirectories()
diff --git a/maven-core/src/test/resources-project-builder/unprefixed-expression-interpolation/child/pom.xml b/maven-core/src/test/resources-project-builder/unprefixed-expression-interpolation/child/pom.xml
deleted file mode 100644
index f6470289e..000000000
--- a/maven-core/src/test/resources-project-builder/unprefixed-expression-interpolation/child/pom.xml
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
- https://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied. See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.apache.maven.its.mng3831</groupId>
- <artifactId>parent</artifactId>
- <version>1.0</version>
- </parent>
-
- <groupId>org.apache.maven.its.mng3831.child</groupId>
- <artifactId>child</artifactId>
- <version>2.0-alpha-1</version>
- <packaging>jar</packaging>
-
- <name>child-name</name>
- <description>child-desc</description>
- <url>https://child.org/</url>
- <inceptionYear>2008</inceptionYear>
- <organization>
- <name>child-org-name</name>
- </organization>
-
- <prerequisites>
- <maven>2.0.0</maven>
- </prerequisites>
-
- <scm>
- <url>https://scm.org/</url>
- </scm>
- <issueManagement>
- <url>https://issue.org/</url>
- </issueManagement>
- <ciManagement>
- <url>https://ci.org/</url>
- </ciManagement>
- <distributionManagement>
- <repository>
- <id>maven-core-it</id>
- <name>child-dist-repo</name>
- <url>https://dist.org/</url>
- </repository>
- <site>
- <id>maven-core-it</id>
- <name>child-site</name>
- <url>https://site.org/</url>
- </site>
- </distributionManagement>
-
- <properties>
- <!-- this is where we collect all the interpolated values for the POM dump -->
- <projectDir>${basedir}</projectDir>
- <projectGroupId>${groupId}</projectGroupId>
- <projectArtifactId>${artifactId}</projectArtifactId>
- <projectVersion>${version}</projectVersion>
- <projectPackaging>${packaging}</projectPackaging>
- <projectName>${name}</projectName>
- <projectDesc>${description}</projectDesc>
- <projectUrl>${url}</projectUrl>
- <projectYear>${inceptionYear}</projectYear>
- <projectOrgName>${organization.name}</projectOrgName>
- <projectPrereqMvn>${prerequisites.maven}</projectPrereqMvn>
- <projectScmUrl>${scm.url}</projectScmUrl>
- <projectIssueUrl>${issueManagement.url}</projectIssueUrl>
- <projectCiUrl>${ciManagement.url}</projectCiUrl>
- <projectDistRepoName>${distributionManagement.repository.name}</projectDistRepoName>
- <projectDistRepoUrl>${distributionManagement.repository.url}</projectDistRepoUrl>
- <projectDistSiteUrl>${distributionManagement.site.url}</projectDistSiteUrl>
- <projectBuildOut>${build.outputDirectory}</projectBuildOut>
- <projectSiteOut>${reporting.outputDirectory}</projectSiteOut>
- <parentGroupId>${parent.groupId}</parentGroupId>
- <parentArtifactId>${parent.artifactId}</parentArtifactId>
- <parentVersion>${parent.version}</parentVersion>
- </properties>
-
- <build>
- <outputDirectory>target/bin</outputDirectory>
- </build>
-
- <reporting>
- <outputDirectory>target/doc</outputDirectory>
- </reporting>
-
-</project>
diff --git a/maven-core/src/test/resources-project-builder/unprefixed-expression-interpolation/pom.xml b/maven-core/src/test/resources-project-builder/unprefixed-expression-interpolation/pom.xml
deleted file mode 100644
index 28e0458e4..000000000
--- a/maven-core/src/test/resources-project-builder/unprefixed-expression-interpolation/pom.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
- https://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied. See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <groupId>org.apache.maven.its.mng3831</groupId>
- <artifactId>parent</artifactId>
- <version>1.0</version>
- <packaging>pom</packaging>
-
- <name>Maven Integration Test :: MNG-3831</name>
- <description>Test POM interpolation with expressions of the form $ { * } (ugly but real)</description>
-
- <modules>
- <module>parent/child</module>
- </modules>
-</project>
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java b/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java
index 50a78be76..e42e6e3b6 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java
@@ -31,13 +31,11 @@ import javax.inject.Inject;
import org.apache.maven.model.Model;
import org.apache.maven.model.building.ModelBuildingRequest;
-import org.apache.maven.model.building.ModelProblemCollector;
import org.apache.maven.model.path.PathTranslator;
import org.apache.maven.model.path.UrlNormalizer;
import org.codehaus.plexus.interpolation.AbstractValueSource;
import org.codehaus.plexus.interpolation.InterpolationPostProcessor;
import org.codehaus.plexus.interpolation.MapBasedValueSource;
-import org.codehaus.plexus.interpolation.ObjectBasedValueSource;
import org.codehaus.plexus.interpolation.PrefixAwareRecursionInterceptor;
import org.codehaus.plexus.interpolation.PrefixedObjectValueSource;
import org.codehaus.plexus.interpolation.PrefixedValueSourceWrapper;
@@ -90,21 +88,14 @@ public abstract class AbstractStringBasedModelInterpolator
}
protected List<ValueSource> createValueSources( final Model model, final File projectDir,
- final ModelBuildingRequest config,
- final ModelProblemCollector problems )
+ final ModelBuildingRequest config )
{
Properties modelProperties = model.getProperties();
ValueSource projectPrefixValueSource = new PrefixedObjectValueSource( PROJECT_PREFIXES, model, false );
- ValueSource prefixlessObjectBasedValueSource = new ObjectBasedValueSource( model );
- if ( config.getValidationLevel() >= ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_2_0 )
- {
- prefixlessObjectBasedValueSource =
- new ProblemDetectingValueSource( prefixlessObjectBasedValueSource, "", "project.", problems );
- }
// NOTE: Order counts here!
- List<ValueSource> valueSources = new ArrayList<>( 9 );
+ List<ValueSource> valueSources = new ArrayList<>( 8 );
if ( projectDir != null )
{
@@ -159,8 +150,6 @@ public abstract class AbstractStringBasedModelInterpolator
}
} );
- valueSources.add( prefixlessObjectBasedValueSource );
-
return valueSources;
}
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/ProblemDetectingValueSource.java b/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/ProblemDetectingValueSource.java
deleted file mode 100644
index 0b29f20e7..000000000
--- a/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/ProblemDetectingValueSource.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package org.apache.maven.model.interpolation;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import java.util.List;
-
-import org.apache.maven.model.building.ModelProblemCollector;
-import org.apache.maven.model.building.ModelProblem.Severity;
-import org.apache.maven.model.building.ModelProblem.Version;
-import org.apache.maven.model.building.ModelProblemCollectorRequest;
-import org.codehaus.plexus.interpolation.ValueSource;
-
-/**
- * Wraps another value source and intercepts interpolated expressions, checking for problems.
- *
- * @author Benjamin Bentmann
- */
-class ProblemDetectingValueSource
- implements ValueSource
-{
-
- private final ValueSource valueSource;
-
- private final String bannedPrefix;
-
- private final String newPrefix;
-
- private final ModelProblemCollector problems;
-
- ProblemDetectingValueSource( ValueSource valueSource, String bannedPrefix, String newPrefix,
- ModelProblemCollector problems )
- {
- this.valueSource = valueSource;
- this.bannedPrefix = bannedPrefix;
- this.newPrefix = newPrefix;
- this.problems = problems;
- }
-
- @Override
- public Object getValue( String expression )
- {
- Object value = valueSource.getValue( expression );
-
- if ( value != null && expression.startsWith( bannedPrefix ) )
- {
- String msg = "The expression ${" + expression + "} is deprecated.";
- if ( newPrefix != null && newPrefix.length() > 0 )
- {
- msg += " Please use ${" + newPrefix + expression.substring( bannedPrefix.length() ) + "} instead.";
- }
- problems.add( new ModelProblemCollectorRequest( Severity.WARNING, Version.V20 ).setMessage( msg ) );
- }
-
- return value;
- }
-
- @Override
- public List getFeedback()
- {
- return valueSource.getFeedback();
- }
-
- @Override
- public void clearFeedback()
- {
- valueSource.clearFeedback();
- }
-
-}
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/StringSearchModelInterpolator.java b/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/StringSearchModelInterpolator.java
index 99f55bd70..d99609723 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/StringSearchModelInterpolator.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/StringSearchModelInterpolator.java
@@ -85,7 +85,7 @@ public class StringSearchModelInterpolator
void interpolateObject( Object obj, Model model, File projectDir, ModelBuildingRequest config,
ModelProblemCollector problems )
{
- List<? extends ValueSource> valueSources = createValueSources( model, projectDir, config, problems );
+ List<? extends ValueSource> valueSources = createValueSources( model, projectDir, config );
List<? extends InterpolationPostProcessor> postProcessors = createPostProcessors( model, projectDir, config );
InnerInterpolator innerInterpolator = createInterpolator( valueSources, postProcessors, problems );
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/StringVisitorModelInterpolator.java b/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/StringVisitorModelInterpolator.java
index e2438d540..3ba48ecc5 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/StringVisitorModelInterpolator.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/StringVisitorModelInterpolator.java
@@ -107,7 +107,7 @@ public class StringVisitorModelInterpolator
public Model interpolateModel( Model model, File projectDir, ModelBuildingRequest config,
ModelProblemCollector problems )
{
- List<? extends ValueSource> valueSources = createValueSources( model, projectDir, config, problems );
+ List<? extends ValueSource> valueSources = createValueSources( model, projectDir, config );
List<? extends InterpolationPostProcessor> postProcessors =
createPostProcessors( model, projectDir, config );
diff --git a/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/AbstractModelInterpolatorTest.java b/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/AbstractModelInterpolatorTest.java
index e4a7af3fd..ca9d28edd 100644
--- a/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/AbstractModelInterpolatorTest.java
+++ b/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/AbstractModelInterpolatorTest.java
@@ -230,7 +230,7 @@ public abstract class AbstractModelInterpolatorTest
model.setVersion( "3.8.1" );
Dependency dep = new Dependency();
- dep.setVersion( "${version}" );
+ dep.setVersion( "${project.version}" );
model.addDependency( dep );
@@ -239,7 +239,7 @@ public abstract class AbstractModelInterpolatorTest
final SimpleProblemCollector collector = new SimpleProblemCollector();
Model out = interpolator.interpolateModel( model, new File( "." ), createModelBuildingRequest( context ),
collector );
- assertCollectorState( 0, 0, 1, collector );
+ assertCollectorState( 0, 0, 0, collector );
assertEquals( "3.8.1", ( out.getDependencies().get( 0 ) ).getVersion() );
}
@@ -288,7 +288,7 @@ public abstract class AbstractModelInterpolatorTest
model.setArtifactId( "foo" );
Dependency dep = new Dependency();
- dep.setVersion( "${artifactId}-${version}" );
+ dep.setVersion( "${project.artifactId}-${project.version}" );
model.addDependency( dep );
@@ -297,7 +297,7 @@ public abstract class AbstractModelInterpolatorTest
final SimpleProblemCollector collector = new SimpleProblemCollector();
Model out = interpolator.interpolateModel( model, new File( "." ), createModelBuildingRequest( context ),
collector );
- assertCollectorState( 0, 0, 2, collector );
+ assertCollectorState( 0, 0, 0, collector );
assertEquals( "foo-3.8.1", ( out.getDependencies().get( 0 ) ).getVersion() );
}
@@ -426,25 +426,19 @@ public abstract class AbstractModelInterpolatorTest
build.addResource( res );
- Resource res2 = new Resource();
- res2.setDirectory( "${build.sourceDirectory}" );
-
- build.addResource( res2 );
-
model.setBuild( build );
ModelInterpolator interpolator = createInterpolator();
final SimpleProblemCollector collector = new SimpleProblemCollector();
Model out = interpolator.interpolateModel( model, null, createModelBuildingRequest( context ), collector );
- assertCollectorState( 0, 0, 1, collector );
+ assertCollectorState( 0, 0, 0, collector );
List<Resource> outResources = out.getBuild().getResources();
Iterator<Resource> resIt = outResources.iterator();
assertEquals( build.getSourceDirectory(), resIt.next().getDirectory() );
- assertEquals( build.getSourceDirectory(), resIt.next().getDirectory() );
}
@Test