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:01 UTC
[camel] 01/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 7dc9b6ea4be62af9eaadebee93fec7befac26e34
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sun Dec 26 10:30:42 2021 +0100
CAMEL-17383: camel-management - Add operations to list the registered components, data formats and languages
---
.../main/java/org/apache/camel/CamelContext.java | 4 +---
.../camel/impl/lw/LightweightCamelContext.java | 1 -
.../management/mbean/ManagedCamelContextMBean.java | 13 +++++++++++
.../management/mbean/ManagedCamelContext.java | 10 +++++++++
.../camel/management/ManagedCamelContextTest.java | 25 ++++++++++++++++++++++
5 files changed, 49 insertions(+), 4 deletions(-)
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 c9116f4..ec39a5b 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
@@ -788,10 +788,8 @@ public interface CamelContext extends CamelContextLifecycle, RuntimeConfiguratio
/**
* Gets a readonly list with the names of the languages currently registered.
*
- * @return a readonly list with the names of the languages
- * @deprecated not in use
+ * @return a readonly list with the names of the languages
*/
- @Deprecated
Set<String> getLanguageNames();
/**
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 5c1732c..a2b5772 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
@@ -665,7 +665,6 @@ public class LightweightCamelContext implements ExtendedCamelContext, CatalogCam
}
@Override
- @Deprecated
public Set<String> getLanguageNames() {
return delegate.getLanguageNames();
}
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 b2470b3..5cf1e17 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
@@ -17,6 +17,7 @@
package org.apache.camel.api.management.mbean;
import java.util.Map;
+import java.util.Set;
import java.util.concurrent.TimeUnit;
import org.apache.camel.api.management.ManagedAttribute;
@@ -236,4 +237,16 @@ public interface ManagedCamelContextMBean extends ManagedPerformanceCounterMBean
@ManagedOperation(description = "Reset counters")
void reset(boolean includeRoutes) throws Exception;
+ /**
+ * The names of the components currently registered
+ */
+ @ManagedOperation(description = "The names of the components currently registered")
+ Set<String> componentNames() throws Exception;
+
+ /**
+ * The names of the languages currently registered
+ */
+ @ManagedOperation(description = "The names of the languages currently registered")
+ Set<String> languageNames() 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 e3808f5..49e0fac 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
@@ -731,6 +731,16 @@ public class ManagedCamelContext extends ManagedPerformanceCounter implements Ti
}
}
+ @Override
+ public Set<String> componentNames() throws Exception {
+ return context.getComponentNames();
+ }
+
+ @Override
+ public Set<String> languageNames() throws Exception {
+ return context.getLanguageNames();
+ }
+
/**
* 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 bc2d07b..576a0e5 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
@@ -18,6 +18,7 @@ package org.apache.camel.management;
import java.util.HashMap;
import java.util.Map;
+import java.util.Set;
import javax.management.MBeanServer;
import javax.management.ObjectName;
@@ -28,6 +29,7 @@ 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.engine.ExplicitCamelContextNameStrategy;
+import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.DisabledOnOs;
import org.junit.jupiter.api.condition.OS;
@@ -212,6 +214,29 @@ public class ManagedCamelContextTest extends ManagementTestSupport {
assertFalse(registered, "Should not be registered " + seda);
}
+ @Test
+ public void testLanguageNames() throws Exception {
+ MBeanServer mbeanServer = getMBeanServer();
+ ObjectName on = getContextObjectName();
+
+ Set<String> names = (Set<String>) mbeanServer.invoke(on, "languageNames", null, null);
+ Assertions.assertEquals(2, names.size());
+ Assertions.assertTrue(names.contains("constant"));
+ Assertions.assertTrue(names.contains("simple"));
+ }
+
+ @Test
+ public void testComponentNames() throws Exception {
+ MBeanServer mbeanServer = getMBeanServer();
+ ObjectName on = getContextObjectName();
+
+ Set<String> names = (Set<String>) mbeanServer.invoke(on, "componentNames", null, null);
+ Assertions.assertEquals(3, names.size());
+ Assertions.assertTrue(names.contains("direct"));
+ Assertions.assertTrue(names.contains("mock"));
+ Assertions.assertTrue(names.contains("seda"));
+ }
+
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {