Created
December 28, 2011 14:30
-
-
Save piotrga/1528130 to your computer and use it in GitHub Desktop.
Camel integration
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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