org.apache.jackrabbit.core.fs.db
Class DbFileSystem

java.lang.Object
  extended by org.apache.jackrabbit.core.fs.db.DatabaseFileSystem
      extended by org.apache.jackrabbit.core.fs.db.DbFileSystem
All Implemented Interfaces:
FileSystem, DatabaseAware
Direct Known Subclasses:
DB2FileSystem, DerbyFileSystem, MSSqlFileSystem, OracleFileSystem

public class DbFileSystem
extends DatabaseFileSystem
implements DatabaseAware

DbFileSystem is a generic JDBC-based FileSystem implementation for Jackrabbit that persists file system entries in a database table.

It is configured through the following properties:

The required schema objects are automatically created by executing the DDL statements read from the [schema].ddl file. The .ddl file is read from the resources by calling getClass().getResourceAsStream(schema + ".ddl"). Every line in the specified .ddl file is executed separatly by calling java.sql.Statement.execute(String) where every occurence of the the string "${schemaObjectPrefix}" has been replaced with the value of the property schemaObjectPrefix.

The following is a fragment from a sample configuration using MySQL:

   <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
       <param name="driver" value="com.mysql.jdbc.Driver"/>
       <param name="url" value="jdbc:mysql:///test?autoReconnect=true"/>
       <param name="schema" value="mysql"/>
       <param name="schemaObjectPrefix" value="rep_"/>
   </FileSystem>
 
The following is a fragment from a sample configuration using Daffodil One$DB Embedded:
   <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
       <param name="driver" value="in.co.daffodil.db.jdbc.DaffodilDBDriver"/>
       <param name="url" value="jdbc:daffodilDB_embedded:rep;path=${rep.home}/databases;create=true"/>
       <param name="user" value="daffodil"/>
       <param name="password" value="daffodil"/>
       <param name="schema" value="daffodil"/>
       <param name="schemaObjectPrefix" value="rep_"/>
   </FileSystem>
 
The following is a fragment from a sample configuration using MSSQL:
   <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
       <param name="driver" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
       <param name="url" value="jdbc:microsoft:sqlserver://localhost:1433;;DatabaseName=test;SelectMethod=Cursor;"/>
       <param name="schema" value="mssql"/>
       <param name="user" value="sa"/>
       <param name="password" value=""/>
       <param name="schemaObjectPrefix" value="rep_"/>
   </FileSystem>
 
The following is a fragment from a sample configuration using Ingres:
   <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
       <param name="driver" value="com.ingres.jdbc.IngresDriver"/>
       <param name="url" value="jdbc:ingres://localhost:II7/test"/>
       <param name="schema" value="ingres"/>
       <param name="user" value="ingres"/>
       <param name="password" value="ingres"/>
       <param name="schemaObjectPrefix" value="rep_"/>
   </FileSystem>
 
The following is a fragment from a sample configuration using PostgreSQL:
   <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
       <param name="driver" value="org.postgresql.Driver"/>
       <param name="url" value="jdbc:postgresql://localhost/test"/>
       <param name="schema" value="postgresql"/>
       <param name="user" value="postgres"/>
       <param name="password" value="postgres"/>
       <param name="schemaObjectPrefix" value="rep_"/>
   </FileSystem>
 
JNDI can be used to get the connection. In this case, use the javax.naming.InitialContext as the driver, and the JNDI name as the URL. If the user and password are configured in the JNDI resource, they should not be configured here. Example JNDI settings:
 <param name="driver" value="javax.naming.InitialContext" />
 <param name="url" value="java:comp/env/jdbc/Test" />
 
See also DerbyFileSystem, DB2FileSystem, OracleFileSystem.


Field Summary
protected  String dataSourceName
           
protected  String driver
          the full qualified JDBC driver name
protected  String password
          the JDBC connection password
protected  String url
          the JDBC connection URL
protected  String user
          the JDBC connection user
 
Fields inherited from class org.apache.jackrabbit.core.fs.db.DatabaseFileSystem
conHelper, copyFileSQL, copyFilesSQL, deleteFileSQL, deleteFolderSQL, INITIAL_BUFFER_SIZE, initialized, insertFileSQL, insertFolderSQL, schema, schemaObjectPrefix, selectChildCountSQL, selectDataSQL, selectExistSQL, selectFileAndFolderNamesSQL, selectFileExistSQL, selectFileNamesSQL, selectFolderExistSQL, selectFolderNamesSQL, selectLastModifiedSQL, selectLengthSQL, updateDataSQL, updateLastModifiedSQL
 
Fields inherited from interface org.apache.jackrabbit.core.fs.FileSystem
SEPARATOR, SEPARATOR_CHAR
 
Constructor Summary
DbFileSystem()
           
 
Method Summary
 boolean equals(Object obj)
          
protected  DataSource getDataSource()
          
 String getDataSourceName()
           
 String getDriver()
           
 String getPassword()
           
 String getUrl()
           
 String getUser()
           
 int hashCode()
          Returns zero to satisfy the Object equals/hashCode contract.
 void setConnectionFactory(ConnectionFactory connnectionFactory)
          
 void setDataSourceName(String dataSourceName)
           
 void setDriver(String driver)
           
 void setPassword(String password)
           
 void setUrl(String url)
           
 void setUser(String user)
           
 
Methods inherited from class org.apache.jackrabbit.core.fs.db.DatabaseFileSystem
buildSQLStatements, close, createCheckSchemaOperation, createConnectionHelper, createDeepFolder, createFolder, deleteFile, deleteFolder, exists, getInputStream, getOutputStream, getSchema, getSchemaObjectPrefix, hasChildren, init, isFile, isFolder, isSchemaCheckEnabled, lastModified, length, list, listFiles, listFolders, setSchema, setSchemaCheckEnabled, setSchemaObjectPrefix, verifyRootExists
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

driver

protected String driver
the full qualified JDBC driver name


url

protected String url
the JDBC connection URL


user

protected String user
the JDBC connection user


password

protected String password
the JDBC connection password


dataSourceName

protected String dataSourceName
Constructor Detail

DbFileSystem

public DbFileSystem()
Method Detail

setConnectionFactory

public void setConnectionFactory(ConnectionFactory connnectionFactory)

Specified by:
setConnectionFactory in interface DatabaseAware

getUrl

public String getUrl()

setUrl

public void setUrl(String url)

getUser

public String getUser()

setUser

public void setUser(String user)

getPassword

public String getPassword()

setPassword

public void setPassword(String password)

getDriver

public String getDriver()

setDriver

public void setDriver(String driver)

getDataSourceName

public String getDataSourceName()

setDataSourceName

public void setDataSourceName(String dataSourceName)

equals

public boolean equals(Object obj)

Overrides:
equals in class DatabaseFileSystem

hashCode

public int hashCode()
Returns zero to satisfy the Object equals/hashCode contract. This class is mutable and not meant to be used as a hash key.

Overrides:
hashCode in class DatabaseFileSystem
Returns:
always zero
See Also:
Object.hashCode()

getDataSource

protected final DataSource getDataSource()
                                  throws Exception

Specified by:
getDataSource in class DatabaseFileSystem
Returns:
Throws:
Exception


Copyright © 2004-2010 The Apache Software Foundation. All Rights Reserved.