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 2019/08/09 06:02:03 UTC

[camel-quarkus] branch master updated: Override DefaultStreamCachingStrategy::resolveSpoolDirectory to avoid NPE

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 7ddcfd3  Override DefaultStreamCachingStrategy::resolveSpoolDirectory to avoid NPE
     new d66aca3  Merge pull request #120 from lburgazzoli/management-name
7ddcfd3 is described below

commit 7ddcfd317ec8a2aea0d62598e5880d8d6c9e140d
Author: lburgazzoli <lb...@gmail.com>
AuthorDate: Thu Aug 8 23:27:51 2019 +0200

    Override DefaultStreamCachingStrategy::resolveSpoolDirectory to avoid NPE
    
    The default implementation of StreamCachingStrategy leverages the
    ManagementNameStrategy to determine the name of the stream cache
    spool directory but as there's no ManagementNameStrategy in Camel
    Quarkus, it throws an NPE. The new method replaces the default
    implementation with a simplified one
---
 .../core/runtime/support/FastCamelContext.java     | 24 +++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/FastCamelContext.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/FastCamelContext.java
index d65a16d..2dfabfc 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/FastCamelContext.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/FastCamelContext.java
@@ -20,6 +20,7 @@ import java.util.Collection;
 import java.util.Map;
 import java.util.Properties;
 import java.util.concurrent.ExecutorService;
+import java.util.regex.Matcher;
 
 import org.apache.camel.AggregationStrategy;
 import org.apache.camel.AsyncProcessor;
@@ -102,6 +103,8 @@ import org.apache.camel.spi.TypeConverterRegistry;
 import org.apache.camel.spi.UnitOfWorkFactory;
 import org.apache.camel.spi.UuidGenerator;
 import org.apache.camel.spi.ValidatorRegistry;
+import org.apache.camel.util.FilePathResolver;
+import org.apache.camel.util.StringHelper;
 
 public class FastCamelContext extends AbstractCamelContext {
 
@@ -313,7 +316,26 @@ public class FastCamelContext extends AbstractCamelContext {
 
     @Override
     protected StreamCachingStrategy createStreamCachingStrategy() {
-        return new DefaultStreamCachingStrategy();
+        return new DefaultStreamCachingStrategy() {
+            @Override
+            protected String resolveSpoolDirectory(String path) {
+                StringHelper.notEmpty(path, "path");
+
+                // must quote the names to have it work as literal replacement
+                String name = Matcher.quoteReplacement(getName());
+
+                // replace tokens
+                String answer = path;
+                answer = answer.replaceFirst("#camelId#", name);
+                answer = answer.replaceFirst("#name#", name);
+
+                if (answer.contains("#uuid#")) {
+                    answer = answer.replaceFirst("#uuid#", getUuidGenerator().generateUuid());
+                }
+
+                return FilePathResolver.resolvePath(answer);
+            }
+        };
     }
 
     @Override