Skip to content

Instantly share code, notes, and snippets.

@piotrga
Created December 28, 2011 14:30
Show Gist options
  • Save piotrga/1528130 to your computer and use it in GitHub Desktop.
Save piotrga/1528130 to your computer and use it in GitHub Desktop.
Camel integration
object Camel{
lazy val context = new DefaultCamelContext
def addRoute(routeBuilder: RouteBuilder) {context addRoutes routeBuilder}
def start { context start }
}
trait Consum{ self: Actor =>
val camel = Camel
val consumer = self
def from(route:String) = camel.addRoute(new RouteBuilder(){
def configure() {
from(route).process(new Processor {
def process(exchange: Exchange) {
consumer ! exchange.getIn
}
})
}
})
}
class CamelConsumer extends Actor with Consum{
from("file://data/input/CamelConsumer")
protected def receive = {
case msg : Message =>{
printf("Received '%s'\n", msg.getBody(classOf[String]) )
}
}
}
object Consumer extends App{
// startCamelService
Actor.actorOf[CamelConsumer].start()
Camel.start
val f = new FileWriter("data/input/CamelConsumer/file1.txt")
f.write("test data " + math.random)
f.close()
Thread.sleep(10000)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment