Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package maven-dependency-analyzer for
openSUSE:Factory checked in at 2026-05-18 17:47:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/maven-dependency-analyzer (Old)
and /work/SRC/openSUSE:Factory/.maven-dependency-analyzer.new.1966 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "maven-dependency-analyzer"
Mon May 18 17:47:53 2026 rev:10 rq:1353742 version:1.17.1
Changes:
--------
---
/work/SRC/openSUSE:Factory/maven-dependency-analyzer/maven-dependency-analyzer.changes
2026-02-02 14:59:00.472189725 +0100
+++
/work/SRC/openSUSE:Factory/.maven-dependency-analyzer.new.1966/maven-dependency-analyzer.changes
2026-05-18 17:48:35.489727587 +0200
@@ -1,0 +2,14 @@
+Mon May 18 09:29:47 UTC 2026 - Fridrich Strba <[email protected]>
+
+- Upgrade to upstream version 1.17.1
+ * New features and improvements
+ + Optimize artifact lookup in DefaultProjectDependencyAnalyzer
+ * Maintenance
+ + Add tag-template to release-drafter configuration
+ + Implement missing tests and cleanup TODOs in
+ DependencyVisitorTest
+ * Dependency updates
+ + Update parent 48
+ + Bump mavenVersion from 3.9.12 to 3.9.15
+
+-------------------------------------------------------------------
Old:
----
maven-dependency-analyzer-1.17.0-source-release.zip
New:
----
maven-dependency-analyzer-1.17.1-source-release.zip
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ maven-dependency-analyzer.spec ++++++
--- /var/tmp/diff_new_pack.Wg8aDD/_old 2026-05-18 17:48:36.201757009 +0200
+++ /var/tmp/diff_new_pack.Wg8aDD/_new 2026-05-18 17:48:36.201757009 +0200
@@ -17,7 +17,7 @@
Name: maven-dependency-analyzer
-Version: 1.17.0
+Version: 1.17.1
Release: 0
Summary: Maven dependency analyzer
License: Apache-2.0
++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.Wg8aDD/_old 2026-05-18 17:48:36.297760976 +0200
+++ /var/tmp/diff_new_pack.Wg8aDD/_new 2026-05-18 17:48:36.309761472 +0200
@@ -1,6 +1,6 @@
-mtime: 1770027323
-commit: 7cbbc4012df9fbaa8ea5079a85fc46d16dfd74cd5214ea7d292fe6ea4073c213
-url: https://src.opensuse.org/java-packages/maven-dependency-analyzer.git
-revision: 7cbbc4012df9fbaa8ea5079a85fc46d16dfd74cd5214ea7d292fe6ea4073c213
+mtime: 1779096756
+commit: d26c34481da4680ab0aee5e154bff66e005dc831b5e3a807140b7b66d1533e3c
+url: https://src.opensuse.org/java-packages/maven-dependency-analyzer
+revision: d26c34481da4680ab0aee5e154bff66e005dc831b5e3a807140b7b66d1533e3c
projectscmsync: https://src.opensuse.org/java-packages/_ObsPrj
++++++ build.specials.obscpio ++++++
++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore 1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore 2026-05-18 11:32:36.000000000 +0200
@@ -0,0 +1 @@
+.osc
++++++ maven-dependency-analyzer-1.17.0-source-release.zip ->
maven-dependency-analyzer-1.17.1-source-release.zip ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/maven-dependency-analyzer-1.17.0/pom.xml
new/maven-dependency-analyzer-1.17.1/pom.xml
--- old/maven-dependency-analyzer-1.17.0/pom.xml 2026-01-29
21:53:38.000000000 +0100
+++ new/maven-dependency-analyzer-1.17.1/pom.xml 2026-05-12
20:23:14.000000000 +0200
@@ -24,12 +24,12 @@
<parent>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-shared-components</artifactId>
- <version>47</version>
+ <version>48</version>
<relativePath />
</parent>
<artifactId>maven-dependency-analyzer</artifactId>
- <version>1.17.0</version>
+ <version>1.17.1</version>
<packaging>jar</packaging>
<name>Apache Maven Dependency Analyzer</name>
@@ -38,7 +38,7 @@
<scm>
<connection>scm:git:https://gitbox.apache.org/repos/asf/maven-dependency-analyzer.git</connection>
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/maven-dependency-analyzer.git</developerConnection>
- <tag>maven-dependency-analyzer-1.17.0</tag>
+ <tag>maven-dependency-analyzer-1.17.1</tag>
<url>https://github.com/apache/maven-dependency-analyzer/tree/${project.scm.tag}</url>
</scm>
<issueManagement>
@@ -57,9 +57,9 @@
</distributionManagement>
<properties>
- <mavenVersion>3.9.12</mavenVersion>
+ <mavenVersion>3.9.15</mavenVersion>
<javaVersion>8</javaVersion>
-
<project.build.outputTimestamp>2026-01-29T21:53:38Z</project.build.outputTimestamp>
+
<project.build.outputTimestamp>2026-05-12T20:23:14Z</project.build.outputTimestamp>
</properties>
<dependencyManagement>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/maven-dependency-analyzer-1.17.0/src/main/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzer.java
new/maven-dependency-analyzer-1.17.1/src/main/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzer.java
---
old/maven-dependency-analyzer-1.17.0/src/main/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzer.java
2026-01-29 21:53:38.000000000 +0100
+++
new/maven-dependency-analyzer-1.17.1/src/main/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzer.java
2026-05-12 20:23:14.000000000 +0200
@@ -69,6 +69,7 @@
try {
ClassesPatterns excludedClassesPatterns = new
ClassesPatterns(excludedClasses);
Map<Artifact, Set<String>> artifactClassMap =
buildArtifactClassMap(project, excludedClassesPatterns);
+ Map<String, Artifact> classToArtifactMap =
buildClassToArtifactMap(artifactClassMap);
Set<DependencyUsage> mainDependencyClasses = new HashSet<>();
for (MainDependencyClassesProvider provider :
mainDependencyClassesProviders) {
@@ -87,11 +88,12 @@
Set<DependencyUsage> testOnlyDependencyClasses =
buildTestOnlyDependencyClasses(mainDependencyClasses,
testDependencyClasses);
- Map<Artifact, Set<DependencyUsage>> usedArtifacts =
buildUsedArtifacts(artifactClassMap, dependencyClasses);
- Set<Artifact> mainUsedArtifacts =
- buildUsedArtifacts(artifactClassMap,
mainDependencyClasses).keySet();
+ Map<Artifact, Set<DependencyUsage>> usedArtifacts =
+ buildUsedArtifacts(classToArtifactMap, dependencyClasses);
+ Set<Artifact> mainUsedArtifacts =
buildUsedArtifacts(classToArtifactMap, mainDependencyClasses)
+ .keySet();
- Set<Artifact> testArtifacts = buildUsedArtifacts(artifactClassMap,
testOnlyDependencyClasses)
+ Set<Artifact> testArtifacts =
buildUsedArtifacts(classToArtifactMap, testOnlyDependencyClasses)
.keySet();
Set<Artifact> testOnlyArtifacts = removeAll(testArtifacts,
mainUsedArtifacts);
@@ -124,7 +126,8 @@
}
/**
- * This method defines a new way to remove the artifacts by using the
conflict id. We don't care about the version
+ * This method defines a new way to remove the artifacts by using the
conflict
+ * id. We don't care about the version
* here because there can be only 1 for a given artifact anyway.
*
* @param start initial set
@@ -156,7 +159,7 @@
Set<Artifact> nonTestScopeArtifacts = new LinkedHashSet<>();
for (Artifact artifact : testOnlyArtifacts) {
- if (artifact.getScope().equals("compile")) {
+ if (Artifact.SCOPE_COMPILE.equals(artifact.getScope())) {
nonTestScopeArtifacts.add(artifact);
}
}
@@ -225,20 +228,15 @@
return declaredArtifacts;
}
- private static Map<Artifact, Set<DependencyUsage>> buildUsedArtifacts(
- Map<Artifact, Set<String>> artifactClassMap, Set<DependencyUsage>
dependencyClasses) {
+ static Map<Artifact, Set<DependencyUsage>> buildUsedArtifacts(
+ Map<String, Artifact> classToArtifactMap, Set<DependencyUsage>
dependencyClasses) {
Map<Artifact, Set<DependencyUsage>> usedArtifacts = new HashMap<>();
for (DependencyUsage classUsage : dependencyClasses) {
- Artifact artifact = findArtifactForClassName(artifactClassMap,
classUsage.getDependencyClass());
+ Artifact artifact =
classToArtifactMap.get(classUsage.getDependencyClass());
if (artifact != null && !includedInJDK(artifact)) {
- Set<DependencyUsage> classesFromArtifact =
usedArtifacts.get(artifact);
- if (classesFromArtifact == null) {
- classesFromArtifact = new HashSet<>();
- usedArtifacts.put(artifact, classesFromArtifact);
- }
- classesFromArtifact.add(classUsage);
+ usedArtifacts.computeIfAbsent(artifact, k -> new
HashSet<>()).add(classUsage);
}
}
@@ -247,7 +245,7 @@
// MSHARED-47 an uncommon case where a commonly used
// third party dependency was added to the JDK
- private static boolean includedInJDK(Artifact artifact) {
+ static boolean includedInJDK(Artifact artifact) {
if ("xml-apis".equals(artifact.getGroupId())) {
if ("xml-apis".equals(artifact.getArtifactId())) {
return true;
@@ -260,13 +258,16 @@
return false;
}
- private static Artifact findArtifactForClassName(Map<Artifact,
Set<String>> artifactClassMap, String className) {
+ static Map<String, Artifact> buildClassToArtifactMap(Map<Artifact,
Set<String>> artifactClassMap) {
+ Map<String, Artifact> classToArtifactMap = new HashMap<>();
+
for (Map.Entry<Artifact, Set<String>> entry :
artifactClassMap.entrySet()) {
- if (entry.getValue().contains(className)) {
- return entry.getKey();
+ Artifact artifact = entry.getKey();
+ for (String className : entry.getValue()) {
+ classToArtifactMap.putIfAbsent(className, artifact);
}
}
- return null;
+ return classToArtifactMap;
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/maven-dependency-analyzer-1.17.0/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzerTest.java
new/maven-dependency-analyzer-1.17.1/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzerTest.java
---
old/maven-dependency-analyzer-1.17.0/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzerTest.java
1970-01-01 01:00:00.000000000 +0100
+++
new/maven-dependency-analyzer-1.17.1/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzerTest.java
2026-05-12 20:23:14.000000000 +0200
@@ -0,0 +1,147 @@
+/*
+ * 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.
+ */
+package org.apache.maven.shared.dependency.analyzer;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.DefaultArtifact;
+import org.apache.maven.artifact.versioning.VersionRange;
+import org.junit.jupiter.api.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+/**
+ * Tests <code>DefaultProjectDependencyAnalyzer</code>.
+ *
+ * @see DefaultProjectDependencyAnalyzer
+ */
+class DefaultProjectDependencyAnalyzerTest {
+
+ @Test
+ void testBuildClassToArtifactMap() {
+ Artifact artifact1 = aTestArtifact("artifact1");
+ Artifact artifact2 = aTestArtifact("artifact2");
+
+ Map<Artifact, Set<String>> artifactClassMap = new LinkedHashMap<>();
+ artifactClassMap.put(artifact1, Collections.singleton("class1"));
+ artifactClassMap.put(artifact2, Collections.singleton("class2"));
+
+ Map<String, Artifact> result =
DefaultProjectDependencyAnalyzer.buildClassToArtifactMap(artifactClassMap);
+
+ assertThat(result).hasSize(2);
+ assertThat(result.get("class1")).isEqualTo(artifact1);
+ assertThat(result.get("class2")).isEqualTo(artifact2);
+ }
+
+ @Test
+ void testBuildClassToArtifactMapWithDuplicates() {
+ Artifact artifact1 = aTestArtifact("artifact1");
+ Artifact artifact2 = aTestArtifact("artifact2");
+
+ Map<Artifact, Set<String>> artifactClassMap = new LinkedHashMap<>();
+ artifactClassMap.put(artifact1,
Collections.singleton("duplicateClass"));
+ artifactClassMap.put(artifact2,
Collections.singleton("duplicateClass"));
+
+ Map<String, Artifact> result =
DefaultProjectDependencyAnalyzer.buildClassToArtifactMap(artifactClassMap);
+
+ assertThat(result).hasSize(1);
+ // Should favor the first artifact encountered
+ assertThat(result.get("duplicateClass")).isEqualTo(artifact1);
+ }
+
+ @Test
+ void testBuildClassToArtifactMapWithMultipleClasses() {
+ Artifact artifact1 = aTestArtifact("artifact1");
+
+ Map<Artifact, Set<String>> artifactClassMap = new LinkedHashMap<>();
+ artifactClassMap.put(artifact1, new HashSet<>(Arrays.asList("class1",
"class2")));
+
+ Map<String, Artifact> result =
DefaultProjectDependencyAnalyzer.buildClassToArtifactMap(artifactClassMap);
+
+ assertThat(result).hasSize(2);
+ assertThat(result.get("class1")).isEqualTo(artifact1);
+ assertThat(result.get("class2")).isEqualTo(artifact1);
+ }
+
+ @Test
+ void testBuildUsedArtifacts() {
+ Artifact artifact1 = aTestArtifact("artifact1");
+ Map<String, Artifact> classToArtifactMap =
Collections.singletonMap("class1", artifact1);
+ Set<DependencyUsage> dependencyClasses = Collections.singleton(new
DependencyUsage("class1", "main"));
+
+ Map<Artifact, Set<DependencyUsage>> result =
+
DefaultProjectDependencyAnalyzer.buildUsedArtifacts(classToArtifactMap,
dependencyClasses);
+
+ assertThat(result).hasSize(1);
+ assertThat(result.get(artifact1)).hasSize(1);
+
assertThat(result.get(artifact1).iterator().next().getDependencyClass()).isEqualTo("class1");
+ }
+
+ @Test
+ void testBuildUsedArtifactsWithMultipleClasses() {
+ Artifact artifact1 = aTestArtifact("artifact1");
+ Map<String, Artifact> classToArtifactMap =
Collections.singletonMap("class1", artifact1);
+ Set<DependencyUsage> dependencyClasses = new HashSet<>(
+ Arrays.asList(new DependencyUsage("class1", "main"), new
DependencyUsage("class1", "test")));
+
+ Map<Artifact, Set<DependencyUsage>> result =
+
DefaultProjectDependencyAnalyzer.buildUsedArtifacts(classToArtifactMap,
dependencyClasses);
+
+ assertThat(result).hasSize(1);
+ assertThat(result.get(artifact1)).hasSize(2);
+ }
+
+ @Test
+ void testBuildUsedArtifactsWithJDKExcluded() {
+ Artifact artifact1 = aTestArtifact("xml-apis", "xml-apis");
+ Map<String, Artifact> classToArtifactMap =
Collections.singletonMap("class1", artifact1);
+ Set<DependencyUsage> dependencyClasses = Collections.singleton(new
DependencyUsage("class1", "main"));
+
+ Map<Artifact, Set<DependencyUsage>> result =
+
DefaultProjectDependencyAnalyzer.buildUsedArtifacts(classToArtifactMap,
dependencyClasses);
+
+ // Being in JDK, it should be excluded from used artifacts
+ assertThat(result).isEmpty();
+ }
+
+ @Test
+ void testIncludedInJDK() {
+
assertThat(DefaultProjectDependencyAnalyzer.includedInJDK(aTestArtifact("xml-apis",
"xml-apis")))
+ .isTrue();
+
assertThat(DefaultProjectDependencyAnalyzer.includedInJDK(aTestArtifact("xerces",
"xmlParserAPIs")))
+ .isTrue();
+
assertThat(DefaultProjectDependencyAnalyzer.includedInJDK(aTestArtifact("groupId",
"artifactId")))
+ .isFalse();
+ }
+
+ private Artifact aTestArtifact(String artifactId) {
+ return aTestArtifact("groupId", artifactId);
+ }
+
+ private Artifact aTestArtifact(String groupId, String artifactId) {
+ return new DefaultArtifact(
+ groupId, artifactId, VersionRange.createFromVersion("1.0"),
"compile", "jar", "", null);
+ }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/maven-dependency-analyzer-1.17.0/src/test/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalysisTest.java
new/maven-dependency-analyzer-1.17.1/src/test/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalysisTest.java
---
old/maven-dependency-analyzer-1.17.0/src/test/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalysisTest.java
2026-01-29 21:53:38.000000000 +0100
+++
new/maven-dependency-analyzer-1.17.1/src/test/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalysisTest.java
2026-05-12 20:23:14.000000000 +0200
@@ -68,8 +68,9 @@
assertThat(compileOnlyAnalysis.getUsedDeclaredArtifacts()).hasSize(3);
assertThat(compileOnlyAnalysis.getUsedUndeclaredArtifacts()).hasSize(3);
-
assertThat(compileOnlyAnalysis.getUnusedDeclaredArtifacts()).hasSize(1).allSatisfy(a
-> assertThat(a.getScope())
- .isEqualTo(Artifact.SCOPE_COMPILE));
+ assertThat(compileOnlyAnalysis.getUnusedDeclaredArtifacts())
+ .hasSize(1)
+ .allSatisfy(a ->
assertThat(a.getScope()).isEqualTo(Artifact.SCOPE_COMPILE));
assertThat(compileOnlyAnalysis.getTestArtifactsWithNonTestScope()).hasSize(3);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/maven-dependency-analyzer-1.17.0/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyVisitorTest.java
new/maven-dependency-analyzer-1.17.1/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyVisitorTest.java
---
old/maven-dependency-analyzer-1.17.0/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyVisitorTest.java
2026-01-29 21:53:38.000000000 +0100
+++
new/maven-dependency-analyzer-1.17.1/src/test/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyVisitorTest.java
2026-05-12 20:23:14.000000000 +0200
@@ -150,9 +150,9 @@
void testVisitOuterClass() {
// class a.b.c
// {
- // class ...
- // {
- // }
+ // class ...
+ // {
+ // }
// }
visitor.visitOuterClass("a/b/c", null, null);
@@ -163,12 +163,12 @@
void testVisitOuterClassInMethod() {
// class a.b.c
// {
- // x.y.z x(p.q.r p)
- // {
- // class ...
- // {
- // }
- // }
+ // x.y.z x(p.q.r p)
+ // {
+ // class ...
+ // {
+ // }
+ // }
// }
visitor.visitOuterClass("a/b/c", "x", "(Lp/q/r;)Lx/y/z;");
@@ -204,10 +204,8 @@
@Test
void testVisitInnerClass() {
- // TODO: ensure innerName is correct
-
- // class a.b.c { class x.y.z { } }
- visitor.visitInnerClass("x/y/z", "a/b/c", "z", 0);
+ // class a.b.c { class x { } }
+ visitor.visitInnerClass("a/b/c$x", "a/b/c", "x", 0);
assertThat(resultCollector.getDependencies()).isEmpty();
}
@@ -230,10 +228,13 @@
assertThat(resultCollector.getDependencies()).containsOnly("a.b.c");
}
- // TODO: determine actual use of default values
- // void testVisitFieldWithValue()
- // {
- // }
+ @Test
+ void testVisitFieldWithValue() {
+ // a.b.c a = x.y.z.class
+ assertVisitor(visitor.visitField(0, "a", "La/b/c;", null,
Type.getType("Lx/y/z;")));
+
+ assertThat(resultCollector.getDependencies()).containsOnly("a.b.c",
"x.y.z");
+ }
@Test
void testVisitFieldArray() {
++++++ maven-dependency-analyzer-build.xml ++++++
--- /var/tmp/diff_new_pack.Wg8aDD/_old 2026-05-18 17:48:37.073793044 +0200
+++ /var/tmp/diff_new_pack.Wg8aDD/_new 2026-05-18 17:48:37.085793540 +0200
@@ -8,7 +8,7 @@
<property file="build.properties"/>
- <property name="project.version" value="1.17.0"/>
+ <property name="project.version" value="1.17.1"/>
<property name="project.groupId" value="org.apache.maven.shared"/>
<property name="project.artifactId" value="maven-dependency-analyzer"/>
<property name="project.name" value="Apache Maven Dependency Analyzer"/>