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-vfs.git
commit 8b96e71ab4d52eb9b1ec5f5989888b2a26e41dbe Author: Gary Gregory <gardgreg...@gmail.com> AuthorDate: Thu Oct 17 12:08:48 2019 -0400 [VFS-742] Add org.apache.commons.vfs2.FileContent.isEmpty(). --- .../vfs2/provider/webdav/test/WebdavVersioningTests.java | 3 +++ .../provider/webdav4/test/Webdav4VersioningTests.java | 3 +++ .../main/java/org/apache/commons/vfs2/FileContent.java | 15 +++++++++++++-- .../org/apache/commons/vfs2/filter/EmptyFileFilter.java | 2 +- .../commons/vfs2/provider/DefaultFileContentTest.java | 1 + .../vfs2/provider/hdfs/test/HdfsFileProviderTest.java | 1 + .../vfs2/provider/http/test/HttpProviderTestCase.java | 2 ++ .../vfs2/provider/http4/test/Http4ProviderTestCase.java | 4 ++-- .../org/apache/commons/vfs2/test/ProviderWriteTests.java | 1 + src/changes/changes.xml | 3 +++ 10 files changed, 30 insertions(+), 5 deletions(-) diff --git a/commons-vfs2-jackrabbit/src/test/java/org/apache/commons/vfs2/provider/webdav/test/WebdavVersioningTests.java b/commons-vfs2-jackrabbit/src/test/java/org/apache/commons/vfs2/provider/webdav/test/WebdavVersioningTests.java index bde2c5c..a11c5d3 100644 --- a/commons-vfs2-jackrabbit/src/test/java/org/apache/commons/vfs2/provider/webdav/test/WebdavVersioningTests.java +++ b/commons-vfs2-jackrabbit/src/test/java/org/apache/commons/vfs2/provider/webdav/test/WebdavVersioningTests.java @@ -28,6 +28,7 @@ import org.apache.commons.vfs2.provider.webdav.WebdavFileSystemConfigBuilder; import org.apache.commons.vfs2.test.AbstractProviderTestCase; import org.apache.jackrabbit.webdav.version.DeltaVConstants; import org.apache.jackrabbit.webdav.version.VersionControlledResource; +import org.junit.Assert; /** * Test to verify Webdav Versioning support @@ -51,6 +52,7 @@ public class WebdavVersioningTests extends AbstractProviderTestCase { assertSame(FileType.FILE, file.getType()); assertTrue(file.isFile()); assertEquals(0, file.getContent().getSize()); + assertTrue(file.getContent().isEmpty()); assertFalse(file.isExecutable()); assertFalse(file.isHidden()); assertTrue(file.isReadable()); @@ -101,6 +103,7 @@ public class WebdavVersioningTests extends AbstractProviderTestCase { assertSame(FileType.FILE, file.getType()); assertTrue(file.isFile()); assertEquals(0, file.getContent().getSize()); + assertTrue(file.getContent().isEmpty()); assertFalse(file.isExecutable()); assertFalse(file.isHidden()); assertTrue(file.isReadable()); diff --git a/commons-vfs2-jackrabbit2/src/test/java/org/apache/commons/vfs2/provider/webdav4/test/Webdav4VersioningTests.java b/commons-vfs2-jackrabbit2/src/test/java/org/apache/commons/vfs2/provider/webdav4/test/Webdav4VersioningTests.java index e0c82c4..0174ea2 100644 --- a/commons-vfs2-jackrabbit2/src/test/java/org/apache/commons/vfs2/provider/webdav4/test/Webdav4VersioningTests.java +++ b/commons-vfs2-jackrabbit2/src/test/java/org/apache/commons/vfs2/provider/webdav4/test/Webdav4VersioningTests.java @@ -28,6 +28,7 @@ import org.apache.commons.vfs2.provider.webdav4.Webdav4FileSystemConfigBuilder; import org.apache.commons.vfs2.test.AbstractProviderTestCase; import org.apache.jackrabbit.webdav.version.DeltaVConstants; import org.apache.jackrabbit.webdav.version.VersionControlledResource; +import org.junit.Assert; /** * Test to verify Webdav Versioning support @@ -53,6 +54,7 @@ public class Webdav4VersioningTests extends AbstractProviderTestCase { assertSame(FileType.FILE, file.getType()); assertTrue(file.isFile()); assertEquals(0, file.getContent().getSize()); + assertTrue(file.getContent().isEmpty()); assertFalse(file.isExecutable()); assertFalse(file.isHidden()); assertTrue(file.isReadable()); @@ -103,6 +105,7 @@ public class Webdav4VersioningTests extends AbstractProviderTestCase { assertSame(FileType.FILE, file.getType()); assertTrue(file.isFile()); assertEquals(0, file.getContent().getSize()); + assertTrue(file.getContent().isEmpty()); assertFalse(file.isExecutable()); assertFalse(file.isHidden()); assertTrue(file.isReadable()); diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/FileContent.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/FileContent.java index 054a1a3..247fb1a 100644 --- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/FileContent.java +++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/FileContent.java @@ -303,12 +303,23 @@ public interface FileContent extends Closeable { boolean hasAttribute(String attrName) throws FileSystemException; /** - * check if this file has open streams. + * Checks if the receiver is empty. + * + * @return true if the receiver is empty, false otherwise. + * @throws FileSystemException + * @since 2.5.0 + */ + default boolean isEmpty() throws FileSystemException { + return getSize() <= 0; + } + + /** + * Checks if this file has open streams. * * @return true if the file is open, false otherwise. */ boolean isOpen(); - + /** * Removes the value of an attribute of the file's content. * diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/filter/EmptyFileFilter.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/filter/EmptyFileFilter.java index bc5cdaa..df6db58 100644 --- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/filter/EmptyFileFilter.java +++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/filter/EmptyFileFilter.java @@ -95,7 +95,7 @@ public class EmptyFileFilter implements FileFilter, Serializable { return files == null || files.length == 0; } try (final FileContent content = file.getContent();) { - return content.getSize() == 0; + return content.isEmpty(); } } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/DefaultFileContentTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/DefaultFileContentTest.java index e818474..17f84c4 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/DefaultFileContentTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/DefaultFileContentTest.java @@ -48,6 +48,7 @@ public class DefaultFileContentTest { try (final FileObject fo = fsManager.resolveFile(new File("."), "src/test/resources/test-data/size-0-file.bin"); final FileContent content = fo.getContent()) { Assert.assertEquals(0, content.getSize()); + Assert.assertTrue(content.isEmpty()); Assert.assertEquals(StringUtils.EMPTY, content.getString(StandardCharsets.UTF_8)); Assert.assertEquals(StringUtils.EMPTY, content.getString(StandardCharsets.UTF_8.name())); Assert.assertArrayEquals(ArrayUtils.EMPTY_BYTE_ARRAY, content.getByteArray()); diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/hdfs/test/HdfsFileProviderTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/hdfs/test/HdfsFileProviderTest.java index 8f5e748..7bd14c6 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/hdfs/test/HdfsFileProviderTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/hdfs/test/HdfsFileProviderTest.java @@ -231,6 +231,7 @@ public class HdfsFileProviderTest { final FileObject file = createTestFile(hdfs); Assert.assertTrue(fo.exists()); Assert.assertEquals(0, file.getContent().getSize()); + Assert.assertTrue(file.getContent().isEmpty()); } @Test diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/http/test/HttpProviderTestCase.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/http/test/HttpProviderTestCase.java index 73a5962..39c455a 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/http/test/HttpProviderTestCase.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/http/test/HttpProviderTestCase.java @@ -178,6 +178,8 @@ public class HttpProviderTestCase extends AbstractProviderTestConfig { try (final FileObject fileObject = VFS.getManager() .resolveFile("http://www.w3schools.com/webservices/tempconvert.asmx?action=WSDL")) { assert fileObject.getContent().getSize() > 0; + assert !fileObject.getContent().isEmpty(); + } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/http4/test/Http4ProviderTestCase.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/http4/test/Http4ProviderTestCase.java index 9cdca28..c49e90c 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/http4/test/Http4ProviderTestCase.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/http4/test/Http4ProviderTestCase.java @@ -188,9 +188,9 @@ public class Http4ProviderTestCase extends AbstractProviderTestConfig { // Test no longer passing 2016/04/28 public void ignoreTestHttp405() throws FileSystemException { - final FileObject f = VFS.getManager() + final FileObject fileObject = VFS.getManager() .resolveFile("http4://www.w3schools.com/webservices/tempconvert.asmx?action=WSDL"); - assert f.getContent().getSize() > 0; + assert !fileObject.getContent().isEmpty(); } /** Ensure VFS-453 options are present. */ diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/test/ProviderWriteTests.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/test/ProviderWriteTests.java index 4c34269..7ccc0f1 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/test/ProviderWriteTests.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/test/ProviderWriteTests.java @@ -110,6 +110,7 @@ public class ProviderWriteTests extends AbstractProviderTestCase { assertSame(FileType.FILE, file.getType()); assertTrue(file.isFile()); assertEquals(0, file.getContent().getSize()); + assertTrue(file.getContent().isEmpty()); assertFalse(file.isHidden()); assertFalse(file.isSymbolicLink()); assertTrue(file.isReadable()); diff --git a/src/changes/changes.xml b/src/changes/changes.xml index a282deb..bbed4e4 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -104,6 +104,9 @@ The <action> type attribute can be add,update,fix,remove. <action issue="VFS-686" dev="ggregory" type="fix" due-to="Woonsan Ko, Gary Gregory"> webdav4 provider based on the latest Jackrabbit 2.x #52. </action> + <action issue="VFS-742" dev="ggregory" type="add" due-to="Gary Gregory"> + Add org.apache.commons.vfs2.FileContent.isEmpty(). + </action> </release> <release version="2.4.1" date="2019-08-10" description="Bug fix release."> <action issue="VFS-725" dev="ggregory" type="fix" due-to="Gary Gregory">