David R. Heffelfinger

Monday Nov 03, 2008

Project WebSynergy First Impressions

After blogging about my OpenPortal First Impressions, I was contacted by Eduardo Pelegrí-Llopart, he suggested I take a look at Project WebSynergy, a joint venture between Sun Microsystems and Liferay. Project WebSynergy includes code from Liferay and OpenPortal.

I downloaded it and took it for a spin, here is what I found:

Out of the box, it is much more aesthetically pleasing than OpenPortal

Project WebSynergy Screenshot

Tabs can be created directly from the user interface.

Project Synergy Add Page

Similarly, hovering over a tab results in a little red icon showing up, clicking on it allows the user to delete a tab: Project WebSynergy delete tab

Of course a confirmation dialog asks the user to confirm the deletion of the tab.

Project WebSynergy delete tab confirmation

Project WebSynergy certainly seems to include a lot of built in functionality that may have to be manually coded when using OpenPortal. The advantages I found for OpenPortal was the tight integration it provided with GlassFish and NetBeans.

Although Project WebSynergy is not available from the GlassFish Update center, it can be downloaded bundled with GlassFish. That is what I did to try it out, I'm not sure how easy it would be to deploy it on an existing GlassFish installation.

As of NetBeans, the portlet plugins available in the NetBeans Plugin Manager do not integrate with Project WebSynergy, however, the NetBeans PortalPack 3.0 (milestone 2 is the latest available at the time of writing) does. Simply downloading the plugins from the NetBeans Portal Pack page and installing them on NetBeans (I tried on NB 6.5 RC2) provides the same integration that is provided with OpenPortal by the portlet plugins in the NetBeans Plugin Manager.

All in all my overall impression of Project WebSynergy is favorable, my one concern is that neither the NetBeans plugins nor Project WebSynergy itself are officially released, therefore they cannot be considered stable yet. In my admittedly simple tests they worked fine, but I can't be sure there aren't any issues waiting to be discovered if/when we start using it for real work.

Monday Oct 06, 2008

Installing Apache Roller in GlassFish

For a while i've had a a blog in JRoller. I've been wanting to move my blog to my own domain, but due to lack of time and other commitments I hadn't been able to do it. Well today I finally did it.
I figured a good first entry would be to talk about how to get Apache Roller going under GlassFish, which happens to be my Java EE server of choice, and the one that powers my site. GlassFish comes with the JavaDB RDBMS "out of the box", which is what I'm using in this Roller installation.

After downloading Roller, the first thing we need to do is to create the database that Roller will use. In JavaDB, we can accomplish this with the ij utility.

In ij, we need to issue the following commands to create the database.


connect 'jdbc:derby://localhost:1527/roller;create=true';

Then we need to add a user to the database:

CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.user.admin','noneofyourbusiness');

The above command creates a user with username of "admin" and password of "noneofyourbusiness". The username and password can be modified as appropriate.

We then need to grant full access to our admin user:

CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.database.fullAccessUsers','admin');

We are done with the database creation.

Now we need to create a GlassFish connection pool and JDBC Resource for our new database, this can be accomplished easily with the asadmin tool:


asadmin create-jdbc-connection-pool --datasourceclassname org.apache.derby.jdbc.ClientDataSource --property user=admin:password=noneofyourbusiness:databaseName=roller rollerConnectionPool

The value of the databaseName property must match the name we gave our database in the first step.

To create the datasource/JDBC resource, we need to issue the following asadmin command:

asadmin create-jdbc-resource --connectionpoolid rollerConnectionPool jdbc/rollerdb

It is important to use the JNDI name of jdbc/rollerdb, otherwise the roller code won't be able to find the datasource.

After we have created the connection pool and datasource, we need to create a file called roller-custom.properties with the following content:


installation.type=auto
database.configurationType=jndi
database.jndi.name=jdbc/rollerdb
mail.configurationType=jndi
mail.jndi.name=mail/Session

And copy it to the lib/classes folder of on the GlassFish domain we are using.

At this point we are ready to deploy Roller, just deploy it as usual and it should "just work".

Good Luck.