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 2010/04/27 11:33:26 UTC
svn commit: r938376 - in /camel/trunk:
camel-core/src/main/java/org/apache/camel/impl/
camel-core/src/main/java/org/apache/camel/model/
camel-core/src/main/java/org/apache/camel/processor/interceptor/
camel-core/src/test/java/org/apache/camel/processor...
Author: davsclaus
Date: Tue Apr 27 09:33:26 2010
New Revision: 938376
URL: http://svn.apache.org/viewvc?rev=938376&view=rev
Log:
CAMEL-2677: RouteDefinition should be stateless, eg not tied to a CamelContext. This allows us to have reusable route defs used by multiple CamelContexts.
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java
camel/trunk/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java
camel/trunk/camel-core/src/main/java/org/apache/camel/model/RoutesDefinition.java
camel/trunk/camel-core/src/main/java/org/apache/camel/model/ThrottleDefinition.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/StreamCaching.java
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/interceptor/AdviceWithRouteIdTest.java
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/interceptor/AdviceWithTest.java
camel/trunk/components/camel-bam/src/main/java/org/apache/camel/bam/rules/TemporalRule.java
camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/RouteResource.java
camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/RouteStatusResource.java
camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/ProcessorDefinitionRenderer.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java?rev=938376&r1=938375&r2=938376&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java Tue Apr 27 09:33:26 2010
@@ -579,7 +579,6 @@ public class DefaultCamelContext extends
public void addRouteDefinitions(Collection<RouteDefinition> routeDefinitions) throws Exception {
for (RouteDefinition routeDefinition : routeDefinitions) {
- routeDefinition.setCamelContext(this);
removeRouteDefinition(routeDefinition);
}
this.routeDefinitions.addAll(routeDefinitions);
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java?rev=938376&r1=938375&r2=938376&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java Tue Apr 27 09:33:26 2010
@@ -99,9 +99,6 @@ public class DefaultRouteContext impleme
}
public CamelContext getCamelContext() {
- if (camelContext == null) {
- camelContext = getRoute().getCamelContext();
- }
return camelContext;
}
@@ -110,7 +107,7 @@ public class DefaultRouteContext impleme
}
public Endpoint resolveEndpoint(String uri) {
- return route.resolveEndpoint(uri);
+ return route.resolveEndpoint(getCamelContext(), uri);
}
public Endpoint resolveEndpoint(String uri, String ref) {
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java?rev=938376&r1=938375&r2=938376&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java Tue Apr 27 09:33:26 2010
@@ -28,7 +28,6 @@ import javax.xml.bind.annotation.XmlTran
import javax.xml.bind.annotation.XmlType;
import org.apache.camel.CamelContext;
-import org.apache.camel.CamelContextAware;
import org.apache.camel.Endpoint;
import org.apache.camel.FailedToCreateRouteException;
import org.apache.camel.NoSuchEndpointException;
@@ -47,6 +46,7 @@ import org.apache.camel.spi.LifecycleStr
import org.apache.camel.spi.RouteContext;
import org.apache.camel.spi.RoutePolicy;
import org.apache.camel.util.CamelContextHelper;
+import org.apache.camel.util.ObjectHelper;
/**
* Represents an XML <route/> element
@@ -56,10 +56,9 @@ import org.apache.camel.util.CamelContex
@XmlRootElement(name = "route")
@XmlType(propOrder = {"inputs", "outputs" })
@XmlAccessorType(XmlAccessType.PROPERTY)
-public class RouteDefinition extends ProcessorDefinition<ProcessorDefinition> implements CamelContextAware {
+public class RouteDefinition extends ProcessorDefinition<ProcessorDefinition> {
private List<FromDefinition> inputs = new ArrayList<FromDefinition>();
private List<ProcessorDefinition> outputs = new ArrayList<ProcessorDefinition>();
- private CamelContext camelContext;
private String group;
private Boolean streamCache;
private Boolean trace;
@@ -96,7 +95,7 @@ public class RouteDefinition extends Pro
/**
* Returns the status of the route if it has been registered with a {@link CamelContext}
*/
- public ServiceStatus getStatus() {
+ public ServiceStatus getStatus(CamelContext camelContext) {
if (camelContext != null) {
ServiceStatus answer = camelContext.getRouteStatus(this.getId());
if (answer == null) {
@@ -107,8 +106,8 @@ public class RouteDefinition extends Pro
return null;
}
- public boolean isStartable() {
- ServiceStatus status = getStatus();
+ public boolean isStartable(CamelContext camelContext) {
+ ServiceStatus status = getStatus(camelContext);
if (status == null) {
return true;
} else {
@@ -116,8 +115,8 @@ public class RouteDefinition extends Pro
}
}
- public boolean isStoppable() {
- ServiceStatus status = getStatus();
+ public boolean isStoppable(CamelContext camelContext) {
+ ServiceStatus status = getStatus(camelContext);
if (status == null) {
return false;
} else {
@@ -125,11 +124,10 @@ public class RouteDefinition extends Pro
}
}
- public List<RouteContext> addRoutes(CamelContext context, Collection<Route> routes) throws Exception {
+ public List<RouteContext> addRoutes(CamelContext camelContext, Collection<Route> routes) throws Exception {
List<RouteContext> answer = new ArrayList<RouteContext>();
- setCamelContext(context);
- ErrorHandlerBuilder handler = context.getErrorHandlerBuilder();
+ ErrorHandlerBuilder handler = camelContext.getErrorHandlerBuilder();
if (handler != null) {
setErrorHandlerBuilderIfNull(handler);
}
@@ -137,7 +135,7 @@ public class RouteDefinition extends Pro
for (FromDefinition fromType : inputs) {
RouteContext routeContext;
try {
- routeContext = addRoutes(routes, fromType);
+ routeContext = addRoutes(camelContext, routes, fromType);
} catch (FailedToCreateRouteException e) {
throw e;
} catch (Exception e) {
@@ -150,12 +148,9 @@ public class RouteDefinition extends Pro
}
- public Endpoint resolveEndpoint(String uri) throws NoSuchEndpointException {
- CamelContext context = getCamelContext();
- if (context == null) {
- throw new IllegalArgumentException("CamelContext has not been injected!");
- }
- return CamelContextHelper.getMandatoryEndpoint(context, uri);
+ public Endpoint resolveEndpoint(CamelContext camelContext, String uri) throws NoSuchEndpointException {
+ ObjectHelper.notNull(camelContext, "CamelContext");
+ return CamelContextHelper.getMandatoryEndpoint(camelContext, uri);
}
/**
@@ -168,18 +163,17 @@ public class RouteDefinition extends Pro
* <p/>
* Will stop and remove the old route from camel context and add and start this new advised route.
*
- * @param builder the route builder
+ * @param camelContext the camel context
+ * @param builder the route builder
* @return a new route which is this route merged with the route builder
* @throws Exception can be thrown from the route builder
*/
- public RouteDefinition adviceWith(RouteBuilder builder) throws Exception {
- CamelContext context = getCamelContext();
- if (context == null) {
- throw new IllegalArgumentException("CamelContext has not been injected!");
- }
+ public RouteDefinition adviceWith(CamelContext camelContext, RouteBuilder builder) throws Exception {
+ ObjectHelper.notNull(camelContext, "CamelContext");
+ ObjectHelper.notNull(builder, "RouteBuilder");
// configure and prepare the routes from the builder
- RoutesDefinition routes = builder.configureRoutes(context);
+ RoutesDefinition routes = builder.configureRoutes(camelContext);
// we can only advice with a route builder without any routes
if (!routes.getRoutes().isEmpty()) {
@@ -188,18 +182,18 @@ public class RouteDefinition extends Pro
}
// stop and remove this existing route
- List<RouteDefinition> list = new ArrayList<RouteDefinition>();
+ List<RouteDefinition> list = new ArrayList<RouteDefinition>(1);
list.add(this);
- context.removeRouteDefinitions(list);
+ camelContext.removeRouteDefinitions(list);
// now merge which also ensures that interceptors and the likes get mixed in correctly as well
RouteDefinition merged = routes.route(this);
// add the new merged route
- context.getRouteDefinitions().add(0, merged);
+ camelContext.getRouteDefinitions().add(0, merged);
// and start it
- context.startRoute(merged);
+ camelContext.startRoute(merged);
return merged;
}
@@ -294,7 +288,7 @@ public class RouteDefinition extends Pro
*/
public RouteDefinition streamCaching() {
setStreamCache(Boolean.TRUE);
- StreamCaching cache = StreamCaching.getStreamCaching(getCamelContext());
+ StreamCaching cache = StreamCaching.getStreamCaching(getInterceptStrategies());
if (cache == null) {
cache = new StreamCaching();
}
@@ -470,15 +464,6 @@ public class RouteDefinition extends Pro
}
}
- public CamelContext getCamelContext() {
- return camelContext;
- }
-
- @XmlTransient
- public void setCamelContext(CamelContext camelContext) {
- this.camelContext = camelContext;
- }
-
/**
* The group that this route belongs to; could be the name of the RouteBuilder class
* or be explicitly configured in the XML.
@@ -611,8 +596,8 @@ public class RouteDefinition extends Pro
// Implementation methods
// -------------------------------------------------------------------------
@SuppressWarnings("unchecked")
- protected RouteContext addRoutes(Collection<Route> routes, FromDefinition fromType) throws Exception {
- RouteContext routeContext = new DefaultRouteContext(getCamelContext(), this, fromType, routes);
+ protected RouteContext addRoutes(CamelContext camelContext, Collection<Route> routes, FromDefinition fromType) throws Exception {
+ RouteContext routeContext = new DefaultRouteContext(camelContext, this, fromType, routes);
// configure tracing
if (trace != null) {
@@ -633,7 +618,7 @@ public class RouteDefinition extends Pro
log.debug("StreamCaching is enabled on route: " + this);
}
// only add a new stream cache if not already a global configured on camel context
- if (StreamCaching.getStreamCaching(getCamelContext()) == null) {
+ if (StreamCaching.getStreamCaching(camelContext) == null) {
addInterceptStrategy(new StreamCaching());
}
}
@@ -647,7 +632,7 @@ public class RouteDefinition extends Pro
log.debug("HandleFault is enabled on route: " + this);
}
// only add a new handle fault if not already a global configured on camel context
- if (HandleFault.getHandleFault(getCamelContext()) == null) {
+ if (HandleFault.getHandleFault(camelContext) == null) {
addInterceptStrategy(new HandleFault());
}
}
@@ -678,7 +663,7 @@ public class RouteDefinition extends Pro
}
routeContext.setRoutePolicy(getRoutePolicy());
} else if (routePolicyRef != null) {
- RoutePolicy policy = CamelContextHelper.mandatoryLookup(getCamelContext(), routePolicyRef, RoutePolicy.class);
+ RoutePolicy policy = CamelContextHelper.mandatoryLookup(camelContext, routePolicyRef, RoutePolicy.class);
if (log.isDebugEnabled()) {
log.debug("RoutePolicy is enabled: " + policy + " on route: " + this);
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/RoutesDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/RoutesDefinition.java?rev=938376&r1=938375&r2=938376&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/RoutesDefinition.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/RoutesDefinition.java Tue Apr 27 09:33:26 2010
@@ -198,8 +198,6 @@ public class RoutesDefinition extends Op
* @return the builder
*/
public RouteDefinition route(RouteDefinition route) {
- // lets configure the route
- route.setCamelContext(getCamelContext());
// configure intercept
for (InterceptDefinition intercept : getIntercepts()) {
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/ThrottleDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ThrottleDefinition.java?rev=938376&r1=938375&r2=938376&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/ThrottleDefinition.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/ThrottleDefinition.java Tue Apr 27 09:33:26 2010
@@ -16,13 +16,11 @@
*/
package org.apache.camel.model;
-import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlRootElement;
import org.apache.camel.Processor;
@@ -36,13 +34,11 @@ import org.apache.camel.spi.RouteContext
*/
@XmlRootElement(name = "throttle")
@XmlAccessorType(XmlAccessType.FIELD)
-public class ThrottleDefinition extends ProcessorDefinition<ProcessorDefinition> {
+public class ThrottleDefinition extends OutputDefinition<ProcessorDefinition> {
@XmlAttribute
private Long maximumRequestsPerPeriod;
@XmlAttribute
private long timePeriodMillis = 1000;
- @XmlElementRef
- private List<ProcessorDefinition> outputs = new ArrayList<ProcessorDefinition>();
public ThrottleDefinition() {
}
@@ -117,11 +113,4 @@ public class ThrottleDefinition extends
this.timePeriodMillis = timePeriodMillis;
}
- public List<ProcessorDefinition> getOutputs() {
- return outputs;
- }
-
- public void setOutputs(List<ProcessorDefinition> outputs) {
- this.outputs = outputs;
- }
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/StreamCaching.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/StreamCaching.java?rev=938376&r1=938375&r2=938376&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/StreamCaching.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/StreamCaching.java Tue Apr 27 09:33:26 2010
@@ -28,9 +28,8 @@ import org.apache.camel.spi.InterceptStr
*/
public final class StreamCaching implements InterceptStrategy {
- public Processor wrapProcessorInInterceptors(CamelContext context,
- ProcessorDefinition<?> definition, Processor target, Processor nextTarget) throws Exception {
-
+ public Processor wrapProcessorInInterceptors(CamelContext context, ProcessorDefinition<?> definition,
+ Processor target, Processor nextTarget) throws Exception {
return new StreamCachingInterceptor(target);
}
@@ -42,8 +41,18 @@ public final class StreamCaching impleme
* @return the stream cache or null if none can be found
*/
public static StreamCaching getStreamCaching(CamelContext context) {
- List<InterceptStrategy> list = context.getInterceptStrategies();
- for (InterceptStrategy interceptStrategy : list) {
+ return getStreamCaching(context.getInterceptStrategies());
+ }
+
+ /**
+ * A helper method to return the StreamCaching instance
+ * for a given list of interceptors
+ *
+ * @param interceptors the list of interceptors
+ * @return the stream cache or null if none can be found
+ */
+ public static StreamCaching getStreamCaching(List<InterceptStrategy> interceptors) {
+ for (InterceptStrategy interceptStrategy : interceptors) {
if (interceptStrategy instanceof StreamCaching) {
return (StreamCaching)interceptStrategy;
}
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/interceptor/AdviceWithRouteIdTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/interceptor/AdviceWithRouteIdTest.java?rev=938376&r1=938375&r2=938376&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/interceptor/AdviceWithRouteIdTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/interceptor/AdviceWithRouteIdTest.java Tue Apr 27 09:33:26 2010
@@ -24,7 +24,7 @@ import org.apache.camel.builder.RouteBui
public class AdviceWithRouteIdTest extends AdviceWithTest {
public void testAdvised() throws Exception {
- context.getRouteDefinition("myRoute").adviceWith(new RouteBuilder() {
+ context.getRouteDefinition("myRoute").adviceWith(context, new RouteBuilder() {
@Override
public void configure() throws Exception {
interceptSendToEndpoint("mock:foo")
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/interceptor/AdviceWithTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/interceptor/AdviceWithTest.java?rev=938376&r1=938375&r2=938376&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/interceptor/AdviceWithTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/interceptor/AdviceWithTest.java Tue Apr 27 09:33:26 2010
@@ -37,7 +37,7 @@ public class AdviceWithTest extends Cont
// START SNIPPET: e1
public void testAdvised() throws Exception {
// advice the first route using the inlined route builder
- context.getRouteDefinitions().get(0).adviceWith(new RouteBuilder() {
+ context.getRouteDefinitions().get(0).adviceWith(context, new RouteBuilder() {
@Override
public void configure() throws Exception {
// intercept sending to mock:foo and do something else
@@ -60,7 +60,7 @@ public class AdviceWithTest extends Cont
public void testAdvisedNoNewRoutesAllowed() throws Exception {
try {
- context.getRouteDefinitions().get(0).adviceWith(new RouteBuilder() {
+ context.getRouteDefinitions().get(0).adviceWith(context, new RouteBuilder() {
@Override
public void configure() throws Exception {
from("direct:bar").to("mock:bar");
@@ -78,7 +78,7 @@ public class AdviceWithTest extends Cont
}
public void testAdvisedThrowException() throws Exception {
- context.getRouteDefinitions().get(0).adviceWith(new RouteBuilder() {
+ context.getRouteDefinitions().get(0).adviceWith(context, new RouteBuilder() {
@Override
public void configure() throws Exception {
interceptSendToEndpoint("mock:foo")
Modified: camel/trunk/components/camel-bam/src/main/java/org/apache/camel/bam/rules/TemporalRule.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bam/src/main/java/org/apache/camel/bam/rules/TemporalRule.java?rev=938376&r1=938375&r2=938376&view=diff
==============================================================================
--- camel/trunk/components/camel-bam/src/main/java/org/apache/camel/bam/rules/TemporalRule.java (original)
+++ camel/trunk/components/camel-bam/src/main/java/org/apache/camel/bam/rules/TemporalRule.java Tue Apr 27 09:33:26 2010
@@ -87,9 +87,8 @@ public class TemporalRule extends Servic
public Processor getOverdueAction() throws Exception {
if (overdueAction == null && overdueProcessors != null) {
RouteDefinition route = new RouteDefinition();
- route.setCamelContext(first.getBuilder().getProcessBuilder().getContext());
- RouteContext routeContext = new DefaultRouteContext(
- first.getBuilder().getProcessBuilder().getContext(), route, null, new ArrayList<Route>());
+ RouteContext routeContext = new DefaultRouteContext(first.getBuilder().getProcessBuilder().getContext(),
+ route, null, new ArrayList<Route>());
overdueAction = overdueProcessors.createOutputsProcessor(routeContext);
}
@@ -158,8 +157,6 @@ public class TemporalRule extends Servic
/**
* Returns the date in the future adding the given number of millis
*
- * @param date
- * @param millis
* @return the date in the future
*/
protected Date add(Date date, long millis) {
Modified: camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/RouteResource.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/RouteResource.java?rev=938376&r1=938375&r2=938376&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/RouteResource.java (original)
+++ camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/RouteResource.java Tue Apr 27 09:33:26 2010
@@ -79,7 +79,7 @@ public class RouteResource extends Camel
public RouteResource(RoutesResource routesResource, RouteDefinition route) {
super(routesResource.getContextResource());
this.route = route;
- this.id = route.idOrCreate(route.getCamelContext().getNodeIdFactory());
+ this.id = route.idOrCreate(getCamelContext().getNodeIdFactory());
}
/**
Modified: camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/RouteStatusResource.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/RouteStatusResource.java?rev=938376&r1=938375&r2=938376&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/RouteStatusResource.java (original)
+++ camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/resources/RouteStatusResource.java Tue Apr 27 09:33:26 2010
@@ -61,7 +61,7 @@ public class RouteStatusResource {
}
public ServiceStatus getStatus() {
- return getRoute().getStatus();
+ return getRoute().getStatus(getCamelContext());
}
@POST
Modified: camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/ProcessorDefinitionRenderer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/ProcessorDefinitionRenderer.java?rev=938376&r1=938375&r2=938376&view=diff
==============================================================================
--- camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/ProcessorDefinitionRenderer.java (original)
+++ camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/ProcessorDefinitionRenderer.java Tue Apr 27 09:33:26 2010
@@ -64,8 +64,6 @@ public final class ProcessorDefinitionRe
} else if (processor instanceof OnExceptionDefinition) {
OnExceptionDefinitionRenderer.render(buffer, processor);
return;
- } else if (processor instanceof OutputDefinition) {
- OutputDefinitionRenderer.render(buffer, processor);
} else if (processor instanceof ResequenceDefinition) {
ResequenceDefinitionRenderer.render(buffer, processor);
} else if (processor instanceof RollbackDefinition) {
@@ -80,6 +78,9 @@ public final class ProcessorDefinitionRe
ThrottleDefinitionRenderer.render(buffer, processor);
} else if (processor instanceof ThrowExceptionDefinition) {
ThrowExceptionDefinitionRenderer.render(buffer, processor);
+ } else if (processor instanceof OutputDefinition) {
+ // output must be last as its very generic
+ OutputDefinitionRenderer.render(buffer, processor);
} else {
buffer.append(".").append(processor.getShortName()).append("()");
}