Hi Sree,

It should be perfectly fine to use it inside an actor. I can't see what is
wrong. Your LookupBusImpl can't be the same as the sample, as it knows
about your TestEvent, so it could be a bug in your implementation of
LookupBusImpl. Another thing might be that you have not defined any type
parameters of the LookupEventBus field in the actor. Not sure how that
would break it, but you can try to use the concrete LookupBusImpl type.

With additional println in your LookupBusImpl you should be able to debug
how far it gets. First it should call classify, and then publish.

Regards,
Patrik


On Wed, Feb 19, 2014 at 3:36 AM, Sree <[email protected]> wrote:

> Hi,
>        I am trying to look into the EventBus functionality in Akka and I
> started off with looking at the documentation provided. I started with -
> http://doc.akka.io/docs/akka/2.3.0-RC3/java/event-bus.html#Lookup_Classification
>
> I extended the base class as stated in the example and I was able to
> subscribe actors to the EventBus and was able to publish messages to
> various subscribers.
> The issue came in when I passed the reference of the LookupServiceImpl to
> an Actor class via its constructor.
>
> *All I was trying to achieve is to write an Actor which would publish the
> message it receives to the EventBus Implementation.*
>
> My Actor is the following :
>
> public class EventActor extends UntypedActor {
>
>  private LookupEventBus eventBus;
>
>  public EventActor()
>
> {
>
>  }
>
>
>  public EventActor(LookupEventBus eventBus)
>
> {
>
> this.eventBus = eventBus;
>
> System.out.println("TEST"+eventBus.toString());
>
> System.out.println("TEST"+eventBus.mapSize());
>
> }
>
>  @Override
>
> public void onReceive(Object message) throws Exception {
>
> // TODO Auto-generated method stub
>
> //System.out.println("RegistrationEventActor ::"+message);
>
> //eventBus.publish(message);
>
> if(message instanceof TestEvent)
>
> {
>
> System.out.println("RegistrationEventActor ::"+message);
>
> //System.out.println("Test:"+eventBus.);
>
> /*if(eventBus instanceof LookupBusImpl)
>
> {
>
> ((LookupBusImpl)eventBus).publish((TestEvent)message);
>
> }*/
>
> eventBus.publish((TestEvent)message);
>
> //ActorSelection registrationEventOuboundActor =
>
> }
>
>
>  }
>
>
> }
>
>
> My JUnit Test case is the following :
>
>
> public void testAkkaLookupBusImpl()
>
> {
>
> //Subscriber could be on another JVM
>
> final ActorSystem outboundActorSystem = ActorSystem.create(
> "OutboundSubscriberActorSystem");
>
> final ActorRef eventOutboundActor =
> outboundActorSystem.actorOf(Props.create(RegistrationEventOutboundActor.
> class),"EventOuboundActor");
>
> final ActorRef basicOutboundActor =
> outboundActorSystem.actorOf(Props.create(BasicRegistrationEventOutboundActor.
> class),"BasicEventOuboundActor");
>
>                 //LookupBusImpl is same as given in the Akka example
> documentation.
>
> LookupBusImpl lookUpBusEvent = new LookupBusImpl();
>
> lookUpBusEvent.subscribe(eventOutboundActor, "Event");
>
> lookUpBusEvent.subscribe(basicOutboundActor, "Event");
>
> System.out.println(lookUpBusEvent.toString());
>
> System.out.println("Map Size:"+lookUpBusEvent.mapSize());
>
>
>  //Event Generation Actor System
>
> final ActorSystem eventGenerationActorSystem = ActorSystem.create(
> "EventGenerationActorSystem");
>
> final ActorRef eventActor =
> eventGenerationActorSystem.actorOf(Props.create(EventActor.class,
> lookUpBusEvent),"Event");
>
>
>  System.out.println("Event Generation Path::"+ eventActor.path());
>
>  final TestEvent test = new TestEvent("Event", "1");
>
> eventActor.tell(test,ActorRef.noSender());
>
>
>  }
>
>
> When the eventActor.tell(test,ActorRef.noSender()) is invoked , a message
> is sent to the Actor , but the message is not published to the Subscribers.
> Is there something that I am doing which is not correct ? Or is the
> EventBus not to be combined inside an Actor model ??
>
>
> Can someone please throw some light on this ?
>
>
> Thanks in Advance,
>
> Sree.
>
>
>  --
> >>>>>>>>>> Read the docs: http://akka.io/docs/
> >>>>>>>>>> Check the FAQ: http://akka.io/faq/
> >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
> ---
> You received this message because you are subscribed to the Google Groups
> "Akka User List" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/akka-user.
> For more options, visit https://groups.google.com/groups/opt_out.
>



-- 

Patrik Nordwall
Typesafe <http://typesafe.com/> -  Reactive apps on the JVM
Twitter: @patriknw

-- 
>>>>>>>>>>      Read the docs: http://akka.io/docs/
>>>>>>>>>>      Check the FAQ: http://akka.io/faq/
>>>>>>>>>>      Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to