Interface ConnectContent
-
@ConsumerType public interface ConnectContent
AConnectContentprovides aFrameworkinstance access to the content of aConnectModule.A framework may
openandclosethe content for aConnectModulemultiple times while theConnectContentis in use by the framework. The framework must close theConnectContentonce theConnectContentis no longer used as the content of a current bundle revision or an in use bundle revision.An entry in a
ConnectContentis identified by a path name that is a solidus ('/' /) separated path. AConnectContentmay 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:
BundleRevisions
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interfaceConnectContent.ConnectEntryRepresents the entry of aConnectContent.
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringTAG_OSGI_CONNECTTheosgi.identitytagsattribute value used by the framework to tag connect bundle revisions.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidclose()Closes thisConnectContent.java.util.Optional<java.lang.ClassLoader>getClassLoader()Returns a class loader for thisConnectContent.java.lang.Iterable<java.lang.String>getEntries()Returns the entry names available in thisConnectContent.java.util.Optional<ConnectContent.ConnectEntry>getEntry(java.lang.String path)Returns theConnectContent.ConnectEntryfor the specified path name in this content.java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>getHeaders()Returns the Manifest headers and values of thisConnectContent.voidopen()Opens thisConnectContent.
-
-
-
Field Detail
-
TAG_OSGI_CONNECT
static final java.lang.String TAG_OSGI_CONNECT
Theosgi.identitytagsattribute value used by the framework to tag connect bundle revisions.- See Also:
- Constant Field Values
-
-
Method Detail
-
getHeaders
java.util.Optional<java.util.Map<java.lang.String,java.lang.String>> 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:
java.lang.IllegalStateException- If thisConnectContenthas been closed.
-
getEntries
java.lang.Iterable<java.lang.String> getEntries() throws java.io.IOExceptionReturns the entry names available in thisConnectContent.- Returns:
- An
Iterablewhich can supply the available entry names. - Throws:
java.io.IOException- If an error occurs reading thisConnectContent.java.lang.IllegalStateException- If thisConnectContenthas been closed.
-
getEntry
java.util.Optional<ConnectContent.ConnectEntry> getEntry(java.lang.String path)
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:
java.lang.IllegalStateException- If thisConnectContenthas been closed.
-
getClassLoader
java.util.Optional<java.lang.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:
java.lang.IllegalStateException- If thisConnectContenthas been closed.
-
open
void open() throws java.io.IOException
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:
java.io.IOException- If an error occurred opening thisConnectContent.
-
close
void close() throws java.io.IOExceptionCloses thisConnectContent.- Throws:
java.io.IOException- If an error occurred closing thisConnectContent.
-
-