Interface ConnectContent
ConnectContent
provides a Framework
instance access to the
content of a ConnectModule
.
A framework may open
and close
the content
for a ConnectModule
multiple times while the ConnectContent
is in use by the framework. The framework must close the
ConnectContent
once the ConnectContent
is no longer used as
the content of a current bundle revision or an in use bundle revision.
An entry in a ConnectContent
is identified by a path name that is a
solidus ('/' /
) separated path. A ConnectContent
may treat directories as entries. A directory entry path name will end with a
solidus. A directory entry may be located using a path name that omits the
trailing solidus.
- See Also:
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic interface
Represents the entry of aConnectContent
. -
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
Closes thisConnectContent
.Returns a class loader for thisConnectContent
.Returns the entry names available in thisConnectContent
.Returns theConnectContent.ConnectEntry
for the specified path name in this content.Returns the Manifest headers and values of thisConnectContent
.void
open()
Opens thisConnectContent
.
-
Field Details
-
TAG_OSGI_CONNECT
Theosgi.identity
tags
attribute value used by the framework to tag connect bundle revisions.- See Also:
-
-
Method Details
-
getHeaders
Returns the Manifest headers and values of thisConnectContent
.- Returns:
- An
Optional
containing the Manifest headers and values for thisConnectContent
, or an emptyOptional
if the framework should handle parsing the Manifest of the content itself. - Throws:
IllegalStateException
- If thisConnectContent
has been closed.
-
getEntries
Returns the entry names available in thisConnectContent
.- Returns:
- An
Iterable
which can supply the available entry names. - Throws:
IOException
- If an error occurs reading thisConnectContent
.IllegalStateException
- If thisConnectContent
has been closed.
-
getEntry
Returns theConnectContent.ConnectEntry
for the specified path name in this content.The
empty
value is returned if an entry with the specified path name does not exist. The path must not start with a "/" and is relative to the root of this content. A connect entry for a directory will have a path name that ends with a slash ('/').- Parameters:
path
- The path name of the entry.- Returns:
- An
Optional
containing theConnectContent.ConnectEntry
for the specified path, or an emptyOptional
if no entry for specified path can be found. - Throws:
IllegalStateException
- If thisConnectContent
has been closed.
-
getClassLoader
Optional<ClassLoader> getClassLoader()Returns a class loader for thisConnectContent
.This method is called by the framework for
resolved
bundles only and will be called at most once while a bundle is resolved. If a bundle associated with aConnectModule
is refreshed and resolved again, the framework will ask theConnectContent
for the class loader again. This allows for aConnectContent
to reuse or create a new class loader each time the bundle revision is resolved.- Returns:
- An
Optional
containing the class loader for thisConnectContent
, or an emptyOptional
if framework should handle creating a class loader for the bundle revision associated with thisConnectContent
. - Throws:
IllegalStateException
- If thisConnectContent
has been closed.
-
open
Opens thisConnectContent
.The framework will open the content when it needs to access the content for a bundle revision associated with this
ConnectContent
. The framework may defer calling this method until requests to access the bundle revision content are made.- Throws:
IOException
- If an error occurred opening thisConnectContent
.
-
close
Closes thisConnectContent
.- Throws:
IOException
- If an error occurred closing thisConnectContent
.
-