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])