From ff7f20967632f295f2a88d11ab9b32769de8a8c4 Mon Sep 17 00:00:00 2001 From: Andrzej Jarmoniuk Date: Wed, 7 Sep 2022 20:53:48 +0200 Subject: [PATCH] #673: Fixing NPE in UseDepVersionMojo caused by PatternIncludesArtifactFilter expecting a non-null classifier when using wildcards --- pom.xml | 8 +++- .../mojo/versions/UseDepVersionMojoTest.java | 47 +++++++++++++++++++ .../mojo/versions/utils/BaseMojoTestCase.java | 15 ++++++ .../mojo/use-dep-version/issue-637-pom.xml | 29 ++++++++++++ 4 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 src/test/java/org/codehaus/mojo/versions/UseDepVersionMojoTest.java create mode 100644 src/test/resources/org/codehaus/mojo/use-dep-version/issue-637-pom.xml diff --git a/pom.xml b/pom.xml index cdd5c330e..3a3ec35d9 100644 --- a/pom.xml +++ b/pom.xml @@ -186,7 +186,7 @@ org.apache.maven.shared maven-common-artifact-filters - 3.3.1 + 3.3.0 org.apache.maven.wagon @@ -274,6 +274,12 @@ 2.2 test + + org.slf4j + slf4j-simple + 1.7.36 + test + diff --git a/src/test/java/org/codehaus/mojo/versions/UseDepVersionMojoTest.java b/src/test/java/org/codehaus/mojo/versions/UseDepVersionMojoTest.java new file mode 100644 index 000000000..be965fd48 --- /dev/null +++ b/src/test/java/org/codehaus/mojo/versions/UseDepVersionMojoTest.java @@ -0,0 +1,47 @@ +package org.codehaus.mojo.versions; + +/* + * 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.Collections; + +import org.codehaus.mojo.versions.utils.BaseMojoTestCase; +import org.junit.Test; + +/** + * Basic tests for {@linkplain UseDepVersionMojo}. + * + * @author Andrzej Jarmoniuk + */ +public class UseDepVersionMojoTest extends BaseMojoTestCase +{ + @Test + public void testIssue673() throws Exception + { + UseDepVersionMojo mojo = createMojo( "use-dep-version", + "src/test/resources/org/codehaus/mojo/use-dep-version/issue-637-pom.xml" ); + setVariableValueToObject( mojo, "processDependencies", true ); + setVariableValueToObject( mojo, "processDependencyManagement", true ); + setVariableValueToObject( mojo, "excludeReactor", true ); + setVariableValueToObject( mojo, "serverId", "serverId" ); + setVariableValueToObject( mojo, "reactorProjects", Collections.singletonList( mojo.getProject() ) ); + + mojo.execute(); + } +} \ No newline at end of file diff --git a/src/test/java/org/codehaus/mojo/versions/utils/BaseMojoTestCase.java b/src/test/java/org/codehaus/mojo/versions/utils/BaseMojoTestCase.java index d8a0e04f9..4d499afd1 100644 --- a/src/test/java/org/codehaus/mojo/versions/utils/BaseMojoTestCase.java +++ b/src/test/java/org/codehaus/mojo/versions/utils/BaseMojoTestCase.java @@ -3,9 +3,12 @@ import java.io.File; import java.io.IOException; import java.util.Collections; +import java.util.List; import java.util.Properties; import org.apache.maven.model.Build; +import org.apache.maven.model.Dependency; +import org.apache.maven.model.DependencyManagement; import org.apache.maven.model.Model; import org.apache.maven.model.io.xpp3.MavenXpp3Reader; import org.apache.maven.plugin.Mojo; @@ -117,5 +120,17 @@ public Properties getProperties() { return getModel().getProperties(); } + + @Override + public List getDependencies() + { + return getModel().getDependencies(); + } + + @Override + public DependencyManagement getDependencyManagement() + { + return getModel().getDependencyManagement(); + } } } diff --git a/src/test/resources/org/codehaus/mojo/use-dep-version/issue-637-pom.xml b/src/test/resources/org/codehaus/mojo/use-dep-version/issue-637-pom.xml new file mode 100644 index 000000000..5f2edfe99 --- /dev/null +++ b/src/test/resources/org/codehaus/mojo/use-dep-version/issue-637-pom.xml @@ -0,0 +1,29 @@ + + + 4.0.0 + + test-group + test-artifact + DEVELOP-SNAPSHOT + + + + test-group + dep-artifact + 22.09.21 + + + + + + + versions-maven-plugin + + DEVELOP-SNAPSHOT + test-group*:::JET*-SNAPSHOT + + + + + + \ No newline at end of file