[jboss-osgi-commits] JBoss-OSGI SVN: r93652 - in projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins: metadata and 1 other directories.

jboss-osgi-commits at lists.jboss.org jboss-osgi-commits at lists.jboss.org
Thu Sep 17 12:13:53 EDT 2009


Author: thomas.diesler at jboss.com
Date: 2009-09-17 12:13:51 -0400 (Thu, 17 Sep 2009)
New Revision: 93652

Modified:
   projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/facade/bundle/AbstractBundleState.java
   projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/facade/bundle/OSGiBundleManager.java
   projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/facade/bundle/OSGiBundleState.java
   projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/metadata/AbstractOSGiMetaData.java
   projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/resolver/BundleCapability.java
   projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/resolver/BundleRequirement.java
   projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/resolver/BundleResolver.java
Log:
Cache symbolicname and version

Modified: projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/facade/bundle/AbstractBundleState.java
===================================================================
--- projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/facade/bundle/AbstractBundleState.java	2009-09-17 15:04:01 UTC (rev 93651)
+++ projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/facade/bundle/AbstractBundleState.java	2009-09-17 16:13:51 UTC (rev 93652)
@@ -96,6 +96,12 @@
 
    /** The services in use */
    protected Map<OSGiServiceState, Integer> servicesInUse = new ConcurrentHashMap<OSGiServiceState, Integer>();
+   
+   /** The cached symbolic name */
+   private String symbolicName;
+   
+   /** The cached */
+   private Version version;
 
    /**
     * Create a new BundleState for the system bundle.
@@ -125,15 +131,21 @@
 
    public String getSymbolicName()
    {
-      String symbolicName = osgiMetaData.getBundleSymbolicName();
       if (symbolicName == null)
-         throw new IllegalStateException("Cannot obtain " + Constants.BUNDLE_SYMBOLICNAME);
+      {
+         symbolicName = osgiMetaData.getBundleSymbolicName();
+         if (symbolicName == null)
+            throw new IllegalStateException("Cannot obtain " + Constants.BUNDLE_SYMBOLICNAME);
+      }
       return symbolicName;
    }
 
    public Version getVersion()
    {
-      return osgiMetaData.getBundleVersion();
+      if (version == null)
+         version = osgiMetaData.getBundleVersion();
+      
+      return version;
    }
 
    public int getState()
@@ -210,6 +222,15 @@
    }
 
    /**
+    * Destroy this bundle state
+    */
+   void destroy()
+   {
+      lastModified = System.currentTimeMillis();
+      osgiMetaData = null;
+   }
+   
+   /**
     * Get the osgiMetaData.
     * 
     * @return the osgiMetaData.

Modified: projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/facade/bundle/OSGiBundleManager.java
===================================================================
--- projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/facade/bundle/OSGiBundleManager.java	2009-09-17 15:04:01 UTC (rev 93651)
+++ projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/facade/bundle/OSGiBundleManager.java	2009-09-17 16:13:51 UTC (rev 93652)
@@ -439,26 +439,15 @@
       if (id == 0)
          throw new IllegalArgumentException("Cannot uninstall system bundle");
 
-      OSGiBundleState state = (OSGiBundleState)getBundleById(id);
-      if (state == null)
+      OSGiBundleState bundleState = (OSGiBundleState)getBundleById(id);
+      if (bundleState == null)
          throw new BundleException(bundle + " not installed");
 
-      uninstall(state);
-   }
-
-   /**
-    * Uninstall a bundle
-    * 
-    * @param bundleState the bundle state
-    * @throws BundleException for any error
-    */
-   public void uninstall(OSGiBundleState bundleState) throws BundleException
-   {
       DeploymentUnit unit = bundleState.getDeploymentUnit();
       try
       {
          deployerClient.undeploy(unit.getName());
-         bundleState.modified();
+         bundleState.destroy();
       }
       catch (DeploymentException e)
       {

Modified: projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/facade/bundle/OSGiBundleState.java
===================================================================
--- projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/facade/bundle/OSGiBundleState.java	2009-09-17 15:04:01 UTC (rev 93651)
+++ projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/facade/bundle/OSGiBundleState.java	2009-09-17 16:13:51 UTC (rev 93652)
@@ -386,4 +386,11 @@
       if (rethrow != null)
          throw rethrow;
    }
+
+   @Override
+   void destroy()
+   {
+      super.destroy();
+      unit = null;
+   }
 }

Modified: projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/metadata/AbstractOSGiMetaData.java
===================================================================
--- projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/metadata/AbstractOSGiMetaData.java	2009-09-17 15:04:01 UTC (rev 93651)
+++ projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/metadata/AbstractOSGiMetaData.java	2009-09-17 16:13:51 UTC (rev 93652)
@@ -196,7 +196,7 @@
 
    public Version getBundleVersion()
    {
-      return get(BUNDLE_VERSION, VERSION_VC , new Version("0.0.0"));
+      return get(BUNDLE_VERSION, VERSION_VC , Version.emptyVersion);
    }
 
    public List<PackageAttribute> getDynamicImports()

Modified: projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/resolver/BundleCapability.java
===================================================================
--- projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/resolver/BundleCapability.java	2009-09-17 15:04:01 UTC (rev 93651)
+++ projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/resolver/BundleCapability.java	2009-09-17 16:13:51 UTC (rev 93652)
@@ -87,4 +87,11 @@
       OSGiPackageRequirement osgiPackageRequirement = (OSGiPackageRequirement)bundleRequirement.getPackageRequirement();
       return osgiPackageCapability.match(osgiPackageRequirement);
    }
+
+   @Override
+   public String toString()
+   {
+      String name = packageCapability.getName();
+      return "BundleCapability[" + name + "," + bundle + "]";
+   }
 }
\ No newline at end of file

Modified: projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/resolver/BundleRequirement.java
===================================================================
--- projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/resolver/BundleRequirement.java	2009-09-17 15:04:01 UTC (rev 93651)
+++ projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/resolver/BundleRequirement.java	2009-09-17 16:13:51 UTC (rev 93652)
@@ -63,4 +63,11 @@
    {
       return packageRequirement;
    }
+
+   @Override
+   public String toString()
+   {
+      String name = packageRequirement.getName();
+      return "BundleRequirement[" + name + "," + bundle + "]";
+   }
 }
\ No newline at end of file

Modified: projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/resolver/BundleResolver.java
===================================================================
--- projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/resolver/BundleResolver.java	2009-09-17 15:04:01 UTC (rev 93651)
+++ projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/resolver/BundleResolver.java	2009-09-17 16:13:51 UTC (rev 93652)
@@ -139,6 +139,8 @@
 
    public void removeBundle(Bundle bundle)
    {
+      System.out.println("removeBundle: " + bundle);
+      
       OSGiBundleState bundleState = assertBundleState(bundle);
       Iterator<BundleCapability> it = allCapabilities.iterator();
       while (it.hasNext())
@@ -149,6 +151,10 @@
       }
       bundleCapabilitiesMap.remove(bundleState);
       bundleRequirementsMap.remove(bundleState);
+      
+      System.out.println("allCapabilities: " + allCapabilities.size());
+      System.out.println("bundleCapabilitiesMap: " + bundleCapabilitiesMap.size());
+      System.out.println("bundleRequirementsMap: " + bundleRequirementsMap.size());
    }
 
    public BundleCapability getMatchingCapability(Module module, PackageRequirement packageRequirement)



More information about the jboss-osgi-commits mailing list