Updated Branches:
  refs/heads/master d0235489f -> b026ba010

CAMEL-6476: Introducing StreamCachingStrategy SPI to make it easier to 
configure and allow 3rd party to plugin custom strategies. Work in progress.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/1471c617
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/1471c617
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/1471c617

Branch: refs/heads/master
Commit: 1471c61746f635435e1f8402645a626b4fbecc08
Parents: d023548
Author: Claus Ibsen <davscl...@apache.org>
Authored: Wed Jul 17 18:17:46 2013 +0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Wed Jul 17 18:17:46 2013 +0200

----------------------------------------------------------------------
 .../converter/stream/CachedOutputStream.java    |  2 +-
 .../impl/DefaultStreamCachingStrategy.java      | 56 +++++++++++---------
 .../apache/camel/spi/StreamCachingStrategy.java | 14 ++---
 .../stream/CachedOutputStreamTest.java          |  2 +-
 .../processor/SplitterStreamCacheTest.java      |  3 +-
 5 files changed, 42 insertions(+), 35 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/1471c617/camel-core/src/main/java/org/apache/camel/converter/stream/CachedOutputStream.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/converter/stream/CachedOutputStream.java
 
b/camel-core/src/main/java/org/apache/camel/converter/stream/CachedOutputStream.java
index 1b7f90b..b25046b 100644
--- 
a/camel-core/src/main/java/org/apache/camel/converter/stream/CachedOutputStream.java
+++ 
b/camel-core/src/main/java/org/apache/camel/converter/stream/CachedOutputStream.java
@@ -208,7 +208,7 @@ public class CachedOutputStream extends OutputStream {
         flush();
 
         ByteArrayOutputStream bout = (ByteArrayOutputStream)currentStream;
-        tempFile = FileUtil.createTempFile("cos", ".tmp", 
strategy.getTemporaryDirectory());
+        tempFile = FileUtil.createTempFile("cos", ".tmp", 
strategy.getSpoolDirectory());
 
         LOG.trace("Creating temporary stream cache file: {}", tempFile);
 

http://git-wip-us.apache.org/repos/asf/camel/blob/1471c617/camel-core/src/main/java/org/apache/camel/impl/DefaultStreamCachingStrategy.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/impl/DefaultStreamCachingStrategy.java
 
b/camel-core/src/main/java/org/apache/camel/impl/DefaultStreamCachingStrategy.java
index d5f558a..d81c244 100644
--- 
a/camel-core/src/main/java/org/apache/camel/impl/DefaultStreamCachingStrategy.java
+++ 
b/camel-core/src/main/java/org/apache/camel/impl/DefaultStreamCachingStrategy.java
@@ -47,11 +47,11 @@ public class DefaultStreamCachingStrategy extends 
org.apache.camel.support.Servi
     private static final Logger LOG = 
LoggerFactory.getLogger(DefaultStreamCachingStrategy.class);
 
     private CamelContext camelContext;
-    private File temporaryDirectory;
+    private File spoolDirectory;
     private long spoolThreshold = StreamCache.DEFAULT_SPOOL_THRESHOLD;
     private String spoolChiper;
     private int bufferSize = IOHelper.DEFAULT_BUFFER_SIZE;
-    private boolean removeTemporaryDirectoryWhenStopping = true;
+    private boolean removeSpoolDirectoryWhenStopping = true;
 
     public CamelContext getCamelContext() {
         return camelContext;
@@ -61,16 +61,16 @@ public class DefaultStreamCachingStrategy extends 
org.apache.camel.support.Servi
         this.camelContext = camelContext;
     }
 
-    public void setTemporaryDirectory(String path) {
-        this.temporaryDirectory = new File(path);
+    public void setSpoolDirectory(String path) {
+        this.spoolDirectory = new File(path);
     }
 
-    public void setTemporaryDirectory(File path) {
-        this.temporaryDirectory = path;
+    public void setSpoolDirectory(File path) {
+        this.spoolDirectory = path;
     }
 
-    public File getTemporaryDirectory() {
-        return temporaryDirectory;
+    public File getSpoolDirectory() {
+        return spoolDirectory;
     }
 
     public long getSpoolThreshold() {
@@ -97,12 +97,12 @@ public class DefaultStreamCachingStrategy extends 
org.apache.camel.support.Servi
         this.bufferSize = bufferSize;
     }
 
-    public boolean isRemoveTemporaryDirectoryWhenStopping() {
-        return removeTemporaryDirectoryWhenStopping;
+    public boolean isRemoveSpoolDirectoryWhenStopping() {
+        return removeSpoolDirectoryWhenStopping;
     }
 
-    public void setRemoveTemporaryDirectoryWhenStopping(boolean 
removeTemporaryDirectoryWhenStopping) {
-        this.removeTemporaryDirectoryWhenStopping = 
removeTemporaryDirectoryWhenStopping;
+    public void setRemoveSpoolDirectoryWhenStopping(boolean 
removeSpoolDirectoryWhenStopping) {
+        this.removeSpoolDirectoryWhenStopping = 
removeSpoolDirectoryWhenStopping;
     }
 
     @Override
@@ -112,32 +112,40 @@ public class DefaultStreamCachingStrategy extends 
org.apache.camel.support.Servi
         String chiper = camelContext.getProperty(CIPHER_TRANSFORMATION);
         String dir = camelContext.getProperty(TEMP_DIR);
 
+        boolean warn = false;
         if (bufferSize != null) {
+            warn = true;
             this.bufferSize = 
camelContext.getTypeConverter().convertTo(Integer.class, bufferSize);
         }
         if (hold != null) {
+            warn = true;
             this.spoolThreshold = 
camelContext.getTypeConverter().convertTo(Long.class, hold);
         }
         if (chiper != null) {
+            warn = true;
             this.spoolChiper = chiper;
         }
         if (dir != null) {
-            this.temporaryDirectory = 
camelContext.getTypeConverter().convertTo(File.class, dir);
+            warn = true;
+            this.spoolDirectory = 
camelContext.getTypeConverter().convertTo(File.class, dir);
+        }
+        if (warn) {
+            LOG.warn("Configuring of StreamCaching using CamelContext 
properties is deprecated - use StreamCachingStrategy instead.");
         }
 
         LOG.info("StreamCaching in use with {}", this.toString());
 
         // create random temporary directory if none has been created
-        if (temporaryDirectory == null) {
-            temporaryDirectory = FileUtil.createNewTempDir();
-            LOG.info("Created temporary directory {}", temporaryDirectory);
+        if (spoolDirectory == null) {
+            spoolDirectory = FileUtil.createNewTempDir();
+            LOG.info("Created temporary spool directory {}", spoolDirectory);
         } else {
-            if (!temporaryDirectory.exists()) {
-                boolean created = temporaryDirectory.mkdirs();
+            if (!spoolDirectory.exists()) {
+                boolean created = spoolDirectory.mkdirs();
                 if (!created) {
-                    LOG.warn("Cannot create temporary directory {}", 
temporaryDirectory);
+                    LOG.warn("Cannot create spool directory {}", 
spoolDirectory);
                 } else {
-                    LOG.info("Created temporary directory {}", 
temporaryDirectory);
+                    LOG.info("Created spool directory {}", spoolDirectory);
                 }
             }
         }
@@ -145,16 +153,16 @@ public class DefaultStreamCachingStrategy extends 
org.apache.camel.support.Servi
 
     @Override
     protected void doStop() throws Exception {
-        if (temporaryDirectory != null  && 
isRemoveTemporaryDirectoryWhenStopping()) {
-            LOG.info("Removing temporary directory {}", temporaryDirectory);
-            FileUtil.removeDir(temporaryDirectory);
+        if (spoolDirectory != null  && isRemoveSpoolDirectoryWhenStopping()) {
+            LOG.info("Removing spool directory {}", spoolDirectory);
+            FileUtil.removeDir(spoolDirectory);
         }
     }
 
     @Override
     public String toString() {
         return "DefaultStreamCachingStrategy["
-            + "temporaryDirectory=" + temporaryDirectory
+            + "spoolDirectory=" + spoolDirectory
             + ", spoolThreshold=" + spoolThreshold
             + ", spoolChiper=" + spoolChiper
             + ", bufferSize=" + bufferSize + "]";

http://git-wip-us.apache.org/repos/asf/camel/blob/1471c617/camel-core/src/main/java/org/apache/camel/spi/StreamCachingStrategy.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/spi/StreamCachingStrategy.java 
b/camel-core/src/main/java/org/apache/camel/spi/StreamCachingStrategy.java
index a5cfa1b..217a0fc 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/StreamCachingStrategy.java
+++ b/camel-core/src/main/java/org/apache/camel/spi/StreamCachingStrategy.java
@@ -24,16 +24,16 @@ import java.io.File;
 public interface StreamCachingStrategy {
 
     /**
-     * Sets the temporary directory to use for overflow and spooling to disk.
+     * Sets the spool (temporary) directory to use for overflow and spooling 
to disk.
      * <p/>
-     * If no temporary directory has been explicit configured, then a directory
+     * If no spool directory has been explicit configured, then a temporary 
directory
      * is created in the <tt>java.io.tmpdir</tt> directory.
      */
-    void setTemporaryDirectory(File path);
+    void setSpoolDirectory(File path);
 
-    File getTemporaryDirectory();
+    File getSpoolDirectory();
 
-    void setTemporaryDirectory(String path);
+    void setSpoolDirectory(String path);
 
     /**
      * Threshold in bytes when overflow to disk is activated.
@@ -68,8 +68,8 @@ public interface StreamCachingStrategy {
      * <p/>
      * This option is default <tt>true</tt>
      */
-    void setRemoveTemporaryDirectoryWhenStopping(boolean remove);
+    void setRemoveSpoolDirectoryWhenStopping(boolean remove);
 
-    boolean isRemoveTemporaryDirectoryWhenStopping();
+    boolean isRemoveSpoolDirectoryWhenStopping();
 
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/1471c617/camel-core/src/test/java/org/apache/camel/converter/stream/CachedOutputStreamTest.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/test/java/org/apache/camel/converter/stream/CachedOutputStreamTest.java
 
b/camel-core/src/test/java/org/apache/camel/converter/stream/CachedOutputStreamTest.java
index 91729f1..a705e1a 100644
--- 
a/camel-core/src/test/java/org/apache/camel/converter/stream/CachedOutputStreamTest.java
+++ 
b/camel-core/src/test/java/org/apache/camel/converter/stream/CachedOutputStreamTest.java
@@ -43,7 +43,7 @@ public class CachedOutputStreamTest extends 
ContextTestSupport {
     protected CamelContext createCamelContext() throws Exception {
         CamelContext context = super.createCamelContext();
         context.setStreamCaching(true);
-        
context.getStreamCachingStrategy().setTemporaryDirectory("target/cachedir");
+        
context.getStreamCachingStrategy().setSpoolDirectory("target/cachedir");
         context.getStreamCachingStrategy().setSpoolThreshold(16);
         return context;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/1471c617/camel-core/src/test/java/org/apache/camel/processor/SplitterStreamCacheTest.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/test/java/org/apache/camel/processor/SplitterStreamCacheTest.java
 
b/camel-core/src/test/java/org/apache/camel/processor/SplitterStreamCacheTest.java
index d17410e..f223730 100644
--- 
a/camel-core/src/test/java/org/apache/camel/processor/SplitterStreamCacheTest.java
+++ 
b/camel-core/src/test/java/org/apache/camel/processor/SplitterStreamCacheTest.java
@@ -23,7 +23,6 @@ import org.apache.camel.ContextTestSupport;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.builder.xml.XPathBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.converter.stream.CachedOutputStream;
 
 /**
  * @version 
@@ -48,7 +47,7 @@ public class SplitterStreamCacheTest extends 
ContextTestSupport {
         return new RouteBuilder() {
             public void configure() {
                 //ensure stream is spooled to disk
-                
context.getStreamCachingStrategy().setTemporaryDirectory("target/tmp");
+                
context.getStreamCachingStrategy().setSpoolDirectory("target/tmp");
                 context.getStreamCachingStrategy().setSpoolThreshold(-1);
 
                 from("seda:parallel?concurrentConsumers=5").streamCaching()

Reply via email to