camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jmandawg <jmand...@hotmail.com>
Subject Removing and reloading Rests XML Definitions dynamically
Date Wed, 08 Jun 2016 15:30:05 GMT
Hi,

I'm trying to remove and reload rest definitions from xml using camel
2.17.1.  I have the following code to load them (stolen from
camel-spring-boot):

for(String restRoutePath : restRoutePaths) {
           try{
    	       RestsDefinition rd =
camelContext.loadRestsDefinition(appContext.getResource(restRoutePath).getInputStream());
    	       camelContext.addRestDefinitions(rd.getRests());
    	       for(RestDefinition xmlDef : rd.getRests()) {
    	           List<RouteDefinition> routeDefs =
xmlDef.asRouteDefinition(camelContext);
    	           camelContext.addRouteDefinitions(routeDefs);
                   //Store loaded Routes
                   loadedRouteDefs.addAll(routeDefs);
    	       }
	       } catch(Exception ex){
	           ex.printStackTrace();
	       }
	   }

To remove the routes I use:
camelContext.removeRouteDefinitions(loadedRouteDefs);

But then when i try to reload the xml again, i get the following error which
makes me think the Rest definitions are not getting completely removed.  It
works fine for regular xml Routes, just not Rest.


org.apache.camel.FailedToStartRouteException: Failed to start route route71
because of duplicate id detected: route75. Please correct ids to be unique
among all your routes.
	at
org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:963)
	at
org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:3295)
	at
org.apache.camel.impl.DefaultCamelContext.addRouteDefinitions(DefaultCamelContext.java:908)
	at com.transamerica.isb.api.interfaces.Utils.loadRoutes(Utils.java:90)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)




--
View this message in context: http://camel.465427.n5.nabble.com/Removing-and-reloading-Rests-XML-Definitions-dynamically-tp5783724.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Mime
View raw message