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)
   }
 
 }


Reply via email to