Author: jstrachan Date: Thu Jul 1 09:14:59 2010 New Revision: 959563 URL: http://svn.apache.org/viewvc?rev=959563&view=rev Log: fix for CAMEL-2883 along with a test case in camel-scala so that we can use the ProcessorDefintion typed methods in the model from Scala without getting compile errors due to bad use of generics
Added: camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/UsingModelTest.scala - copied, changed from r959354, camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/ScalaTypeConverterTest.scala Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/AOPDefinition.java camel/trunk/camel-core/src/main/java/org/apache/camel/model/BeanDefinition.java camel/trunk/camel-core/src/main/java/org/apache/camel/model/ConvertBodyDefinition.java camel/trunk/camel-core/src/main/java/org/apache/camel/model/FinallyDefinition.java camel/trunk/camel-core/src/main/java/org/apache/camel/model/InterceptDefinition.java camel/trunk/camel-core/src/main/java/org/apache/camel/model/InterceptSendToEndpointDefinition.java camel/trunk/camel-core/src/main/java/org/apache/camel/model/MarshalDefinition.java camel/trunk/camel-core/src/main/java/org/apache/camel/model/MulticastDefinition.java camel/trunk/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java camel/trunk/camel-core/src/main/java/org/apache/camel/model/OtherwiseDefinition.java camel/trunk/camel-core/src/main/java/org/apache/camel/model/OutputDefinition.java camel/trunk/camel-core/src/main/java/org/apache/camel/model/PipelineDefinition.java camel/trunk/camel-core/src/main/java/org/apache/camel/model/PolicyDefinition.java camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessDefinition.java camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java camel/trunk/camel-core/src/main/java/org/apache/camel/model/RemoveHeaderDefinition.java camel/trunk/camel-core/src/main/java/org/apache/camel/model/RemoveHeadersDefinition.java camel/trunk/camel-core/src/main/java/org/apache/camel/model/RemovePropertyDefinition.java camel/trunk/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.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/SamplingDefinition.java camel/trunk/camel-core/src/main/java/org/apache/camel/model/SendDefinition.java camel/trunk/camel-core/src/main/java/org/apache/camel/model/SetExchangePatternDefinition.java camel/trunk/camel-core/src/main/java/org/apache/camel/model/StopDefinition.java camel/trunk/camel-core/src/main/java/org/apache/camel/model/ThreadsDefinition.java camel/trunk/camel-core/src/main/java/org/apache/camel/model/ThrottleDefinition.java camel/trunk/camel-core/src/main/java/org/apache/camel/model/TransactedDefinition.java camel/trunk/camel-core/src/main/java/org/apache/camel/model/UnmarshalDefinition.java camel/trunk/components/camel-bam/src/main/java/org/apache/camel/bam/rules/TemporalRule.java Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/AOPDefinition.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/AOPDefinition.java?rev=959563&r1=959562&r2=959563&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/AOPDefinition.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/AOPDefinition.java Thu Jul 1 09:14:59 2010 @@ -36,7 +36,7 @@ import org.apache.camel.spi.RouteContext @XmlRootElement(name = "aop") @XmlAccessorType(XmlAccessType.FIELD) @Deprecated -public class AOPDefinition extends OutputDefinition<ProcessorDefinition> { +public class AOPDefinition extends OutputDefinition<AOPDefinition> { @XmlAttribute(required = false) private String beforeUri; Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/BeanDefinition.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/BeanDefinition.java?rev=959563&r1=959562&r2=959563&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/BeanDefinition.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/BeanDefinition.java Thu Jul 1 09:14:59 2010 @@ -36,7 +36,7 @@ import org.apache.camel.util.ObjectHelpe */ @XmlRootElement(name = "bean") @XmlAccessorType(XmlAccessType.FIELD) -public class BeanDefinition extends OutputDefinition<ProcessorDefinition> { +public class BeanDefinition extends OutputDefinition<BeanDefinition> { @XmlAttribute(required = false) private String ref; @XmlAttribute(required = false) Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/ConvertBodyDefinition.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ConvertBodyDefinition.java?rev=959563&r1=959562&r2=959563&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/ConvertBodyDefinition.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/ConvertBodyDefinition.java Thu Jul 1 09:14:59 2010 @@ -35,7 +35,7 @@ import org.apache.camel.spi.RouteContext */ @XmlRootElement(name = "convertBodyTo") @XmlAccessorType(XmlAccessType.FIELD) -public class ConvertBodyDefinition extends ProcessorDefinition<ProcessorDefinition> { +public class ConvertBodyDefinition extends ProcessorDefinition<ConvertBodyDefinition> { @XmlAttribute private String type; @XmlAttribute(required = false) Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/FinallyDefinition.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/FinallyDefinition.java?rev=959563&r1=959562&r2=959563&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/FinallyDefinition.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/FinallyDefinition.java Thu Jul 1 09:14:59 2010 @@ -30,7 +30,7 @@ import org.apache.camel.spi.RouteContext */ @XmlRootElement(name = "doFinally") @XmlAccessorType(XmlAccessType.FIELD) -public class FinallyDefinition extends OutputDefinition<ProcessorDefinition> implements Block { +public class FinallyDefinition extends OutputDefinition<FinallyDefinition> implements Block { @Override public String toString() { Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/InterceptDefinition.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/InterceptDefinition.java?rev=959563&r1=959562&r2=959563&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/InterceptDefinition.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/InterceptDefinition.java Thu Jul 1 09:14:59 2010 @@ -37,7 +37,7 @@ import org.apache.camel.spi.RouteContext */ @XmlRootElement(name = "intercept") @XmlAccessorType(XmlAccessType.FIELD) -public class InterceptDefinition extends OutputDefinition<ProcessorDefinition> { +public class InterceptDefinition extends OutputDefinition<InterceptDefinition> { // TODO: support stop later (its a bit hard as it needs to break entire processing of route) Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/InterceptSendToEndpointDefinition.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/InterceptSendToEndpointDefinition.java?rev=959563&r1=959562&r2=959563&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/InterceptSendToEndpointDefinition.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/InterceptSendToEndpointDefinition.java Thu Jul 1 09:14:59 2010 @@ -38,7 +38,7 @@ import org.apache.camel.util.EndpointHel */ @XmlRootElement(name = "interceptToEndpoint") @XmlAccessorType(XmlAccessType.FIELD) -public class InterceptSendToEndpointDefinition extends OutputDefinition<ProcessorDefinition> { +public class InterceptSendToEndpointDefinition extends OutputDefinition<InterceptSendToEndpointDefinition> { // TODO: Support lookup endpoint by ref (requires a bit more work) Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/MarshalDefinition.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/MarshalDefinition.java?rev=959563&r1=959562&r2=959563&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/MarshalDefinition.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/MarshalDefinition.java Thu Jul 1 09:14:59 2010 @@ -51,7 +51,7 @@ import org.apache.camel.spi.RouteContext */ @XmlRootElement(name = "marshal") @XmlAccessorType(XmlAccessType.FIELD) -public class MarshalDefinition extends OutputDefinition<ProcessorDefinition> { +public class MarshalDefinition extends OutputDefinition<MarshalDefinition> { @XmlAttribute(required = false) private String ref; // cannot use @XmlElementRef as it doesn't allow optional properties Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/MulticastDefinition.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/MulticastDefinition.java?rev=959563&r1=959562&r2=959563&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/MulticastDefinition.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/MulticastDefinition.java Thu Jul 1 09:14:59 2010 @@ -38,7 +38,7 @@ import org.apache.camel.util.concurrent. */ @XmlRootElement(name = "multicast") @XmlAccessorType(XmlAccessType.FIELD) -public class MulticastDefinition extends OutputDefinition<ProcessorDefinition> implements ExecutorServiceAwareDefinition<MulticastDefinition> { +public class MulticastDefinition extends OutputDefinition<MulticastDefinition> implements ExecutorServiceAwareDefinition<MulticastDefinition> { @XmlAttribute(required = false) private Boolean parallelProcessing; @XmlAttribute(required = false) Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java?rev=959563&r1=959562&r2=959563&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java Thu Jul 1 09:14:59 2010 @@ -53,7 +53,7 @@ import static org.apache.camel.builder.P */ @XmlRootElement(name = "onException") @XmlAccessorType(XmlAccessType.FIELD) -public class OnExceptionDefinition extends ProcessorDefinition<ProcessorDefinition> { +public class OnExceptionDefinition extends ProcessorDefinition<OnExceptionDefinition> { @XmlElement(name = "exception") private List<String> exceptions = new ArrayList<String>(); Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/OtherwiseDefinition.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/OtherwiseDefinition.java?rev=959563&r1=959562&r2=959563&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/OtherwiseDefinition.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/OtherwiseDefinition.java Thu Jul 1 09:14:59 2010 @@ -32,7 +32,7 @@ import org.apache.camel.util.CollectionS */ @XmlRootElement(name = "otherwise") @XmlAccessorType(XmlAccessType.FIELD) -public class OtherwiseDefinition extends OutputDefinition<ProcessorDefinition> implements Block { +public class OtherwiseDefinition extends OutputDefinition<OtherwiseDefinition> implements Block { @Override public String toString() { Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/OutputDefinition.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/OutputDefinition.java?rev=959563&r1=959562&r2=959563&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/OutputDefinition.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/OutputDefinition.java Thu Jul 1 09:14:59 2010 @@ -31,7 +31,7 @@ import javax.xml.bind.annotation.XmlType */ @XmlType(name = "output") @XmlAccessorType(XmlAccessType.FIELD) -public class OutputDefinition<Type extends ProcessorDefinition> extends ProcessorDefinition<Type> { +public class OutputDefinition<Type extends ProcessorDefinition<Type>> extends ProcessorDefinition<Type> { @XmlElementRef protected List<ProcessorDefinition> outputs = new ArrayList<ProcessorDefinition>(); Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/PipelineDefinition.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/PipelineDefinition.java?rev=959563&r1=959562&r2=959563&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/PipelineDefinition.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/PipelineDefinition.java Thu Jul 1 09:14:59 2010 @@ -31,7 +31,7 @@ import org.apache.camel.spi.RouteContext */ @XmlRootElement(name = "pipeline") @XmlAccessorType(XmlAccessType.FIELD) -public class PipelineDefinition extends OutputDefinition<ProcessorDefinition> { +public class PipelineDefinition extends OutputDefinition<PipelineDefinition> { @Override public String getShortName() { Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/PolicyDefinition.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/PolicyDefinition.java?rev=959563&r1=959562&r2=959563&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/PolicyDefinition.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/PolicyDefinition.java Thu Jul 1 09:14:59 2010 @@ -36,7 +36,7 @@ import org.apache.camel.util.ObjectHelpe */ @XmlRootElement(name = "policy") @XmlAccessorType(XmlAccessType.FIELD) -public class PolicyDefinition extends OutputDefinition<ProcessorDefinition> { +public class PolicyDefinition extends OutputDefinition<PolicyDefinition> { // TODO: Align this code with TransactedDefinition Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessDefinition.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessDefinition.java?rev=959563&r1=959562&r2=959563&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessDefinition.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessDefinition.java Thu Jul 1 09:14:59 2010 @@ -33,7 +33,7 @@ import org.apache.camel.util.ObjectHelpe */ @XmlRootElement(name = "process") @XmlAccessorType(XmlAccessType.FIELD) -public class ProcessDefinition extends OutputDefinition<ProcessorDefinition> { +public class ProcessDefinition extends OutputDefinition<ProcessDefinition> { @XmlAttribute(required = true) private String ref; @XmlTransient Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java?rev=959563&r1=959562&r2=959563&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java Thu Jul 1 09:14:59 2010 @@ -75,7 +75,7 @@ import static org.apache.camel.builder.B * @version $Revision$ */ @XmlAccessorType(XmlAccessType.PROPERTY) -public abstract class ProcessorDefinition<Type extends ProcessorDefinition> extends OptionalIdentifiedDefinition implements Block { +public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>> extends OptionalIdentifiedDefinition implements Block { protected final transient Log log = LogFactory.getLog(getClass()); protected ErrorHandlerBuilder errorHandlerBuilder; protected String errorHandlerRef; @@ -141,19 +141,6 @@ public abstract class ProcessorDefinitio return children; } - /** - * A helper method to add an output node to this processor definition which can avoid the use of hairy generics - * when using Scala code - */ - public boolean addOutputObject(Object node) { - if (node instanceof ProcessorDefinition) { - addOutput((ProcessorDefinition) node); - return true; - } else { - return false; - } - } - public void addOutput(ProcessorDefinition output) { output.setParent(this); configureChild(output); Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/RemoveHeaderDefinition.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/RemoveHeaderDefinition.java?rev=959563&r1=959562&r2=959563&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/RemoveHeaderDefinition.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/RemoveHeaderDefinition.java Thu Jul 1 09:14:59 2010 @@ -31,7 +31,7 @@ import org.apache.camel.util.ObjectHelpe */ @XmlRootElement(name = "removeHeader") @XmlAccessorType(XmlAccessType.FIELD) -public class RemoveHeaderDefinition extends OutputDefinition<ProcessorDefinition> { +public class RemoveHeaderDefinition extends OutputDefinition<RemoveHeaderDefinition> { @XmlAttribute(required = true) private String headerName; Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/RemoveHeadersDefinition.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/RemoveHeadersDefinition.java?rev=959563&r1=959562&r2=959563&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/RemoveHeadersDefinition.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/RemoveHeadersDefinition.java Thu Jul 1 09:14:59 2010 @@ -31,7 +31,7 @@ import org.apache.camel.util.ObjectHelpe */ @XmlRootElement(name = "removeHeaders") @XmlAccessorType(XmlAccessType.FIELD) -public class RemoveHeadersDefinition extends OutputDefinition<ProcessorDefinition> { +public class RemoveHeadersDefinition extends OutputDefinition<RemoveHeadersDefinition> { @XmlAttribute(required = true) private String pattern; Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/RemovePropertyDefinition.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/RemovePropertyDefinition.java?rev=959563&r1=959562&r2=959563&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/RemovePropertyDefinition.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/RemovePropertyDefinition.java Thu Jul 1 09:14:59 2010 @@ -31,7 +31,7 @@ import org.apache.camel.util.ObjectHelpe */ @XmlRootElement(name = "removeProperty") @XmlAccessorType(XmlAccessType.FIELD) -public class RemovePropertyDefinition extends OutputDefinition<ProcessorDefinition> { +public class RemovePropertyDefinition extends OutputDefinition<RemovePropertyDefinition> { @XmlAttribute(required = true) private String propertyName; Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.java?rev=959563&r1=959562&r2=959563&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.java Thu Jul 1 09:14:59 2010 @@ -40,7 +40,7 @@ import org.apache.camel.spi.RouteContext * @version $Revision$ */ @XmlRootElement(name = "resequence") -public class ResequenceDefinition extends ProcessorDefinition<ProcessorDefinition> { +public class ResequenceDefinition extends ProcessorDefinition<ResequenceDefinition> { @XmlElementRef private List<ExpressionDefinition> expressions = new ArrayList<ExpressionDefinition>(); @XmlElementRef 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=959563&r1=959562&r2=959563&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 Thu Jul 1 09:14:59 2010 @@ -56,7 +56,7 @@ import org.apache.camel.util.ObjectHelpe @XmlRootElement(name = "route") @XmlType(propOrder = {"inputs", "outputs" }) @XmlAccessorType(XmlAccessType.PROPERTY) -public class RouteDefinition extends ProcessorDefinition<ProcessorDefinition> { +public class RouteDefinition extends ProcessorDefinition<RouteDefinition> { private List<FromDefinition> inputs = new ArrayList<FromDefinition>(); private List<ProcessorDefinition> outputs = new ArrayList<ProcessorDefinition>(); private String group; Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/SamplingDefinition.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/SamplingDefinition.java?rev=959563&r1=959562&r2=959563&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/SamplingDefinition.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/SamplingDefinition.java Thu Jul 1 09:14:59 2010 @@ -35,7 +35,7 @@ import org.apache.camel.spi.RouteContext */ @XmlRootElement(name = "sample") @XmlAccessorType(XmlAccessType.FIELD) -public class SamplingDefinition extends OutputDefinition<ProcessorDefinition> { +public class SamplingDefinition extends OutputDefinition<SamplingDefinition> { // use Long to let it be optional in JAXB so when using XML the default is 1 second Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/SendDefinition.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/SendDefinition.java?rev=959563&r1=959562&r2=959563&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/SendDefinition.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/SendDefinition.java Thu Jul 1 09:14:59 2010 @@ -37,7 +37,7 @@ import org.apache.camel.util.ObjectHelpe * @version $Revision$ */ @XmlAccessorType(XmlAccessType.FIELD) -public abstract class SendDefinition<Type extends ProcessorDefinition> extends ProcessorDefinition<Type> { +public abstract class SendDefinition<Type extends ProcessorDefinition<Type>> extends ProcessorDefinition<Type> { @XmlAttribute(required = false) protected String uri; @XmlAttribute(required = false) Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/SetExchangePatternDefinition.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/SetExchangePatternDefinition.java?rev=959563&r1=959562&r2=959563&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/SetExchangePatternDefinition.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/SetExchangePatternDefinition.java Thu Jul 1 09:14:59 2010 @@ -34,7 +34,7 @@ import org.apache.camel.spi.RouteContext */ @XmlRootElement(name = "setExchangePattern") @XmlAccessorType(XmlAccessType.FIELD) -public class SetExchangePatternDefinition extends OutputDefinition<ProcessorDefinition> { +public class SetExchangePatternDefinition extends OutputDefinition<SetExchangePatternDefinition> { @XmlAttribute(required = true) private ExchangePattern pattern; @XmlTransient Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/StopDefinition.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/StopDefinition.java?rev=959563&r1=959562&r2=959563&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/StopDefinition.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/StopDefinition.java Thu Jul 1 09:14:59 2010 @@ -33,7 +33,7 @@ import org.apache.camel.spi.RouteContext */ @XmlRootElement(name = "stop") @XmlAccessorType(XmlAccessType.FIELD) -public class StopDefinition extends OutputDefinition<ProcessorDefinition> { +public class StopDefinition extends OutputDefinition<StopDefinition> { @Override public String getShortName() { Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/ThreadsDefinition.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ThreadsDefinition.java?rev=959563&r1=959562&r2=959563&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/ThreadsDefinition.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/ThreadsDefinition.java Thu Jul 1 09:14:59 2010 @@ -44,7 +44,7 @@ import org.apache.camel.util.concurrent. */ @XmlRootElement(name = "threads") @XmlAccessorType(XmlAccessType.FIELD) -public class ThreadsDefinition extends OutputDefinition<ProcessorDefinition> implements ExecutorServiceAwareDefinition<ThreadsDefinition> { +public class ThreadsDefinition extends OutputDefinition<ThreadsDefinition> implements ExecutorServiceAwareDefinition<ThreadsDefinition> { @XmlTransient private ExecutorService executorService; 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=959563&r1=959562&r2=959563&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 Thu Jul 1 09:14:59 2010 @@ -34,7 +34,7 @@ import org.apache.camel.spi.RouteContext */ @XmlRootElement(name = "throttle") @XmlAccessorType(XmlAccessType.FIELD) -public class ThrottleDefinition extends OutputDefinition<ProcessorDefinition> { +public class ThrottleDefinition extends OutputDefinition<ThrottleDefinition> { @XmlAttribute private Long maximumRequestsPerPeriod; @XmlAttribute Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/TransactedDefinition.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/TransactedDefinition.java?rev=959563&r1=959562&r2=959563&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/TransactedDefinition.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/TransactedDefinition.java Thu Jul 1 09:14:59 2010 @@ -42,7 +42,7 @@ import org.apache.commons.logging.LogFac */ @XmlRootElement(name = "transacted") @XmlAccessorType(XmlAccessType.FIELD) -public class TransactedDefinition extends OutputDefinition<ProcessorDefinition> { +public class TransactedDefinition extends OutputDefinition<TransactedDefinition> { // TODO: Align this code with PolicyDefinition Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/UnmarshalDefinition.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/UnmarshalDefinition.java?rev=959563&r1=959562&r2=959563&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/UnmarshalDefinition.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/UnmarshalDefinition.java Thu Jul 1 09:14:59 2010 @@ -52,7 +52,7 @@ import org.apache.camel.spi.RouteContext */ @XmlRootElement(name = "unmarshal") @XmlAccessorType(XmlAccessType.FIELD) -public class UnmarshalDefinition extends OutputDefinition<ProcessorDefinition> { +public class UnmarshalDefinition extends OutputDefinition<UnmarshalDefinition> { @XmlAttribute(required = false) private String ref; // cannot use @XmlElementRef as it doesn't allow optional properties 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=959563&r1=959562&r2=959563&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 Thu Jul 1 09:14:59 2010 @@ -51,7 +51,7 @@ public class TemporalRule extends Servic private long expectedMillis; private long overdueMillis; private Processor overdueAction; - private OutputDefinition<ProcessorDefinition<?>> overdueProcessors = new OutputDefinition<ProcessorDefinition<?>>(); + private OutputDefinition overdueProcessors = new OutputDefinition(); public TemporalRule(TimeExpression first, TimeExpression second) { this.first = first; @@ -67,11 +67,11 @@ public class TemporalRule extends Servic return this; } - public OutputDefinition<ProcessorDefinition<?>> errorIfOver(Time builder) { + public OutputDefinition errorIfOver(Time builder) { return errorIfOver(builder.toMillis()); } - public OutputDefinition<ProcessorDefinition<?>> errorIfOver(long millis) { + public OutputDefinition errorIfOver(long millis) { overdueMillis = millis; return overdueProcessors; } Copied: camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/UsingModelTest.scala (from r959354, camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/ScalaTypeConverterTest.scala) URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/UsingModelTest.scala?p2=camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/UsingModelTest.scala&p1=camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/ScalaTypeConverterTest.scala&r1=959354&r2=959563&rev=959563&view=diff ============================================================================== --- camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/ScalaTypeConverterTest.scala (original) +++ camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/UsingModelTest.scala Thu Jul 1 09:14:59 2010 @@ -14,33 +14,30 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.scala; +package org.apache.camel.scala import junit.framework.TestCase import junit.framework.Assert._ -import org.apache.camel.impl.DefaultClassResolver -import org.apache.camel.impl.DefaultFactoryFinderResolver -import org.apache.camel.impl.DefaultPackageScanClassResolver -import org.apache.camel.impl.converter.DefaultTypeConverter -import org.apache.camel.util.ReflectionInjector -import org.apache.camel.util.ServiceHelper +import org.apache.camel.model._ -import org.w3c.dom.Document /** - * Test case for ScalaTypeConverter + * Test using the low level processor definition API from Scala. + * + * In previous versions of the use of generics in the model package we would get compile errors in Scala + * when trying to do things like this */ -class ScalaTypeConverterTest extends TestCase { - - val converter = new DefaultTypeConverter(new DefaultPackageScanClassResolver(), - new ReflectionInjector(), new DefaultFactoryFinderResolver().resolveDefaultFactoryFinder(new DefaultClassResolver())) - - def testDocumentConverter = { - ServiceHelper.startService(converter) - val result = converter.convertTo(classOf[Document], <persons/>) - assertNotNull(result) - assertNotNull(result.getElementsByTagName("persons")) +class UsingModelTest extends TestCase { + + def testUsingModel: Unit = { + val routes = new RoutesDefinition + val route = routes.route + route.from("seda:foo") + val bean = new BeanDefinition("myBean", "someMethod") + route.addOutput(bean) + + println("Created route: " + route) } }