InstallationJava » History » Version 8

« Previous - Version 8/14 (diff) - Next » - Current version
J. Moringen, 11/04/2011 01:03 AM
fixed and updated


Installation of RSB Java Implementation

For compilation and installation of the Java implementation, we use the Ant build tool.

Dependencies

Dependencies on Externals Libraries and Tools

Required: Optional:
  • javadoc

Dependencies on other RSB Sub-projects

The Java implementation of RSB depends on RSB's language independent network protocol specification. This specification is maintained in the protocol sub-project of the RSB source tree.

Assuming the entire RSB source tree has been checked out into the current directory, the protocol sub-project can be built and installed using the following commands ($prefix has to be replaced with a desired installation prefix):

cd protocol/build && cmake .. -DCMAKE_INSTALL_PREFIX=$prefix && make && make install

Installation of RSB Core

After installing the protocol sub-project (see above)
  1. Checkout code from Subversion repository (see front page)
  2. Invoke ant supplying build properties on the commandline or via build.properties (see below)
The following properties are used to configure the build:
Ant Property Meaning Example
env.prefix Location into which RSB should be installed /vol/cit/share
pbuf.protoc Location of protocol buffer compiler (protoc or protoc.exe /usr/bin/protoc
pbuf.protopath Location of RSB protocol IDL files (see TODO) /vol/cit/share/RSBProtocol
pbuf.lib Location of Java protocol buffer runtime library /usr/share/java/protobuf.jar
spread.daemon Location of Spread Daemon Executable /vol/cit/sbin/spread

All properties can be supplied on the ant commandline using the -DNAME=VALUE syntax or by creating a build.properties file containing lines of the form NAME = VALUE.

An exemplary ant dist command, which builds the RSB jar library, may look as follows:

ant -Dpbuf.protoc=/usr/bin/protoc -Dpbuf.protopath=/vol/cit/share/RSBProtocol -Dpbuf.lib=/usr/share/java/protobuf.jar -Dspread.daemon=/vol/cit/sbin/spread dist

The equivalent build.properties file looks like this:
pbuf.protoc = /usr/bin/protoc
pbuf.protopath = /vol/cit/share/RSBProtocol
pbuf.lib = /usr/share/java/protobuf.jar
spread.daemon = /vol/cit/sbin/spread dist

In the presence of this file, the ant command reduces to
ant dist

In order to test your freshly compiled RSBJava version, you may execute the RSBJava test suite. To do so, the following ant target needs to be invoked (please note that a spread daemon is automatically started by the ant script):

ant test

You should see a console output similar to the following (shortened excerpt):

ubi-1-165-178:RSBJava swrede$ ant -Dpbuf.protoc=/opt/local/bin/protoc -Dpbuf.protopath=/vol/cit/share/RSBProtocol -Dpbuf.lib=/opt/local/share/java/protobuf.jar -Dspread.daemon=/vol/cit/sbin/spread test
Buildfile: /Users/swrede/Workspace/RSBJava/build.xml

init:
     [echo] Using pbuf: /opt/local/share/java/protobuf.jar
     [echo] Test report dir: /Users/swrede/Workspace/RSBJava/testreports

protocol:

compile:
    [javac] /Users/swrede/Workspace/RSBJava/build.xml:105: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
    [javac] Compiling 1 source file to /Users/swrede/Workspace/RSBJava/build/classes
    [javac] /Users/swrede/Workspace/RSBJava/build.xml:110: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
    [javac] Compiling 1 source file to /Users/swrede/Workspace/RSBJava/build/examples

test-compile:
    [javac] Compiling 25 source files to /Users/swrede/Workspace/RSBJava/build/test

test:
    [junit] Running rsb.DefaultErrorHandlerTest
    [junit] Testsuite: rsb.DefaultErrorHandlerTest
    [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0,083 sec
    [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0,083 sec
    [junit] ------------- Standard Error -----------------
    [junit] 05.09.2011 11:12:38 rsb.DefaultErrorHandler warning
    [junit] SCHWERWIEGEND: A warning was reported to the ErrorHandler: java.lang.RuntimeException: test
    [junit] 05.09.2011 11:12:38 rsb.DefaultErrorHandler error
    [junit] SCHWERWIEGEND: An error was reported to the ErrorHandler: java.lang.RuntimeException: test
    [junit] ------------- ---------------- ---------------

<output of more tests omitted>

    [junit] Running rsb.util.UUIDToolsTest
    [junit] Testsuite: rsb.util.UUIDToolsTest
    [junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 0,164 sec
    [junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 0,164 sec
    [junit] 
    [junit] Testcase: testGetNameBasedUUID took 0,069 sec
    [junit] Testcase: testByteArrayConversion took 0,001 sec

BUILD SUCCESSFUL
Total time: 48 seconds

If no failed test cases are reported, RSBJava works correctly on your machine.

To install RSB jars into the configured prefix (e.g., into ${prefix}/share/java), the following ant command can be used

ant install

Installation of RSB-XML

  • for rsb-xml, you need to additionally install XOM (available via ubuntu)
  • and pass the following parameters to the ant build script
Ant Property Meaning Example
pbuf.lib Location of Protobuf Library /usr/share/java/protobuf.jar
spread.daemon Location of Spread Daemon Executable /vol/cit/sbin/spread
xom.lib Location of XOM XML Library /usr/share/java/xom-1.2.1.jar
rsb.lib Location of RSB Core Library /vol/cit/share/java/rsb.jar