You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2022/05/12 05:13:07 UTC

[camel] 03/03: CAMEL-18098: camel-core - Stream caching should not spool to disk by default

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

acosentino pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 415c2d5acf9f4b3ffae5b69beba020a23dff4efe
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu May 12 07:06:19 2022 +0200

    CAMEL-18098: camel-core - Stream caching should not spool to disk by default
---
 .../camel/component/jetty/HttpStreamCacheFileIssueTest.java   |  1 +
 .../component/jetty/HttpStreamCacheFileResponseTest.java      |  1 +
 .../component/jetty/HttpStreamCacheFileStopIssueTest.java     |  1 +
 .../apache/camel/component/jetty/HttpStreamCacheFileTest.java |  1 +
 .../camel/component/jetty/JettyStreamCacheIssueTest.java      |  1 +
 .../management/mbean/ManagedStreamCachingStrategyMBean.java   |  3 +++
 .../camel/management/mbean/ManagedStreamCachingStrategy.java  | 11 ++++++++++-
 .../camel/management/ManagedStreamCachingStrategyTest.java    |  4 ++++
 8 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileIssueTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileIssueTest.java
index 8f82836c160..9aec0bd70d2 100644
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileIssueTest.java
+++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileIssueTest.java
@@ -49,6 +49,7 @@ public class HttpStreamCacheFileIssueTest extends BaseJettyTest {
             public void configure() {
                 // enable stream caching and use a low threshold so its forced
                 // to write to file
+                context.getStreamCachingStrategy().setSpoolEnabled(true);
                 context.getStreamCachingStrategy().setSpoolThreshold(16);
                 context.getStreamCachingStrategy().setSpoolDirectory(testDirectory().toFile());
                 context.setStreamCaching(true);
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileResponseTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileResponseTest.java
index ebfb9d498c3..192438abb59 100644
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileResponseTest.java
+++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileResponseTest.java
@@ -50,6 +50,7 @@ public class HttpStreamCacheFileResponseTest extends BaseJettyTest {
             public void configure() {
                 // enable stream caching and use a low threshold so its forced
                 // to write to file
+                context.getStreamCachingStrategy().setSpoolEnabled(true);
                 context.getStreamCachingStrategy().setSpoolDirectory(testDirectory().toFile());
                 context.getStreamCachingStrategy().setSpoolThreshold(16);
                 context.setStreamCaching(true);
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileStopIssueTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileStopIssueTest.java
index 8e021086498..4719d2f22ba 100644
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileStopIssueTest.java
+++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileStopIssueTest.java
@@ -63,6 +63,7 @@ public class HttpStreamCacheFileStopIssueTest extends BaseJettyTest {
             public void configure() {
                 // enable stream caching and use a low threshold so its forced
                 // to write to file
+                context.getStreamCachingStrategy().setSpoolEnabled(true);
                 context.getStreamCachingStrategy().setSpoolThreshold(16);
                 context.getStreamCachingStrategy().setSpoolDirectory("target/cachedir");
                 context.setStreamCaching(true);
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileTest.java
index 7080fb6adfc..9f28fe8c32d 100644
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileTest.java
+++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileTest.java
@@ -65,6 +65,7 @@ public class HttpStreamCacheFileTest extends BaseJettyTest {
             public void configure() {
                 // enable stream caching and use a low threshold so its forced
                 // to write to file
+                context.getStreamCachingStrategy().setSpoolEnabled(true);
                 context.getStreamCachingStrategy().setSpoolThreshold(16);
                 context.getStreamCachingStrategy().setSpoolDirectory(testDirectory().toFile());
                 context.setStreamCaching(true);
diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyStreamCacheIssueTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyStreamCacheIssueTest.java
index 68cb78c7eba..2a685e8db33 100644
--- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyStreamCacheIssueTest.java
+++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyStreamCacheIssueTest.java
@@ -31,6 +31,7 @@ public class JettyStreamCacheIssueTest extends BaseJettyTest {
     protected CamelContext createCamelContext() throws Exception {
         CamelContext context = super.createCamelContext();
         // ensure we overflow and spool to disk
+        context.getStreamCachingStrategy().setSpoolEnabled(true);
         context.getStreamCachingStrategy().setSpoolThreshold(5000);
         context.setStreamCaching(true);
         return context;
diff --git a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedStreamCachingStrategyMBean.java b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedStreamCachingStrategyMBean.java
index 9b1abafd012..c420d1eb357 100644
--- a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedStreamCachingStrategyMBean.java
+++ b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedStreamCachingStrategyMBean.java
@@ -32,6 +32,9 @@ public interface ManagedStreamCachingStrategyMBean extends ManagedServiceMBean {
     @ManagedAttribute(description = "Whether stream caching is enabled")
     boolean isEnabled();
 
+    @ManagedAttribute(description = "Whether spooling to disk enabled")
+    boolean isSpoolEnabled();
+
     @ManagedAttribute(description = "Directory used when overflow and spooling to disk")
     String getSpoolDirectory();
 
diff --git a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedStreamCachingStrategy.java b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedStreamCachingStrategy.java
index b46ca0246bc..7249fa4653e 100644
--- a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedStreamCachingStrategy.java
+++ b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedStreamCachingStrategy.java
@@ -46,9 +46,18 @@ public class ManagedStreamCachingStrategy extends ManagedService implements Mana
         return streamCachingStrategy.isEnabled();
     }
 
+    @Override
+    public boolean isSpoolEnabled() {
+        return streamCachingStrategy.isSpoolEnabled();
+    }
+
     @Override
     public String getSpoolDirectory() {
-        return streamCachingStrategy.getSpoolDirectory().getPath();
+        if (streamCachingStrategy.getSpoolDirectory() != null) {
+            return streamCachingStrategy.getSpoolDirectory().getPath();
+        } else {
+            return null;
+        }
     }
 
     @Override
diff --git a/core/camel-management/src/test/java/org/apache/camel/management/ManagedStreamCachingStrategyTest.java b/core/camel-management/src/test/java/org/apache/camel/management/ManagedStreamCachingStrategyTest.java
index d229ca99a66..ead80a6b9b6 100644
--- a/core/camel-management/src/test/java/org/apache/camel/management/ManagedStreamCachingStrategyTest.java
+++ b/core/camel-management/src/test/java/org/apache/camel/management/ManagedStreamCachingStrategyTest.java
@@ -59,6 +59,9 @@ public class ManagedStreamCachingStrategyTest extends ManagementTestSupport {
         Boolean enabled = (Boolean) mbeanServer.getAttribute(name, "Enabled");
         assertEquals(Boolean.TRUE, enabled);
 
+        enabled = (Boolean) mbeanServer.getAttribute(name, "SpoolEnabled");
+        assertEquals(Boolean.TRUE, enabled);
+
         String dir = (String) mbeanServer.getAttribute(name, "SpoolDirectory");
         assertEquals(normalizePath(testDirectory("myCamel").toString()), normalizePath(dir));
 
@@ -96,6 +99,7 @@ public class ManagedStreamCachingStrategyTest extends ManagementTestSupport {
                 dcc.setName("myCamel");
 
                 context.setStreamCaching(true);
+                context.getStreamCachingStrategy().setSpoolEnabled(true);
                 context.getStreamCachingStrategy().setSpoolDirectory(testDirectory("#name#").toString());
 
                 from("direct:start").routeId("foo")