blob: d04d6e75fecad517f28c5017e5e93a17517a78b0 [file] [log] [blame]
ORM persistence managers for Jackrabbit README
----------------------------------------------
License (see also LICENSE.txt)
------------------------------
Collective work: Copyright 2006 The Apache Software Foundation.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Introduction
------------
This sub-project of Jackrabbit providers two ORM-based persistence manager
implementation.
- OJB (http://db.apache.org/ojb) -based persistence manager
- Hibernate (http://www.hibernate.org) -based persistence manager
This also means that Jackrabbit can now store all content in a database.
Requirements
------------
This project assumes that you have already successfully compiled and
installed the parent project Jackrabbit into your maven repository. If
this is not the case, go back to the root project and launch :
maven jar:install
For running the full tests, you will require a rather large amount of
free memory, as the default setup with HSQLDB requires a lot of memory
when handling large BLOB files.
Existing limitations
--------------------
- Values (including multi-values) are stored in a single database column
in this implementation, limiting the length of values to the length
defines in the SQL schema and the mapping files (there is no hard-coded
limitation in the Java implementation though).
Running
-------
By default the package comes configured to run against an embedded HSQLDB
database. In order for the tests and the benchmark to run, you must first
run :
maven clean
The above resets the database, and clean the whole environment to run the
tests and/or the benchmark. You can then launch
maven start.test.server
This launches the database in server mode (full embedded mode was not
possible to implement because it doesn't finalize properly). Note that
your shell is now blocked while running the database (CTRL+C to stop it)
and you will need a second shell to run the tests/benchmarks
From a second shell, you can now run
maven
This will run the tests. Please note that the tests may take a while
to run (1 minute on a P4 3.0Ghz).
If you just want to build the project without the tests :
maven -Dmaven.test.skip=true
Recycling HSQLDB
----------------
If you want to restart a test session, here is the quick procedure to do so:
1. In the shell that launched the database, press CTRL+C
2. In the other shell, type : maven clean (this resets the database to an
empty schema by copying a file, so don't do it while HSQLDB is running !)
3. Relaunch the database in it's shell by typing : maven start.test.server
That's it !
Using MySQL
-----------
The ORM persistence managers have also been tested against a MySQL database.
In order to configure the persistence managers to use MySQL instead of HSQLDB
you need to change the following files, depending on whether you want to use
the OJB or Hibernate implementation :
For OJB : applications/test/ojb/repository_database.xml
For Hibernate : applications/test/hibernate.properties
This project also contains a database initialization script that contains the
DB schema :
create_db_mysql.sql
Also available is a batch script for Windows, that initializes a MySQL database
called "jackrabbit", and recycles it if it already exists :
reset_db_mysql.bat
Enjoy !