public class FileDataStore extends AbstractDataStore implements MultiDataStoreAware
<DataStore class="org.apache.jackrabbit.core.data.FileDataStore">
<param name="path" value="/data/datastore"/>
<param name="minRecordLength" value="1024"/>
</DataStore>
If the directory is not set, the directory <repository home>/repository/datastore is used.
A three level directory structure is used to avoid placing too many files in a single directory. The chosen structure is designed to scale up to billions of distinct records.
This implementation relies on the underlying file system to support
atomic O(1) move operations with Files.move(Path, Path, CopyOption...).
| Constructor and Description |
|---|
FileDataStore() |
| Modifier and Type | Method and Description |
|---|---|
DataRecord |
addRecord(java.io.InputStream input)
Creates a new data record.
|
void |
clearInUse()
Clear the in-use list.
|
void |
close()
Close the data store
|
int |
deleteAllOlderThan(long min)
Delete objects that have a modified date older than the specified date.
|
void |
deleteRecord(DataIdentifier identifier)
Deletes a single DataRecord based on the given identifier.
|
java.util.Iterator<DataIdentifier> |
getAllIdentifiers()
Get all identifiers.
|
int |
getMinRecordLength()
Get the minimum size of an object that should be stored in this data store.
|
java.lang.String |
getPath()
Get the name of the directory where this data store keeps the files.
|
DataRecord |
getRecordIfStored(DataIdentifier identifier)
Get a data record for the given identifier.
|
void |
init(java.lang.String homeDir)
Initialized the data store.
|
void |
setMinRecordLength(int minRecordLength)
Set the minimum object length.
|
void |
setPath(java.lang.String directoryName)
Set the name of the directory where this data store keeps the files.
|
void |
updateModifiedDateOnAccess(long before)
From now on, update the modified date of an object even when accessing it.
|
getRecord, getRecordFromReferencepublic void init(java.lang.String homeDir)
public DataRecord getRecordIfStored(DataIdentifier identifier) throws DataStoreException
getRecordIfStored in interface DataStoreidentifier - the identifierDataStoreException - if the data store could not be accessedpublic DataRecord addRecord(java.io.InputStream input) throws DataStoreException
AbstractDataStore.DIGEST message digest of the stream is calculated. If a
record with the same AbstractDataStore.DIGEST digest (and length) is found then it is
returned. Otherwise the temporary file is moved in place to become
the new data record that gets returned.addRecord in interface DataStoreinput - binary streamDataStoreException - if the record could not be createdpublic void updateModifiedDateOnAccess(long before)
DataStoreupdateModifiedDateOnAccess in interface DataStorebefore - - update the modified date to the current time if it is older than this valuepublic void deleteRecord(DataIdentifier identifier) throws DataStoreException
MultiDataStoreAwareMultiDataStore.MoveDataTask.deleteRecord in interface MultiDataStoreAwareidentifier - data identifierDataStoreException - if the data store could not be accessed, or if the given
identifier is invalidpublic int deleteAllOlderThan(long min)
DataStoredeleteAllOlderThan in interface DataStoremin - the minimum timepublic java.util.Iterator<DataIdentifier> getAllIdentifiers()
DataStoregetAllIdentifiers in interface DataStorepublic void clearInUse()
DataStoreclearInUse in interface DataStorepublic java.lang.String getPath()
public void setPath(java.lang.String directoryName)
directoryName - the path namepublic int getMinRecordLength()
DataStoregetMinRecordLength in interface DataStorepublic void setMinRecordLength(int minRecordLength)
minRecordLength - the lengthCopyright © 2010 - 2023 Adobe. All Rights Reserved