Wavemaker is an Open Source GUI builder that is based on Spring, Hibernate and the Dojo toolkit. The company that produces the software, Wavemaker Software, is a new partner with EnterpriseDB. With that in mind, I decided to start playing with the tool to see how easy it is to use and how far it can go.
To start off with, Wavemaker Studio, the IDE for the software, reminds me a lot of Oracle ApEx. There are two big differences though. While both are browser based tools and both generate fairly rich HTML output, ApEx is completely based on PL/SQL and SQL while Wavemaker is based in Java, Hibernate and HQL. If you want to add functionality, you will do so via Java. Obviously, with my background, PL/SQL is my preference.
The other big difference is that Wavemaker will run, due to using Hibernate, against just about any database. If there is a Hibernate dialect for your database, it should pretty much function. As a matter of a fact, after getting wavemaker to access an EnterpriseDB database, it looks like you can access multiple databases from a single application. That's pretty significant for many applications. This tool is not just for simple data entry; it can build complex applications.
Wavemaker Studio is much more of a GUI IDE than the ApEx application builder. ApEx looks and feels like HTML while Wavemaker looks and feel like a rich, desktop application. Wavemaker Studio just doesn't feel like you're running in a browser. It reminds me a little bit of Visual Studio in the way the screen is layed out. Of course, Wavemaker Studio doesn't give you any of the database monitoring or admin tools that ApEx gives you.
You can see some demos on line at the WaveMaker web site. The software comes with tutorials and decent documentation.
The studio runs on Windows, Mac and Linux and, of course, the applications that are generated run anywhere a web browser runs. This is based more on a good choice of underlying infrastructure than anything special the studio has to do. This thing is designed from the ground up to be standards based and completely open.
Accessing an EnterpriseDB database (or any other database) is fairly straight forward. Wavemaker runs on Apache Tomcat. That means getting your JDBC drivers installed is as easy as copying the jar file to a Tomcat LIB directory. EnterpriseDB uses the PostgreSQL hibernate dialect so there's nothing special to do there.
I did run into one bug though when I tried to access an EnterpriseDB database. My jdbc connection tested fine but when I imported my database (that's what generates the class files), my import failed.
The error messaging is not very robust and wavemaker has said that they will improve that in the next release. I thought the problem was with Hibernate but it was actually a problem with the tool generating a java class against a table with a $ sign in it.
I posted a message on the forum and got a quick reply. They are aware of the issue and have a fix but it has not been released yet. They sent me an updated jar file and had me make a couple of changes to my connection. That fixed the problem and I was able to proceed.
The wavemaker person who was answering my questions, edc, said this:
A reverse eng strategy can be used for almost any mapping from table to java class customization one wants. The one in this thread simply removes the dollar sign. The com.activegrid classes it inherits from are in the java section of the sources.
So it looks like you can manually fix this yourself should the need arise. I read in another post that they are also extending the tool to allow the user to map special characters for themselves within the tool. This should totally eliminate this kind of issue in the future.
In the meantime, just post a message on the forum and they will get you the new jar file. Or get it directly from my post. You may need to be a member to get it. I'm already a member so I'm not sure.
I will be posting about my progress with Wavemaker as I play with it. I am liking it now that I have it configured and working. I think one of the big things that both Postgres and EnterpriseDB have been missing is a very robust application tool. Wavemaker might just be the tool.
LewisC - reposted from http://blogs.ittoolbox.com/oracle/guide/archives/making-waves-with-wavemaker-24283