Skip to content

Instantly share code, notes, and snippets.

@kulikov
Created June 27, 2012 16:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kulikov/3005164 to your computer and use it in GitHub Desktop.
Save kulikov/3005164 to your computer and use it in GitHub Desktop.
guice vs cake
class InputConnector @Inject() (
nodeMap: NodeMap,
complexNeedRepo: ComplexNeedRepo,
articleGenerator: ArticleGenerator,
doerRepo: DoerRepo
) extends Actor with ActorLogging {
/**
* Forward messages from transport to destination actor
* @since 27.06.12 15:26
* @author kulikov
*/
def receive = {
case msg: AddNode ⇒ nodeMap ! msg
case msg: AddRouteTemplate ⇒ nodeMap ! msg
case msg: AddComplexNeed ⇒ complexNeedRepo ! msg
case msg: GenerateArticle ⇒ articleGenerator ! msg
case msg: AddDoer ⇒ doerRepo ! msg
case msg: ForwardToDoer ⇒ doerRepo ! msg
case x ⇒ log.error("Unknown message {} in InputConnector", x)
}
}
/********************* - **** - **** - *************************/
trait InputConnectorComponent {
this: IActorSystemComponent
with INodeMapComponent
with ComplexNeedRepoComponent
with DoerRepoComponent
with ArticleGeneratorComponent ⇒
lazy val inputConnector = actorSystem.actorOf(Props(new ActorInputConnector), name = "input-connector")
class ActorInputConnector extends Actor with ActorLogging {
/**
* Forward messages from transport to destination actor
* @since 27.06.12 15:26
* @author kulikov
*/
def receive = {
case msg: AddNode ⇒ nodeMap ! msg
case msg: AddRouteTemplate ⇒ nodeMap ! msg
case msg: AddComplexNeed ⇒ complexNeedRepo ! msg
case msg: GenerateArticle ⇒ articleGenerator ! msg
case msg: AddDoer ⇒ doerRepo ! msg
case msg: ForwardToDoer ⇒ doerRepo ! msg
case x ⇒ log.error("Unknown message {} in InputConnector", x)
}
}
}
@kulikov
Copy link
Author

kulikov commented Jun 27, 2012

class CoreModule(config: Config) extends ScalaModule {

  def configure() {
    bind[NodeMap].toInstance(actorSystem.actorOf(Props(new NodeMap), name = "node-map"))
    bind[ComplexNeedRepo].toInstance(actorSystem.actorOf(Props(new ComplexNeedRepo), name = "complex-need-repo"))
    // ...
  }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment