diff --git a/core/src/main/java/org/jboss/osgi/framework/internal/BundleManagerPlugin.java b/core/src/main/java/org/jboss/osgi/framework/internal/BundleManagerPlugin.java index 88105d7..d1929b8 100644 --- a/core/src/main/java/org/jboss/osgi/framework/internal/BundleManagerPlugin.java +++ b/core/src/main/java/org/jboss/osgi/framework/internal/BundleManagerPlugin.java @@ -361,7 +361,7 @@ HostBundleResolvedService.addService(serviceTarget, getFrameworkState(), serviceName.getParent()); HostBundleActiveService.addService(serviceTarget, getFrameworkState(), serviceName.getParent()); } else { - serviceName = FragmentBundleInstalledService.addService(serviceTarget, getFrameworkState(), deployment); + serviceName = FragmentBundleInstalledService.addService(serviceTarget, getFrameworkState(), deployment, listener); FragmentBundleResolvedService.addService(serviceTarget, getFrameworkState(), serviceName.getParent()); } } catch (RuntimeException rte) { diff --git a/core/src/main/java/org/jboss/osgi/framework/internal/FragmentBundleInstalledService.java b/core/src/main/java/org/jboss/osgi/framework/internal/FragmentBundleInstalledService.java index 8c62067..8bb0458 100644 --- a/core/src/main/java/org/jboss/osgi/framework/internal/FragmentBundleInstalledService.java +++ b/core/src/main/java/org/jboss/osgi/framework/internal/FragmentBundleInstalledService.java @@ -22,9 +22,11 @@ package org.jboss.osgi.framework.internal; import org.jboss.msc.service.ServiceBuilder; +import org.jboss.msc.service.ServiceListener; import org.jboss.msc.service.ServiceName; import org.jboss.msc.service.ServiceTarget; import org.jboss.osgi.deployment.deployer.Deployment; +import org.osgi.framework.Bundle; import org.osgi.framework.BundleException; /** @@ -35,11 +37,14 @@ */ final class FragmentBundleInstalledService extends UserBundleInstalledService { - static ServiceName addService(ServiceTarget serviceTarget, FrameworkState frameworkState, Deployment dep) throws BundleException { + static ServiceName addService(ServiceTarget serviceTarget, FrameworkState frameworkState, Deployment dep, ServiceListener listener) throws BundleException { ServiceName serviceName = BundleManagerPlugin.getServiceName(dep).append("INSTALLED"); FragmentBundleInstalledService service = new FragmentBundleInstalledService(frameworkState, dep); ServiceBuilder builder = serviceTarget.addService(serviceName, service); builder.addDependency(InternalServices.FRAMEWORK_CORE_SERVICES); + if (listener != null) { + builder.addListener(listener); + } builder.install(); return serviceName; }