http://www.developer.com/http://www.developer.com/java/web/wavemaker-review-java-rad-tool-for-web-applications.html
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. 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. 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. 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. 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. It is very easy to get started with 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: 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. 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.
WaveMaker Review: Java RAD Tool for Web Applications
May 2, 2011
What Is WaveMaker?
Who Should Use WaveMaker?
How Does WaveMaker Compare to Spring Roo?
What About WaveMaker Cloud Support?
Getting Started with WaveMaker
What About the Code Generated by WaveMaker?
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.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.Conclusion
About the Author