Truly modular
Every feature is an independent Maven module —security, parameters, synchronisation or your own business— versioned, tested and deployed on its own and reused across applications.
Modular development platform · Sivicom
MADS V5 turns the definition of your business —data, domains, texts and parameters— into Java code ready to compile. You focus on the logic; the platform generates the rest, catches errors at compile time and automates build, test and deployment with Maven.
# Install the tool $ brew install mads # Create a module and generate its model $ mads create module $ mads generate module # Compile, test and install with Maven $ mads module build
Why MADS
Large projects get complicated when every team solves the same problems its own way. MADS standardises the foundations so that every module starts with the same structure, the same best practices and the same tools.
Every feature is an independent Maven module —security, parameters, synchronisation or your own business— versioned, tested and deployed on its own and reused across applications.
Tables, columns, views, texts and literals are generated from the metadata. Rename a column and the compiler tells you exactly which code needs a look.
From a single model, MADS generates JPA entities, data access classes, typed filters, multilingual texts, the parameter dictionary and the Dart model for Flutter.
The same module powers desktop applications, back-end web services and mobile apps with Flutter, with interfaces between layers so front-end and back-end can be built in parallel.
Dependencies between projects and modules resolved by Maven, shared parent POMs and commands to version, build, test, deploy and publish with no manual steps.
The MADS extension adds visual editors for domains, data model, texts and parameters, database inspectors and one-click access to the whole module lifecycle.
Quality from day one
For every entity MADS generates an enum with all its fields. Your modules refer to columns through that enum, never through strings, so any change in the model is caught by the compiler and not when a user opens the screen.
int index = peer.getFieldIndex("FAC_ESTADO");
// Enum generated from the metadata customizer.setTableCellRenderer( FacturaField.estado, new EstadoRenderer());
How it works
You describe the module once in schema-validated XML files. MADS generates the code and resources, and Maven takes care of the rest.
Descriptor, domains, database schema, texts, parameters and access keys.
mads create moduleJava model (JPA), Dart model, multilingual texts and parameter dictionary.
mads generate moduleWrite the business logic on top of the generated model and run the module tests.
mads module testCompile, package, deploy to the Maven repository and publish apps and modules.
mads module buildDevelopment in VS Code
The MADS V5 extension for Visual Studio Code adds the MADS view and over forty commands that run the mads tool for you.
Maven and continuous development
Every module inherits from the platform parent POMs, so they all build the same way. The commands you use on your machine also work on the continuous integration server.
The madsv5:platform POM pins the versions; mads-module and mads-service are the parents of modules and web services.
mads module version and mads app version update the module or app version consistently before every release.
mads module build compiles, packages and installs; mads module deploy publishes to the Maven repository and mads pub to the WAPP service.
Integrations
MADS builds on Java standards and connects to the most common databases and enterprise systems.
Installation
The mads command line tool installs with your system's package manager and keeps itself up to date.
# With Homebrew (https://brew.sh) brew tap sivicomeng/mads brew trust --formula sivicomeng/mads/mads brew install mads mads --version
# With Scoop (https://scoop.sh), from a regular PowerShell scoop install git scoop bucket add java scoop install java/temurin-lts-jdk scoop bucket add mads https://github.com/sivicomeng/homebrew-mads scoop install mads/mads mads --version
Then install Maven and the VS Code extension following the installation guide.
We help you evaluate the platform, migrate existing modules or kick off a new development.