If you have a MAC OS running on your box and would like to set up your environment for Open ESB to develop and contribute to the community below are a few tips. The main URL's you will need to reference are:
https://open-esb.dev.java.net/BuildInstructions.html - The URL I refer to in below steps.
Pre-requisites:
- CVS client: You can check if you have CVS already installed on your MAC (type cvs on your terminal window). If the command is not recognized follow one of the steps below:
- Download the developer tools pack from Apple (ADC website). Upon installing the pack you should have cvs client.
- install the Mac version of WinCVS from http://wincvs.org/download.html.
- Or the better option would be to use your favorite editor NetBeans or Eclipse that provide CVS clients.
- GlassFish: Please note that you require the GF bits that enable clustering. If not you could run into errors. In my case I downloaded from glassfish.org and did a default installation which probably did not support clustering. This resulted in errors and had to repoint to a GF install I had from installing JavaCAPS.
- JDK - your Mac OSx comes with a pre-installed JDK
- Perl - Your Mac OSx comes with a pre-installed Perl module.
- Maven - you can download this from http://maven.apache.org/download.html
For more details please refer to https://open-esb.dev.java.net/BuildInstructionsCfgTasks.html#prerequisites.
Steps:
1. Open the URL - https://open-esb.dev.java.net/BuildInstructionsOpenEsbSetup.html#openesb_setup. Go through Step (a).
2. Go through step (b) and download the MAC OSx version of tools tar, and complete other instructions.
3. Step c: This is where there the steps change from the steps in above mentioned URL. Follow the below steps:
- On terminal window execute
- $SRC_ROOT> cp sample_setup.sh build_setup.sh
Note that we are using .sh file here since MAC terminal is 'bash' by default. If you use the .tcsh file as listed at the above URL, you would have to replace setenv with export which can introduce errors when making changes.
- Open the build_setup.sh using your fav editor. The instructions there in are very clear on what you need to set I believe. But there are a few Mac specific path's as listed below:
-
export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home"
export PERL5_HOME="/System/Library/Perl"
Please ensure you have the above JDK directory. All your JDK installations go under JavaVM.framework directory.
- On terminal window execute the below. Only when you execute the below will the $PATH variable get updated with all the contents in build_setup.sh file. Also note that the 'smvn' alias is added here which you would use later in step f.
- $SRC_ROOT> source build_setup.sh
4. step (d). Verify the environment stated there. Once I execute this, along with above command, I started to see an error message if I tried to execute this command again as shown below.
-bash: tools/boot/checkenv.sh: /usr/bin/sh: bad interpreter: No such file or directory
The reason for this is unknown and did not investigate further since my environment looked good by looking at the $PATH variable on the SAME terminal.
5. Before you execute step (e), please note that you MUST have ESB version of the GlassFish app server and not the bits you get from glassfish.org. If you use bits from glassfish.org, the process would fail immediately.
6. Finish off step (f). In case you run into an error stating plug-in's can not be found, create a settings.xml file in your $HOME/m2 directory. In the XML copy past the below. For further details please refer to http://maven.apache.org/ref/2.0.8/maven-settings/settings.html. In my case I ran into error w.r.t plugin org.apache.maven.plugins:maven-antrun-plugin:pom:1.2-SNAPSHOT.
<settings>
<proxies>
<proxy>
<active>true</active>
<host>webcache.east.sun.com</host>
<!-- <host>testcache.sfbay</host> -->
<!-- <host>webcache.sfbay</host> -->
<!-- <host>webcache.east.sun.com</host> -->
<id>testcache_http</id>
</proxy>
</proxies>
<pluginGroups>
<pluginGroup>open-esb</pluginGroup>
</pluginGroups>
<mirrors>
<mirror>
<id>lsu.edu</id>
<url>http://ibiblio.lsu.edu/main/pub/packages/maven2</url>
<mirrorOf>central</mirrorOf>
<!-- United States, Louisiana -->
</mirror>
<mirror>
<id>sateh.com</id>
<url>http://maven.sateh.com/repository</url>
<mirrorOf>central</mirrorOf>
<!-- The Netherlands, Amsterdam -->
</mirror>
<mirror>
<id>ggi-project.org</id>
<url>http://ftp.ggi-project.org/pub/packages/maven2</url>
<mirrorOf>central</mirrorOf>
<!-- The Netherlands, Amsterdam -->
</mirror>
<mirror>
<id>planetmirror.com</id>
<url>http://downloads.planetmirror.com/pub/maven2</url>
<mirrorOf>central</mirrorOf>
<!-- Australia, Queensland -->
</mirror>
<mirror>
<id>dotsrc.org</id>
<url>http://mirrors.dotsrc.org/maven2</url>
<mirrorOf>central</mirrorOf>
<!-- Denmark -->
</mirror>
<mirror>
<id>ibiblio.net</id>
<url>http://www.ibiblio.net/pub/packages/maven2</url>
<mirrorOf>central</mirrorOf>
<!-- United States, North Carolina -->
</mirror>
<mirror>
<id>sunsite.dk</id>
<url>http://mirrors.sunsite.dk/maven2</url>
<mirrorOf>central</mirrorOf>
<!-- Denmark -->
</mirror>
<mirror>
<id>real-maven-snapshot</id>
<url>http://people.apache.org/maven-snapshot-repository</url>
<mirrorOf>maven-snapshots</mirrorOf>
<!-- bogus mirror to avoid redirect -->
</mirror>
</mirrors>