Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package plexus-io for openSUSE:Factory 
checked in at 2026-03-01 22:14:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/plexus-io (Old)
 and      /work/SRC/openSUSE:Factory/.plexus-io.new.29461 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "plexus-io"

Sun Mar  1 22:14:22 2026 rev:8 rq:1335482 version:3.6.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/plexus-io/plexus-io.changes      2025-10-07 
18:31:55.438470125 +0200
+++ /work/SRC/openSUSE:Factory/.plexus-io.new.29461/plexus-io.changes   
2026-03-01 22:15:02.050479578 +0100
@@ -1,0 +2,26 @@
+Fri Feb 27 14:49:11 UTC 2026 - Fridrich Strba <[email protected]>
+
+- Upgrade to version 3.6.0
+  * Maintenance
+    + JUnit Jupiter best practices
+    + Replace FileUtils.deleteDirectory(File) with JDK provided API
+    + Close DeferredFileOutputStream to prevent
+      FileNotFoundException on temp files
+    + Handle IOException when retrieving file ownership on WSL2
+      network drives
+  * Dependency updates
+    + Bump org.codehaus.plexus:plexus-testing to 2.0.1
+    + Bump org.codehaus.plexus:plexus from 23 to 24
+
+-------------------------------------------------------------------
+Fri Feb 27 14:47:04 UTC 2026 - Fridrich Strba <[email protected]>
+
+- Upgrade to version 3.5.2
+  * Dependency updates
+    + Bump org.codehaus.plexus:plexus from 18 to 23
+    + Bump eclipseSisuVersion from 0.9.0.M3 to 0.9.0.M4
+    + Bump commons-io:commons-io from 2.16.1 to 2.20.0
+    + Bump org.codehaus.plexus:plexus-testing from 1.4.0 to 1.6.0
+    + Cleanup dependencies
+
+-------------------------------------------------------------------

Old:
----
  plexus-io-3.5.1.tar.gz

New:
----
  plexus-io-3.6.0.tar.gz

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

Other differences:
------------------
++++++ plexus-io.spec ++++++
--- /var/tmp/diff_new_pack.r5HRVH/_old  2026-03-01 22:15:02.674505224 +0100
+++ /var/tmp/diff_new_pack.r5HRVH/_new  2026-03-01 22:15:02.678505389 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package plexus-io
 #
-# Copyright (c) 2025 SUSE LLC and contributors
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           plexus-io
-Version:        3.5.1
+Version:        3.6.0
 Release:        0
 Summary:        Plexus IO Components
 License:        Apache-2.0

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.r5HRVH/_old  2026-03-01 22:15:02.746508183 +0100
+++ /var/tmp/diff_new_pack.r5HRVH/_new  2026-03-01 22:15:02.754508513 +0100
@@ -1,6 +1,6 @@
-mtime: 1759841219
-commit: 0ec420ffef94d825f5573029e7ab6bb074e79f35b8e6b34f6c816c0dae5b6b29
+mtime: 1772203931
+commit: 52d5319298584a50506354df15e2700d1c6c3a73133690e4a1d0e4e9f9ede258
 url: https://src.opensuse.org/java-packages/plexus-io.git
-revision: 0ec420ffef94d825f5573029e7ab6bb074e79f35b8e6b34f6c816c0dae5b6b29
+revision: 52d5319298584a50506354df15e2700d1c6c3a73133690e4a1d0e4e9f9ede258
 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-02-27 15:56:19.000000000 +0100
@@ -0,0 +1 @@
+.osc

++++++ plexus-io-3.5.1.tar.gz -> plexus-io-3.6.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/plexus-io-plexus-io-3.5.1/README.md 
new/plexus-io-plexus-io-3.6.0/README.md
--- old/plexus-io-plexus-io-3.5.1/README.md     2024-09-09 14:59:21.000000000 
+0200
+++ new/plexus-io-plexus-io-3.6.0/README.md     2025-11-07 19:10:05.000000000 
+0100
@@ -12,3 +12,5 @@
 ```
 mvn -Preporting verify site-deploy
 ```
+
+Enjoy!
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/plexus-io-plexus-io-3.5.1/pom.xml 
new/plexus-io-plexus-io-3.6.0/pom.xml
--- old/plexus-io-plexus-io-3.5.1/pom.xml       2024-09-09 14:59:21.000000000 
+0200
+++ new/plexus-io-plexus-io-3.6.0/pom.xml       2025-11-07 19:10:05.000000000 
+0100
@@ -5,18 +5,18 @@
   <parent>
     <groupId>org.codehaus.plexus</groupId>
     <artifactId>plexus</artifactId>
-    <version>18</version>
+    <version>24</version>
   </parent>
 
   <artifactId>plexus-io</artifactId>
-  <version>3.5.1</version>
+  <version>3.6.0</version>
 
   <name>Plexus IO Components</name>
 
   <scm>
     
<connection>scm:git:[email protected]:codehaus-plexus/plexus-io.git</connection>
     
<developerConnection>scm:git:[email protected]:codehaus-plexus/plexus-io.git</developerConnection>
-    <tag>plexus-io-3.5.1</tag>
+    <tag>plexus-io-3.6.0</tag>
     <url>http://github.com/codehaus-plexus/plexus-io</url>
   </scm>
   <issueManagement>
@@ -31,27 +31,11 @@
   </distributionManagement>
 
   <properties>
-    <eclipseSisuVersion>0.9.0.M3</eclipseSisuVersion>
     <slf4jVersion>1.7.36</slf4jVersion>
-    
<project.build.outputTimestamp>2024-09-09T12:59:16Z</project.build.outputTimestamp>
+    
<project.build.outputTimestamp>2025-11-07T18:10:00Z</project.build.outputTimestamp>
   </properties>
 
-  <dependencyManagement>
-    <dependencies>
-      <dependency>
-        <groupId>org.eclipse.sisu</groupId>
-        <artifactId>org.eclipse.sisu.inject</artifactId>
-        <version>${eclipseSisuVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.sisu</groupId>
-        <artifactId>org.eclipse.sisu.plexus</artifactId>
-        <version>${eclipseSisuVersion}</version>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
   <dependencies>
-    <!-- JSR330 -->
     <dependency>
       <groupId>javax.inject</groupId>
       <artifactId>javax.inject</artifactId>
@@ -61,13 +45,7 @@
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-utils</artifactId>
-      <version>4.0.1</version>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-xml</artifactId>
-      <version>3.0.1</version>
-      <scope>test</scope>
+      <version>3.6.0</version>
     </dependency>
     <dependency>
       <groupId>com.google.code.findbugs</groupId>
@@ -78,7 +56,7 @@
     <dependency>
       <groupId>commons-io</groupId>
       <artifactId>commons-io</artifactId>
-      <version>2.16.1</version>
+      <version>2.20.0</version>
     </dependency>
 
     <!-- Tests -->
@@ -96,19 +74,14 @@
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-testing</artifactId>
-      <version>1.4.0</version>
+      <version>2.0.1</version>
       <scope>test</scope>
     </dependency>
     <!-- Sisu and dependencies -->
     <dependency>
       <groupId>org.eclipse.sisu</groupId>
       <artifactId>org.eclipse.sisu.inject</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.google.inject</groupId>
-      <artifactId>guice</artifactId>
-      <version>6.0.0</version>
+      <version>0.9.0.M4</version>
       <scope>test</scope>
     </dependency>
   </dependencies>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/plexus-io-plexus-io-3.5.1/src/main/java/org/codehaus/plexus/components/io/attributes/FileAttributes.java
 
new/plexus-io-plexus-io-3.6.0/src/main/java/org/codehaus/plexus/components/io/attributes/FileAttributes.java
--- 
old/plexus-io-plexus-io-3.5.1/src/main/java/org/codehaus/plexus/components/io/attributes/FileAttributes.java
        2024-09-09 14:59:21.000000000 +0200
+++ 
new/plexus-io-plexus-io-3.6.0/src/main/java/org/codehaus/plexus/components/io/attributes/FileAttributes.java
        2025-11-07 19:10:05.000000000 +0100
@@ -160,9 +160,16 @@
         this.lastModifiedTime = (FileTime) attrs.get("lastModifiedTime");
     }
 
-    private static String getPrincipalName(Path path, String attribute) throws 
IOException {
-        Object owner = Files.getAttribute(path, attribute, 
LinkOption.NOFOLLOW_LINKS);
-        return ((Principal) owner).getName();
+    @Nullable
+    private static String getPrincipalName(Path path, String attribute) {
+        try {
+            Object owner = Files.getAttribute(path, attribute, 
LinkOption.NOFOLLOW_LINKS);
+            return ((Principal) owner).getName();
+        } catch (IOException e) {
+            // Some file systems (e.g., WSL2 mapped network drives) don't 
provide ownership information
+            // Return null instead of propagating the exception
+            return null;
+        }
     }
 
     public FileAttributes(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/plexus-io-plexus-io-3.5.1/src/main/java/org/codehaus/plexus/components/io/resources/Deferred.java
 
new/plexus-io-plexus-io-3.6.0/src/main/java/org/codehaus/plexus/components/io/resources/Deferred.java
--- 
old/plexus-io-plexus-io-3.5.1/src/main/java/org/codehaus/plexus/components/io/resources/Deferred.java
       2024-09-09 14:59:21.000000000 +0200
+++ 
new/plexus-io-plexus-io-3.6.0/src/main/java/org/codehaus/plexus/components/io/resources/Deferred.java
       2025-11-07 19:10:05.000000000 +0100
@@ -47,9 +47,10 @@
                         .get()
                 : null;
         if (dfos != null) {
-            InputStream inputStream = owner.getInputStream(resource);
-            IOUtils.copy(inputStream, dfos);
-            IOUtils.closeQuietly(inputStream);
+            try (InputStream inputStream = owner.getInputStream(resource);
+                    DeferredFileOutputStream closeable = dfos) {
+                IOUtils.copy(inputStream, dfos);
+            }
         }
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/plexus-io-plexus-io-3.5.1/src/main/java/org/codehaus/plexus/components/io/resources/PlexusIoFileResource.java
 
new/plexus-io-plexus-io-3.6.0/src/main/java/org/codehaus/plexus/components/io/resources/PlexusIoFileResource.java
--- 
old/plexus-io-plexus-io-3.5.1/src/main/java/org/codehaus/plexus/components/io/resources/PlexusIoFileResource.java
   2024-09-09 14:59:21.000000000 +0200
+++ 
new/plexus-io-plexus-io-3.6.0/src/main/java/org/codehaus/plexus/components/io/resources/PlexusIoFileResource.java
   2025-11-07 19:10:05.000000000 +0100
@@ -108,11 +108,11 @@
                 .setThreshold(5000000)
                 .setPrefix("p-archiver")
                 .get();
-        InputStream inputStream = supplier.getContents();
-        InputStream transformed = transToUse.transform(resource, inputStream);
-        IOUtils.copy(transformed, dfos);
-        IOUtils.closeQuietly(inputStream);
-        IOUtils.closeQuietly(transformed);
+        try (InputStream inputStream = supplier.getContents();
+                InputStream transformed = transToUse.transform(resource, 
inputStream);
+                DeferredFileOutputStream closeable = dfos) {
+            IOUtils.copy(transformed, dfos);
+        }
         return dfos;
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/plexus-io-plexus-io-3.5.1/src/site/site.xml 
new/plexus-io-plexus-io-3.6.0/src/site/site.xml
--- old/plexus-io-plexus-io-3.5.1/src/site/site.xml     2024-09-09 
14:59:21.000000000 +0200
+++ new/plexus-io-plexus-io-3.6.0/src/site/site.xml     2025-11-07 
19:10:05.000000000 +0100
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<project xmlns="http://maven.apache.org/DECORATION/1.0.0";
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-  xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 
http://maven.apache.org/xsd/decoration-1.0.0.xsd";>
+<site xmlns="http://maven.apache.org/SITE/2.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+      xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 
https://maven.apache.org/xsd/site-2.0.0.xsd";>
+
   <body>
     <menu name="Overview">
       <item name="Introduction" href="index.html"/>
@@ -16,4 +16,4 @@
     <menu ref="parent"/>
     <menu ref="reports"/>
   </body>
-</project>
+</site>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/plexus-io-plexus-io-3.5.1/src/test/java/org/codehaus/plexus/components/io/attributes/AbstractResourceAttributesTCK.java
 
new/plexus-io-plexus-io-3.6.0/src/test/java/org/codehaus/plexus/components/io/attributes/AbstractResourceAttributesTCK.java
--- 
old/plexus-io-plexus-io-3.5.1/src/test/java/org/codehaus/plexus/components/io/attributes/AbstractResourceAttributesTCK.java
 2024-09-09 14:59:21.000000000 +0200
+++ 
new/plexus-io-plexus-io-3.6.0/src/test/java/org/codehaus/plexus/components/io/attributes/AbstractResourceAttributesTCK.java
 2025-11-07 19:10:05.000000000 +0100
@@ -29,7 +29,7 @@
     protected abstract PlexusIoResourceAttributes newAttributes(String mode);
 
     @Test
-    final void testSetOctalModeString_OwnerModes() {
+    final void setOctalModeStringOwnerModes() {
         verifyStringOctalModeSet("700", new boolean[] {true, true, true, 
false, false, false, false, false, false});
         verifyStringOctalModeSet("600", new boolean[] {true, true, false, 
false, false, false, false, false, false});
         verifyStringOctalModeSet("400", new boolean[] {true, false, false, 
false, false, false, false, false, false});
@@ -37,7 +37,7 @@
     }
 
     @Test
-    final void testSetOctalModeString_GroupModes() {
+    final void setOctalModeStringGroupModes() {
         verifyStringOctalModeSet("070", new boolean[] {false, false, false, 
true, true, true, false, false, false});
         verifyStringOctalModeSet("060", new boolean[] {false, false, false, 
true, true, false, false, false, false});
         verifyStringOctalModeSet("040", new boolean[] {false, false, false, 
true, false, false, false, false, false});
@@ -45,7 +45,7 @@
     }
 
     @Test
-    final void testSetOctalModeString_WorldModes() {
+    final void setOctalModeStringWorldModes() {
         verifyStringOctalModeSet("007", new boolean[] {false, false, false, 
false, false, false, true, true, true});
         verifyStringOctalModeSet("006", new boolean[] {false, false, false, 
false, false, false, true, true, false});
         verifyStringOctalModeSet("004", new boolean[] {false, false, false, 
false, false, false, true, false, false});
@@ -53,7 +53,7 @@
     }
 
     @Test
-    final void testSetOctalMode_OwnerModes() {
+    final void setOctalModeOwnerModes() {
         verifyOctalModeSet("700", new boolean[] {true, true, true, false, 
false, false, false, false, false});
         verifyOctalModeSet("600", new boolean[] {true, true, false, false, 
false, false, false, false, false});
         verifyOctalModeSet("400", new boolean[] {true, false, false, false, 
false, false, false, false, false});
@@ -61,7 +61,7 @@
     }
 
     @Test
-    final void testSetOctalMode_GroupModes() {
+    final void setOctalModeGroupModes() {
         verifyOctalModeSet("070", new boolean[] {false, false, false, true, 
true, true, false, false, false});
         verifyOctalModeSet("060", new boolean[] {false, false, false, true, 
true, false, false, false, false});
         verifyOctalModeSet("040", new boolean[] {false, false, false, true, 
false, false, false, false, false});
@@ -69,7 +69,7 @@
     }
 
     @Test
-    final void testSetOctalMode_WorldModes() {
+    final void setOctalModeWorldModes() {
         verifyOctalModeSet("007", new boolean[] {false, false, false, false, 
false, false, true, true, true});
         verifyOctalModeSet("006", new boolean[] {false, false, false, false, 
false, false, true, true, false});
         verifyOctalModeSet("004", new boolean[] {false, false, false, false, 
false, false, true, false, false});
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/plexus-io-plexus-io-3.5.1/src/test/java/org/codehaus/plexus/components/io/attributes/AttributeUtilsTest.java
 
new/plexus-io-plexus-io-3.6.0/src/test/java/org/codehaus/plexus/components/io/attributes/AttributeUtilsTest.java
--- 
old/plexus-io-plexus-io-3.5.1/src/test/java/org/codehaus/plexus/components/io/attributes/AttributeUtilsTest.java
    2024-09-09 14:59:21.000000000 +0200
+++ 
new/plexus-io-plexus-io-3.6.0/src/test/java/org/codehaus/plexus/components/io/attributes/AttributeUtilsTest.java
    2025-11-07 19:10:05.000000000 +0100
@@ -1,7 +1,6 @@
 package org.codehaus.plexus.components.io.attributes;
 
 import java.io.File;
-import java.io.IOException;
 import java.nio.file.attribute.PosixFilePermission;
 import java.util.Set;
 
@@ -17,9 +16,9 @@
  * @author Kristian Rosenvold
  */
 @SuppressWarnings("OctalInteger")
-public class AttributeUtilsTest {
+class AttributeUtilsTest {
     @Test
-    void testMiscPatterns() {
+    void miscPatterns() {
         final Set<PosixFilePermission> permissions = 
AttributeUtils.getPermissions(0124);
         assertTrue(permissions.contains(PosixFilePermission.OWNER_EXECUTE));
         assertTrue(permissions.contains(PosixFilePermission.GROUP_WRITE));
@@ -27,7 +26,7 @@
     }
 
     @Test
-    void testMorePatterns() {
+    void morePatterns() {
         final Set<PosixFilePermission> permissions = 
AttributeUtils.getPermissions(0241);
         assertTrue(permissions.contains(PosixFilePermission.OWNER_WRITE));
         assertTrue(permissions.contains(PosixFilePermission.GROUP_READ));
@@ -35,7 +34,7 @@
     }
 
     @Test
-    void testEvenMorePatterns() {
+    void evenMorePatterns() {
         final Set<PosixFilePermission> permissions = 
AttributeUtils.getPermissions(0412);
         assertTrue(permissions.contains(PosixFilePermission.OWNER_READ));
         assertTrue(permissions.contains(PosixFilePermission.GROUP_EXECUTE));
@@ -50,7 +49,7 @@
 
     @Test
     @DisabledOnOs(OS.WINDOWS)
-    void testChmodBackAndForth() throws IOException {
+    void chmodBackAndForth() throws Exception {
         final File bxx = File.createTempFile("bxx", "ff");
         AttributeUtils.chmod(bxx, 0422);
         PlexusIoResourceAttributes firstAttrs = new FileAttributes(bxx);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/plexus-io-plexus-io-3.5.1/src/test/java/org/codehaus/plexus/components/io/attributes/FileAttributesTest.java
 
new/plexus-io-plexus-io-3.6.0/src/test/java/org/codehaus/plexus/components/io/attributes/FileAttributesTest.java
--- 
old/plexus-io-plexus-io-3.5.1/src/test/java/org/codehaus/plexus/components/io/attributes/FileAttributesTest.java
    2024-09-09 14:59:21.000000000 +0200
+++ 
new/plexus-io-plexus-io-3.6.0/src/test/java/org/codehaus/plexus/components/io/attributes/FileAttributesTest.java
    2025-11-07 19:10:05.000000000 +0100
@@ -17,6 +17,7 @@
  */
 
 import java.io.File;
+import java.nio.file.Files;
 
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.condition.DisabledOnOs;
@@ -27,12 +28,28 @@
 /**
  * @author Kristian Rosenvold
  */
-public class FileAttributesTest {
+class FileAttributesTest {
     @Test
     @DisabledOnOs(OS.WINDOWS)
-    void testGetPosixFileAttributes() throws Exception {
+    void getPosixFileAttributes() throws Exception {
         File file = new File(".");
         PlexusIoResourceAttributes fa = new FileAttributes(file);
         assertNotNull(fa);
     }
+
+    @Test
+    void fileAttributesHandlesIOException() throws Exception {
+        // Test that FileAttributes can be constructed for a regular file
+        // even if ownership information is not available (e.g., WSL2 mapped 
network drives)
+        File tempFile = Files.createTempFile("plexus-io-test", 
".tmp").toFile();
+        try {
+            // This should not throw even if ownership info is unavailable
+            PlexusIoResourceAttributes fa = new FileAttributes(tempFile);
+            assertNotNull(fa);
+            // The attributes object should be usable even if 
userName/groupName are null
+            assertNotNull(fa.toString());
+        } finally {
+            tempFile.delete();
+        }
+    }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/plexus-io-plexus-io-3.5.1/src/test/java/org/codehaus/plexus/components/io/attributes/PlexusIoResourceAttributeUtilsTest.java
 
new/plexus-io-plexus-io-3.6.0/src/test/java/org/codehaus/plexus/components/io/attributes/PlexusIoResourceAttributeUtilsTest.java
--- 
old/plexus-io-plexus-io-3.5.1/src/test/java/org/codehaus/plexus/components/io/attributes/PlexusIoResourceAttributeUtilsTest.java
    2024-09-09 14:59:21.000000000 +0200
+++ 
new/plexus-io-plexus-io-3.6.0/src/test/java/org/codehaus/plexus/components/io/attributes/PlexusIoResourceAttributeUtilsTest.java
    2025-11-07 19:10:05.000000000 +0100
@@ -17,13 +17,11 @@
  */
 
 import java.io.File;
-import java.io.IOException;
 import java.net.URL;
 import java.nio.file.NoSuchFileException;
 import java.util.Map;
 
 import org.codehaus.plexus.util.StringUtils;
-import org.codehaus.plexus.util.cli.CommandLineException;
 import org.codehaus.plexus.util.cli.CommandLineUtils;
 import org.codehaus.plexus.util.cli.Commandline;
 import org.junit.jupiter.api.Test;
@@ -34,11 +32,11 @@
 import static org.junit.jupiter.api.Assertions.*;
 
 @SuppressWarnings("OctalInteger")
-public class PlexusIoResourceAttributeUtilsTest {
+class PlexusIoResourceAttributeUtilsTest {
 
     @Test
     @DisabledOnOs(OS.WINDOWS)
-    void testGetAttributesForThisTestClass() throws IOException {
+    void getAttributesForThisTestClass() throws Exception {
         URL resource = Thread.currentThread()
                 .getContextClassLoader()
                 .getResource(getClass().getName().replace('.', '/') + 
".class");
@@ -62,7 +60,7 @@
 
     @Test
     @DisabledOnOs(OS.WINDOWS)
-    void testDirectory() throws IOException, CommandLineException {
+    void directory() throws Exception {
         URL resource = Thread.currentThread()
                 .getContextClassLoader()
                 .getResource(getClass().getName().replace('.', '/') + 
".class");
@@ -100,7 +98,7 @@
 
     @Test
     @DisabledOnOs(OS.WINDOWS)
-    void testSrcResource() throws IOException {
+    void srcResource() throws Exception {
         File dir = new File("src/test/resources/symlinks");
         final Map<String, PlexusIoResourceAttributes> 
fileAttributesByPathScreenScrape =
                 PlexusIoResourceAttributeUtils.getFileAttributesByPath(dir, 
true);
@@ -115,15 +113,14 @@
     }
 
     @Test
-    void testNonExistingDirectory() {
-        assertThrows(NoSuchFileException.class, () -> {
-            File dir = new File("src/test/noSuchDirectory");
-            PlexusIoResourceAttributeUtils.getFileAttributesByPath(dir, true);
-        });
+    void nonExistingDirectory() {
+        File dir = new File("src/test/noSuchDirectory");
+        assertThrows(
+                NoSuchFileException.class, () -> 
PlexusIoResourceAttributeUtils.getFileAttributesByPath(dir, true));
     }
 
     @Test
-    void testMergeAttributesWithNullBase() {
+    void mergeAttributesWithNullBase() {
         PlexusIoResourceAttributes override = new 
SimpleResourceAttributes(1001, "myUser", 1001, "test", 0);
         PlexusIoResourceAttributes defaults = new 
SimpleResourceAttributes(1000, "defaultUser", 1000, "defaultTest", 0);
 
@@ -135,7 +132,7 @@
     }
 
     @Test
-    void testMergeAttributesWithNullOverrideGroup() {
+    void mergeAttributesWithNullOverrideGroup() {
         final PlexusIoResourceAttributes override = new 
SimpleResourceAttributes(1001, "myUser", -1, null, 0);
         final PlexusIoResourceAttributes defaults =
                 new SimpleResourceAttributes(1000, "defaultUser", 1000, 
"defaultGroup", 0);
@@ -148,7 +145,7 @@
     }
 
     @Test
-    void testMergeAttributesOverride() {
+    void mergeAttributesOverride() {
         final PlexusIoResourceAttributes blank = new 
SimpleResourceAttributes();
         final PlexusIoResourceAttributes invalid = new 
SimpleResourceAttributes(-1, null, -1, null, -1);
         final PlexusIoResourceAttributes override =
@@ -250,7 +247,7 @@
     }
 
     @Test
-    void testFileAttributesGeneric() throws IOException {
+    void fileAttributesGeneric() throws Exception {
         PlexusIoResourceAttributes attrs = getFileAttributes(new 
File("src/test/resources/symlinks/src/fileW.txt"));
         assertFalse(attrs.isSymbolicLink());
         assertTrue(StringUtils.isNotEmpty(attrs.getUserName()));
@@ -258,7 +255,7 @@
 
     @Test
     @DisabledOnOs(OS.WINDOWS)
-    void testFileAttributes() throws IOException {
+    void fileAttributes() throws Exception {
         PlexusIoResourceAttributes attrs = getFileAttributes(new 
File("src/test/resources/symlinks/src/fileW.txt"));
         assertFalse(attrs.isSymbolicLink());
         assertTrue(StringUtils.isNotEmpty(attrs.getUserName()));
@@ -268,7 +265,7 @@
     }
 
     @Test
-    void testMergeAttributesDefault() {
+    void mergeAttributesDefault() {
         final PlexusIoResourceAttributes blank = new 
SimpleResourceAttributes(null, null, null, null, 0);
         final PlexusIoResourceAttributes invalid = new 
SimpleResourceAttributes(-1, null, -1, null, -1);
         final PlexusIoResourceAttributes defaults =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/plexus-io-plexus-io-3.5.1/src/test/java/org/codehaus/plexus/components/io/attributes/SymlinkUtilsTest.java
 
new/plexus-io-plexus-io-3.6.0/src/test/java/org/codehaus/plexus/components/io/attributes/SymlinkUtilsTest.java
--- 
old/plexus-io-plexus-io-3.5.1/src/test/java/org/codehaus/plexus/components/io/attributes/SymlinkUtilsTest.java
      2024-09-09 14:59:21.000000000 +0200
+++ 
new/plexus-io-plexus-io-3.6.0/src/test/java/org/codehaus/plexus/components/io/attributes/SymlinkUtilsTest.java
      2025-11-07 19:10:05.000000000 +0100
@@ -25,15 +25,15 @@
 import org.junit.jupiter.api.Test;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
-public class SymlinkUtilsTest {
+class SymlinkUtilsTest {
     final File target = new File("target/symlinkCapabilities");
 
     final String expected = "This is a filed that we'll be symlinking to\n";
 
     @BeforeEach
-    public void setup() throws IOException {
+    void setup() throws IOException {
         FileUtils.deleteDirectory(target);
         Files.createDirectories(target.toPath());
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/plexus-io-plexus-io-3.5.1/src/test/java/org/codehaus/plexus/components/io/filemappers/FileMapperTest.java
 
new/plexus-io-plexus-io-3.6.0/src/test/java/org/codehaus/plexus/components/io/filemappers/FileMapperTest.java
--- 
old/plexus-io-plexus-io-3.5.1/src/test/java/org/codehaus/plexus/components/io/filemappers/FileMapperTest.java
       2024-09-09 14:59:21.000000000 +0200
+++ 
new/plexus-io-plexus-io-3.6.0/src/test/java/org/codehaus/plexus/components/io/filemappers/FileMapperTest.java
       2025-11-07 19:10:05.000000000 +0100
@@ -31,7 +31,7 @@
  * Test case for the various file mappers.
  */
 @PlexusTest
-public class FileMapperTest {
+class FileMapperTest {
     @Inject
     PlexusContainer container;
 
@@ -85,7 +85,7 @@
     };
 
     @Test
-    void testIdentityMapper() throws Exception {
+    void identityMapper() throws Exception {
         final String[] results = getIdentityResults();
         testFileMapper(new IdentityMapper(), SAMPLES, results);
     }
@@ -98,7 +98,7 @@
     }
 
     @Test
-    void testDefaultMapper() throws Exception {
+    void defaultMapper() throws Exception {
         final String[] results = getIdentityResults();
         testFileMapper(container.lookup(FileMapper.class), SAMPLES, results);
         testFileMapper(container.lookup(FileMapper.class, 
IdentityMapper.ROLE_HINT), SAMPLES, results);
@@ -106,7 +106,7 @@
     }
 
     @Test
-    void testFileExtensionMapper() throws Exception {
+    void fileExtensionMapper() throws Exception {
         final String[] results = getIdentityResults();
         for (int i = 2; i <= 10; i += 2) {
             results[i] += ".png";
@@ -127,7 +127,7 @@
     }
 
     @Test
-    void testFlattenMapper() throws Exception {
+    void flattenMapper() throws Exception {
         final String[] results = getIdentityResults();
         results[4] = results[6] = results[8] = results[10] = results[2];
         results[5] = results[7] = results[9] = results[11] = results[3];
@@ -141,7 +141,7 @@
     }
 
     @Test
-    void testMergeMapper() throws Exception {
+    void mergeMapper() throws Exception {
         final String[] results = getIdentityResults();
         final String targetName = "zgh";
         for (int i = 2; i < results.length; i++) {
@@ -153,7 +153,7 @@
     }
 
     @Test
-    void testPrefixMapper() throws Exception {
+    void prefixMapper() throws Exception {
         final String prefix = "x7Rtf";
         final String[] results = getIdentityResults();
         testFileMapper(new PrefixFileMapper(), SAMPLES, results);
@@ -172,7 +172,7 @@
     }
 
     @Test
-    void testSuffixMapper() throws Exception {
+    void suffixMapper() throws Exception {
         final String suffix = "suffix";
         String[] samples = Arrays.copyOf(SAMPLES, SAMPLES.length + 2);
         samples[samples.length - 2] = "archive.tar.gz";
@@ -208,7 +208,7 @@
     }
 
     @Test
-    void testRegExpFileMapper() throws Exception {
+    void regExpFileMapper() throws Exception {
         final String[] results = getIdentityResults();
         results[3] = "xyz.jpg";
         results[5] = "b/xyz.jpg";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/plexus-io-plexus-io-3.5.1/src/test/java/org/codehaus/plexus/components/io/filemappers/FileSelectorTest.java
 
new/plexus-io-plexus-io-3.6.0/src/test/java/org/codehaus/plexus/components/io/filemappers/FileSelectorTest.java
--- 
old/plexus-io-plexus-io-3.5.1/src/test/java/org/codehaus/plexus/components/io/filemappers/FileSelectorTest.java
     2024-09-09 14:59:21.000000000 +0200
+++ 
new/plexus-io-plexus-io-3.6.0/src/test/java/org/codehaus/plexus/components/io/filemappers/FileSelectorTest.java
     2025-11-07 19:10:05.000000000 +0100
@@ -39,7 +39,7 @@
  * Test case for implementations of {@link FileSelector}.
  */
 @PlexusTest
-public class FileSelectorTest {
+class FileSelectorTest {
 
     @Inject
     PlexusContainer container;
@@ -80,7 +80,7 @@
     }
 
     @Test
-    void testAllFilesFileSelector() throws Exception {
+    void allFilesFileSelector() throws Exception {
         testFileSelector(new AllFilesFileSelector());
         testFileSelector((AllFilesFileSelector) 
container.lookup(FileSelector.class));
         testFileSelector((AllFilesFileSelector) 
container.lookup(FileSelector.class, AllFilesFileSelector.ROLE_HINT));
@@ -114,14 +114,14 @@
     }
 
     @Test
-    void testIncludeExcludeFileSelector() throws Exception {
+    void includeExcludeFileSelector() throws Exception {
         testFileSelector(new IncludeExcludeFileSelector());
         testFileSelector((IncludeExcludeFileSelector)
                 container.lookup(FileSelector.class, 
IncludeExcludeFileSelector.ROLE_HINT));
     }
 
     @Test
-    void testIncludeExcludeFileSelector_SetExcludes() {
+    void includeExcludeFileSelectorSetExcludes() {
         IncludeExcludeFileSelector selector = new IncludeExcludeFileSelector();
 
         // Test that the setExcludes method does not modify the excludes.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/plexus-io-plexus-io-3.5.1/src/test/java/org/codehaus/plexus/components/io/filemappers/ResourcesTest.java
 
new/plexus-io-plexus-io-3.6.0/src/test/java/org/codehaus/plexus/components/io/filemappers/ResourcesTest.java
--- 
old/plexus-io-plexus-io-3.5.1/src/test/java/org/codehaus/plexus/components/io/filemappers/ResourcesTest.java
        2024-09-09 14:59:21.000000000 +0200
+++ 
new/plexus-io-plexus-io-3.6.0/src/test/java/org/codehaus/plexus/components/io/filemappers/ResourcesTest.java
        2025-11-07 19:10:05.000000000 +0100
@@ -46,7 +46,7 @@
  * Test case for resource collections.
  */
 @PlexusTest
-public class ResourcesTest {
+class ResourcesTest {
 
     @Inject
     PlexusContainer container;
@@ -67,7 +67,7 @@
 
     private void createFiles() throws IOException {
         final File baseDir = getFilesDir();
-        FileUtils.deleteDirectory(baseDir);
+        org.apache.commons.io.FileUtils.deleteDirectory(baseDir);
         FileUtils.mkdir(baseDir.getPath());
         final File aFile = new File(baseDir, A_PATH);
         FileUtils.mkdir(aFile.getParentFile().getPath());
@@ -132,11 +132,11 @@
     }
 
     private void compare(PlexusIoResource res, File file) throws IOException {
-        assertTrue(res.getLastModified() != 
PlexusIoResource.UNKNOWN_MODIFICATION_DATE);
+        assertNotSame(res.getLastModified(), 
PlexusIoResource.UNKNOWN_MODIFICATION_DATE);
         if (res instanceof PlexusIoFileResource) {
             assertEquals(res.getLastModified() / 1000, file.lastModified() / 
1000);
         }
-        assertTrue(res.getSize() != PlexusIoResource.UNKNOWN_RESOURCE_SIZE);
+        assertNotSame(res.getSize(), PlexusIoResource.UNKNOWN_RESOURCE_SIZE);
         assertEquals(res.getSize(), file.length());
         InputStream in = res.getContents();
         compare(in, file);
@@ -200,7 +200,7 @@
     }
 
     @Test
-    void testFileCollection() throws Exception {
+    void fileCollection() throws Exception {
         createFiles();
         testFileResourceCollection((PlexusIoFileResourceCollection) 
container.lookup(PlexusIoResourceCollection.class));
         testFileResourceCollection((PlexusIoFileResourceCollection)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/plexus-io-plexus-io-3.5.1/src/test/java/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResourceCollectionTest.java
 
new/plexus-io-plexus-io-3.6.0/src/test/java/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResourceCollectionTest.java
--- 
old/plexus-io-plexus-io-3.5.1/src/test/java/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResourceCollectionTest.java
 2024-09-09 14:59:21.000000000 +0200
+++ 
new/plexus-io-plexus-io-3.6.0/src/test/java/org/codehaus/plexus/components/io/resources/AbstractPlexusIoResourceCollectionTest.java
 2025-11-07 19:10:05.000000000 +0100
@@ -17,10 +17,10 @@
 /**
  * @author Kristian Rosenvold
  */
-public class AbstractPlexusIoResourceCollectionTest {
+class AbstractPlexusIoResourceCollectionTest {
     @SuppressWarnings("ResultOfMethodCallIgnored")
     @Test
-    void testGetIncludes() throws Exception {
+    void getIncludes() throws Exception {
         AbstractPlexusIoResourceCollection sut = new 
AbstractPlexusIoResourceCollection() {
             public Iterator<PlexusIoResource> getResources() {
                 return Arrays.asList(getResource("r1"), 
getResource("r2")).iterator();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/plexus-io-plexus-io-3.5.1/src/test/java/org/codehaus/plexus/components/io/resources/PlexusIoFileResourceDeferredTest.java
 
new/plexus-io-plexus-io-3.6.0/src/test/java/org/codehaus/plexus/components/io/resources/PlexusIoFileResourceDeferredTest.java
--- 
old/plexus-io-plexus-io-3.5.1/src/test/java/org/codehaus/plexus/components/io/resources/PlexusIoFileResourceDeferredTest.java
       1970-01-01 01:00:00.000000000 +0100
+++ 
new/plexus-io-plexus-io-3.6.0/src/test/java/org/codehaus/plexus/components/io/resources/PlexusIoFileResourceDeferredTest.java
       2025-11-07 19:10:05.000000000 +0100
@@ -0,0 +1,115 @@
+package org.codehaus.plexus.components.io.resources;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+
+import org.apache.commons.io.IOUtils;
+import org.codehaus.plexus.components.io.attributes.FileAttributes;
+import org.codehaus.plexus.components.io.functions.InputStreamTransformer;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+/**
+ * Tests for PlexusIoFileResource with DeferredFileOutputStream scenarios.
+ * This specifically tests the fix for issue #118 where temp files were deleted
+ * before they could be accessed, causing FileNotFoundException.
+ */
+class PlexusIoFileResourceDeferredTest {
+
+    @TempDir
+    File tempDir;
+
+    @Test
+    void fileResourceWithTransformerCanReadContentsMultipleTimes() throws 
Exception {
+        // Create a test file with content larger than typical buffer size
+        File testFile = new File(tempDir, "test-file.txt");
+        byte[] largeContent = new byte[10000]; // 10KB
+        for (int i = 0; i < largeContent.length; i++) {
+            largeContent[i] = (byte) ('A' + (i % 26));
+        }
+        Files.write(testFile.toPath(), largeContent);
+
+        // Create a transformer that modifies the content
+        InputStreamTransformer transformer = (resource, inputStream) -> {
+            // Simple transformer that reads and returns the same content
+            return inputStream;
+        };
+
+        // Create PlexusIoFileResource with transformer
+        PlexusIoFileResource resource =
+                new PlexusIoFileResource(testFile, testFile.getName(), new 
FileAttributes(testFile), null, transformer);
+
+        // First read - this should work and not delete the temp file
+        try (InputStream is1 = resource.getContents()) {
+            byte[] read1 = IOUtils.toByteArray(is1);
+            assertEquals(largeContent.length, read1.length);
+        }
+
+        // Second read - this should also work if the temp file wasn't 
prematurely deleted
+        // This is the key test - without the fix, this would throw 
FileNotFoundException
+        try (InputStream is2 = resource.getContents()) {
+            byte[] read2 = IOUtils.toByteArray(is2);
+            assertEquals(largeContent.length, read2.length);
+        }
+    }
+
+    @Test
+    void fileResourceWithTransformerLargeFile() throws Exception {
+        // Create a large file that exceeds the DeferredFileOutputStream 
threshold (5MB)
+        File testFile = new File(tempDir, "large-test-file.bin");
+        byte[] chunk = new byte[1024 * 1024]; // 1MB chunks
+        for (int i = 0; i < chunk.length; i++) {
+            chunk[i] = (byte) i;
+        }
+
+        // Write 6MB to exceed the 5MB threshold
+        try (OutputStream os = Files.newOutputStream(testFile.toPath())) {
+            for (int i = 0; i < 6; i++) {
+                os.write(chunk);
+            }
+        }
+
+        InputStreamTransformer transformer = (resource, inputStream) -> 
inputStream;
+
+        PlexusIoFileResource resource =
+                new PlexusIoFileResource(testFile, testFile.getName(), new 
FileAttributes(testFile), null, transformer);
+
+        // Verify we can read the content - this tests that the temp file
+        // created by DeferredFileOutputStream is properly accessible
+        long size = resource.getSize();
+        assertTrue(size > 5_000_000, "File should be larger than 5MB 
threshold");
+
+        try (InputStream is = resource.getContents()) {
+            assertNotNull(is);
+            byte[] firstBytes = new byte[1024];
+            int read = is.read(firstBytes);
+            assertEquals(1024, read);
+        }
+    }
+
+    @Test
+    void fileResourceWithTransformerSmallFile() throws Exception {
+        // Test with a small file that stays in memory (below 5MB threshold)
+        File testFile = new File(tempDir, "small-test-file.txt");
+        String content = "Hello, World!";
+        Files.write(testFile.toPath(), 
content.getBytes(StandardCharsets.UTF_8));
+
+        InputStreamTransformer transformer = (resource, inputStream) -> 
inputStream;
+
+        PlexusIoFileResource resource =
+                new PlexusIoFileResource(testFile, testFile.getName(), new 
FileAttributes(testFile), null, transformer);
+
+        // Multiple reads should work for small files too
+        for (int i = 0; i < 3; i++) {
+            try (InputStream is = resource.getContents()) {
+                String readContent = IOUtils.toString(is, 
StandardCharsets.UTF_8);
+                assertEquals(content, readContent);
+            }
+        }
+    }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/plexus-io-plexus-io-3.5.1/src/test/java/org/codehaus/plexus/components/io/resources/PlexusIoFileSupplierResourceCollectionTest.java
 
new/plexus-io-plexus-io-3.6.0/src/test/java/org/codehaus/plexus/components/io/resources/PlexusIoFileSupplierResourceCollectionTest.java
--- 
old/plexus-io-plexus-io-3.5.1/src/test/java/org/codehaus/plexus/components/io/resources/PlexusIoFileSupplierResourceCollectionTest.java
     2024-09-09 14:59:21.000000000 +0200
+++ 
new/plexus-io-plexus-io-3.6.0/src/test/java/org/codehaus/plexus/components/io/resources/PlexusIoFileSupplierResourceCollectionTest.java
     2025-11-07 19:10:05.000000000 +0100
@@ -10,9 +10,9 @@
 /**
  * @author Kristian Rosenvold
  */
-public class PlexusIoFileSupplierResourceCollectionTest {
+class PlexusIoFileSupplierResourceCollectionTest {
     @Test
-    void testGetName() throws Exception {
+    void getName() throws Exception {
         PlexusIoFileResourceCollection coll = new 
PlexusIoFileResourceCollection();
         char nonSeparator = File.separatorChar == '/' ? '\\' : '/';
         coll.setPrefix("fud" + nonSeparator);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/plexus-io-plexus-io-3.5.1/src/test/java/org/codehaus/plexus/components/io/resources/PlexusIoPlexusIoFileResourceTest.java
 
new/plexus-io-plexus-io-3.6.0/src/test/java/org/codehaus/plexus/components/io/resources/PlexusIoPlexusIoFileResourceTest.java
--- 
old/plexus-io-plexus-io-3.5.1/src/test/java/org/codehaus/plexus/components/io/resources/PlexusIoPlexusIoFileResourceTest.java
       2024-09-09 14:59:21.000000000 +0200
+++ 
new/plexus-io-plexus-io-3.6.0/src/test/java/org/codehaus/plexus/components/io/resources/PlexusIoPlexusIoFileResourceTest.java
       2025-11-07 19:10:05.000000000 +0100
@@ -1,7 +1,6 @@
 package org.codehaus.plexus.components.io.resources;
 
 import java.io.File;
-import java.io.IOException;
 
 import org.codehaus.plexus.components.io.attributes.FileAttributes;
 import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes;
@@ -13,11 +12,11 @@
 
 import static org.junit.jupiter.api.Assertions.*;
 
-public class PlexusIoPlexusIoFileResourceTest {
+class PlexusIoPlexusIoFileResourceTest {
 
     @Test
     @DisabledOnOs(OS.WINDOWS)
-    void testRealSymlink() throws IOException {
+    void realSymlink() throws Exception {
         final File file = new File("src/test/resources/symlinks/src/symDir");
         PlexusIoResourceAttributes attrs = FileAttributes.uncached(file);
         assertTrue(attrs.isSymbolicLink());
@@ -26,13 +25,13 @@
         assertTrue(r.isDirectory());
         final File target = SymlinkUtils.readSymbolicLink(file);
         assertTrue(target.getName().endsWith("targetDir"));
-        assertTrue(r instanceof SymlinkDestinationSupplier);
+        assertInstanceOf(SymlinkDestinationSupplier.class, r);
         assertEquals("targetDir/", ((SymlinkDestinationSupplier) 
r).getSymlinkDestination());
     }
 
     @Test
     @DisabledOnOs(OS.WINDOWS)
-    void testSymSymlinkFile() throws IOException {
+    void symSymlinkFile() throws Exception {
         final File file = new File("src/test/resources/symlinks/src/symSymR");
         PlexusIoResource r = ResourceFactory.createResource(file);
         assertTrue(r.isSymbolicLink());
@@ -40,14 +39,14 @@
         PlexusIoResource rL = ((PlexusIoSymlinkResource) r).getLink();
         assertFalse(rL instanceof PlexusIoSymlinkResource);
         PlexusIoResource rT = ((PlexusIoSymlinkResource) r).getTarget();
-        assertTrue(rT instanceof PlexusIoSymlinkResource);
+        assertInstanceOf(PlexusIoSymlinkResource.class, rT);
         PlexusIoResource rTT = ((PlexusIoSymlinkResource) rT).getTarget();
         assertFalse(rTT instanceof PlexusIoSymlinkResource);
     }
 
     @Test
     @DisabledOnOs(OS.WINDOWS)
-    void testSymlinkFile() throws IOException {
+    void symlinkFile() throws Exception {
         final File file = new File("src/test/resources/symlinks/src/symR");
         PlexusIoResource r = ResourceFactory.createResource(file);
         assertTrue(r.isSymbolicLink());
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/plexus-io-plexus-io-3.5.1/src/test/java/org/codehaus/plexus/components/io/resources/proxy/PlexusIoProxyResourceCollectionTest.java
 
new/plexus-io-plexus-io-3.6.0/src/test/java/org/codehaus/plexus/components/io/resources/proxy/PlexusIoProxyResourceCollectionTest.java
--- 
old/plexus-io-plexus-io-3.5.1/src/test/java/org/codehaus/plexus/components/io/resources/proxy/PlexusIoProxyResourceCollectionTest.java
      2024-09-09 14:59:21.000000000 +0200
+++ 
new/plexus-io-plexus-io-3.6.0/src/test/java/org/codehaus/plexus/components/io/resources/proxy/PlexusIoProxyResourceCollectionTest.java
      2025-11-07 19:10:05.000000000 +0100
@@ -19,7 +19,6 @@
 import javax.annotation.Nonnull;
 
 import java.io.Closeable;
-import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
 import java.util.Iterator;
@@ -36,13 +35,13 @@
 /**
  * Test case for {@link PlexusIoProxyResourceCollection}.
  */
-public class PlexusIoProxyResourceCollectionTest {
+class PlexusIoProxyResourceCollectionTest {
     private final String[] SAMPLE_INCLUDES = {"junk.*", "test/**", 
"dir*/file.xml"};
 
     private final String[] SAMPLE_EXCLUDES = {"*.junk", "somwhere/**"};
 
     @Test
-    void testGetDefaultFileSelector() {
+    void getDefaultFileSelector() {
         PlexusIoProxyResourceCollection resCol = new 
PlexusIoProxyResourceCollection(null);
 
         // This will throw an exception if there is a bug
@@ -91,7 +90,7 @@
     }
 
     @Test
-    void testClosing() throws IOException {
+    void closing() throws Exception {
         final CloseableIterator closeableIterator = new CloseableIterator();
         PlexusIoProxyResourceCollection resCol =
                 new PlexusIoProxyResourceCollection(new 
AbstractPlexusIoResourceCollection() {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/plexus-io-plexus-io-3.5.1/src/test/java/org/codehaus/plexus/components/io/resources/proxy/ProxyFactoryTest.java
 
new/plexus-io-plexus-io-3.6.0/src/test/java/org/codehaus/plexus/components/io/resources/proxy/ProxyFactoryTest.java
--- 
old/plexus-io-plexus-io-3.5.1/src/test/java/org/codehaus/plexus/components/io/resources/proxy/ProxyFactoryTest.java
 2024-09-09 14:59:21.000000000 +0200
+++ 
new/plexus-io-plexus-io-3.6.0/src/test/java/org/codehaus/plexus/components/io/resources/proxy/ProxyFactoryTest.java
 2025-11-07 19:10:05.000000000 +0100
@@ -22,25 +22,25 @@
 
 import static org.junit.jupiter.api.Assertions.*;
 
-public class ProxyFactoryTest {
+class ProxyFactoryTest {
 
     @Test
-    void testCreateProxy() throws Exception {
+    void createProxy() throws Exception {
         final PlexusIoResource proxy = 
ProxyFactory.createProxy(getPomResource(), null);
-        assertTrue(proxy instanceof ResourceAttributeSupplier);
-        assertTrue(proxy instanceof FileSupplier);
+        assertInstanceOf(ResourceAttributeSupplier.class, proxy);
+        assertInstanceOf(FileSupplier.class, proxy);
         assertFalse(proxy instanceof SymlinkDestinationSupplier);
     }
 
     @Test
-    void testCreateProxyWithNameOverride() throws Exception {
+    void createProxyWithNameOverride() throws Exception {
         NameSupplier ns = () -> "fred";
         final PlexusIoResource proxy = 
ProxyFactory.createProxy(getPomResource(), ns);
         assertEquals("fred", proxy.getName());
     }
 
     @Test
-    void testCreateProxyWithResourceAttributeOverride() throws Exception {
+    void createProxyWithResourceAttributeOverride() throws Exception {
         final PlexusIoResourceAttributes s = 
SimpleResourceAttributes.lastResortDummyAttributesForBrokenOS();
         ResourceAttributeSupplier ns = () -> s;
         final PlexusIoResource proxy = 
ProxyFactory.createProxy(getPomResource(), ns);
@@ -48,7 +48,7 @@
     }
 
     @Test
-    void testCreateProxyWithSizeSupplierOverride() throws Exception {
+    void createProxyWithSizeSupplierOverride() throws Exception {
         final PlexusIoResourceAttributes s = 
SimpleResourceAttributes.lastResortDummyAttributesForBrokenOS();
         SizeSupplier ns = () -> 42;
         final PlexusIoResource proxy = 
ProxyFactory.createProxy(getPomResource(), ns);
@@ -56,7 +56,7 @@
     }
 
     @Test
-    void testCreateProxyWithContentSupplierOverride() throws Exception {
+    void createProxyWithContentSupplierOverride() throws Exception {
         final InputStream s = new ByteArrayInputStream(new byte[10]);
         ContentSupplier ns = () -> s;
         final PlexusIoResource proxy = 
ProxyFactory.createProxy(getPomResource(), ns);
@@ -64,7 +64,7 @@
     }
 
     @Test
-    void testCreateProxyWithSymlinkDestinationSupplierOverride() throws 
Exception {
+    void createProxyWithSymlinkDestinationSupplierOverride() throws Exception {
         SymlinkDestinationSupplier ns = () -> "mordor";
         final PlexusIoResource proxy = 
ProxyFactory.createProxy(getDummySymlinkResource(), ns);
         assertEquals("mordor", ((SymlinkDestinationSupplier) 
proxy).getSymlinkDestination());

++++++ plexus-io-build.xml ++++++
--- /var/tmp/diff_new_pack.r5HRVH/_old  2026-03-01 22:15:03.350533008 +0100
+++ /var/tmp/diff_new_pack.r5HRVH/_new  2026-03-01 22:15:03.366533666 +0100
@@ -10,7 +10,7 @@
 
   <property name="project.artifactId" value="plexus-io"/>
   <property name="project.groupId" value="org.codehaus.plexus"/>
-  <property name="project.version" value="3.5.1"/>
+  <property name="project.version" value="3.6.0"/>
   
   <property name="compiler.release" value="8"/>
   <property name="compiler.source" value="1.${compiler.release}"/>

Reply via email to