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

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

public class OracleFileSystem
extends DbFileSystem

OracleFileSystem is a JDBC-based FileSystem implementation for Jackrabbit that persists file system entries in an Oracle database.

It is configured through the following properties:

See also DbFileSystem.

The following is a fragment from a sample configuration:

   <FileSystem class="org.apache.jackrabbit.core.fs.db.OracleFileSystem">
       <param name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/>
       <param name="user" value="scott"/>
       <param name="password" value="tiger"/>
       <param name="schemaObjectPrefix" value="rep_"/>
       <param name="tablespace" value="user"/>
       <param name="indexTablespace" value="user"/>
  </FileSystem>
 


Field Summary
protected static String DEFAULT_TABLESPACE_CLAUSE
          The default tablespace clause used when tablespace or indexTablespace are not specified.
protected static String INDEX_TABLESPACE_VARIABLE
          Name of the replacement variable in the DDL for indexTablespace.
protected  String indexTablespace
          The Oracle tablespace to use for indexes
protected  String tablespace
          The Oracle tablespace to use for tables
protected static String TABLESPACE_VARIABLE
          Name of the replacement variable in the DDL for tablespace.
 
Fields inherited from class org.apache.jackrabbit.core.fs.db.DbFileSystem
dataSourceName, driver, password, url, 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
OracleFileSystem()
          Creates a new OracleFileSystem instance.
 
Method Summary
protected  void buildSQLStatements()
          Builds the SQL statements

Since Oracle treats emtpy strings and BLOBs as null values the SQL statements had to be adapated accordingly.

protected  CheckSchemaOperation createCheckSchemaOperation()
          This method is called from #init(PMContext) after the DatabaseFileSystem.createConnectionHelper(DataSource) method, and returns a default CheckSchemaOperation.
protected  ConnectionHelper createConnectionHelper(DataSource dataSrc)
          This method is called from the #init(PMContext) method of this class and returns a ConnectionHelper instance which is assigned to the conHelper field.
 String getIndexTablespace()
          Returns the configured Oracle tablespace for indexes.
 String getTablespace()
          Returns the configured Oracle tablespace for tables.
 void setIndexTablespace(String tablespaceName)
          Sets the Oracle tablespace for indexes.
 void setTablespace(String tablespaceName)
          Sets the Oracle tablespace for tables.
 
Methods inherited from class org.apache.jackrabbit.core.fs.db.DbFileSystem
equals, getDataSource, getDataSourceName, getDriver, getPassword, getUrl, getUser, hashCode, setConnectionFactory, setDataSourceName, setDriver, setPassword, setUrl, setUser
 
Methods inherited from class org.apache.jackrabbit.core.fs.db.DatabaseFileSystem
close, 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

DEFAULT_TABLESPACE_CLAUSE

protected static final String DEFAULT_TABLESPACE_CLAUSE
The default tablespace clause used when tablespace or indexTablespace are not specified.

See Also:
Constant Field Values

TABLESPACE_VARIABLE

protected static final String TABLESPACE_VARIABLE
Name of the replacement variable in the DDL for tablespace.

See Also:
Constant Field Values

INDEX_TABLESPACE_VARIABLE

protected static final String INDEX_TABLESPACE_VARIABLE
Name of the replacement variable in the DDL for indexTablespace.

See Also:
Constant Field Values

tablespace

protected String tablespace
The Oracle tablespace to use for tables


indexTablespace

protected String indexTablespace
The Oracle tablespace to use for indexes

Constructor Detail

OracleFileSystem

public OracleFileSystem()
Creates a new OracleFileSystem instance.

Method Detail

getTablespace

public String getTablespace()
Returns the configured Oracle tablespace for tables.

Returns:
the configured Oracle tablespace for tables.

setTablespace

public void setTablespace(String tablespaceName)
Sets the Oracle tablespace for tables.

Parameters:
tablespaceName - the Oracle tablespace for tables.

getIndexTablespace

public String getIndexTablespace()
Returns the configured Oracle tablespace for indexes.

Returns:
the configured Oracle tablespace for indexes.

setIndexTablespace

public void setIndexTablespace(String tablespaceName)
Sets the Oracle tablespace for indexes.

Parameters:
tablespace - the Oracle tablespace for indexes.

createConnectionHelper

protected ConnectionHelper createConnectionHelper(DataSource dataSrc)
                                           throws Exception
This method is called from the #init(PMContext) method of this class and returns a ConnectionHelper instance which is assigned to the conHelper field. Subclasses may override it to return a specialized connection helper.

Overrides:
createConnectionHelper in class DatabaseFileSystem
Parameters:
dataSrc - the DataSource of this persistence manager
Returns:
a ConnectionHelper
Throws:
Exception - on error

createCheckSchemaOperation

protected CheckSchemaOperation createCheckSchemaOperation()
This method is called from #init(PMContext) after the DatabaseFileSystem.createConnectionHelper(DataSource) method, and returns a default CheckSchemaOperation. Subclasses can overrride this implementation to get a customized implementation.

Overrides:
createCheckSchemaOperation in class DatabaseFileSystem
Returns:
a new CheckSchemaOperation instance

buildSQLStatements

protected void buildSQLStatements()
Builds the SQL statements

Since Oracle treats emtpy strings and BLOBs as null values the SQL statements had to be adapated accordingly. The following changes were necessary:

Overrides:
buildSQLStatements in class DatabaseFileSystem


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