This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-configuration.git


The following commit(s) were added to refs/heads/master by this push:
     new b84a0ef  Add and ignore 
testFileBasedConfigurationBuilder.testGetConfigurationLoadFromJarFile based on 
https://github.com/apache/commons-configuration/pull/76
b84a0ef is described below

commit b84a0ef5ad561e64e98f13e8b912003fda9f5469
Author: Gary Gregory <[email protected]>
AuthorDate: Thu Oct 8 14:42:08 2020 -0400

    Add and ignore
    testFileBasedConfigurationBuilder.testGetConfigurationLoadFromJarFile
    based on https://github.com/apache/commons-configuration/pull/76
    
    Fails on Windows:
    java.lang.AssertionError: Unable to clean up temporary folder
    C:\Users\ggregory\AppData\Local\Temp\junit4296513623415900710
        at org.junit.Assert.fail(Assert.java:89)
        at org.junit.rules.TemporaryFolder.delete(TemporaryFolder.java:274)
        at org.junit.rules.TemporaryFolder.after(TemporaryFolder.java:138)
        at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:59)
        at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
        at 
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
        at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
        at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
        at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
        at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
        at 
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:89)
        at 
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:41)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:542)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:770)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:464)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)
---
 .../builder/TestFileBasedConfigurationBuilder.java |  33 ++++++++++++++++++++-
 .../org/apache/commons/configuration2/test.jar     | Bin 0 -> 500 bytes
 2 files changed, 32 insertions(+), 1 deletion(-)

diff --git 
a/src/test/java/org/apache/commons/configuration2/builder/TestFileBasedConfigurationBuilder.java
 
b/src/test/java/org/apache/commons/configuration2/builder/TestFileBasedConfigurationBuilder.java
index 591f7d1..318760f 100644
--- 
a/src/test/java/org/apache/commons/configuration2/builder/TestFileBasedConfigurationBuilder.java
+++ 
b/src/test/java/org/apache/commons/configuration2/builder/TestFileBasedConfigurationBuilder.java
@@ -18,6 +18,7 @@ package org.apache.commons.configuration2.builder;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
@@ -27,7 +28,12 @@ import static org.junit.Assert.fail;
 import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.Writer;
+import java.net.URL;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -45,6 +51,7 @@ import org.apache.commons.configuration2.io.FileHandler;
 import org.apache.commons.configuration2.io.FileLocator;
 import org.apache.commons.configuration2.io.FileLocatorUtils;
 import org.apache.commons.configuration2.io.HomeDirectoryLocationStrategy;
+import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
@@ -60,7 +67,7 @@ public class TestFileBasedConfigurationBuilder
 
     /** Helper object for managing temporary files. */
     @Rule
-    public TemporaryFolder folder = new TemporaryFolder();
+    public TemporaryFolder folder = 
TemporaryFolder.builder().assureDeletion().build();
 
     /**
      * Creates a test properties file with the given property value
@@ -137,6 +144,30 @@ public class TestFileBasedConfigurationBuilder
     }
 
     /**
+     * Tests whether a configuration is loaded from a JAR file if a location is
+     * provided.
+     */
+    @Test
+    @Ignore
+    public void testGetConfigurationLoadFromJarFile()
+            throws ConfigurationException, IOException
+    {
+        URL jarResourceUrl = 
getClass().getClassLoader().getResource("org/apache/commons/configuration2/test.jar");
+        assertNotNull(jarResourceUrl);
+        final Path testJar = Paths.get(folder.getRoot().getAbsolutePath(), 
"test.jar");
+        try (final InputStream inputStream = jarResourceUrl.openStream()) {
+            Files.copy(inputStream, testJar);
+        }
+        URL url = new URL("jar:" + testJar.toUri() + 
"!/configuration.properties");
+
+        final FileBasedConfigurationBuilder<PropertiesConfiguration> builder = 
new FileBasedConfigurationBuilder<>(
+            PropertiesConfiguration.class).configure(new 
FileBasedBuilderParametersImpl().setURL(url));
+        final PropertiesConfiguration config = builder.getConfiguration();
+        assertEquals("Not read from file", 1, config.getInt(PROP));
+        assertSame("FileHandler not initialized", config, 
builder.getFileHandler().getContent());
+    }
+
+    /**
      * Tests that the location in the FileHandler remains the same if the
      * builder's result is reset.
      */
diff --git a/src/test/resources/org/apache/commons/configuration2/test.jar 
b/src/test/resources/org/apache/commons/configuration2/test.jar
new file mode 100644
index 0000000..2570824
Binary files /dev/null and 
b/src/test/resources/org/apache/commons/configuration2/test.jar differ

Reply via email to