Interface SubsystemResolverResolution

  • All Known Implementing Classes:
    SubsystemResolver

    public interface SubsystemResolverResolution
    Public API of SubsystemResolver - for the purpose of documentation and categorization to public and internal methods. This interface groups methods related to resolution of subsystems.
    • Method Detail

      • prepare

        void prepare​(Map<String,​List<Feature>> allFeatures,
                     Map<String,​Set<String>> requirements,
                     Map<String,​Set<org.osgi.framework.wiring.BundleRevision>> system)
              throws Exception
        Prepares the resolver by configuring Subsystem hierarchy. The input is a mapping from region names to a set of logical requirements. The effect is:
        • A tree of subsystems where the root subsystem represents FeaturesService.ROOT_REGION with regions like root/app1 represented as child subsystems.
        • A subsystem is created for each feature requirement and added as child and requirement for given region's subsystem
        • Each subsystem for a feature has optional requirements for conditional features
        Parameters:
        allFeatures - all currently available features partitioned by name.
        requirements - desired mapping from regions to logical requirements.
        system - mapping from regions to unmanaged BundleRevisions.
        Throws:
        Exception
      • collectPrerequisites

        Set<String> collectPrerequisites()
        Before attempting resolution, we can collect features' prerequisites. If there are any, caller may decide to deploy another set of requirements before the initial ones. Prerequisites allow to install for example wrap feature before installing a feature with bundle using wrap: protocol.
        Returns:
        The collected prerequisites.