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 2023/12/30 15:15:08 UTC

(camel) 11/25: CAMEL-19749: Add variables as concept to Camel

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

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

commit cee13b54b0a7e71dc74d21a9305c58c4fc6da954
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Dec 29 18:59:28 2023 +0100

    CAMEL-19749: Add variables as concept to Camel
---
 .../main/java/org/apache/camel/spi/VariableRepositoryFactory.java    | 5 +++++
 .../apache/camel/impl/engine/DefaultVariableRepositoryFactory.java   | 2 +-
 .../java/org/apache/camel/processor/CustomGlobalVariableTest.java    | 3 ++-
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/VariableRepositoryFactory.java b/core/camel-api/src/main/java/org/apache/camel/spi/VariableRepositoryFactory.java
index ba7aefeb473..6928e343f84 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/VariableRepositoryFactory.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/VariableRepositoryFactory.java
@@ -21,6 +21,11 @@ package org.apache.camel.spi;
  */
 public interface VariableRepositoryFactory {
 
+    /**
+     * ID for custom global {@link VariableRepository}.
+     */
+    String GLOBAL_VARIABLE_FACTORY_ID = "global-variable-repository";
+
     /**
      * Gets the {@link VariableRepository} for the given id
      *
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultVariableRepositoryFactory.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultVariableRepositoryFactory.java
index 524192b909f..5161c43976e 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultVariableRepositoryFactory.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultVariableRepositoryFactory.java
@@ -59,7 +59,7 @@ public class DefaultVariableRepositoryFactory extends ServiceSupport implements
     protected void doStart() throws Exception {
         super.doStart();
 
-        VariableRepository repo = CamelContextHelper.findSingleByType(camelContext, VariableRepository.class);
+        VariableRepository repo = CamelContextHelper.lookup(camelContext, GLOBAL_VARIABLE_FACTORY_ID, VariableRepository.class);
         if (repo != null) {
             LOG.info("Using VariableRepository: {} as global repository", repo.getId());
             global = repo;
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/CustomGlobalVariableTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/CustomGlobalVariableTest.java
index 82192e1efbf..ad5b4a0a8d4 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/CustomGlobalVariableTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/CustomGlobalVariableTest.java
@@ -28,6 +28,7 @@ import org.apache.camel.support.service.ServiceSupport;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
+import static org.apache.camel.spi.VariableRepositoryFactory.GLOBAL_VARIABLE_FACTORY_ID;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNull;
 
@@ -39,7 +40,7 @@ public class CustomGlobalVariableTest extends ContextTestSupport {
     @Override
     protected CamelContext createCamelContext() throws Exception {
         CamelContext context = super.createCamelContext();
-        context.getRegistry().bind("myGlobal", new MyGlobalRepo());
+        context.getRegistry().bind(GLOBAL_VARIABLE_FACTORY_ID, new MyGlobalRepo());
         return context;
     }