The Mercury Standard


The WiKi version of this page is available at here. It will may be more up to date and allows for user input on the step.


The following is how to setup and maintain a DAQ developer's sandbox, otherwise known as 'The Mercury Standard' configuration. This is opposed to the Gold (integration/test) or Platinum (deployment/production) configurations.

This is done in 4 basic steps. Updating your configuration (from an existing installed configuration) will depend on which of these 4 components have changed. You will be told via the daq-dev email list if any of these components need to be updated. Assumed is general Unix shell knowledge and root access for the first step only (unless you decide to install JBoss and BFD someplace you need root).

Keep in mind that these instructions are RedHat Linux/bash-centric and are intended as a guide on how to install and update these components. They will need to be modified appropriately when working with another platform (Gentoo, Mac OSX, Cygwin, etc.) or a different user shell (tcsh), etc.

There are several suggested additions to your ~/.bashrc file in here. So it is suggested that you read through the instructions, understand them, make all the additions to your ~/.bashrc file, then in a new shell go though the configuration commands.

Discussions of the Mercury Standard are stored at the daq-dev archive. You do not need to be subscribed to the list to view the archive.

Deprecation disclaimer:
Due to the continually evolving nature of the JBoss user server environment. These instructions should always be referenced against the master document at: http://glacier.lbl.gov/DAQ/mercury-standard.html

Any print version of these instructions is considered outdated and incorrect.

Steps Convention
  1. Handling an existing install
  2. Install Java
  3. Install JBoss
  4. Install/Update BFD and IceCube tools
  5. Configure Jboss for IceCube development and deployment
  6. Advanced topics:
  7. Test it by deploying the DAQ-PROD meta-project
  8. Deploy the eXo Portlet framework
To be stored in your .bashrc
Environment variable first defined
Required environment variable
Special notes for Cygwin users

  1. Handling and existing install
  2. If you have already completed a Mercury Install, you may skip to
    Step 3 and start from there.
  1. Java
  2. We use Java version 1.4.2_05. Ensure that this version of java is installed, export the location where it is installed as $JAVA_HOME and add $JAVA_HOME/bin to your $PATH. Something similar to the following commands will do this:

    As root, install the JDK:

      # rpm -ivh http://glacier.lbl.gov/j2sdk-1_4_2_05-linux-i586.rpm

    This will install the JDK into /usr/java/j2sdk1.4.2_05. Add the following to your ~/.bashrc:

      export JAVA_HOME=/usr/java/j2sdk1.4.2_05
      export PATH=${JAVA_HOME}/bin:${PATH}

  3. JBoss
  4. We use JBoss version 3.2.5. Ensure that this version of JBoss is installed and export the location where it is installed as $JBOSS_ROOT (not $JBOSS_HOME because that means something else on the Gold and Platinum configurations). The following commands demonstrate how to install JBoss under your home directory. (If you wish to install it in a more system-like location (say for example /usr/local/jboss/) you will need to be root when doing so.) Again something similar to the following commands will install JBoss:

    Start in the parent dir of where you want all the JBoss environment to reside. In this case it is your $HOME dir:

      $ cd

    Download the JBoss tar file from glacier:

      $ wget http://glacier.lbl.gov/jboss-3.2.5.tar.gz

    Then untar it creating a jboss-3.2.5 directory:

      $ tar zxf jboss-3.2.5.tar.gz

    Create a link that points to the real JBoss directory.

      $ ln -s jboss-3.2.5 jboss

    Finaly define your $JBOSS_ROOT environment variable. In this case it is directly beneath your $HOME dir:

      export JBOSS_ROOT=${HOME}/jboss-3.2.5

    If you are in a Cygwin environment, this env var must start with the windows drive letter. This is easily accomplished with the cygpath program.
      export JBOSS_ROOT=`cygpath --mixed ${HOME}`/jboss-3.2.5
      export JBOSS_ROOT_CYGWIN=`cygpath --unix ${HOME}`/jboss-3.2.5

    This should be the absolute path to the pristine JBoss installation directory. Every attempt should be made to resolve any symlinks you have in your path to JBoss.

    Re-source your .bashrc to pickup the new env var. It is required later on.

  5. BFD and IceCube tools
  6. BFD and the related icecube tools are installed and kept up-to-date using rsync. Similarly to JBoss, the location where BFD is installed will be identified by the $ICECUBE_TOOLS directory. The following commands demonstrate how to installed BFD under your home directory. (Again if you wish to install it in a more system-like location (say for example /usr/local/icecube/) you will need to be root when doing so.) Again something similar to the following commands will install BFD:

    If you run into problems during this phase, take a look at the BFD FAQ. It probably has your problem listed there.

    With $ICECUBE_TOOLS exported (in your ~/.bashrc):
      export ICECUBE_TOOLS=${HOME}/icecube-tools

    Start in your $HOME dir and create the BFD IceCube tools tree:

      $ cd
      $ mkdir -p $ICECUBE_TOOLS

    Install (or update) directly from Rsync on Glacier:

      $ rsync --delete -rlpt rsync://glacier.lbl.gov/DAQ.Dev.Linux-i386/ $ICECUBE_TOOLS

    Now make the bfd command available to you on the command line (this could be done many ways, this is one possibiliy): add the following alias to your ~/.bashrc:

      alias bfd=${ICECUBE_TOOLS}/bfd

    Now initialize (or re-initialize) the bfd tools dir under the JBoss installation:

      $ cd $JBOSS_ROOT
      $ rm -rf tools .wsrc .baseline
      $ bfd init -t $ICECUBE_TOOLS

  7. Configure JBoss for IceCube Development
  8. This step will configure JBoss for development and deployment of the DAQ by creating the iceboss deployment area identified by the $ICEBOSS_HOME environment variable. The details of setting this directory up are a bit involved so a script has been created to handle those details for you. The script lives in the daq-mercury project, so you need to checkout that script, run it and then set up your environment to start and stop jboss. Something similar to the folowing:

    First make sure that your environment is setup to run bfd/cvs commands. This means having an account on glacier, setting up your ssh keys and having exported the following variables (in your ~/.bashrc):

      export CVSROOT=:ext:${USER}@glacier.lbl.gov:/home/icecube/cvsroot
      export CVS_RSH=ssh

    Create a bfd workspace into which you can checkout the daq-mercury project from bfd:

      $ cd
      $ mkdir BFD_workspace
      $ cd BFD_workspace
      $ bfd init $ICECUBE_TOOLS
      $ source ./setup.sh
      $ bfd co -r V01-01-00 mercury-setup

    Now define the top level of the DAQ developer's (your) JBoss deployment tree by having $ICEBOSS_HOME exported in your ~/.bashrc. (This example puts it under your home dir but it could be anywhere you please.)

      export ICEBOSS_HOME=${HOME}/iceboss

    If you are in a Cygwin environment, you must use the cygpath shell command to correctly define this and an adjunct variable correct.
      export ICEBOSS_HOME=`cygpath --mixed ${HOME}`/iceboss
      export ICEBOSS_HOME_CYGWIN=`cygpath --unix ${HOME}`/iceboss

    Be sure that your .bashrc has been sourced at this point. You can logout/login again before proceeding.
    Run the script to set up the jboss delpoyment area(s):

      $ python2 ./mercury-setup/HgStandard.py --reset

    Consult the BFD FAQ if you get errors runing this script.

    Finally, the setup-iceboss.sh script defines a few commands for starting and stopping jboss. To have those commands available to you, source that script in your ~/.bashrc by adding the following to it:

      source ${ICEBOSS_HOME}/jboss/setup/setup-iceboss.sh

    Start jboss in the foreground (so you will want this in it's own window) Use the jboss command. To stop it use Ctrl-C in that same window, or the nojboss command from another.

      $ jboss

    Advanced Topics:

  9. Build the DAQ-PROD meta-project
  10. These instruction are now
    here.

  11. Deploy the eXo Portlet platform
  12. Instructions here.

This page maintained by Martin Stoufer
Page last modified: