Tuesday, August 12, 2014

Hanlon server can now run on Java

Hanlon server code is migrated / refactored to run on JRuby so that hanlon server can be deployed on Java Application Servers. This blog outline the process to create hanlon.jar file for JAS deployment


1. OpenJDK 7
2. Jruby

Hanlon Jar Creation

Assuming hanlon git repo is cloned and a suitable dev environment setup. (ref. Setting up Hanlon Development Environment for further details)

1. Create hanlon.jar

# go to hanlon home directory
cd scripts

create_war.sh download necessary dependencies (xxx_jdbc.jar, ruby gems etc.,) and includes them into the war file


2. Deploy war

Created war file can be found under builds directory of hanlon home directory. This file can be deployed onto your favorite java application server. It is tested on tomcat, jboss and glassfish. If you get a chance to test on other JAS containers, please post your feedback for any improvements

Monday, August 4, 2014

Building Hanlon Micro-Kernel (MK)

I am posting a quick cookbook on creating hanlon microkernel for easy reference. Detailed information on how the microkernel organized and build along with details on each of the command listed here can be found on git hanlon microkernel wiki


1. Install dependencies

sudo apt-get install squashfs-tools -y
sudo apt-get install -y fakeroot
sudo apt-get install p7zip-full -y
sudo apt-get install curl -y


2. Install Ruby (I prefer using rvm)

\curl -sSL https://get.rvm.io | bash -s stable --ruby
source /home/user/.rvm/scripts/rvm


3. Clone hanlon micro-kernel project into your working directory (my directory ~/wspace/hanlon/hanlon-mk)

mkdir wspace
mkdir hanlon
git clone hanlon-mk
cd hanlon-mk


4. Clone hanlon micro-kernel project into your working directory (my directory ~/wspace/hanlon/hanlon-mk)

mkdir wspace
mkdir hanlon
git clone hanlon-mk


5. Create bundle file: This would create a temporary tar file containing all necessary files to complete iso creation process

cd hanlon-mk
./build-bundle-file.sh -d -t test1234 -b additional-build-files/builtin-extensions.lst -m additional-build-files/mirror-extensions.lst

This would create hanlon-microkernal-bundle-<mode>.tar.gz. Mode of the file depends on dev/debug/prod switch selected with build-bundle-file.sh


6. Create iso file structure with tar file

cd bundle_files
tar zxvf hanlon-microkernel-bundle-debug.tar.gz
fakeroot ./build_initial_directories.sh

This would create a directory structure to be used for the microkernel iso file. build_initial_directories.sh should be run as root. Because I do not prefer installing ruby at root, I am using fakeroot to work around the issue.


7. Create final iso file

Build the mk iso (in my case it is hnl_mk_debug-image.2.0.0+2-g99e078f.iso). File is naming follows the convention hnl_mk_<mode>-image.<version>-<git-stamp>.iso