The JMeter group just released v1.9.1 of their product and this is a huge improvement over the last 1.8.x release. For the uninitiated, JMeter is a 100% pure Java desktop application written in Swing designed to test your application. I think of it as a poor-man’s regression and load testing tool. You can use JMeter to test web applications written in Java using JSP/Servlets as well as other applications such as Perl scripts, Java Objects, Data Bases and Queries, FTP Servers, LDAP server and more.

You use JMeter by creating a test plan which describes a series of steps JMeter will execute when run. A complete test plan will consist of one or more Thread Groups, logic controllers, sample generating controllers, listeners, timers, assertions, and configuration elements.

JMeter’s full multithreading framework allows concurrent sampling by many threads and simultaneous sampling of different functions by separate thread groups.

Ill be honest and tell you that I prefer JMeter over a lot of the commercial testing tool, from my developer perspective. I love JMeter as you can create a test plan by hand or use the proxy option to record a test by just navigating through your application. Once the test plan is created or recorded, you can test your application from front to back. I love and use JUnit, and JMeter does not replace JUnit. In fact, JMeter and JUnit complement each other very well. Ive tried to make everyone in my team use JMeter as the developers regression and load test tool. JMeter allows you to either POST or GET to an http source and then apply assertion to the response based on content or time. If it takes too long (and you define the time), the test fails. If the response does not contain a certain keyword, the test fails. That’s the regression part of JMeter – Once the tests are created you can apply load to your application by creating many threads and/or looping forever.

JMeter supports cookies, http POST/GET’s, SSL, URL rewriting and email among many other features. JMeter also runs in a server-mode where you can run many instances of JMeter on remote servers and use a single machine as the JMeter GUI client. This allows for true performance measurement without network bottlenecks of having all the traffic going through the same network interface.

JMeter also offers graphical analysis of performance that plots the response times on a graph. The output of the test results can be saved out as CSV or XML file that can be parsed later for analysis, if needed.

Ok If you’re still reading this, I hope I’ve convinced you that you need JMeter and must use it. Kudos to the JMeter team on putting out another great release. If you want to download JMeter, point your browser to

http://jakarta.apache.org/builds/jakarta-jmeter/release/v1.9/

Found this thread on TSS that referred to an eWeek article where Don Box, formerly of Develop Mentor and current Architect for XML Messaging @ Microsoft talks about SOA. To paraphrase the article, Don Box says that the world of services and service-oriented architectures will eclipse object-oriented programming and OO will become irrelevant.

ok. What’s the point of this article? Isn’t talking about interfaces vs. implementation like comparing apples to oranges? The idea of services and decoupling systems to reduce cohesion makes sense and people are doing that. However, SOA and OO aren’t mutually exclusive.

In my world of SOA, services have published interfaces that are de-coupled from the applications that use them and deployed to allow maximum reuse, regardless of the programming language, application server, etc. used. Nothing in that precludes me from using objects in building the coarse-grained business process that I am exposing as a service.

To play devils advocate, I could argue that SOA means we dont care about how we build the guts of the service as long as the piece of functionality is exposed as a service. But what about objects, encapsulation, inheritance, and polymorphism? Isnt the goal of OOP to simplify our lives and make software maintenance easier?

I’ve actually had the pleasure of meeting Don Box and he is really a brilliant guy. I’m wondering if he really believes this or did eWeek made up the whole thing. Who knows? It was interesting to see that the last line of the article was ‘Box said he based his presentation on a new book he has in the works’. Hmmm.. Maybe Don’s trying to get some buzz started about his new book 🙂

Blogs go mainsteam –

August 27, 2003

It has been a strange ride for blogs and bloggers. First Google, then the NY Times and now AOL. In case you have not heard, AOL launched a new feature called AOL Journals in an effort to stop the bleeding. AOL has been losing many customers to broadband and other cheaper ISPs.

Although I didn’t start blogging till a few months ago, I first discovered blogs @ the 2000 JavaOne. The Swing team was demoing the latest Swing release and the concept they were calling WebAwareWare with Matt Hamer from Pyra Labs. The goal of the presentation was to show off Swings ability to embed HTML contents and they demod a fat-client version of the Blogger UI.

Google buys Pyra Labs, the makers of Blogger and Pete just reminded me that Blogger is now 4 years old. Pete has been blogging for over 6 years, before blogging was blogging. Hes a really bright guy thats been ahead of the curve on this and many other things.

The kicker for me for Maureen Dowd and her little rant about blogs and all these politicians jumping on the blog bandwagon. I guess Blogs have reached the level of cultural acceptance that even the politicos want to show off how cool they are by blogging. The beginning of the end 🙂

JavaServer Faces (JSF) is currently being heralded as the next big thing in arena of web development. As you probably know, JSF is a framework for building user interfaces for web applications. JavaServer Faces technology includes a set of standard widgets and API’s for managing their state, handling events and input validation along with a JSP tag library for expressing a JSF interface within a JSP page.

In my quest to learn more about JSF, I am working on a tutorial to teach the concepts of JSF along with a blueprint application to show off the features and benefits of JSF. Many Struts developers are probably already looking at JSF as Craig McClanahan, the lead architect and developer for Struts is now working on JSF. Craig has also made the comment on STRUTS-DEV that he is going to advocate a long-term migration from Struts to using standards like JSF and JSTL when they are available, and de-emphasize the further development of the Struts proprietary tag libraries.

I hope to post a link to my sample code and tutorial here in the near future here. Not sure I will add any value to some of the great resources that already exist out there. Here is a small sampling of JSF resources out on the net.

I’m not sure if I was the only one that didn’t know about this, but I discovered GenJar today on the Java-writers list via. Erik Hatcher’s post.

GenJar is distributed as a jar file that holds a bunch of ant tasks. The task is designed to recursively examine each class file in your project, extracting a list of all classes referenced, eventually arriving at the complete set of classes required to execute the application. These classes are then placed into the target jar file creating easily deployable archives. In addition to the jar file, GenJar will also create generate a manifest file, listing every file contained in the Jar, along with size and creation dates.

This is such a neat little utility that is really cool — I do most of my development with WebLogic and all of the WebLogic classes are deployed in a single jar file, weblogic.jar. With v8.1 of WebLogic, the weblogic.jar file is now about 36 MB. Yikes. Hate to deploy that with every client and WebLogic’s answer in this area is a crappy little tool called verboseToZip that does not even address the issue. Nice job John & Jesse.

In the first step towards the utopian vision of interoperability, the Web services Interoperability organization (WS-I) group announced the release of the WS-I Basic Profile 1.0.

The Basic Profile 1.0 consists of implementation guidelines on how core Web services specifications should be used together to develop interoperable Web services. The specs covered by this release are SOAP 1.1, WSDL 1.1, UDDI 2.0, XML 1.0 and XML Schema. This is pretty huge for Web Services and the idea of interoperability. According to the press release, WS-I has resolved more than 200 interoperability issues associated with using the core Web services specifications together. Can’t wait to see what more comes out including security.

It was just a few days ago when I first read the press release from the Apache Software Foundation announcing the creation of Geronimo. I was musing about this in my blog earlier in the week.

It has really been very interesting following the debate around the whole issue of Apache jumping in the J2EE space. Some interesting articles and discussions of note are listed below

I’m not sure I can add any value to the debate that’s already in progress but I have to wonder about the motivations of Apache group. Why would you enter the J2EE space now when there are several open-source/almost free J2EE servers already out there? JBoss has already spent several years building and making J2EE accessible to everyone. In fact, they have gotten to a point where they are innovating like BEA by adding newer features to the server like AOP and JDO for transperent persistence for POJOs.

Its going to be at least 2 years before Apache can put out a viable J2EE server that one would seriously consider using. And what J2EE spec will they target? J2EE 1.4? So what happens when J2EE 1.5 comes out and they havent even shipped a viable product yet? And will IBM, BEA and Oracle stand for this and let Sun certify this J2EE offering? I guess Ill have to agree with Cameron this looks like a bunch of ex-JBoss Core Developer Network people working with Apache to screw JBoss. I guess what goes around comes around. Id love to see what Marc Fleury is upto these days. 🙂

Java & C#

August 6, 2003

Having been a Java developer since 1995, I really haven’t programmed in any other language since then. I did some Perl/PHP development in the early web days as CGI’s, but that was pretty simple form parsing stuff. In fact, I started teaching Java @ Marquette University in 1996 and I actually found the link to the class description on archive.org. Yikes 🙂 Takes you back to the good ol’ days of Netscape 0.9 and the <BLINK> tag.

All of my development efforts for the last 8 years have focused on Java. But I do believe as Dave Thomas suggests that you should learn and use another programming language to expand your horizons and learn to think differently. Dave is big in Ruby, and I am trying to figure out if Ruby or Python are the languages that I should dabble in and this quest has me looking at C#. C# is so similar to Java and so I am guessing it will be an easier language to delve into.

Addison Wesley just announced the availability of a new book titled ‘.NET for Java Developers: Migrating to C#‘ and I’ve just ordered it from Amazon.

I would love to hear from any Java geeks that are dabbling in C#. I don’t want to start a flame war and so please don’t send me any emails that state how Java is better, etc..

Java & C#

August 6, 2003

Having been a Java developer since 1995, I really haven’t programmed in any other language since then. I did some Perl/PHP development in the early web days as CGI’s, but that was pretty simple form parsing stuff. In fact, I started teaching Java @ Marquette University in 1996 and I actually found the link to the class description on archive.org. Yikes 🙂 Takes you back to the good ol’ days of Netscape 0.9 and the <BLINK> tag.

All of my development efforts for the last 8 years have focused on Java. But I do believe as Dave Thomas suggests that you should learn and use another programming language to expand your horizons and learn to think differently. Dave is big in Ruby, and I am trying to figure out if Ruby or Python are the languages that I should dabble in and this quest has me looking at C#. C# is so similar to Java and so I am guessing it will be an easier language to delve into.

Addison Wesley just announced the availability of a new book titled ‘.NET for Java Developers: Migrating to C#‘ and I’ve just ordered it from Amazon.

I would love to hear from any Java geeks that are dabbling in C#. I don’t want to start a flame war and so please don’t send me any emails that state how Java is better, etc..

BEA unveils the Linux Resource Center which answers questions about BEA’s strategy on Linux, pros/cons of Linux and the breadth of support of Linux for the WebLogic products. The FAQ has an interesting little tidbit about internal migration to Linux. I wish they would share more information on their internal applications and how they are migrating to Linux to lower the total cost of ownership.

Also caught this headline on TSS that seems to imply that Red Hat will ship Red Hat Enterprise version of their OS pre-integrated with BEA Weblogic. Red Hat will also join the ObjectWeb consortium to further develop JOnAS and OpenEJB appservers, in hopes of creating a compelling Java open source platform on Linux.

I wonder how this relates to the newest project from the Apache Group called Apache Geronimo. The press release says: The Apache Software Foundation has initiated a project to develop an open source, Apache-licensed implementation of the J2EE specification. In addition, the project is committed to certifying the implementation as J2EE compliant. This is an ambitious goal and will present a formidable challenge for the people involved, given the wide range of technologies covered by the specification.

The project (tentatively named “Apache Geronimo”) builds upon the many Java projects at the Apache Software Foundation. In addition, the project is bringing together leading members of the Castor, JBoss, MX4J and OpenEJB communities. We would like to extend an open invitation to everyone involved in the J2EE space, both commercial entities and talented individuals, to join the community and build a world-class J2EE implementation.

What was interesting in the press release was the whole issue of J2EE certification. The release states: Our non-profit, charity status, and our relationship with Sun Microsystems, provides the Foundation with access to the J2EE TCKs, making it possible to achieve certification. I’m sure Marc Fleury will have something to say about this. 🙂

BEA unveils the Linux Resource Center which answers questions about BEA’s strategy on Linux, pros/cons of Linux and the breadth of support of Linux for the WebLogic products. The FAQ has an interesting little tidbit about internal migration to Linux. I wish they would share more information on their internal applications and how they are migrating to Linux to lower the total cost of ownership.

Also caught this headline on TSS that seems to imply that Red Hat will ship Red Hat Enterprise version of their OS pre-integrated with BEA Weblogic. Red Hat will also join the ObjectWeb consortium to further develop JOnAS and OpenEJB appservers, in hopes of creating a compelling Java open source platform on Linux.

I wonder how this relates to the newest project from the Apache Group called Apache Geronimo. The press release says: The Apache Software Foundation has initiated a project to develop an open source, Apache-licensed implementation of the J2EE specification. In addition, the project is committed to certifying the implementation as J2EE compliant. This is an ambitious goal and will present a formidable challenge for the people involved, given the wide range of technologies covered by the specification.

The project (tentatively named “Apache Geronimo”) builds upon the many Java projects at the Apache Software Foundation. In addition, the project is bringing together leading members of the Castor, JBoss, MX4J and OpenEJB communities. We would like to extend an open invitation to everyone involved in the J2EE space, both commercial entities and talented individuals, to join the community and build a world-class J2EE implementation.

What was interesting in the press release was the whole issue of J2EE certification. The release states: Our non-profit, charity status, and our relationship with Sun Microsystems, provides the Foundation with access to the J2EE TCKs, making it possible to achieve certification. I’m sure Marc Fleury will have something to say about this. 🙂

The C# Design Process

August 5, 2003

Anders Hejlsberg, the lead C# architect, talks with Bruce Eckel and Bill Venners about the process used by the team that designed C#, and the relative merits of usability studies and good taste in language design.

Great interview and a must read. Check it out – The C# Design Process

Another smart move on the part of BEA Systems in partnering with HP and pushing Linux to lower the total cost of ownership of the whole application stack and platform. Saw this article on CNET’s News.com and this is great news. According to the press release, HP and BEA will create bundles of software, hardware and associated services that will make it easier for companies to move their systems to Linux-based applications. I’m sure there will be more coming on this as LinuxWorld continues this week.

This is also great for Linux, not that it really needs any help getting corporate backing. It seems like the Penguin really just keeps on marching and it set to move past the web/file/print server role it was typically relegated to. In fact, I really believe Linux is taking a bigger chuck out of Sun than it is of Microsoft and this will take it’s toll on Sun. How long can Sun survive without a strategy? In the past, it has seemed to me that Sun’s entire business model and strategic plan was build on destroying Microsoft. I’m not sure that’s really a goal that’s going to make you money. As a ex-shareholder, I watched my Sun holdings lose over 90% of it’s value and I kept hoping to see a glimmer of hope. Any sign of a strategy or vision from the management team, but I still haven’t seen it.

I’m glad we have companies like IBM, BEA, Oracle and many others that have really shepherded Java into the mature, enterprise platform that is has become and I just hope Sun doesn’t do something boneheader to ruin it all. I’m based my career on Java like millions of other people and I’d hate to see it all go to waste.

ok ok. So I am taking a little liberty with the old ‘The Who‘ classic song Won’t get fooled again. Just saw this article on Javaworld titled Meet the new JBoss and all I could think of was Pete Townsend’s guitar solo. Ok. Maybe it’s just me.

Back to reality — Interesting article on JavaWorld. Nothing really new but the analysis of the aspect-oriented programming (AOP) features was pretty interesting. I wish the article would have delved a little deeper into the AOP framework world and done some comparison without other AOP frameworks out there like AspectJ or AspectWerkz.

I guess this is a little off-topic, but I spent a lot of my Sunday watching Juan Pablo Montoya kick butt and win the Germany Grand Prix.

http://www.bmw-motorsport.com/ms/en/index.html – BMW MotorSports

Just caught this item while making my daily visit to Cedric’s blog. The note titled, Coding conventions is Cedric’s response to Hani’s rant about coding standards. I was just thinking about this topic earlier and I happen to completely agree with Cedric’s comments. His points are (and I’m paraphrasing)

  1. People that are fanatical about standards on either side need to get a life.
  2. Just follow the standard as a bad standard is always be better than no standard at all.

Works for me. Cheers

Pragmatic Version Control

August 1, 2003

Boy am I am tired this morning. Stayed up way past my bedtime reading the draft of Dave Thomas and Andy Hunt’s new book called ‘Pragmatic Version Control’. In fact, I overslept and missed the Spider’s Geek book club this morning.

Back to Pragmatic Version Control – I met Dave at the local No-fluff-just-stuff Java symposium and he talked about the new books they he and Andy were working on. Having no life, I offered up my services to review the new book. (This is a confidential draft and so please don’t me email asking for a copy. 🙂 Thank you). I’ve read the book cover-to-cover twice already in the last week and I am really impressed with this book. I dont want to give anything away as I havent seen anything official on the book at the Pragmatic site yet. This book is aimed at programmers who are new to version control and has a great tutorial on CVS, which was really helpful as I’m relatively new to CVS. Years of PVCS, Clear Case and Visual Source Safe has taken its toll 🙂 Looking forward to the final release of the book.

On a related topic, I download SmartCVS last week after I read someone blogging about it and it is a really impressive tool. In minutes, I had the entire Jakarta commons CVS archive downloaded on my PC. Great interface and the usability is just great.