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.