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:15 UTC
(camel) 18/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 7e55671cd8bbd55fae43e7b80a0edd077b8a4b0d
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat Dec 30 13:21:32 2023 +0100
CAMEL-19749: Add variables as concept to Camel
---
.../java/org/apache/camel/spi/VariableRepositoryFactory.java | 4 ++--
.../camel/impl/engine/DefaultVariableRepositoryFactory.java | 3 ++-
.../java/org/apache/camel/impl/console/VariablesDevConsole.java | 9 +++++++--
.../org/apache/camel/processor/CustomGlobalVariableTest.java | 4 ++--
4 files changed, 13 insertions(+), 7 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 6928e343f84..00344d23f3c 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
@@ -22,9 +22,9 @@ package org.apache.camel.spi;
public interface VariableRepositoryFactory {
/**
- * ID for custom global {@link VariableRepository}.
+ * Registry bean id for global {@link VariableRepository}.
*/
- String GLOBAL_VARIABLE_FACTORY_ID = "global-variable-repository";
+ String GLOBAL_VARIABLE_REPOSITORY_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 1c4a65569b4..5353c4ac3fd 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
@@ -79,12 +79,13 @@ public class DefaultVariableRepositoryFactory extends ServiceSupport implements
protected void doStart() throws Exception {
super.doStart();
- VariableRepository repo = CamelContextHelper.lookup(camelContext, GLOBAL_VARIABLE_FACTORY_ID, VariableRepository.class);
+ VariableRepository repo = CamelContextHelper.lookup(camelContext, GLOBAL_VARIABLE_REPOSITORY_ID, VariableRepository.class);
if (repo != null) {
LOG.info("Using VariableRepository: {} as global repository", repo.getId());
global = repo;
} else {
global = new GlobalVariableRepository();
+ camelContext.getRegistry().bind(GLOBAL_VARIABLE_REPOSITORY_ID, global);
}
if (!camelContext.hasService(global)) {
diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/VariablesDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/VariablesDevConsole.java
index a25e0a103eb..87018f3bf9a 100644
--- a/core/camel-console/src/main/java/org/apache/camel/impl/console/VariablesDevConsole.java
+++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/VariablesDevConsole.java
@@ -39,12 +39,13 @@ public class VariablesDevConsole extends AbstractDevConsole {
Set<BrowsableVariableRepository> repos = getCamelContext().getRegistry().findByType(BrowsableVariableRepository.class);
for (BrowsableVariableRepository repo : repos) {
- sb.append(String.format("Variable repository: %s (size: %n)", repo.getId(), repo.size()));
+ sb.append(String.format("Repository: %s (size: %d)", repo.getId(), repo.size()));
sb.append("\n");
for (Map.Entry<String, Object> entry : repo.getVariables().entrySet()) {
String k = entry.getKey();
Object v = entry.getValue();
- sb.append(String.format("\n %s = %s", k, v));
+ String t = v != null ? v.getClass().getName() : "<null>";
+ sb.append(String.format("\n %s (%s) = %s", k, t, v));
}
sb.append("\n");
}
@@ -66,9 +67,13 @@ public class VariablesDevConsole extends AbstractDevConsole {
for (Map.Entry<String, Object> entry : repo.getVariables().entrySet()) {
String k = entry.getKey();
Object v = entry.getValue();
+ String t = v != null ? v.getClass().getName() : null;
JsonObject e = new JsonObject();
e.put("key", k);
e.put("value", v);
+ if (t != null) {
+ e.put("className", t);
+ }
arr.add(e);
}
if (!arr.isEmpty()) {
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 ad5b4a0a8d4..609ed161d27 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,7 +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.apache.camel.spi.VariableRepositoryFactory.GLOBAL_VARIABLE_REPOSITORY_ID;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
@@ -40,7 +40,7 @@ public class CustomGlobalVariableTest extends ContextTestSupport {
@Override
protected CamelContext createCamelContext() throws Exception {
CamelContext context = super.createCamelContext();
- context.getRegistry().bind(GLOBAL_VARIABLE_FACTORY_ID, new MyGlobalRepo());
+ context.getRegistry().bind(GLOBAL_VARIABLE_REPOSITORY_ID, new MyGlobalRepo());
return context;
}