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
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceRepresents the entry of aConnectContent. -
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Closes thisConnectContent.Returns a class loader for thisConnectContent.Returns the entry names available in thisConnectContent.Returns theConnectContent.ConnectEntryfor the specified path name in this content.Returns the Manifest headers and values of thisConnectContent.voidopen()Opens thisConnectContent.
-
Field Details
-
TAG_OSGI_CONNECT
Theosgi.identitytagsattribute 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
Optionalcontaining the Manifest headers and values for thisConnectContent, or an emptyOptionalif the framework should handle parsing the Manifest of the content itself. - Throws:
IllegalStateException- If thisConnectContenthas been closed.
-
getEntries
Returns the entry names available in thisConnectContent.- Returns:
- An
Iterablewhich can supply the available entry names. - Throws:
IOException- If an error occurs reading thisConnectContent.IllegalStateException- If thisConnectContenthas been closed.
-
getEntry
Returns theConnectContent.ConnectEntryfor the specified path name in this content.The
emptyvalue 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
Optionalcontaining theConnectContent.ConnectEntryfor the specified path, or an emptyOptionalif no entry for specified path can be found. - Throws:
IllegalStateException- If thisConnectContenthas been closed.
-
getClassLoader
Optional<ClassLoader> getClassLoader()Returns a class loader for thisConnectContent.This method is called by the framework for
resolvedbundles only and will be called at most once while a bundle is resolved. If a bundle associated with aConnectModuleis refreshed and resolved again, the framework will ask theConnectContentfor the class loader again. This allows for aConnectContentto reuse or create a new class loader each time the bundle revision is resolved.- Returns:
- An
Optionalcontaining the class loader for thisConnectContent, or an emptyOptionalif framework should handle creating a class loader for the bundle revision associated with thisConnectContent. - Throws:
IllegalStateException- If thisConnectContenthas 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.
-