JBoss-OSGI SVN: r96383 - in projects/jboss-osgi/trunk/reactor/framework: src/main/java/org/jboss/osgi/framework/classloading and 28 other directories.
by jboss-osgi-commits@lists.jboss.org
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)"
14 years, 7 months
JBoss-OSGI SVN: r96369 - in projects/jboss-osgi/trunk/reactor/framework: src/test/java/org/jboss/test/osgi/classloader and 3 other directories.
by jboss-osgi-commits@lists.jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2009-11-13 14:06:29 -0500 (Fri, 13 Nov 2009)
New Revision: 96369
Modified:
projects/jboss-osgi/trunk/reactor/framework/pom.xml
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/classloader/BundleClassPathTest.java
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/integration/simple/SimpleBundleTestCase.java
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/integration/simple/SimpleLogServiceTest.java
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/launch/FrameworkLaunchTestCase.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/ResolverSmokeTest.java
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/RuleBasedResolverTest.java
Log:
Push bootstrap config property to POM rather than duplicating it in every test case
Modified: projects/jboss-osgi/trunk/reactor/framework/pom.xml
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/pom.xml 2009-11-13 18:20:18 UTC (rev 96368)
+++ projects/jboss-osgi/trunk/reactor/framework/pom.xml 2009-11-13 19:06:29 UTC (rev 96369)
@@ -418,6 +418,10 @@
<value>${project.build.directory}</value>
</property>
<property>
+ <name>org.jboss.osgi.framework.launch.bootstrapPath</name>
+ <value>bootstrap/jboss-osgi-bootstrap.xml</value>
+ </property>
+ <property>
<name>org.jboss.osgi.husky.Invoker</name>
<value>org.jboss.osgi.husky.internal.OSGiInvoker</value>
</property>
Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/classloader/BundleClassPathTest.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/classloader/BundleClassPathTest.java 2009-11-13 18:20:18 UTC (rev 96368)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/classloader/BundleClassPathTest.java 2009-11-13 19:06:29 UTC (rev 96369)
@@ -41,11 +41,6 @@
*/
public class BundleClassPathTest extends OSGiTest
{
- public void setUp()
- {
- System.setProperty("org.jboss.osgi.framework.launch.bootstrapPath", "bootstrap/jboss-osgi-bootstrap.xml");
- }
-
@Test
public void testBundleClassPath() throws Exception
{
Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/integration/simple/SimpleBundleTestCase.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/integration/simple/SimpleBundleTestCase.java 2009-11-13 18:20:18 UTC (rev 96368)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/integration/simple/SimpleBundleTestCase.java 2009-11-13 19:06:29 UTC (rev 96369)
@@ -46,11 +46,6 @@
*/
public class SimpleBundleTestCase
{
- public void setUp()
- {
- System.setProperty("org.jboss.osgi.framework.launch.bootstrapPath", "bootstrap/jboss-osgi-bootstrap.xml");
- }
-
@Test
public void testBundleInstallLauchAPI() throws Exception
{
Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/integration/simple/SimpleLogServiceTest.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/integration/simple/SimpleLogServiceTest.java 2009-11-13 18:20:18 UTC (rev 96368)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/integration/simple/SimpleLogServiceTest.java 2009-11-13 19:06:29 UTC (rev 96369)
@@ -51,7 +51,6 @@
public void setUp()
{
System.clearProperty("simple-logservice-bundle");
- System.setProperty("org.jboss.osgi.framework.launch.bootstrapPath", "bootstrap/jboss-osgi-bootstrap.xml");
}
@Test
Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/launch/FrameworkLaunchTestCase.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/launch/FrameworkLaunchTestCase.java 2009-11-13 18:20:18 UTC (rev 96368)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/launch/FrameworkLaunchTestCase.java 2009-11-13 19:06:29 UTC (rev 96369)
@@ -40,11 +40,6 @@
*/
public class FrameworkLaunchTestCase
{
- public void setUp()
- {
- System.setProperty("org.jboss.osgi.framework.launch.bootstrapPath", "bootstrap/jboss-osgi-bootstrap.xml");
- }
-
@Test
public void testFrameworkLaunch() throws BundleException
{
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-13 18:20:18 UTC (rev 96368)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractResolverTest.java 2009-11-13 19:06:29 UTC (rev 96369)
@@ -48,8 +48,6 @@
@BeforeClass
public static void beforeClass() throws BundleException
{
- System.setProperty("org.jboss.osgi.framework.launch.bootstrapPath", "bootstrap/jboss-osgi-bootstrap.xml");
-
OSGiBootstrapProvider bootProvider = OSGiBootstrap.getBootstrapProvider();
framework = (OSGiFramework)bootProvider.getFramework();
framework.start();
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-13 18:20:18 UTC (rev 96368)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/ResolverSmokeTest.java 2009-11-13 19:06:29 UTC (rev 96369)
@@ -50,11 +50,6 @@
*/
public class ResolverSmokeTest extends OSGiTest
{
- public void setUp()
- {
- System.setProperty("org.jboss.osgi.framework.launch.bootstrapPath", "bootstrap/jboss-osgi-bootstrap.xml");
- }
-
@Test
public void testBundleResolver() throws BundleException
{
Modified: 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-13 18:20:18 UTC (rev 96368)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/RuleBasedResolverTest.java 2009-11-13 19:06:29 UTC (rev 96369)
@@ -65,24 +65,33 @@
// 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());
- // 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);
-
- 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());
-
- bundleB.uninstall();
- bundleA.uninstall();
+ 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
14 years, 7 months
JBoss-OSGI SVN: r96365 - in projects/jboss-osgi/trunk/testsuite/functional: src/test/java/org/jboss/test/osgi/jbosgi99 and 1 other directories.
by jboss-osgi-commits@lists.jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2009-11-13 11:13:31 -0500 (Fri, 13 Nov 2009)
New Revision: 96365
Added:
projects/jboss-osgi/trunk/testsuite/functional/src/test/resources/jbosgi99/jbosgi99-allgood.bnd
Removed:
projects/jboss-osgi/trunk/testsuite/functional/src/test/resources/jbosgi99/jbosgi99-dontfail.bnd
Modified:
projects/jboss-osgi/trunk/testsuite/functional/scripts/antrun-test-jars.xml
projects/jboss-osgi/trunk/testsuite/functional/src/test/java/org/jboss/test/osgi/jbosgi99/OSGI99TestCase.java
Log:
[JBOSGI-204] Failure in Bundle.start() uninstalls the bundle
More logging
Modified: projects/jboss-osgi/trunk/testsuite/functional/scripts/antrun-test-jars.xml
===================================================================
--- projects/jboss-osgi/trunk/testsuite/functional/scripts/antrun-test-jars.xml 2009-11-13 15:49:51 UTC (rev 96364)
+++ projects/jboss-osgi/trunk/testsuite/functional/scripts/antrun-test-jars.xml 2009-11-13 16:13:31 UTC (rev 96365)
@@ -100,7 +100,7 @@
<bnd classpath="${tests.classes.dir}" output="${tests.output.dir}/test-libs/jbosgi92-bundleA.jar" files="${tests.resources.dir}/jbosgi92/jbosgi92-bundleA.bnd" />
<!-- jbosgi99 -->
- <bnd classpath="${tests.classes.dir}" output="${tests.output.dir}/test-libs/jbosgi99-dontfail.jar" files="${tests.resources.dir}/jbosgi99/jbosgi99-dontfail.bnd" />
+ <bnd classpath="${tests.classes.dir}" output="${tests.output.dir}/test-libs/jbosgi99-allgood.jar" files="${tests.resources.dir}/jbosgi99/jbosgi99-allgood.bnd" />
<bnd classpath="${tests.classes.dir}" output="${tests.output.dir}/test-libs/jbosgi99-failonresolve.jar" files="${tests.resources.dir}/jbosgi99/jbosgi99-failonresolve.bnd" />
<bnd classpath="${tests.classes.dir}" output="${tests.output.dir}/test-libs/jbosgi99-failonstart.jar" files="${tests.resources.dir}/jbosgi99/jbosgi99-failonstart.bnd" />
Modified: projects/jboss-osgi/trunk/testsuite/functional/src/test/java/org/jboss/test/osgi/jbosgi99/OSGI99TestCase.java
===================================================================
--- projects/jboss-osgi/trunk/testsuite/functional/src/test/java/org/jboss/test/osgi/jbosgi99/OSGI99TestCase.java 2009-11-13 15:49:51 UTC (rev 96364)
+++ projects/jboss-osgi/trunk/testsuite/functional/src/test/java/org/jboss/test/osgi/jbosgi99/OSGI99TestCase.java 2009-11-13 16:13:31 UTC (rev 96365)
@@ -35,6 +35,8 @@
import org.junit.Test;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* [JBOSGI-99] No explicit control over bundle.start()
@@ -46,6 +48,9 @@
*/
public class OSGI99TestCase
{
+ // Provide logging
+ private static Logger log = LoggerFactory.getLogger(OSGI99TestCase.class);
+
private static OSGiRuntime runtime;
@BeforeClass
@@ -65,9 +70,9 @@
}
@Test
- public void testDontFail() throws Exception
+ public void testAllGood() throws Exception
{
- OSGiBundle bundle = runtime.installBundle("jbosgi99-dontfail.jar");
+ OSGiBundle bundle = runtime.installBundle("jbosgi99-allgood.jar");
assertBundleState(bundle, Bundle.INSTALLED);
bundle.start();
@@ -90,11 +95,12 @@
bundle.start();
fail("BundleException expected");
}
- catch (BundleException e)
+ catch (BundleException ex)
{
+ log.error("State on error: " + ConstantsHelper.bundleState(bundle.getState()), ex);
assertBundleState(bundle, Bundle.INSTALLED);
}
-
+
bundle.uninstall();
if (runtime.isRemoteRuntime() == false)
@@ -112,11 +118,12 @@
bundle.start();
fail("BundleException expected");
}
- catch (BundleException e)
+ catch (BundleException ex)
{
+ log.error("State on error: " + ConstantsHelper.bundleState(bundle.getState()), ex);
assertBundleState(bundle, Bundle.RESOLVED);
}
-
+
bundle.uninstall();
if (runtime.isRemoteRuntime() == false)
Copied: projects/jboss-osgi/trunk/testsuite/functional/src/test/resources/jbosgi99/jbosgi99-allgood.bnd (from rev 96362, projects/jboss-osgi/trunk/testsuite/functional/src/test/resources/jbosgi99/jbosgi99-dontfail.bnd)
===================================================================
--- projects/jboss-osgi/trunk/testsuite/functional/src/test/resources/jbosgi99/jbosgi99-allgood.bnd (rev 0)
+++ projects/jboss-osgi/trunk/testsuite/functional/src/test/resources/jbosgi99/jbosgi99-allgood.bnd 2009-11-13 16:13:31 UTC (rev 96365)
@@ -0,0 +1,5 @@
+# bnd build -classpath target/test-classes -output target/test-libs/jbosgi99-allgood.jar src/test/resources/jbosgi99/jbosgi99-allgood.bnd
+
+Bundle-SymbolicName: jbosgi99-allgood
+Export-Package: org.jboss.test.osgi.jbosgi99.bundle
+
Deleted: projects/jboss-osgi/trunk/testsuite/functional/src/test/resources/jbosgi99/jbosgi99-dontfail.bnd
===================================================================
--- projects/jboss-osgi/trunk/testsuite/functional/src/test/resources/jbosgi99/jbosgi99-dontfail.bnd 2009-11-13 15:49:51 UTC (rev 96364)
+++ projects/jboss-osgi/trunk/testsuite/functional/src/test/resources/jbosgi99/jbosgi99-dontfail.bnd 2009-11-13 16:13:31 UTC (rev 96365)
@@ -1,5 +0,0 @@
-# bnd build -classpath target/test-classes -output target/test-libs/jbosgi99-bundleA.jar src/test/resources/jbosgi99/jbosgi99-bundleA.bnd
-
-Bundle-SymbolicName: jbosgi99-dontfail
-Export-Package: org.jboss.test.osgi.jbosgi99.bundle
-
14 years, 7 months
JBoss-OSGI SVN: r96363 - projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal.
by jboss-osgi-commits@lists.jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2009-11-13 10:48:53 -0500 (Fri, 13 Nov 2009)
New Revision: 96363
Modified:
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/DeployerServiceImpl.java
Log:
Restore createDeployment(BundleInfo info)
Modified: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/DeployerServiceImpl.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/DeployerServiceImpl.java 2009-11-13 15:43:00 UTC (rev 96362)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/DeployerServiceImpl.java 2009-11-13 15:48:53 UTC (rev 96363)
@@ -35,6 +35,7 @@
import org.jboss.osgi.framework.bundle.OSGiBundleManager;
import org.jboss.osgi.framework.plugins.DeployerServicePlugin;
import org.jboss.osgi.framework.plugins.internal.AbstractServicePlugin;
+import org.jboss.osgi.spi.util.BundleInfo;
import org.jboss.virtual.VirtualFile;
import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleException;
@@ -85,13 +86,10 @@
return delegate.createDeployment(file);
}
-/*
- // FIXME
public Deployment createDeployment(BundleInfo info)
{
return delegate.createDeployment(info);
}
-*/
public void deploy(Deployment[] bundleDeps) throws BundleException
{
14 years, 7 months
JBoss-OSGI SVN: r96362 - projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/util.
by jboss-osgi-commits@lists.jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2009-11-13 10:43:00 -0500 (Fri, 13 Nov 2009)
New Revision: 96362
Modified:
projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/util/BundleInfo.java
Log:
javadoc
Modified: projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/util/BundleInfo.java
===================================================================
--- projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/util/BundleInfo.java 2009-11-13 15:40:44 UTC (rev 96361)
+++ projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/util/BundleInfo.java 2009-11-13 15:43:00 UTC (rev 96362)
@@ -38,8 +38,11 @@
import org.osgi.framework.Version;
/**
- * An abstraction of a bundle
+ * Primitive access to bundle meta data and root virtual file.
*
+ * The bundle info can be constructed from various locations.
+ * If that succeeds, there is a valid OSGi Manifest.
+ *
* @author thomas.diesler(a)jboss.com
* @since 16-Oct-2009
*/
@@ -86,11 +89,17 @@
}
}
+ if (url == null)
+ throw new IllegalArgumentException("Cannot obtain root url from: " + location);
+
return new BundleInfo(toVirtualFile(url), location);
}
public static BundleInfo createBundleInfo(URL url)
{
+ if (url == null)
+ throw new IllegalArgumentException("Null root url");
+
return new BundleInfo(toVirtualFile(url), url.toExternalForm());
}
@@ -114,16 +123,8 @@
// Derive the location from the root
if (location == null)
- {
- try
- {
- location = rootURL.toExternalForm();
- }
- catch (Exception e)
- {
- throw new IllegalStateException("Cannot obtain URL from: " + rootFile);
- }
- }
+ location = rootURL.toExternalForm();
+
this.location = location;
symbolicName = getManifestHeader(Constants.BUNDLE_SYMBOLICNAME);
@@ -204,7 +205,7 @@
}
catch (IOException e)
{
- throw new IllegalArgumentException("Invalid bundle url=" + url, e);
+ throw new IllegalArgumentException("Invalid root url: " + url, e);
}
}
14 years, 7 months
JBoss-OSGI SVN: r96357 - projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/util.
by jboss-osgi-commits@lists.jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2009-11-13 10:32:00 -0500 (Fri, 13 Nov 2009)
New Revision: 96357
Modified:
projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/util/BundleInfo.java
Log:
Optimize internal representation for serialization
Modified: projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/util/BundleInfo.java
===================================================================
--- projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/util/BundleInfo.java 2009-11-13 15:27:02 UTC (rev 96356)
+++ projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/util/BundleInfo.java 2009-11-13 15:32:00 UTC (rev 96357)
@@ -45,20 +45,21 @@
*/
public class BundleInfo implements Serializable
{
- private static final long serialVersionUID = 2196462922955338109L;
-
- private VirtualFile root;
+ private static final long serialVersionUID = -2363297020450715134L;
+
+ private URL rootURL;
private String location;
private String symbolicName;
private String version;
-
+
+ private transient VirtualFile rootFile;
private transient Manifest manifest;
public static BundleInfo createBundleInfo(String location)
{
if (location == null)
throw new IllegalArgumentException("Location cannot be null");
-
+
// Try location as URL
URL url = null;
try
@@ -84,75 +85,50 @@
// ignore
}
}
-
- if (url == null)
- throw new IllegalArgumentException("Invalid bundle location: " + location);
- VirtualFile root;
- try
- {
- root = VFS.getRoot(url);
- }
- catch (IOException e)
- {
- throw new IllegalArgumentException("Invalid bundle location=" + url, e);
- }
-
- return new BundleInfo(root, location);
+ return new BundleInfo(toVirtualFile(url), location);
}
public static BundleInfo createBundleInfo(URL url)
{
- if (url == null)
- throw new IllegalArgumentException("URL cannot be null");
-
- VirtualFile root;
- try
- {
- root = VFS.getRoot(url);
- }
- catch (IOException e)
- {
- throw new IllegalArgumentException("Invalid bundle location=" + url, e);
- }
-
- return new BundleInfo(root, url.toExternalForm());
+ return new BundleInfo(toVirtualFile(url), url.toExternalForm());
}
-
+
public static BundleInfo createBundleInfo(VirtualFile root)
{
return new BundleInfo(root, null);
}
-
+
public static BundleInfo createBundleInfo(VirtualFile root, String location)
{
return new BundleInfo(root, location);
}
-
- private BundleInfo(VirtualFile root, String location)
+
+ private BundleInfo(VirtualFile rootFile, String location)
{
- if (root == null)
- throw new IllegalArgumentException("VirtualFile cannot be null");
-
- this.root = root;
-
+ if (rootFile == null)
+ throw new IllegalArgumentException("Root file cannot be null");
+
+ this.rootFile = rootFile;
+ this.rootURL = toURL(rootFile);
+
// Derive the location from the root
if (location == null)
{
try
{
- location = root.toURL().toExternalForm();
+ location = rootURL.toExternalForm();
}
catch (Exception e)
{
- throw new IllegalStateException("Cannot obtain URL from: " + root);
+ throw new IllegalStateException("Cannot obtain URL from: " + rootFile);
}
}
- this.location = location;
+ this.location = location;
symbolicName = getManifestHeader(Constants.BUNDLE_SYMBOLICNAME);
if (symbolicName == null)
- throw new IllegalArgumentException("Cannot obtain Bundle-SymbolicName for: " + root);
+ throw new IllegalArgumentException("Cannot obtain Bundle-SymbolicName for: " + rootFile);
version = getManifestHeader(Constants.BUNDLE_VERSION);
version = Version.parseVersion(version).toString();
@@ -175,13 +151,17 @@
{
return location;
}
-
+
/**
* Get the bundle root file
*/
public VirtualFile getRoot()
{
- return root;
+ if (rootFile == null)
+ {
+ rootFile = toVirtualFile(rootURL);
+ }
+ return rootFile;
}
/**
@@ -206,27 +186,51 @@
{
try
{
- manifest = VFSUtils.getManifest(root);
+ manifest = VFSUtils.getManifest(toVirtualFile(rootURL));
}
catch (Exception ex)
{
- throw new IllegalArgumentException("Cannot get manifest from: " + root, ex);
+ throw new IllegalArgumentException("Cannot get manifest from: " + rootURL, ex);
}
}
return manifest;
}
-
+
+ private static VirtualFile toVirtualFile(URL url)
+ {
+ try
+ {
+ return VFS.getRoot(url);
+ }
+ catch (IOException e)
+ {
+ throw new IllegalArgumentException("Invalid bundle url=" + url, e);
+ }
+ }
+
+ private static URL toURL(VirtualFile file)
+ {
+ try
+ {
+ return file.toURL();
+ }
+ catch (Exception e)
+ {
+ throw new IllegalArgumentException("Invalid root file: " + file);
+ }
+ }
+
private String toEqualString()
{
- return "[" + symbolicName + "-" + version + ",url=" + location + "]";
+ return "[" + symbolicName + "-" + version + ",url=" + rootURL + "]";
}
-
+
@Override
public boolean equals(Object obj)
{
if (!(obj instanceof BundleInfo))
return false;
-
+
BundleInfo other = (BundleInfo)obj;
return toEqualString().equals(other.toEqualString());
}
14 years, 7 months
JBoss-OSGI SVN: r96349 - projects/jboss-osgi/projects/bundles/hotdeploy/trunk.
by jboss-osgi-commits@lists.jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2009-11-13 10:06:19 -0500 (Fri, 13 Nov 2009)
New Revision: 96349
Modified:
projects/jboss-osgi/projects/bundles/hotdeploy/trunk/pom.xml
Log:
Update deployment version
Modified: projects/jboss-osgi/projects/bundles/hotdeploy/trunk/pom.xml
===================================================================
--- projects/jboss-osgi/projects/bundles/hotdeploy/trunk/pom.xml 2009-11-13 15:06:18 UTC (rev 96348)
+++ projects/jboss-osgi/projects/bundles/hotdeploy/trunk/pom.xml 2009-11-13 15:06:19 UTC (rev 96349)
@@ -40,7 +40,7 @@
<!-- Properties -->
<properties>
<version.jboss.osgi.common>1.0.3-SNAPSHOT</version.jboss.osgi.common>
- <version.jboss.osgi.deployment>0.0.1-SNAPSHOT</version.jboss.osgi.deployment>
+ <version.jboss.osgi.deployment>1.0.0-SNAPSHOT</version.jboss.osgi.deployment>
<version.jboss.osgi.spi>1.0.3-SNAPSHOT</version.jboss.osgi.spi>
<version.osgi>4.2.0</version.osgi>
</properties>
14 years, 7 months
JBoss-OSGI SVN: r96347 - in projects/jboss-osgi/trunk/testsuite: example/src/test/java/org/jboss/test/osgi/example/webapp and 1 other directories.
by jboss-osgi-commits@lists.jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2009-11-13 10:01:08 -0500 (Fri, 13 Nov 2009)
New Revision: 96347
Modified:
projects/jboss-osgi/trunk/testsuite/example/pom.xml
projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/webapp/WebAppNegativeTestCase.java
projects/jboss-osgi/trunk/testsuite/functional/pom.xml
Log:
[JBOSGI-204] Failure in Bundle.start() uninstalls the bundle
Exclude the failing test
Modified: projects/jboss-osgi/trunk/testsuite/example/pom.xml
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/pom.xml 2009-11-13 15:00:20 UTC (rev 96346)
+++ projects/jboss-osgi/trunk/testsuite/example/pom.xml 2009-11-13 15:01:08 UTC (rev 96347)
@@ -291,6 +291,8 @@
<excludes>
<exclude>${target.container.excludes}</exclude>
<exclude>org/jboss/test/osgi/example/webapp/WebAppExtenderTestCase.class</exclude>
+ <!-- [JBOSGI-204] Failure in Bundle.start() uninstalls the bundle -->
+ <exclude>org/jboss/test/osgi/example/webapp/WebAppNegativeTestCase.class</exclude>
</excludes>
</configuration>
</plugin>
@@ -332,6 +334,8 @@
<excludes>
<exclude>${target.container.excludes}</exclude>
<exclude>org/jboss/test/osgi/example/webapp/WebAppExtenderTestCase.class</exclude>
+ <!-- [JBOSGI-204] Failure in Bundle.start() uninstalls the bundle -->
+ <exclude>org/jboss/test/osgi/example/webapp/WebAppNegativeTestCase.class</exclude>
</excludes>
</configuration>
</plugin>
Modified: projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/webapp/WebAppNegativeTestCase.java
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/webapp/WebAppNegativeTestCase.java 2009-11-13 15:00:20 UTC (rev 96346)
+++ projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/webapp/WebAppNegativeTestCase.java 2009-11-13 15:01:08 UTC (rev 96347)
@@ -34,7 +34,6 @@
import org.jboss.osgi.webapp.WebAppCapability;
import org.junit.AfterClass;
import org.junit.BeforeClass;
-import org.junit.Ignore;
import org.junit.Test;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleException;
@@ -45,7 +44,6 @@
* @author thomas.diesler(a)jboss.com
* @since 26-Oct-2009
*/
-@Ignore("[JBOSGI-204] Failure in Bundle.start() uninstalls the bundle in AS")
public class WebAppNegativeTestCase extends AbstractWebAppTestCase
{
private static OSGiRuntime runtime;
Modified: projects/jboss-osgi/trunk/testsuite/functional/pom.xml
===================================================================
--- projects/jboss-osgi/trunk/testsuite/functional/pom.xml 2009-11-13 15:00:20 UTC (rev 96346)
+++ projects/jboss-osgi/trunk/testsuite/functional/pom.xml 2009-11-13 15:01:08 UTC (rev 96347)
@@ -261,9 +261,12 @@
<exclude>${target.container.excludes}</exclude>
<exclude>org/jboss/test/osgi/jbosgi39/**</exclude>
<exclude>org/jboss/test/osgi/jbosgi41/**</exclude>
+ <exclude>org/jboss/test/osgi/jbosgi99/**</exclude>
<exclude>org/jboss/test/osgi/jbosgi108/**</exclude>
<exclude>org/jboss/test/osgi/jbosgi143/**</exclude>
<exclude>org/jboss/test/osgi/service/microcontainer/**</exclude>
+ <!-- [JBOSGI-204] Failure in Bundle.start() uninstalls the bundle -->
+ <exclude>org/jboss/test/osgi/jbosgi99/**</exclude>
</excludes>
</configuration>
</plugin>
@@ -309,6 +312,8 @@
<exclude>org/jboss/test/osgi/jbosgi108/**</exclude>
<exclude>org/jboss/test/osgi/jbosgi143/**</exclude>
<exclude>org/jboss/test/osgi/service/microcontainer/**</exclude>
+ <!-- [JBOSGI-204] Failure in Bundle.start() uninstalls the bundle -->
+ <exclude>org/jboss/test/osgi/jbosgi99/**</exclude>
</excludes>
</configuration>
</plugin>
14 years, 7 months
JBoss-OSGI SVN: r96328 - in projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework: vfs and 1 other directory.
by jboss-osgi-commits@lists.jboss.org
Author: alesj
Date: 2009-11-13 04:28:31 -0500 (Fri, 13 Nov 2009)
New Revision: 96328
Modified:
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/DeployerServiceImpl.java
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/vfs/BundleVFSContext.java
Log:
Extract bundle lookup.
TODO Thomas - fix deployer service; probably needs new snapshot deploy.
Modified: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/DeployerServiceImpl.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/DeployerServiceImpl.java 2009-11-13 08:29:51 UTC (rev 96327)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/DeployerServiceImpl.java 2009-11-13 09:28:31 UTC (rev 96328)
@@ -35,7 +35,6 @@
import org.jboss.osgi.framework.bundle.OSGiBundleManager;
import org.jboss.osgi.framework.plugins.DeployerServicePlugin;
import org.jboss.osgi.framework.plugins.internal.AbstractServicePlugin;
-import org.jboss.osgi.spi.util.BundleInfo;
import org.jboss.virtual.VirtualFile;
import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleException;
@@ -86,10 +85,13 @@
return delegate.createDeployment(file);
}
+/*
+ // FIXME
public Deployment createDeployment(BundleInfo info)
{
return delegate.createDeployment(info);
}
+*/
public void deploy(Deployment[] bundleDeps) throws BundleException
{
Modified: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/vfs/BundleVFSContext.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/vfs/BundleVFSContext.java 2009-11-13 08:29:51 UTC (rev 96327)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/vfs/BundleVFSContext.java 2009-11-13 09:28:31 UTC (rev 96328)
@@ -41,27 +41,17 @@
*/
public class BundleVFSContext extends AbstractVFSContext
{
- private String host;
+ private String name;
private VirtualFileHandler root;
public BundleVFSContext(URI rootURI, OSGiBundleManager manager) throws IOException
{
super(rootURI);
- host = rootURI.getHost();
- long id = Long.parseLong(host);
- if (id == 0)
- throw new IllegalArgumentException("Cannot handle system bundle, it's too abstract.");
+ name = parseName(rootURI);
- AbstractBundleState abs = manager.getBundleById(id);
- if (abs == null)
- throw new IllegalArgumentException("No such bundle: " + id);
-
- String path = rootURI.getPath();
- if (path == null)
- path = "";
-
- OSGiBundleState bundleState = OSGiBundleState.class.cast(abs); // should be able to cast, as it's not system
+ OSGiBundleState bundleState = getBundleState(rootURI, manager);
+ String path = parsePath(rootURI);
URL resource = bundleState.getEntry(path); // permission check
if (resource == null)
throw new IllegalArgumentException("No such resource: " + path + " in bundle: " + bundleState);
@@ -76,9 +66,56 @@
root = new BundleHandler(this, duRoot, duFile, bundleState);
}
+ /**
+ * Parse context name from uri.
+ *
+ * @param uri the uri
+ * @return parsed context's name
+ */
+ protected String parseName(URI uri)
+ {
+ return uri.getHost();
+ }
+
+ /**
+ * Parse resource path from uri.
+ *
+ * @param uri the uri
+ * @return parsed resource path
+ */
+ protected String parsePath(URI uri)
+ {
+ String path = uri.getPath();
+ if (path == null)
+ path = "";
+
+ return path;
+ }
+
+ /**
+ * Get bundle state.
+ *
+ * @param uri the uri
+ * @param manager the osgi manager
+ * @return bundle state or exception if no such bundle exists
+ */
+ protected OSGiBundleState getBundleState(URI uri, OSGiBundleManager manager)
+ {
+ String host = uri.getHost();
+ long id = Long.parseLong(host);
+ if (id == 0)
+ throw new IllegalArgumentException("Cannot handle system bundle, it's too abstract.");
+
+ AbstractBundleState abs = manager.getBundleById(id);
+ if (abs == null)
+ throw new IllegalArgumentException("No such bundle: " + id);
+
+ return OSGiBundleState.class.cast(abs); // should be able to cast, as it's not system
+ }
+
public String getName()
{
- return host;
+ return name;
}
public VirtualFileHandler getRoot() throws IOException
14 years, 7 months
JBoss-OSGI SVN: r96324 - in projects/jboss-osgi/projects/bundles/husky/trunk/harness/src/main/java/org/jboss/osgi/testing: internal and 1 other directory.
by jboss-osgi-commits@lists.jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2009-11-12 21:56:56 -0500 (Thu, 12 Nov 2009)
New Revision: 96324
Modified:
projects/jboss-osgi/projects/bundles/husky/trunk/harness/src/main/java/org/jboss/osgi/testing/OSGiRuntime.java
projects/jboss-osgi/projects/bundles/husky/trunk/harness/src/main/java/org/jboss/osgi/testing/internal/EmbeddedRuntime.java
projects/jboss-osgi/projects/bundles/husky/trunk/harness/src/main/java/org/jboss/osgi/testing/internal/RemoteRuntime.java
Log:
Add isRemoteRuntime
Modified: projects/jboss-osgi/projects/bundles/husky/trunk/harness/src/main/java/org/jboss/osgi/testing/OSGiRuntime.java
===================================================================
--- projects/jboss-osgi/projects/bundles/husky/trunk/harness/src/main/java/org/jboss/osgi/testing/OSGiRuntime.java 2009-11-13 02:42:01 UTC (rev 96323)
+++ projects/jboss-osgi/projects/bundles/husky/trunk/harness/src/main/java/org/jboss/osgi/testing/OSGiRuntime.java 2009-11-13 02:56:56 UTC (rev 96324)
@@ -129,6 +129,11 @@
String getServerHost();
/**
+ * Return true if this {@link OSGiRuntime} connects to a remote Framework.
+ */
+ boolean isRemoteRuntime();
+
+ /**
* Shutdown the {@link OSGiRuntime}.
*
* This will remove all installed {@link OSGiBundle}s and added {@link Capability}.
Modified: projects/jboss-osgi/projects/bundles/husky/trunk/harness/src/main/java/org/jboss/osgi/testing/internal/EmbeddedRuntime.java
===================================================================
--- projects/jboss-osgi/projects/bundles/husky/trunk/harness/src/main/java/org/jboss/osgi/testing/internal/EmbeddedRuntime.java 2009-11-13 02:42:01 UTC (rev 96323)
+++ projects/jboss-osgi/projects/bundles/husky/trunk/harness/src/main/java/org/jboss/osgi/testing/internal/EmbeddedRuntime.java 2009-11-13 02:56:56 UTC (rev 96324)
@@ -214,4 +214,9 @@
PackageAdmin packAdmin = (PackageAdmin)context.getService(sref);
return new EmbeddedPackageAdmin(packAdmin);
}
+
+ public boolean isRemoteRuntime()
+ {
+ return false;
+ }
}
Modified: projects/jboss-osgi/projects/bundles/husky/trunk/harness/src/main/java/org/jboss/osgi/testing/internal/RemoteRuntime.java
===================================================================
--- projects/jboss-osgi/projects/bundles/husky/trunk/harness/src/main/java/org/jboss/osgi/testing/internal/RemoteRuntime.java 2009-11-13 02:42:01 UTC (rev 96323)
+++ projects/jboss-osgi/projects/bundles/husky/trunk/harness/src/main/java/org/jboss/osgi/testing/internal/RemoteRuntime.java 2009-11-13 02:56:56 UTC (rev 96324)
@@ -283,6 +283,11 @@
};
}
+ public boolean isRemoteRuntime()
+ {
+ return true;
+ }
+
/**
* Return ObjectName of the DeployerService MBean if hte archive is a bundle
* otherwise if returns the ObjectName of the MainDeployer
14 years, 7 months