Skip to content

Latest commit

 

History

History
86 lines (56 loc) · 2.96 KB

README.md

File metadata and controls

86 lines (56 loc) · 2.96 KB

MJL Events

License Maven Central JavaDoc Java

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.

Getting Started

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 {}

}

Building from source

Setup

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.

Building

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 results
  • build - assemble and test the Java library
  • publishToMavenLocal - build and install all public artifacts to the local maven repository

Additionally tasks may be used to print a list of all available tasks.

License

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.