alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Akka/Scala example source code file (Consumers.scala)

This example Akka source code file (Consumers.scala) is included in my "Source Code Warehouse" project. The intent of this project is to help you more easily find Akka and Scala source code examples by using tags.

All credit for the original source code belongs to akka.io; I'm just trying to make examples easier to find. (For my Scala work, see my Scala examples and tutorials.)

Akka tags/keywords

ack, camelmessage, consumer, consumer1, consumer2, consumer3, consumer4, exception, hello, sample4

The Consumers.scala Akka example source code

/**
 * Copyright (C) 2009-2014 Typesafe Inc. <http://www.typesafe.com>
 */

package docs.camel

import language.postfixOps

object Consumers {
  object Sample1 {
    //#Consumer1
    import akka.camel.{ CamelMessage, Consumer }

    class Consumer1 extends Consumer {
      def endpointUri = "file:data/input/actor"

      def receive = {
        case msg: CamelMessage => println("received %s" format msg.bodyAs[String])
      }
    }
    //#Consumer1
  }
  object Sample2 {
    //#Consumer2
    import akka.camel.{ CamelMessage, Consumer }

    class Consumer2 extends Consumer {
      def endpointUri = "jetty:http://localhost:8877/camel/default"

      def receive = {
        case msg: CamelMessage => sender() ! ("Hello %s" format msg.bodyAs[String])
      }
    }
    //#Consumer2
  }
  object Sample3 {
    //#Consumer3
    import akka.camel.{ CamelMessage, Consumer }
    import akka.camel.Ack
    import akka.actor.Status.Failure

    class Consumer3 extends Consumer {
      override def autoAck = false

      def endpointUri = "jms:queue:test"

      def receive = {
        case msg: CamelMessage =>
          sender() ! Ack
          // on success
          // ..
          val someException = new Exception("e1")
          // on failure
          sender() ! Failure(someException)
      }
    }
    //#Consumer3
  }
  object Sample4 {
    //#Consumer4
    import akka.camel.{ CamelMessage, Consumer }
    import scala.concurrent.duration._

    class Consumer4 extends Consumer {
      def endpointUri = "jetty:http://localhost:8877/camel/default"
      override def replyTimeout = 500 millis
      def receive = {
        case msg: CamelMessage => sender() ! ("Hello %s" format msg.bodyAs[String])
      }
    }
    //#Consumer4
  }
}

Other Akka source code examples

Here is a short list of links related to this Akka Consumers.scala source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.