Mojave

Mojave is a personal Java web application framework — a from-scratch, monolithic toolkit that bundles an MVC web framework, a custom ORM, SQL helpers, and (more recently) a small ETL engine. It’s licensed under the LGPL and built with Gradle on a Java 11 toolchain, producing a fat jar (shadowJar) named mojave. Its lib/ folder vendors dependencies directly — HikariCP, OkHttp, ScribeJava, Lucene, sshj, HtmlCleaner, JoSQL, and others — a holdover from before Maven Central became the default for everything, and a detail that says as much about when and how it was built as any version number would.

Web

The core MVC layer. web/dispatch/DispatchFilter is a servlet Filter that reads an XML config (docs/example-config.xml), maps URLs to Action classes via an ActionMapper, and forwards to JSPs/pages. web/action defines the Action/AbstractAction contract plus a set of built-ins (login, password reset, JVM/system info, request snooping, logging). The layer also includes custom taglibs, multipart handling, compression filters, and templating.

ORM

A hand-rolled object-relational mapper — Session, SessionFactory, EntityManager, a Criteria/Criterion query API, JDBC/JTA transaction support, XML entity mappings under orm/mapping, and SQL generation/dialects under orm/sql. It predates JPA-style frameworks becoming the default choice, or was written as a deliberately lighter alternative to them.

SQL

Lower-level SQL wrapper classes used by the ORM and elsewhere in the framework.

Configuration

A generic, XML-driven configuration system (Configuration, XMLConfigurationProvider, and bean/field/list/map config objects) used to wire datasources, mail servers, caches, realms, and other infrastructure.

ETL

A small pipeline framework: Extractor → RowProcessor/RowTransformer → DataLoader, orchestrated by Flow implementations such as SimpleFileImportFlow, SimpleDatabaseFlow, SimpleDatabaseExportFlow, SimpleFileTransferFlow, and SimpleStatementFlow — built to run scheduled data-movement jobs.

Smaller packages

Search (Lucene-based), transaction (a file-based transaction log), crypto/security/codec, cache, mail, logging (a Logback wrapper), XML, context, and event handling round out the toolkit.