Hi,

i've tried the ready-to run sling-webapp for a projekt that i am
involved in (deployed on my tomcat installation) and it worked well so
far.
Then i wanted Jackrabbit to use a mySQL-DB, because this is a
requirement for my projekt. To do so i created a new workspace in the
jackrabbit workspaces directory, named it like my projekt, and added a
workspace.xml, with this Filesystem- an PersistanceManager-Nodes:

<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
   <param name="driver" value="com.mysql.jdbc.Driver"/>
   <param name="url"
value="jdbc:mysql://__db_url__:3306/__sheme__?autoReconnect=true"/>
   <param name="user" value="__user__"/>
   <param name="password" value="__pw__"/>
   <param name="schema" value="mysql"/>
   <param name="schemaObjectPrefix" value="rep_"/>
</FileSystem>
<PersistenceManager
class="org.apache.jackrabbit.core.persistence.db.SimpleDbPersistenceMana
ger">
   <param name="driver" value="com.mysql.jdbc.Driver"/>
   <param name="url"
value="jdbc:mysql://__db_url__:3306/__sheme__?autoReconnect=true"/>
   <param name="schema" value="mysql"/>
   <param name="schemaObjectPrefix" value="${wsp.name}_"/>
   <param name="user" value="__user__"/>
   <param name="password" value="__pw__"/>
   <param name="schema" value="mysql"/>
   <param name="externalBLOBs" value="false"/>
</PersistenceManager>

But i didn't found an option to switch to that workspace, so that sling
also creates the necessary tables. 
Next i've downloaded the source package of sling from the
downloads-site, an edited the repository.xml of jackrabbit before the
build like that:

The Filesystem-Node:

<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
   <param name="driver" value="com.mysql.jdbc.Driver"/>
   <param name="url"
value="jdbc:mysql://__db_url__:3306/__sheme__?autoReconnect=true"/>
   <param name="user" value="__user__"/>
   <param name="password" value="__pw__"/>
   <param name="schema" value="mysql"/>
   <param name="schemaObjectPrefix" value="rep_fs_"/>
</FileSystem>

The Workspace-Node:

<Workspace name="${wsp.name}">
    <PersistenceManager
class="org.apache.jackrabbit.core.persistence.db.SimpleDbPersistenceMana
ger">
       <param name="driver" value="com.mysql.jdbc.Driver"/>
       <param name="url"
value="jdbc:mysql://__db_url__:3306/__sheme__?autoReconnect=true"/>
       <param name="schema" value="mysql"/>
       <param name="schemaObjectPrefix" value="rep_pm_${wsp.name}_"/>
       <param name="user" value="__user__"/>
       <param name="password" value="__pw__"/>
       <param name="schema" value="mysql"/>
       <param name="externalBLOBs" value="false"/>
    </PersistenceManager>
    <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
       <param name="driver" value="com.mysql.jdbc.Driver"/>
       <param name="url"
value="jdbc:mysql://__db_url__:3306/__sheme__?autoReconnect=true"/>
       <param name="user" value="__user__"/>
       <param name="password" value="__pw__"/>
       <param name="schema" value="mysql"/>
       <param name="schemaObjectPrefix" value="rep_fs_${wsp.name}_"/>
    </FileSystem>
</Workspace>

The Versioning-Node:

<Versioning rootPath="${rep.home}/version">
    <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
       <param name="driver" value="com.mysql.jdbc.Driver"/>
       <param name="url"
value="jdbc:mysql://__db_url__:3306/__sheme__?autoReconnect=true"/>
       <param name="user" value="__user__"/>
       <param name="password" value="__pw__"/>
       <param name="schema" value="mysql"/>
       <param name="schemaObjectPrefix" value="rep_v_fs_"/>
    </FileSystem>
    <PersistenceManager
class="org.apache.jackrabbit.core.persistence.db.SimpleDbPersistenceMana
ger">
       <param name="driver" value="com.mysql.jdbc.Driver"/>
       <param name="url"
value="jdbc:mysql://__db_url__:3306/__sheme__?autoReconnect=true"/>
       <param name="schema" value="mysql"/>
       <param name="schemaObjectPrefix" value="rep_v_pm_"/>
       <param name="user" value="__user__"/>
       <param name="password" value="__pw__"/>
       <param name="schema" value="mysql"/>
       <param name="externalBLOBs" value="false"/>
    </PersistenceManager>                
</Versioning>

The DataStore-Node:

<DataStore class="org.apache.jackrabbit.core.data.FileDataStore.db"/>
   <param name="driver" value="com.mysql.jdbc.Driver"/>
   <param name="url"
value="jdbc:mysql://__db_url__:3306/__sheme__?autoReconnect=true"/>
   <param name="user" value="__user__"/>
   <param name="password" value="__pw__"/>
   <param name="databaseType" value="mysql"/>
   <param name="minRecordLength" value="1024"/>
   <param name="maxConnections" value="2"/> 
   <param name="copyWhenReading" value="true"/>
</DataStore>

I've tried to build this package with "maven clean install", but the
buid failed, because 183 Unittests failed. Then I've built the package
once again, skipping the tests and tried "java -jar
org.apache.sling.launchpad.app-3-incubator.jar -c sling -f -", but as
expected sling didn't start. I've tried a lot, searched for an solution
over the net, but couldn't find a solution, or an example, how to set up
sling respectively jackrabbit to run with a mySQL-DB. Could anyone help
me with that or offer a link to such a solution/example?

regards,

Mathias 

Reply via email to