The blog formerly known as The Strawberry Project

Tags

ACM alfresco beta blackberry bold BRDF confluence connections corsica Cycling domino eclipse edrm evo2 expeditor facebook fail firefox garmin geotag glassfish gps humax ibm joost kapow kona lotus memory leak mpeg_streamclip notes orange OS X OS_X phd POLDER process_server profiles quickplace ruby safari sametime vacation websphere wiki

Me Out There

Digg  Facebook  Last.fm  LinkedIn  reddit  

Twitter Updates

    Recent Comments

    TripIt Updates

    Gallery

    P1000909 P1000934 OLYMPUS DIGITAL CAMERA         IMG00102-20080726-1336.jpg P1000883 OLYMPUS DIGITAL CAMERA

    Meta

    Confluence on Glassfish (on OS X) Revisited

    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

    Start Slide Show with PicLens Lite PicLens

    Comments

    Comment from Thorleif Wiik
    Time: June 14, 2007, 11:25 pm

    Hi,

    one tip:

    Change the war file name to have a better URL. E.g.:

    mv atlassian-confluence-2.5.3.war confluence.war

    cp confluence.war /usr/local/glassfish/domains/domain1/autodeploy/

    gives you

    http://hostname.foo:8080/confluence/

    Comment from breadedcod
    Time: June 15, 2007, 10:49 am

    Thanks. I’d actually already built wiki.war instead – same idea – but haven’t deployed it yet!

    Comment from Dick Davies
    Time: October 7, 2007, 10:59 pm

    Personally (because I’ll be the poor bastard maintaining such a deployment in all probability) I prefer the versioned warfile name.

    “asadmin deploy –contextroot ‘/whereever ‘ ‘ will put it where you like, so that in itself shouldn’t determine what your WARfile is called. The admin server webapp will also let you change that.