Description: changing the way we create temp dirs during testing
 As of today, the Debian-packaged version of junit5 does not allow to create
 temporary directories with the @TempDir annotation. We use the facilities of
 java.nio.file.Files instead.
 This patch should be removed when junit5 (>= 5.4.0) gets packaged.
Author: Pierre Gruet <pgt@debian.org>
Forwarded: not-needed
Last-Update: 2021-05-08

--- a/pf4j/src/test/java/org/pf4j/CompoundPluginDescriptorFinderTest.java
+++ b/pf4j/src/test/java/org/pf4j/CompoundPluginDescriptorFinderTest.java
@@ -15,8 +15,9 @@
  */
 package org.pf4j;
 
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.io.TempDir;
+//import org.junit.jupiter.api.io.TempDir;
 import org.pf4j.test.PluginJar;
 import org.pf4j.test.PluginZip;
 import org.pf4j.test.TestPlugin;
@@ -41,9 +42,14 @@
  */
 public class CompoundPluginDescriptorFinderTest {
 
-    @TempDir
+    //@TempDir
     Path pluginsPath;
 
+    @BeforeEach
+    void setUp() throws IOException {
+        pluginsPath = Files.createTempDirectory("plugins-");
+    }
+
     @Test
     public void add() {
         CompoundPluginDescriptorFinder descriptorFinder = new CompoundPluginDescriptorFinder();
--- a/pf4j/src/test/java/org/pf4j/DefaultPluginManagerTest.java
+++ b/pf4j/src/test/java/org/pf4j/DefaultPluginManagerTest.java
@@ -18,7 +18,7 @@
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.io.TempDir;
+//import org.junit.jupiter.api.io.TempDir;
 import org.pf4j.test.PluginJar;
 import org.pf4j.test.PluginZip;
 
@@ -40,11 +40,12 @@
     private DefaultPluginDescriptor pluginDescriptor;
     private PluginWrapper pluginWrapper;
 
-    @TempDir
+    //@TempDir
     Path pluginsPath;
 
     @BeforeEach
     public void setUp() throws IOException {
+        pluginsPath = Files.createTempDirectory("plugins-");
         pluginManager = new DefaultPluginManager(pluginsPath);
 
         pluginDescriptor = new DefaultPluginDescriptor();
--- a/pf4j/src/test/java/org/pf4j/DefaultPluginStatusProviderTest.java
+++ b/pf4j/src/test/java/org/pf4j/DefaultPluginStatusProviderTest.java
@@ -15,8 +15,9 @@
  */
 package org.pf4j;
 
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.io.TempDir;
+//import org.junit.jupiter.api.io.TempDir;
 import org.pf4j.util.FileUtils;
 
 import java.io.IOException;
@@ -34,9 +35,14 @@
  */
 public class DefaultPluginStatusProviderTest {
 
-    @TempDir
+    //@TempDir
     Path pluginsPath;
 
+    @BeforeEach
+    void setUp() throws IOException {
+        pluginsPath = Files.createTempDirectory("plugins-");
+    }
+
     @Test
     public void testIsPluginDisabled() throws IOException {
         createEnabledFile();
--- a/pf4j/src/test/java/org/pf4j/DevelopmentPluginRepositoryTest.java
+++ b/pf4j/src/test/java/org/pf4j/DevelopmentPluginRepositoryTest.java
@@ -17,7 +17,7 @@
 
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.io.TempDir;
+//import org.junit.jupiter.api.io.TempDir;
 
 import java.io.IOException;
 import java.nio.file.Files;
@@ -32,11 +32,12 @@
  */
 public class DevelopmentPluginRepositoryTest {
 
-    @TempDir
+    //@TempDir
     Path pluginsPath;
 
     @BeforeEach
     public void setUp() throws IOException {
+        pluginsPath = Files.createTempDirectory("plugins-");
         // standard maven/gradle bin folder - these should be skipped in development mode because the cause errors
         Files.createDirectory(pluginsPath.resolve(DevelopmentPluginRepository.MAVEN_BUILD_DIR));
         Files.createDirectory(pluginsPath.resolve(DevelopmentPluginRepository.GRADLE_BUILD_DIR));
--- a/pf4j/src/test/java/org/pf4j/JarPluginManagerTest.java
+++ b/pf4j/src/test/java/org/pf4j/JarPluginManagerTest.java
@@ -18,13 +18,14 @@
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.io.TempDir;
+//import org.junit.jupiter.api.io.TempDir;
 import org.pf4j.test.PluginJar;
 import org.pf4j.test.TestExtension;
 import org.pf4j.test.TestExtensionPoint;
 import org.pf4j.test.TestPlugin;
 
 import java.io.IOException;
+import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.List;
 
@@ -37,11 +38,12 @@
     private PluginJar pluginJar;
     private JarPluginManager pluginManager;
 
-    @TempDir
+    //@TempDir
     Path pluginsPath;
 
     @BeforeEach
     public void setUp() throws IOException {
+        pluginsPath = Files.createTempDirectory("plugins-");
         pluginJar = new PluginJar.Builder(pluginsPath.resolve("test-plugin.jar"), "test-plugin")
             .pluginClass(TestPlugin.class.getName())
             .pluginVersion("1.2.3")
--- a/pf4j/src/test/java/org/pf4j/JarPluginRepositoryTest.java
+++ b/pf4j/src/test/java/org/pf4j/JarPluginRepositoryTest.java
@@ -15,9 +15,11 @@
  */
 package org.pf4j;
 
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.io.TempDir;
+//import org.junit.jupiter.api.io.TempDir;
 
+import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.List;
@@ -31,9 +33,14 @@
  */
 public class JarPluginRepositoryTest {
 
-    @TempDir
+    //@TempDir
     Path pluginsPath;
 
+    @BeforeEach
+    void setUp() throws IOException {
+        pluginsPath = Files.createTempDirectory("plugins-");
+    }
+
     /**
      * Test of {@link JarPluginRepository#deletePluginPath(Path)} method.
      */
--- a/pf4j/src/test/java/org/pf4j/LegacyExtensionFinderTest.java
+++ b/pf4j/src/test/java/org/pf4j/LegacyExtensionFinderTest.java
@@ -15,13 +15,16 @@
  */
 package org.pf4j;
 
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.condition.EnabledOnOs;
-import org.junit.jupiter.api.io.TempDir;
+//import org.junit.jupiter.api.io.TempDir;
 import org.pf4j.test.PluginJar;
 import org.pf4j.test.TestExtension;
 import org.pf4j.test.TestPlugin;
 
+import java.io.IOException;
+import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.Map;
 import java.util.Set;
@@ -36,9 +39,14 @@
 
 public class LegacyExtensionFinderTest {
 
-    @TempDir
+    //@TempDir
     Path pluginsPath;
 
+    @BeforeEach
+    void setUp() throws IOException {
+        pluginsPath = Files.createTempDirectory("plugins-");
+    }
+
     @Test
     @EnabledOnOs(WINDOWS)
     public void shouldUnlockFileAfterReadingExtensionsFromPlugin() throws Exception {
--- a/pf4j/src/test/java/org/pf4j/LoadPluginsTest.java
+++ b/pf4j/src/test/java/org/pf4j/LoadPluginsTest.java
@@ -17,9 +17,10 @@
 
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.io.TempDir;
+//import org.junit.jupiter.api.io.TempDir;
 import org.pf4j.test.PluginZip;
 
+import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
@@ -41,11 +42,12 @@
 
     private DefaultPluginManager pluginManager;
 
-    @TempDir
+    //@TempDir
     Path pluginsPath;
 
     @BeforeEach
-    public void setUp() {
+    public void setUp() throws IOException {
+        pluginsPath = Files.createTempDirectory("plugins-");
         pluginManager = new DefaultPluginManager(pluginsPath);
     }
 
--- a/pf4j/src/test/java/org/pf4j/ManifestPluginDescriptorFinderTest.java
+++ b/pf4j/src/test/java/org/pf4j/ManifestPluginDescriptorFinderTest.java
@@ -17,7 +17,7 @@
 
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.io.TempDir;
+//import org.junit.jupiter.api.io.TempDir;
 import org.pf4j.test.PluginJar;
 
 import java.io.FileOutputStream;
@@ -41,11 +41,12 @@
 
     private VersionManager versionManager;
 
-    @TempDir
+    //@TempDir
     Path pluginsPath;
 
     @BeforeEach
     public void setUp() throws IOException {
+        pluginsPath = Files.createTempDirectory("plugins-");
         Path pluginPath = Files.createDirectories(pluginsPath.resolve("test-plugin-1"));
         storeManifestToPath(getPlugin1Manifest(), pluginPath);
 
--- a/pf4j/src/test/java/org/pf4j/PluginClassLoaderTest.java
+++ b/pf4j/src/test/java/org/pf4j/PluginClassLoaderTest.java
@@ -19,7 +19,7 @@
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.io.TempDir;
+//import org.junit.jupiter.api.io.TempDir;
 import org.pf4j.test.PluginZip;
 import org.pf4j.util.FileUtils;
 
@@ -53,7 +53,7 @@
     private PluginClassLoader parentLastPluginDependencyClassLoader;
     private PluginClassLoader parentFirstPluginDependencyClassLoader;
 
-    @TempDir
+    //@TempDir
     Path pluginsPath;
 
     @BeforeAll
@@ -84,6 +84,7 @@
 
     @BeforeEach
     void setUp() throws IOException {
+        pluginsPath = Files.createTempDirectory("plugins-");
         pluginManager = new TestPluginManager(pluginsPath);
         pluginManagerParentFirst = new TestPluginManager(pluginsPath);
 
--- a/pf4j/src/test/java/org/pf4j/PluginDependencyTest.java
+++ b/pf4j/src/test/java/org/pf4j/PluginDependencyTest.java
@@ -17,9 +17,11 @@
 
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.io.TempDir;
+//import org.junit.jupiter.api.io.TempDir;
 import org.pf4j.test.PluginZip;
 
+import java.io.IOException;
+import java.nio.file.Files;
 import java.nio.file.Path;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -33,11 +35,12 @@
 
     private DefaultPluginManager pluginManager;
 
-    @TempDir
+    //@TempDir
     Path pluginsPath;
 
     @BeforeEach
-    public void setUp() {
+    public void setUp() throws IOException {
+        pluginsPath = Files.createTempDirectory("plugins-");
         pluginManager = new DefaultPluginManager(pluginsPath);
     }
 
--- a/pf4j/src/test/java/org/pf4j/PropertiesPluginDescriptorFinderTest.java
+++ b/pf4j/src/test/java/org/pf4j/PropertiesPluginDescriptorFinderTest.java
@@ -17,7 +17,7 @@
 
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.io.TempDir;
+//import org.junit.jupiter.api.io.TempDir;
 import org.pf4j.test.PluginZip;
 import org.pf4j.test.TestPlugin;
 
@@ -41,11 +41,12 @@
 
     private VersionManager versionManager;
 
-    @TempDir
+    //@TempDir
     Path pluginsPath;
 
     @BeforeEach
     public void setUp() throws IOException {
+        pluginsPath = Files.createTempDirectory("plugins-");
         Path pluginPath = Files.createDirectory(pluginsPath.resolve("test-plugin-1"));
         storePropertiesToPath(getPlugin1Properties(), pluginPath);
 
--- a/pf4j/src/test/java/org/pf4j/util/FileUtilsTest.java
+++ b/pf4j/src/test/java/org/pf4j/util/FileUtilsTest.java
@@ -15,10 +15,12 @@
  */
 package org.pf4j.util;
 
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.io.TempDir;
+//import org.junit.jupiter.api.io.TempDir;
 import org.pf4j.test.PluginZip;
 
+import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
@@ -28,9 +30,14 @@
 
 public class FileUtilsTest {
 
-    @TempDir
+    //@TempDir
     Path pluginsPath;
 
+    @BeforeEach
+    void setUp() throws IOException {
+        pluginsPath = Files.createTempDirectory("plugins-");
+    }
+
     @Test
     public void expandIfZipForZipWithOnlyModuleDescriptor() throws Exception {
         PluginZip pluginZip = new PluginZip.Builder(pluginsPath.resolve("my-plugin-1.2.3.zip"), "myPlugin")
--- a/pf4j/src/test/java/org/pf4j/SecurePluginManagerWrapperTest.java
+++ b/pf4j/src/test/java/org/pf4j/SecurePluginManagerWrapperTest.java
@@ -6,13 +6,14 @@
 import static org.junit.jupiter.api.Assertions.assertThrows;
 
 import java.io.IOException;
+import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.List;
 
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.io.TempDir;
+//import org.junit.jupiter.api.io.TempDir;
 import org.pf4j.test.PluginJar;
 import org.pf4j.test.TestExtension;
 import org.pf4j.test.TestExtensionPoint;
@@ -29,11 +30,12 @@
     private int pluginManagerEvents = 0;
     private int wrappedPluginManagerEvents = 0;
 
-    @TempDir
+    //@TempDir
     Path pluginsPath;
 
     @BeforeEach
     public void setUp() throws IOException {
+        pluginsPath = Files.createTempDirectory("plugins-");
         pluginManagerEvents = 0;
         wrappedPluginManagerEvents = 0;
         thisPlugin = new PluginJar.Builder(pluginsPath.resolve("test-plugin1.jar"), THIS_PLUGIN_ID).pluginClass(TestPlugin.class.getName()).pluginVersion("1.2.3").extension(TestExtension.class.getName()).build();
