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 2021/12/26 09:41:02 UTC
[camel] 02/02: CAMEL-17383: camel-management - Add operations to list the registered components, data formats and languages
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
commit c0a2cce909fe8ca7cfca8c480ee9e0190ada9254
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sun Dec 26 10:40:05 2021 +0100
CAMEL-17383: camel-management - Add operations to list the registered components, data formats and languages
---
.../src/main/java/org/apache/camel/CamelContext.java | 7 +++++++
.../apache/camel/impl/engine/AbstractCamelContext.java | 5 +++++
.../apache/camel/impl/lw/LightweightCamelContext.java | 5 +++++
.../camel/impl/lw/LightweightRuntimeCamelContext.java | 5 +++++
.../api/management/mbean/ManagedCamelContextMBean.java | 6 ++++++
.../camel/management/mbean/ManagedCamelContext.java | 5 +++++
.../apache/camel/management/ManagedCamelContextTest.java | 16 ++++++++++++++++
7 files changed, 49 insertions(+)
diff --git a/core/camel-api/src/main/java/org/apache/camel/CamelContext.java b/core/camel-api/src/main/java/org/apache/camel/CamelContext.java
index ec39a5b..74138f6 100644
--- a/core/camel-api/src/main/java/org/apache/camel/CamelContext.java
+++ b/core/camel-api/src/main/java/org/apache/camel/CamelContext.java
@@ -917,6 +917,13 @@ public interface CamelContext extends CamelContextLifecycle, RuntimeConfiguratio
DataFormat createDataFormat(String name);
/**
+ * Gets a readonly list of names of the data formats currently registered
+ *
+ * @return a readonly list with the names of the data formats
+ */
+ Set<String> getDataFormatNames();
+
+ /**
* Resolve a transformer given a scheme
*
* @param model data model name.
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
index 47f50f8..df4e243 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
@@ -4345,6 +4345,11 @@ public abstract class AbstractCamelContext extends BaseService
}
@Override
+ public Set<String> getDataFormatNames() {
+ return Collections.unmodifiableSet(dataformats.keySet());
+ }
+
+ @Override
public HealthCheckResolver getHealthCheckResolver() {
if (healthCheckResolver == null) {
synchronized (lock) {
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContext.java b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContext.java
index a2b5772..8fc20d9 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContext.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContext.java
@@ -710,6 +710,11 @@ public class LightweightCamelContext implements ExtendedCamelContext, CatalogCam
}
@Override
+ public Set<String> getDataFormatNames() {
+ return delegate.getDataFormatNames();
+ }
+
+ @Override
public Transformer resolveTransformer(String model) {
return delegate.resolveTransformer(model);
}
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightRuntimeCamelContext.java b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightRuntimeCamelContext.java
index 0c6a135..55d7836 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightRuntimeCamelContext.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightRuntimeCamelContext.java
@@ -1011,6 +1011,11 @@ public class LightweightRuntimeCamelContext implements ExtendedCamelContext, Cat
}
@Override
+ public Set<String> getDataFormatNames() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
public Transformer resolveTransformer(String model) {
throw new UnsupportedOperationException();
}
diff --git a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java
index 5cf1e17..ef78ac3 100644
--- a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java
+++ b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java
@@ -249,4 +249,10 @@ public interface ManagedCamelContextMBean extends ManagedPerformanceCounterMBean
@ManagedOperation(description = "The names of the languages currently registered")
Set<String> languageNames() throws Exception;
+ /**
+ * The names of the data formats currently registered
+ */
+ @ManagedOperation(description = "The names of the data formats currently registered")
+ Set<String> dataFormatNames() throws Exception;
+
}
diff --git a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
index 49e0fac..3ec68aa 100644
--- a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
+++ b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
@@ -741,6 +741,11 @@ public class ManagedCamelContext extends ManagedPerformanceCounter implements Ti
return context.getLanguageNames();
}
+ @Override
+ public Set<String> dataFormatNames() throws Exception {
+ return context.getDataFormatNames();
+ }
+
/**
* Used for sorting the processor mbeans accordingly to their index.
*/
diff --git a/core/camel-management/src/test/java/org/apache/camel/management/ManagedCamelContextTest.java b/core/camel-management/src/test/java/org/apache/camel/management/ManagedCamelContextTest.java
index 576a0e5..457d2d0 100644
--- a/core/camel-management/src/test/java/org/apache/camel/management/ManagedCamelContextTest.java
+++ b/core/camel-management/src/test/java/org/apache/camel/management/ManagedCamelContextTest.java
@@ -28,7 +28,9 @@ import org.apache.camel.api.management.ManagedCamelContext;
import org.apache.camel.api.management.mbean.ManagedCamelContextMBean;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.impl.RefDataFormatTest;
import org.apache.camel.impl.engine.ExplicitCamelContextNameStrategy;
+import org.apache.camel.spi.DataFormat;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.DisabledOnOs;
@@ -237,6 +239,20 @@ public class ManagedCamelContextTest extends ManagementTestSupport {
Assertions.assertTrue(names.contains("seda"));
}
+ @Test
+ public void testDataFormatNames() throws Exception {
+ context.getRegistry().bind("reverse", new RefDataFormatTest.MyReverseDataFormat());
+ DataFormat df = context.resolveDataFormat("reverse");
+ assertNotNull(df);
+
+ MBeanServer mbeanServer = getMBeanServer();
+ ObjectName on = getContextObjectName();
+
+ Set<String> names = (Set<String>) mbeanServer.invoke(on, "dataFormatNames", null, null);
+ Assertions.assertEquals(1, names.size());
+ Assertions.assertTrue(names.contains("reverse"));
+ }
+
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {