Class FeaturesServiceImpl
- java.lang.Object
-
- org.apache.karaf.features.internal.service.FeaturesServiceImpl
-
- All Implemented Interfaces:
FeaturesService
,SubsystemResolverCallback
,Deployer.DeployCallback
public class FeaturesServiceImpl extends Object implements FeaturesService, Deployer.DeployCallback
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.karaf.features.FeaturesService
FeaturesService.Option, FeaturesService.ServiceRequirementsBehavior, FeaturesService.SnapshotUpdateBehavior
-
-
Field Summary
-
Fields inherited from interface org.apache.karaf.features.FeaturesService
DEFAULT_AUTO_REFRESH, DEFAULT_BUNDLE_UPDATE_RANGE, DEFAULT_CONFIG_CFG_STORE, DEFAULT_DIGRAPH_MBEAN, DEFAULT_DOWNLOAD_THREADS, DEFAULT_FEATURE_RESOLUTION_RANGE, DEFAULT_REPOSITORY_EXPIRATION, DEFAULT_SCHEDULE_DELAY, DEFAULT_SCHEDULE_MAX_RUN, DEFAULT_UPDATE_SNAPSHOTS, ROOT_REGION, UPDATEABLE_URIS
-
-
Constructor Summary
Constructors Constructor Description FeaturesServiceImpl(StateStorage storage, FeatureRepoFinder featureFinder, org.osgi.service.cm.ConfigurationAdmin configurationAdmin, org.osgi.service.resolver.Resolver resolver, BundleInstallSupport installSupport, org.osgi.service.repository.Repository globalRepository, FeaturesServiceConfig cfg)
-
Method Summary
-
-
-
Constructor Detail
-
FeaturesServiceImpl
public FeaturesServiceImpl(StateStorage storage, FeatureRepoFinder featureFinder, org.osgi.service.cm.ConfigurationAdmin configurationAdmin, org.osgi.service.resolver.Resolver resolver, BundleInstallSupport installSupport, org.osgi.service.repository.Repository globalRepository, FeaturesServiceConfig cfg)
-
-
Method Detail
-
stop
public void stop()
-
loadState
protected void loadState()
-
saveState
protected void saveState()
-
registerListener
public void registerListener(FeaturesListener listener)
- Specified by:
registerListener
in interfaceFeaturesService
-
unregisterListener
public void unregisterListener(FeaturesListener listener)
- Specified by:
unregisterListener
in interfaceFeaturesService
-
registerListener
public void registerListener(DeploymentListener listener)
- Specified by:
registerListener
in interfaceFeaturesService
-
unregisterListener
public void unregisterListener(DeploymentListener listener)
- Specified by:
unregisterListener
in interfaceFeaturesService
-
callListeners
public void callListeners(FeatureEvent event)
- Specified by:
callListeners
in interfaceDeployer.DeployCallback
-
callListeners
public void callListeners(DeploymentEvent event)
- Specified by:
callListeners
in interfaceDeployer.DeployCallback
-
callListeners
protected void callListeners(RepositoryEvent event)
-
getRepositoryUriFor
public URI getRepositoryUriFor(String name, String version)
- Specified by:
getRepositoryUriFor
in interfaceFeaturesService
-
getRepositoryNames
public String[] getRepositoryNames()
- Specified by:
getRepositoryNames
in interfaceFeaturesService
-
repositoryProvidedFeatures
public Feature[] repositoryProvidedFeatures(URI uri) throws Exception
- Specified by:
repositoryProvidedFeatures
in interfaceFeaturesService
- Throws:
Exception
-
validateRepository
public void validateRepository(URI uri) throws Exception
Description copied from interface:FeaturesService
Validate repository contents.- Specified by:
validateRepository
in interfaceFeaturesService
- Parameters:
uri
- Repository uri.- Throws:
Exception
- When validation fails.
-
isRepositoryUriBlacklisted
public boolean isRepositoryUriBlacklisted(URI uri)
- Specified by:
isRepositoryUriBlacklisted
in interfaceFeaturesService
-
addRepository
public void addRepository(URI uri) throws Exception
- Specified by:
addRepository
in interfaceFeaturesService
- Throws:
Exception
-
addRepository
public void addRepository(URI uri, boolean install) throws Exception
- Specified by:
addRepository
in interfaceFeaturesService
- Throws:
Exception
-
removeRepository
public void removeRepository(URI uri) throws Exception
- Specified by:
removeRepository
in interfaceFeaturesService
- Throws:
Exception
-
removeRepository
public void removeRepository(URI uri, boolean uninstall) throws Exception
- Specified by:
removeRepository
in interfaceFeaturesService
- Throws:
Exception
-
restoreRepository
public void restoreRepository(URI uri) throws Exception
- Specified by:
restoreRepository
in interfaceFeaturesService
- Throws:
Exception
-
refreshRepository
public void refreshRepository(URI uri) throws Exception
- Specified by:
refreshRepository
in interfaceFeaturesService
- Throws:
Exception
-
refreshRepositories
public void refreshRepositories(Set<URI> uris) throws Exception
- Specified by:
refreshRepositories
in interfaceFeaturesService
- Throws:
Exception
-
listRepositories
public Repository[] listRepositories() throws Exception
- Specified by:
listRepositories
in interfaceFeaturesService
- Throws:
Exception
-
listRequiredRepositories
public Repository[] listRequiredRepositories() throws Exception
- Specified by:
listRequiredRepositories
in interfaceFeaturesService
- Throws:
Exception
-
getRepository
public Repository getRepository(String name) throws Exception
- Specified by:
getRepository
in interfaceFeaturesService
- Throws:
Exception
-
getRepository
public Repository getRepository(URI uri) throws Exception
- Specified by:
getRepository
in interfaceFeaturesService
- Throws:
Exception
-
getRepositoryName
public String getRepositoryName(URI uri) throws Exception
- Specified by:
getRepositoryName
in interfaceFeaturesService
- Throws:
Exception
-
getFeature
public Feature getFeature(String name) throws Exception
- Specified by:
getFeature
in interfaceFeaturesService
- Throws:
Exception
-
getFeature
public Feature getFeature(String name, String version) throws Exception
- Specified by:
getFeature
in interfaceFeaturesService
- Throws:
Exception
-
getFeatures
public Feature[] getFeatures(String nameOrId) throws Exception
- Specified by:
getFeatures
in interfaceFeaturesService
- Throws:
Exception
-
getFeatures
public Feature[] getFeatures(String name, String version) throws Exception
- Specified by:
getFeatures
in interfaceFeaturesService
- Throws:
Exception
-
getFeatureCache
protected Map<String,Map<String,Feature>> getFeatureCache() throws Exception
Should not be called while holding a lock.- Returns:
- map from feature name to map from feature version to Feature
- Throws:
Exception
-
listFeatures
public Feature[] listFeatures() throws Exception
- Specified by:
listFeatures
in interfaceFeaturesService
- Throws:
Exception
-
listInstalledFeatures
public Feature[] listInstalledFeatures() throws Exception
- Specified by:
listInstalledFeatures
in interfaceFeaturesService
- Throws:
Exception
-
listRequiredFeatures
public Feature[] listRequiredFeatures() throws Exception
- Specified by:
listRequiredFeatures
in interfaceFeaturesService
- Throws:
Exception
-
isInstalled
public boolean isInstalled(Feature f)
- Specified by:
isInstalled
in interfaceFeaturesService
-
getState
public FeatureState getState(String featureId)
- Specified by:
getState
in interfaceFeaturesService
-
isRequired
public boolean isRequired(Feature f)
- Specified by:
isRequired
in interfaceFeaturesService
-
installFeature
public void installFeature(String name) throws Exception
- Specified by:
installFeature
in interfaceFeaturesService
- Throws:
Exception
-
installFeature
public void installFeature(String name, String version) throws Exception
- Specified by:
installFeature
in interfaceFeaturesService
- Throws:
Exception
-
installFeature
public void installFeature(String name, EnumSet<FeaturesService.Option> options) throws Exception
- Specified by:
installFeature
in interfaceFeaturesService
- Throws:
Exception
-
installFeature
public void installFeature(String name, String version, EnumSet<FeaturesService.Option> options) throws Exception
- Specified by:
installFeature
in interfaceFeaturesService
- Throws:
Exception
-
installFeature
public void installFeature(Feature feature, EnumSet<FeaturesService.Option> options) throws Exception
- Specified by:
installFeature
in interfaceFeaturesService
- Throws:
Exception
-
installFeatures
public void installFeatures(Set<String> features, EnumSet<FeaturesService.Option> options) throws Exception
- Specified by:
installFeatures
in interfaceFeaturesService
- Throws:
Exception
-
uninstallFeature
public void uninstallFeature(String name, String version) throws Exception
- Specified by:
uninstallFeature
in interfaceFeaturesService
- Throws:
Exception
-
uninstallFeature
public void uninstallFeature(String name, String version, EnumSet<FeaturesService.Option> options) throws Exception
- Specified by:
uninstallFeature
in interfaceFeaturesService
- Throws:
Exception
-
uninstallFeature
public void uninstallFeature(String name) throws Exception
- Specified by:
uninstallFeature
in interfaceFeaturesService
- Throws:
Exception
-
uninstallFeature
public void uninstallFeature(String name, EnumSet<FeaturesService.Option> options) throws Exception
- Specified by:
uninstallFeature
in interfaceFeaturesService
- Throws:
Exception
-
uninstallFeatures
public void uninstallFeatures(Set<String> features, EnumSet<FeaturesService.Option> options) throws Exception
- Specified by:
uninstallFeatures
in interfaceFeaturesService
- Throws:
Exception
-
setResolutionOutputFile
public void setResolutionOutputFile(String outputFile)
- Specified by:
setResolutionOutputFile
in interfaceFeaturesService
-
installFeatures
public void installFeatures(Set<String> featuresIn, String region, EnumSet<FeaturesService.Option> options) throws Exception
- Specified by:
installFeatures
in interfaceFeaturesService
- Throws:
Exception
-
uninstallFeatures
public void uninstallFeatures(Set<String> featuresIn, String region, EnumSet<FeaturesService.Option> options) throws Exception
- Specified by:
uninstallFeatures
in interfaceFeaturesService
- Throws:
Exception
-
updateFeaturesState
public void updateFeaturesState(Map<String,Map<String,FeatureState>> stateChanges, EnumSet<FeaturesService.Option> options) throws Exception
- Specified by:
updateFeaturesState
in interfaceFeaturesService
- Throws:
Exception
-
addRequirements
public void addRequirements(Map<String,Set<String>> requirements, EnumSet<FeaturesService.Option> options) throws Exception
- Specified by:
addRequirements
in interfaceFeaturesService
- Throws:
Exception
-
removeRequirements
public void removeRequirements(Map<String,Set<String>> requirements, EnumSet<FeaturesService.Option> options) throws Exception
- Specified by:
removeRequirements
in interfaceFeaturesService
- Throws:
Exception
-
updateReposAndRequirements
public void updateReposAndRequirements(Set<URI> repos, Map<String,Set<String>> requirements, EnumSet<FeaturesService.Option> options) throws Exception
- Specified by:
updateReposAndRequirements
in interfaceFeaturesService
- Throws:
Exception
-
createRepository
public Repository createRepository(URI uri) throws Exception
- Specified by:
createRepository
in interfaceFeaturesService
- Throws:
Exception
-
listRequirements
public Map<String,Set<String>> listRequirements()
- Specified by:
listRequirements
in interfaceFeaturesService
-
createDownloadManager
protected DownloadManager createDownloadManager() throws IOException
- Throws:
IOException
-
print
public void print(String message, boolean verbose)
- Specified by:
print
in interfaceDeployer.DeployCallback
-
saveState
public void saveState(State state)
- Specified by:
saveState
in interfaceDeployer.DeployCallback
-
persistResolveRequest
public void persistResolveRequest(Deployer.DeploymentRequest request) throws IOException
- Specified by:
persistResolveRequest
in interfaceDeployer.DeployCallback
- Throws:
IOException
-
refreshPackages
public void refreshPackages(Collection<org.osgi.framework.Bundle> bundles) throws InterruptedException
- Specified by:
refreshPackages
in interfaceDeployer.DeployCallback
- Throws:
InterruptedException
-
installBundle
public org.osgi.framework.Bundle installBundle(String region, String uri, InputStream is) throws org.osgi.framework.BundleException
- Specified by:
installBundle
in interfaceDeployer.DeployCallback
- Throws:
org.osgi.framework.BundleException
-
updateBundle
public void updateBundle(org.osgi.framework.Bundle bundle, String uri, InputStream is) throws org.osgi.framework.BundleException
- Specified by:
updateBundle
in interfaceDeployer.DeployCallback
- Throws:
org.osgi.framework.BundleException
-
uninstall
public void uninstall(org.osgi.framework.Bundle bundle) throws org.osgi.framework.BundleException
- Specified by:
uninstall
in interfaceDeployer.DeployCallback
- Throws:
org.osgi.framework.BundleException
-
startBundle
public void startBundle(org.osgi.framework.Bundle bundle) throws org.osgi.framework.BundleException
- Specified by:
startBundle
in interfaceDeployer.DeployCallback
- Throws:
org.osgi.framework.BundleException
-
stopBundle
public void stopBundle(org.osgi.framework.Bundle bundle, int options) throws org.osgi.framework.BundleException
- Specified by:
stopBundle
in interfaceDeployer.DeployCallback
- Throws:
org.osgi.framework.BundleException
-
setBundleStartLevel
public void setBundleStartLevel(org.osgi.framework.Bundle bundle, int startLevel)
- Specified by:
setBundleStartLevel
in interfaceDeployer.DeployCallback
-
resolveBundles
public void resolveBundles(Set<org.osgi.framework.Bundle> bundles, Map<org.osgi.resource.Resource,List<org.osgi.resource.Wire>> wiring, Map<org.osgi.resource.Resource,org.osgi.framework.Bundle> resToBnd)
- Specified by:
resolveBundles
in interfaceDeployer.DeployCallback
-
replaceDigraph
public void replaceDigraph(Map<String,Map<String,Map<String,Set<String>>>> policies, Map<String,Set<Long>> bundles) throws org.osgi.framework.BundleException, org.osgi.framework.InvalidSyntaxException
- Specified by:
replaceDigraph
in interfaceDeployer.DeployCallback
- Throws:
org.osgi.framework.BundleException
org.osgi.framework.InvalidSyntaxException
-
installConfigs
public void installConfigs(Feature feature) throws IOException, org.osgi.framework.InvalidSyntaxException
- Specified by:
installConfigs
in interfaceDeployer.DeployCallback
- Throws:
IOException
org.osgi.framework.InvalidSyntaxException
-
deleteConfigs
public void deleteConfigs(Feature feature) throws IOException, org.osgi.framework.InvalidSyntaxException
- Specified by:
deleteConfigs
in interfaceDeployer.DeployCallback
- Throws:
IOException
org.osgi.framework.InvalidSyntaxException
-
installLibraries
public void installLibraries(Feature feature) throws IOException
- Specified by:
installLibraries
in interfaceDeployer.DeployCallback
- Throws:
IOException
-
bundleBlacklisted
public void bundleBlacklisted(BundleInfo bundleInfo)
Description copied from interface:SubsystemResolverCallback
Notification aboutbundle
being blacklisted- Specified by:
bundleBlacklisted
in interfaceSubsystemResolverCallback
-
getFeatureXml
public String getFeatureXml(Feature feature)
- Specified by:
getFeatureXml
in interfaceFeaturesService
-
refreshFeatures
public void refreshFeatures(EnumSet<FeaturesService.Option> options) throws Exception
- Specified by:
refreshFeatures
in interfaceFeaturesService
- Throws:
Exception
-
-