I was about to add sample code to the documentation of how to use the event bus abstraction, but I can't find a way to use it from Java. Subclassing the abstract classes in akka.event.japi doesn't compile for other types of E, S, C than Object.
I hope I'm wrong, otherwise what do we do for 2.3.0?
Minimized problem:
trait Bus {
type Subscriber
type Classifier
def subscribe(subscriber: Subscriber, to: Classifier): Boolean
}
abstract class JBus[S, C] extends Bus {
type Subscriber = S
type Classifier = C
}
public class MyEventBus extends JBus<ActorRef, String> {
@Override
public boolean subscribe(ActorRef subscriber, String to) {
return false;
}
}
[error] /Users/patrik/dev/akka/akka-actor-tests/src/test/java/akka/event/MyEventBus.java:8: error: MyEventBus is not abstract and does not override abstract method subscribe(Object,Object) in Bus
[error] public class MyEventBus extends JBus<ActorRef, String> {
[error] ^
[error] /Users/patrik/dev/akka/akka-actor-tests/src/test/java/akka/event/MyEventBus.java:10: error: method does not override or implement a method from a supertype
[error] @Override
[error] ^
[error] 2 errors
--
Patrik Nordwall
Typesafe - Reactive apps on the JVM
Twitter: @patriknw