You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2019/10/17 16:08:55 UTC
[commons-vfs] 02/02: [VFS-742] Add
org.apache.commons.vfs2.FileContent.isEmpty().
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 <ga...@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">