Package org.osgi.service.packageadmin

Examples of org.osgi.service.packageadmin.PackageAdmin


       
        RequiredBundle reqBundle = mock(RequiredBundle.class);
        when(reqBundle.getBundle()).thenReturn(bundle);
        when(reqBundle.getRequiringBundles()).thenReturn(new Bundle[0]);
       
        PackageAdmin admin = mock(PackageAdmin.class);
        when(admin.getRequiredBundles("org.apache.testb")).thenReturn(new RequiredBundle[] { reqBundle });
       
        assertFalse(isBundleRequiredByOthers(bundle, admin));
       
        Bundle user = mock(Bundle.class);
        when(reqBundle.getRequiringBundles()).thenReturn(new Bundle[] { user });
View Full Code Here


        when(context.getBundles()).thenReturn(new Bundle[] { bundle, b1, b2, b3 });
       
        Dictionary<String, String> headers = new Hashtable<String, String>();
        when(bundle.getHeaders()).thenReturn(headers);
       
        PackageAdmin admin = mock(PackageAdmin.class);
        assertEquals(0, getBundleDependencies(context, bundle, admin).length);
       
        RequiredBundle rb1 = mock(RequiredBundle.class);
        when(rb1.getBundle()).thenReturn(b1);
        when(rb1.getRequiringBundles()).thenReturn(new Bundle[] { bundle, b2 });
        RequiredBundle rb2 = mock(RequiredBundle.class);
        when(rb2.getBundle()).thenReturn(b2);
        when(rb2.getRequiringBundles()).thenReturn(new Bundle[] { b1 });
        RequiredBundle rb3 = mock(RequiredBundle.class);
        when(rb3.getBundle()).thenReturn(b3);
        when(rb3.getRequiringBundles()).thenReturn(new Bundle[] { bundle, b1, b2 });
       
        headers.put(Constants.REQUIRE_BUNDLE, "b1;bundle-version=\"1.0.0\",b3;bundle-version=\"2.0.0\"");
       
        when(admin.getRequiredBundles("b1")).thenReturn(new RequiredBundle[] { rb1 });
        when(admin.getRequiredBundles("b2")).thenReturn(new RequiredBundle[] { rb2 });
        when(admin.getRequiredBundles("b3")).thenReturn(new RequiredBundle[] { rb3 });
       
        assertEquals(toSet(new long[] { 44, 66 }), toSet(getBundleDependencies(context, bundle, admin)));
    }
View Full Code Here

    @Test
    public void testToCompositeData() throws Exception {
       
        Bundle bundle = mock(Bundle.class);
        BundleContext context = mock(BundleContext.class);
        PackageAdmin packageAdmin = mock(PackageAdmin.class);
        StartLevel startLevel = mock(StartLevel.class);
       
        Bundle b1 = mock(Bundle.class);
        when(b1.getSymbolicName()).thenReturn("b1");
        when(b1.getBundleId()).thenReturn(new Long(44));
        Bundle b2 = mock(Bundle.class);
        when(b2.getSymbolicName()).thenReturn("b2");
        when(b2.getBundleId()).thenReturn(new Long(55));
        Bundle b3 = mock(Bundle.class);
        when(b3.getSymbolicName()).thenReturn("b3");
        when(b3.getBundleId()).thenReturn(new Long(66));
        when(context.getBundles()).thenReturn(new Bundle[] { bundle, b1, b2, b3 });
     
        when(bundle.getSymbolicName()).thenReturn("test");
        when(bundle.getVersion()).thenReturn(Version.emptyVersion);
        when(bundle.getBundleId()).thenReturn(new Long(1));
        when(bundle.getLastModified()).thenReturn(new Long(12345));
        when(bundle.getLocation()).thenReturn("location");
       
        //headers
        Dictionary<String, String> headers = new Hashtable<String, String>();
        headers.put(Constants.BUNDLE_SYMBOLICNAME, "test");
        headers.put(Constants.BUNDLE_VERSION, "0.0.0");
        when(bundle.getHeaders()).thenReturn(headers);
       
        //exported packages
        ExportedPackage exported = mock(ExportedPackage.class);
        when(exported.getName()).thenReturn("org.apache.aries.jmx");
        when(exported.getVersion()).thenReturn(new Version("1.0.0"));
        when(packageAdmin.getExportedPackages(bundle)).thenReturn(new ExportedPackage[] { exported });
       
        //imported packages
        ExportedPackage ep1 = mock(ExportedPackage.class);
        when(ep1.getImportingBundles()).thenReturn(new Bundle[] { bundle, b2, b3 });
        when(ep1.getName()).thenReturn("org.apache.aries.jmx.b1");
        when(ep1.getVersion()).thenReturn(Version.emptyVersion);
        ExportedPackage ep2 = mock(ExportedPackage.class);
        when(ep2.getImportingBundles()).thenReturn(new Bundle[] { bundle, b3 });
        when(ep2.getName()).thenReturn("org.apache.aries.jmx.b2");
        when(ep2.getVersion()).thenReturn(Version.parseVersion("2.0.1"));
        headers.put(Constants.DYNAMICIMPORT_PACKAGE, "*");
 
        when(packageAdmin.getExportedPackages(b1)).thenReturn(new ExportedPackage[] { ep1 });
        when(packageAdmin.getExportedPackages(b2)).thenReturn(new ExportedPackage[] { ep2 });
        when(packageAdmin.getExportedPackages(b3)).thenReturn(null);
       
        //required bundles
        RequiredBundle rb1 = mock(RequiredBundle.class);
        when(rb1.getBundle()).thenReturn(b1);
        when(rb1.getRequiringBundles()).thenReturn(new Bundle[] { bundle, b2 });
        RequiredBundle rb2 = mock(RequiredBundle.class);
        when(rb2.getBundle()).thenReturn(b2);
        when(rb2.getRequiringBundles()).thenReturn(new Bundle[] { b1 });
        RequiredBundle rb3 = mock(RequiredBundle.class);
        when(rb3.getBundle()).thenReturn(b3);
        when(rb3.getRequiringBundles()).thenReturn(new Bundle[] { bundle, b1, b2 });
        headers.put(Constants.REQUIRE_BUNDLE, "b1;bundle-version=\"1.0.0\",b3;bundle-version=\"2.0.0\"");
        when(packageAdmin.getRequiredBundles("b1")).thenReturn(new RequiredBundle[] { rb1 });
        when(packageAdmin.getRequiredBundles("b2")).thenReturn(new RequiredBundle[] { rb2 });
        when(packageAdmin.getRequiredBundles("b3")).thenReturn(new RequiredBundle[] { rb3 });
       
        //services in use
        ServiceReference s1 = mock(ServiceReference.class);
        when(s1.getProperty(Constants.SERVICE_ID)).thenReturn(new Long(15));
        ServiceReference s2 = mock(ServiceReference.class);
View Full Code Here

     * Gets the package admin exposed by the framework.
     * Fails if the package admin is not available.
     * @return the package admin service.
     */
    public PackageAdmin getPackageAdmin() {
        PackageAdmin pa = (PackageAdmin) getServiceObject(PackageAdmin.class.getName(), null);
        if (pa == null) {
            fail("No package admin available");
        }
        return pa;
    }
View Full Code Here

   public void resolveBundle(BundleHandle handle) throws BundleException, IOException
   {
      Bundle bundle = getBundle(handle);
      BundleContext sysContext = framework.getBundleContext();
      ServiceReference sref = sysContext.getServiceReference(PackageAdmin.class.getName());
      PackageAdmin packageAdmin = (PackageAdmin)sysContext.getService(sref);
      packageAdmin.resolveBundles(new Bundle[] { bundle });
   }
View Full Code Here

  }

  // returns true if the refreshPackages operation caused the framework to shutdown
  private static boolean refreshPackages(Bundle[] bundles) {
    ServiceReference packageAdminRef = context.getServiceReference(PackageAdmin.class.getName());
    PackageAdmin packageAdmin = null;
    if (packageAdminRef != null)
      packageAdmin = (PackageAdmin) context.getService(packageAdminRef);
    if (packageAdmin == null)
      return false;
    // TODO this is such a hack it is silly.  There are still cases for race conditions etc
    // but this should allow for some progress...
    final Semaphore semaphore = new Semaphore(0);
    StartupEventListener listener = new StartupEventListener(semaphore, FrameworkEvent.PACKAGES_REFRESHED);
    context.addFrameworkListener(listener);
    context.addBundleListener(listener);
    packageAdmin.refreshPackages(bundles);
    context.ungetService(packageAdminRef);
    updateSplash(semaphore, listener);
    if (isForcedRestart())
      return true;
    return false;
View Full Code Here

    }
    return null;
  }

  public boolean hasAuthority(Class clazz) {
    PackageAdmin packageAdminService = (PackageAdmin) packageAdminTracker.getService();
    if (packageAdminService != null) {
      return packageAdminService.getBundle(clazz) != null;
    }
    return false;
  }
View Full Code Here

  private void resolveBundles(Bundle[] bundles, boolean refresh) {
    ServiceReference ref = context.getServiceReference(PackageAdmin.class.getName());
    if (ref == null)
      return;
    PackageAdmin pa = (PackageAdmin) context.getService(ref);
    if (pa == null)
      return;
    try {
      if (refresh)
        pa.refreshPackages(bundles);
      else
        pa.resolveBundles(bundles);
    } finally {
      context.ungetService(ref);
    }
  }
View Full Code Here

              if (title) {
                intp.print("  "); //$NON-NLS-1$
                intp.println(ConsoleMsg.CONSOLE_NO_IMPORTED_PACKAGES_MESSAGE);
              }

              PackageAdmin packageAdmin = (PackageAdmin) context.getService(packageAdminRef);
              if (packageAdmin != null) {
                intp.print("  "); //$NON-NLS-1$
                if ((packageAdmin.getBundleType(bundle) & PackageAdmin.BUNDLE_TYPE_FRAGMENT) > 0) {
                  org.osgi.framework.Bundle[] hosts = packageAdmin.getHosts(bundle);
                  if (hosts != null) {
                    intp.println(ConsoleMsg.CONSOLE_HOST_MESSAGE);
                    for (int i = 0; i < hosts.length; i++) {
                      intp.print("    "); //$NON-NLS-1$
                      intp.println(hosts[i]);
                    }
                  } else {
                    intp.println(ConsoleMsg.CONSOLE_NO_HOST_MESSAGE);
                  }
                } else {
                  org.osgi.framework.Bundle[] fragments = packageAdmin.getFragments(bundle);
                  if (fragments != null) {
                    intp.println(ConsoleMsg.CONSOLE_FRAGMENT_MESSAGE);
                    for (int i = 0; i < fragments.length; i++) {
                      intp.print("    "); //$NON-NLS-1$
                      intp.println(fragments[i]);
                    }
                  } else {
                    intp.println(ConsoleMsg.CONSOLE_NO_FRAGMENT_MESSAGE);
                  }
                }

                RequiredBundle[] requiredBundles = packageAdmin.getRequiredBundles(null);
                RequiredBundle requiredBundle = null;
                if (requiredBundles != null) {
                  for (int i = 0; i < requiredBundles.length; i++) {
                    if (requiredBundles[i].getBundle() == bundle) {
                      requiredBundle = requiredBundles[i];
View Full Code Here

      return defaultValue;
    return value.equalsIgnoreCase("true"); //$NON-NLS-1$
  }

  public Bundle getBundle(String symbolicName) {
    PackageAdmin packageAdmin = getBundleAdmin();
    if (packageAdmin == null)
      return null;
    Bundle[] bundles = packageAdmin.getBundles(symbolicName, null);
    if (bundles == null)
      return null;
    //Return the first bundle that is not installed or uninstalled
    for (int i = 0; i < bundles.length; i++) {
      if ((bundles[i].getState() & (Bundle.INSTALLED | Bundle.UNINSTALLED)) == 0) {
View Full Code Here

TOP

Related Classes of org.osgi.service.packageadmin.PackageAdmin

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.