i have a readme in it but it does not cover oracle installation so i'll of course update it but for now who wants to try this can:

1) Download Oracle Express Edition (Oracle XE) here:
    it come as .deb or a .rpm !! It is really simple to install just follow the instructions. Remember also that Oracle XE came from the same
    code base as of Standard and Enterprise Edition as opposite to Oracle Light that is a slightly different product. So once you use it
    you can then upgrade to the Standard Edition One, then Standard Edition, then Enterprise Edition on an as needed basis.

2) Once installed it asks to launch /etc/init.d/oracle-xe configure (This will create an oracle instance for you - localhost:1521:xe)

3) su - oracle

oracle:~$ export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
oracle:~$ export ORACLE_SID=xe
oracle:~$ export PATH=$ORACLE_HOME/bin:$PATH
oracle:~$ cd /path/to/apacheds-oracle/oracle
oracle:/path/to/apacheds-oracle/oracle$ sqlplus / as sysdba
sql> alter system set db_create_file_dest='/usr/lib/oracle/xe/oradata' scope=both;
sql> @createuser.sql
.... this will create tablespaces and the dsorapart database user...
oracle:/path/to/apacheds-oracle/oracle$ sqlplus dsorapart/dsorapart @schema.sql
.... this will create tables, pl/sql packages and a default index on the objectclass attribute....
oracle:/path/to/apacheds-oracle/oracle$ cd ..
download the ojdbc14.jar from
oracle:/path/to/apacheds-oracle$  mvn install:install-file -DartifactId=ojdbc14 -Dversion= -Dpackaging=jar -Dfile=/tmp/ojdbc14.jar
... intall it in your maven repo ...
oracle:/path/to/apacheds-oracle$  mvn compile
oracle:/path/to/apacheds-oracle$  mvn package
... this will create a apache target/apacheds-oracle-1.5.5-SNAPSHOT.jar to include in your apacheds classpath ..

then you can use the provided /path/to/apacheds-oracle/oracle/server.xml to start apacheds, just change the datasource:

 <s:bean id="Db10gDataSource" class="oracle.jdbc.pool.OracleDataSource">
    <!-- configure oracle -->
    <s:property name="user"><s:value>dsorapart2</s:value></s:property>
    <s:property name="password"><s:value>dsorapart2</s:value></s:property>
    <s:property name="driverType"><s:value>thin</s:value></s:property>
    <s:property name="portNumber"><s:value>1521</s:value></s:property>
    <s:property name="serverName"><s:value>localhost</s:value></s:property>
    <s:property name="databaseName"><s:value>db10g</s:value></s:property>

 <s:bean id="Db10gDataSource" class="oracle.jdbc.pool.OracleDataSource">
    <!-- configure oracle -->
    <s:property name="user"><s:value>dsorapart</s:value></s:property>
    <s:property name="password"><s:value>dsorapart</s:value></s:property>
    <s:property name="driverType"><s:value>thin</s:value></s:property>
    <s:property name="portNumber"><s:value>1521</s:value></s:property>
    <s:property name="serverName"><s:value>localhost</s:value></s:property>
    <s:property name="databaseName"><s:value>xe</s:value></s:property>

this server.xml has 2 oracle partitions:

dc=example,dc=com (where you have to create the context entry with an ldapadd)

I'll post a new README on jira.


2009/4/6, Alex Karasulu <>:
Hi Andrea,

This is great.  Perhaps you attach this to a JIRA instead? Also make sure denote this as an ASL licensed contribution on JIRA. I'll try to get to this soon.  I'm going to have to figure out what you need to do to setup.  Like you had some free edition of Oracle u used for this.  Please ignore this if you have a readme inside.


On Sun, Apr 5, 2009 at 6:39 PM, Andrea Gariboldi <> wrote:
I finally finished to clean up dependencies, setup maven, and use the lastest interfaces (basically reimplented the partition).
I think there are a lot of things that can be improved i hope also by others, but this should be a solid proof of concept.
The partition actually does not cache entries in ApacheDS waiting for a cross partition cache at an higher level.
I hope Stefan can test it someday with his automated tests, probably there is the need to fix some use case.