Repository: camel Updated Branches: refs/heads/master 968fd2b17 -> 8cd032925
CAMEL-10701 - proper naming considering review and added option for xml dsl Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/09cf89cc Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/09cf89cc Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/09cf89cc Branch: refs/heads/master Commit: 09cf89cc702aa3d7e3b5bed68651939341635df5 Parents: fc72a19 Author: onders86 <ondersez...@gmail.com> Authored: Tue Mar 14 18:31:54 2017 +0300 Committer: Claus Ibsen <davscl...@apache.org> Committed: Tue Mar 14 18:29:38 2017 +0100 ---------------------------------------------------------------------- .../camel/model/dataformat/ZipFileDataFormat.java | 17 +++++++++++++++++ .../dataformat/zipfile/ZipFileDataFormat.java | 12 ++++++------ .../camel/dataformat/zipfile/ZipIterator.java | 15 +++++++-------- .../dataformat/zipfile/ZipFileDataFormatTest.java | 4 ++-- 4 files changed, 32 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/09cf89cc/camel-core/src/main/java/org/apache/camel/model/dataformat/ZipFileDataFormat.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/model/dataformat/ZipFileDataFormat.java b/camel-core/src/main/java/org/apache/camel/model/dataformat/ZipFileDataFormat.java index 49ba9b2..4d54554 100644 --- a/camel-core/src/main/java/org/apache/camel/model/dataformat/ZipFileDataFormat.java +++ b/camel-core/src/main/java/org/apache/camel/model/dataformat/ZipFileDataFormat.java @@ -36,6 +36,8 @@ import org.apache.camel.spi.Metadata; public class ZipFileDataFormat extends DataFormatDefinition { @XmlAttribute private Boolean usingIterator; + @XmlAttribute + private Boolean allowEmptyDirectory; public ZipFileDataFormat() { super("zipfile"); @@ -46,11 +48,18 @@ public class ZipFileDataFormat extends DataFormatDefinition { if (usingIterator != null) { setProperty(camelContext, dataFormat, "usingIterator", usingIterator); } + if (allowEmptyDirectory != null) { + setProperty(camelContext, dataFormat, "allowEmptyDirectory", allowEmptyDirectory); + } } public Boolean getUsingIterator() { return usingIterator; } + + public Boolean getAllowEmptyDirectory() { + return allowEmptyDirectory; + } /** * If the zip file has more then one entry, the setting this option to true, allows to work with the splitter EIP, @@ -59,5 +68,13 @@ public class ZipFileDataFormat extends DataFormatDefinition { public void setUsingIterator(Boolean usingIterator) { this.usingIterator = usingIterator; } + + /** + * If the zip file has more then one entry, setting this option to true, allows to get the iterator + * even if the directory is empty + */ + public void setAllowEmptyDirectory(Boolean allowEmptyDirectory) { + this.allowEmptyDirectory = allowEmptyDirectory; + } } http://git-wip-us.apache.org/repos/asf/camel/blob/09cf89cc/components/camel-zipfile/src/main/java/org/apache/camel/dataformat/zipfile/ZipFileDataFormat.java ---------------------------------------------------------------------- diff --git a/components/camel-zipfile/src/main/java/org/apache/camel/dataformat/zipfile/ZipFileDataFormat.java b/components/camel-zipfile/src/main/java/org/apache/camel/dataformat/zipfile/ZipFileDataFormat.java index 72b4ce5..4bb5824 100644 --- a/components/camel-zipfile/src/main/java/org/apache/camel/dataformat/zipfile/ZipFileDataFormat.java +++ b/components/camel-zipfile/src/main/java/org/apache/camel/dataformat/zipfile/ZipFileDataFormat.java @@ -39,7 +39,7 @@ import static org.apache.camel.Exchange.FILE_NAME; */ public class ZipFileDataFormat extends ServiceSupport implements DataFormat, DataFormatName { private boolean usingIterator; - private boolean supportIteratorForEmptyDirectory; + private boolean allowEmptyDirectory; @Override public String getDataFormatName() { @@ -75,7 +75,7 @@ public class ZipFileDataFormat extends ServiceSupport implements DataFormat, Dat public Object unmarshal(final Exchange exchange, final InputStream inputStream) throws Exception { if (usingIterator) { ZipIterator zipIterator = new ZipIterator(exchange.getIn()); - zipIterator.setSupportIteratorForEmptyDirectory(supportIteratorForEmptyDirectory); + zipIterator.setAllowEmptyDirectory(allowEmptyDirectory); return zipIterator; } else { ZipInputStream zis = new ZipInputStream(inputStream); @@ -108,12 +108,12 @@ public class ZipFileDataFormat extends ServiceSupport implements DataFormat, Dat this.usingIterator = usingIterator; } - public boolean isSupportIteratorForEmptyDirectory() { - return supportIteratorForEmptyDirectory; + public boolean isAllowEmptyDirectory() { + return allowEmptyDirectory; } - public void setSupportIteratorForEmptyDirectory(boolean supportIteratorForEmptyDirectory) { - this.supportIteratorForEmptyDirectory = supportIteratorForEmptyDirectory; + public void setAllowEmptyDirectory(boolean allowEmptyDirectory) { + this.allowEmptyDirectory = allowEmptyDirectory; } @Override http://git-wip-us.apache.org/repos/asf/camel/blob/09cf89cc/components/camel-zipfile/src/main/java/org/apache/camel/dataformat/zipfile/ZipIterator.java ---------------------------------------------------------------------- diff --git a/components/camel-zipfile/src/main/java/org/apache/camel/dataformat/zipfile/ZipIterator.java b/components/camel-zipfile/src/main/java/org/apache/camel/dataformat/zipfile/ZipIterator.java index 3370d21..0e64d2c 100644 --- a/components/camel-zipfile/src/main/java/org/apache/camel/dataformat/zipfile/ZipIterator.java +++ b/components/camel-zipfile/src/main/java/org/apache/camel/dataformat/zipfile/ZipIterator.java @@ -40,13 +40,13 @@ public class ZipIterator implements Iterator<Message>, Closeable { static final Logger LOGGER = LoggerFactory.getLogger(ZipIterator.class); private final Message inputMessage; - private boolean supportIteratorForEmptyDirectory; + private boolean allowEmptyDirectory; private volatile ZipInputStream zipInputStream; private volatile Message parent; public ZipIterator(Message inputMessage) { this.inputMessage = inputMessage; - this.supportIteratorForEmptyDirectory = false; + this.allowEmptyDirectory = false; InputStream inputStream = inputMessage.getBody(InputStream.class); if (inputStream instanceof ZipInputStream) { zipInputStream = (ZipInputStream)inputStream; @@ -132,9 +132,8 @@ public class ZipIterator implements Iterator<Message>, Closeable { if (!entry.isDirectory()) { return entry; } else { - if (supportIteratorForEmptyDirectory) { - ZipEntry dirEntry = new ZipEntry(entry.getName()); - return dirEntry; + if (allowEmptyDirectory) { + return entry; } } } @@ -154,10 +153,10 @@ public class ZipIterator implements Iterator<Message>, Closeable { } public boolean isSupportIteratorForEmptyDirectory() { - return supportIteratorForEmptyDirectory; + return allowEmptyDirectory; } - public void setSupportIteratorForEmptyDirectory(boolean supportIteratorForEmptyDirectory) { - this.supportIteratorForEmptyDirectory = supportIteratorForEmptyDirectory; + public void setAllowEmptyDirectory(boolean allowEmptyDirectory) { + this.allowEmptyDirectory = allowEmptyDirectory; } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/camel/blob/09cf89cc/components/camel-zipfile/src/test/java/org/apache/camel/dataformat/zipfile/ZipFileDataFormatTest.java ---------------------------------------------------------------------- diff --git a/components/camel-zipfile/src/test/java/org/apache/camel/dataformat/zipfile/ZipFileDataFormatTest.java b/components/camel-zipfile/src/test/java/org/apache/camel/dataformat/zipfile/ZipFileDataFormatTest.java index de996fb..305283e 100644 --- a/components/camel-zipfile/src/test/java/org/apache/camel/dataformat/zipfile/ZipFileDataFormatTest.java +++ b/components/camel-zipfile/src/test/java/org/apache/camel/dataformat/zipfile/ZipFileDataFormatTest.java @@ -117,7 +117,7 @@ public class ZipFileDataFormatTest extends CamelTestSupport { public void testUnzipWithEmptyDirectorySupported() throws Exception { deleteDirectory(new File("hello_out")); zip.setUsingIterator(true); - zip.setSupportIteratorForEmptyDirectory(true); + zip.setAllowEmptyDirectory(true); template.sendBody("direct:unzipWithEmptyDirectory", new File("src/test/resources/hello.odt")); assertTrue(Files.exists(Paths.get("hello_out/Configurations2"))); deleteDirectory(new File("hello_out")); @@ -127,7 +127,7 @@ public class ZipFileDataFormatTest extends CamelTestSupport { public void testUnzipWithEmptyDirectoryUnsupported() throws Exception { deleteDirectory(new File("hello_out")); zip.setUsingIterator(true); - zip.setSupportIteratorForEmptyDirectory(false); + zip.setAllowEmptyDirectory(false); template.sendBody("direct:unzipWithEmptyDirectory", new File("src/test/resources/hello.odt")); assertTrue(!Files.exists(Paths.get("hello_out/Configurations2"))); deleteDirectory(new File("hello_out"));