Class MemoryArchive
- java.lang.Object
-
- org.apache.jackrabbit.vault.fs.io.MemoryArchive
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Archive
,InputStreamPump.Pump
public class MemoryArchive extends Object implements InputStreamPump.Pump
Implements anInputStreamPump.Pump
that extracts the relevant parts from the input stream into memory. The memory archive is initialized via therun(InputStream)
being called fromInputStreamPump
.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.jackrabbit.vault.fs.io.Archive
Archive.Entry
-
-
Field Summary
Fields Modifier and Type Field Description protected static String
PROPERTY_ENABLE_STACK_TRACES
protected static boolean
SHOULD_CREATE_STACK_TRACE
Determines whether stack traces should be created for each register call ofCloseWatcher
.
-
Constructor Summary
Constructors Constructor Description MemoryArchive(boolean metaOnly)
Creates new memory archive.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Closes the archive.Archive.Entry
getEntry(String path)
Returns the entry specified by path.VaultInputSource
getInputSource(Archive.Entry entry)
Returns an input source for the given entry.Archive.Entry
getJcrRoot()
Returns the entry that specifies the "jcr_root".MetaInf
getMetaInf()
Returns the meta inf.Archive.Entry
getRoot()
Returns the root entry.Archive
getSubArchive(String rootPath, boolean asJcrRoot)
Returns a sub archive that is rooted at the given path.void
open(boolean strict)
Opens the archive.InputStream
openInputStream(Archive.Entry entry)
Opens an input stream for the given entry.void
run(InputStream in)
The specified stream remains open after this method returns.
-
-
-
Field Detail
-
PROPERTY_ENABLE_STACK_TRACES
protected static final String PROPERTY_ENABLE_STACK_TRACES
- See Also:
- Constant Field Values
-
SHOULD_CREATE_STACK_TRACE
protected static final boolean SHOULD_CREATE_STACK_TRACE
Determines 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 Detail
-
MemoryArchive
public MemoryArchive(boolean metaOnly) throws IOException
Creates new memory archive.- Parameters:
metaOnly
- iftrue
only the meta info content is cached.- Throws:
IOException
- if an I/O error occurrs
-
-
Method Detail
-
run
public void run(InputStream in) throws Exception
The specified stream remains open after this method returns.
- Specified by:
run
in interfaceInputStreamPump.Pump
- Throws:
Exception
-
open
public void open(boolean strict) throws IOException
Opens the archive.- Specified by:
open
in interfaceArchive
- Parameters:
strict
- iftrue
open will fail if there was an internal error while parsing meta data.- Throws:
IOException
- if an error occurs
-
openInputStream
public InputStream openInputStream(Archive.Entry entry) throws IOException
Opens an input stream for the given entry. Requires a previous call toArchive.open(boolean)
.- Specified by:
openInputStream
in interfaceArchive
- Parameters:
entry
- the entry- Returns:
- the input stream or
null
if the entry can't be read - Throws:
IOException
- if an error occurs
-
getInputSource
public VaultInputSource getInputSource(Archive.Entry entry) throws IOException
Returns an input source for the given entry. Requires a previous call toArchive.open(boolean)
.- Specified by:
getInputSource
in interfaceArchive
- Parameters:
entry
- the entry- Returns:
- the input source or
null
if the entry can't be read - Throws:
IOException
- if an error occurs
-
getRoot
public Archive.Entry getRoot() throws IOException
Returns the root entry. Requires a previous call toArchive.open(boolean)
.- Specified by:
getRoot
in interfaceArchive
- Returns:
- the root entry.
- Throws:
IOException
- if an error occurs
-
getMetaInf
public MetaInf 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:
getMetaInf
in interfaceArchive
- Returns:
- the meta inf.
-
close
public void close()
Closes the archive. Only necessary to call if the archive has been opened.
-
getEntry
public Archive.Entry getEntry(String path) throws IOException
Description copied from interface:Archive
Returns the entry specified by path. Requires a previous call toArchive.open(boolean)
.- Specified by:
getEntry
in interfaceArchive
- Parameters:
path
- the path- Returns:
- the entry or
null
if not found. - Throws:
IOException
- if an error occurs
-
getJcrRoot
public Archive.Entry getJcrRoot() throws IOException
Description copied from interface:Archive
Returns the entry that specifies the "jcr_root". if no such entry exists,null
is returned. Requires a previous call toArchive.open(boolean)
.- Specified by:
getJcrRoot
in interfaceArchive
- Returns:
- the jcr_root entry or
null
- Throws:
IOException
- if an error occurs
-
getSubArchive
public Archive getSubArchive(String rootPath, boolean asJcrRoot) throws IOException
Description copied from interface:Archive
Returns 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:
getSubArchive
in interfaceArchive
- Parameters:
rootPath
- root pathasJcrRoot
- iftrue
the given root is the jcr_root- Returns:
- the archive or
null
if entry specified by root does not exist. - Throws:
IOException
- if an error occurs
-
-