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 2013/11/19 10:22:51 UTC
[1/3] git commit: CAMEL-6972: Improved Camel in OSGi MBean naming to
use symbolicName and only use counter when there is a clash. This avoids ugly
looking mbean names out of the box. See ticket for before examples. Also the
examples should not have long
Updated Branches:
refs/heads/master a46217d57 -> 2294508c1
CAMEL-6972: Improved Camel in OSGi MBean naming to use symbolicName and only use counter when there is a clash. This avoids ugly looking mbean names out of the box. See ticket for before examples. Also the examples should not have long symbolicNames in their bundles, so we skip having the org.apache.camel groupId as prefix.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/2294508c
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/2294508c
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/2294508c
Branch: refs/heads/master
Commit: 2294508c1fd5443b1da97744c56f9750374b7b13
Parents: 76e2cf0
Author: Claus Ibsen <da...@apache.org>
Authored: Mon Nov 18 21:55:49 2013 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Nov 19 10:24:26 2013 +0100
----------------------------------------------------------------------
.../impl/DefaultCamelContextNameStrategy.java | 1 +
.../core/osgi/OsgiCamelContextNameStrategy.java | 73 ++++++++++++++++++--
.../core/osgi/OsgiManagementNameStrategy.java | 9 +--
examples/pom.xml | 3 +
4 files changed, 77 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/2294508c/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContextNameStrategy.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContextNameStrategy.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContextNameStrategy.java
index f7fec6c..ef5b95b 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContextNameStrategy.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContextNameStrategy.java
@@ -59,6 +59,7 @@ public class DefaultCamelContextNameStrategy implements CamelContextNameStrategy
}
public static int getNextCounter() {
+ // we want to start counting from 1, so increment first
return CONTEXT_COUNTER.incrementAndGet();
}
http://git-wip-us.apache.org/repos/asf/camel/blob/2294508c/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiCamelContextNameStrategy.java
----------------------------------------------------------------------
diff --git a/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiCamelContextNameStrategy.java b/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiCamelContextNameStrategy.java
index 0f3fba9..033f2e4 100644
--- a/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiCamelContextNameStrategy.java
+++ b/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiCamelContextNameStrategy.java
@@ -16,15 +16,78 @@
*/
package org.apache.camel.core.osgi;
-import org.apache.camel.impl.DefaultCamelContextNameStrategy;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.CamelContextNameStrategy;
import org.osgi.framework.BundleContext;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceReference;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import static org.apache.camel.core.osgi.OsgiCamelContextPublisher.CONTEXT_NAME_PROPERTY;
+
+/**
+ * In OSGi we want to use a {@link CamelContextNameStrategy} that finds a free name in the
+ * OSGi Service Registry to be used for auto assigned names.
+ * <p/>
+ * If there is a name clash in the OSGi registry, then a new candidate name is used by appending
+ * a unique counter.
+ */
+public class OsgiCamelContextNameStrategy implements CamelContextNameStrategy {
-public class OsgiCamelContextNameStrategy extends DefaultCamelContextNameStrategy {
+ private static final Logger LOG = LoggerFactory.getLogger(OsgiCamelContextNameStrategy.class);
+ private static final AtomicInteger CONTEXT_COUNTER = new AtomicInteger(0);
+ private final BundleContext context;
+ private final String prefix = "camel";
+ private volatile String name;
public OsgiCamelContextNameStrategy(BundleContext context) {
- // use bundle id in auto assigned names to make it unique and have the bundle id as prefix
- // which makes the ordering of the camel apps in JMX nicely sorted
- super(context.getBundle().getBundleId() + "-camel");
+ this.context = context;
+ }
+
+ @Override
+ public String getName() {
+ if (name == null) {
+ name = getNextName();
+ }
+ return name;
+ }
+
+ @Override
+ public synchronized String getNextName() {
+ // generate new candidate
+ String candidate = prefix + "-" + getNextCounter();
+
+ boolean clash = false;
+ do {
+ try {
+ LOG.trace("Checking OSGi Service Registry for existence of existing CamelContext with name: {}", candidate);
+ ServiceReference[] refs = context.getServiceReferences(CamelContext.class.getName(), "(" + CONTEXT_NAME_PROPERTY + "=" + candidate + ")");
+ clash = refs != null && refs.length > 0;
+ if (clash) {
+ // generate new candidate
+ candidate = prefix + "-" + getNextCounter();
+ }
+ } catch (InvalidSyntaxException e) {
+ LOG.debug("Error finding free Camel name in OSGi Service Registry due " + e.getMessage() + ". This exception is ignored.", e);
+ break;
+ }
+ } while (clash);
+
+ LOG.debug("Generated CamelContext name for bundle id: {}, clash: {} -> {}", new Object[]{context.getBundle().getBundleId(), clash, name});
+ return candidate;
+ }
+
+ @Override
+ public boolean isFixedName() {
+ return false;
+ }
+
+ public static int getNextCounter() {
+ // we want to start counting from 1, so increment first
+ return CONTEXT_COUNTER.incrementAndGet();
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/2294508c/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiManagementNameStrategy.java
----------------------------------------------------------------------
diff --git a/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiManagementNameStrategy.java b/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiManagementNameStrategy.java
index 9b6a151..f870ca2 100644
--- a/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiManagementNameStrategy.java
+++ b/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiManagementNameStrategy.java
@@ -23,7 +23,7 @@ import org.apache.camel.impl.DefaultManagementNameStrategy;
import org.osgi.framework.BundleContext;
/**
- * OSGI enhanced {@link org.apache.camel.spi.ManagementNameStrategy}.
+ * OSGi enhanced {@link org.apache.camel.spi.ManagementNameStrategy}.
* <p/>
* This {@link org.apache.camel.spi.ManagementNameStrategy} supports the default
* tokens (see {@link DefaultManagementNameStrategy}) and the following additional OSGi specific tokens
@@ -33,8 +33,9 @@ import org.osgi.framework.BundleContext;
* <li>#symbolicName# - The bundle symbolic name</li>
* </ul>
* <p/>
- * This implementation will by default use a name pattern as <tt>#bundleId#-#name#</tt> and in case
- * of a clash, then the pattern will fallback to be using the counter as <tt>#bundleId#-#name#-#counter#</tt>.
+ * This implementation will by default use a name pattern as <tt>#symbolicName#</tt> and in case
+ * of a clash (such as multiple versions of the same symbolicName),
+ * then the pattern will fallback to append an unique counter <tt>#symbolicName#-#counter#</tt>.
*
* @see DefaultManagementNameStrategy
*/
@@ -43,7 +44,7 @@ public class OsgiManagementNameStrategy extends DefaultManagementNameStrategy {
private final BundleContext bundleContext;
public OsgiManagementNameStrategy(CamelContext camelContext, BundleContext bundleContext) {
- super(camelContext, "#bundleId#-#name#", "#bundleId#-#name#-#counter#");
+ super(camelContext, "#symbolicName#", "#symbolicName#-#counter#");
this.bundleContext = bundleContext;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/2294508c/examples/pom.xml
----------------------------------------------------------------------
diff --git a/examples/pom.xml b/examples/pom.xml
index bbed460..78adf10 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -82,6 +82,9 @@
</modules>
<properties>
+ <!-- for symbolicName in OSGi examples we only want the artifactId, eg camel-example-sql -->
+ <!-- as having org.apache.camel as prefix is not needed and makes the name very long -->
+ <camel.osgi.symbolic.name>${project.artifactId}</camel.osgi.symbolic.name>
<skip.starting.camel.context>false</skip.starting.camel.context>
</properties>
[2/3] git commit: Aligned pom.xml with the other components.
Posted by da...@apache.org.
Aligned pom.xml with the other components.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/76e2cf01
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/76e2cf01
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/76e2cf01
Branch: refs/heads/master
Commit: 76e2cf019d555a236f67430586b4da3437349c14
Parents: d96372c
Author: Claus Ibsen <da...@apache.org>
Authored: Mon Nov 18 19:59:28 2013 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Nov 19 10:24:26 2013 +0100
----------------------------------------------------------------------
components/camel-infinispan/pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/76e2cf01/components/camel-infinispan/pom.xml
----------------------------------------------------------------------
diff --git a/components/camel-infinispan/pom.xml b/components/camel-infinispan/pom.xml
index d34043f..7095186 100644
--- a/components/camel-infinispan/pom.xml
+++ b/components/camel-infinispan/pom.xml
@@ -28,7 +28,7 @@
<artifactId>camel-infinispan</artifactId>
<packaging>bundle</packaging>
- <name>Camel-Infinispan Component</name>
+ <name>Camel :: Infinispan</name>
<description>Camel Infinispan support</description>
<properties>
[3/3] git commit: CAMEL-6792: Added CamelManagementName attribute to
mbeans that had CamelId attribute,
so we have both. And added missing CamelId attribute to components having
custom jmx operations.
Posted by da...@apache.org.
CAMEL-6792: Added CamelManagementName attribute to mbeans that had CamelId attribute, so we have both. And added missing CamelId attribute to components having custom jmx operations.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/d96372c5
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/d96372c5
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/d96372c5
Branch: refs/heads/master
Commit: d96372c55f043d430fe1ebb5d4e0d9fdf35fa636
Parents: a46217d
Author: Claus Ibsen <da...@apache.org>
Authored: Mon Nov 18 17:58:38 2013 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Nov 19 10:24:26 2013 +0100
----------------------------------------------------------------------
.../management/mbean/ManagedComponentMBean.java | 3 +
.../management/mbean/ManagedEndpointMBean.java | 3 +
.../mbean/ManagedErrorHandlerMBean.java | 3 +
.../management/mbean/ManagedProcessorMBean.java | 3 +
.../mbean/ManagedResourceEndpointMBean.java | 9 +++
.../api/management/mbean/ManagedRouteMBean.java | 3 +
.../management/mbean/ManagedServiceMBean.java | 3 +
.../camel/component/ResourceEndpoint.java | 15 +++++
.../camel/component/seda/SedaEndpoint.java | 7 ++-
.../camel/component/timer/TimerEndpoint.java | 5 ++
.../camel/component/xslt/XsltEndpoint.java | 5 ++
.../management/mbean/ManagedComponent.java | 4 ++
.../camel/management/mbean/ManagedEndpoint.java | 5 ++
.../management/mbean/ManagedErrorHandler.java | 4 ++
.../management/mbean/ManagedProcessor.java | 4 ++
.../camel/management/mbean/ManagedRoute.java | 4 ++
.../camel/management/mbean/ManagedService.java | 4 ++
.../component/disruptor/DisruptorEndpoint.java | 59 +++++++++++---------
.../apache/camel/component/jms/JmsEndpoint.java | 7 ++-
.../component/zookeeper/ZooKeeperEndpoint.java | 27 +++++++++
20 files changed, 148 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/d96372c5/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedComponentMBean.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedComponentMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedComponentMBean.java
index 60f065e..0b1c9a7 100644
--- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedComponentMBean.java
+++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedComponentMBean.java
@@ -29,4 +29,7 @@ public interface ManagedComponentMBean {
@ManagedAttribute(description = "Camel ID")
String getCamelId();
+ @ManagedAttribute(description = "Camel ManagementName")
+ String getCamelManagementName();
+
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/d96372c5/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedEndpointMBean.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedEndpointMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedEndpointMBean.java
index 6b9c9b8..69206b6 100644
--- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedEndpointMBean.java
+++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedEndpointMBean.java
@@ -23,6 +23,9 @@ public interface ManagedEndpointMBean {
@ManagedAttribute(description = "Camel ID")
String getCamelId();
+ @ManagedAttribute(description = "Camel ManagementName")
+ String getCamelManagementName();
+
@ManagedAttribute(description = "Endpoint URI", mask = true)
String getEndpointUri();
http://git-wip-us.apache.org/repos/asf/camel/blob/d96372c5/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedErrorHandlerMBean.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedErrorHandlerMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedErrorHandlerMBean.java
index 9d0c95c..56ed78d 100644
--- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedErrorHandlerMBean.java
+++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedErrorHandlerMBean.java
@@ -23,6 +23,9 @@ public interface ManagedErrorHandlerMBean {
@ManagedAttribute(description = "Camel ID")
String getCamelId();
+ @ManagedAttribute(description = "Camel ManagementName")
+ String getCamelManagementName();
+
@ManagedAttribute(description = "Does the error handler support redelivery")
boolean isSupportRedelivery();
http://git-wip-us.apache.org/repos/asf/camel/blob/d96372c5/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedProcessorMBean.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedProcessorMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedProcessorMBean.java
index f31ed70..eaf16d5 100644
--- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedProcessorMBean.java
+++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedProcessorMBean.java
@@ -27,6 +27,9 @@ public interface ManagedProcessorMBean extends ManagedPerformanceCounterMBean {
@ManagedAttribute(description = "Camel ID")
String getCamelId();
+ @ManagedAttribute(description = "Camel ManagementName")
+ String getCamelManagementName();
+
@ManagedAttribute(description = "Route ID")
String getRouteId();
http://git-wip-us.apache.org/repos/asf/camel/blob/d96372c5/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedResourceEndpointMBean.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedResourceEndpointMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedResourceEndpointMBean.java
index dbe54fa..26601e9 100644
--- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedResourceEndpointMBean.java
+++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedResourceEndpointMBean.java
@@ -21,6 +21,15 @@ import org.apache.camel.api.management.ManagedOperation;
public interface ManagedResourceEndpointMBean {
+ @ManagedAttribute(description = "Camel context ID")
+ String getCamelId();
+
+ @ManagedAttribute(description = "Camel ManagementName")
+ String getCamelManagementName();
+
+ @ManagedAttribute(description = "Endpoint service state")
+ String getState();
+
@ManagedAttribute(description = "Whether the content is cached")
boolean isContentCache();
http://git-wip-us.apache.org/repos/asf/camel/blob/d96372c5/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java
index 7f90e12..0fb7ff0 100644
--- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java
+++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java
@@ -39,6 +39,9 @@ public interface ManagedRouteMBean extends ManagedPerformanceCounterMBean {
@ManagedAttribute(description = "Camel ID")
String getCamelId();
+ @ManagedAttribute(description = "Camel ManagementName")
+ String getCamelManagementName();
+
@ManagedAttribute(description = "Tracing")
Boolean getTracing();
http://git-wip-us.apache.org/repos/asf/camel/blob/d96372c5/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedServiceMBean.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedServiceMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedServiceMBean.java
index 7f04c84..0ef03d1 100644
--- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedServiceMBean.java
+++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedServiceMBean.java
@@ -27,6 +27,9 @@ public interface ManagedServiceMBean {
@ManagedAttribute(description = "Camel ID")
String getCamelId();
+ @ManagedAttribute(description = "Camel ManagementName")
+ String getCamelManagementName();
+
@ManagedAttribute(description = "Route ID")
String getRouteId();
http://git-wip-us.apache.org/repos/asf/camel/blob/d96372c5/camel-core/src/main/java/org/apache/camel/component/ResourceEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/ResourceEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/ResourceEndpoint.java
index 9b3af1d..8060c40 100644
--- a/camel-core/src/main/java/org/apache/camel/component/ResourceEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/ResourceEndpoint.java
@@ -111,6 +111,21 @@ public abstract class ResourceEndpoint extends ProcessorEndpoint implements Mana
return buffer == null;
}
+ @ManagedAttribute(description = "Camel context ID")
+ public String getCamelId() {
+ return getCamelContext().getName();
+ }
+
+ @ManagedAttribute(description = "Camel ManagementName")
+ public String getCamelManagementName() {
+ return getCamelContext().getManagementName();
+ }
+
+ @ManagedAttribute(description = "Endpoint service state")
+ public String getState() {
+ return getStatus().name();
+ }
+
/**
* Sets whether to use resource content cache or not - default is <tt>false</tt>.
*
http://git-wip-us.apache.org/repos/asf/camel/blob/d96372c5/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
index f2c5fca..9d4ade2 100644
--- a/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
@@ -415,11 +415,16 @@ public class SedaEndpoint extends DefaultEndpoint implements BrowsableEndpoint,
return EndpointHelper.browseRangeMessagesAsXml(this, fromIndex, toIndex, includeBody);
}
- @ManagedAttribute(description = "Camel context name")
+ @ManagedAttribute(description = "Camel context ID")
public String getCamelId() {
return getCamelContext().getName();
}
+ @ManagedAttribute(description = "Camel ManagementName")
+ public String getCamelManagementName() {
+ return getCamelContext().getManagementName();
+ }
+
@ManagedAttribute(description = "Endpoint service state")
public String getState() {
return getStatus().name();
http://git-wip-us.apache.org/repos/asf/camel/blob/d96372c5/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
index 61e3b88..5b4dc3f 100644
--- a/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
@@ -184,6 +184,11 @@ public class TimerEndpoint extends DefaultEndpoint implements MultipleConsumersS
return this.getCamelContext().getName();
}
+ @ManagedAttribute(description = "Camel ManagementName")
+ public String getCamelManagementName() {
+ return this.getCamelContext().getManagementName();
+ }
+
@ManagedAttribute(description = "Endpoint Uri")
public String getEndpointUri() {
return super.getEndpointUri();
http://git-wip-us.apache.org/repos/asf/camel/blob/d96372c5/camel-core/src/main/java/org/apache/camel/component/xslt/XsltEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/xslt/XsltEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/xslt/XsltEndpoint.java
index aa91b1a..f6f505c 100644
--- a/camel-core/src/main/java/org/apache/camel/component/xslt/XsltEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/xslt/XsltEndpoint.java
@@ -68,6 +68,11 @@ public class XsltEndpoint extends ProcessorEndpoint {
return getCamelContext().getName();
}
+ @ManagedAttribute(description = "Camel ManagementName")
+ public String getCamelManagementName() {
+ return getCamelContext().getManagementName();
+ }
+
public XsltEndpoint findOrCreateEndpoint(String uri, String newResourceUri) {
String newUri = uri.replace(resourceUri, newResourceUri);
LOG.trace("Getting endpoint with URI: {}", newUri);
http://git-wip-us.apache.org/repos/asf/camel/blob/d96372c5/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedComponent.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedComponent.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedComponent.java
index b301d66..1696391 100644
--- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedComponent.java
@@ -64,6 +64,10 @@ public class ManagedComponent implements ManagedInstance, ManagedComponentMBean
return component.getCamelContext().getName();
}
+ public String getCamelManagementName() {
+ return component.getCamelContext().getManagementName();
+ }
+
public Object getInstance() {
return component;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/d96372c5/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEndpoint.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEndpoint.java
index 83771a4..deffddf 100644
--- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEndpoint.java
@@ -46,6 +46,11 @@ public class ManagedEndpoint implements ManagedInstance, ManagedEndpointMBean {
}
@Override
+ public String getCamelManagementName() {
+ return endpoint.getCamelContext().getManagementName();
+ }
+
+ @Override
public String getEndpointUri() {
return endpoint.getEndpointUri();
}
http://git-wip-us.apache.org/repos/asf/camel/blob/d96372c5/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedErrorHandler.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedErrorHandler.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedErrorHandler.java
index 69cb4bf..d4fe005 100644
--- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedErrorHandler.java
+++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedErrorHandler.java
@@ -61,6 +61,10 @@ public class ManagedErrorHandler implements ManagedErrorHandlerMBean {
return routeContext.getCamelContext().getName();
}
+ public String getCamelManagementName() {
+ return routeContext.getCamelContext().getManagementName();
+ }
+
public boolean isSupportRedelivery() {
return errorHandler instanceof RedeliveryErrorHandler;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/d96372c5/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java
index 885bc3b..c3d6dd3 100644
--- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java
+++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java
@@ -93,6 +93,10 @@ public class ManagedProcessor extends ManagedPerformanceCounter implements Manag
return context.getName();
}
+ public String getCamelManagementName() {
+ return context.getManagementName();
+ }
+
public String getRouteId() {
if (route != null) {
return route.getId();
http://git-wip-us.apache.org/repos/asf/camel/blob/d96372c5/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java
index 1c6495a..b58b49c 100644
--- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java
+++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java
@@ -108,6 +108,10 @@ public class ManagedRoute extends ManagedPerformanceCounter implements TimerList
return context.getName();
}
+ public String getCamelManagementName() {
+ return context.getManagementName();
+ }
+
public Boolean getTracing() {
return route.getRouteContext().isTracing();
}
http://git-wip-us.apache.org/repos/asf/camel/blob/d96372c5/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedService.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedService.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedService.java
index 1eb11b7..b5dffe0 100644
--- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedService.java
+++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedService.java
@@ -78,6 +78,10 @@ public class ManagedService implements ManagedInstance, ManagedServiceMBean {
return context.getName();
}
+ public String getCamelManagementName() {
+ return context.getManagementName();
+ }
+
public String getRouteId() {
if (route != null) {
return route.getId();
http://git-wip-us.apache.org/repos/asf/camel/blob/d96372c5/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorEndpoint.java b/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorEndpoint.java
index 9ed263c..9ad8cfb 100644
--- a/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorEndpoint.java
+++ b/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorEndpoint.java
@@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.camel.component.disruptor;
import java.util.Collection;
@@ -32,8 +31,10 @@ import org.apache.camel.Exchange;
import org.apache.camel.MultipleConsumersSupport;
import org.apache.camel.Processor;
import org.apache.camel.Producer;
+import org.apache.camel.ServiceStatus;
import org.apache.camel.WaitForTaskToComplete;
import org.apache.camel.api.management.ManagedAttribute;
+import org.apache.camel.api.management.ManagedResource;
import org.apache.camel.impl.DefaultEndpoint;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -43,20 +44,16 @@ import org.slf4j.LoggerFactory;
* for asynchronous SEDA exchanges on an
* <a href="https://github.com/LMAX-Exchange/disruptor">LMAX Disruptor</a> within a CamelContext
*/
-
+@ManagedResource(description = "Managed Disruptor Endpoint")
public class DisruptorEndpoint extends DefaultEndpoint implements MultipleConsumersSupport {
public static final String DISRUPTOR_IGNORE_EXCHANGE = "disruptor.ignoreExchange";
private static final Logger LOGGER = LoggerFactory.getLogger(DisruptorEndpoint.class);
-
private final int concurrentConsumers;
private final boolean multipleConsumers;
private WaitForTaskToComplete waitForTaskToComplete = WaitForTaskToComplete.IfReplyExpected;
-
private long timeout = 30000;
-
private boolean blockWhenFull;
-
private final Set<DisruptorProducer> producers = new CopyOnWriteArraySet<DisruptorProducer>();
private final Set<DisruptorConsumer> consumers = new CopyOnWriteArraySet<DisruptorConsumer>();
@@ -72,6 +69,31 @@ public class DisruptorEndpoint extends DefaultEndpoint implements MultipleConsum
this.blockWhenFull = blockWhenFull;
}
+ @ManagedAttribute(description = "Camel ID")
+ public String getCamelId() {
+ return getCamelContext().getName();
+ }
+
+ @ManagedAttribute(description = "Camel ManagementName")
+ public String getCamelManagementName() {
+ return getCamelContext().getManagementName();
+ }
+
+ @ManagedAttribute(description = "Endpoint Uri", mask = true)
+ public String getEndpointUri() {
+ return super.getEndpointUri();
+ }
+
+ @ManagedAttribute(description = "Service State")
+ public String getState() {
+ ServiceStatus status = this.getStatus();
+ // if no status exists then its stopped
+ if (status == null) {
+ status = ServiceStatus.Stopped;
+ }
+ return status.name();
+ }
+
@ManagedAttribute(description = "Buffer max capacity")
public int getBufferSize() {
return disruptorReference.getBufferSize();
@@ -87,7 +109,6 @@ public class DisruptorEndpoint extends DefaultEndpoint implements MultipleConsum
return getDisruptor().getPendingExchangeCount();
}
-
@ManagedAttribute(description = "Number of concurrent consumers")
public int getConcurrentConsumers() {
return concurrentConsumers;
@@ -165,23 +186,18 @@ public class DisruptorEndpoint extends DefaultEndpoint implements MultipleConsum
@Override
protected void doStart() throws Exception {
- LOGGER.debug("Start enpoint {}", this);
// notify reference we are shutting down this endpoint
disruptorReference.addEndpoint(this);
-
- super.doStart(); //To change body of overridden methods use File | Settings | File Templates.
+ super.doStart();
}
@Override
protected void doStop() throws Exception {
- LOGGER.debug("Stop enpoint {}", this);
// notify reference we are shutting down this endpoint
disruptorReference.removeEndpoint(this);
-
- super.doStop(); //To change body of overridden methods use File | Settings | File Templates.
+ super.doStop();
}
-
@Override
protected void doShutdown() throws Exception {
// notify component we are shutting down this endpoint
@@ -204,35 +220,24 @@ public class DisruptorEndpoint extends DefaultEndpoint implements MultipleConsum
throw new IllegalStateException(
"Multiple consumers for the same endpoint is not allowed: " + this);
}
-
if (consumers.add(consumer)) {
LOGGER.debug("Starting consumer {} on endpoint {}", consumer, getEndpointUri());
-
getDisruptor().reconfigure();
-
} else {
- LOGGER.debug("Tried to start Consumer {} on endpoint {} but it was already started", consumer,
- getEndpointUri());
+ LOGGER.debug("Tried to start Consumer {} on endpoint {} but it was already started", consumer, getEndpointUri());
}
}
-
}
void onStopped(final DisruptorConsumer consumer) throws Exception {
synchronized (this) {
-
if (consumers.remove(consumer)) {
LOGGER.debug("Stopping consumer {} on endpoint {}", consumer, getEndpointUri());
-
getDisruptor().reconfigure();
-
} else {
- LOGGER.debug("Tried to stop Consumer {} on endpoint {} but it was already stopped", consumer,
- getEndpointUri());
+ LOGGER.debug("Tried to stop Consumer {} on endpoint {} but it was already stopped", consumer, getEndpointUri());
}
-
-
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/d96372c5/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
index 17204b5..af15397 100644
--- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
+++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
@@ -1148,11 +1148,16 @@ public class JmsEndpoint extends DefaultEndpoint implements HeaderFilterStrategy
configuration.setReplyToType(type);
}
- @ManagedAttribute(description = "Camel id")
+ @ManagedAttribute(description = "Camel ID")
public String getCamelId() {
return getCamelContext().getName();
}
+ @ManagedAttribute(description = "Camel ManagementName")
+ public String getCamelManagementName() {
+ return getCamelContext().getManagementName();
+ }
+
@ManagedAttribute(description = "Endpoint Uri", mask = true)
@Override
public String getEndpointUri() {
http://git-wip-us.apache.org/repos/asf/camel/blob/d96372c5/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperEndpoint.java b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperEndpoint.java
index 0e26004..5200366 100644
--- a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperEndpoint.java
+++ b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperEndpoint.java
@@ -21,6 +21,7 @@ import java.util.List;
import org.apache.camel.Consumer;
import org.apache.camel.Processor;
import org.apache.camel.Producer;
+import org.apache.camel.ServiceStatus;
import org.apache.camel.api.management.ManagedAttribute;
import org.apache.camel.api.management.ManagedOperation;
import org.apache.camel.api.management.ManagedResource;
@@ -66,6 +67,32 @@ public class ZooKeeperEndpoint extends DefaultEndpoint {
return connectionManager;
}
+ @ManagedAttribute(description = "Camel ID")
+ public String getCamelId() {
+ return getCamelContext().getName();
+ }
+
+ @ManagedAttribute(description = "Camel ManagementName")
+ public String getCamelManagementName() {
+ return getCamelContext().getManagementName();
+ }
+
+ @ManagedAttribute(description = "Endpoint Uri", mask = true)
+ @Override
+ public String getEndpointUri() {
+ return super.getEndpointUri();
+ }
+
+ @ManagedAttribute(description = "Service State")
+ public String getState() {
+ ServiceStatus status = this.getStatus();
+ // if no status exists then its stopped
+ if (status == null) {
+ status = ServiceStatus.Stopped;
+ }
+ return status.name();
+ }
+
@ManagedAttribute
public void setPath(String path) {
getConfiguration().setPath(path);