http://www.developer.com/java/web/getting-started-with-wavemaker.html

Back to article

WaveMaker Review: Java RAD Tool for Web Applications


May 2, 2011

I first heard of WaveMaker one month back when SpringSource published a blog about VMware's acquisition of the tool. WaveMaker is a graphical, browser-based integrated development environment (IDE). It is a Java-based rapid application development (RAD) tool which allows you to build Web applications without writing any code, i.e., by just dragging and dropping widgets on the canvas. So it is best suited for users who don't know much about programming but want to quickly build Web applications.

I am not a big fan of drag-and-drop RAD tools because the code generated by them is not easily editable, thereby making the applications generated by them difficult to extend. But because the applications created by WaveMaker are managed by Spring, I decided to give it a try. I have been experimenting with WaveMaker during the past several days. In this article, I will give you a small overview and my first impressions of WaveMaker.

What Is WaveMaker?

WaveMaker is an open source, visual, drag-and-drop development studio that runs in a browser and generates standard Java applications for deployment. The applications generated by WaveMaker perform client-side Ajax using the Dojo JavaScript library to communicate with server-side code written in Spring and Hibernate. It performs database reverse-engineering to build the application from the provided database. The WaveMaker studio has built-in support for HSQLDB, but you can use a variety of databases (including MySQL, PostgreSQL, Oracle, etc.) to build your application. Database reverse-engineering is one of the ways to build the application, but it is not the only one. You can also use Web services, Twitter feeds, RSS, Youtube, etc.

WaveMaker comes in two flavors--Open Source Community Version and Enterprise Version. Enterprise Version is a paid version which provides enterprise features like LDAP support, advanced security support, Oracle support, etc. This article is based on my experiments with the community version of WaveMaker.

Who Should Use WaveMaker?

WaveMaker targets non-expert developers looking for quickest way to build Web applications with Java. It eliminates Web application development complexity and gives the business user the power to view their data in a visual way. The best part is you can not only build applications easily, but you can also deploy applications to cloud services like Amazon EC2 in a few clicks. It has features like charts, a dashboard, etc., which appeal more to business users and help them analyze the data.

How Does WaveMaker Compare to Spring Roo?

I have used Spring Roo, so when I first heard that SpringSource had acquired WaveMaker I was quite confused--why were they investing in two RAD tools? Both Spring Roo and WaveMaker are RAD tools which help with building Web applications quickly. But each of them targets a different audience. Spring Roo tries to make Java developers more productive by doing most of the configuration stuff and scaffolding a Web application from JPA entity model. Spring Roo's target audience is Java developers who will maintain the applications generated by it and can extend them whenever required. On the other hand, WaveMaker tries to help non-Java experts or non-programmers build Web applications. Going forward, you might expect close alignment between Spring Roo and WaveMaker, leading to consistent architecture between Spring Roo and WaveMaker applications.

What About WaveMaker Cloud Support?

WaveMaker allows you to deploy applications created using WaveMaker to all the major cloud service providers. Some of these cloud providers are Amazon EC2, Rackspace Servers, Eucalyptus Cloud, etc. The acquisition of WaveMaker strengthens the VMware cloud application platform strategy. Just last week VMware launched its open PAAS called "CloudFoundry," which lets you deploy and scale your applications in seconds. So, you can develop your Spring-managed application using WaveMaker and deploy it to CloudFoundry.

Getting Started with WaveMaker

It is very easy to get started with WaveMaker:

  1. Download the installer specific to your operating system and install it.
  2. For Linux Debian/Ubuntu users, start the WaveMaker application by executing wavemaker.sh.
  3. WaveMaker IDE will open in the browser and shows you the welcome screen. The welcome screen will give you options to create a new project or open an existing project.
  4. Follow the tutorials mentioned on the WaveMaker website to get your hands dirty with WaveMaker. Because WaveMaker has a very good documentation, I am not going to show you how to create a sample application. I would suggest that you should read documentation, follow the tutorials and listen to the very useful screencasts to make yourself comfortable with WaveMaker.

What About the Code Generated by WaveMaker?

To look at the code generated by WaveMaker, click on the File menu and press export project. This will export the project source code in your WaveMaker projects directory. The generated code has four directories:

  1. lib: When you first export the project, this folder is empty. This folder is provided so that you can add your own JARs. These JARs then will be available on classpath.
  2. services: This folder will contain the server-side code, like Hibernate mapping, generated Java code and Spring Beans definition files. The Spring context XML file will contain bean definitions for the session factory, Spring Hibernate template, transaction manager and many more.
  3. src: This directory contains the log4j.properties, which can be edited to change logging settings. You can also add your custom Java classes here.
  4. webapproot: This is the Web folder of your application and contains the Web resources, like CSS, JavaScript files, Spring context files and the web.xml file.

The code generated by WaveMaker is quite decent, especially the Hibernate mapping files. The exported project also gives you placeholders where you can add your own code and extend the application. But I have not tried to add any custom code, so I can't say how easy it would be.

Conclusion

In this article, I gave you a quick overview of WaveMaker. In a future post on WaveMaker, I will build an application using WaveMaker, extend it by adding custom Java code and then deploy it to CloudFoundry.

About the Author

Shekhar Gulati--Contributing Editor, Java-- is a Java consultant with over 5 years experience. He currently works with Xebia India, an Agile Software Development company. The opinions in this article and on his blog are his own and do not necessarily represent the opinions of his employer. His own blog is at and you can follow him on twitter here.

Sitemap | Contact Us