Author: rickhall
Date: Fri Aug  1 08:41:32 2008
New Revision: 681729

URL: http://svn.apache.org/viewvc?rev=681729&view=rev
Log:
Applied patch (FELIX-650) to properly return symbolic name when it has
parameters; modified the patch slightly to deal with the case when the
bundle has no symbolic name.

Modified:
    felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java
    
felix/trunk/framework/src/main/java/org/apache/felix/framework/PackageAdminImpl.java

Modified: 
felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java?rev=681729&r1=681728&r2=681729&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java 
(original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java 
Fri Aug  1 08:41:32 2008
@@ -1328,7 +1328,21 @@
     **/
     protected String getBundleSymbolicName(FelixBundle bundle)
     {
-        return (String) 
bundle.getInfo().getCurrentHeader().get(Constants.BUNDLE_SYMBOLICNAME);
+        try
+        {
+            // TODO: FRAMEWORK - Rather than reparsing every time, I wonder if
+            //       we should be caching this value some place.
+            final ICapability moduleCap = 
ManifestParser.parseBundleSymbolicName(bundle.getInfo().getCurrentHeader());
+            if (moduleCap != null)
+            {
+                return (String) 
moduleCap.getProperties().get(Constants.BUNDLE_SYMBOLICNAME_ATTRIBUTE);
+            }
+        }
+        catch (BundleException ex)
+        {
+            // Return null.
+        }
+        return null;
     }
 
     /**
@@ -3415,8 +3429,7 @@
             for (int i = 0; (bundles != null) && (i < bundles.length); i++)
             {
                 long id = ((FelixBundle) bundles[i]).getBundleId();
-                String sym = (String) ((FelixBundle) bundles[i])
-                    
.getInfo().getCurrentHeader().get(Constants.BUNDLE_SYMBOLICNAME);
+                String sym = bundles[i].getSymbolicName();
                 Version ver = Version.parseVersion((String) ((FelixBundle) 
bundles[i])
                     
.getInfo().getCurrentHeader().get(Constants.BUNDLE_VERSION));
                 if (symName.equals(sym) && bundleVersion.equals(ver) && 
(targetId != id))

Modified: 
felix/trunk/framework/src/main/java/org/apache/felix/framework/PackageAdminImpl.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/PackageAdminImpl.java?rev=681729&r1=681728&r2=681729&view=diff
==============================================================================
--- 
felix/trunk/framework/src/main/java/org/apache/felix/framework/PackageAdminImpl.java
 (original)
+++ 
felix/trunk/framework/src/main/java/org/apache/felix/framework/PackageAdminImpl.java
 Fri Aug  1 08:41:32 2008
@@ -105,8 +105,7 @@
         List list = new ArrayList();
         for (int i = 0; (bundles != null) && (i < bundles.length); i++)
         {
-            String sym = (String) ((FelixBundle) bundles[i])
-                
.getInfo().getCurrentHeader().get(Constants.BUNDLE_SYMBOLICNAME);
+            String sym = bundles[i].getSymbolicName();
             if ((sym != null) && sym.equals(symbolicName))
             {
                 String s = (String) ((FelixBundle) bundles[i])


Reply via email to