Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package plexus-resources for 
openSUSE:Factory checked in at 2026-11-06 19:58:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/plexus-resources (Old)
 and      /work/SRC/openSUSE:Factory/.plexus-resources.new.3759290 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "plexus-resources"

Fri Nov  6 19:58:48 2026 rev:9 rq:1395849 version:1.4.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/plexus-resources/plexus-resources.changes        
2026-09-29 17:51:00.762296119 +0200
+++ 
/work/SRC/openSUSE:Factory/.plexus-resources.new.3759290/plexus-resources.changes
   2026-11-06 20:07:11.078395994 +0100
@@ -1,0 +2,22 @@
+Fri Nov  6 13:07:22 UTC 2026 - Fridrich Strba <[email protected]>
+
+- Update to version 1.4.1
+  * Bug Fixes
+    + Read jar resources without the JVM jar: cache
+  * Documentation updates
+    + Drop the Source Xref menu item
+    + Stop pinning a version in the README snippet
+  * Maintenance
+    + Keep plexus-xml on 3.x in Dependabot
+    + Drop the Source Xref menu item
+    + Draft the version the labels imply, not always a patch
+  * Build
+    + Allow running the release drafter by hand
+    + Keep Dependabot off Mockito 5
+    + Point the SCM URLs at HTTPS
+    + Draft the version the labels imply, not always a patch
+  * Dependency updates
+    + Bump release-drafter/release-drafter from 7.7.0 to 7.10.0
+    + Keep plexus-xml on 3.x in Dependabot
+
+-------------------------------------------------------------------

Old:
----
  plexus-resources-1.4.0.tar.xz

New:
----
  plexus-resources-1.4.1.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ plexus-resources.spec ++++++
--- /var/tmp/diff_new_pack.4ygqa9/_old  2026-11-06 20:07:12.282446452 +0100
+++ /var/tmp/diff_new_pack.4ygqa9/_new  2026-11-06 20:07:12.284446536 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           plexus-resources
-Version:        1.4.0
+Version:        1.4.1
 Release:        0
 Summary:        Plexus Resource Manager
 License:        MIT

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.4ygqa9/_old  2026-11-06 20:07:12.369450098 +0100
+++ /var/tmp/diff_new_pack.4ygqa9/_new  2026-11-06 20:07:12.380450559 +0100
@@ -1,6 +1,6 @@
-mtime: 1790601636
-commit: fda0a257b9a922b5f806555c12f36b33d616e4a359e16a660e5603a25ec39c72
+mtime: 1793970667
+commit: 7d30c72157cbc7444b3e8251c43915f92c67d9d073f7965107ca0d6e0a0b14b8
 url: https://src.opensuse.org/java-packages/plexus-resources
-revision: fda0a257b9a922b5f806555c12f36b33d616e4a359e16a660e5603a25ec39c72
+revision: 7d30c72157cbc7444b3e8251c43915f92c67d9d073f7965107ca0d6e0a0b14b8
 projectscmsync: https://src.opensuse.org/java-packages/_ObsPrj
 

++++++ _service ++++++
--- /var/tmp/diff_new_pack.4ygqa9/_old  2026-11-06 20:07:12.432452738 +0100
+++ /var/tmp/diff_new_pack.4ygqa9/_new  2026-11-06 20:07:12.438452990 +0100
@@ -2,7 +2,7 @@
        <service name="tar_scm" mode="disabled">
                <param name="scm">git</param>
                <param 
name="url">https://github.com/codehaus-plexus/plexus-resources.git</param>
-               <param name="revision">plexus-resources-1.4.0</param>
+               <param name="revision">plexus-resources-1.4.1</param>
                <param name="match-tag">plexus-resources-*</param>
                <param name="versionformat">@PARENT_TAG@</param>
                <param 
name="versionrewrite-pattern">plexus-resources-(.*)</param>

++++++ 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-11-06 14:11:07.000000000 +0100
@@ -0,0 +1 @@
+.osc

++++++ plexus-resources-1.4.0.tar.xz -> plexus-resources-1.4.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/plexus-resources-1.4.0/.github/dependabot.yml 
new/plexus-resources-1.4.1/.github/dependabot.yml
--- old/plexus-resources-1.4.0/.github/dependabot.yml   2026-08-19 
17:58:12.000000000 +0200
+++ new/plexus-resources-1.4.1/.github/dependabot.yml   2026-11-06 
11:38:18.000000000 +0100
@@ -4,6 +4,13 @@
     directory: "/"
     schedule:
       interval: "daily"
+    ignore:
+      # plexus-xml 4.x depends on the Maven 4 XML API
+      - dependency-name: "org.codehaus.plexus:plexus-xml"
+        versions: [">= 4.0.0"]
+      # Mockito 5 requires Java 11; the build still runs on JDK 8
+      - dependency-name: "org.mockito:*"
+        versions: [">= 5.0.0"]
   - package-ecosystem: "github-actions"
     directory: "/"
     schedule:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/plexus-resources-1.4.0/.github/release-drafter.yml 
new/plexus-resources-1.4.1/.github/release-drafter.yml
--- old/plexus-resources-1.4.0/.github/release-drafter.yml      1970-01-01 
01:00:00.000000000 +0100
+++ new/plexus-resources-1.4.1/.github/release-drafter.yml      2026-11-06 
11:38:18.000000000 +0100
@@ -0,0 +1,10 @@
+# Configuration for Release Drafter: 
https://github.com/release-drafter/release-drafter
+# Categories, labels and the version-resolver come from the shared org config.
+_extends: .github
+
+# Tags here are prefixed, so tag-prefix is what lets the drafter parse the
+# version out of the last tag. Without it the drafter reads what it can from 
the
+# tag string, and plexus-i18n once drafted 18.0.1 by finding the 18 in its 
name.
+tag-prefix: plexus-resources-
+tag-template: plexus-resources-$RESOLVED_VERSION
+name-template: $RESOLVED_VERSION
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/plexus-resources-1.4.0/.github/workflows/maven.yml 
new/plexus-resources-1.4.1/.github/workflows/maven.yml
--- old/plexus-resources-1.4.0/.github/workflows/maven.yml      2026-08-19 
17:58:12.000000000 +0200
+++ new/plexus-resources-1.4.1/.github/workflows/maven.yml      2026-11-06 
11:38:18.000000000 +0100
@@ -17,7 +17,7 @@
 
 name: GitHub CI
 
-on: [push, pull_request]
+on: [push, pull_request, workflow_dispatch]
 
 jobs:
   build:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/plexus-resources-1.4.0/.github/workflows/release-drafter.yml 
new/plexus-resources-1.4.1/.github/workflows/release-drafter.yml
--- old/plexus-resources-1.4.0/.github/workflows/release-drafter.yml    
2026-08-19 17:58:12.000000000 +0200
+++ new/plexus-resources-1.4.1/.github/workflows/release-drafter.yml    
2026-11-06 11:38:18.000000000 +0100
@@ -3,10 +3,11 @@
   push:
     branches:
       - master
+  workflow_dispatch:
 jobs:
   update_release_draft:
     runs-on: ubuntu-latest
     steps:
-      - uses: release-drafter/[email protected]
+      - uses: release-drafter/[email protected]
         env:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/plexus-resources-1.4.0/README.md 
new/plexus-resources-1.4.1/README.md
--- old/plexus-resources-1.4.0/README.md        2026-08-19 17:58:12.000000000 
+0200
+++ new/plexus-resources-1.4.1/README.md        2026-11-06 11:38:18.000000000 
+0100
@@ -22,7 +22,6 @@
 <dependency>
   <groupId>org.codehaus.plexus</groupId>
   <artifactId>plexus-resources</artifactId>
-  <version>1.3.1</version>
 </dependency>
 ```
 
@@ -38,6 +37,8 @@
 File file = resourceManager.getResourceAsFile( "checkstyle.xml" );
 ```
 
+Check the badge above for the current version.
+
 `getResourceAsFile` will materialise a temporary file when the resource is not 
already one, so it works for
 classpath and URL resources too.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/plexus-resources-1.4.0/pom.xml 
new/plexus-resources-1.4.1/pom.xml
--- old/plexus-resources-1.4.0/pom.xml  2026-08-19 17:58:12.000000000 +0200
+++ new/plexus-resources-1.4.1/pom.xml  2026-11-06 11:38:18.000000000 +0100
@@ -10,15 +10,15 @@
   </parent>
 
   <artifactId>plexus-resources</artifactId>
-  <version>1.4.0</version>
+  <version>1.4.1</version>
 
   <name>Plexus Resource Component</name>
   <description>A component to transparently retrieve resources from the 
filesystem, classpath or internet.</description>
 
   <scm>
-    
<connection>scm:git:[email protected]:codehaus-plexus/plexus-resources.git</connection>
-    
<developerConnection>scm:git:[email protected]:codehaus-plexus/plexus-resources.git</developerConnection>
-    <tag>plexus-resources-1.4.0</tag>
+    
<connection>scm:git:https://github.com/codehaus-plexus/plexus-resources.git</connection>
+    <developerConnection>${project.scm.connection}</developerConnection>
+    <tag>plexus-resources-1.4.1</tag>
     <url>http://github.com/codehaus-plexus/plexus-resources</url>
   </scm>
   <issueManagement>
@@ -33,7 +33,7 @@
   </distributionManagement>
 
   <properties>
-    
<project.build.outputTimestamp>2026-08-19T15:58:07Z</project.build.outputTimestamp>
+    
<project.build.outputTimestamp>2026-11-06T10:38:12Z</project.build.outputTimestamp>
     <mockito.version>4.11.0</mockito.version>
   </properties>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/plexus-resources-1.4.0/src/main/java/org/codehaus/plexus/resource/loader/JarHolder.java
 
new/plexus-resources-1.4.1/src/main/java/org/codehaus/plexus/resource/loader/JarHolder.java
--- 
old/plexus-resources-1.4.0/src/main/java/org/codehaus/plexus/resource/loader/JarHolder.java
 2026-08-19 17:58:12.000000000 +0200
+++ 
new/plexus-resources-1.4.1/src/main/java/org/codehaus/plexus/resource/loader/JarHolder.java
 2026-11-06 11:38:18.000000000 +0100
@@ -30,8 +30,12 @@
 import java.net.JarURLConnection;
 import java.net.URI;
 import java.net.URL;
+import java.net.URLConnection;
+import java.util.Collections;
 import java.util.Enumeration;
 import java.util.Hashtable;
+import java.util.LinkedHashSet;
+import java.util.Set;
 import java.util.jar.JarEntry;
 import java.util.jar.JarFile;
 
@@ -47,72 +51,63 @@
 public class JarHolder {
     private final String urlpath;
 
-    private JarFile theJar = null;
-
-    private JarURLConnection conn = null;
+    private final Set<String> entries;
 
     public JarHolder(String urlpath) {
         this.urlpath = urlpath;
 
-        try {
-            URL url = new URL(urlpath);
-
-            conn = (JarURLConnection) url.openConnection();
-
-            conn.setAllowUserInteraction(false);
-
-            conn.setDoInput(true);
-
-            conn.setDoOutput(false);
-
-            conn.connect();
+        Set<String> names = Collections.emptySet();
+        // The jar is indexed once and every resource is read from a 
connection of its own, all without the
+        // JVM-wide jar: cache: a cached JarFile is never closed, so the jar 
stays locked on Windows and is read
+        // stale once it is rewritten (JDK-8239054).
+        try (JarFile jar = openJar(new URL(urlpath))) {
+            names = new LinkedHashSet<>();
+            Enumeration<JarEntry> all = jar.entries();
+            while (all.hasMoreElements()) {
+                JarEntry je = all.nextElement();
 
-            theJar = conn.getJarFile();
+                // We don't map plain directory entries
+                if (!je.isDirectory()) {
+                    names.add(je.getName());
+                }
+            }
         } catch (IOException ioe) {
         }
+        this.entries = names;
     }
 
-    public void close() {
-        try {
-            theJar.close();
-        } catch (Exception e) {
-        }
-
-        theJar = null;
+    private static JarFile openJar(URL url) throws IOException {
+        JarURLConnection conn = (JarURLConnection) url.openConnection();
+        conn.setUseCaches(false);
+        return conn.getJarFile();
+    }
 
-        conn = null;
+    private InputStream openEntry(String name) throws IOException {
+        URLConnection conn = new URL(urlpath + name).openConnection();
+        conn.setUseCaches(false);
+        return conn.getInputStream();
     }
 
-    public InputStream getResource(String theentry) throws 
ResourceNotFoundException {
-        InputStream data = null;
+    /**
+     * Kept for compatibility: the jar is no longer held open, so there is 
nothing to close.
+     */
+    public void close() {}
 
+    public InputStream getResource(String theentry) throws 
ResourceNotFoundException {
+        if (!entries.contains(theentry)) {
+            return null;
+        }
         try {
-            JarEntry entry = theJar.getJarEntry(theentry);
-
-            if (entry != null) {
-                data = theJar.getInputStream(entry);
-            }
+            return openEntry(theentry);
         } catch (Exception fnfe) {
             throw new ResourceNotFoundException(fnfe.getMessage());
         }
-
-        return data;
     }
 
     public Hashtable<String, String> getEntries() {
         Hashtable<String, String> allEntries = new Hashtable<>(559);
-
-        if (theJar != null) {
-            Enumeration<JarEntry> all = theJar.entries();
-
-            while (all.hasMoreElements()) {
-                JarEntry je = all.nextElement();
-
-                // We don't map plain directory entries
-                if (!je.isDirectory()) {
-                    allEntries.put(je.getName(), this.urlpath);
-                }
-            }
+        for (String name : entries) {
+            allEntries.put(name, this.urlpath);
         }
         return allEntries;
     }
@@ -122,8 +117,7 @@
     }
 
     public PlexusResource getPlexusResource(final String name) {
-        final JarEntry entry = theJar.getJarEntry(name);
-        if (entry == null) {
+        if (!entries.contains(name)) {
             return null;
         }
         return new PlexusResource() {
@@ -134,12 +128,12 @@
 
             @Override
             public InputStream getInputStream() throws IOException {
-                return theJar.getInputStream(entry);
+                return openEntry(name);
             }
 
             @Override
             public String getName() {
-                return conn.getURL() + name;
+                return urlpath + name;
             }
 
             @Override
@@ -149,7 +143,7 @@
 
             @Override
             public URL getURL() throws IOException {
-                return new URL(conn.getJarFileURL(), name);
+                return new URL(urlpath + name);
             }
         };
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/plexus-resources-1.4.0/src/site/site.xml 
new/plexus-resources-1.4.1/src/site/site.xml
--- old/plexus-resources-1.4.0/src/site/site.xml        2026-08-19 
17:58:12.000000000 +0200
+++ new/plexus-resources-1.4.1/src/site/site.xml        2026-11-06 
11:38:18.000000000 +0100
@@ -25,7 +25,6 @@
     <menu name="Overview">
       <item name="Introduction" href="index.html"/>
       <item name="JavaDocs" href="apidocs/index.html"/>
-      <item name="Source Xref" href="xref/index.html"/>
       <!--item name="FAQ" href="faq.html"/-->
     </menu>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/plexus-resources-1.4.0/src/test/java/org/codehaus/plexus/resource/loader/JarResourceLoaderTest.java
 
new/plexus-resources-1.4.1/src/test/java/org/codehaus/plexus/resource/loader/JarResourceLoaderTest.java
--- 
old/plexus-resources-1.4.0/src/test/java/org/codehaus/plexus/resource/loader/JarResourceLoaderTest.java
     1970-01-01 01:00:00.000000000 +0100
+++ 
new/plexus-resources-1.4.1/src/test/java/org/codehaus/plexus/resource/loader/JarResourceLoaderTest.java
     2026-11-06 11:38:18.000000000 +0100
@@ -0,0 +1,72 @@
+package org.codehaus.plexus.resource.loader;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.jar.JarOutputStream;
+import java.util.zip.ZipEntry;
+
+import org.codehaus.plexus.resource.PlexusResource;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+class JarResourceLoaderTest {
+    @TempDir
+    Path tempDir;
+
+    @Test
+    void readsRewrittenJar() throws Exception {
+        Path jar = tempDir.resolve("resources.jar");
+        writeJar(jar, "first");
+        assertEquals("first", read(jar));
+
+        // Rewritten in place, as a reactor module or a reinstalled artifact 
is.
+        writeJar(jar, "second, and longer than the first");
+        assertEquals("second, and longer than the first", read(jar));
+
+        // The jar is not held open, so it can be deleted (fails on Windows 
while it is).
+        Files.delete(jar);
+    }
+
+    @Test
+    void urlPointsIntoJar() throws Exception {
+        Path jar = tempDir.resolve("resources.jar");
+        writeJar(jar, "content");
+        assertEquals(
+                "jar:" + jar.toUri() + "!/config/rules.txt",
+                resource(jar).getURL().toString());
+    }
+
+    private static PlexusResource resource(Path jar) throws Exception {
+        JarResourceLoader loader = new JarResourceLoader();
+        loader.addSearchPath("jar:" + jar.toUri());
+        return loader.getResource("config/rules.txt");
+    }
+
+    private static String read(Path jar) throws Exception {
+        PlexusResource resource = resource(jar);
+        try (InputStream in = resource.getInputStream()) {
+            ByteArrayOutputStream bytes = new ByteArrayOutputStream();
+            byte[] buffer = new byte[256];
+            for (int n; (n = in.read(buffer)) != -1; ) {
+                bytes.write(buffer, 0, n);
+            }
+            return new String(bytes.toByteArray(), StandardCharsets.UTF_8);
+        }
+    }
+
+    private static void writeJar(Path jar, String content) throws IOException {
+        try (OutputStream out = Files.newOutputStream(jar);
+                JarOutputStream jarOut = new JarOutputStream(out)) {
+            jarOut.putNextEntry(new ZipEntry("config/rules.txt"));
+            jarOut.write(content.getBytes(StandardCharsets.UTF_8));
+            jarOut.closeEntry();
+        }
+    }
+}

++++++ plexus-resources-build.xml ++++++
--- /var/tmp/diff_new_pack.4ygqa9/_old  2026-11-06 20:07:12.921473232 +0100
+++ /var/tmp/diff_new_pack.4ygqa9/_new  2026-11-06 20:07:12.930473609 +0100
@@ -10,7 +10,7 @@
 
   <property name="project.groupId" value="org.codehaus.plexus"/>
   <property name="project.artifactId" value="plexus-resources"/>
-  <property name="project.version" value="1.4.0"/>
+  <property name="project.version" value="1.4.1"/>
 
   <property name="compiler.release" value="8"/>
   <property name="compiler.source" value="1.${compiler.release}"/>

Reply via email to