Magnolia 3.0.5, Berkley DB (BDB) and Jackrabbit 1.3.3_
1. Plain vanilla Magnolia 3.0.5 war
Launch a plain vanilla Magnolia 3.0.5 war in a Tomcat > let it unpack. Stop Tomcat afterwards.
2. Main configuration
Edit the file WEB-INF/config/default/magnolia.properties:
{{magnolia.repositories.jackrabbit.config=WEB-INF/config/repo-conf-jackrabbit-1.3/jackrabbit-bdb-search.xml}}
3. BDB repo configuration
The package of the persistence manager has changed, so you'll need to change the file WEB-INF/config/repo-conf-jackrabbit-1.3/jackrabbit-bdb-search.xml accordingly. Fix the value for PersistenceManager class (2x!):
{{<PersistenceManager class="org.apache.jackrabbit.core.persistence.bdb.BerkeleyDBPersistenceManager" />}}
4. Exchange some JARs
- jackrabbit-core-1.0.1.jar -> jackrabbit-core-1.3.3.jar
- lucene-1.4.3.jar -> lucene-core-2.0.0.jar (IMPORTANT: Version 2.2.0 will not work!)
- jackrabbit-index-filters-1.0.1-patch-574.jar -> jackrabbit-text-extractors-1.3.3.jar
5. Add a few more JARs
- jackrabbit-api-1.3.3.jar
- jackrabbit-jcr-commons-1.3.3.jar
- je-3.2.44.jar (BDB)
- derby-10.1.3.1.jar with derby-10.2.2.0.jar (which is strange to me since we're using BDB instead of derby... but I got ClassNotFoundExceptions when I did not replace the derby JAR!)
6. Compile the BDB persistance manager
- Place the java files you'll find under http://svn.apache.org/repos/asf/jackrabbit/trunk/contrib/bdb-persistence/src/java/org/apache/jackrabbit/core/persistence/bdb/ (as of 2007-10-18) in a folder
- In the same folder create a subfolder "lib"
- Add the following JARs to the lib folder:
- commons-logging-1.1.jar
- jackrabbit-jcr-commons-1.3.3.jar
- je-3.2.44.jar
- jackrabbit-core-1.3.3.jar
- javax.jcr-jcr-1.0.jar
- Compile with: javac -extdirs lib -Xlint:unchecked *.java
- with JDK 1.5 try: javac -source 1.4 -extdirs lib -Xlint:unchecked *.java
- Copy all .class files to a folder WEB-INF/classes/org/apache/jackrabbit/core/persistence/bdb/
- or create a .jar file and move it to WEB-INF/lib: jar -cf jackrabbit-bdb-persistence.jar org
7. Bootstrap Magnolia again
- Delete your "repositories" folder
- Place the bootstrap you need (e.g. from a backup) WEB-INF/bootstrap/common or WEB-INF/bootstrap/author
- If you need to add templates or docroot files, now would be a good moment to do so
- Launch Magnolia and keep an eye on the log
This worked for me... I hope it does too for you! Good luck!
-Will