Class MemoryArchive
java.lang.Object
org.apache.jackrabbit.vault.fs.io.MemoryArchive
- All Implemented Interfaces:
Closeable,AutoCloseable,Archive,InputStreamPump.Pump
Implements an
InputStreamPump.Pump that extracts the relevant parts from the input stream into memory.
The memory archive is initialized via the run(InputStream) being called from InputStreamPump.-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.jackrabbit.vault.fs.io.Archive
Archive.Entry -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final Stringprotected static final booleanDetermines whether stack traces should be created for each register call ofCloseWatcher. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Closes the archive.Returns the entry specified by path.getInputSource(Archive.Entry entry) Returns an input source for the given entry.Returns the entry that specifies the "jcr_root". if no such entry exists,nullis returned.Returns the meta inf.getRoot()Returns the root entry.getSubArchive(String rootPath, boolean asJcrRoot) Returns a sub archive that is rooted at the given path.voidopen(boolean strict) Opens the archive.openInputStream(Archive.Entry entry) Opens an input stream for the given entry.voidrun(InputStream in) The specified stream remains open after this method returns.
-
Field Details
-
PROPERTY_ENABLE_STACK_TRACES
- See Also:
-
SHOULD_CREATE_STACK_TRACE
protected static final boolean SHOULD_CREATE_STACK_TRACEDetermines whether stack traces should be created for each register call ofCloseWatcher. This is false by default. Enable via system or OSGi framework propertyvault.enableStackTraces.
-
-
Constructor Details
-
MemoryArchive
Creates new memory archive.- Parameters:
metaOnly- iftrueonly the meta info content is cached.- Throws:
IOException- if an I/O error occurrs
-
-
Method Details
-
run
The specified stream remains open after this method returns.
- Specified by:
runin interfaceInputStreamPump.Pump- Throws:
Exception
-
open
Opens the archive.- Specified by:
openin interfaceArchive- Parameters:
strict- iftrueopen will fail if there was an internal error while parsing meta data.- Throws:
IOException- if an error occurs
-
openInputStream
Opens an input stream for the given entry. Requires a previous call toArchive.open(boolean).- Specified by:
openInputStreamin interfaceArchive- Parameters:
entry- the entry- Returns:
- the input stream or
nullif the entry can't be read - Throws:
IOException- if an error occurs
-
getInputSource
Returns an input source for the given entry. Requires a previous call toArchive.open(boolean).- Specified by:
getInputSourcein interfaceArchive- Parameters:
entry- the entry- Returns:
- the input source or
nullif the entry can't be read - Throws:
IOException- if an error occurs
-
getRoot
Returns the root entry. Requires a previous call toArchive.open(boolean).- Specified by:
getRootin interfaceArchive- Returns:
- the root entry.
- Throws:
IOException- if an error occurs
-
getMetaInf
Returns the meta inf. If the archive provides no specific meta data, a default, empty meta inf is returned. Requires a previous call toArchive.open(boolean).- Specified by:
getMetaInfin interfaceArchive- Returns:
- the meta inf.
-
close
public void close()Closes the archive. Only necessary to call if the archive has been opened. -
getEntry
Description copied from interface:ArchiveReturns the entry specified by path. Requires a previous call toArchive.open(boolean).- Specified by:
getEntryin interfaceArchive- Parameters:
path- the path- Returns:
- the entry or
nullif not found. - Throws:
IOException- if an error occurs
-
getJcrRoot
Description copied from interface:ArchiveReturns the entry that specifies the "jcr_root". if no such entry exists,nullis returned. Requires a previous call toArchive.open(boolean).- Specified by:
getJcrRootin interfaceArchive- Returns:
- the jcr_root entry or
null - Throws:
IOException- if an error occurs
-
getSubArchive
Description copied from interface:ArchiveReturns a sub archive that is rooted at the given path. Note that sub archives currently can't have their own meta inf and are closed automatically if their container archive is closed. Requires a previous call toArchive.open(boolean).- Specified by:
getSubArchivein interfaceArchive- Parameters:
rootPath- root pathasJcrRoot- iftruethe given root is the jcr_root- Returns:
- the archive or
nullif entry specified by root does not exist. - Throws:
IOException- if an error occurs
-