Java 类org.osgi.framework.Bundle 实例源码

项目:gemini.blueprint    文件:DependencyTest.java   
private void startDependencyAsynch(final Bundle bundle) {
    System.out.println("starting dependency test bundle");
    Runnable runnable = new Runnable() {

        public void run() {
            try {
                bundle.start();
                System.out.println("started dependency test bundle");
            }
            catch (BundleException ex) {
                System.err.println("can't start bundle " + ex);
            }
        }
    };
    Thread thread = new Thread(runnable);
    thread.setDaemon(false);
    thread.setName("dependency test bundle");
    thread.start();
}
项目:gemini.blueprint    文件:OsgiUtils.java   
public static String getPlatformName(BundleContext bundleContext) {
    String vendorProperty = bundleContext.getProperty(Constants.FRAMEWORK_VENDOR);
    String frameworkVersion = bundleContext.getProperty(Constants.FRAMEWORK_VERSION);

    // get system bundle
    Bundle bundle = bundleContext.getBundle(0);
    String name = (String) bundle.getHeaders().get(Constants.BUNDLE_NAME);
    String version = (String) bundle.getHeaders().get(Constants.BUNDLE_VERSION);
    String symName = bundle.getSymbolicName();

    StringBuilder buf = new StringBuilder();
    buf.append(name);
    buf.append(" ");
    buf.append(symName);
    buf.append("|");
    buf.append(version);
    buf.append("{");
    buf.append(frameworkVersion);
    buf.append(" ");
    buf.append(vendorProperty);
    buf.append("}");

    return buf.toString();
}
项目:atlas    文件:BundleInstaller.java   
private Bundle installBundleFromApk(String bundleName) throws Exception{
    Bundle bundle = null;
    findBundleSource(bundleName);
    if(mTmpBundleSourceFile!=null){
        bundle = Framework.installNewBundle(bundleName,mTmpBundleSourceFile);
    }else if(mTmpBundleSourceInputStream!=null){
        bundle = Framework.installNewBundle(bundleName,mTmpBundleSourceInputStream);
    }else{
        IOException e = new IOException("can not find bundle source file");
        Map<String, Object> detail = new HashMap<>();
        detail.put("installBundleFromApk",bundleName);
        AtlasMonitor.getInstance().report(AtlasMonitor.CONTAINER_BUNDLE_SOURCE_MISMATCH, detail, e);
        throw e;
    }
    return bundle;
}
项目:neoscada    文件:DataNode.java   
public Object getDataAsObject ( final Bundle bundle, final Object defaultValue )
{
    try
    {
        final Object result = getDataAsObject ( bundle );
        if ( result == null )
        {
            return defaultValue;
        }
        else
        {
            return result;
        }
    }
    catch ( final Exception e )
    {
        return defaultValue;
    }
}
项目:scanning    文件:DetectorView.java   
protected Image getIcon(String fullPath) throws IOException {

        if (fullPath==null)      return defaultIcon;
        if ("".equals(fullPath)) return defaultIcon;

        try {
            if (iconMap.containsKey(fullPath)) return iconMap.get(fullPath);
            final String[] sa = fullPath.split("/");
            final Bundle bundle = Platform.getBundle(sa[0]);
            if (bundle==null) return defaultIcon;
            if (bundle!=null) {
                Image image = new Image(null, bundle.getResource(sa[1]+"/"+sa[2]).openStream());
                iconMap.put(fullPath, image);
            }
            return iconMap.get(fullPath);
        } catch (Exception ne) {
            logger.debug("Cannot get icon for "+fullPath, ne);
            return defaultIcon;
        }
    }
项目:flexfx    文件:DeployOsgiFxTest.java   
@Test
public void testInstallBundle() throws Exception {
    final String installCommand ="bundle:install mvn:"
            + OSGIFX_GROUP_ID + "/"
            + IT_DUMMY_BUNDLE_ARTIFACT_ID + "/"
            + PROJECT_VERSION;
    session.execute(installCommand);
    Bundle dummyBundle = null;
    for (Bundle bundle : bundleContext.getBundles())
    {
        if (bundle.getSymbolicName() != null && bundle.getSymbolicName().equals(OSGIFX_GROUP_ID + "." + IT_DUMMY_BUNDLE_ARTIFACT_ID))
        {
            dummyBundle = bundle;
            break;
        }
    }
    assertNotNull(dummyBundle);
}
项目:gemini.blueprint    文件:OsgiServiceStaticInterceptorTest.java   
public void testInvocationWhenServiceNA() throws Throwable {
    // service n/a
    ServiceReference reference = new MockServiceReference() {
        public Bundle getBundle() {
            return null;
        }
    };

    interceptor = new ServiceStaticInterceptor(new MockBundleContext(), reference);

    Object target = new Object();
    Method m = target.getClass().getDeclaredMethod("hashCode", null);

    MethodInvocation invocation = new MockMethodInvocation(m);
    try {
        interceptor.invoke(invocation);
        fail("should have thrown exception");
    }
    catch (ServiceUnavailableException ex) {
        // expected
    }
}
项目:neoscada    文件:Activator.java   
private Bundle findBundle ( final String symbolicName )
{
    final Bundle[] bundles = this.context.getBundles ();
    if ( bundles == null )
    {
        return null;
    }

    for ( final Bundle bundle : bundles )
    {
        if ( bundle.getSymbolicName ().equals ( symbolicName ) )
        {
            return bundle;
        }
    }

    return null;
}
项目:athena    文件:ComponentsMonitor.java   
private boolean isFullyStarted(Bundle bundle) {
    Component[] components = scrService.getComponents(bundle);
    if (components != null) {
        for (Component component : components) {
            if (!isFullyStarted(component)) {
                return false;
            }
        }
    }
    return true;
}
项目:gemini.blueprint    文件:OsgiBundleScope.java   
/**
 * Called if a bundle releases the service (stop the scope).
 * 
 * @see org.osgi.framework.ServiceFactory#ungetService(org.osgi.framework.Bundle,
 *      org.osgi.framework.ServiceRegistration, java.lang.Object)
 */
public void ungetService(Bundle bundle, ServiceRegistration registration, Object service) {
    try {
        // tell the scope, it's an outside bundle that does the call
        EXTERNAL_BUNDLE.set(Boolean.TRUE);
        // unget object first
        decoratedServiceFactory.ungetService(bundle, registration, service);

        // then apply the destruction callback (if any)
        Runnable callback = callbacks.remove(bundle);
        if (callback != null)
            callback.run();
    }
    finally {
        // clean ThreadLocal
        EXTERNAL_BUNDLE.set(null);
    }
}
项目:atlas    文件:Framework.java   
/**
 * notify all framework listeners.
 *
 * @param state the new state.
 * @param bundle the bundle.
 * @param throwable a throwable.
 */
static void notifyFrameworkListeners(final int state, final Bundle bundle, final Throwable throwable) {

    if (frameworkListeners.isEmpty()) {
        return;
    }

    final FrameworkEvent event = new FrameworkEvent(state);

    final FrameworkListener[] listeners = frameworkListeners.toArray(new FrameworkListener[frameworkListeners.size()]);

    for (int i = 0; i < listeners.length; i++) {
        final FrameworkListener listener = listeners[i];

        listener.frameworkEvent(event);
    }
}
项目:scanning    文件:GeneratorDescriptor.java   
private void createIcons() {
    icons   = new HashMap<String, Image>(7);

    final IConfigurationElement[] eles = Platform.getExtensionRegistry().getConfigurationElementsFor("org.eclipse.scanning.api.generator");
    for (IConfigurationElement e : eles) {
        final String     identity = e.getAttribute("id");

        final String icon = e.getAttribute("icon");
        if (icon !=null) {
            final String   cont  = e.getContributor().getName();
            final Bundle   bundle= Platform.getBundle(cont);
            final URL      entry = bundle.getEntry(icon);
            final ImageDescriptor des = ImageDescriptor.createFromURL(entry);
            icons.put(identity, des.createImage());
        }

    }
}
项目:gemini.blueprint    文件:BlueprintShutdownSorterTest.java   
/**
 * If the service of a managed bundle are consumed by an unmanaged bundle,
 * that dependency should not affect the shutdown ordering as gemini blueprint is only responsible for
 * orderly shutting down the bundles it is managing.
 */
public void testUnmanagedBundlesAreIgnoredForShutdownOrdering() throws Exception {
    DependencyMockBundle a = new DependencyMockBundle("A");
    DependencyMockBundle b = new DependencyMockBundle("B");
    DependencyMockBundle c = new DependencyMockBundle("C");
    DependencyMockBundle d = new DependencyMockBundle("D");
    DependencyMockBundle e = new DependencyMockBundle("E");
    DependencyMockBundle unmanaged = new DependencyMockBundle("F");

    b.setDependentOn(c);
    d.setDependentOn(e, -13, 12);
    e.setDependentOn(d, 0, 14);
    a.setDependentOn(unmanaged);

    List<Bundle> order = getOrder(a, b, c, d, e);
    assertOrder(order, c, a, b, d, e);
}
项目:gemini.blueprint    文件:BlueprintContainerCreator.java   
public DelegatedExecutionOsgiBundleApplicationContext createApplicationContext(BundleContext bundleContext)
        throws Exception {
    Bundle bundle = bundleContext.getBundle();
    ApplicationContextConfiguration config = new BlueprintContainerConfig(bundle);
    String bundleName = OsgiStringUtils.nullSafeNameAndSymName(bundle);
    if (log.isTraceEnabled())
        log.trace("Created configuration " + config + " for bundle " + bundleName);

    // it's not a spring bundle, ignore it
    if (!config.isSpringPoweredBundle()) {
        if (log.isDebugEnabled())
            log.debug("No blueprint configuration found in bundle " + bundleName + "; ignoring it...");
        return null;
    }

    log.info("Discovered configurations " + ObjectUtils.nullSafeToString(config.getConfigurationLocations())
            + " in bundle [" + bundleName + "]");

    DelegatedExecutionOsgiBundleApplicationContext sdoac =
            new OsgiBundleXmlApplicationContext(config.getConfigurationLocations());
    sdoac.setBundleContext(bundleContext);
    sdoac.setPublishContextAsService(config.isPublishContextAsService());

    return sdoac;
}
项目:gemoc-studio-modeldebugging    文件:MelangeHelper.java   
/**
 * Return a bundle with a .melange declaring 'language'
 */
public static Bundle getMelangeBundle(String languageName){

    IConfigurationElement[] melangeLanguages = Platform
            .getExtensionRegistry().getConfigurationElementsFor(
                    "fr.inria.diverse.melange.language");
    String melangeBundleName = "";

    for (IConfigurationElement lang : melangeLanguages) {
        if(lang.getAttribute("id").equals(languageName)){
            melangeBundleName = lang.getContributor().getName();
            return Platform.getBundle(melangeBundleName);
        }
    }

    return null;
}
项目:gemini.blueprint    文件:OsgiBundleUtils.java   
/**
 * Indicates if the given bundle is lazily activated or not. That is, the
 * bundle has a lazy activation policy and a STARTING state. Bundles that
 * have been lazily started but have been activated will return false.
 * 
 * <p/>
 * On OSGi R4.0 platforms, this method will always return false.
 * 
 * @param bundle OSGi bundle
 * @return true if the bundle is lazily activated, false otherwise.
 */
@SuppressWarnings("unchecked")
public static boolean isBundleLazyActivated(Bundle bundle) {
    Assert.notNull(bundle, "bundle is required");

    if (OsgiPlatformDetector.isR41()) {
        if (bundle.getState() == Bundle.STARTING) {
            Dictionary<String, String> headers = bundle.getHeaders();
            if (headers != null) {
                Object val = headers.get(Constants.BUNDLE_ACTIVATIONPOLICY);
                if (val != null) {
                    String value = ((String) val).trim();
                    return (value.startsWith(Constants.ACTIVATION_LAZY));
                }
            }
        }
    }
    return false;
}
项目:AgentWorkbench    文件:BundleFeatureMapper.java   
/**
 * Gets the ID of all required bundles for the specified bundle.
 *
 * @param bundle the bundle to evaluate
 * @return the required bundle ID's
 */
public static ArrayList<String> getRequiredBundleIDs(Bundle bundle) {

    ArrayList<String> requiredBundles = new ArrayList<>();

    String reqBundles = bundle.getHeaders().get(Constants.REQUIRE_BUNDLE);
    if (reqBundles!=null && reqBundles.isEmpty()==false) {
        String[] reqBundlesArray =  reqBundles.split(",");
        for (int i = 0; i < reqBundlesArray.length; i++) {
            String reqLine = reqBundlesArray[i];
            if (reqLine.contains(";")==true) {
                reqLine = reqLine.substring(0, reqLine.indexOf(";"));
            }
            requiredBundles.add(reqLine);
        }
    }
    return requiredBundles;
}
项目:gemini.blueprint    文件:ProxyCreatorTest.java   
public void testNewProxiesCreatedOnBundleRefresh() throws Exception {
    // get a hold of the bundle proxy creator bundle and update it
    Bundle bundle = OsgiBundleUtils.findBundleBySymbolicName(bundleContext, PROXY_CREATOR_SYM_NAME);

    assertNotNull("proxy creator bundle not found", bundle);
    // update bundle (and thus create a new version of the classes)
    bundle.update();

    // make sure it starts-up
    try {
        waitOnContextCreation(PROXY_CREATOR_SYM_NAME, 60);
    }
    catch (Exception ex) {
        fail("updating the bundle failed");
    }
}
项目:hashsdn-controller    文件:BlueprintBundleTracker.java   
private void shutdownAllContainers() {
    shuttingDown = true;

    restartService.close();

    // Close all CSS modules first.
    ConfigSystemService configSystem = getOSGiService(ConfigSystemService.class);
    if (configSystem != null) {
        configSystem.closeAllConfigModules();
    }

    LOG.info("Shutting down all blueprint containers...");

    Collection<Bundle> containerBundles = new HashSet<>(Arrays.asList(bundleContext.getBundles()));
    while (!containerBundles.isEmpty()) {
        // For each iteration of getBundlesToDestroy, as containers are destroyed, other containers become
        // eligible to be destroyed. We loop until we've destroyed them all.
        for (Bundle bundle : getBundlesToDestroy(containerBundles)) {
            containerBundles.remove(bundle);
            BlueprintContainer container = blueprintExtenderService.getContainer(bundle);
            if (container != null) {
                blueprintExtenderService.destroyContainer(bundle, container);
            }
        }
    }

    LOG.info("Shutdown of blueprint containers complete");
}
项目:n4js    文件:ProductLauncher.java   
private static long findBundle(BundleContext context, String namePattern) {
    Bundle[] installedBundles = context.getBundles();
    for (int i = 0; i < installedBundles.length; i++) {
        Bundle bundle = installedBundles[i];
        if (bundle.getSymbolicName().matches(namePattern)) {
            return bundle.getBundleId();
        }
    }
    throw new RuntimeException("Cannot locate bundle with name pattern " + namePattern);
}
项目:n4js    文件:ProductLauncher.java   
private static Set<String> preLaodedBundlesNamePtterns(BundleContext context) {
    Set<String> installedBundleDescriptions = new HashSet<>();
    Bundle[] installed0 = context.getBundles();
    for (int i = 0; i < installed0.length; i++) {
        String descriptor = installed0[i].getSymbolicName() + ".*";
        installedBundleDescriptions.add(descriptor);
    }
    return installedBundleDescriptions;
}
项目:gemini.blueprint    文件:NamespacePlugins.java   
public boolean pass(Bundle bundle) {
    try {
        Class<?> type = bundle.loadClass(NS_HANDLER_RESOLVER_CLASS_NAME);
        return NamespaceHandlerResolver.class.equals(type);
    } catch (Throwable th) {
        // if the interface is not wired, ignore the bundle
        log.warn("Bundle " + OsgiStringUtils.nullSafeNameAndSymName(bundle) + " cannot see class ["
                + NS_HANDLER_RESOLVER_CLASS_NAME + "]; ignoring it as a namespace resolver");

        return false;
    }
}
项目:gemini.blueprint    文件:MockBundleContextTest.java   
/**
 * Test method for
 * {@link org.eclipse.gemini.blueprint.mock.MockBundleContext#MockBundleContext(org.osgi.framework.Bundle)}.
 */
public void testMockBundleContextBundle() {
    Bundle bundle = new MockBundle();
    mock = new MockBundleContext(bundle);

    assertSame(bundle, mock.getBundle());
    assertNotNull(mock.getProperty(Constants.FRAMEWORK_VENDOR));
}
项目:gemini.blueprint    文件:MavenArtifactLookupTest.java   
private void startDependency(Bundle simpleService2Bundle) throws BundleException, InterruptedException {
    System.out.println("Starting dependency");
    simpleService2Bundle.start();

    waitOnContextCreation("org.eclipse.gemini.blueprint.iandt.simpleservice2");

    System.out.println("Dependency started");
}
项目:incubator-netbeans    文件:Netigso.java   
private static boolean isResolved(Bundle b) {
    if (b.getState() == Bundle.INSTALLED) {
        // try to ask for a known resource which is known to resolve 
        // the bundle
        b.findEntries("META-INF", "MANIFEST.MF", false); // NOI18N
    }
    return b.getState() != Bundle.INSTALLED;
}
项目:gemini.blueprint    文件:BootstrappingDependenciesFailedEvent.java   
public BootstrappingDependenciesFailedEvent(ApplicationContext source, Bundle bundle, Throwable th,
        Collection<OsgiServiceDependencyEvent> nestedEvents, Filter filter) {
    super(source, bundle, th);

    this.dependencyEvents = nestedEvents;
    this.dependenciesFilter = filter;

    List<String> depFilters = new ArrayList<String>(dependencyEvents.size());

    for (OsgiServiceDependencyEvent dependency : nestedEvents) {
        depFilters.add(dependency.getServiceDependency().getServiceFilter().toString());
    }

    dependencyFilters = Collections.unmodifiableCollection(depFilters);
}
项目:gemini.blueprint    文件:BundleFactoryBean.java   
/**
 * Install bundle - the equivalent of install action.
 * 
 * @return
 * @throws BundleException
 */
private Bundle installBundle() throws BundleException {
    Assert.hasText(location, "location parameter required when installing a bundle");

    // install bundle (default)
    log.info("Loading bundle from [" + location + "]");

    Bundle bundle = null;
    boolean installBasedOnLocation = (resource == null);

    if (!installBasedOnLocation) {
        InputStream stream = null;
        try {
            stream = resource.getInputStream();
        } catch (IOException ex) {
            // catch it since we fallback on normal install
            installBasedOnLocation = true;
        }
        if (!installBasedOnLocation)
            bundle = bundleContext.installBundle(location, stream);
    }

    if (installBasedOnLocation)
        bundle = bundleContext.installBundle(location);

    return bundle;
}
项目:gemini.blueprint    文件:BlueprintContainerServicePublisher.java   
private void registerService(ApplicationContext applicationContext) {
    final Dictionary<String, Object> serviceProperties = new Hashtable<String, Object>();

    Bundle bundle = bundleContext.getBundle();
    String symName = bundle.getSymbolicName();
    serviceProperties.put(Constants.BUNDLE_SYMBOLICNAME, symName);
    serviceProperties.put(BLUEPRINT_SYMNAME, symName);

    Version version = OsgiBundleUtils.getBundleVersion(bundle);
    serviceProperties.put(Constants.BUNDLE_VERSION, version);
    serviceProperties.put(BLUEPRINT_VERSION, version);

    log.info("Publishing BlueprintContainer as OSGi service with properties " + serviceProperties);

    // export just the interface
    final String[] serviceNames = new String[] { BlueprintContainer.class.getName() };

    if (log.isDebugEnabled())
        log.debug("Publishing service under classes " + ObjectUtils.nullSafeToString(serviceNames));

    AccessControlContext acc = SecurityUtils.getAccFrom(applicationContext);

    // publish service
    if (System.getSecurityManager() != null) {
        registration = AccessController.doPrivileged(new PrivilegedAction<ServiceRegistration>() {
            public ServiceRegistration run() {
                return bundleContext.registerService(serviceNames, blueprintContainer, serviceProperties);
            }
        }, acc);
    } else {
        registration = bundleContext.registerService(serviceNames, blueprintContainer, serviceProperties);
    }
}
项目:JahiaDF    文件:JahiaUtils.java   
/**
 * Check if it has configuration
 *
 * @param extendedNodeType The ExtendedNodeType to check for xk config node
 * @return true or false
 */
public static boolean hasXKConfigNode(ExtendedNodeType extendedNodeType){
    boolean response = false;
    if (extendedNodeType != null ){
        String path = getNodeTypePathInsideBundle(extendedNodeType);
        Bundle bundle = getBundle(extendedNodeType);
        response = pathExists(bundle, path);
    }
    return response;
}
项目:gemini.blueprint    文件:LazyBundleRegistry.java   
void add(Bundle bundle, boolean isLazy, boolean applyCondition) {
    if (isLazy) {
        lazyBundles.put(bundle, Boolean.valueOf(applyCondition));
    } else {
        activeBundles.put(bundle, activator.activate(bundle));
    }
}
项目:gemini.blueprint    文件:DepedencyEventTest.java   
private void waitForContextStartEvent(Bundle bundle) throws Exception {
    int eventNumber = eventList.size();
    bundle.start();
    waitOnContextCreation(bundle.getSymbolicName());
    while (eventList.size() < eventNumber + 1)
        waitForEvent(TIME_OUT);
}
项目:incubator-netbeans    文件:NetigsoLoader.java   
@Override
public String toString() {
    Bundle b = bundle;
    if (b == null) {
        return "uninitialized";
    }
    return b.getLocation();
}
项目:com-liferay-apio-architect    文件:TransformServiceTrackerCustomizer.java   
@Override
public void removedService(ServiceReference<T> serviceReference, U u) {
    Bundle bundle = FrameworkUtil.getBundle(
        TransformServiceTrackerCustomizer.class);

    BundleContext bundleContext = bundle.getBundleContext();

    bundleContext.ungetService(serviceReference);

    onRemovedService(serviceReference, u);
}
项目:gemini.blueprint    文件:AbstractRefreshableOsgiBundleApplicationContextTest.java   
protected void setUp() throws Exception {
    context = new AbstractOsgiBundleApplicationContext() {

        protected void loadBeanDefinitions(DefaultListableBeanFactory arg0) throws IOException, BeansException {
        }
    };

    mocksControl = createStrictControl();

    bundleCtx = mocksControl.createMock(BundleContext.class);
    bundle = createNiceMock(Bundle.class);
    expect(bundleCtx.getBundle()).andReturn(bundle);
}
项目:vertigo-chroma-kspplugin    文件:AboutDialog.java   
private Image getImage() {
    String path = "icons/ksp.gif";
    Bundle bundle = Platform.getBundle(Activator.PLUGIN_ID);
    URL url = FileLocator.find(bundle, new Path(path), null);
    ImageDescriptor imageDesc = ImageDescriptor.createFromURL(url);
    return imageDesc.createImage();
}
项目:incubator-netbeans    文件:NetigsoLayerDoesNotActivateTest.java   
public void testOSGiCanProvideLayer() throws Exception {
    FileObject fo;
    Module m2;
    try {
        mgr.mutexPrivileged().enterWriteAccess();
        String mfBar = "Bundle-SymbolicName: org.bar\n" +
            "Bundle-Version: 1.1.0\n" +
            "Bundle-ManifestVersion: 2\n" +
            "Import-Package: org.foo\n" +
            "OpenIDE-Module-Layer: org/bar/layer.xml\n" +
            "\n\n";

        File j2 = changeManifest(new File(jars, "depends-on-simple-module.jar"), mfBar);
        m2 = mgr.create(j2, null, false, false, false);
        mgr.enable(m2);
    } finally {
        mgr.mutexPrivileged().exitWriteAccess();
    }
    try {
        mgr.mutexPrivileged().enterWriteAccess();
        fo = FileUtil.getConfigFile("TestFolder");
        assertNotNull("Layer found and its entries registered", fo);

        Bundle b = NetigsoServicesTest.findBundle(m2.getCodeNameBase());
        assertNotNull("Bundle for m2 found", b);
        assertEquals("It still remains in installed state only", Bundle.INSTALLED, b.getState());
    } finally {
        mgr.disable(m2);
        mgr.mutexPrivileged().exitWriteAccess();
    }
}
项目:pgcodekeeper    文件:EclipseEnvironment.java   
public String getEventValue() {
    Bundle bundle = Platform.getBundle(PLUGIN_ID.THIS);
    if (bundle == null) {
        return NOT_INSTALLED;
    }
    IEclipsePreferences prefs = InstanceScope.INSTANCE.getNode(PLUGIN_ID.THIS);
    boolean showOnStartup = prefs.getBoolean(SHOW_BOX_ON_STARTUP, true);
    if (showOnStartup) {
        return TRUE;
    }
    return FALSE;
}
项目:aries-jpa    文件:AbstractJPAItest.java   
/**
 * Helps to diagnose bundles that are not resolved as it will throw a detailed exception
 * 
 * @throws BundleException
 */
public void resolveBundles() throws BundleException {
    Bundle[] bundles = bundleContext.getBundles();
    for (Bundle bundle : bundles) {
        if (bundle.getState() == Bundle.INSTALLED) {
            System.out.println("Found non resolved bundle " + bundle.getBundleId() + ":"
                + bundle.getSymbolicName() + ":" + bundle.getVersion());
            bundle.start();
        }
    }
}
项目:gemini.blueprint    文件:StaticServiceProxyCreator.java   
Advice createServiceProviderTCCLAdvice(ServiceReference reference) {
    Bundle bundle = reference.getBundle();
    // if reference is dead already, it's impossible to provide the service
    // class loader
    if (bundle == null)
        return null;

    return new ServiceTCCLInterceptor(ClassLoaderFactory.getBundleClassLoaderFor(bundle));
}
项目:gemini.blueprint    文件:MockServiceReferenceTest.java   
/**
 * Test method for
 * {@link org.eclipse.gemini.blueprint.mock.MockServiceReference#MockServiceReference(org.osgi.framework.Bundle)}.
 */
public void testMockServiceReferenceBundle() {
    Bundle bundle = new MockBundle();
    mock = new MockServiceReference(bundle);

    assertSame(bundle, mock.getBundle());
    assertNotNull(mock.getPropertyKeys());

}