667481 members! Sign up to stay informed.

Sponsored Links


Resources

Enterprise Java
Research Library

Get Java white papers, product information, case studies and webcasts

News News News Messages: 18 Messages: 18 Messages: 18 Printer friendly Printer friendly Printer friendly Post reply Post reply Post reply XML XML XML

MaintainJ 2.0, Eclipse Plugin to generate runtime UML, released

Posted by: Choudary Kothapalli on October 25, 2007 DIGG
MaintainJ 2.0 has been released. MaintainJ generates runtime UML sequence and class diagrams for a given use case. It helps the users to quickly understand complex Java or J2EE applications and reduce maintenance costs.

This release uses AspectJ load time weaving (LTW) for instrumenting. Previous releases used build-time aspect weaving to log the call trace. Earlier, many people found it difficult to change the Ant scripts to rebuild using AspectJ. On large projects, it was just too slow to rebuild using AspectJ. LTW makes is faster and easier for people to get started.

MaintainJ 2.0 adds a new Eclipse plug-in, MaintainJ Launcher. This plug-in instruments J2SE applications at runtime and generates call trace files when the application is launched from Eclipse. Watch the flash demo.

A new web application (MaintainJ.war) is developed for instrumenting J2EE applications at runtime. MaintainJ.war installs MaintainJ jars on the server, generates the aspect and prepares the application for runtime instrumentation. Watch the flash demo.

Runtime instrumentation is very easy and quick to get started.

MaintainJ is different from other UML generating tools as follows:

Runtime Reverse Engineering - Run a use case and generate UML sequence and class diagrams for that use case.
Focused, Uncluttered Diagrams - Only application classes (no API classes) in specified packages are shown. All loop calls and recursive calls are removed from sequence diagrams.
Collapsible Calls - Large sequence diagrams are easy to read with collapsible calls.
From Code or Jar - Diagrams are generated at runtime. You don't really need to have the source code.
Integrates with JUnit - Integrate with JUnit to generate UML diagrams for each test case.

Threaded replies

·  MaintainJ 2.0, Eclipse Plugin to generate runtime UML, released by Choudary Kothapalli on Thu Oct 25 09:21:32 EDT 2007
  ·  MaintainJ 2.0 release by Choudary Kothapalli on Thu Oct 25 16:21:28 EDT 2007
    ·  Re: MaintainJ 2.0 release by Jin Chun on Thu Oct 25 17:19:07 EDT 2007
      ·  NetBeans plugin? by Choudary Kothapalli on Thu Oct 25 17:44:43 EDT 2007
        ·  Re: NetBeans plugin? by Jin Chun on Fri Oct 26 10:48:31 EDT 2007
          ·  Re: NetBeans plugin? by Choudary Kothapalli on Fri Oct 26 11:35:34 EDT 2007
          ·  Re: NetBeans plugin? by Werner Punz on Mon Oct 29 07:58:03 EDT 2007
      ·  Great tool! by Jose Papo on Fri Oct 26 07:59:39 EDT 2007
        ·  Re: Great tool! by Jose Papo on Fri Oct 26 08:00:42 EDT 2007
    ·  Re: MaintainJ 2.0 release by harry sheng on Fri Oct 26 09:54:28 EDT 2007
      ·  Instrumentation and application performance by Choudary Kothapalli on Fri Oct 26 10:28:38 EDT 2007
    ·  Re: MaintainJ 2.0 release by Paul Casal on Fri Oct 26 13:27:05 EDT 2007
      ·  MaintainJ's Pricing by Choudary Kothapalli on Mon Oct 29 12:56:53 EDT 2007
        ·  Re: MaintainJ's Pricing by david theserverside m on Mon Oct 29 13:27:47 EDT 2007
          ·  Re: MaintainJ's Pricing by Choudary Kothapalli on Mon Oct 29 13:48:18 EDT 2007
  ·  I tried it, but had a problem by Jane Zhen on Wed Oct 31 16:38:14 EDT 2007
    ·  Re: I tried it, but had a problem by Jane Zhen on Wed Oct 31 16:43:41 EDT 2007
      ·  Re: I tried it, but had a problem by Jane Zhen on Wed Oct 31 16:45:00 EDT 2007
    ·  Re: I tried it, but had a problem by Choudary Kothapalli on Wed Oct 31 22:14:11 EDT 2007
  Message #241731 Post reply Post reply Post reply Go to top Go to top Go to top

MaintainJ 2.0 release

Posted by: Choudary Kothapalli on October 25, 2007 in response to Message #241621
Hello,

No comments? Come on say something...good, bad, ugly, useful, useless, not for me, runtime diagrams don't work, I know my code too well, price is too cheap or something...

I thought using runtime weaving makes generating the diagrams lot easier and makes MaintainJ lot more useful than earlier. Check the demos and say something.

Choudary Kothapalli.

  Message #241733 Post reply Post reply Post reply Go to top Go to top Go to top

Re: MaintainJ 2.0 release

Posted by: Jin Chun on October 25, 2007 in response to Message #241731
looks interesting for sure, $20? really ;-), that is wicked cheap. With the ant integration, it seams pretty straightforward as well. I'll take it for a spin. One question, though, have you thought about making a plugin for NB?

  Message #241736 Post reply Post reply Post reply Go to top Go to top Go to top

NetBeans plugin?

Posted by: Choudary Kothapalli on October 25, 2007 in response to Message #241733
You mean NetBeans plugin? No.

Choudary.

  Message #241766 Post reply Post reply Post reply Go to top Go to top Go to top

Great tool!

Posted by: Jose Papo on October 26, 2007 in response to Message #241733
I saw MaintainJ and it's a very nice tool and with a great price (only $20 a year). It's a nice way to document your code if it´s demanded by your contractors and also a good way to understand what is being done by the code based on their scenarios.

Great work! I will post now an entry in my brazilian blog about it. Probably you will receive a lot of visitors from Brazil :-) !

--
José Papo, http://www.erudio.com.br

IBM Certified Specialist (RUP, OOAD, RMUC, RSA, Sales)
Certified Scrum Master
OMG Certified UML 2 Professional
ITIL Certified Professional

  Message #241767 Post reply Post reply Post reply Go to top Go to top Go to top

Re: Great tool!

Posted by: Jose Papo on October 26, 2007 in response to Message #241766
Oops!!!

The blog is http://josepaulopapo.blogspot.com


--
José Papo, http://www.erudio.com.br

IBM Certified Specialist (RUP, OOAD, RMUC, RSA, Sales)
Certified Scrum Master
OMG Certified UML 2 Professional
ITIL Certified Professional

  Message #241773 Post reply Post reply Post reply Go to top Go to top Go to top

Re: MaintainJ 2.0 release

Posted by: harry sheng on October 26, 2007 in response to Message #241731
This is really an interesting tool. I'll definitely give it a try.

I guess that once the classes are instrumented, you can never revoke the instrumentation unless you restart the application?

How are the classes instrumented? How are the application performance affected once this tool is triggered in use? Is it reasonable to be plugged in a heavily used production system?

Cheers,
Harry

  Message #241778 Post reply Post reply Post reply Go to top Go to top Go to top

Instrumentation and application performance

Posted by: Choudary Kothapalli on October 26, 2007 in response to Message #241773
I guess that once the classes are instrumented, you can never revoke ...


You are right.

How are the application performance affected once this tool is triggered in use? Is it reasonable to be plugged in a heavily used production system?


I don't have the performance statistics for a production system under load. However, on a development system, after the first request, you wouldn't notice a difference in response time between the original and instrumented application. Check the testimonial from a client using MaintainJ on a 6000+ classes J2EE application.

Give it a try. I am sure you will be happy with what you see.

Cheers,
Choudary Kothapalli.

  Message #241780 Post reply Post reply Post reply Go to top Go to top Go to top

Re: NetBeans plugin?

Posted by: Jin Chun on October 26, 2007 in response to Message #241736
yes, netbeans. This is purely selfish on my part as I migrate over off of eclipse.

  Message #241785 Post reply Post reply Post reply Go to top Go to top Go to top

Re: NetBeans plugin?

Posted by: Choudary Kothapalli on October 26, 2007 in response to Message #241780
Jin,

I use an Eclipse framework(GEF) to render the diagrams. So for now, MaintainJ will be on Eclipse only.

Cheers,
Choudary Kothapalli.

  Message #241794 Post reply Post reply Post reply Go to top Go to top Go to top

Re: MaintainJ 2.0 release

Posted by: Paul Casal on October 26, 2007 in response to Message #241731
This is an interesting tool, and the price seems to be really competitive. I feel outraged when I come across companies using barely-useful and totally overpriced UML tools (you know the tools I am talking about).

And yet, most of the UML use I've seen is counter productive, specially in large companies. It seems to be a way of showing how serious and knowledgeable the designer is. It doesn't look like a way to communicate a design. My favorite UML 'tool' is Fowler's UML distiled book :)

Regards,

Paul Brenoir
Sr Developer
jbilling.com
The Open Source Enterprise Billing System

  Message #241846 Post reply Post reply Post reply Go to top Go to top Go to top

Re: NetBeans plugin?

Posted by: Werner Punz on October 29, 2007 in response to Message #241780
yes, netbeans. This is purely selfish on my part as I migrate over off of eclipse.

Ahem Netbeans already has UML out of the box.

  Message #241872 Post reply Post reply Post reply Go to top Go to top Go to top

MaintainJ's Pricing

Posted by: Choudary Kothapalli on October 29, 2007 in response to Message #241794
As 3 people here have commented about the MaintainJ pricing and I was checking the comments on the Virtual Ant's pricing, let me share my thoughts on MaintainJ's pricing model.

My thoughts behind pricing MaintainJ at $20/year were - when MyEclipse is selling around 250,000 licenses at $30/year, why can't I sell at least 10,000 at $20? And I always wanted to make it affordable to individual developers. No other great market research behind my pricing model. My simple belief was, if my product worked and solved a real problem, I could sell it.

Going by the testimonials for MaintainJ, you may agree that MaintainJ solves a real problem. And that's another thing. For every great guy who gives me a testimonial when I ask for one, there are many why wouldn't care.

But at this juncture, it does not look like it is working. I realized that people wouldn't try everything and even when they try and like it, they may not buy it. The first and greatest challenge is to reach as many people as I can. Since MaintainJ 1.0 release in March 2007, I could only reach about 15,000 unique visitors.

So, I thought I would work with sales guys, who would help me with sales. They just laughed at $20/year. It does not look like I am going to interest any sales people with that pricing. Now I have more or less decided to go with $50 one time pricing.

And then there are people who ask why MaintainJ is not open source. The simple answer is, I work full time on this and I need to make some money out of it. People make a big deal about open source, but then, all successful open source projects that I know are funded by big companies. Yeah, I know they do it for charity.

This is what I think is necessary - something like 'open sales', a support system where a group of developers could come together to develop, sell and create a viable product in the market. All with no funding from a big corporation. That's only way to test new ideas and get the best ones out. But in the real world, only capital seems to bind people. Then what's binding open source? I really don't know...I feel there is nothing like true open source that is completely free.

I really don't think MaintainJ should cost more than $20/year (not $19.99). But that doesn't seem to work the way world is now or the way I am able to go about selling MaintainJ. My present thoughts are, if people really need it, they will buy it at $50. If they don't badly need it, they don't seem to buy it anyway.

Thanks if you made this far. You comments are welcome.

Choudary Kothapalli.

  Message #241874 Post reply Post reply Post reply Go to top Go to top Go to top

Re: MaintainJ's Pricing

Posted by: david theserverside m on October 29, 2007 in response to Message #241872
MaintainJ looks like a very useful product. I tried the previous version but found it too complicated to get going for a test run. I'd like to try the new version, time permitting. I'm disappointed to hear that the $20/year pricing isn't working out as I think its a very fair price point.

On a somewhat related note, does MaintainJ support clicking on a class/field/method name to browse source? I know I'm not the only one who really misses that feature of early versions of Together/J. Using a UML diagram as a code navigator may be an abuse of UML ideals, but its a very handy way to reinforce design and easily browse related code. If you wanted to go in that direction I'm sure you'd find some supporters, as none of the other UML tools I've seen support this simple facility. In particular, they tend to put the diagram in the code area, so you can't see both at the same time.

  Message #241875 Post reply Post reply Post reply Go to top Go to top Go to top

Re: MaintainJ's Pricing

Posted by: Choudary Kothapalli on October 29, 2007 in response to Message #241874
David,

Yes, you can click classes and methdods to go to the source. For sequence diagram calls, the method definition is highlighted. When a class is clicked either in sequence or class diagram, the corresponding source file is opened.

One testimonial says MaintainJ is better than Together/J to understand code! I am happy! As he very neatly put, MaintainJ's plus points are runtime diagrams with a smple and neat UI.

MaintainJ looks like a very useful product.


Yes, I think it is very useful. People do spend lot of time digging into code to find something. Maintainers, new developers more and experienced developers less but, as whole lot of time is spent in digging the code. MaintainJ almost reduces that effort to nil.

Cheers,
Choudary Kothapalli.

  Message #242032 Post reply Post reply Post reply Go to top Go to top Go to top

I tried it, but had a problem

Posted by: Jane Zhen on October 31, 2007 in response to Message #241621
I tried it to instrument a finished war, but then Tomcat server couldn't find the index.jsp. What we did was that the http request was redirected from an apache web server, which does some transformation stuff. Since I can't really control the redirected url, how am I gonna insert aspect.jsp and it then start my index.jsp?

Also, I got a aspectjrt.jar not in classpath error. But I added it to build path in Eclipse and also pointed it in ant script. Is this Eclipse screwing up(sometimes needs a reboot), or something else?

thank you for your feedback

  Message #242033 Post reply Post reply Post reply Go to top Go to top Go to top

Re: I tried it, but had a problem

Posted by: Jane Zhen on October 31, 2007 in response to Message #242032
Sorry, forgot. the Tomcat was run as a windows service.

  Message #242034 Post reply Post reply Post reply Go to top Go to top Go to top

Re: I tried it, but had a problem

Posted by: Jane Zhen on October 31, 2007 in response to Message #242033
listening on a different port

  Message #242046 Post reply Post reply Post reply Go to top Go to top Go to top

Re: I tried it, but had a problem

Posted by: Choudary Kothapalli on October 31, 2007 in response to Message #242032
Jane,

If I understand correctly, you are using build-time weaving using Ant scripts. Correct? Did you consider using runtime weaving, which is much simpler and faster to start? Build time weaving works for Tomcat on JRE 1.4 and JRE 1.5.

aspectjrt.jar should be in runtime classpath of the server. For Tomcat you can place it under common/lib folder.

Are you saying that after you weaved and deployed the application, the index.jsp in your application was not found? I suspect there is some problem with the war file. Did you unzip and check the war file after weaving?

Can you explain more about your redirect url and why you are not able to reach aspect.jsp?

You may also post the queries on MaintainJ support forums


Cheers,
Choudary.

New content on TheServerSide.comNew content on TheServerSide.comNew content on TheServerSide.com

Dependency Injection in Java EE 6 - Part 1

Reza Rahman explores the features of the proposed JSR 299, Contexts and Dependency Injection for Java EE (CDI). When approved, it promises to be a key feature of Java EE 6. (November 2, Article)

SAML: It's Not just for Web services

SAML is an XML-based standard for exchanging authentication and authorization data between security domains. The single most important problem that SAML was created to solve is the Web browser Single Sign-On problem. Many organizations are debating whether to stay with version 1.1 or move to 2.0. This article makes observations about both options. (September 28, Article)

Programming is Also Teaching Your Team

Joe Ottinger takes a look at how people learn, and applies it to the practice of programming. He notes that understanding how people learn is an essential part of working in a programming team. (September 22, Article)

Can Java EE Deliver The Asynchronous Web?

Stephen Maryka gave us an article about the Asynchronous Web and posed a number of questions that get examined like an approach to delivering Asynchronous Web capabilities through extensions to existing Java EE technologies. (July 14, Article)

JSF Flex

JavaServer Faces Flex goal is to provide users capability in creating standard Flex components, part of flexSDK which is open sourced through MPL license, as normal JSF components. This article by Ji Hoon Kim will provide an overview of creating a simple multilingual JSF page consisting of JSF Flex tags. (June 29, Article)

The Rules of SOA - A Road to a Successful SOA Implementation

In this session Jeff explores the key characteristics of successful SOA projects. He covers some of the patterns, and anti-patterns, tool sets, and strategies that he himself learned the hard way. Last, he provides a strategy and blueprint for achieving a high likelihood of success in your SOA project. (June 23, Tech Talk)

Ari Zilka Talks About Terracotta 3.1

Ari Zilka, CTO of Terracotta, Inc., talks about the new features in Terracotta 3.1, announced during JavaOne and available now. (June 15, Tech Talk)

Enterprise Application Integration, and Spring

In this Tech Talk, Josh Long explores an integration challenge using Spring Integration and walks through the implementation, employing and expanding on the basic patterns of Enterprise Application Integration to tie together components into a function integration solution, and then demonstrates how Spring Integration helps address the integration requirements. (June 15, Tech Talk)

Google Web Toolkit: An Introduction

In this Tech Talk, David Geary teaches you: The basics of Google Web Toolkit; How to implement Ajax-enabled applications in Java; Internationalization; Hooking into the browser history mechanism; Remote procedure calls. (June 4, Tech Talk)

Just Enough Early Architecture to Guide Development

Jon Kern discusses the best architecture/technical solutions and ensure that they are repeated by all developers. By tackling the architecture up-front in a serial manner, subsequent parallel development will be much more manageable and predictable. (May 28, Tech Talk)

Productive Programmer: On the Lam from the Furniture Police

This keynote describes the frustrations of modern knowledge workers in their quest to actually get some work done, and solutions for how to guard yourself against all those distractions. Neal Ford talks about environments, coding, acceleration, automation, and avoiding repetition as ways to defeat the misguided attempts to sap your ability to produce good work. (May 26, Tech Talk)

Auto-Scaling Your Existing Web Application

Gil demonstrates how new, aggressive uses of already abundant compute capacity by common applications offer competitive value for application designers. (May 21, Tech Talk)

Automating Hibernate Mapping and Queries For Java Web Development

Chris Keene introduces WaveMaker as a new way to automate the ability to generate Hibernate classes in order to more quickly bring OR mapping into an application. (May 19, Article)

Auto-Scaling Your Existing Web Application

In this session Nati Shalom demonstrates how to take a standard Java EE web application and scale it out or down dynamically without changes to the application code. Seeing as most web applications are over-provisioned to meet infrequent peak loads, this is a dramatic change because it enables growing your application as needed, when needed, without paying for unutilized resources. (May 19, Tech Talk)

Free Book: Jakarta-Struts Live

Download the entire book of Jakarta-Struts Live and learn about Struts MVC, Tiles, the Validator, DynaActionForms, plug-ins, internationalization, and more.
(Book PDF Download)

Application Server Matrix

The Application Server Matrix is a detailed listing of J2EE vendors and their application server products, with information on latest version numbers, J2EE spec support and licensing, pricing, platform support, and links to product downloads and reviews.
(Application Server Comparison Matrix)

News | Blogs | Discussions | Tech talks | Patterns | Reviews | White Papers | Downloads | Articles | Media kit | About
Java Solutions
All Content Copyright ©2007 TheServerSide Privacy Policy
Site Map