You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2024/03/29 09:56:38 UTC

(camel) branch camel-3.22.x updated (4e74223762b -> f1a6fc04286)

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

davsclaus pushed a change to branch camel-3.22.x
in repository https://gitbox.apache.org/repos/asf/camel.git


    from 4e74223762b camel-cdi remove deprecated fireEvent method (#13596)
     new 7e116302da5 CAMEL-19229: upgrade commons-compress to 1.24.0
     new 52209a37ee7 CAMEL-19229: upgrade commons-compress to 1.24.0
     new f1a6fc04286 Upgrade Commons-compress to version 1.25.0 (#12015)

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../aggregate/tarfile/TarAggregationStrategy.java  |  3 +-
 .../tarfile/SpringTarFileDataFormatTest.java       | 44 +++++++++++--
 .../dataformat/tarfile/TarFileDataFormatTest.java  | 72 ++++++++++++++++++----
 .../apache/camel/dataformat/tarfile/TarUtils.java  | 33 ++++++++++
 parent/pom.xml                                     |  2 +-
 5 files changed, 134 insertions(+), 20 deletions(-)


(camel) 03/03: Upgrade Commons-compress to version 1.25.0 (#12015)

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch camel-3.22.x
in repository https://gitbox.apache.org/repos/asf/camel.git

commit f1a6fc04286adb40d473534fa30ba61f5a418cff
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Nov 16 14:01:58 2023 +0100

    Upgrade Commons-compress to version 1.25.0 (#12015)
    
    Signed-off-by: Andrea Cosentino <an...@gmail.com>
---
 .../camel/processor/aggregate/tarfile/TarAggregationStrategy.java      | 3 +--
 parent/pom.xml                                                         | 2 +-
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/components/camel-tarfile/src/main/java/org/apache/camel/processor/aggregate/tarfile/TarAggregationStrategy.java b/components/camel-tarfile/src/main/java/org/apache/camel/processor/aggregate/tarfile/TarAggregationStrategy.java
index 76710b322dd..10f0e6b68da 100644
--- a/components/camel-tarfile/src/main/java/org/apache/camel/processor/aggregate/tarfile/TarAggregationStrategy.java
+++ b/components/camel-tarfile/src/main/java/org/apache/camel/processor/aggregate/tarfile/TarAggregationStrategy.java
@@ -34,7 +34,6 @@ import org.apache.camel.component.file.GenericFileMessage;
 import org.apache.camel.component.file.GenericFileOperationFailedException;
 import org.apache.camel.spi.Synchronization;
 import org.apache.camel.util.FileUtil;
-import org.apache.commons.compress.archivers.ArchiveEntry;
 import org.apache.commons.compress.archivers.ArchiveException;
 import org.apache.commons.compress.archivers.ArchiveStreamFactory;
 import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
@@ -242,7 +241,7 @@ public class TarAggregationStrategy implements AggregationStrategy {
 
     private void copyExistingEntries(TarArchiveInputStream tin, TarArchiveOutputStream tos) throws IOException {
         // copy the existing entries
-        ArchiveEntry nextEntry;
+        TarArchiveEntry nextEntry;
         while ((nextEntry = tin.getNextEntry()) != null) {
             tos.putArchiveEntry(nextEntry);
             IOUtils.copy(tin, tos);
diff --git a/parent/pom.xml b/parent/pom.xml
index ad515a94329..427a74141a7 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -111,7 +111,7 @@
         <commons-codec-version>1.15</commons-codec-version>
         <commons-collections-version>3.2.2</commons-collections-version>
         <commons-collections4-version>4.4</commons-collections4-version>
-        <commons-compress-version>1.24.0</commons-compress-version>
+        <commons-compress-version>1.25.0</commons-compress-version>
         <commons-configuration-version>1.9</commons-configuration-version>
         <commons-configuration2-version>2.8.0</commons-configuration2-version>
         <commons-csv-version>1.8</commons-csv-version>


(camel) 02/03: CAMEL-19229: upgrade commons-compress to 1.24.0

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch camel-3.22.x
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 52209a37ee7a45a1484f50d3fc9925e1ded5538f
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Mar 29 10:51:34 2024 +0100

    CAMEL-19229: upgrade commons-compress to 1.24.0
---
 parent/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/parent/pom.xml b/parent/pom.xml
index 89ef5f75f47..ad515a94329 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -111,7 +111,7 @@
         <commons-codec-version>1.15</commons-codec-version>
         <commons-collections-version>3.2.2</commons-collections-version>
         <commons-collections4-version>4.4</commons-collections4-version>
-        <commons-compress-version>1.24</commons-compress-version>
+        <commons-compress-version>1.24.0</commons-compress-version>
         <commons-configuration-version>1.9</commons-configuration-version>
         <commons-configuration2-version>2.8.0</commons-configuration2-version>
         <commons-csv-version>1.8</commons-csv-version>


(camel) 01/03: CAMEL-19229: upgrade commons-compress to 1.24.0

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch camel-3.22.x
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 7e116302da5ac19485e85cf1d599e433829d640d
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Wed Sep 27 09:26:28 2023 +0200

    CAMEL-19229: upgrade commons-compress to 1.24.0
---
 .../tarfile/SpringTarFileDataFormatTest.java       | 44 +++++++++++--
 .../dataformat/tarfile/TarFileDataFormatTest.java  | 72 ++++++++++++++++++----
 .../apache/camel/dataformat/tarfile/TarUtils.java  | 33 ++++++++++
 parent/pom.xml                                     |  2 +-
 4 files changed, 133 insertions(+), 18 deletions(-)

diff --git a/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/SpringTarFileDataFormatTest.java b/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/SpringTarFileDataFormatTest.java
index 62a14569b17..b442d407962 100644
--- a/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/SpringTarFileDataFormatTest.java
+++ b/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/SpringTarFileDataFormatTest.java
@@ -17,6 +17,8 @@
 package org.apache.camel.dataformat.tarfile;
 
 import java.io.File;
+import java.nio.charset.StandardCharsets;
+import java.util.Map;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.camel.Exchange;
@@ -28,11 +30,11 @@ import org.junit.jupiter.api.Test;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
-import static java.util.Collections.singletonList;
 import static org.apache.camel.Exchange.FILE_NAME;
 import static org.apache.camel.dataformat.tarfile.TarUtils.TEXT;
 import static org.apache.camel.dataformat.tarfile.TarUtils.getBytes;
 import static org.apache.camel.dataformat.tarfile.TarUtils.getTaredText;
+import static org.apache.camel.dataformat.tarfile.TarUtils.toEntries;
 import static org.apache.camel.test.junit5.TestSupport.deleteDirectory;
 import static org.junit.jupiter.api.Assertions.assertArrayEquals;
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -53,7 +55,14 @@ public class SpringTarFileDataFormatTest extends CamelSpringTestSupport {
 
         Exchange exchange = mock.getReceivedExchanges().get(0);
         assertEquals(exchange.getIn().getMessageId() + ".tar", exchange.getIn().getHeader(FILE_NAME));
-        assertArrayEquals(getTaredText(exchange.getIn().getMessageId()), exchange.getIn().getBody(byte[].class));
+
+        final byte[] resultArray = exchange.getIn().getBody(byte[].class);
+        Map<String, TarUtils.EntryMetadata> tarData = toEntries(resultArray);
+        assertTrue(tarData.containsKey(exchange.getIn().getMessageId()));
+
+        TarUtils.EntryMetadata entryMetadata = tarData.get(exchange.getIn().getMessageId());
+        assertEquals(TEXT.getBytes(StandardCharsets.UTF_8).length, entryMetadata.size);
+        assertFalse(entryMetadata.isDirectory);
     }
 
     @Test
@@ -67,7 +76,15 @@ public class SpringTarFileDataFormatTest extends CamelSpringTestSupport {
         MockEndpoint.assertIsSatisfied(context);
 
         Exchange exchange = mock.getReceivedExchanges().get(0);
-        assertArrayEquals(getTaredText("poem.txt"), exchange.getIn().getBody(byte[].class));
+
+        final byte[] convertedArray = exchange.getIn().getBody(byte[].class);
+
+        Map<String, TarUtils.EntryMetadata> tarData = toEntries(convertedArray);
+        assertTrue(tarData.containsKey("poem.txt"));
+
+        TarUtils.EntryMetadata entryMetadata = tarData.get("poem.txt");
+        assertEquals(TEXT.getBytes(StandardCharsets.UTF_8).length, entryMetadata.size);
+        assertFalse(entryMetadata.isDirectory);
     }
 
     @Test
@@ -114,7 +131,15 @@ public class SpringTarFileDataFormatTest extends CamelSpringTestSupport {
         Exchange exchange = mock.getReceivedExchanges().get(0);
         File file = new File(TEST_DIR, exchange.getIn().getMessageId() + ".tar");
         assertTrue(file.exists());
-        assertArrayEquals(getTaredText(exchange.getIn().getMessageId()), getBytes(file));
+
+        final byte[] resultArray = getBytes(file);
+
+        Map<String, TarUtils.EntryMetadata> tarData = toEntries(resultArray);
+        assertTrue(tarData.containsKey(exchange.getIn().getMessageId()));
+
+        TarUtils.EntryMetadata entryMetadata = tarData.get(exchange.getIn().getMessageId());
+        assertEquals(TEXT.getBytes(StandardCharsets.UTF_8).length, entryMetadata.size);
+        assertFalse(entryMetadata.isDirectory);
     }
 
     @Test
@@ -136,12 +161,19 @@ public class SpringTarFileDataFormatTest extends CamelSpringTestSupport {
         assertTrue(notify.matches(5, TimeUnit.SECONDS));
 
         assertTrue(file.exists());
-        assertArrayEquals(getTaredText("poem.txt"), getBytes(file));
+
+        final byte[] resultArray = getBytes(file);
+
+        Map<String, TarUtils.EntryMetadata> tarData = toEntries(resultArray);
+        assertTrue(tarData.containsKey("poem.txt"));
+
+        TarUtils.EntryMetadata entryMetadata = tarData.get("poem.txt");
+        assertEquals(TEXT.getBytes(StandardCharsets.UTF_8).length, entryMetadata.size);
+        assertFalse(entryMetadata.isDirectory);
     }
 
     @Test
     public void testDslTar() throws Exception {
-        getMockEndpoint("mock:dslTar").expectedBodiesReceived(singletonList(getTaredText("poem.txt")));
         getMockEndpoint("mock:dslTar").expectedHeaderReceived(FILE_NAME, "poem.txt.tar");
 
         template.sendBodyAndHeader("direct:dslTar", TEXT, FILE_NAME, "poem.txt");
diff --git a/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarFileDataFormatTest.java b/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarFileDataFormatTest.java
index ff6204126fd..958509a756b 100644
--- a/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarFileDataFormatTest.java
+++ b/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarFileDataFormatTest.java
@@ -26,6 +26,7 @@ import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Paths;
 import java.util.Iterator;
+import java.util.Map;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.camel.CamelExecutionException;
@@ -34,8 +35,8 @@ import org.apache.camel.Processor;
 import org.apache.camel.builder.NotifyBuilder;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.dataformat.tarfile.TarUtils.EntryMetadata;
 import org.apache.camel.test.junit5.CamelTestSupport;
-import org.apache.camel.util.ObjectHelper;
 import org.apache.commons.compress.archivers.ArchiveStreamFactory;
 import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
 import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
@@ -46,7 +47,7 @@ import static org.apache.camel.Exchange.FILE_NAME;
 import static org.apache.camel.dataformat.tarfile.TarUtils.TEXT;
 import static org.apache.camel.dataformat.tarfile.TarUtils.getBytes;
 import static org.apache.camel.dataformat.tarfile.TarUtils.getTaredText;
-import static org.apache.camel.dataformat.tarfile.TarUtils.getTaredTextInFolder;
+import static org.apache.camel.dataformat.tarfile.TarUtils.toEntries;
 import static org.apache.camel.test.junit5.TestSupport.deleteDirectory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -72,8 +73,15 @@ public class TarFileDataFormatTest extends CamelTestSupport {
 
         Exchange exchange = mock.getReceivedExchanges().get(0);
         assertEquals(exchange.getIn().getMessageId() + ".tar", exchange.getIn().getHeader(FILE_NAME));
-        assertTrue(ObjectHelper.equalByteArray(getTaredText(exchange.getIn().getMessageId()),
-                exchange.getIn().getBody(byte[].class)));
+
+        final byte[] resultArray = exchange.getIn().getBody(byte[].class);
+
+        Map<String, EntryMetadata> tarData = toEntries(resultArray);
+        assertTrue(tarData.containsKey(exchange.getIn().getMessageId()));
+
+        EntryMetadata entryMetadata = tarData.get(exchange.getIn().getMessageId());
+        assertEquals(TEXT.getBytes(StandardCharsets.UTF_8).length, entryMetadata.size);
+        assertFalse(entryMetadata.isDirectory);
     }
 
     @Test
@@ -87,7 +95,15 @@ public class TarFileDataFormatTest extends CamelTestSupport {
         MockEndpoint.assertIsSatisfied(context);
 
         Exchange exchange = mock.getReceivedExchanges().get(0);
-        assertTrue(ObjectHelper.equalByteArray(getTaredText("poem.txt"), exchange.getIn().getBody(byte[].class)));
+
+        final byte[] convertedArray = exchange.getIn().getBody(byte[].class);
+
+        Map<String, EntryMetadata> tarData = toEntries(convertedArray);
+        assertTrue(tarData.containsKey("poem.txt"));
+
+        EntryMetadata entryMetadata = tarData.get("poem.txt");
+        assertEquals(TEXT.getBytes(StandardCharsets.UTF_8).length, entryMetadata.size);
+        assertFalse(entryMetadata.isDirectory);
     }
 
     @Test
@@ -101,7 +117,14 @@ public class TarFileDataFormatTest extends CamelTestSupport {
         MockEndpoint.assertIsSatisfied(context);
 
         Exchange exchange = mock.getReceivedExchanges().get(0);
-        assertTrue(ObjectHelper.equalByteArray(getTaredText("poem.txt"), exchange.getIn().getBody(byte[].class)));
+        final byte[] convertedArray = exchange.getIn().getBody(byte[].class);
+
+        Map<String, EntryMetadata> tarData = toEntries(convertedArray);
+        assertTrue(tarData.containsKey("poem.txt"));
+
+        EntryMetadata entryMetadata = tarData.get("poem.txt");
+        assertEquals(TEXT.getBytes(StandardCharsets.UTF_8).length, entryMetadata.size);
+        assertFalse(entryMetadata.isDirectory);
     }
 
     @Test
@@ -117,8 +140,19 @@ public class TarFileDataFormatTest extends CamelTestSupport {
         MockEndpoint.assertIsSatisfied(context);
 
         Exchange exchange = mock.getReceivedExchanges().get(0);
-        assertTrue(ObjectHelper.equalByteArray(getTaredTextInFolder("poems/", "poems/poem.txt"),
-                exchange.getIn().getBody(byte[].class)));
+
+        final byte[] convertedArray = exchange.getIn().getBody(byte[].class);
+
+        Map<String, EntryMetadata> tarData = toEntries(convertedArray);
+        assertTrue(tarData.containsKey("poems/"));
+        assertTrue(tarData.containsKey("poems/poem.txt"));
+
+        EntryMetadata entryFileMetadata = tarData.get("poems/poem.txt");
+        assertEquals(TEXT.getBytes(StandardCharsets.UTF_8).length, entryFileMetadata.size);
+        assertFalse(entryFileMetadata.isDirectory);
+
+        EntryMetadata entryDirMetadata = tarData.get("poems/");
+        assertTrue(entryDirMetadata.isDirectory);
     }
 
     @Test
@@ -173,7 +207,15 @@ public class TarFileDataFormatTest extends CamelTestSupport {
         Exchange exchange = mock.getReceivedExchanges().get(0);
         File file = new File(TEST_DIR, exchange.getIn().getMessageId() + ".tar");
         assertTrue(file.exists());
-        assertTrue(ObjectHelper.equalByteArray(getTaredText(exchange.getIn().getMessageId()), getBytes(file)));
+
+        final byte[] resultArray = getBytes(file);
+
+        Map<String, EntryMetadata> tarData = toEntries(resultArray);
+        assertTrue(tarData.containsKey(exchange.getIn().getMessageId()));
+
+        EntryMetadata entryMetadata = tarData.get(exchange.getIn().getMessageId());
+        assertEquals(TEXT.getBytes(StandardCharsets.UTF_8).length, entryMetadata.size);
+        assertFalse(entryMetadata.isDirectory);
     }
 
     @Test
@@ -195,12 +237,20 @@ public class TarFileDataFormatTest extends CamelTestSupport {
         assertTrue(notify.matches(5, TimeUnit.SECONDS));
 
         assertTrue(file.exists());
-        assertTrue(ObjectHelper.equalByteArray(getTaredText("poem.txt"), getBytes(file)));
+
+        final byte[] resultArray = getBytes(file);
+
+        Map<String, EntryMetadata> tarData = toEntries(resultArray);
+        assertTrue(tarData.containsKey("poem.txt"));
+
+        EntryMetadata entryMetadata = tarData.get("poem.txt");
+        assertEquals(TEXT.getBytes(StandardCharsets.UTF_8).length, entryMetadata.size);
+        assertFalse(entryMetadata.isDirectory);
+
     }
 
     @Test
     public void testDslTar() throws Exception {
-        getMockEndpoint("mock:dslTar").expectedBodiesReceived((Object) getTaredText("poem.txt"));
         getMockEndpoint("mock:dslTar").expectedHeaderReceived(FILE_NAME, "poem.txt.tar");
 
         template.sendBodyAndHeader("direct:dslTar", TEXT, FILE_NAME, "poem.txt");
diff --git a/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarUtils.java b/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarUtils.java
index c5b859f31bb..683b0da800f 100644
--- a/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarUtils.java
+++ b/components/camel-tarfile/src/test/java/org/apache/camel/dataformat/tarfile/TarUtils.java
@@ -21,9 +21,14 @@ import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
 
 import org.apache.camel.util.IOHelper;
+import org.apache.commons.compress.archivers.ArchiveEntry;
+import org.apache.commons.compress.archivers.ArchiveInputStream;
 import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
+import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
 import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream;
 
 final class TarUtils {
@@ -91,4 +96,32 @@ final class TarUtils {
         return baos.toByteArray();
     }
 
+    static class EntryMetadata {
+        public final long size;
+        public final boolean isDirectory;
+
+        public EntryMetadata(long size, boolean isDirectory) {
+            this.size = size;
+            this.isDirectory = isDirectory;
+        }
+    }
+
+    static Map<String, EntryMetadata> toEntries(byte[] tarFileBytes) throws IOException {
+        Map<String, EntryMetadata> ret = new HashMap<>();
+        try (ArchiveInputStream i = new TarArchiveInputStream(new ByteArrayInputStream(tarFileBytes))) {
+            ArchiveEntry entry = null;
+
+            while ((entry = i.getNextEntry()) != null) {
+                if (!i.canReadEntryData(entry)) {
+                    // log something?
+                    continue;
+                }
+
+                ret.put(entry.getName(), new EntryMetadata(entry.getSize(), entry.isDirectory()));
+            }
+        }
+
+        return ret;
+    }
+
 }
diff --git a/parent/pom.xml b/parent/pom.xml
index 544d0928c76..89ef5f75f47 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -111,7 +111,7 @@
         <commons-codec-version>1.15</commons-codec-version>
         <commons-collections-version>3.2.2</commons-collections-version>
         <commons-collections4-version>4.4</commons-collections4-version>
-        <commons-compress-version>1.21</commons-compress-version>
+        <commons-compress-version>1.24</commons-compress-version>
         <commons-configuration-version>1.9</commons-configuration-version>
         <commons-configuration2-version>2.8.0</commons-configuration2-version>
         <commons-csv-version>1.8</commons-csv-version>