JCRVLT-405 prevent NPE for unknown package dependencies
git-svn-id: https://svn.apache.org/repos/asf/jackrabbit/commons/filevault-package-maven-plugin/trunk@1873208 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/GenerateMetadataMojo.java b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/GenerateMetadataMojo.java
index 92d2a2e..f9b0d06 100644
--- a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/GenerateMetadataMojo.java
+++ b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/GenerateMetadataMojo.java
@@ -754,7 +754,7 @@
if (!dependencies.isEmpty()) {
MavenBasedPackageDependency.resolve(project, getLog(), dependencies);
// pid = uri
- dependenciesLocations = dependencies.stream().map(a -> a.getInfo().getId().toString() + "=" + a.getLocation()).collect(Collectors.joining(","));
+ dependenciesLocations = dependencies.stream().filter(a -> a.getInfo() != null).map(a -> a.getInfo().getId().toString() + "=" + a.getLocation()).collect(Collectors.joining(","));
}
return dependenciesLocations;
}
diff --git a/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/it/DependencyCheckIT.java b/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/it/DependencyCheckIT.java
index 463e327..0eb0aed 100644
--- a/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/it/DependencyCheckIT.java
+++ b/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/it/DependencyCheckIT.java
@@ -27,7 +27,7 @@
@RunWith(Parameterized.class)
public class DependencyCheckIT {
- @Parameterized.Parameters
+ @Parameterized.Parameters(name="{index}: project {0}")
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][]{
{"fail-missing-deps", true},
@@ -39,7 +39,8 @@
{"no-errors", false},
{"repo-structure-pkg", false},
{"no-error-cleanup", false},
- {"no-error-cleanup-filter", false}
+ {"no-error-cleanup-filter", false},
+ {"no-error-unknown-dependency", false}
});
}
diff --git a/src/test/resources/test-projects/validate-deps-projects/no-error-unknown-dependency/pom.xml b/src/test/resources/test-projects/validate-deps-projects/no-error-unknown-dependency/pom.xml
new file mode 100755
index 0000000..b54d8df
--- /dev/null
+++ b/src/test/resources/test-projects/validate-deps-projects/no-error-unknown-dependency/pom.xml
@@ -0,0 +1,52 @@
+<!--
+ 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.
+-->
+<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 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.jackrabbit.filevault</groupId>
+ <artifactId>package-plugin-test-pkg</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <packaging>content-package</packaging>
+ <name>Packaging test</name>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.jackrabbit</groupId>
+ <artifactId>filevault-package-maven-plugin</artifactId>
+ <version>${plugin.version}</version>
+ <extensions>true</extensions>
+ <configuration>
+ <packageType>application</packageType>
+ <failOnDependencyErrors>true</failOnDependencyErrors>
+ <filters>
+ <filter>
+ <root>/tmp/foo</root>
+ </filter>
+ </filters>
+ <dependencies>
+ <dependency>
+ <group>some/unknown/group</group>
+ <name>somename</name>
+ <version>[2.0,)</version>
+ </dependency>
+ </dependencies>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>