Author: davsclaus Date: Mon Apr 25 07:34:27 2011 New Revision: 1096424 URL: http://svn.apache.org/viewvc?rev=1096424&view=rev Log: CAMEL-463: Polished
Modified: camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/Frequency.scala camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/RichExchange.scala camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/RichMessage.scala camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaExpression.scala camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaPredicate.scala camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaProcessor.scala camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/Wrapper.scala camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/converter/ScalaTypeConverter.scala camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/DSL.scala camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/builder/RouteBuilder.scala camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ExceptionHandlerTest.scala Modified: camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/Frequency.scala URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/Frequency.scala?rev=1096424&r1=1096423&r2=1096424&view=diff ============================================================================== --- camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/Frequency.scala (original) +++ camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/Frequency.scala Mon Apr 25 07:34:27 2011 @@ -18,6 +18,7 @@ package org.apache.camel.scala /** * Represents a frequency (count per period) + * * @param count the number of occurrences * @param period the time period for this frequency */ Modified: camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/RichExchange.scala URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/RichExchange.scala?rev=1096424&r1=1096423&r2=1096424&view=diff ============================================================================== --- camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/RichExchange.scala (original) +++ camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/RichExchange.scala Mon Apr 25 07:34:27 2011 @@ -20,7 +20,7 @@ package scala import reflect.Manifest import org.apache.camel.spi.{UnitOfWork, Synchronization} import org.apache.camel.{ExchangePattern, Message, Endpoint, Exchange} -import java.lang.{Exception, String, Class} +import java.lang.{String, Class} /** * Rich wrapper for Camel's Exchange implementations Modified: camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/RichMessage.scala URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/RichMessage.scala?rev=1096424&r1=1096423&r2=1096424&view=diff ============================================================================== --- camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/RichMessage.scala (original) +++ camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/RichMessage.scala Mon Apr 25 07:34:27 2011 @@ -5,9 +5,6 @@ import java.util.Map import java.lang.{Class, String} import javax.activation.DataHandler -/** - */ - class RichMessage(val message: Message) extends Message { // Delegate methods Modified: camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaExpression.scala URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaExpression.scala?rev=1096424&r1=1096423&r2=1096424&view=diff ============================================================================== --- camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaExpression.scala (original) +++ camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaExpression.scala Mon Apr 25 07:34:27 2011 @@ -15,7 +15,7 @@ * limitations under the License. */ package org.apache.camel -package scala.dsl +package scala /** * Scala implementation for an Apache Camel Expression @@ -25,7 +25,7 @@ class ScalaExpression(val expression: Ex def evaluate(exchange: Exchange) = expression(exchange).asInstanceOf[Object] def evaluate[Target](exchange: Exchange, toType: Class[Target]) = { - var value = expression(exchange) + val value = expression(exchange) exchange.getContext().getTypeConverter().convertTo(toType, value) } Modified: camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaPredicate.scala URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaPredicate.scala?rev=1096424&r1=1096423&r2=1096424&view=diff ============================================================================== --- camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaPredicate.scala (original) +++ camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaPredicate.scala Mon Apr 25 07:34:27 2011 @@ -15,7 +15,7 @@ * limitations under the License. */ package org.apache.camel -package scala.dsl +package scala import org.apache.camel.Predicate import org.apache.camel.util.ObjectHelper.evaluateValuePredicate Modified: camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaProcessor.scala URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaProcessor.scala?rev=1096424&r1=1096423&r2=1096424&view=diff ============================================================================== --- camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaProcessor.scala (original) +++ camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaProcessor.scala Mon Apr 25 07:34:27 2011 @@ -15,7 +15,7 @@ * limitations under the License. */ package org.apache.camel -package scala.dsl +package scala /** * Scala implementation for an Apache Camel Processor Modified: camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/Wrapper.scala URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/Wrapper.scala?rev=1096424&r1=1096423&r2=1096424&view=diff ============================================================================== --- camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/Wrapper.scala (original) +++ camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/Wrapper.scala Mon Apr 25 07:34:27 2011 @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.scala.dsl; +package org.apache.camel.scala; /** * Wraps a given type T and supports unwrapping it on demand Modified: camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/converter/ScalaTypeConverter.scala URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/converter/ScalaTypeConverter.scala?rev=1096424&r1=1096423&r2=1096424&view=diff ============================================================================== --- camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/converter/ScalaTypeConverter.scala (original) +++ camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/converter/ScalaTypeConverter.scala Mon Apr 25 07:34:27 2011 @@ -18,11 +18,11 @@ package org.apache.camel.scala.converter import _root_.scala.xml.Elem -import org.apache.camel.Converter import org.apache.camel.converter.jaxp.XmlConverter import scala.xml.XML import org.w3c.dom.Document import org.w3c.dom.Node +import org.apache.camel.{Exchange, Converter} /** * Converter implementation for supporting some common Scala types within Apache Camel @@ -38,8 +38,8 @@ import org.w3c.dom.Node def convertToElem(xmlString: String) = XML.loadString(xmlString) @Converter - def domDocumentToElem(doc: Document) = XML.load(converter.toInputStream(doc)) + def domDocumentToElem(doc: Document, exchange : Exchange) = XML.load(converter.toInputStream(doc, exchange)) @Converter - def domNodeToElem(node: Node) = XML.loadString(converter.toString(node, null)) + def domNodeToElem(node: Node, exchange : Exchange) = XML.loadString(converter.toString(node, exchange)) } Modified: camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/DSL.scala URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/DSL.scala?rev=1096424&r1=1096423&r2=1096424&view=diff ============================================================================== --- camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/DSL.scala (original) +++ camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/DSL.scala Mon Apr 25 07:34:27 2011 @@ -33,64 +33,64 @@ trait DSL { def aggregate(expression: Exchange => Any, strategy: AggregationStrategy) : SAggregateDefinition def as[Target](toType: Class[Target]) : DSL def attempt : STryDefinition + def bean(bean: Any) : DSL + def choice : SChoiceDefinition + def delay(delay: Period) : SDelayDefinition + def dynamicRouter(expression: Exchange => Any) : DSL + def enrich(uri:String, strategy: AggregationStrategy) : DSL + def filter(predicate: Exchange => Any) : SFilterDefinition + def handle[E](block: => Unit)(implicit manifest: Manifest[E]) : SOnExceptionDefinition + def idempotentconsumer(expression: Exchange => Any): SIdempotentConsumerDefinition def inOnly(): DSL with Block def inOut(): DSL with Block - def loadbalance : SLoadBalanceDefinition + def loadbalance : SLoadBalanceDefinition def log(message: String) : DSL def log(level: LoggingLevel, message: String) : DSL def log(level: LoggingLevel, logName: String, message: String) : DSL - def loop(expression: Exchange => Any) : SLoopDefinition + def marshal(format : DataFormatDefinition) : DSL def multicast : SMulticastDefinition - def otherwise : DSL with Block + def onCompletion : SOnCompletionDefinition def onCompletion(predicate: Exchange => Boolean) : SOnCompletionDefinition def onCompletion(config: Config[SOnCompletionDefinition]) : SOnCompletionDefinition + def otherwise : DSL with Block + def pipeline : SPipelineDefinition def policy(policy: Policy) : DSL - def pollEnrich(uri: String, strategy: AggregationStrategy = null, timeout: Long = 0) : DSL - def process(function: Exchange => Unit) : DSL def process(processor: Processor) : DSL + def recipients(expression: Exchange => Any) : DSL def resequence(expression: Exchange => Any) : SResequenceDefinition def rollback : DSL - def routingSlip(header: String) : DSL def routingSlip(header: String, separator: String) : DSL def routingSlip(expression: Exchange => Any) : DSL - def dynamicRouter(expression: Exchange => Any) : DSL - def setbody(expression: Exchange => Any) : DSL def setfaultbody(expression: Exchange => Any) : DSL def setheader(header: String, expression: Exchange => Any) : DSL - def sort[T](expression: Exchange => Any, comparator: Comparator[T] = null) : DSL def split(expression: Exchange => Any) : SSplitDefinition - def stop : DSL def threads : SThreadsDefinition - def throttle(frequency: Frequency) : SThrottleDefinition def throwException(exception: Exception) : DSL - def to(uris: String*) : DSL - def transacted : DSL def transacted(ref: String) : DSL - def transform(expression: Exchange => Any) : DSL def unmarshal(format: DataFormatDefinition) : DSL @@ -98,7 +98,6 @@ trait DSL { def validate(expression: Exchange => Any) : DSL def when(filter: Exchange => Any) : DSL with Block - def wiretap(uri: String) : DSL def wiretap(uri: String, expression: Exchange => Any) : DSL Modified: camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/builder/RouteBuilder.scala URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/builder/RouteBuilder.scala?rev=1096424&r1=1096423&r2=1096424&view=diff ============================================================================== --- camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/builder/RouteBuilder.scala (original) +++ camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/builder/RouteBuilder.scala Mon Apr 25 07:34:27 2011 @@ -46,6 +46,16 @@ class RouteBuilder extends Preamble with val stack = new Stack[DSL]; + val serialization = new org.apache.camel.model.dataformat.SerializationDataFormat + + val failureOnly = new Config[SOnCompletionDefinition] { + def configure(target: SOnCompletionDefinition) = target.onFailureOnly() + } + + val completeOnly = new Config[SOnCompletionDefinition] { + def configure(target: SOnCompletionDefinition) = target.onCompleteOnly() + } + /** * Callback method to allow people to interact with the Java DSL builder directly */ @@ -79,35 +89,60 @@ class RouteBuilder extends Preamble with } } + def getContext = builder.getContext + + // implementing the Routes interface to allow RouteBuilder to be discovered by Spring + def addRoutesToCamelContext(context: CamelContext) = builder.addRoutesToCamelContext(context) + + // EIPs + //----------------------------------------------------------------- + def aggregate(expression: Exchange => Any, strategy: AggregationStrategy) = stack.top.aggregate(expression, strategy) + def as[Target](toType: Class[Target]) = stack.top.as(toType) def attempt = stack.top.attempt + def bean(bean: Any) = stack.top.bean(bean) + def choice = stack.top.choice - def -->(uris: String*) = stack.top.to(uris: _*) - def to(uris: String*) = stack.top.to(uris: _*) - - def when(filter: Exchange => Any) = stack.top.when(filter) - def as[Target](toType: Class[Target]) = stack.top.as(toType) - def recipients(expression: Exchange => Any) = stack.top.recipients(expression) + def delay(delay: Period) = stack.top.delay(delay) + def dynamicRouter(expression: Exchange => Any) = stack.top.dynamicRouter(expression) + + def enrich(uri: String, strategy: AggregationStrategy) = stack.top.enrich(uri, strategy) + def errorHandler(error: ErrorHandlerBuilder) = builder.setErrorHandlerBuilder(error) + def deadLetterChannel(uri: String) = { + val dlc = new DeadLetterChannelBuilder + dlc.setDeadLetterUri(uri) + dlc + } + def defaultErrorHandler = builder.defaultErrorHandler + def filter(predicate: Exchange => Any) = stack.top.filter(predicate) + def idempotentconsumer(expression: Exchange => Any) = stack.top.idempotentconsumer(expression) def inOnly = stack.top.inOnly def inOut = stack.top.inOut + def interceptFrom(expression: Exchange => Boolean) = { + val interceptFrom = builder.interceptFrom + interceptFrom.when(new ScalaPredicate(expression)) + new SInterceptFromDefinition(interceptFrom)(this) + } + def interceptFrom = new SInterceptFromDefinition(builder.interceptFrom)(this) + def interceptFrom(uri: String) = new SInterceptFromDefinition(builder.interceptFrom(uri))(this) + def interceptSendTo(uri: String) = { + val intercept = builder.interceptSendToEndpoint(uri) + new SInterceptSendToEndpointDefinition(intercept)(this) + } + def intercept = new SInterceptDefinition(builder.intercept)(this) + def loadbalance = stack.top.loadbalance def log(message: String) = stack.top.log(message) def log(level: LoggingLevel, message: String) = stack.top.log(level, message) def log(level: LoggingLevel, logName: String, message: String) = stack.top.log(level, logName, message) - def loop(expression: Exchange => Any) = stack.top.loop(expression) - def split(expression: Exchange => Any) = stack.top.split(expression) - def otherwise = stack.top.otherwise + def marshal(format: DataFormatDefinition) = stack.top.marshal(format) def multicast = stack.top.multicast - def throttle(frequency: Frequency) = stack.top.throttle(frequency) - def loadbalance = stack.top.loadbalance - def delay(delay: Period) = stack.top.delay(delay) - def enrich(uri: String, strategy: AggregationStrategy) = stack.top.enrich(uri, strategy) def onCompletion = { stack.size match { case 0 => SOnCompletionDefinition(builder.onCompletion)(this) @@ -116,71 +151,44 @@ class RouteBuilder extends Preamble with } def onCompletion(predicate: Exchange => Boolean) = stack.top.onCompletion(predicate) def onCompletion(config: Config[SOnCompletionDefinition]) = stack.top.onCompletion(config) + def otherwise = stack.top.otherwise + def pipeline = stack.top.pipeline def pollEnrich(uri: String, strategy: AggregationStrategy = null, timeout: Long = 0) = stack.top.pollEnrich(uri, strategy, timeout) def policy(policy: Policy) = stack.top.policy(policy) def process(function: Exchange => Unit) = stack.top.process(function) def process(processor: Processor) = stack.top.process(processor) + + def recipients(expression: Exchange => Any) = stack.top.recipients(expression) def resequence(expression: Exchange => Any) = stack.top.resequence(expression) def rollback = stack.top.rollback def routingSlip(header: String) = stack.top.routingSlip(header) def routingSlip(header: String, separator: String) = stack.top.routingSlip(header, separator) def routingSlip(expression: Exchange => Any) = stack.top.routingSlip(expression) - def dynamicRouter(expression: Exchange => Any) = stack.top.dynamicRouter(expression) + def setbody(expression : Exchange => Any) = stack.top.setbody(expression) def setfaultbody(expression: Exchange => Any) = stack.top.setfaultbody(expression) def setheader(name: String, expression: Exchange => Any) = stack.top.setheader(name, expression) def sort[T](expression: (Exchange) => Any, comparator: Comparator[T] = null) = stack.top.sort(expression, comparator) + def split(expression: Exchange => Any) = stack.top.split(expression) def stop = stack.top.stop + def threads = stack.top.threads + def throttle(frequency: Frequency) = stack.top.throttle(frequency) def throwException(exception: Exception) = stack.top.throwException(exception) + def to(uris: String*) = stack.top.to(uris: _*) def transacted = stack.top.transacted def transacted(uri: String) = stack.top.transacted def transform(expression: Exchange => Any) = stack.top.transform(expression) + def unmarshal(format: DataFormatDefinition) = stack.top.unmarshal(format) + def validate(expression: (Exchange) => Any) = stack.top.validate(expression) + + def when(filter: Exchange => Any) = stack.top.when(filter) def wiretap(uri: String) = stack.top.wiretap(uri) def wiretap(uri: String, expression: Exchange => Any) = stack.top.wiretap(uri, expression) - def aggregate(expression: Exchange => Any, strategy: AggregationStrategy) = stack.top.aggregate(expression, strategy) - - // delegate to Java builder - def errorHandler(error: ErrorHandlerBuilder) = builder.setErrorHandlerBuilder(error) - def deadLetterChannel(uri: String) = { - val dlc = new DeadLetterChannelBuilder - dlc.setDeadLetterUri(uri) - dlc - } - def defaultErrorHandler = builder.defaultErrorHandler - def getContext = builder.getContext - - // interceptor methods - def interceptFrom(expression: Exchange => Boolean) = { - val interceptFrom = builder.interceptFrom - interceptFrom.when(new ScalaPredicate(expression)) - new SInterceptFromDefinition(interceptFrom)(this) - } - - def interceptFrom = new SInterceptFromDefinition(builder.interceptFrom)(this) - def interceptFrom(uri: String) = new SInterceptFromDefinition(builder.interceptFrom(uri))(this) - def interceptSendTo(uri: String) = { - val intercept = builder.interceptSendToEndpoint(uri) - new SInterceptSendToEndpointDefinition(intercept)(this) - } - - def intercept = new SInterceptDefinition(builder.intercept)(this) - - // implementing the Routes interface to allow RouteBuilder to be discovered by Spring - def addRoutesToCamelContext(context: CamelContext) = builder.addRoutesToCamelContext(context) - - val serialization = new org.apache.camel.model.dataformat.SerializationDataFormat - - val failureOnly = new Config[SOnCompletionDefinition] { - def configure(target: SOnCompletionDefinition) = target.onFailureOnly() - } - - val completeOnly = new Config[SOnCompletionDefinition] { - def configure(target: SOnCompletionDefinition) = target.onCompleteOnly() - } + def -->(uris: String*) = stack.top.to(uris: _*) } Modified: camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ExceptionHandlerTest.scala URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ExceptionHandlerTest.scala?rev=1096424&r1=1096423&r2=1096424&view=diff ============================================================================== --- camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ExceptionHandlerTest.scala (original) +++ camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ExceptionHandlerTest.scala Mon Apr 25 07:34:27 2011 @@ -35,7 +35,7 @@ class ExceptionHandlerTest extends Scala test { "direct:a" ! ("any given message", 'Symbol, 256) } - } catch { case _ => System.out.println("get the exception here")} + } catch { case _ => log.info("get the exception here")} } val builder =