hi luca,

On 11/27/06, Luca Fiscato <[EMAIL PROTECTED]> wrote:
Hi,

I'm currently using jackrabbit 1.0.1 as a cms repository for an open
source business intelligence project.  (SpagoBI project, developed by
Engineering Ingegneria Informatica).
The SpagoBI platform is used by our customers and one of these wants to
store the cms contents into an Oracle database.
When I tried to configure the PersistenceManager towars an oracle db I
found that jackrabbit 1.0.1 wasn't able to do that. (I didn't try the
last 1.1 version). So we tried to add the Oracle support to jackrabbit
and we did it. We had to:

1 ) write a ddl for oracle
2 ) add a class DbOracleFileSystem into org\apache\jackrabbit\core\fs\db
(some changes to the statements)
3 ) add a class  SimpleOracleDbPersistenceManager into
org\apache\jackrabbit\core\state\db (changes to the blob insertion for
contents greater than 4 kb)
4 ) change the repository.xml as below

<Repository>
    <FileSystem class="org.apache.jackrabbit.core.fs.db.DbOracleFileSystem">
       .......
       <param name="schemaObjectPrefix" value="CMS_rep_fs_"/>
    </FileSystem>

        .....

    <Workspaces rootPath="${rep.home}/workspaces"
defaultWorkspace="default"/>
    <Workspace name="${wsp.name}">

        <FileSystem
class="org.apache.jackrabbit.core.fs.db.DbOracleFileSystem">
            .......
           <param name="schemaObjectPrefix"
value="CMS_wor_fs_${wsp.name}_"/>
        </FileSystem>

        <PersistenceManager
class="org.apache.jackrabbit.core.state.db.SimpleOracleDbPersistenceManager">
            ......
           <param name="schemaObjectPrefix"
value="CMS_wor_pm_${wsp.name}_"/>
           <param name="externalBLOBs" value="false"/>
        </PersistenceManager>
    </Workspace>

    <Versioning rootPath="${rep.home}/version">
      <FileSystem
class="org.apache.jackrabbit.core.fs.db.DbOracleFileSystem">
         .......
         <param name="schemaObjectPrefix" value="CMS_ver_fs_"/>
      </FileSystem>
      <PersistenceManager
class="org.apache.jackrabbit.core.state.db.SimpleOracleDbPersistenceManager">
          ......
         <param name="schemaObjectPrefix" value="CMS_ver_pm_"/>
         <param name="externalBLOBs" value="false"/>
      </PersistenceManager>
    </Versioning>
</Repository>


We did the work quickly so I'm sure that our changes can be improved a
lot, especially the ddls.  (There are no constraints for example).

We think that the oracle support  should be included into jackrabbit
and  so we would like to contribute our changes. The jackrabbit team
could start form these contribution in order to add a better oracle
support. I don't know if this is the right mailing list for a
contribution request but it seems to be the most probable.

As attachment there is a zip file containing the classes and ddls added.

Please let me know if jackrabbit team plan to integrate the oracle
support into one of the next releases.

thanks for your offer and efforts, very much appreciated!

unfortunately your contribution comes a bit too late, there's oracle support
in jackrabbit's svn since june 06 and released since jackrabbit 1.1:

org.apache.jackrabbit.core.fs.db.OracleFileSystem
org.apache.jackrabbit.core.persistence.db.OraclePersistenceManager

please let me know if you can identify any issues with the current
implementations.

thanks again,
stefan


Cheers

Luca Fiscato
Engineering Ingegneria Informatica






Reply via email to