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:
driver
: the FQN name of the JDBC driver classurl
: the database url of the form jdbc:subprotocol:subname
user
: the database userpassword
: the user's passwordschema
: type of schema to be used
(e.g. mysql
, mssql
, etc.); schemaObjectPrefix
: prefix to be prepended to schema objectsgetClass().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
.Modifier and Type | Field and Description |
---|---|
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
|
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
SEPARATOR, SEPARATOR_CHAR
Constructor and Description |
---|
DbFileSystem() |
Modifier and Type | Method and Description |
---|---|
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) |
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
protected String driver
protected String url
protected String user
protected String password
protected String dataSourceName
public void setConnectionFactory(ConnectionFactory connnectionFactory)
setConnectionFactory
in interface DatabaseAware
public String getUrl()
public void setUrl(String url)
public String getUser()
public void setUser(String user)
public String getPassword()
public void setPassword(String password)
public String getDriver()
public void setDriver(String driver)
public String getDataSourceName()
public void setDataSourceName(String dataSourceName)
public boolean equals(Object obj)
equals
in class DatabaseFileSystem
public int hashCode()
hashCode
in class DatabaseFileSystem
Object.hashCode()
protected final DataSource getDataSource() throws Exception
getDataSource
in class DatabaseFileSystem
Exception
Copyright © 2004–2021 The Apache Software Foundation. All rights reserved.