Skip to content

Isshoni Bootstrapper, uses introspection & code generation to streamline bootstrapping & general development

Notifications You must be signed in to change notification settings

isshoni-soft/winry

Repository files navigation

Isshoni Winry Bootstrapper

The bootstrapper designed and developed for Isshoni, with the intention to support a wide-range of Java applications to facilitate innovation while not wasting time on boilerplate design requirements.

This tool was written with and requires Java 17
This tool is currently in beta until the version number says 1.0.0, please expect bugs/instability when using it.

Table of Contents

Basic Usage

Usage varies slightly depending on if you intend to create a library that utilizes Winry, or an application using Winry. A library will need to use an @Loader annotation, while an application must use an @Bootstrap annotation on the "main class" of the program.

A @Bootstrap annotation contains various program metadata and needs a nested @Loader annotation to determine load targets. A library only needs to declare its load targets, because it's not an application and therefore doesn't need the @Bootstrap. When using a library, make sure that you just load the class with the @Loader annotation on it, the library should take care of the rest of the discovery and registration necessary.
TODO

Return to Table of Contents

Repository

I have a maven repository where I publish builds, here is how you would import it as a dependency with gradle:

repositories {
    maven {
        url = 'https://repo.isshoni.institute'
    }
}

dependencies {
    api 'tv.isshoni:winry:0.64.3'
}

Return to Table of Contents

About

Design inspired by SpringBoot and previous projects I have worked on. This is a library designed to make bootstrapping any type of Java application as painless and as easy as using SpringBoot. Some major features are:

  • Singleton dependency management, register & inject dependencies with ease.
  • Event based, winry is backed by an event bus that can be configured to fire specific events during the lifecycle.
  • Integer-based weighting system, to keep things running smoothly and in order, all "executables" in the winry bootstrapping lifecycle are integer weighted.
  • Built to be extended, register new annotations, add more functionality to pre-existing ones, or add new lifecycle events.
    • Import libraries that add their own lifecycle events and gain specialized functionality, i.e. game engine, or, REST webserver.

TODO

Return to Table of Contents

How it Works

TODO, while I'm working on a good basic tutorial, check out the integration tests.

Return to Table of Contents

Advanced Usage

TODO

Return to Table of Contents

About

Isshoni Bootstrapper, uses introspection & code generation to streamline bootstrapping & general development

Resources

Stars

Watchers

Forks

Languages