[jboss-cvs] JBossAS SVN: r96383 - in projects/jboss-osgi/trunk/reactor/framework: src/main/java/org/jboss/osgi/framework/classloading and 28 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sat Nov 14 20:36:27 EST 2009


Author: thomas.diesler at jboss.com
Date: 2009-11-14 20:36:27 -0500 (Sat, 14 Nov 2009)
New Revision: 96383

Added:
   projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractImportExportTest.java
   projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/RuleBasedResolverTest.java
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/META-INF/resolver-rules.drl
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/bundlenameexport/
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/bundlenameexport/META-INF/
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/bundlenameexport/META-INF/MANIFEST.MF
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/bundlenameimport/
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/bundleversionimport/
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/bundleversionimportfails/
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/optionalimportpackage/
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/optionalrequirebundle/
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/optionalrequirebundlefails/
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/selfimport/
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/selfimport/META-INF/
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/selfimport/META-INF/MANIFEST.MF
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/versionexportpackage/
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/versionexportpackage/META-INF/
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/versionexportpackage/META-INF/MANIFEST.MF
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/versionimportpackage/
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/versionimportpackagefails/
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/versionrequirebundle/
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/versionrequirebundlefails/
Removed:
   projects/jboss-osgi/trunk/reactor/framework/src/main/resources/META-INF/resolver-rules.drl
   projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/RuleBasedResolverTest.java
Modified:
   projects/jboss-osgi/trunk/reactor/framework/pom.xml
   projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/classloading/OSGiPackageCapability.java
   projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/ParameterizedAttribute.java
   projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/VersionRange.java
   projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/ExportPackage.java
   projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/ImportPackage.java
   projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/ExportPackageImpl.java
   projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/ImportPackageImpl.java
   projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/drools/RuleBasedResolverImpl.java
   projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/classloader/ExportImportPackageUnitTestCase.java
   projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractResolverTest.java
   projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/ResolverMetadataTest.java
   projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/ResolverSmokeTest.java
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/bundlenameimport/META-INF/MANIFEST.MF
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/bundleversionimport/META-INF/MANIFEST.MF
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/bundleversionimportfails/META-INF/MANIFEST.MF
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/optionalimportpackage/META-INF/MANIFEST.MF
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/optionalrequirebundle/META-INF/MANIFEST.MF
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/optionalrequirebundlefails/META-INF/MANIFEST.MF
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/simpleexport/META-INF/MANIFEST.MF
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/simpleimport/META-INF/MANIFEST.MF
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/singleton/META-INF/MANIFEST.MF
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/versionimportpackage/META-INF/MANIFEST.MF
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/versionimportpackagefails/META-INF/MANIFEST.MF
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/versionrequirebundle/META-INF/MANIFEST.MF
   projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/versionrequirebundlefails/META-INF/MANIFEST.MF
Log:
More work on rules based resolver

Modified: projects/jboss-osgi/trunk/reactor/framework/pom.xml
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/pom.xml	2009-11-14 17:59:52 UTC (rev 96382)
+++ projects/jboss-osgi/trunk/reactor/framework/pom.xml	2009-11-15 01:36:27 UTC (rev 96383)
@@ -15,6 +15,7 @@
      Set these VM properties in your IDE debugger 
     
     -Dlog4j.output.dir=${workspace_loc:jboss-osgi-framework/target}
+    -Dorg.jboss.osgi.framework.launch.bootstrapPath=bootstrap/jboss-osgi-bootstrap.xml
   -->
 
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

Modified: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/classloading/OSGiPackageCapability.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/classloading/OSGiPackageCapability.java	2009-11-14 17:59:52 UTC (rev 96382)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/classloading/OSGiPackageCapability.java	2009-11-15 01:36:27 UTC (rev 96383)
@@ -146,27 +146,23 @@
       OSGiBundleManager bundleManager = bundleState.getBundleManager();
       Resolver bundleResolver = bundleManager.getPlugin(ResolverPlugin.class);
       
-      String location = reqModule.getContextName();
-      AbstractBundleState bundle = bundleManager.getBundleByLocation(location);
-      if (bundle == null)
-      {
-         // Is this an illegal state?
-         return false;
-      }
+      String reqLocation = reqModule.getContextName();
+      AbstractBundleState reqBundle = bundleManager.getBundleByLocation(reqLocation);
+      if (reqBundle == null)
+         throw new IllegalStateException("Cannot get bundle for: " + reqLocation);
 
       // Get the exporter for this requirement
-      ExportPackage exporter = bundleResolver.getExporter(bundle, packageRequirement.getName());
+      ExportPackage exporter = bundleResolver.getExporter(reqBundle, packageRequirement.getName());
       if (exporter == null)
          return false;
       
       // Get the exporters module
-      OSGiBundleState bundleState = OSGiBundleState.assertBundleState(exporter.getOwner().getBundle());
-      DeploymentUnit unit = bundleState.getDeploymentUnit();
-      Module otherCapModule = unit.getAttachment(Module.class);
+      OSGiBundleState exporterState = OSGiBundleState.assertBundleState(exporter.getOwner().getBundle());
+      DeploymentUnit exporterUnit = exporterState.getDeploymentUnit();
+      Module exporterModule = exporterUnit.getAttachment(Module.class);
       
-      String otherCapability = exporter.getName();
-      boolean isMatch = (otherCapModule == getModule() && otherCapability.equals(getName()));
-      return isMatch;
+      Module thisModule = getModule();
+      return exporterModule == thisModule;
    }
 
    /**

Modified: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/ParameterizedAttribute.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/ParameterizedAttribute.java	2009-11-14 17:59:52 UTC (rev 96382)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/ParameterizedAttribute.java	2009-11-15 01:36:27 UTC (rev 96383)
@@ -34,7 +34,7 @@
    /**
     * Get the attributes.
     *
-    * @return the attributes
+    * @return the attributes or an empty map
     */
    Map<String, Parameter> getAttributes();
 
@@ -70,7 +70,7 @@
    /**
     * Get the declerations
     *
-    * @return the directives
+    * @return the directives or an empty map
     */
    Map<String, Parameter> getDirectives();
 

Modified: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/VersionRange.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/VersionRange.java	2009-11-14 17:59:52 UTC (rev 96382)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/VersionRange.java	2009-11-15 01:36:27 UTC (rev 96383)
@@ -21,6 +21,7 @@
 */
 package org.jboss.osgi.framework.metadata;
 
+import org.jboss.osgi.framework.metadata.internal.AbstractVersionRange;
 import org.osgi.framework.Version;
 
 /**
@@ -32,6 +33,11 @@
 public interface VersionRange
 {
    /**
+    * The version range that matches all versions
+    */
+   static VersionRange allVersions = AbstractVersionRange.valueOf("0.0.0");
+   
+   /**
     * Get the floor version.
     *
     * @return floor version

Modified: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/ExportPackage.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/ExportPackage.java	2009-11-14 17:59:52 UTC (rev 96382)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/ExportPackage.java	2009-11-15 01:36:27 UTC (rev 96383)
@@ -37,7 +37,7 @@
    /**
     * Get the version of this export.
     * 
-    * @return the version
+    * @return the version or '0.0.0' if there is no version on the export
     */
    Version getVersion();
    
@@ -50,24 +50,28 @@
    
    /**
     * Get the list of mandadtory attributes declared by this export.
+    * 
     * @return An empty list if there are no mandatory exports declared.
     */
    List<String> getMandatoryAttributes();
    
    /**
     * Get the list of included classes in this package export.
+    * 
     * @return Null if there are no includes defined.
     */
    List<String> getIncludes();
    
    /**
     * Get the list of excluded classes in this package export.
+    * 
     * @return Null if there are no excludes defined.
     */
    List<String> getExcludes();
 
    /**
     * Get the current set of importers of this export package.
+    * 
     * @return An empty set if there is no importer
     */
    Set<ImportPackage> getImporters();

Modified: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/ImportPackage.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/ImportPackage.java	2009-11-14 17:59:52 UTC (rev 96382)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/ImportPackage.java	2009-11-15 01:36:27 UTC (rev 96383)
@@ -39,31 +39,32 @@
    /**
     * Get the version range for this import package.
     * 
-    * @return the version range
+    * @return the version range or [0.0.0,?) if there is no version range on the import
     */
    VersionRange getVersion();
 
    /**
-    * Get the resolution directive for this import package.
+    * The bundle symbolic name of the exporting bundle.
     * 
-    * @return the resolution directive
-    */
-   Resolution getResolution();
-
-   /**
-    * The bundle symbolic name of the exporting bundle.
     * @return null if this attribute is not set
     */
    String getBundleSymbolicName();
 
    /**
     * The bundle version of the exporting bundle.
+    * 
     * @return null if this attribute is not set
     */
    VersionRange getBundleVersion();
 
    /**
+    * Return true if this package import is marked optional 
+    */
+   boolean isOptional();
+   
+   /**
     * Get the exporter that this import  package is wired to.
+    * 
     * @return Null if the import is not yet resolved. 
     */
    ExportPackage getExporter();

Modified: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/ExportPackageImpl.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/ExportPackageImpl.java	2009-11-14 17:59:52 UTC (rev 96382)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/ExportPackageImpl.java	2009-11-15 01:36:27 UTC (rev 96383)
@@ -26,6 +26,7 @@
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 import org.jboss.osgi.framework.metadata.PackageAttribute;
@@ -126,10 +127,20 @@
       importers.remove(importer);
    }
    
-   @Override
+   private String toString;
    public String toString()
    {
-      String ownerStr = getOwner().getSymbolicName() + "-" + getOwner().getVersion();
-      return "ExportPackage[" + ownerStr + "[" + getName() + "-" + getVersion() + "]]";
+      if (toString == null)
+      {
+         Map<String, Parameter> attributes = getPackageMetaData().getAttributes();
+         Map<String, Parameter> directives = getPackageMetaData().getDirectives();
+         StringBuffer buffer = new StringBuffer("ExportPackage: " + getName());
+         for (Map.Entry<String, Parameter> entry : directives.entrySet())
+            buffer.append(";" + entry.getKey() + ":=" + entry.getValue().getValue());
+         for (Map.Entry<String, Parameter> entry : attributes.entrySet())
+            buffer.append(";" + entry.getKey() + "=" + entry.getValue().getValue());
+         toString = buffer.toString();
+      }
+      return toString;
    }
 }
\ No newline at end of file

Modified: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/ImportPackageImpl.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/ImportPackageImpl.java	2009-11-14 17:59:52 UTC (rev 96382)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/ImportPackageImpl.java	2009-11-15 01:36:27 UTC (rev 96383)
@@ -21,6 +21,8 @@
  */
 package org.jboss.osgi.framework.resolver.internal;
 
+import java.util.Map;
+
 import org.jboss.osgi.framework.metadata.PackageAttribute;
 import org.jboss.osgi.framework.metadata.Parameter;
 import org.jboss.osgi.framework.metadata.VersionRange;
@@ -40,7 +42,7 @@
 {
    private PackageAttribute packageMetaData;
    private ExportPackage exporter;
-   
+
    public ImportPackageImpl(Resolvable owner, String packageName)
    {
       super(owner, packageName);
@@ -67,10 +69,13 @@
 
    public VersionRange getVersion()
    {
+      VersionRange versionRange = AbstractVersionRange.valueOf("0.0.0");
       Parameter version = getPackageMetaData().getAttribute(Constants.VERSION_ATTRIBUTE);
-      return (VersionRange)(version != null ? version.getValue() : AbstractVersionRange.valueOf("0.0.0"));
+      if (version != null)
+         versionRange = AbstractVersionRange.valueOf((String)version.getValue());
+      return versionRange;
    }
-   
+
    public String getBundleSymbolicName()
    {
       return (String)getAttribute(Constants.BUNDLE_SYMBOLICNAME_ATTRIBUTE);
@@ -79,13 +84,16 @@
    public VersionRange getBundleVersion()
    {
       Parameter version = getPackageMetaData().getAttribute(Constants.BUNDLE_VERSION_ATTRIBUTE);
-      return (VersionRange)(version != null ? version.getValue() : AbstractVersionRange.valueOf("0.0.0"));
+      return (version != null ? AbstractVersionRange.valueOf((String)version.getValue()) : null);
    }
 
-   public Resolution getResolution()
+   public boolean isOptional()
    {
-      Parameter param = getPackageMetaData().getDirective(Constants.RESOLUTION_DIRECTIVE);
-      return (param != null ? Resolution.valueOf(param.getValue().toString()) : Resolution.MANDATORY);
+      boolean optional = false;
+      Parameter resolution = getPackageMetaData().getDirective(Constants.RESOLUTION_DIRECTIVE);
+      if (resolution != null)
+         optional = Constants.RESOLUTION_OPTIONAL.equals(resolution.getValue());
+      return optional;
    }
 
    public ExportPackage getExporter()
@@ -98,13 +106,23 @@
       this.exporter = exporter;
       ExportPackageImpl exporterImpl = (ExportPackageImpl)exporter;
       exporterImpl.addImporter(this);
-      
+
    }
 
-   @Override
+   private String toString;
    public String toString()
    {
-      String ownerStr = getOwner().getSymbolicName() + "-" + getOwner().getVersion();
-      return "ImportPackage[" + ownerStr + "[" + getName() + " " + getVersion() + "]]";
+      if (toString == null)
+      {
+         Map<String, Parameter> attributes = getPackageMetaData().getAttributes();
+         Map<String, Parameter> directives = getPackageMetaData().getDirectives();
+         StringBuffer buffer = new StringBuffer("ImportPackage: " + getName());
+         for (Map.Entry<String, Parameter> entry : directives.entrySet())
+            buffer.append(";" + entry.getKey() + ":=" + entry.getValue().getValue());
+         for (Map.Entry<String, Parameter> entry : attributes.entrySet())
+            buffer.append(";" + entry.getKey() + "=" + entry.getValue().getValue());
+         toString = buffer.toString();
+      }
+      return toString;
    }
 }
\ No newline at end of file

Modified: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/drools/RuleBasedResolverImpl.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/drools/RuleBasedResolverImpl.java	2009-11-14 17:59:52 UTC (rev 96382)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/drools/RuleBasedResolverImpl.java	2009-11-15 01:36:27 UTC (rev 96383)
@@ -79,8 +79,6 @@
       for (ExportPackage aux : resolvable.getExportPackages())
          facts.put(aux, ksession.insert(aux));
       
-      ksession.fireAllRules();
-      
       return resolvable;
    }
 
@@ -96,18 +94,35 @@
       for (ExportPackage aux : resolvable.getExportPackages())
          ksession.retract(facts.get(aux));
       
-      ksession.fireAllRules();
       return resolvable;
    }
 
-   public List<Resolvable> resolve(List<Bundle> bundles)
+   public List<Resolvable> resolve(List<Bundle> notused)
    {
+      ksession.fireAllRules();
+      
       List<Resolvable> resolvedBundles = new ArrayList<Resolvable>();
+      for (Resolvable aux : getBundles())
+      {
+         if (aux.isResolved())
+         {
+            resolvedBundles.add(aux);
+         }
+      }
       return Collections.unmodifiableList(resolvedBundles);
    }
 
-   public ExportPackage getExporter(Bundle bundle, String importPackage)
+   public ExportPackage getExporter(Bundle bundle, String packageName)
    {
-      return null;
+      Resolvable resolvable = getBundle(bundle);
+      if (resolvable == null)
+         throw new IllegalStateException("Cannot find resovable for: " + bundle);
+      
+      ImportPackage importPackage = resolvable.getImportPackage(packageName);
+      if (importPackage == null)
+         throw new IllegalStateException("Cannot find import package: " + packageName);
+
+      ExportPackage exporter = importPackage.getExporter();
+      return exporter;
    }
 }
\ No newline at end of file

Deleted: projects/jboss-osgi/trunk/reactor/framework/src/main/resources/META-INF/resolver-rules.drl
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/resources/META-INF/resolver-rules.drl	2009-11-14 17:59:52 UTC (rev 96382)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/resources/META-INF/resolver-rules.drl	2009-11-15 01:36:27 UTC (rev 96383)
@@ -1,63 +0,0 @@
-package org.jboss.osgi.framework.resolver
-
-declare WireCandidate
-   importPackage : ImportPackage
-   exportPackage : ExportPackage
-end
-
-rule "Add ImportPackages"
-when
-    $owner : Resolvable( importPackages.size > 0, resolved == false )
-    not ImportPackage( owner == $owner )
-then
-    System.out.println("Add ImportPackages " + $owner);
-end
-
-rule "Add ExportPackages"
-when
-    $owner : Resolvable( exportPackages.size > 0, resolved == false )
-    not ExportPackage( owner == $owner )
-then
-    System.out.println("Add ExportPackages " + $owner);
-end
-
-rule "Add WireCandidate"
-when
-    $export : ExportPackage( )
-    $import : ImportPackage( name == $export.name, exporter == null )
-then
-    WireCandidate wc = new WireCandidate();
-    wc.setImportPackage( $import );
-    wc.setExportPackage( $export );
-    
-    System.out.println("Add WireCandidate " + wc.getImportPackage() + " --> " + wc.getExportPackage());
-    insert ( wc );
-end
-
-rule "Use WireCandidate"
-when
-    $import : ImportPackage( exporter == null )
-    $wc : WireCandidate( importPackage == $import )
-    not( WireCandidate( this != $wc, importPackage == $import ) )
-then
-    System.out.println("Use WireCandidate " + $wc.getImportPackage() + " --> " + $wc.getExportPackage());
-    modify ( $wc.getImportPackage() ) { setExporter( $wc.getExportPackage() ) };
-    retract ( $wc );
-end
-
-rule "Mark resolved"
-when
-    $owner : Resolvable( resolved == false )
-    not ImportPackage( owner == $owner, exporter == null )
-then
-    System.out.println("Resolved " + $owner);
-    modify ( $owner ) { markResolved ( ) };
-end
-
-rule "Report unresolved import"
-when
-    $import : ImportPackage( exporter == null )
-then
-    System.out.println("Unresolved " + $import );
-end
-

Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/classloader/ExportImportPackageUnitTestCase.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/classloader/ExportImportPackageUnitTestCase.java	2009-11-14 17:59:52 UTC (rev 96382)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/classloader/ExportImportPackageUnitTestCase.java	2009-11-15 01:36:27 UTC (rev 96383)
@@ -186,11 +186,18 @@
 
    public void testVersionImportPackage() throws Exception
    {
+      //Bundle-Name: BundleA
+      //Bundle-Version: 1.0.0
+      //Bundle-SymbolicName: org.jboss.test.osgi.classloader.bundleA;test=x
+      //Export-Package: org.jboss.test.osgi.classloader.support.a;version=1.0.0;test=x
       Bundle bundle1 = assembleBundle("bundleA", "/bundles/classloader/bundleA", A.class);
       try
       {
          bundle1.start();
          assertLoadClass(bundle1, A.class);
+         
+         //Bundle-SymbolicName: org.jboss.test.osgi.classloader.bundleB
+         //Import-Package: org.jboss.test.osgi.classloader.support.a;version="[0.0.0,1.0.0]"
          Bundle bundle2 = assembleBundle("versionimportpackageA", "/bundles/classloader/versionimportpackageA", B.class);
          try
          {
@@ -211,11 +218,19 @@
 
    public void testVersionImportPackageFails() throws Exception
    {
+      //Bundle-Name: BundleA
+      //Bundle-Version: 1.0.0
+      //Bundle-SymbolicName: org.jboss.test.osgi.classloader.bundleA;test=x
+      //Export-Package: org.jboss.test.osgi.classloader.support.a;version=1.0.0;test=x
       Bundle bundle1 = assembleBundle("bundleA", "/bundles/classloader/bundleA", A.class);
       try
       {
          bundle1.start();
          assertLoadClass(bundle1, A.class);
+         
+         //Bundle-Name: BundleB
+         //Bundle-SymbolicName: org.jboss.test.osgi.classloader.bundleB
+         //Import-Package: org.jboss.test.osgi.classloader.support.a;version="[3.0,4.0)"
          Bundle bundle2 = assembleBundle("versionimportpackagefails", "/bundles/classloader/versionimportpackagefails", B.class);
          try
          {

Added: projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractImportExportTest.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractImportExportTest.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractImportExportTest.java	2009-11-15 01:36:27 UTC (rev 96383)
@@ -0,0 +1,593 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.osgi.resolver;
+
+// $Id$
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import org.jboss.osgi.framework.resolver.ExportPackage;
+import org.jboss.osgi.framework.resolver.ImportPackage;
+import org.jboss.osgi.framework.resolver.Resolvable;
+import org.jboss.osgi.framework.resolver.Resolver;
+import org.jboss.test.osgi.classloader.support.a.A;
+import org.jboss.virtual.VirtualFile;
+import org.junit.Test;
+import org.osgi.framework.Bundle;
+
+/**
+ * An abstract {@link Resolver} test.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 09-Nov-2009
+ */
+public abstract class AbstractImportExportTest extends AbstractResolverTest
+{
+   @Test
+   public void testSimpleImport() throws Exception
+   {
+      Resolver resolver = getTestResolver();
+      assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
+      
+      // Bundle-SymbolicName: simpleimport
+      // Import-Package: org.jboss.test.osgi.classloader.support.a
+      VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/simpleimport");
+      Bundle bundleA = framework.installBundle(fileA);
+      try
+      {
+         // Bundle-SymbolicName: simpleexport
+         // Export-Package: org.jboss.test.osgi.classloader.support.a
+         VirtualFile fileB = assembleBundle("bundleB", "/bundles/resolver/simpleexport", A.class);
+         Bundle bundleB = framework.installBundle(fileB);
+         try
+         {
+            // Resolve the installed bundles
+            resolver.resolve(null);
+            
+            // Verify resolvable for bundleA
+            Resolvable resolvableA = resolver.getBundle(bundleA);
+            assertTrue("BundleA resolved", resolvableA.isResolved());
+            ImportPackage importPackage = resolvableA.getImportPackage(A.class.getPackage().getName());
+            assertNotNull("Exporter not null", importPackage.getExporter());
+
+            // Verify that bundleA is wired to the exporter
+            ExportPackage exporter = resolver.getExporter(bundleA, A.class.getPackage().getName());
+            assertEquals(bundleB.getSymbolicName(), exporter.getOwner().getSymbolicName());
+
+            // Verify resolvable for bundleB
+            Resolvable resolvableB = resolver.getBundle(bundleB);
+            assertTrue("BundleB resolved", resolvableB.isResolved());
+            ExportPackage exportPackage = resolvableB.getExportPackage(A.class.getPackage().getName());
+            assertEquals("Importers not null", 1, exportPackage.getImporters().size());
+         }
+         finally
+         {
+            bundleB.uninstall();
+         }
+      }
+      finally
+      {
+         bundleA.uninstall();
+      }
+   }
+
+   @Test
+   public void testSimpleImportPackageFails() throws Exception
+   {
+      Resolver resolver = getTestResolver();
+      assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
+
+      // Bundle-SymbolicName: simpleimport
+      // Import-Package: org.jboss.test.osgi.classloader.support.a
+      VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/simpleimport");
+      Bundle bundleA = framework.installBundle(fileA);
+      try
+      {
+         // Resolve the installed bundles
+         resolver.resolve(null);
+         
+         // Verify resolvable for bundleA
+         Resolvable resolvableA = resolver.getBundle(bundleA);
+         assertFalse("BundleA not resolved", resolvableA.isResolved());
+         ImportPackage importPackage = resolvableA.getImportPackage(A.class.getPackage().getName());
+         assertNull("Exporter null", importPackage.getExporter());
+
+         // Verify that bundleA is not wired
+         ExportPackage exporter = resolver.getExporter(bundleA, A.class.getPackage().getName());
+         assertNull("Exporter null", exporter);
+      }
+      finally
+      {
+         bundleA.uninstall();
+      }
+   }
+
+   @Test
+   public void testSelfImportPackage() throws Exception
+   {
+      Resolver resolver = getTestResolver();
+      assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
+
+      // Bundle-SymbolicName: selfimport
+      // Export-Package: org.jboss.test.osgi.classloader.support.a
+      // Import-Package: org.jboss.test.osgi.classloader.support.a
+      VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/selfimport");
+      Bundle bundleA = framework.installBundle(fileA);
+      try
+      {
+         // Resolve the installed bundles
+         resolver.resolve(null);
+         
+         // Verify resolvable for bundleA
+         Resolvable resolvableA = resolver.getBundle(bundleA);
+         assertTrue("BundleA resolved", resolvableA.isResolved());
+         ImportPackage importPackage = resolvableA.getImportPackage(A.class.getPackage().getName());
+         assertNotNull("Exporter not null", importPackage.getExporter());
+
+         // Verify that bundleA is wired to the exporter
+         ExportPackage exporter = resolver.getExporter(bundleA, A.class.getPackage().getName());
+         assertEquals(bundleA.getSymbolicName(), exporter.getOwner().getSymbolicName());
+      }
+      finally
+      {
+         bundleA.uninstall();
+      }
+   }
+
+   @Test
+   public void testVersionImportPackage() throws Exception
+   {
+      Resolver resolver = getTestResolver();
+      assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
+
+      //Bundle-SymbolicName: versionimportpackage
+      //Import-Package: org.jboss.test.osgi.classloader.support.a;version="[0.0.0,1.0.0]"
+      VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/versionimportpackage");
+      Bundle bundleA = framework.installBundle(fileA);
+      try
+      {
+         //Bundle-SymbolicName: versionexportpackage
+         //Export-Package: org.jboss.test.osgi.classloader.support.a;version=1.0.0
+         VirtualFile fileB = assembleBundle("bundleB", "/bundles/resolver/versionexportpackage", A.class);
+         Bundle bundleB = framework.installBundle(fileB);
+         try
+         {
+            // Resolve the installed bundles
+            resolver.resolve(null);
+            
+            // Verify resolvable for bundleA
+            Resolvable resolvableA = resolver.getBundle(bundleA);
+            assertTrue("BundleA resolved", resolvableA.isResolved());
+            ImportPackage importPackage = resolvableA.getImportPackage(A.class.getPackage().getName());
+            assertNotNull("Exporter not null", importPackage.getExporter());
+
+            // Verify that bundleA is wired to the exporter
+            ExportPackage exporter = resolver.getExporter(bundleA, A.class.getPackage().getName());
+            assertEquals(bundleB.getSymbolicName(), exporter.getOwner().getSymbolicName());
+
+            // Verify resolvable for bundleB
+            Resolvable resolvableB = resolver.getBundle(bundleB);
+            assertTrue("BundleB resolved", resolvableB.isResolved());
+            ExportPackage exportPackage = resolvableB.getExportPackage(A.class.getPackage().getName());
+            assertEquals("Importers not null", 1, exportPackage.getImporters().size());
+         }
+         finally
+         {
+            bundleB.uninstall();
+         }
+      }
+      finally
+      {
+         bundleA.uninstall();
+      }
+   }
+
+   @Test
+   public void testVersionImportPackageFails() throws Exception
+   {
+      Resolver resolver = getTestResolver();
+      assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
+
+      //Bundle-SymbolicName: versionimportpackagefails
+      //Import-Package: org.jboss.test.osgi.classloader.support.a;version="[3.0,4.0)"
+      VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/versionimportpackagefails");
+      Bundle bundleA = framework.installBundle(fileA);
+      try
+      {
+         //Bundle-SymbolicName: versionexportpackage
+         //Export-Package: org.jboss.test.osgi.classloader.support.a;version=1.0.0
+         VirtualFile fileB = assembleBundle("bundleB", "/bundles/resolver/versionexportpackage", A.class);
+         Bundle bundleB = framework.installBundle(fileB);
+         try
+         {
+            // Resolve the installed bundles
+            resolver.resolve(null);
+            
+            // Verify resolvable for bundleA
+            Resolvable resolvableA = resolver.getBundle(bundleA);
+            assertFalse("BundleA not resolved", resolvableA.isResolved());
+            ImportPackage importPackage = resolvableA.getImportPackage(A.class.getPackage().getName());
+            assertNull("Exporter null", importPackage.getExporter());
+
+            // Verify that bundleA is not wired
+            ExportPackage exporter = resolver.getExporter(bundleA, A.class.getPackage().getName());
+            assertNull("Exporter null", exporter);
+
+            // Verify resolvable for bundleB
+            Resolvable resolvableB = resolver.getBundle(bundleB);
+            assertTrue("BundleB resolved", resolvableB.isResolved());
+            ExportPackage exportPackage = resolvableB.getExportPackage(A.class.getPackage().getName());
+            assertEquals("Importers null", 0, exportPackage.getImporters().size());
+         }
+         finally
+         {
+            bundleB.uninstall();
+         }
+      }
+      finally
+      {
+         bundleA.uninstall();
+      }
+   }
+
+   @Test
+   public void testOptionalImportPackage() throws Exception
+   {
+      Resolver resolver = getTestResolver();
+      assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
+
+      //Bundle-SymbolicName: optionalimportpackage
+      //Import-Package: org.jboss.test.osgi.classloader.support.a;resolution:=optional
+      VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/optionalimportpackage");
+      Bundle bundleA = framework.installBundle(fileA);
+      try
+      {
+         // Resolve the installed bundles
+         resolver.resolve(null);
+         
+         // Verify resolvable for bundleA
+         Resolvable resolvableA = resolver.getBundle(bundleA);
+         assertTrue("BundleA resolved", resolvableA.isResolved());
+         ImportPackage importPackage = resolvableA.getImportPackage(A.class.getPackage().getName());
+         assertNull("Exporter null", importPackage.getExporter());
+
+         // Verify that bundleA is not wired to an exporter
+         ExportPackage exporter = resolver.getExporter(bundleA, A.class.getPackage().getName());
+         assertNull("Exporter null", exporter);
+      }
+      finally
+      {
+         bundleA.uninstall();
+      }
+   }
+
+   @Test
+   public void testOptionalImportPackageWired() throws Exception
+   {
+      Resolver resolver = getTestResolver();
+      assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
+
+      //Bundle-SymbolicName: optionalimportpackage
+      //Import-Package: org.jboss.test.osgi.classloader.support.a;resolution:=optional
+      VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/optionalimportpackage");
+      Bundle bundleA = framework.installBundle(fileA);
+      try
+      {
+         // Bundle-SymbolicName: simpleexport
+         // Export-Package: org.jboss.test.osgi.classloader.support.a
+         VirtualFile fileB = assembleBundle("bundleB", "/bundles/resolver/simpleexport", A.class);
+         Bundle bundleB = framework.installBundle(fileB);
+         try
+         {
+            // Resolve the installed bundles
+            resolver.resolve(null);
+            
+            // Verify resolvable for bundleA
+            Resolvable resolvableA = resolver.getBundle(bundleA);
+            assertTrue("BundleA resolved", resolvableA.isResolved());
+            ImportPackage importPackage = resolvableA.getImportPackage(A.class.getPackage().getName());
+            assertNotNull("Exporter not null", importPackage.getExporter());
+
+            // Verify that bundleA is wired to an exporter
+            ExportPackage exporter = resolver.getExporter(bundleA, A.class.getPackage().getName());
+            assertEquals(bundleB.getSymbolicName(), exporter.getOwner().getSymbolicName());
+            
+            // Verify resolvable for bundleB
+            Resolvable resolvableB = resolver.getBundle(bundleB);
+            assertTrue("BundleB resolved", resolvableB.isResolved());
+            ExportPackage exportPackage = resolvableB.getExportPackage(A.class.getPackage().getName());
+            assertEquals("Importers not null", 1, exportPackage.getImporters().size());
+         }
+         finally
+         {
+            bundleB.uninstall();
+         }
+      }
+      finally
+      {
+         bundleA.uninstall();
+      }
+   }
+
+   @Test
+   public void testOptionalImportPackageNotWired() throws Exception
+   {
+      Resolver resolver = getTestResolver();
+      assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
+
+      //Bundle-SymbolicName: optionalimportpackage
+      //Import-Package: org.jboss.test.osgi.classloader.support.a;resolution:=optional
+      VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/optionalimportpackage");
+      Bundle bundleA = framework.installBundle(fileA);
+      try
+      {
+         // Resolve the installed bundles
+         resolver.resolve(null);
+         
+         // Bundle-SymbolicName: simpleexport
+         // Export-Package: org.jboss.test.osgi.classloader.support.a
+         VirtualFile fileB = assembleBundle("bundleB", "/bundles/resolver/simpleexport", A.class);
+         Bundle bundleB = framework.installBundle(fileB);
+         try
+         {
+            // Resolve the installed bundles
+            resolver.resolve(null);
+            
+            // Verify resolvable for bundleA
+            Resolvable resolvableA = resolver.getBundle(bundleA);
+            assertTrue("BundleA resolved", resolvableA.isResolved());
+            ImportPackage importPackage = resolvableA.getImportPackage(A.class.getPackage().getName());
+            assertNull("Exporter null", importPackage.getExporter());
+
+            // Verify that bundleA is not wired to an exporter
+            ExportPackage exporter = resolver.getExporter(bundleA, A.class.getPackage().getName());
+            assertNull("Exporter null", exporter);
+            
+            // Verify resolvable for bundleB
+            Resolvable resolvableB = resolver.getBundle(bundleB);
+            assertTrue("BundleB resolved", resolvableB.isResolved());
+            ExportPackage exportPackage = resolvableB.getExportPackage(A.class.getPackage().getName());
+            assertEquals("Importers null", 0, exportPackage.getImporters().size());
+         }
+         finally
+         {
+            bundleB.uninstall();
+         }
+      }
+      finally
+      {
+         bundleA.uninstall();
+      }
+   }
+
+   @Test
+   public void testBundleNameImportPackage() throws Exception
+   {
+      Resolver resolver = getTestResolver();
+      assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
+      
+      //Bundle-SymbolicName: bundlenameimport
+      //Import-Package: org.jboss.test.osgi.classloader.support.a;bundle-symbolic-name=bundlenameexport
+      VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/bundlenameimport");
+      Bundle bundleA = framework.installBundle(fileA);
+      try
+      {
+         //Bundle-SymbolicName: bundlenameexport
+         //Export-Package: org.jboss.test.osgi.classloader.support.a
+         VirtualFile fileB = assembleBundle("bundleB", "/bundles/resolver/bundlenameexport", A.class);
+         Bundle bundleB = framework.installBundle(fileB);
+         try
+         {
+            // Resolve the installed bundles
+            resolver.resolve(null);
+            
+            // Verify resolvable for bundleA
+            Resolvable resolvableA = resolver.getBundle(bundleA);
+            assertTrue("BundleA resolved", resolvableA.isResolved());
+            ImportPackage importPackage = resolvableA.getImportPackage(A.class.getPackage().getName());
+            assertNotNull("Exporter not null", importPackage.getExporter());
+
+            // Verify that bundleA is wired to the exporter
+            ExportPackage exporter = resolver.getExporter(bundleA, A.class.getPackage().getName());
+            assertEquals(bundleB.getSymbolicName(), exporter.getOwner().getSymbolicName());
+
+            // Verify resolvable for bundleB
+            Resolvable resolvableB = resolver.getBundle(bundleB);
+            assertTrue("BundleB resolved", resolvableB.isResolved());
+            ExportPackage exportPackage = resolvableB.getExportPackage(A.class.getPackage().getName());
+            assertEquals("Importers not null", 1, exportPackage.getImporters().size());
+         }
+         finally
+         {
+            bundleB.uninstall();
+         }
+      }
+      finally
+      {
+         bundleA.uninstall();
+      }
+   }
+
+   @Test
+   public void testBundleNameImportPackageFails() throws Exception
+   {
+      Resolver resolver = getTestResolver();
+      assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
+      
+      //Bundle-SymbolicName: bundlenameimport
+      //Import-Package: org.jboss.test.osgi.classloader.support.a;bundle-symbolic-name=bundlenameexport
+      VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/bundlenameimport");
+      Bundle bundleA = framework.installBundle(fileA);
+      try
+      {
+         // Bundle-SymbolicName: simpleexport
+         // Export-Package: org.jboss.test.osgi.classloader.support.a
+         VirtualFile fileB = assembleBundle("bundleB", "/bundles/resolver/simpleexport", A.class);
+         Bundle bundleB = framework.installBundle(fileB);
+         try
+         {
+            // Resolve the installed bundles
+            resolver.resolve(null);
+            
+            // Verify resolvable for bundleA
+            Resolvable resolvableA = resolver.getBundle(bundleA);
+            assertFalse("BundleA not resolved", resolvableA.isResolved());
+            ImportPackage importPackage = resolvableA.getImportPackage(A.class.getPackage().getName());
+            assertNull("Exporter null", importPackage.getExporter());
+
+            // Verify that bundleA is not wired
+            ExportPackage exporter = resolver.getExporter(bundleA, A.class.getPackage().getName());
+            assertNull("Exporter null", exporter);
+
+            // Verify resolvable for bundleB
+            Resolvable resolvableB = resolver.getBundle(bundleB);
+            assertTrue("BundleB resolved", resolvableB.isResolved());
+            ExportPackage exportPackage = resolvableB.getExportPackage(A.class.getPackage().getName());
+            assertEquals("Importers null", 0, exportPackage.getImporters().size());
+         }
+         finally
+         {
+            bundleB.uninstall();
+         }
+      }
+      finally
+      {
+         bundleA.uninstall();
+      }
+   }
+
+   @Test
+   public void testBundleVersionImportPackage() throws Exception
+   {
+      Resolver resolver = getTestResolver();
+      assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
+
+      //Bundle-SymbolicName: bundleversionimport
+      //Import-Package: org.jboss.test.osgi.classloader.support.a;bundle-version="[0.0.0,1.0.0)"
+      VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/bundleversionimport");
+      Bundle bundleA = framework.installBundle(fileA);
+      try
+      {
+         // Resolve the installed bundles
+         resolver.resolve(null);
+         
+         // Bundle-SymbolicName: simpleexport
+         // Export-Package: org.jboss.test.osgi.classloader.support.a
+         VirtualFile fileB = assembleBundle("bundleB", "/bundles/resolver/simpleexport", A.class);
+         Bundle bundleB = framework.installBundle(fileB);
+         try
+         {
+            // Resolve the installed bundles
+            resolver.resolve(null);
+            
+            // Verify resolvable for bundleA
+            Resolvable resolvableA = resolver.getBundle(bundleA);
+            assertTrue("BundleA resolved", resolvableA.isResolved());
+            ImportPackage importPackage = resolvableA.getImportPackage(A.class.getPackage().getName());
+            assertNotNull("Exporter not null", importPackage.getExporter());
+
+            // Verify that bundleA is wired to an exporter
+            ExportPackage exporter = resolver.getExporter(bundleA, A.class.getPackage().getName());
+            assertEquals(bundleB.getSymbolicName(), exporter.getOwner().getSymbolicName());
+            
+            // Verify resolvable for bundleB
+            Resolvable resolvableB = resolver.getBundle(bundleB);
+            assertTrue("BundleB resolved", resolvableB.isResolved());
+            ExportPackage exportPackage = resolvableB.getExportPackage(A.class.getPackage().getName());
+            assertEquals("Importers not null", 1, exportPackage.getImporters().size());
+         }
+         finally
+         {
+            bundleB.uninstall();
+         }
+      }
+      finally
+      {
+         bundleA.uninstall();
+      }
+   }
+
+   @Test
+   public void testBundleVersionImportPackageFails() throws Exception
+   {
+      Resolver resolver = getTestResolver();
+      assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
+
+      //Bundle-SymbolicName: bundleversionimportfails
+      //Import-Package: org.jboss.test.osgi.classloader.support.a;bundle-version="[1.0.0,2.0.0)"
+      VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/bundleversionimportfails");
+      Bundle bundleA = framework.installBundle(fileA);
+      try
+      {
+         // Resolve the installed bundles
+         resolver.resolve(null);
+         
+         // Bundle-SymbolicName: simpleexport
+         // Export-Package: org.jboss.test.osgi.classloader.support.a
+         VirtualFile fileB = assembleBundle("bundleB", "/bundles/resolver/simpleexport", A.class);
+         Bundle bundleB = framework.installBundle(fileB);
+         try
+         {
+            // Resolve the installed bundles
+            resolver.resolve(null);
+            
+            // Verify resolvable for bundleA
+            Resolvable resolvableA = resolver.getBundle(bundleA);
+            assertFalse("BundleA not resolved", resolvableA.isResolved());
+            ImportPackage importPackage = resolvableA.getImportPackage(A.class.getPackage().getName());
+            assertNull("Exporter null", importPackage.getExporter());
+
+            // Verify that bundleA is not wired
+            ExportPackage exporter = resolver.getExporter(bundleA, A.class.getPackage().getName());
+            assertNull("Exporter null", exporter);
+            
+            // Verify resolvable for bundleB
+            Resolvable resolvableB = resolver.getBundle(bundleB);
+            assertTrue("BundleB resolved", resolvableB.isResolved());
+            ExportPackage exportPackage = resolvableB.getExportPackage(A.class.getPackage().getName());
+            assertEquals("Importers null", 0, exportPackage.getImporters().size());
+         }
+         finally
+         {
+            bundleB.uninstall();
+         }
+      }
+      finally
+      {
+         bundleA.uninstall();
+      }
+   }
+
+   @Test
+   public void testAttributeImportPackage() throws Exception
+   {
+   }
+
+   @Test
+   public void testAttributeImportPackageFails() throws Exception
+   {
+   }
+}
\ No newline at end of file


Property changes on: projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractImportExportTest.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractResolverTest.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractResolverTest.java	2009-11-14 17:59:52 UTC (rev 96382)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractResolverTest.java	2009-11-15 01:36:27 UTC (rev 96383)
@@ -25,13 +25,14 @@
 
 import org.jboss.osgi.framework.bundle.OSGiBundleManager;
 import org.jboss.osgi.framework.launch.OSGiFramework;
+import org.jboss.osgi.framework.plugins.Plugin;
 import org.jboss.osgi.framework.plugins.ResolverPlugin;
 import org.jboss.osgi.framework.resolver.Resolver;
 import org.jboss.osgi.spi.framework.OSGiBootstrap;
 import org.jboss.osgi.spi.framework.OSGiBootstrapProvider;
-import org.jboss.osgi.testing.OSGiTestHelper;
-import org.jboss.virtual.VirtualFile;
+import org.jboss.osgi.testing.OSGiTest;
 import org.junit.AfterClass;
+import org.junit.Before;
 import org.junit.BeforeClass;
 import org.osgi.framework.BundleException;
 
@@ -41,10 +42,10 @@
  * @author thomas.diesler at jboss.com
  * @since 09-Nov-2009
  */
-public abstract class AbstractResolverTest 
+public abstract class AbstractResolverTest extends OSGiTest
 {
    protected static OSGiFramework framework;
-   
+
    @BeforeClass
    public static void beforeClass() throws BundleException
    {
@@ -52,7 +53,7 @@
       framework = (OSGiFramework)bootProvider.getFramework();
       framework.start();
    }
-   
+
    @AfterClass
    public static void afterClass() throws BundleException
    {
@@ -62,20 +63,29 @@
          framework = null;
       }
    }
-   
-   protected Resolver getResolver()
+
+   @Before
+   public void setUp() throws Exception
    {
-      OSGiBundleManager bundleManager = framework.getBundleManager();
-      return bundleManager.getPlugin(ResolverPlugin.class);
+      Resolver installedPlugin = getInstalledResolver();
+      Resolver testResolver = getTestResolver();
+      if (installedPlugin.getClass() != testResolver.getClass())
+      {
+         OSGiBundleManager bundleManager = framework.getBundleManager();
+         bundleManager.removePlugin((Plugin)installedPlugin);
+         bundleManager.addPlugin((Plugin)testResolver);
+      }
    }
 
-   public VirtualFile assembleBundle(String name, String resource, Class<?>... packages) throws Exception
+   // Overwrite to provide a different resolver
+   protected Resolver getTestResolver()
    {
-      return new OSGiTestHelper().assembleBundle(name, resource, packages);
+      return getInstalledResolver();
    }
 
-   public VirtualFile assembleBundle(String name, String[] resources, Class<?>... packages) throws Exception
+   protected Resolver getInstalledResolver()
    {
-      return new OSGiTestHelper().assembleBundle(name, resources, packages);
+      OSGiBundleManager bundleManager = framework.getBundleManager();
+      return bundleManager.getPlugin(ResolverPlugin.class);
    }
 }
\ No newline at end of file

Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/ResolverMetadataTest.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/ResolverMetadataTest.java	2009-11-14 17:59:52 UTC (rev 96382)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/ResolverMetadataTest.java	2009-11-15 01:36:27 UTC (rev 96383)
@@ -52,13 +52,13 @@
    @Test
    public void testSimpleExport() throws Exception
    {
-      // Bundle-SymbolicName: resolver-simpleexport
+      // Bundle-SymbolicName: simpleexport
       // Export-Package: org.jboss.test.osgi.classloader.support.a
       VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/simpleexport", A.class);
       Bundle bundleA = framework.installBundle(fileA);
       try
       {
-         Resolver resolver = getResolver();
+         Resolver resolver = getTestResolver();
          assertEquals(1, resolver.getBundles().size());
          
          Resolvable resolvableA = resolver.getBundle(bundleA.getSymbolicName(), null);
@@ -71,7 +71,7 @@
          assertNotNull("Resolvable not null", resolvableA);
          
          assertNotNull(resolvableA.getBundle());
-         assertEquals("resolver-simpleexport", resolvableA.getSymbolicName());
+         assertEquals("simpleexport", resolvableA.getSymbolicName());
          assertEquals(Version.emptyVersion, resolvableA.getVersion());
          
          List<ExportPackage> exportPackages = resolvableA.getExportPackages();
@@ -104,13 +104,13 @@
    @Test
    public void testSimpleImport() throws Exception
    {
-      // Bundle-SymbolicName: resolver-simpleimport
+      // Bundle-SymbolicName: simpleimport
       // Import-Package: org.jboss.test.osgi.classloader.support.a
       VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/simpleimport");
       Bundle bundleA = framework.installBundle(fileA);
       try
       {
-         Resolvable resolvableA = getResolver().getBundle(bundleA);
+         Resolvable resolvableA = getTestResolver().getBundle(bundleA);
          
          List<ImportPackage> importPackages = resolvableA.getImportPackages();
          assertNotNull("ImportPackages not null", importPackages);
@@ -122,7 +122,7 @@
 
          assertEquals("[0.0.0,?)", importPackage.getVersion().toString());
          assertNull("Null bundle-symbolic-name", importPackage.getBundleSymbolicName());
-         assertEquals("[0.0.0,?)", importPackage.getBundleVersion().toString());
+         assertNull("Null bundle-version", importPackage.getBundleVersion());
       }
       finally
       {
@@ -133,13 +133,13 @@
    @Test
    public void testSingleton() throws Exception
    {
-      // Bundle-SymbolicName: resolver-singleton;singleton:=true
+      // Bundle-SymbolicName: singleton;singleton:=true
       // Export-Package: org.jboss.test.osgi.classloader.support.a
       VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/singleton", A.class);
       Bundle bundleA = framework.installBundle(fileA);
       try
       {
-         Resolvable resolvableA = getResolver().getBundle(bundleA);
+         Resolvable resolvableA = getTestResolver().getBundle(bundleA);
          assertTrue("Sigleton", resolvableA.isSingleton());
       }
       finally

Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/ResolverSmokeTest.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/ResolverSmokeTest.java	2009-11-14 17:59:52 UTC (rev 96382)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/ResolverSmokeTest.java	2009-11-15 01:36:27 UTC (rev 96383)
@@ -34,13 +34,13 @@
 import org.jboss.osgi.framework.plugins.ResolverPlugin;
 import org.jboss.osgi.framework.resolver.Resolvable;
 import org.jboss.osgi.framework.resolver.Resolver;
-import org.jboss.osgi.spi.util.ServiceLoader;
+import org.jboss.osgi.spi.framework.OSGiBootstrap;
+import org.jboss.osgi.spi.framework.OSGiBootstrapProvider;
 import org.jboss.osgi.testing.OSGiTest;
 import org.junit.Test;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.BundleException;
-import org.osgi.framework.launch.FrameworkFactory;
 
 /**
  * Smoketest for the {@link Resolver}
@@ -53,16 +53,15 @@
    @Test
    public void testBundleResolver() throws BundleException
    {
-      FrameworkFactory factory = ServiceLoader.loadService(FrameworkFactory.class);
-      OSGiFramework framework = (OSGiFramework)factory.newFramework(null);
+      OSGiBootstrapProvider bootProvider = OSGiBootstrap.getBootstrapProvider();
+      OSGiFramework framework = (OSGiFramework)bootProvider.getFramework();
+      framework.start();
       
-      OSGiBundleManager bundleManager = framework.getBundleManager();
-      Resolver resolver = bundleManager.getPlugin(ResolverPlugin.class);
-      
       try
       {
-         framework.start();
-
+         OSGiBundleManager bundleManager = framework.getBundleManager();
+         Resolver resolver = bundleManager.getPlugin(ResolverPlugin.class);
+         
          List<String> bundlePaths = new ArrayList<String>();
          bundlePaths.add("bundles/jboss-osgi-apache-xerces.jar");
          bundlePaths.add("bundles/jboss-osgi-common.jar");

Deleted: projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/RuleBasedResolverTest.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/RuleBasedResolverTest.java	2009-11-14 17:59:52 UTC (rev 96382)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/RuleBasedResolverTest.java	2009-11-15 01:36:27 UTC (rev 96383)
@@ -1,97 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.test.osgi.resolver;
-
-// $Id$
-
-import static org.junit.Assert.*;
-
-import org.jboss.osgi.framework.bundle.OSGiBundleManager;
-import org.jboss.osgi.framework.plugins.ResolverPlugin;
-import org.jboss.osgi.framework.resolver.ExportPackage;
-import org.jboss.osgi.framework.resolver.ImportPackage;
-import org.jboss.osgi.framework.resolver.Resolvable;
-import org.jboss.osgi.framework.resolver.Resolver;
-import org.jboss.osgi.framework.resolver.internal.drools.RuleBasedResolverImpl;
-import org.jboss.test.osgi.classloader.support.a.A;
-import org.jboss.virtual.VirtualFile;
-import org.junit.Before;
-import org.junit.Test;
-import org.osgi.framework.Bundle;
-
-/**
- * Test the rule based {@link Resolver}
- * 
- * @author thomas.diesler at jboss.com
- * @since 27-Jul-2009
- */
-public class RuleBasedResolverTest extends AbstractResolverTest
-{
-   @Before
-   public void setUp() throws Exception
-   {
-      OSGiBundleManager bundleManager = framework.getBundleManager();
-      ResolverPlugin resolver = bundleManager.getPlugin(ResolverPlugin.class);
-      if ((resolver instanceof RuleBasedResolverImpl) == false)
-      {
-         bundleManager.removePlugin(resolver);
-         bundleManager.addPlugin(new RuleBasedResolverImpl(bundleManager));
-      }
-   }
-
-   @Test
-   public void testSimpleImport() throws Exception
-   {
-      // Bundle-SymbolicName: resolver-simpleimport
-      // Import-Package: org.jboss.test.osgi.classloader.support.a
-      VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/simpleimport");
-      Bundle bundleA = framework.installBundle(fileA);
-      try
-      {
-         // Bundle-SymbolicName: resolver-simpleexport
-         // Import-Package: org.jboss.test.osgi.classloader.support.a
-         VirtualFile fileB = assembleBundle("bundleB", "/bundles/resolver/simpleexport", A.class);
-         Bundle bundleB = framework.installBundle(fileB);
-         try
-         {
-            Resolver resolver = getResolver();
-            Resolvable resolvableA = resolver.getBundle(bundleA);
-            assertTrue("BundleA resolved", resolvableA.isResolved());
-            ImportPackage importPackage = resolvableA.getImportPackage(A.class.getPackage().getName());
-            assertNotNull("Exporter not null", importPackage.getExporter());
-
-            Resolvable resolvableB = resolver.getBundle(bundleB);
-            assertTrue("BundleB resolved", resolvableB.isResolved());
-            ExportPackage exportPackage = resolvableB.getExportPackage(A.class.getPackage().getName());
-            assertEquals("Importers not null", 1, exportPackage.getImporters().size());
-         }
-         finally
-         {
-            bundleB.uninstall();
-         }
-      }
-      finally
-      {
-         bundleA.uninstall();
-      }
-   }
-}
\ No newline at end of file

Copied: projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/RuleBasedResolverTest.java (from rev 96369, projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/RuleBasedResolverTest.java)
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/RuleBasedResolverTest.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/RuleBasedResolverTest.java	2009-11-15 01:36:27 UTC (rev 96383)
@@ -0,0 +1,49 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.osgi.resolver;
+
+// $Id$
+
+import org.jboss.osgi.framework.bundle.OSGiBundleManager;
+import org.jboss.osgi.framework.resolver.Resolver;
+import org.jboss.osgi.framework.resolver.internal.drools.RuleBasedResolverImpl;
+
+/**
+ * Test the rule based {@link Resolver}
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 10-Nov-2009
+ */
+public class RuleBasedResolverTest extends AbstractImportExportTest
+{
+   @Override
+   protected Resolver getTestResolver()
+   {
+      Resolver resolver = getInstalledResolver();
+      if (resolver.getClass() != RuleBasedResolverImpl.class)
+      {
+         OSGiBundleManager bundleManager = framework.getBundleManager();
+         resolver = new RuleBasedResolverImpl(bundleManager);
+      }
+      return resolver;
+   }
+}
\ No newline at end of file

Copied: projects/jboss-osgi/trunk/reactor/framework/src/test/resources/META-INF/resolver-rules.drl (from rev 96374, projects/jboss-osgi/trunk/reactor/framework/src/main/resources/META-INF/resolver-rules.drl)
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/resources/META-INF/resolver-rules.drl	                        (rev 0)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/resources/META-INF/resolver-rules.drl	2009-11-15 01:36:27 UTC (rev 96383)
@@ -0,0 +1,103 @@
+package org.jboss.osgi.framework.resolver
+
+import org.jboss.osgi.framework.metadata.VersionRange
+import org.osgi.framework.Version
+
+function boolean inRange(VersionRange range, Version version) 
+{
+   return range.isInRange(version);
+}
+
+function void log(String message) 
+{
+   # System.out.println(message);
+}
+
+declare WireCandidate
+   importPackage : ImportPackage
+   exportPackage : ExportPackage
+end
+
+rule "Add WireCandidate"
+salience 1000
+when
+    $export : ExportPackage( )
+    $import : ImportPackage( name == $export.name, exporter == null )
+then
+    WireCandidate wc = new WireCandidate();
+    wc.setImportPackage( $import );
+    wc.setExportPackage( $export );
+    
+    log("Add WireCandidate " + wc.getImportPackage() + " --> " + wc.getExportPackage());
+    insert ( wc );
+end
+
+rule "Retract package version miss-match"
+salience 100
+when
+    $import : ImportPackage( exporter == null, version != VersionRange.allVersions )
+    $wc : WireCandidate( importPackage == $import )
+    not( eval( inRange( $import.getVersion(), $wc.getExportPackage().getVersion())))
+then
+    log("Retract package version " + $wc.getExportPackage());
+    retract ( $wc );
+end
+
+rule "Retract bundle symbolic name miss-match"
+salience 100
+when
+    $import : ImportPackage( exporter == null, bundleSymbolicName != null )
+    $wc : WireCandidate( importPackage == $import, exportPackage.owner.symbolicName != $import.bundleSymbolicName )
+then
+    log("Retract bundle symbolic name " + $wc.getExportPackage().getOwner());
+    retract ( $wc );
+end
+
+rule "Retract bundle version miss-match"
+salience 100
+when
+    $import : ImportPackage( exporter == null, bundleVersion != null )
+    $wc : WireCandidate( importPackage == $import )
+    not( eval( inRange( $import.getBundleVersion(), $wc.getExportPackage().getOwner().getVersion())))
+then
+    log("Retract bundle version " + $wc.getExportPackage().getOwner());
+    retract ( $wc );
+end
+
+rule "Retract optional imports"
+salience 10
+when
+    $import : ImportPackage( exporter == null, optional == true )
+    not( WireCandidate( importPackage == $import ) )
+then
+    log("Retract optional " + $import);
+    retract ( $import );
+end
+
+rule "Use WireCandidate"
+when
+    $import : ImportPackage( exporter == null )
+    $wc : WireCandidate( importPackage == $import )
+    not( WireCandidate( this != $wc, importPackage == $import ) )
+then
+    log("Use WireCandidate " + $wc.getImportPackage() + " --> " + $wc.getExportPackage());
+    modify ( $wc.getImportPackage() ) { setExporter( $wc.getExportPackage() ) };
+    retract ( $wc );
+end
+
+rule "Mark resolved"
+when
+    $owner : Resolvable( resolved == false )
+    not( ImportPackage( owner == $owner, exporter == null ))
+then
+    log("Resolved " + $owner);
+    modify ( $owner ) { markResolved ( ) };
+end
+
+rule "Report unresolved import"
+when
+    $import : ImportPackage( exporter == null )
+then
+    log("Unresolved " + $import );
+end
+

Added: projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/bundlenameexport/META-INF/MANIFEST.MF
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/bundlenameexport/META-INF/MANIFEST.MF	                        (rev 0)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/bundlenameexport/META-INF/MANIFEST.MF	2009-11-15 01:36:27 UTC (rev 96383)
@@ -0,0 +1,3 @@
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: bundlenameexport
+Export-Package: org.jboss.test.osgi.classloader.support.a

Copied: projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/bundlenameimport (from rev 96374, projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/classloader/bundlenameimportpackageA)

Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/bundlenameimport/META-INF/MANIFEST.MF
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/classloader/bundlenameimportpackageA/META-INF/MANIFEST.MF	2009-11-13 19:58:19 UTC (rev 96374)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/bundlenameimport/META-INF/MANIFEST.MF	2009-11-15 01:36:27 UTC (rev 96383)
@@ -1,7 +1,3 @@
-Manifest-Version: 1.0
-Implementation-Title: JBoss OSGi tests
-Implementation-Version: test
-Implementation-Vendor: jboss.org
-Bundle-Name: BundleB
-Bundle-SymbolicName: org.jboss.test.osgi.classloader.bundleB
-Import-Package: org.jboss.test.osgi.classloader.support.a;bundle-symbolic-name=org.jboss.test.osgi.classloader.bundleA
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: bundlenameimport
+Import-Package: org.jboss.test.osgi.classloader.support.a;bundle-symbolic-name=bundlenameexport

Copied: projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/bundleversionimport (from rev 96374, projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/classloader/bundleversionimportpackageA)

Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/bundleversionimport/META-INF/MANIFEST.MF
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/classloader/bundleversionimportpackageA/META-INF/MANIFEST.MF	2009-11-13 19:58:19 UTC (rev 96374)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/bundleversionimport/META-INF/MANIFEST.MF	2009-11-15 01:36:27 UTC (rev 96383)
@@ -1,7 +1,3 @@
-Manifest-Version: 1.0
-Implementation-Title: JBoss OSGi tests
-Implementation-Version: test
-Implementation-Vendor: jboss.org
-Bundle-Name: BundleB
-Bundle-SymbolicName: org.jboss.test.osgi.classloader.bundleB
-Import-Package: org.jboss.test.osgi.classloader.support.a;bundle-version="[0.0.0,1.0.0]"
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: bundleversionimport
+Import-Package: org.jboss.test.osgi.classloader.support.a;bundle-version="[0.0.0,1.0.0)"

Copied: projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/bundleversionimportfails (from rev 96374, projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/classloader/bundleversionimportpackagefails)

Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/bundleversionimportfails/META-INF/MANIFEST.MF
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/classloader/bundleversionimportpackagefails/META-INF/MANIFEST.MF	2009-11-13 19:58:19 UTC (rev 96374)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/bundleversionimportfails/META-INF/MANIFEST.MF	2009-11-15 01:36:27 UTC (rev 96383)
@@ -1,7 +1,3 @@
-Manifest-Version: 1.0
-Implementation-Title: JBoss OSGi tests
-Implementation-Version: test
-Implementation-Vendor: jboss.org
-Bundle-Name: BundleB
-Bundle-SymbolicName: org.jboss.test.osgi.classloader.bundleB
-Import-Package: org.jboss.test.osgi.classloader.support.a;bundle-version="[0.0.0,1.0.0)"
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: bundleversionimportfails
+Import-Package: org.jboss.test.osgi.classloader.support.a;bundle-version="[1.0.0,2.0.0)"

Copied: projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/optionalimportpackage (from rev 96374, projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/classloader/optionalimportpackageA)

Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/optionalimportpackage/META-INF/MANIFEST.MF
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/classloader/optionalimportpackageA/META-INF/MANIFEST.MF	2009-11-13 19:58:19 UTC (rev 96374)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/optionalimportpackage/META-INF/MANIFEST.MF	2009-11-15 01:36:27 UTC (rev 96383)
@@ -1,7 +1,3 @@
-Manifest-Version: 1.0
-Implementation-Title: JBoss OSGi tests
-Implementation-Version: test
-Implementation-Vendor: jboss.org
-Bundle-Name: BundleB
-Bundle-SymbolicName: org.jboss.test.osgi.classloader.bundleB
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: optionalimportpackage
 Import-Package: org.jboss.test.osgi.classloader.support.a;resolution:=optional

Copied: projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/optionalrequirebundle (from rev 96374, projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/classloader/optionalrequirebundleA)

Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/optionalrequirebundle/META-INF/MANIFEST.MF
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/classloader/optionalrequirebundleA/META-INF/MANIFEST.MF	2009-11-13 19:58:19 UTC (rev 96374)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/optionalrequirebundle/META-INF/MANIFEST.MF	2009-11-15 01:36:27 UTC (rev 96383)
@@ -1,7 +1,3 @@
-Manifest-Version: 1.0
-Implementation-Title: JBoss OSGi tests
-Implementation-Version: test
-Implementation-Vendor: jboss.org
-Bundle-Name: BundleB
+Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.jboss.test.osgi.classloader.bundleB
 Require-Bundle: org.jboss.test.osgi.classloader.bundleA;resolution:=optional

Copied: projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/optionalrequirebundlefails (from rev 96374, projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/classloader/optionalrequirebundlefails)

Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/optionalrequirebundlefails/META-INF/MANIFEST.MF
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/classloader/optionalrequirebundlefails/META-INF/MANIFEST.MF	2009-11-13 19:58:19 UTC (rev 96374)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/optionalrequirebundlefails/META-INF/MANIFEST.MF	2009-11-15 01:36:27 UTC (rev 96383)
@@ -1,7 +1,3 @@
-Manifest-Version: 1.0
-Implementation-Title: JBoss OSGi tests
-Implementation-Version: test
-Implementation-Vendor: jboss.org
-Bundle-Name: BundleB
+Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.jboss.test.osgi.classloader.bundleB
 Require-Bundle: doesnotexist;resolution:=optional

Added: projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/selfimport/META-INF/MANIFEST.MF
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/selfimport/META-INF/MANIFEST.MF	                        (rev 0)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/selfimport/META-INF/MANIFEST.MF	2009-11-15 01:36:27 UTC (rev 96383)
@@ -0,0 +1,4 @@
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: selfimport
+Export-Package: org.jboss.test.osgi.classloader.support.a
+Import-Package: org.jboss.test.osgi.classloader.support.a

Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/simpleexport/META-INF/MANIFEST.MF
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/simpleexport/META-INF/MANIFEST.MF	2009-11-14 17:59:52 UTC (rev 96382)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/simpleexport/META-INF/MANIFEST.MF	2009-11-15 01:36:27 UTC (rev 96383)
@@ -1,4 +1,3 @@
-Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
-Bundle-SymbolicName: resolver-simpleexport
+Bundle-SymbolicName: simpleexport
 Export-Package: org.jboss.test.osgi.classloader.support.a

Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/simpleimport/META-INF/MANIFEST.MF
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/simpleimport/META-INF/MANIFEST.MF	2009-11-14 17:59:52 UTC (rev 96382)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/simpleimport/META-INF/MANIFEST.MF	2009-11-15 01:36:27 UTC (rev 96383)
@@ -1,4 +1,3 @@
-Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
-Bundle-SymbolicName: resolver-simpleimport
+Bundle-SymbolicName: simpleimport
 Import-Package: org.jboss.test.osgi.classloader.support.a

Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/singleton/META-INF/MANIFEST.MF
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/singleton/META-INF/MANIFEST.MF	2009-11-14 17:59:52 UTC (rev 96382)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/singleton/META-INF/MANIFEST.MF	2009-11-15 01:36:27 UTC (rev 96383)
@@ -1,4 +1,3 @@
-Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
-Bundle-SymbolicName: resolver-sigleton;singleton:=true
+Bundle-SymbolicName: sigleton;singleton:=true
 Export-Package: org.jboss.test.osgi.classloader.support.a

Added: projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/versionexportpackage/META-INF/MANIFEST.MF
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/versionexportpackage/META-INF/MANIFEST.MF	                        (rev 0)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/versionexportpackage/META-INF/MANIFEST.MF	2009-11-15 01:36:27 UTC (rev 96383)
@@ -0,0 +1,3 @@
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: versionexportpackage
+Export-Package: org.jboss.test.osgi.classloader.support.a;version=1.0.0

Copied: projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/versionimportpackage (from rev 96374, projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/classloader/versionimportpackageA)

Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/versionimportpackage/META-INF/MANIFEST.MF
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/classloader/versionimportpackageA/META-INF/MANIFEST.MF	2009-11-13 19:58:19 UTC (rev 96374)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/versionimportpackage/META-INF/MANIFEST.MF	2009-11-15 01:36:27 UTC (rev 96383)
@@ -1,7 +1,3 @@
-Manifest-Version: 1.0
-Implementation-Title: JBoss OSGi tests
-Implementation-Version: test
-Implementation-Vendor: jboss.org
-Bundle-Name: BundleB
-Bundle-SymbolicName: org.jboss.test.osgi.classloader.bundleB
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: versionimportpackage
 Import-Package: org.jboss.test.osgi.classloader.support.a;version="[0.0.0,1.0.0]"

Copied: projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/versionimportpackagefails (from rev 96374, projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/classloader/versionimportpackagefails)

Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/versionimportpackagefails/META-INF/MANIFEST.MF
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/classloader/versionimportpackagefails/META-INF/MANIFEST.MF	2009-11-13 19:58:19 UTC (rev 96374)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/versionimportpackagefails/META-INF/MANIFEST.MF	2009-11-15 01:36:27 UTC (rev 96383)
@@ -1,7 +1,3 @@
-Manifest-Version: 1.0
-Implementation-Title: JBoss OSGi tests
-Implementation-Version: test
-Implementation-Vendor: jboss.org
-Bundle-Name: BundleB
-Bundle-SymbolicName: org.jboss.test.osgi.classloader.bundleB
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: versionimportpackagefails
 Import-Package: org.jboss.test.osgi.classloader.support.a;version="[3.0,4.0)"

Copied: projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/versionrequirebundle (from rev 96374, projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/classloader/versionrequirebundleA)

Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/versionrequirebundle/META-INF/MANIFEST.MF
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/classloader/versionrequirebundleA/META-INF/MANIFEST.MF	2009-11-13 19:58:19 UTC (rev 96374)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/versionrequirebundle/META-INF/MANIFEST.MF	2009-11-15 01:36:27 UTC (rev 96383)
@@ -1,7 +1,3 @@
-Manifest-Version: 1.0
-Implementation-Title: JBoss OSGi tests
-Implementation-Version: test
-Implementation-Vendor: jboss.org
-Bundle-Name: BundleB
+Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.jboss.test.osgi.classloader.bundleB
 Require-Bundle: org.jboss.test.osgi.classloader.bundleA;bundle-version="[0.0.0,1.0.0]"

Copied: projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/versionrequirebundlefails (from rev 96374, projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/classloader/versionrequirebundlefails)

Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/versionrequirebundlefails/META-INF/MANIFEST.MF
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/classloader/versionrequirebundlefails/META-INF/MANIFEST.MF	2009-11-13 19:58:19 UTC (rev 96374)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/resources/bundles/resolver/versionrequirebundlefails/META-INF/MANIFEST.MF	2009-11-15 01:36:27 UTC (rev 96383)
@@ -1,7 +1,3 @@
-Manifest-Version: 1.0
-Implementation-Title: JBoss OSGi tests
-Implementation-Version: test
-Implementation-Vendor: jboss.org
-Bundle-Name: BundleB
+Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.jboss.test.osgi.classloader.bundleB
 Require-Bundle: org.jboss.test.osgi.classloader.bundleA;bundle-version="[0.0.0,1.0.0)"




More information about the jboss-cvs-commits mailing list