We suggest you to watch this demo video first to
understand MaintainJ's potential. For detailed installation instructions, check the following sections.
1. Install MaintainJ eclipse plugin using update url: http://www.maintainj.com/updates/4.2.0
2. Get the free evaluation license.
3. The MaintainJ eclipse plug-in renders the UML diagrams, but first you need to capture the trace files
for a scenario in your application.
The wizard below shows the demo video and necessary download links to capture the trace files.
Choose the type of your application:
Core Java App
None of these
Deploy MaintainJ.war to the same application server where your application is running,
access http://localhost:port/MaintainJ/index.jsp and follow the instructions shown.
Check the screenshots to get an overview of how this works.
How do you start the application?
From command prompt
Watch this demo video to get an overview of how this works.
To verify the installation, create a 'MaintainJ Trace Files Project' in Eclipse by following
File-->New-->Project-->MaintainJ-->MaintainJ Trace Files Project. Open the sample trace file Alfresco_Login.ser
in the project to see sequence and class diagrams.
You may use this sample trace file to try out the various features of MaintainJ.
3.2 MaintainJ.war - To generate call trace files for Web Applications
MaintainJ.war web application is the wizard to install and configure MaintainJ on application servers. Deploy MaintainJ.war directly to the application server or from an Eclipse based IDE (after importing the war as a project). Open http://server/MaintainJ/index.jsp and follow the instructions.
Opening trace files generated using older versions - To open the trace files generated using the older versions of MaintainJ, copy them to the 'MaintainJ Trace Files Project' created using this release. This project can be created by following File->New->Project->MaintainJ->MaintainJ Trace Files Project. Please note that the trace files from older versions do not have information about the number of times a method is called in a loop.
(March 12, 2013)
This is mainly a minor enhancement and bug fix release.
Export the diagrams to UML2 - The package name of the return type of a call was not shown in the last release. This release fixes the issue. If the method parameters (or the return type) are of an array type, they were not shown properly in the last release. This issue is fixed as well.
When call context is captured, the previous release did not generate a merged trace file of all the threads. This release generates the merged trace file for all threads.
MaintainJ removes the loop and recursive calls by default. A system property is introduced to turn this off if necessary.
(February 16, 2013)
Export the diagrams to UML2 - This feature is enhanced to export the UML 2 model with the class hierarchy, class methods and attributes. Before exporting the UML 2 model, user can choose to export one or all of these options.
A new plugin is created to render the class and sequence diagrams in RSA from the UML 2 model exported using the above feature.
Web Sequence Diagrams - This feature allows to generate the web sequence diagrams as at websequencediagrams.com.
Response times for each call is displayed in the Outline view.
Support is added for JRE 1.7 and Tomcat 7.
(January 27, 2013)
Export the diagrams to UML2 - Now you can export the MaintainJ generated class and sequence diagrams into a UML2 model file. This UML2 model file can be imported into any UML2 compliant tool like Rational Software Architect (RSA) to view the UML2 class and sequence diagrams.
Predefined Filters - The prior releases of MaintainJ allow defining class and/or package filters before generating the trace files. Now, similar filters can be applied on the diagrams after generating the trace files. You can capture the trace files with all the classes and then apply different filters to the diagram to view the diagrams at different levels of abstraction.
Delete Constructor Calls - All constructor calls can be deleted at once using this option in the sequence diagram.
(October 26, 2012)
Introduces Impact Analysis capability - User can search for trace files, classes, methods, SQL statements in multiple trace files across many 'MaintainJ Trace File Projects'. Check the section on Impact Analysis in the user guide for more details.
The class diagram is improved to show the fields and methods in a class when the mouse is hovered over a class.
(September 7, 2012)
Major release with multiple enhancements to the product.
Shows call context - The context of each call is shown in the sequence diagram. The context includes the call parameters, return value and the state of the called object.
Displays runtime SQL - The actual runtime SQL statements (with populated parameters) going to the database regardless of the JDBC frameworks used are shown in 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.
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.
By using 'Select In Diagram' feature in 'Outline View', the breadcrumb trail of the call can be seen in sequence diagram. This feature helps to quickly browse the diagram without expanding all calls.
The new 'Exclude Class' feature allows to exclude some classes or packages from the diagram. This is similar to excluding classes or packages from instrumentation scope so that those classes or packages will not be captured in the trace file. This new feature
allows us to first capture all calls and then exclude those we do not want from the diagram.
(March 29, 2011)
Major revamp of UML Diagram Editor to increase the performance.
The tooltips for calls and classes are enhanced. The call tooltip shows the javadoc information if the source file is available in the workspace. In the class diagram the class tooltip shows all the methods of that class called in the use case. The tooltips behave exactly as they do in java source editor.
The sequence and class diagrams are always in sync now. In the previous releases, when a class is deleted in the sequence diagram, it is deleted in class diagram but when a class is deleted from class diagram, it is not deleted in sequence diagram. In this release they are
always in sync.
When a class or call is selected in the Outline view, the corresponding class or call is not automatically selected in the diagram. User needs to right click and choose 'Select In Diagram' to select the corresponding class or call in the diagram. This change is to avoid
unnecessary scrolling of the diagram, which is very slow in large diagrams.
For Tomcat and JBoss applications deployed in Eclipse using MaintainJ J2EE server feature, the JSPs are automatically added to the instrumentation scope and are shown in the diagrams.
The trace files saved as .mnj files in previous releases cannot be opened in this release. A conversion tool for this purpose will be released soon.
(September 10, 2009)
MaintainJ J2EE Server Plug-in is released. This plug-in is used to instrument applications running on Tomcat or JBoss.
MaintainJ Launcher plug-in is enhanced to seamlessly support JUnit and Applets.
'MaintainJ Start and Stop Tracing' Swing window is updated with more information.
AspectJ weaver used is upgraded to more efficient version 1.6.4.
(January 17, 2009)
Added floating license option.
Classes in class diagrams can be resized now.
In MaintainJ Launcher plug-in, stopping users from selecting com package as it includes packages like com.sun into the instrumentation scope.
(October 27, 2008)
Bug fix release. Fixed a defect in MaintainJ Launcher plug-in.
(July 07, 2008)
Dependency on AJDT plug-in is removed. Now GEF is the only required plug-in.
Build-time instrumentation wizard is retired.
(July 01, 2008)
UML class diagrams show methods called in each class in a scenario.
In UML sequence diagrams, 'Delete Duplicate Calls to a Method' menu option deletes all calls expect the selected call.
(December 08, 2007)
MaintainJ.war updates - Updated to work on UNIX. Updated to work with J2EE applications deployed from Eclipse.
MaintainJ Launcher is supported on all flavors of JREs of version 1.4 and above.
UML sequence diagrams show the response time for every method call. Select a call and open the Eclipse properties view to view the response time.
(October 24, 2007)
Runtime instrumentation support is added for J2SE and J2EE applications. Applications running on supported configurations are instrumented at runtime to generate the call trace files. No changes done to the source code. No need to build the source code using AspectJ; the deployed application is instrumented at runtime to generate the call trace files. UML diagrams are generated from trace files.
A new Eclipse plug-in, MaintainJ Launcher, is added. This plug-in instruments J2SE applications at runtime and generates call trace files when the application is launched from Eclipse.
A new web application MaintainJ.war is developed for runtime instrumenting J2EE applications. MaintainJ.war installs MaintainJ related jars on the server, generates the aspect and prepares the application for runtime instrumentation.
UML diagrams can also be exported as BMP images. BMP images offer better quality.
(September 1, 2007)
UML Editor's performance has been increased drastically. Now large diagrams can be opened and edited much faster than before. While in the last release a sequence diagram with 6000 calls took around 75 seconds to open, it now takes about 13 seconds.
More features to better understand multi-threaded applications. In this release trace files of different threads can be merged using a wizard. Follow File-->New-->Other-->MaintainJ-->Merge Trace Files to access the wizard. When the trace file logging is stopped, a
trace file that contains joinpoints of all threads is written with name <<TraceFileName>>_AllThreads.ser . However, if this file is too large (say 20,000+ calls), it may take a while to render the diagram. In such a case, it is better to work with trace files of each thread separately and merge them as necessary.
Instrumentation Wizard enhanced to work on Solaris. The browser widget, which was giving problems on Solaris is not used on platforms that do not support browser.
License is locked to the computer name. Users need to supply the Host Key (encoded computer name + user name for evaluation and just machine name when bought) to get the license file.
Bug fixes. When a trace file outside the workspace is opened, a message is shown to add to add the trace file to a project in workspace.
(July 19, 2007)
Bug fixes to work with Eclipse 3.3.
(July 13, 2007)
The downloaded version of the plug-in works in a limited evaluation mode, in which one can expand or collapse calls in the sequence diagrams for a limited number of times. Users need to install the license file to get the full evaluation license.
(June 26, 2007)
The following is a list of the major changes in this version:
Support for Eclipse plug-ins is added. Now, Eclipse plug-ins can be instrumented using Instrumentation Wizard and diagrams
can be generated in a couple of minutes.
Support for pure web applications is added. In the previous version, the Instrumentation Wizard did not support pure web
applications that don't have an EAR file. Now users can instrument such applications and deploy to servers like Tomcat to generate UML diagrams.
Support for non-GUI J2SE applications is added. Instrumentation Wizard can instrument any Java code. Once the code is instrumented, user can add a few lines of code to log the trace files.
Demos are added for J2SE and Plug-in instrumentation.