Author: davsclaus
Date: Thu Apr 4 12:00:02 2013
New Revision: 1464481
URL: http://svn.apache.org/r1464481
Log:
CAMEL-6237: Added camel karaf command for reset route stats.
Added:
camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteResetStats.java
- copied, changed from r1464379,
camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteStart.java
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java
camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteProfile.java
camel/trunk/platforms/karaf/commands/src/main/resources/OSGI-INF/blueprint/camel-commands.xml
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java?rev=1464481&r1=1464480&r2=1464481&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java
Thu Apr 4 12:00:02 2013
@@ -231,7 +231,7 @@ public class ManagedRoute extends Manage
sb.append(" <processorStats>\n");
MBeanServer server =
getContext().getManagementStrategy().getManagementAgent().getMBeanServer();
if (server != null) {
- // get all the processor mbeans and sort them accordinly to
their index
+ // get all the processor mbeans and sort them accordingly to
their index
ObjectName query =
ObjectName.getInstance("org.apache.camel:context=*/" +
getContext().getManagementName() + ",type=processors,*");
Set<ObjectName> names = server.queryNames(query, null);
List<ManagedProcessorMBean> mps = new
ArrayList<ManagedProcessorMBean>();
Modified:
camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteProfile.java
URL:
http://svn.apache.org/viewvc/camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteProfile.java?rev=1464481&r1=1464480&r2=1464481&view=diff
==============================================================================
---
camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteProfile.java
(original)
+++
camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteProfile.java
Thu Apr 4 12:00:02 2013
@@ -30,6 +30,7 @@ import org.apache.camel.management.Defau
import org.apache.camel.spi.ManagementAgent;
import org.apache.camel.util.ProcessorStatDump;
import org.apache.camel.util.RouteStatDump;
+import org.apache.camel.util.URISupport;
import org.apache.felix.gogo.commands.Argument;
import org.apache.felix.gogo.commands.Command;
import org.apache.karaf.shell.console.OsgiCommandSupport;
@@ -68,6 +69,7 @@ public class RouteProfile extends OsgiCo
Unmarshaller unmarshaller = context.createUnmarshaller();
System.out.println(StringEscapeUtils.unescapeJava("\u001B[1m\u001B[33mCamel
Route " + camelRoute.getId() + "\u001B[0m"));
+ System.out.println(StringEscapeUtils.unescapeJava("\tEndpoint uri: " +
URISupport.sanitizeUri(camelRoute.getEndpoint().getEndpointUri())));
System.out.println(StringEscapeUtils.unescapeJava("\tCamel Context: "
+ camelRoute.getRouteContext().getCamelContext().getName()));
System.out.println("");
System.out.println(StringEscapeUtils.unescapeJava("\u001B[1mProfile\u001B[0m"));
@@ -81,7 +83,6 @@ public class RouteProfile extends OsgiCo
if (iterator.hasNext()) {
ObjectName routeMBean = iterator.next();
- // TODO: add a row with the route endpoint, so you can see
that
// TODO: add column with total time (delta for self time)
String xml = (String) mBeanServer.invoke(routeMBean,
"dumpRouteStatsAsXml", new Object[]{Boolean.FALSE, Boolean.TRUE}, new
String[]{"boolean", "boolean"});
Copied:
camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteResetStats.java
(from r1464379,
camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteStart.java)
URL:
http://svn.apache.org/viewvc/camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteResetStats.java?p2=camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteResetStats.java&p1=camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteStart.java&r1=1464379&r2=1464481&rev=1464481&view=diff
==============================================================================
---
camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteStart.java
(original)
+++
camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteResetStats.java
Thu Apr 4 12:00:02 2013
@@ -16,19 +16,58 @@
*/
package org.apache.camel.karaf.commands;
+import java.util.Iterator;
+import java.util.Set;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+
import org.apache.camel.CamelContext;
import org.apache.camel.Route;
+import org.apache.camel.management.DefaultManagementAgent;
+import org.apache.camel.spi.ManagementAgent;
import org.apache.felix.gogo.commands.Command;
/**
- * Command to start a route.
+ * Command to reset route stats.
*/
-@Command(scope = "camel", name = "route-start", description = "Start a Camel
route or a group of routes")
-public class RouteStart extends AbstractRouteCommand {
+@Command(scope = "camel", name = "route-reset-stats", description = "Reset
performance stats on a route or group of routes")
+public class RouteResetStats extends AbstractRouteCommand {
@Override
public void executeOnRoute(CamelContext camelContext, Route camelRoute)
throws Exception {
- camelContext.startRoute(camelRoute.getId());
+ String id = camelRoute.getId();
+
+ ManagementAgent agent =
camelContext.getManagementStrategy().getManagementAgent();
+ if (agent != null) {
+ MBeanServer mBeanServer = agent.getMBeanServer();
+
+ // reset route mbeans
+ ObjectName query =
ObjectName.getInstance(DefaultManagementAgent.DEFAULT_DOMAIN +
":type=routes,*");
+ Set<ObjectName> set = mBeanServer.queryNames(query, null);
+ Iterator<ObjectName> iterator = set.iterator();
+ while (iterator.hasNext()) {
+ ObjectName routeMBean = iterator.next();
+
+ String camelId = (String) mBeanServer.getAttribute(routeMBean,
"CamelId");
+ if (camelId != null && camelId.equals(camelContext.getName()))
{
+ mBeanServer.invoke(routeMBean, "reset", null, null);
+ }
+ }
+
+ // reset processor mbeans that belongs to the given route
+ query =
ObjectName.getInstance(DefaultManagementAgent.DEFAULT_DOMAIN +
":type=processors,*");
+ set = mBeanServer.queryNames(query, null);
+ iterator = set.iterator();
+ while (iterator.hasNext()) {
+ ObjectName processorMBean = iterator.next();
+ // must belong to this camel context and match the route id
+ String camelId = (String)
mBeanServer.getAttribute(processorMBean, "CamelId");
+ String routeId = (String)
mBeanServer.getAttribute(processorMBean, "RouteId");
+ if (camelId != null && camelId.equals(camelContext.getName())
&& routeId != null && routeId.equals(id)) {
+ mBeanServer.invoke(processorMBean, "reset", null, null);
+ }
+ }
+ }
}
}
Modified:
camel/trunk/platforms/karaf/commands/src/main/resources/OSGI-INF/blueprint/camel-commands.xml
URL:
http://svn.apache.org/viewvc/camel/trunk/platforms/karaf/commands/src/main/resources/OSGI-INF/blueprint/camel-commands.xml?rev=1464481&r1=1464480&r2=1464481&view=diff
==============================================================================
---
camel/trunk/platforms/karaf/commands/src/main/resources/OSGI-INF/blueprint/camel-commands.xml
(original)
+++
camel/trunk/platforms/karaf/commands/src/main/resources/OSGI-INF/blueprint/camel-commands.xml
Thu Apr 4 12:00:02 2013
@@ -77,6 +77,15 @@
<null/>
</completers>
</command>
+ <command name="camel/route-reset-stats">
+ <action class="org.apache.camel.karaf.commands.RouteResetStats">
+ <property name="camelController" ref="camelController"/>
+ </action>
+ <completers>
+ <ref component-id="routeCompleter"/>
+ <null/>
+ </completers>
+ </command>
<command name="camel/route-show">
<action class="org.apache.camel.karaf.commands.RouteShow">
<property name="camelController" ref="camelController"/>