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 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:
- Download the installer specific to your operating system and install it.
- For Linux Debian/Ubuntu users, start the WaveMaker application by executing wavemaker.sh.
- 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.
- 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:
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.
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.
src: This directory contains the log4j.properties, which can be edited to change logging settings. You can also add your custom Java classes here.
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.
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.