Work in progress


This is the app that we intent to use for all our group management.

We will run this on an Ubuntu 12.04 VM.

I would like to stick as much as possible to Ubuntu provided packages, preferably the latest versions of everything. Confirmed on the list that Grouper can run fine with OpenJDK, so no need for the Sun Oracle Java stuff any more. So, at the moment it looks like we're going to use:

To get these installed on a pristine Ubuntu 12.04 system:


apt-get install --no-install-recommends subversion postgresql libpgjava tomcat6 openjdk-7-jdk ant

Remove the old JRE:

apt-get purge openjdk-6-jre-headless


Download the source code, in this case we're fetching version 2.1.1 and stick that under /opt.

cd /opt
svn co


Create the PostgreSQL database and credentials:

sudo su - postgres
createuser -D -I -R -S -P grouper_user
createdb -O grouper_user -T template0 grouper

Because we run our databases on IPv6 only, we have to edit /etc/postgresql/9.1/main/postgresql.conf to list:

listen_addresses = '::' 

Copy the default hibernate config file:

cd /opt/GROUPER_2_1_1/grouper/conf

and edit accordingly. Note that the values should not be enclosed in quotes:

# Example:
hibernate.connection.url              = jdbc:postgresql://ip6-localhost:5432/grouper
hibernate.connection.username         = grouper_user 
hibernate.connection.password         = hackme


Change all (6) occassions of the version string "1.5" into "1.7" in build.xml:

sed -i -e 's/"1\.5"/"1.7"/g' build.xml


Symlink the database driver:

ln -s /usr/share/java/postgresql-jdbc4.jar /opt/GROUPER_2_1_1/grouper/lib/custom/


Compile sources:

cd /opt/GROUPER_2_1_1/grouper
ant dist

Create the database structure:

bin/ -registry -runscript

Check if this went OK:

bin/ -registry -check

Run the tests. This is an extensive test suite - on a powerful VM it took me about one hour:

bin/ -test -all

No errors should be reported in the end.


User interface

This sits in /grouper-ui of the repository. 

First change the version statement to 1.7:


cd /opt/GROUPER_2_1_1/grouper-ui
sed -i -e 's/"1\.5"/"1.7"/g' build.xml


Compile the app:

ant dist


Create a file /etc/tomcat6/Catalina/localhost/grouper.xml with this content:

<?xml version="1.0" encoding="UTF-8"?>

Edit /etc/tomcat6/tomcat-users.xml so that there is a user called GrouperSystem, with a secure password:

<role rolename="grouper_user"/>
<user username="GrouperSystem" password="hackme" roles="grouper_user"/>


Change the permissions on the logging directory:

chown tomcat6:tomcat6 /opt/GROUPER_2_1_1/grouper/logs

Restart tomcat

service tomcat6 restart

You should now be able to go to http://<yourservername>:8080/grouper-ui/


and log in.




This is optional, but good practise for security considerations. All the JAVA stuff can run on unprivileged ports, and apache faces the internet.



cd /etc/apache2
a2enmod proxy_ajp

Configure SSL certificates etc