jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Luca Fiscato <luca.fisc...@eng.it>
Subject Jackrabbit Oracle support
Date Mon, 27 Nov 2006 14:42:48 GMT
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.

Cheers

Luca Fiscato
Engineering Ingegneria Informatica


 

Mime
View raw message