Class RegionSupport


  • public class RegionSupport
    extends Object
    • Constructor Summary

      Constructors 
      Constructor Description
      RegionSupport​(org.apache.maven.plugin.logging.Log logger, boolean incrementalApis, boolean toggleApiOnly, Set<String> includeRegions, Set<String> excludeRegions)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      String calculateOmitDependenciesFlag​(org.apache.sling.feature.extension.apiregions.api.ApiRegion region, org.apache.felix.utils.manifest.Clause[] exportedPackageClauses, Set<org.apache.felix.utils.manifest.Clause> usedExportedPackagesPerRegion)
      Calculate whether the artifact can be omitted and a dependency can be used instead
      Set<String> computeAllUsedExportPackages​(org.apache.sling.feature.extension.apiregions.api.ApiRegions apiRegions, Set<String> enabledToggles, org.apache.felix.utils.manifest.Clause[] exportedPackages, org.apache.sling.feature.Artifact bundle)
      Compute exports based on all regions
      Set<org.apache.felix.utils.manifest.Clause> computeUsedExportPackagesPerRegion​(org.apache.sling.feature.extension.apiregions.api.ApiRegion apiRegion, org.apache.felix.utils.manifest.Clause[] exportedPackages, Set<String> allPackages)
      Compute exports based on a single region
      List<org.apache.sling.feature.extension.apiregions.api.ApiExport> getAllExports​(org.apache.sling.feature.extension.apiregions.api.ApiRegion region, Set<String> enabledToggles)  
      Set<org.apache.felix.utils.manifest.Clause> getAllPublicPackages​(ApisJarContext ctx, org.apache.sling.feature.Artifact artifact, File artifactFile)
      Get all packages for an artifact.
      org.apache.sling.feature.extension.apiregions.api.ApiRegions getApiRegions​(org.apache.sling.feature.Feature feature)
      Get the api regions for a feature If the feature does not have an api region an artificial global region is returned.
      org.apache.felix.utils.manifest.Clause[] getExportedPackages​(Manifest manifest)  
      Manifest getManifest​(org.apache.sling.feature.ArtifactId artifactId, File bundleFile)  
    • Constructor Detail

      • RegionSupport

        public RegionSupport​(org.apache.maven.plugin.logging.Log logger,
                             boolean incrementalApis,
                             boolean toggleApiOnly,
                             Set<String> includeRegions,
                             Set<String> excludeRegions)
    • Method Detail

      • getApiRegions

        public org.apache.sling.feature.extension.apiregions.api.ApiRegions getApiRegions​(org.apache.sling.feature.Feature feature)
                                                                                   throws org.apache.maven.plugin.MojoExecutionException
        Get the api regions for a feature If the feature does not have an api region an artificial global region is returned.
        Parameters:
        feature - The feature
        Returns:
        The api regions or null if the feature is wrongly configured or all regions are excluded
        Throws:
        org.apache.maven.plugin.MojoExecutionException - If an error occurs
      • getAllExports

        public List<org.apache.sling.feature.extension.apiregions.api.ApiExport> getAllExports​(org.apache.sling.feature.extension.apiregions.api.ApiRegion region,
                                                                                               Set<String> enabledToggles)
      • computeAllUsedExportPackages

        public Set<String> computeAllUsedExportPackages​(org.apache.sling.feature.extension.apiregions.api.ApiRegions apiRegions,
                                                        Set<String> enabledToggles,
                                                        org.apache.felix.utils.manifest.Clause[] exportedPackages,
                                                        org.apache.sling.feature.Artifact bundle)
                                                 throws org.apache.maven.plugin.MojoExecutionException
        Compute exports based on all regions
        Parameters:
        apiRegions - The API Regions to use
        enabledToggles - The enabled toggles
        exportedPackages - The exported packages
        bundle - The bundle
        Returns:
        Set of packages exported by this bundle and used in any region
        Throws:
        org.apache.maven.plugin.MojoExecutionException - when the calculation cannot be made
      • computeUsedExportPackagesPerRegion

        public Set<org.apache.felix.utils.manifest.Clause> computeUsedExportPackagesPerRegion​(org.apache.sling.feature.extension.apiregions.api.ApiRegion apiRegion,
                                                                                              org.apache.felix.utils.manifest.Clause[] exportedPackages,
                                                                                              Set<String> allPackages)
                                                                                       throws org.apache.maven.plugin.MojoExecutionException
        Compute exports based on a single region
        Parameters:
        apiRegion - The API Region to use
        exportedPackages - The exported packages
        allPackages - All the packages
        Returns:
        List of packages exported by this bundle and used in the region
        Throws:
        org.apache.maven.plugin.MojoExecutionException - When the computation cannot be done.
      • getExportedPackages

        public org.apache.felix.utils.manifest.Clause[] getExportedPackages​(Manifest manifest)
      • getManifest

        public Manifest getManifest​(org.apache.sling.feature.ArtifactId artifactId,
                                    File bundleFile)
                             throws org.apache.maven.plugin.MojoExecutionException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • getAllPublicPackages

        public Set<org.apache.felix.utils.manifest.Clause> getAllPublicPackages​(ApisJarContext ctx,
                                                                                org.apache.sling.feature.Artifact artifact,
                                                                                File artifactFile)
                                                                         throws org.apache.maven.plugin.MojoExecutionException
        Get all packages for an artifact. If the artifact is a bundle use the export header, otherwise scan contents
        Parameters:
        ctx - The generation context
        artifact - The artifact
        artifactFile - The file
        Returns:
        A set of clauses
        Throws:
        org.apache.maven.plugin.MojoExecutionException - If processing fails
      • calculateOmitDependenciesFlag

        public String calculateOmitDependenciesFlag​(org.apache.sling.feature.extension.apiregions.api.ApiRegion region,
                                                    org.apache.felix.utils.manifest.Clause[] exportedPackageClauses,
                                                    Set<org.apache.felix.utils.manifest.Clause> usedExportedPackagesPerRegion)
        Calculate whether the artifact can be omitted and a dependency can be used instead
        Parameters:
        region - The api region
        exportedPackageClauses - All exported packages
        usedExportedPackagesPerRegion - Used exported packages
        Returns:
        null if the artifact can be used as a dependency