Ok, this post is a repeat process of the other day, just to sanity check getting Confluence up and running on Glassfish, and actually deploying live on this very box. When we get a little more time in the office, we’ll probably look to deploy on Solaris and test integration with LDAP. Here I’m just using internal authentication for Confluence, but sticking a MySQL instance at the backend.
To start off with, we need to grab the current version of Glassfish Beta 2
% wget http://java.net/download/javaee5/v2_branch/promoted/Darwin/glassfish-installer-v2-b41d.jar
It’s just under 70Mb, so won’t take that long to download. Not even for UK based folks at the mercy of BT’s so-called broadband offerings.
What do you mean you don’t have wget? Pick up the binary here. And yes, you could use cURL if you really wanted to, but my memory is almost at capacity these days, and so I find the simple methods are often the only route open to me.
Follow the glassfish install instructions - in this instance I’m installing in /usr/local - which is where my jar file is currently residing.
% java -Xmx256m -jar glassfish-installer-v2-b41d.jar
This command will unbundle GlassFish and create a new directory structure rooted under a directory named ‘glassfish’.
% cd glassfish
Set the execute permission for the Ant binaries that are included with the GlassFish bundle.
% chmod -R +x lib/ant/bin
% lib/ant/bin/ant -f setup.xml
Now given that this is going to be running on my test Mini, there’s not uch point me adding in the clustering support right now, so I can step over the Clustering supported installation, but if you have a bunch of Macs or Xserves you want to try this on, then just change step 4 from the above installation
% lib/ant/bin/ant -f setup-cluster.xml
To test out Confluence, I’m going to use a Confluence Personal Server license from Atlassian. You need to head on over to Atlassian and setup an account to apply for a Personal Server License, which is valid for 12 months. The license will give you a 2 user limited version of the Wiki. That is to say 2 active registered users at any one time, if you catch my drift. You can, of course, leave anonymous access on for spaces that you want the world and their wife to have access to if you are so inclined and don’t have IP restrictions to contend with.
The current version of Confluence at the time of writing is: 2.5.3, and you can grab it using:
% wget http://www.atlassian.com/software/confluence/downloads/binary/confluence-2.5.3.tar.gz
Which will give you the EAR/WAR deployment version as opposed to the Tomcat standalone version which you may recall is the cause of my initial pain and reason for looking in to Glassfish in the first place.
Preparing Confluence for install.
Unpack Confluence
% tar -zxvf confluence-2.5.3.tar.gz
% cd confluence-2.5.3
% vi confluence/WEB-INF/classes/confluence-init.properties
Edit the properties file to point confluence at a directory you want to use for storing uploads n’ stuff. In this case I’ll use one of the defaults in the file and create the directory structure on the mini - before I forget 
% mkdir -p /var/data/confluence
Haven’t tried an EAR build and deploy (yet), but WAR definitely works - as per previous mail.
Build the WAR by running the build script
% sh build.sh
Once the build is complete, you’ll find the output in ./dist
Bung the resulting file in your glassfish autodeploy directory
% cp dist/atlassian-confluence-2.5.3.war /usr/local/glassfish/domains/domain1/autodeploy
Now in this case I’m going to use MySQL to handle content for Confluence. Don’t sneer (particularly not you Rasputnik), as it’s already running on the box for other reasons. Maybe sometime soon I can do a clean up and shift to Postgres - wouldn’t hold out hope of that happening anytime soon. For the record, Atlassian like Postgres, but support MySQL 4.1+ (but not 5), Oracle 10g+ and DB2 8.2+.
We’ll need the JDBC Connector for MySQL which you can grab from MySQL at http://www.mysql.com/products/connector/j/index.html
Unpack the distribution and copy the jar into glassfish/lib
% tar -zxvf mysql-connector-java-5.0.6.tar.gz
% cp mysql-connector-java-5.0.6/mysql-connector-java-5.0.6-bin.jar /usr/local/glassfish/lib
Restart Glassfish to get this picked up.
% asadmin stop-domain domain1
% asadmin start-domain domain1
The next task is to setup a JDBC Resource and Connection Pool in Glassfish. You can either do this through the cmdline, or through the GUI if you’re feeling all point-and-click.
I’ve already setup my MySQL DB and added grants to the user I’m going to use for the service, so I can use that information here now. Then go and create your JDBC resource. Remember the name of the JDBC Resource, you’ll need it during the Confluence install.
Now without changing anything else, the deployed copy of Confluence will be running on http://hostname.foo:8080/atlassian-confluence-2.5.3/
I’m out of time to look at virtual servers and/or apache mod_proxy as options right now (though the former will get attention first)
Easy-peasey-lemon-squeezy - and you can see it in action on breadedcod.com
Tags: confluence, glassfish, OS X, wiki