MaintainJ generates the runtime sequence diagrams for a use case. MaintainJ generated diagrams are dynamic, easy to explore and help Java developers to understand, debug, document and performance tune Java applications.
MaintainJ is the winner of the Best Modeling Product award at Eclipse Community Awards 2012
Please check the demo video (3 minutes).
The above demo is recorded on a sample application with 8000 Java classes, 260 JSPs and 600 XML configuration files. The sample application runs on Tomcat and MySQL and uses Spring, Hibernate and many other Java frameworks.
MaintainJ V4 allows users to quickly find the methods that take longer response times in a use case and helps users to optimize those methods.
MaintainJ 3.6 allows exporting class hierarchy to UML models, shows the call response time in Outline view and adds support for JRE 1.7.
MaintainJ 3.5 allows users to export the diagrams into UML2 models that can be imported into other UML2 compliant tools like Rational Software Architect. It also adds the ability to apply predefined filters on the diagrams.
MaintainJ 3.3 adds Runtime Dependency Analysis feature to the tool.
MaintainJ 3.2 is a major enhancement release with the following features:
- Shows Call context - In the sequence diagram when the mouse is hovered over a call, the tooltip shows the call context - the call argument and the return value. Response time and more details of the call context can be seen in the 'Properties View'.
- Displays runtime SQL - MaintainJ captures the actual runtime SQL statements going to the database with parameters populated regardless of the JDBC framework used. These database calls are shown in the sequence diagram along with the response time for each database hit.
- Supports multi-JVM applications - Users can trace applications running on multiple JVMs and see the end-to-end call flow in a single sequence diagram. For example, when an application calls a web service running in a different JVM, the call flow across JVMs is shown in a single sequence diagram. The calls in each JVM can be seen in a different color on the same diagram.
- Enhanced Outline View - The sequence diagram's 'Outline View' shows all the classes and calls in the use case. It is enhanced to select and delete multiple packages, classes or calls at one go. An option to filter out all getter and setter methods has been added to the sequence diagram.
- JSP calls - The calls to JSP(s) in a use case are shown in the sequence diagrams. If one JSP includes multiple JSPs, the runtime calls to the inner JSPs are displayed as well.
Enterprise Java applications are difficult to understand and change because the business logic is distributed between the multiple components. A typical enterprise application contains all the following components.
- Java classes
- configuration XML files
- portal configurations (configuration of portlets and pages in portal servers)
- business rule engines and their configuration files
- multi-JVM applications (to fulfill a user request, the control flows through multiple JVM's)
All these components interact at runtime in a complex manner and it is very difficult to understand the end-to-end call flow for a particular use case. MaintainJ cuts through the complexity involved in understanding by generating easy to read dynamic sequence diagrams for a use case.