Jackrabbit介绍
The Apache Jackrabbit™ content repository is a fully conforming implementation of the Content Repository for Java Technology API.
Jackrabbit是完全遵照JAVA API实现的一个内容仓库。
A content repository is a hierarchical content store with support for structured and unstructured content, full text search, versioning, transactions, observation, and more。
是一个分级内容仓库,可以存放结构化和非结构化内容,全文本搜索,版本,汇报,观察报告等等。
To get started with Jackrabbit you should first become familiar with the JCR API. Download the JSR 170 specification, browse the API documentation, check our introduction to JCR levels, or read some of the JCR articles to understand the content repository model that Jackrabbit implements. You can also take a look at the various JCR and Jackrabbit applications to get an idea of what to do with a content repository.
http://jackrabbit.apache.org/getting-started-with-apache-jackrabbit.html //官方网站
What Is a Persistence Manager (PM)?
PM是Jackrabbit内部的一个组件,处理内容或属性的持久化存储。
Consistency / Atomicy
如果数据库支持原子性则数据库持久化是原子性的。
当前文件系统是不支持原子性的。
What Combination of FS and PM is the Best Choice?
取决于你的优先级。如果你想存储数据在RDBMS中,用BundleDbPersistenceManager整合LocalFileSystem或DbFileSystem。如果你想存储文件更容易理解,你需要使用XMLPersistenceManager配合LocalFileSystem。
Available Implementations
Bundle Database PM
- Status: mature (the default persistence manager)
- Depending on the database, one of the following:
-
org.apache.jackrabbit.core.persistence.bundle.DerbyPersistenceManager (Apache Derby; Java)
-
org.apache.jackrabbit.core.persistence.bundle.H2PersistenceManager (H2 Database Engine; Java)
-
org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager (MySQL)
-
org.apache.jackrabbit.core.persistence.bundle.PostgreSQLPersistenceManager (PostgreSQL)
-
org.apache.jackrabbit.core.persistence.bundle.MSSqlPersistenceManager (MS SQL Server)
-
org.apache.jackrabbit.core.persistence.bundle.OraclePersistenceManager (Oracle 10 or newer)
-
org.apache.jackrabbit.core.persistence.bundle.Oracle9PersistenceManager (Oracle 9)
-
org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager (generic database)
-
- Atomic; JDBC based; zero-deployment; fast
- Auto-reconnect to the database is supported.
-
To use a JNDI data, see UsingJNDIDataSource.
-
The tables are automatically created. To create them manually, see ManuallyCreatingDatabaseTables.
Bundle File-System PM
- Status: mature
- If the JVM process is killed the repository might turn inconsistent
- Not meant to be used in production environments (except for read-only uses)
-
org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager
In-Memory PM
- Status: mature
- All data is lost as soon as the repository is closed
-
org.apache.jackrabbit.core.persistence.mem.InMemPersistenceManager
- For testing and small (read-only) workspaces
- Keeps all content in memory
- A custom binary serializer is optionally used to load and store the persistent state during initialization and shutdown of the persistence manager.
- Very fast
Simple Database PM
- Status: mature
-
Subclasses of org.apache.jackrabbit.core.persistence.db.SimpleDbPersistenceManager
- JDBC based; zero-deployment: schema is automatically created
- Atomic
- Fast
ObjectPersistenceManager
- Status: obsolete, mature
- If the JVM process is killed the repository might turn inconsistent
- Not meant to be used in production environments
-
Persists data in an abstract FileSystem using a simple binary serialization format
XMLPersistenceManager
- Status: obsolete, mature
- If the JVM process is killed the repository might turn inconsistent
-
Persists data in an abstract FileSystem using XML serialization format
ORMPersistenceManager
-
Status: obsolete, experimental & unfinished, still being maintained?
- Referential integrity is possible, but not implemented
- Not so easy to configure.
LocalFileSystem:
- Status: mature
- Slow on window boxes
MemoryFileSystem:
- Status: mature
- All data is lost as soon as the repository is closed
- For testing and small (read-only) workspaces
- Keeps all content in memory
- Very fast
DbFileSystem:
- Status: mature
- Atomic
-
Meant to be used in combination with a Database Persistence Manager as repository & workspace file system