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 2014/12/10 18:07:04 UTC

[2/4] camel git commit: CAMEL-8044: Camel commands should be more reusable for remote JVMs

CAMEL-8044: Camel commands should be more reusable for remote JVMs


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/d86c5c42
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/d86c5c42
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/d86c5c42

Branch: refs/heads/master
Commit: d86c5c4273d2c6a7419f575fe1153966f1153bd0
Parents: 25fa34d
Author: Claus Ibsen <da...@apache.org>
Authored: Wed Dec 10 18:02:52 2014 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed Dec 10 18:02:52 2014 +0100

----------------------------------------------------------------------
 .../camel/commands/AbstractCamelController.java | 44 ++++++++++++++++++++
 .../camel/commands/AbstractRouteCommand.java    |  4 +-
 .../apache/camel/commands/CamelController.java  | 32 ++++++++++++++
 .../apache/camel/commands/RouteInfoCommand.java |  9 ++--
 .../camel/commands/RouteProfileCommand.java     | 11 +++--
 .../camel/commands/RouteResumeCommand.java      |  4 +-
 .../apache/camel/commands/RouteShowCommand.java |  6 +--
 .../camel/commands/RouteStartCommand.java       |  6 +--
 .../apache/camel/commands/RouteStopCommand.java |  6 +--
 .../camel/commands/RouteSuspendCommand.java     |  6 +--
 10 files changed, 97 insertions(+), 31 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/d86c5c42/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/AbstractCamelController.java
----------------------------------------------------------------------
diff --git a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/AbstractCamelController.java b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/AbstractCamelController.java
index 96868e5..c6ae955 100644
--- a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/AbstractCamelController.java
+++ b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/AbstractCamelController.java
@@ -134,6 +134,50 @@ public abstract class AbstractCamelController implements CamelController {
         }
     }
 
+    public void startRoute(String camelContextName, String routeId) {
+        CamelContext context = getCamelContext(camelContextName);
+        if (context != null) {
+            try {
+                context.startRoute(routeId);
+            } catch (Exception e) {
+                throw ObjectHelper.wrapRuntimeCamelException(e);
+            }
+        }
+    }
+
+    public void stopRoute(String camelContextName, String routeId) {
+        CamelContext context = getCamelContext(camelContextName);
+        if (context != null) {
+            try {
+                context.stopRoute(routeId);
+            } catch (Exception e) {
+                throw ObjectHelper.wrapRuntimeCamelException(e);
+            }
+        }
+    }
+
+    public void suspendRoute(String camelContextName, String routeId) {
+        CamelContext context = getCamelContext(camelContextName);
+        if (context != null) {
+            try {
+                context.suspendRoute(routeId);
+            } catch (Exception e) {
+                throw ObjectHelper.wrapRuntimeCamelException(e);
+            }
+        }
+    }
+
+    public void resumeRoute(String camelContextName, String routeId) {
+        CamelContext context = getCamelContext(camelContextName);
+        if (context != null) {
+            try {
+                context.resumeRoute(routeId);
+            } catch (Exception e) {
+                throw ObjectHelper.wrapRuntimeCamelException(e);
+            }
+        }
+    }
+
     @SuppressWarnings("deprecation")
     public String getRouteModelAsXml(String routeId, String camelContextName) {
         CamelContext context = this.getCamelContext(camelContextName);

http://git-wip-us.apache.org/repos/asf/camel/blob/d86c5c42/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/AbstractRouteCommand.java
----------------------------------------------------------------------
diff --git a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/AbstractRouteCommand.java b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/AbstractRouteCommand.java
index fc1c83f..81fd2a6 100644
--- a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/AbstractRouteCommand.java
+++ b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/AbstractRouteCommand.java
@@ -59,7 +59,7 @@ public abstract class AbstractRouteCommand extends AbstractCamelCommand {
             ClassLoader oldClassloader = Thread.currentThread().getContextClassLoader();
             Thread.currentThread().setContextClassLoader(camelContext.getApplicationContextClassLoader());
             try {
-                executeOnRoute(camelController, camelContext, camelRoute.getId(), out, err);
+                executeOnRoute(camelController, camelContext.getName(), camelRoute.getId(), out, err);
             } finally {
                 Thread.currentThread().setContextClassLoader(oldClassloader);
             }
@@ -68,7 +68,7 @@ public abstract class AbstractRouteCommand extends AbstractCamelCommand {
         return null;
     }
 
-    public abstract void executeOnRoute(CamelController camelController, CamelContext camelContext, String routeId, PrintStream out, PrintStream err) throws Exception;
+    public abstract void executeOnRoute(CamelController camelController, String contextName, String routeId, PrintStream out, PrintStream err) throws Exception;
 
     /**
      * To sort the routes.

http://git-wip-us.apache.org/repos/asf/camel/blob/d86c5c42/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/CamelController.java
----------------------------------------------------------------------
diff --git a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/CamelController.java b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/CamelController.java
index 881361d..8eca54e 100644
--- a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/CamelController.java
+++ b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/CamelController.java
@@ -70,6 +70,38 @@ public interface CamelController {
     void resetRouteStats(String camelContextName);
 
     /**
+     * Starts the given route
+     *
+     * @param camelContextName the Camel context.
+     * @param routeId          the route ID.
+     */
+    void startRoute(String camelContextName, String routeId);
+
+    /**
+     * Stops the given route
+     *
+     * @param camelContextName the Camel context.
+     * @param routeId          the route ID.
+     */
+    void stopRoute(String camelContextName, String routeId);
+
+    /**
+     * Suspends the given route
+     *
+     * @param camelContextName the Camel context.
+     * @param routeId          the route ID.
+     */
+    void suspendRoute(String camelContextName, String routeId);
+
+    /**
+     * Resumes the given route
+     *
+     * @param camelContextName the Camel context.
+     * @param routeId          the route ID.
+     */
+    void resumeRoute(String camelContextName, String routeId);
+
+    /**
      * Return the definition of a route as XML identified by a ID and a Camel context.
      *
      * @param routeId          the route ID.

http://git-wip-us.apache.org/repos/asf/camel/blob/d86c5c42/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteInfoCommand.java
----------------------------------------------------------------------
diff --git a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteInfoCommand.java b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteInfoCommand.java
index 982740d..e02a9fa 100644
--- a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteInfoCommand.java
+++ b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteInfoCommand.java
@@ -23,7 +23,6 @@ import java.util.Date;
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.Unmarshaller;
 
-import org.apache.camel.CamelContext;
 import org.apache.camel.util.RouteStatDump;
 
 /**
@@ -47,13 +46,13 @@ public class RouteInfoCommand extends AbstractRouteCommand {
     }
 
     @Override
-    public void executeOnRoute(CamelController camelController, CamelContext camelContext, String routeId, PrintStream out, PrintStream err) throws Exception {
+    public void executeOnRoute(CamelController camelController, String contextName, String routeId, PrintStream out, PrintStream err) throws Exception {
         out.println(stringEscape.unescapeJava("\u001B[1m\u001B[33mCamel Route " + routeId + "\u001B[0m"));
-        out.println(stringEscape.unescapeJava("\tCamel Context: " + camelContext.getName()));
+        out.println(stringEscape.unescapeJava("\tCamel Context: " + contextName));
         out.println("");
         out.println(stringEscape.unescapeJava("\u001B[1mStatistics\u001B[0m"));
 
-        String xml = camelController.getRouteStatsAsXml(routeId, camelContext.getName(), true, false);
+        String xml = camelController.getRouteStatsAsXml(routeId, contextName, true, false);
         if (xml != null) {
             JAXBContext context = JAXBContext.newInstance(RouteStatDump.class);
             Unmarshaller unmarshaller = context.createUnmarshaller();
@@ -102,7 +101,7 @@ public class RouteInfoCommand extends AbstractRouteCommand {
             }
 
             out.println("");
-            xml = camelController.getRouteModelAsXml(routeId, camelContext.getName());
+            xml = camelController.getRouteModelAsXml(routeId, contextName);
             if (xml != null) {
                 out.println(stringEscape.unescapeJava("\u001B[1mDefinition\u001B[0m"));
                 out.println(stringEscape.unescapeJava(xml));

http://git-wip-us.apache.org/repos/asf/camel/blob/d86c5c42/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteProfileCommand.java
----------------------------------------------------------------------
diff --git a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteProfileCommand.java b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteProfileCommand.java
index f17fab5..e0f0eb1 100644
--- a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteProfileCommand.java
+++ b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteProfileCommand.java
@@ -21,7 +21,6 @@ import java.io.StringReader;
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.Unmarshaller;
 
-import org.apache.camel.CamelContext;
 import org.apache.camel.util.ProcessorStatDump;
 import org.apache.camel.util.RouteStatDump;
 
@@ -48,20 +47,20 @@ public class RouteProfileCommand extends AbstractRouteCommand {
     }
 
     @Override
-    public void executeOnRoute(CamelController camelController, CamelContext camelContext, String routeId, PrintStream out, PrintStream err) throws Exception {
+    public void executeOnRoute(CamelController camelController, String contextName, String routeId, PrintStream out, PrintStream err) throws Exception {
 
         JAXBContext context = JAXBContext.newInstance(RouteStatDump.class);
         Unmarshaller unmarshaller = context.createUnmarshaller();
 
         // write new header for new camel context
-        if (previousCamelContextName == null || !previousCamelContextName.equals(camelContext.getName())) {
+        if (previousCamelContextName == null || !previousCamelContextName.equals(contextName)) {
             System.out.println("");
             System.out.println(stringEscape.unescapeJava("\u001B[1mProfile\u001B[0m"));
-            System.out.println(stringEscape.unescapeJava("\tCamel Context: " + camelContext.getName()));
+            System.out.println(stringEscape.unescapeJava("\tCamel Context: " + contextName));
             System.out.println(String.format(HEADER_FORMAT, "Id", "Count", "Last (ms)", "Delta (ms)", "Mean (ms)", "Min (ms)", "Max (ms)", "Total (ms)", "Self (ms)"));
         }
 
-        String xml = camelController.getRouteStatsAsXml(routeId, camelContext.getName(), true, true);
+        String xml = camelController.getRouteStatsAsXml(routeId, contextName, true, true);
         RouteStatDump route = (RouteStatDump) unmarshaller.unmarshal(new StringReader(xml));
 
         long count = route.getExchangesCompleted() + route.getExchangesFailed();
@@ -78,6 +77,6 @@ public class RouteProfileCommand extends AbstractRouteCommand {
         }
 
         // we want to group routes from the same context in the same table
-        previousCamelContextName = camelContext.getName();
+        previousCamelContextName = contextName;
     }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/d86c5c42/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteResumeCommand.java
----------------------------------------------------------------------
diff --git a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteResumeCommand.java b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteResumeCommand.java
index 6876e81..fef119a 100644
--- a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteResumeCommand.java
+++ b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteResumeCommand.java
@@ -31,7 +31,7 @@ public class RouteResumeCommand extends AbstractRouteCommand {
     }
 
     @Override
-    public void executeOnRoute(CamelController camelController, CamelContext camelContext, String routeId, PrintStream out, PrintStream err) throws Exception {
-        camelContext.resumeRoute(routeId);
+    public void executeOnRoute(CamelController camelController, String contextName, String routeId, PrintStream out, PrintStream err) throws Exception {
+        camelController.resumeRoute(contextName, routeId);
     }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/d86c5c42/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteShowCommand.java
----------------------------------------------------------------------
diff --git a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteShowCommand.java b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteShowCommand.java
index 9379eb2..9fea7e5 100644
--- a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteShowCommand.java
+++ b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteShowCommand.java
@@ -18,8 +18,6 @@ package org.apache.camel.commands;
 
 import java.io.PrintStream;
 
-import org.apache.camel.CamelContext;
-
 /**
  * Command to show the route marshaled in XML.
  */
@@ -30,8 +28,8 @@ public class RouteShowCommand extends AbstractRouteCommand {
     }
 
     @Override
-    public void executeOnRoute(CamelController camelController, CamelContext camelContext, String routeId, PrintStream out, PrintStream err) throws Exception {
-        String xml = camelController.getRouteModelAsXml(routeId, camelContext.getName());
+    public void executeOnRoute(CamelController camelController, String contextName, String routeId, PrintStream out, PrintStream err) throws Exception {
+        String xml = camelController.getRouteModelAsXml(routeId, contextName);
         if (xml == null) {
             err.println("Definition of route " + routeId + " not found.");
         }

http://git-wip-us.apache.org/repos/asf/camel/blob/d86c5c42/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteStartCommand.java
----------------------------------------------------------------------
diff --git a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteStartCommand.java b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteStartCommand.java
index b60fb5e..3b8e230 100644
--- a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteStartCommand.java
+++ b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteStartCommand.java
@@ -18,8 +18,6 @@ package org.apache.camel.commands;
 
 import java.io.PrintStream;
 
-import org.apache.camel.CamelContext;
-
 /**
  * Command to start a route.
  */
@@ -30,7 +28,7 @@ public class RouteStartCommand extends AbstractRouteCommand {
     }
 
     @Override
-    public void executeOnRoute(CamelController camelController, CamelContext camelContext, String routeId, PrintStream out, PrintStream err) throws Exception {
-        camelContext.startRoute(routeId);
+    public void executeOnRoute(CamelController camelController, String contextName, String routeId, PrintStream out, PrintStream err) throws Exception {
+        camelController.startRoute(contextName, routeId);
     }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/d86c5c42/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteStopCommand.java
----------------------------------------------------------------------
diff --git a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteStopCommand.java b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteStopCommand.java
index 7412940..b3239e5 100644
--- a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteStopCommand.java
+++ b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteStopCommand.java
@@ -18,8 +18,6 @@ package org.apache.camel.commands;
 
 import java.io.PrintStream;
 
-import org.apache.camel.CamelContext;
-
 /**
  * Command to stop a route.
  */
@@ -30,7 +28,7 @@ public class RouteStopCommand extends AbstractRouteCommand {
     }
 
     @Override
-    public void executeOnRoute(CamelController camelController, CamelContext camelContext, String routeId, PrintStream out, PrintStream err) throws Exception {
-        camelContext.stopRoute(routeId);
+    public void executeOnRoute(CamelController camelController, String contextName, String routeId, PrintStream out, PrintStream err) throws Exception {
+        camelController.stopRoute(contextName, routeId);
     }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/d86c5c42/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteSuspendCommand.java
----------------------------------------------------------------------
diff --git a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteSuspendCommand.java b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteSuspendCommand.java
index 1f91c07..9632510 100644
--- a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteSuspendCommand.java
+++ b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteSuspendCommand.java
@@ -18,8 +18,6 @@ package org.apache.camel.commands;
 
 import java.io.PrintStream;
 
-import org.apache.camel.CamelContext;
-
 /**
  * Command to suspend a route.
  */
@@ -30,7 +28,7 @@ public class RouteSuspendCommand extends AbstractRouteCommand {
     }
 
     @Override
-    public void executeOnRoute(CamelController camelController, CamelContext camelContext, String routeId, PrintStream out, PrintStream err) throws Exception {
-        camelContext.suspendRoute(routeId);
+    public void executeOnRoute(CamelController camelController, String contextName, String routeId, PrintStream out, PrintStream err) throws Exception {
+        camelController.suspendRoute(contextName, routeId);
     }
 }