Repository: camel Updated Branches: refs/heads/master 5cddef75f -> 4a0dfd0b6
CAMEL-8443: Added routeDescription to java dsl to make it easier to set it. And use that for route description over JMX. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/d43d1028 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/d43d1028 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/d43d1028 Branch: refs/heads/master Commit: d43d1028d1b12be5f749b7c4c1f4eaa7a1568317 Parents: 5cddef7 Author: Claus Ibsen <davscl...@apache.org> Authored: Fri Mar 6 09:49:45 2015 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Fri Mar 6 09:49:45 2015 +0100 ---------------------------------------------------------------------- .../src/main/java/org/apache/camel/Route.java | 10 ++++++++++ .../org/apache/camel/impl/DefaultRoute.java | 5 +++++ .../apache/camel/impl/DefaultRouteContext.java | 1 + .../camel/management/mbean/ManagedRoute.java | 2 +- .../apache/camel/model/ProcessorDefinition.java | 20 ++++++++++++++++++++ .../org/apache/camel/model/RouteDefinition.java | 13 +++++++++++++ .../ManagedRouteStopAndStartTest.java | 8 +++++++- 7 files changed, 57 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/d43d1028/camel-core/src/main/java/org/apache/camel/Route.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/Route.java b/camel-core/src/main/java/org/apache/camel/Route.java index e53c42c..162f07a 100644 --- a/camel-core/src/main/java/org/apache/camel/Route.java +++ b/camel-core/src/main/java/org/apache/camel/Route.java @@ -36,6 +36,7 @@ public interface Route extends EndpointAware { String PARENT_PROPERTY = "parent"; String GROUP_PROPERTY = "group"; String REST_PROPERTY = "rest"; + String DESCRIPTION_PROPERTY = "description"; /** * Gets the route id @@ -66,6 +67,15 @@ public interface Route extends EndpointAware { Map<String, Object> getProperties(); /** + * Gets the route description (if any has been configured). + * <p/> + * The description is configured using the {@link #DESCRIPTION_PROPERTY} as key in the {@link #getProperties()}. + * + * @return the description, or <tt>null</tt> if no description has been configured. + */ + String getDescription(); + + /** * Gets the route context * * @return the route context http://git-wip-us.apache.org/repos/asf/camel/blob/d43d1028/camel-core/src/main/java/org/apache/camel/impl/DefaultRoute.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultRoute.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultRoute.java index 61b1e62..0d214c0 100644 --- a/camel-core/src/main/java/org/apache/camel/impl/DefaultRoute.java +++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultRoute.java @@ -76,6 +76,11 @@ public abstract class DefaultRoute extends ServiceSupport implements Route { return properties; } + public String getDescription() { + Object value = properties.get(Route.DESCRIPTION_PROPERTY); + return value != null ? value.toString() : null; + } + public void onStartingServices(List<Service> services) throws Exception { addServices(services); } http://git-wip-us.apache.org/repos/asf/camel/blob/d43d1028/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java index 39b6089..52e4328 100644 --- a/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java +++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java @@ -196,6 +196,7 @@ public class DefaultRouteContext implements RouteContext { Route edcr = new EventDrivenConsumerRoute(this, getEndpoint(), internal); edcr.getProperties().put(Route.ID_PROPERTY, routeId); edcr.getProperties().put(Route.PARENT_PROPERTY, Integer.toHexString(route.hashCode())); + edcr.getProperties().put(Route.DESCRIPTION_PROPERTY, route.getDescriptionText()); if (route.getGroup() != null) { edcr.getProperties().put(Route.GROUP_PROPERTY, route.getGroup()); } http://git-wip-us.apache.org/repos/asf/camel/blob/d43d1028/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 631a0e0..3bd1dad 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 @@ -63,7 +63,7 @@ public class ManagedRoute extends ManagedPerformanceCounter implements TimerList public ManagedRoute(ModelCamelContext context, Route route) { this.route = route; this.context = context; - this.description = route.toString(); + this.description = route.getDescription(); boolean enabled = context.getManagementStrategy().getStatisticsLevel() != ManagementStatisticsLevel.Off; setStatisticsEnabled(enabled); } http://git-wip-us.apache.org/repos/asf/camel/blob/d43d1028/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java b/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java index 3a114a8..7d440f8 100644 --- a/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java +++ b/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java @@ -960,6 +960,26 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type> } /** + * Set the route description for this route + * + * @param description the route description + * @return the builder + */ + @SuppressWarnings("unchecked") + public Type routeDescription(String description) { + ProcessorDefinition<?> def = this; + + RouteDefinition route = ProcessorDefinitionHelper.getRoute(def); + if (route != null) { + DescriptionDefinition desc = new DescriptionDefinition(); + desc.setText(description); + route.setDescription(desc); + } + + return (Type) this; + } + + /** * <a href="http://camel.apache.org/multicast.html">Multicast EIP:</a> * Multicasts messages to all its child outputs; so that each processor and * destination gets a copy of the original message to avoid the processors http://git-wip-us.apache.org/repos/asf/camel/blob/d43d1028/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java b/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java index 5533090..54e7e55 100644 --- a/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java +++ b/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java @@ -364,6 +364,19 @@ public class RouteDefinition extends ProcessorDefinition<RouteDefinition> { } /** + * Set the route description for this route + * + * @param description the route description + * @return the builder + */ + public RouteDefinition routeDescription(String description) { + DescriptionDefinition desc = new DescriptionDefinition(); + desc.setText(description); + setDescription(desc); + return this; + } + + /** * Disable stream caching for this route. * * @return the builder http://git-wip-us.apache.org/repos/asf/camel/blob/d43d1028/camel-core/src/test/java/org/apache/camel/management/ManagedRouteStopAndStartTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedRouteStopAndStartTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedRouteStopAndStartTest.java index 3f08854..b6d6aa7 100644 --- a/camel-core/src/test/java/org/apache/camel/management/ManagedRouteStopAndStartTest.java +++ b/camel-core/src/test/java/org/apache/camel/management/ManagedRouteStopAndStartTest.java @@ -56,6 +56,12 @@ public class ManagedRouteStopAndStartTest extends ManagementTestSupport { String state = (String) mbeanServer.getAttribute(on, "State"); assertEquals("Should be started", ServiceStatus.Started.name(), state); + String id = (String) mbeanServer.getAttribute(on, "RouteId"); + assertEquals("foo", id); + + String description = (String) mbeanServer.getAttribute(on, "Description"); + assertEquals("This is the foo route", description); + // stop mbeanServer.invoke(on, "stop", null, null); @@ -98,7 +104,7 @@ public class ManagedRouteStopAndStartTest extends ManagementTestSupport { return new RouteBuilder() { @Override public void configure() throws Exception { - from("file://target/managed") + from("file://target/managed").routeId("foo").routeDescription("This is the foo route") .convertBodyTo(String.class) .to("mock:result"); }