Modified dynamic import wildcard matching to not match classes, only packages.
(FELIX-1059)
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@768907 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/framework/src/main/java/org/apache/felix/framework/searchpolicy/Resolver.java b/framework/src/main/java/org/apache/felix/framework/searchpolicy/Resolver.java
index c61aae8..edd1464 100644
--- a/framework/src/main/java/org/apache/felix/framework/searchpolicy/Resolver.java
+++ b/framework/src/main/java/org/apache/felix/framework/searchpolicy/Resolver.java
@@ -218,13 +218,14 @@
// package name; this means we have to do wildcard matching.
String dynPkgName = ((Requirement) dynReq).getPackageName();
boolean wildcard = (dynPkgName.lastIndexOf(".*") >= 0);
+ // Remove the "*", but keep the "." if wildcarded.
dynPkgName = (wildcard)
- ? dynPkgName.substring(0, dynPkgName.length() - 2) : dynPkgName;
+ ? dynPkgName.substring(0, dynPkgName.length() - 1) : dynPkgName;
// If the dynamic requirement matches the package name, then
// create a new requirement for the specific package.
if (dynPkgName.equals("*") ||
pkgName.equals(dynPkgName) ||
- (wildcard && pkgName.startsWith(dynPkgName + ".")))
+ (wildcard && pkgName.startsWith(dynPkgName)))
{
// Create a new requirement based on the dynamic requirement,
// but substitute the precise package name for which we are