| 1 |
$Id$ |
|---|
| 2 |
JCR Ice Connector |
|---|
| 3 |
================= |
|---|
| 4 |
This is a Java implementation of a facade to Jackrabbit JCR utilising |
|---|
| 5 |
Ice communications engine that provides bidirectional cross-language |
|---|
| 6 |
integration service, high-scalable communication platform and this |
|---|
| 7 |
way Ice Connector allows to interact transparently with JCR from Java, C#, |
|---|
| 8 |
VB, C++, Python, PHP. |
|---|
| 9 |
|
|---|
| 10 |
Dependencies |
|---|
| 11 |
------------ |
|---|
| 12 |
- Ice from http://www.zeroc.com |
|---|
| 13 |
- Jackrabbit from http://jackrabbit.apache.org |
|---|
| 14 |
|
|---|
| 15 |
Interface definitions |
|---|
| 16 |
--------------------- |
|---|
| 17 |
File jcr.ice contains Slice interface definitions. |
|---|
| 18 |
|
|---|
| 19 |
|
|---|
| 20 |
Installation |
|---|
| 21 |
============ |
|---|
| 22 |
You need to setup Ice and Jackrabbit first. |
|---|
| 23 |
Consult corresponding sites about details. |
|---|
| 24 |
|
|---|
| 25 |
To compile JCR Ice Controller: |
|---|
| 26 |
|
|---|
| 27 |
$ mkdir classes |
|---|
| 28 |
$ mkdir generated |
|---|
| 29 |
|
|---|
| 30 |
$ slice2java --output-dir generated jcr.ice |
|---|
| 31 |
|
|---|
| 32 |
Set CLASSPATH or utilise -cp command line switch to include jackrabbit |
|---|
| 33 |
jars, as well as Ice.jar |
|---|
| 34 |
It may look something like this in your compile/run script(your jar |
|---|
| 35 |
versions may vary): |
|---|
| 36 |
jars=$HOME/java/lib |
|---|
| 37 |
cp=$cp:$jars/commons-collections-3.1.jar |
|---|
| 38 |
cp=$cp:$jars/concurrent-1.3.4.jar |
|---|
| 39 |
cp=$cp:$jars/derby-10.1.1.0.jar |
|---|
| 40 |
cp=$cp:$jars/geronimo-spec-jta-1.0-M1.jar |
|---|
| 41 |
cp=$cp:$jars/jackrabbit-1.0-SNAPSHOT.jar |
|---|
| 42 |
cp=$cp:$jars/jackrabbit-commons-1.0-SNAPSHOT.jar |
|---|
| 43 |
cp=$cp:$jars/jcr-1.0.jar |
|---|
| 44 |
cp=$cp:$jars/junit-3.8.1.jar |
|---|
| 45 |
cp=$cp:$jars/log4j-1.2.8.jar |
|---|
| 46 |
cp=$cp:$jars/lucene-1.4.3.jar |
|---|
| 47 |
cp=$cp:$jars/slf4j-log4j12-1.0.jar |
|---|
| 48 |
cp=$cp:$jars/xercesImpl-2.6.2.jar |
|---|
| 49 |
cp=$cp:$jars/xmlParserAPIs-2.0.2.jar |
|---|
| 50 |
cp=$cp:/opt/IceJ/lib/Ice.jar |
|---|
| 51 |
|
|---|
| 52 |
$ javac -d classes -cp classes:$cp generated/jcr/*.java org/nuxeo/jackrabbit/ice/*.java |
|---|
| 53 |
|
|---|
| 54 |
Running |
|---|
| 55 |
=============== |
|---|
| 56 |
|
|---|
| 57 |
java -cp classes:$cp org.nuxeo.jackrabbit.ice.Server path_to_repository --Ice.Config=/abs/path/to/config |
|---|
| 58 |
|
|---|
| 59 |
'config' presents necessary information for Ice run-time and is the same |
|---|
| 60 |
for client and server. |
|---|
| 61 |
|
|---|
| 62 |
Other |
|---|
| 63 |
====== |
|---|
| 64 |
Simple Python client to test Ice Connector is called client.py. To run it |
|---|
| 65 |
you'll need IcePy which is add-on to Ice, after you have it just: |
|---|
| 66 |
$ python client.py |
|---|