public Set < InstallLicense > getFeatureLicense ( Collection < String > featureIds , File fromDir , String toExtension , boolean offlineOnly , Locale locale ) throws InstallException { Set < InstallLicense > licenses = new HashSet < InstallLicense > ( ) ; ArrayList < InstallAsset > installAssets = new ArrayList < InstallAsset > ( ) ; ArrayList < String > unresolvedFeatures = new ArrayList < String > ( ) ; Collection < ESAAsset > autoFeatures = getResolveDirector ( ) . getAutoFeature ( fromDir , toExtension ) ; getResolveDirector ( ) . resolve ( featureIds , fromDir , toExtension , offlineOnly , installAssets , unresolvedFeatures ) ; if ( ! offlineOnly && ! unresolvedFeatures . isEmpty ( ) ) { log ( Level . FINEST , "getFeatureLicense() determined unresolved features: " + unresolvedFeatures . toString ( ) + " from " + fromDir . getAbsolutePath ( ) ) ; licenses = getFeatureLicense ( unresolvedFeatures , locale , null , null ) ; } if ( installAssets . isEmpty ( ) ) { return licenses ; } getResolveDirector ( ) . resolveAutoFeatures ( autoFeatures , installAssets ) ; Map < String , InstallLicenseImpl > licenseIds = new HashMap < String , InstallLicenseImpl > ( ) ; for ( InstallAsset installAsset : installAssets ) { if ( installAsset . isFeature ( ) ) { ESAAsset esa = ( ESAAsset ) installAsset ; if ( esa . isPublic ( ) ) { ExeInstallAction . incrementNumOfLocalFeatures ( ) ; } LicenseProvider lp = esa . getLicenseProvider ( locale ) ; String licenseId = esa . getLicenseId ( ) ; if ( licenseId != null && ! licenseId . isEmpty ( ) ) { InstallLicenseImpl ili = licenseIds . get ( licenseId ) ; if ( ili == null ) { ili = new InstallLicenseImpl ( licenseId , null , lp ) ; licenseIds . put ( licenseId , ili ) ; } ili . addFeature ( esa . getProvideFeature ( ) ) ; } } } licenses . addAll ( licenseIds . values ( ) ) ; return licenses ; }
Creates a set of install licenses for all features to be installed