Wavemaker
Overview
Wavemaker is a RAD browser based development tool for creating Java/Javascript/Ajax applications. Wavemaker is 100% open source. (Apache 2 license)
I am interested in it because I need to create applications backed by PostgreSQL databases.
Get it from http://wavemaker.com/ -- download and run the installer. On a Mac it's an application, on Linux it installs into /opt/wavemaker-version by default.
Wavemaker is Java and comes bundled with Tomcat so you can just run it and it connects via a web browser.
Projects are stored in your home directory under WaveMaker-version on Linux or Documents/WaveMaker on Mac.
Getting started
First, download and install. I used the Ubuntu .deb package and did sudo dpkg --install wavemaker_6.5.3.Release_amd64.deb.
Next, build a database. I have some commands to build my sample database here: Motion database. Come back when you are done. You can build a database directly in Wavemaker but it's more work than doing it with database tools. Use pgadmin3 if you don't like psql.
Start Wavemaker running (as yourself not root). On my Linux server I run this: /opt/wavemaker-6.5.3.Release/bin/wavemaker.sh
Wavemaker is a development system so I suggest you do all development on a desktop system, then deploy to a server. It's possible to run it on a server. I had trouble installing the "WaveMaker System Requirements Bundle". I clicked on the "Proxy Problems" button which let me do it as two steps: download a file from Internet then upload to my wavemaker installation.
If you do run on a server you have to plug in the correct server name or IP address. It runs on port 8094. So for example, you would open http://myservername:8094/wavemaker instead of http://localhost:8094/wavemaker
If you go to http://localhost:8094/ instead you will see the Tomcat page. Wavemaker is running in its own instance of Tomcat.
The idea here is that you will build on a staging server (running on 8094) and then deploy to Cloud Foundry. I assume I can deploy anywhere I want as long as the server supports the right pieces. (Tomcat 6) I have not tried yet.
A project directory is created in your home directory.
~bwilson/WaveMaker [bwilson@dart MotionDBDemo]$ cat file_map_readme.txt this file gives details on what's in all the files here
Sample database
The motion database can be used keep track of bicycle and car things. It is part training log, part asset manager.
The basic tables are: trip rider photo vehicle maintenance
The junction tables are: j_trip j_photo
Importing data into Wavemaker
- Services in top bar
- Import database
Once you have done this then the tables will be available as Data Widgets but there are no joins!
Services tab (the one on the left not the one in the top bar)
Setting up relationships
Wavemaker docs on relationships and foreign keys
So far it seems to have done a pretty good job on its own.
LiveViews are like Views in a database. I can create a LiveView to access the joined results as a single Data Widget. I think.
Insert -> LiveVariable
"Related" problems
What I am having problems with is seeing details in related tables. They show in the LiveVariable but not in the actual running user interface. I found some discussion of this here: http://dev.wavemaker.com/forums/?q=node/6165 and installed the TestRelatedRelated project that was uploaded there into Dart. This was all written 2011 though, seems like it should be fixed.
I had to install MySQL and http://dart.geo-ceg.org/phpmyadmin/ to get it going.
A "LiveVariable" holds the results of a database query.
A "LiveForm" automates the creation of a form tat accesses data in a datatable.
Work around = use a view in PostgreSQL??? Make the complex join look like a single simple table. I might not get editing going tonight. Darn. Let's go make some views. Motion database#Views
Related products
Eclipse http://eclipse.org/
Spring http://springsource.com/