modelant is a practical open source tool that supports model-driven software development processes. modelant version 2.x is an extension of Apache Ant, whereas modelant version 3.x extends Apache Maven. modelant can:
- create models,
- load models,
- query models,
- transform models,
- export models,
- reverse engineer to model
- java code,
- relational databases,
- XML document type definitions (DTD),
- XML Schema (XSD),
- Ant scripts (projects and antlibs),
- compare models and detect model changes,
- generate textual artifacts from models:
- java/any code,
- configuration files, etc.
- generate documentation of Ant scripts (for projects and antlibs in version 2.x)
- generating code out of the model using a JSP-like template language
- model conversion UML 1.3 to UML 1.4
- reverse engineering DTD, XSD, and relational databases to UML 1.3.
- SQL scripts,
- XML files,
- textual descriptions
- and many more.
modelant includes practical code generation templates for Java POJO. However, modelant does not provide a common off-the-shelf solution. It is not possible just to pick up and use immediately. Instead, the code generation templates should be adapted for the specific project, frameworks and code conventions.
modelant’s feature for reverse engineering of java code, relational databases, XML document type definitions (DTD), XML Schema (XSD) and ANT scripts extracts UML 1.3 model that are practical for:
- generating documentation
- generating code
- comparing and revealing structural changes in databases, DTDs, XSDs
- visualization and human comprehension
The integration of modelant with Apache Maven simplifies the distribution of modelant through Maven plugins, which are found in the Maven Central binary repository. Then the use of modelant’s components is just including in your pom.xml, for example:
<plugin> <groupId>net.mdatools</groupId> <artifactId>modelant.uml13.maven.javauml</artifactId> <version>3.2.0</version> <executions> <execution> <phase>compile</phase> <goals> <goal>reverseEngineerJavaInUml13</goal> </goals> <configuration> <sourcepath>...</sourcepath> <outputDirectory>...</outputDirectory> <includeDependencySources>false</includeDependencySources> <includeTransitiveDependencySources>false</includeTransitiveDependencySources> </configuration> </execution> </executions> </plugin>
This allows Maven to download all modelant components and use them.