A modular core framework for NextForge projects, combining:
- Data Package – annotation-driven, pluggable persistence with multiple backends.
- Plugin Framework – annotation-based plugin bootstrap system for NextForge.
- Dependency Loader – runtime dependency resolution and downloading.
- Backends: MySQL, H2, MongoDB, JSON file storage.
- Annotation-driven mapping:
@DataClass
,@PrimaryKey
,@Index
,@Unique
,@Transient
. - Unified Storage API – same CRUD methods across all backends.
- Schema management: automatic table creation, schema diffs, index enforcement.
- Auto UUID generation for entities without IDs on insert.
- Transactions (JDBC), optional transactions in MongoDB.
- Parallel I/O for high-throughput batch operations.
- Atomic JSON writes for file-based persistence.
Full details: 📄 Data Package Documentation
@NextForgePlugin
annotation for plugin entrypoints.ForgedPlugin
base class for easy lifecycle management.- Integrated dependency resolution via
DependencyLoader
&DependencyResolver
. - Supports runtime dependency downloading from Maven repositories.
- Declarative dependency list via
DependencyArtifact
andDependencyRepository
. - Downloads JARs at runtime and loads them into the classpath.
- Maven-style repository layout supported.
- Extensible for authentication or alternative storage backends.
src/main/java/gg/nextforge/core
├── data # Data Package (annotations, model, storage, utils)
│ ├── annotations # @DataClass, @PrimaryKey, @Index, @Unique, ...
│ ├── model # BaseEntity
│ ├── storage # Storage API + backends: JDBC, MySQL, H2, MongoDB, JSON
│ └── util # Reflection, UUID, Index utilities
├── plugin # Plugin base and annotation
│ ├── annotation # @NextForgePlugin and related annotations
│ ├── inject # Dependency injection framework
│ └── dependency # Dependency loader and resolver
├── i18n # Internationalization (i18n) support
└── NextCore.java # Entry point
- Java 17+
- Gradle 8.x
./gradlew build
./gradlew test
For a detailed guide to the Data Package, including all annotations, backends, schema generation, and index handling, see:
📄 Data Package Documentation
For the Dependency Injection Framework, including how to manage dependencies, and use them, see:
📄 Dependency Injection Documentation
For the language support and i18n system, including how to use the I18n
service, see:
📄 I18n Documentation
For our very own sync/async task scheduling system, see:
📄 Task Scheduling Documentation
For the event bus system, including how to register and listen to events, see:
📄 Event Bus Documentation
For the command system, including how to register commands and handle arguments, see:
📄 Command System Documentation
MIT – see LICENSE for details.