/acara

acara, "event" in Javanese

Primary LanguageJavaMIT LicenseMIT

acara Build Status

acara, "event" in Javanese

Quick start

Gradle

repositories {
  mavenCentral()
  jcenter()
}

dependencies {
  compile 'com.github.blackrush.acara:acara-core-java:2.0-alpha1'
}

Examples

class SomeEvent {
    final String someValue;
}

class SomeListener {
    @Listen
    public void someEventListener(SomeEvent evt) {
        // use SomeEvent as you want
        // here, I just log its value
        System.out.println(evt.someValue);
    }
}

EventBus eventBus = Acara.newEventBus(
    new JavaEventMetadataBuilder(),
    new JavaListenerBuilder(),
    Workers.wrap(Executors.newSingleThreadExecutor()));

Subscription sub = eventBus.subscribe(listener);
try {
    eventBus.publish(new SomeEvent("hello, world!"));
} finally {
    sub.revoke();
}