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 <claus.ib...@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; }