The idea is to filter the sources, replacing @<var>@ occurrences with the mapping for <var> (which is currently hard-coded). @@ -> @. In order to make this work, I had to move the doc sources one directory down (into akka-docs/rst) so that the filtered result could be in a sibling directory so that relative links (to _sphinx plugins or real code) would continue to work. While I was at it I also changed it so that WARNINGs and ERRORs are not swallowed into the debug dump anymore but printed at [warn] level (minimum). One piece of fallout is that the (online) html build is now run after the normal one, not in parallel.
47 lines
1.5 KiB
Scala
47 lines
1.5 KiB
Scala
package docs.camel
|
|
|
|
object HttpExample {
|
|
|
|
{
|
|
//#HttpExample
|
|
import org.apache.camel.Exchange
|
|
import akka.actor.{ Actor, ActorRef, Props, ActorSystem }
|
|
import akka.camel.{ Producer, CamelMessage, Consumer }
|
|
import akka.actor.Status.Failure
|
|
|
|
class HttpConsumer(producer: ActorRef) extends Consumer {
|
|
def endpointUri = "jetty:http://0.0.0.0:8875/"
|
|
|
|
def receive = {
|
|
case msg ⇒ producer forward msg
|
|
}
|
|
}
|
|
|
|
class HttpProducer(transformer: ActorRef) extends Actor with Producer {
|
|
def endpointUri = "jetty://http://akka.io/?bridgeEndpoint=true"
|
|
|
|
override def transformOutgoingMessage(msg: Any) = msg match {
|
|
case msg: CamelMessage ⇒ msg.addHeaders(msg.headers(Set(Exchange.HTTP_PATH)))
|
|
}
|
|
|
|
override def routeResponse(msg: Any) { transformer forward msg }
|
|
}
|
|
|
|
class HttpTransformer extends Actor {
|
|
def receive = {
|
|
case msg: CamelMessage ⇒ sender ! (msg.mapBody { body: Array[Byte] ⇒ new String(body).replaceAll("Akka ", "AKKA ") })
|
|
case msg: Failure ⇒ sender ! msg
|
|
}
|
|
}
|
|
|
|
// Create the actors. this can be done in a Boot class so you can
|
|
// run the example in the MicroKernel. just add the below three lines to your boot class.
|
|
val system = ActorSystem("some-system")
|
|
val httpTransformer = system.actorOf(Props[HttpTransformer])
|
|
val httpProducer = system.actorOf(Props(new HttpProducer(httpTransformer)))
|
|
val httpConsumer = system.actorOf(Props(new HttpConsumer(httpProducer)))
|
|
//#HttpExample
|
|
|
|
}
|
|
|
|
}
|