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")