A minmal Java library which provides an efficient and modular in-process event-system (for Java 8 and later).
The API of this library has been heavily influenced by guava and other implementations. It was designed to be fully compatible with Java modules.
public class Sample {
public static void main(String[] args) {
// Create a basic EventBus
EventBus<Event> bus = EventBus.build();
// Subscribe a handler
SubscriberHandle handle = bus.subscribe(SimpleEvent.class, () -> System.our.println("Received Event"));
// Post an event
Event event = new Event();
bus.post(event);
// Unsubscribe a handler
handle.unsubscribe();
}
public static class Event {}
}
This project uses Gradle's toolchain support to detect and select the JDKs required to run the build. Please refer to the build scripts to find out which toolchains are requested.
An installed JDK 1.8 (or later) is required to use Gradle.
Once the setup is complete, invoke the respective Gradle tasks using the following command on Unix/macOS:
./gradlew <tasks>
or the following command on Windows:
gradlew <tasks>
Important Gradle tasks to remember are:
clean
- clean build resultsbuild
- assemble and test the Java librarypublishToMavenLocal
- build and install all public artifacts to the local maven repository
Additionally tasks
may be used to print a list of all available tasks.
Copyright 2018-2022 Leon Linhart
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.