Interface ConnectContent


  • @ConsumerType
    public interface ConnectContent
    A 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:
    BundleRevisions
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Interface Description
      static interface  ConnectContent.ConnectEntry
      Represents the entry of a ConnectContent.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String TAG_OSGI_CONNECT
      The osgi.identity tags attribute value used by the framework to tag connect bundle revisions.
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void close()
      Closes this ConnectContent.
      java.util.Optional<java.lang.ClassLoader> getClassLoader()
      Returns a class loader for this ConnectContent.
      java.lang.Iterable<java.lang.String> getEntries()
      Returns the entry names available in this ConnectContent.
      java.util.Optional<ConnectContent.ConnectEntry> getEntry​(java.lang.String path)
      Returns the ConnectContent.ConnectEntry for 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 this ConnectContent.
      void open()
      Opens this ConnectContent.
    • Field Detail

      • TAG_OSGI_CONNECT

        static final java.lang.String TAG_OSGI_CONNECT
        The osgi.identity tags attribute 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 this ConnectContent.
        Returns:
        An Optional containing the Manifest headers and values for this ConnectContent, or an empty Optional if the framework should handle parsing the Manifest of the content itself.
        Throws:
        java.lang.IllegalStateException - If this ConnectContent has been closed.
      • getEntries

        java.lang.Iterable<java.lang.String> getEntries()
                                                 throws java.io.IOException
        Returns the entry names available in this ConnectContent.
        Returns:
        An Iterable which can supply the available entry names.
        Throws:
        java.io.IOException - If an error occurs reading this ConnectContent.
        java.lang.IllegalStateException - If this ConnectContent has been closed.
      • getEntry

        java.util.Optional<ConnectContent.ConnectEntry> getEntry​(java.lang.String path)
        Returns the ConnectContent.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 the ConnectContent.ConnectEntry for the specified path, or an empty Optional if no entry for specified path can be found.
        Throws:
        java.lang.IllegalStateException - If this ConnectContent has been closed.
      • getClassLoader

        java.util.Optional<java.lang.ClassLoader> getClassLoader()
        Returns a class loader for this ConnectContent.

        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 a ConnectModule is refreshed and resolved again, the framework will ask the ConnectContent for the class loader again. This allows for a ConnectContent to reuse or create a new class loader each time the bundle revision is resolved.

        Returns:
        An Optional containing the class loader for this ConnectContent, or an empty Optional if framework should handle creating a class loader for the bundle revision associated with this ConnectContent.
        Throws:
        java.lang.IllegalStateException - If this ConnectContent has been closed.
      • open

        void open()
           throws java.io.IOException
        Opens this ConnectContent.

        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 this ConnectContent.
      • close

        void close()
            throws java.io.IOException
        Closes this ConnectContent.
        Throws:
        java.io.IOException - If an error occurred closing this ConnectContent.