Hi

There is this bits about loading xml routes
http://camel.apache.org/loading-routes-from-xml-files.html

On Wed, Jul 9, 2014 at 9:03 AM, armand <armand.bereng...@gmail.com> wrote:
> Hi Clauss,
>
> I have done different tests to manualy start/stop the route. The tests I
> have done are:
>
> - I have tried all trying to access through the lifecycle to control the
> status of the route if is started, starting..
> - I have tried to create inside the route a separate thread to stop the
> route as is indicated in the camel documentation but it still continues not
> working.
>
> Now but I'm doing is to stop the route using the next code through a
> processor and removing the route of the context
>
>     /**
>      * Stop manual route.
>      *
>      * @param exchange
>      *            the exchange
>      * @param name
>      *            the name
>      */
>     private void stopManualRoute(final Exchange exchange, final String name)
> {
>         if (stop == null) {
>             stop = new Thread() {
>
>                 @Override
>                 public void run() {
>                     try {
>                         ModelCamelContext modelContext = (ModelCamelContext)
> exchange.getContext();
>
> exchange.getContext().getInflightRepository().remove(exchange);
>                         exchange.getContext().stopRoute(name);
>                         RouteDefinition routedefinition =
> modelContext.getRouteDefinition(name);
>
> routedefinition.setShutdownRunningTask(ShutdownRunningTask.CompleteAllTasks);
>                         List<RouteDefinition> list = new
> ArrayList<RouteDefinition>();
>                         list.add(routedefinition);
>                         modelContext.removeRouteDefinitions(list);
>
>                     } catch (Exception e) {
>                         logger.error("Problem stopping the route " + name);
>                     }
>                 }
>             };
>         }
>
> And when I start the route I check if the route is started and is in the
> camel context if not I try to load the route definition of another xml.
>
>
> /**
>      * Executes thread method to start the route
>      */
>     public synchronized void run() {
>         try {
>
>             ModelCamelContext modelContext = (ModelCamelContext)
> camelContext;
>             RouteDefinition manualRouteDefinition =
> modelContext.getRouteDefinition("manualSendingReceivingFromRtcRoute");
>
>             if (manualRouteDefinition != null) {
>
> camelContext.startRoute("manualSendingReceivingFromRtcRoute");
>             } else {
>                 // load route from XML and add them to the existing camel
> context
>                 InputStream is =
> getClass().getResourceAsStream("../src/main/resources/META-INF/spring/manualRtcRoute.xml");
>                 RoutesDefinition routes =
> modelContext.loadRoutesDefinition(is);
>                 modelContext.addRouteDefinitions(routes.getRoutes());
>
>
> camelContext.startRoute("manualSendingReceivingFromRtcRoute");
>             }
>
>         } catch (Exception e) {
>             throw Throwables.propagate(e);
>         }
>     }
>
> Can you provide a sample complete or loading the routes from an XML I think
> may be this solution can work for me.
>
> Thanks
>
>
>
>
>
> --
> View this message in context: 
> http://camel.465427.n5.nabble.com/Stop-manually-camel-route-tp5753505p5753571.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: cib...@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
hawtio: http://hawt.io/
fabric8: http://fabric8.io/

Reply via email to