Author: thomas.diesler(a)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(a)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(a)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(a)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(a)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)"