Author: thomas.diesler(a)jboss.com
Date: 2009-11-23 07:48:24 -0500 (Mon, 23 Nov 2009)
New Revision: 96734
Added:
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/NoopResolverImpl.java
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/NoExternalResolverTest.java
Modified:
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/bundle/AbstractBundleState.java
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/bundle/OSGiBundleManager.java
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/OSGiPackageRequirement.java
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/AbstractResolver.java
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/Resolver.java
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/basic/BundleCapability.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/main/java/org/jboss/osgi/framework/service/internal/PackageAdminImpl.java
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/classloader/RequireBundleUnitTestCase.java
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/AbstractResolverTest.java
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/BasicResolverTest.java
Log:
Add the NoopResolverImpl
Modified:
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/bundle/AbstractBundleState.java
===================================================================
---
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/bundle/AbstractBundleState.java 2009-11-23
12:36:31 UTC (rev 96733)
+++
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/bundle/AbstractBundleState.java 2009-11-23
12:48:24 UTC (rev 96734)
@@ -608,9 +608,9 @@
*
* @return the canonical name
*/
- String getCanonicalName()
+ public String getCanonicalName()
{
- return getSymbolicName() + ":" + getVersion();
+ return getSymbolicName() + "-" + getVersion();
}
/**
Modified:
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/bundle/OSGiBundleManager.java
===================================================================
---
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/bundle/OSGiBundleManager.java 2009-11-23
12:36:31 UTC (rev 96733)
+++
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/bundle/OSGiBundleManager.java 2009-11-23
12:48:24 UTC (rev 96734)
@@ -21,6 +21,8 @@
*/
package org.jboss.osgi.framework.bundle;
+import static org.jboss.osgi.spi.OSGiConstants.PROPERTY_AUTO_START;
+
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
@@ -46,8 +48,8 @@
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import java.util.jar.Attributes;
+import java.util.jar.Manifest;
import java.util.jar.Attributes.Name;
-import java.util.jar.Manifest;
import org.jboss.dependency.spi.Controller;
import org.jboss.dependency.spi.ControllerContext;
@@ -75,7 +77,6 @@
import org.jboss.osgi.framework.plugins.ResolverPlugin;
import org.jboss.osgi.framework.plugins.ServicePlugin;
import org.jboss.osgi.framework.util.NoFilter;
-import static org.jboss.osgi.spi.OSGiConstants.PROPERTY_AUTO_START;
import org.jboss.util.collection.ConcurrentSet;
import org.jboss.virtual.VFS;
import org.jboss.virtual.VFSUtils;
@@ -704,6 +705,7 @@
*
* @param bundleState the bundle state
*/
+ @SuppressWarnings("deprecation")
private void validateBundle(AbstractBundleState bundleState)
{
OSGiMetaData metaData = bundleState.getOSGiMetaData();
@@ -1162,7 +1164,7 @@
* @param properties the properties
* @return the service state
*/
- @SuppressWarnings("unchecked")
+ @SuppressWarnings("rawtypes")
OSGiServiceState registerService(AbstractBundleState bundleState, String[] clazzes,
Object service, Dictionary properties)
{
OSGiServiceState result = new OSGiServiceState(bundleState, clazzes, service,
properties);
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-23
12:36:31 UTC (rev 96733)
+++
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/classloading/OSGiPackageCapability.java 2009-11-23
12:48:24 UTC (rev 96734)
@@ -25,7 +25,6 @@
import java.util.StringTokenizer;
import org.jboss.classloading.plugins.metadata.PackageCapability;
-import org.jboss.classloading.plugins.metadata.PackageRequirement;
import org.jboss.classloading.spi.dependency.Module;
import org.jboss.classloading.spi.metadata.Requirement;
import org.jboss.classloading.spi.version.VersionRange;
@@ -36,10 +35,8 @@
import org.jboss.osgi.framework.metadata.OSGiMetaData;
import org.jboss.osgi.framework.metadata.PackageAttribute;
import org.jboss.osgi.framework.metadata.Parameter;
-import org.jboss.osgi.framework.metadata.ParameterizedAttribute;
import org.jboss.osgi.framework.metadata.internal.AbstractVersionRange;
import org.jboss.osgi.framework.plugins.ResolverPlugin;
-import org.jboss.osgi.framework.resolver.ExportPackage;
import org.jboss.osgi.framework.resolver.Resolver;
import org.osgi.framework.Constants;
import org.osgi.framework.Version;
@@ -116,7 +113,7 @@
this.bundleState = bundleState;
this.exportPackage = exportPackage;
- String mandatory = exportPackage.getAttributeValue(Constants.MANDATORY_DIRECTIVE,
String.class);
+ String mandatory = exportPackage.getDirectiveValue(Constants.MANDATORY_DIRECTIVE,
String.class);
if (mandatory != null)
{
StringTokenizer tokens = new StringTokenizer(mandatory, ",");
@@ -139,12 +136,16 @@
return false;
if (requirement instanceof OSGiPackageRequirement == false)
return true;
+
+ OSGiPackageRequirement osgiPackageRequirement =
(OSGiPackageRequirement)requirement;
+ if (matchPackageAttributes(osgiPackageRequirement) == false)
+ return false;
- return isResolverMatch(reqModule, requirement);
+ return resolverMatch(reqModule, osgiPackageRequirement);
}
// Return true if the given requirement matches in the external resolver
- private boolean isResolverMatch(Module reqModule, Requirement requirement)
+ private boolean resolverMatch(Module reqModule, OSGiPackageRequirement
packageRequirement)
{
// Get the bundle resolver from the bundle manager
OSGiBundleManager bundleManager = bundleState.getBundleManager();
@@ -157,20 +158,8 @@
throw new IllegalStateException("Cannot get bundle for: " +
reqLocation);
// Get the exporter for this requirement
- PackageRequirement packageRequirement = (PackageRequirement)requirement;
- ExportPackage exporter = bundleResolver.getExporter(reqBundle,
packageRequirement.getName());
- if (exporter == null)
- return false;
-
- // Get the exporters module
- OSGiBundleState exporterState =
OSGiBundleState.assertBundleState(exporter.getOwner().getBundle());
- DeploymentUnit exporterUnit = exporterState.getDeploymentUnit();
- Module exporterModule = exporterUnit.getAttachment(Module.class);
-
- // Match if the module associated with this capability
- // is the same as the module assocated with the exporter
- Module thisModule = getModule();
- return exporterModule == thisModule;
+ String packageName = packageRequirement.getName();
+ return bundleResolver.match(reqBundle, bundleState, packageName);
}
/**
@@ -188,7 +177,7 @@
}
@SuppressWarnings("deprecation")
- public boolean match(OSGiPackageRequirement packageRequirement)
+ public boolean matchPackageAttributes(OSGiPackageRequirement packageRequirement)
{
String capPackageName = getName();
String reqPackageName = packageRequirement.getName();
@@ -202,22 +191,20 @@
OSGiMetaData metaData = bundleState.getOSGiMetaData();
PackageAttribute capParameters = exportPackage;
- PackageAttribute reqParameters = packageRequirement.getRequirePackage();
-
+ PackageAttribute reqParameters = packageRequirement.getPackageMetaData();
+
boolean validMatch = true;
// Check all the manadatory attributes are present
if (validMatch == true && mandatoryAttributes != null)
{
- if (reqParameters != null)
+ for (String mand : mandatoryAttributes)
{
- for (String mand : mandatoryAttributes)
+ Parameter reqAttributeValue = reqParameters.getAttribute(mand);
+ if (reqParameters == null || reqAttributeValue == null)
{
- if (reqParameters.getAttribute(mand) == null)
- {
- validMatch = false;
- break;
- }
+ validMatch = false;
+ break;
}
}
}
@@ -243,9 +230,12 @@
if (range.isInRange(metaData.getBundleVersion()) == false)
validMatch = false;
}
- else if (Constants.PACKAGE_SPECIFICATION_VERSION.equals(name) == false
- && Constants.VERSION_ATTRIBUTE.equals(name) == false)
+ else if (Constants.PACKAGE_SPECIFICATION_VERSION.equals(name) ||
Constants.VERSION_ATTRIBUTE.equals(name))
{
+ continue;
+ }
+ else
+ {
if (ourValue == null || ourValue.equals(otherValue) == false)
validMatch = false;
}
@@ -272,17 +262,27 @@
return true;
}
- @Override
- protected void toString(StringBuffer buffer)
+ private String shortString;
+ public String toShortString()
{
- super.toString(buffer);
- OSGiMetaData metadata = bundleState.getOSGiMetaData();
- ParameterizedAttribute parameters = metadata.getBundleParameters();
- if (parameters != null)
+ if (shortString == null)
{
- Map<String, Parameter> params = parameters.getAttributes();
- if (params != null && params.isEmpty() == false)
- buffer.append(" attributes=").append(params);
+ StringBuffer buffer = new StringBuffer(bundleState.getCanonicalName() +
"[" + getName());
+ Map<String, Parameter> attributes = exportPackage.getAttributes();
+ Map<String, Parameter> directives = exportPackage.getDirectives();
+ 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());
+ buffer.append("]");
+ shortString = buffer.toString();
}
+ return shortString;
}
+
+ @Override
+ protected void toString(StringBuffer buffer)
+ {
+ buffer.append(toShortString());
+ }
}
Modified:
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/classloading/OSGiPackageRequirement.java
===================================================================
---
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/classloading/OSGiPackageRequirement.java 2009-11-23
12:36:31 UTC (rev 96733)
+++
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/classloading/OSGiPackageRequirement.java 2009-11-23
12:48:24 UTC (rev 96734)
@@ -21,7 +21,6 @@
*/
package org.jboss.osgi.framework.classloading;
-import java.util.LinkedHashMap;
import java.util.Map;
import org.jboss.classloading.plugins.metadata.PackageRequirement;
@@ -119,7 +118,7 @@
*
* @return the requirePackage.
*/
- public PackageAttribute getRequirePackage()
+ public PackageAttribute getPackageMetaData()
{
return requirePackage;
}
@@ -151,23 +150,27 @@
return true;
}
- @Override
- protected void toString(StringBuffer buffer)
+ private String shortString;
+ public String toShortString()
{
- super.toString(buffer);
- if (requirePackage != null)
+ if (shortString == null)
{
- Map<String, Parameter> parameters = requirePackage.getAttributes();
- if (parameters != null)
- {
- Map<String, Object> keyValueMap = new LinkedHashMap<String,
Object>();
- for (String key : parameters.keySet())
- {
- Object value = parameters.get(key).getValue();
- keyValueMap.put(key, value);
- }
- buffer.append(" ").append(keyValueMap);
- }
+ StringBuffer buffer = new StringBuffer(bundleState.getCanonicalName() +
"[" + getName());
+ Map<String, Parameter> attributes = requirePackage.getAttributes();
+ Map<String, Parameter> directives = requirePackage.getDirectives();
+ 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());
+ buffer.append("]");
+ shortString = buffer.toString();
}
+ return shortString;
}
+
+ @Override
+ protected void toString(StringBuffer buffer)
+ {
+ buffer.append(toShortString());
+ }
}
Modified:
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/AbstractResolver.java
===================================================================
---
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/AbstractResolver.java 2009-11-23
12:36:31 UTC (rev 96733)
+++
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/AbstractResolver.java 2009-11-23
12:48:24 UTC (rev 96734)
@@ -98,4 +98,24 @@
OSGiBundleState bundleState = OSGiBundleState.assertBundleState(bundle);
return resolverBundleMap.remove(bundleState);
}
+
+ public boolean match(Bundle importer, Bundle exporter, String packageName)
+ {
+ if (importer == null)
+ throw new IllegalArgumentException("Null importer");
+ if (exporter == null)
+ throw new IllegalArgumentException("Null exporter");
+ if (packageName == null)
+ throw new IllegalArgumentException("Null packageName");
+
+ ExportPackage exportPackage = getExporter(importer, packageName);
+ if (exportPackage == null)
+ return false;
+
+ Bundle packageOwner = exportPackage.getOwner().getBundle();
+ boolean match = packageOwner.getSymbolicName().equals(exporter.getSymbolicName());
+ match = match && packageOwner.getVersion().equals(exporter.getVersion());
+
+ return match;
+ }
}
\ No newline at end of file
Modified:
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/Resolver.java
===================================================================
---
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/Resolver.java 2009-11-23
12:36:31 UTC (rev 96733)
+++
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/Resolver.java 2009-11-23
12:48:24 UTC (rev 96734)
@@ -83,9 +83,20 @@
/**
* Get the exporter for the given import package.
- * @param bundle The bundle that imports the package.
- * @param importPackage The import package name
+ *
+ * @param importer The bundle that imports the package.
+ * @param packageName The import package name
* @return The export package that the import is wired to or null if the import is not
yet resolved.
*/
- ExportPackage getExporter(Bundle bundle, String importPackage);
+ ExportPackage getExporter(Bundle importer, String packageName);
+
+ /**
+ * Return true if the given importer is wired to the given exporter for the given
package name.
+ *
+ * @param importer The bundle that imports the package.
+ * @param exporter The bundle that exports the package.
+ * @param packageName The import package name
+ * @return True if the importer is wired to the exporter
+ */
+ boolean match(Bundle importer, Bundle exporter, String packageName);
}
\ No newline at end of file
Added:
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/NoopResolverImpl.java
===================================================================
---
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/NoopResolverImpl.java
(rev 0)
+++
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/NoopResolverImpl.java 2009-11-23
12:48:24 UTC (rev 96734)
@@ -0,0 +1,99 @@
+/*
+ * 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.osgi.framework.resolver.internal;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.jboss.osgi.framework.bundle.OSGiBundleManager;
+import org.jboss.osgi.framework.resolver.AbstractResolver;
+import org.jboss.osgi.framework.resolver.ExportPackage;
+import org.jboss.osgi.framework.resolver.ResolverBundle;
+import org.osgi.framework.Bundle;
+
+/**
+ * A dummy resolver that always that performs no internal resolution.
+ *
+ * When this resolver is installed into the framework, only the functionality that is
build
+ * into the Microcontainer will be used to resolve the bundles. Additional contraints
might
+ * be modeled by the OSGi Capability/Requirement implementations.
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 23-Nov-2009
+ */
+public class NoopResolverImpl extends AbstractResolver
+{
+ public NoopResolverImpl(OSGiBundleManager bundleManager)
+ {
+ super(bundleManager);
+ }
+
+ @Override
+ public ResolverBundle addBundle(Bundle bundle)
+ {
+ // Ignore the system bundle
+ if (bundle.getBundleId() == 0)
+ return null;
+
+ return super.addBundle(bundle);
+ }
+
+ public ExportPackage getExporter(Bundle importer, String packageName)
+ {
+ return null;
+ }
+
+ // Always return the complete list of unresolved bundles
+ public List<ResolverBundle> resolve(List<Bundle> bundles)
+ {
+ // Get the list of unresolved resBundles
+ List<ResolverBundle> unresolved = new ArrayList<ResolverBundle>();
+ if (bundles == null)
+ {
+ for (ResolverBundle aux : getBundles())
+ {
+ if (aux.isResolved() == false)
+ unresolved.add(aux);
+ }
+ }
+ else
+ {
+ for (Bundle bundle : bundles)
+ {
+ ResolverBundle aux = getBundle(bundle);
+ if (aux == null)
+ throw new IllegalStateException("Cannot obtain resBundle for: "
+ bundle);
+
+ if (aux.isResolved() == false)
+ unresolved.add(aux);
+ }
+ }
+ return Collections.unmodifiableList(unresolved);
+ }
+
+ // Always return true for the suggested match
+ public boolean match(Bundle importer, Bundle exporter, String packageName)
+ {
+ return true;
+ }
+}
\ No newline at end of file
Property changes on:
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/NoopResolverImpl.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified:
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/basic/BundleCapability.java
===================================================================
---
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/basic/BundleCapability.java 2009-11-23
12:36:31 UTC (rev 96733)
+++
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/basic/BundleCapability.java 2009-11-23
12:48:24 UTC (rev 96734)
@@ -84,7 +84,7 @@
{
OSGiPackageCapability osgiPackageCapability =
(OSGiPackageCapability)packageCapability;
OSGiPackageRequirement osgiPackageRequirement =
(OSGiPackageRequirement)bundleRequirement.getPackageRequirement();
- return osgiPackageCapability.match(osgiPackageRequirement);
+ return osgiPackageCapability.matchPackageAttributes(osgiPackageRequirement);
}
void wireRequirement(BundleRequirement bundleRequirement)
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-23
12:36:31 UTC (rev 96733)
+++
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/drools/RuleBasedResolverImpl.java 2009-11-23
12:48:24 UTC (rev 96734)
@@ -77,6 +77,9 @@
@Override
public ResolverBundle addBundle(Bundle bundle)
{
+ if (bundle == null)
+ throw new IllegalArgumentException("Null bundle");
+
ResolverBundle resBundle;
if (bundle.getBundleId() == 0)
{
@@ -99,6 +102,9 @@
@Override
public ResolverBundle removeBundle(Bundle bundle)
{
+ if (bundle == null)
+ throw new IllegalArgumentException("Null bundle");
+
ResolverBundle resBundle = super.removeBundle(bundle);
FactHandle factHandle = facts.get(resBundle);
if (factHandle != null)
@@ -159,11 +165,16 @@
return Collections.unmodifiableList(resolved);
}
- public ExportPackage getExporter(Bundle bundle, String packageName)
+ public ExportPackage getExporter(Bundle importer, String packageName)
{
- ResolverBundle resBundle = getBundle(bundle);
+ if (importer == null)
+ throw new IllegalArgumentException("Null importer");
+ if (packageName == null)
+ throw new IllegalArgumentException("Null packageName");
+
+ ResolverBundle resBundle = getBundle(importer);
if (resBundle == null)
- throw new IllegalStateException("Cannot find resovable for: " +
bundle);
+ throw new IllegalStateException("Cannot find resovable for: " +
importer);
ImportPackage importPackage = resBundle.getImportPackage(packageName);
if (importPackage == null)
Modified:
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/PackageAdminImpl.java
===================================================================
---
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/PackageAdminImpl.java 2009-11-23
12:36:31 UTC (rev 96733)
+++
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/PackageAdminImpl.java 2009-11-23
12:48:24 UTC (rev 96734)
@@ -200,9 +200,10 @@
if (unresolvedBundles.isEmpty())
return true;
+ List<OSGiBundleState> resolvableBundles = new
ArrayList<OSGiBundleState>();
+
// Resolve the bundles through the resolver
Resolver bundleResolver = bundleManager.getPlugin(ResolverPlugin.class);
- List<OSGiBundleState> resolvableBundles = new
ArrayList<OSGiBundleState>();
for (ResolverBundle aux : bundleResolver.resolve(unresolvedBundles))
resolvableBundles.add(OSGiBundleState.assertBundleState(aux.getBundle()));
@@ -226,8 +227,9 @@
// Sanity check, that the controller could actually also resolve these bundles
if (resolvableBundles.isEmpty() == false)
- throw new IllegalStateException("Controller could not resolve: " +
resolvableBundles);
+ log.error("Controller could not resolve: " + resolvableBundles);
+ allResolved = allResolved && resolvableBundles.isEmpty();
return allResolved;
}
Modified:
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/classloader/RequireBundleUnitTestCase.java
===================================================================
---
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/classloader/RequireBundleUnitTestCase.java 2009-11-23
12:36:31 UTC (rev 96733)
+++
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/classloader/RequireBundleUnitTestCase.java 2009-11-23
12:48:24 UTC (rev 96734)
@@ -139,7 +139,7 @@
bundle2.start();
fail("Should not be here!");
}
- catch (RuntimeException rte)
+ catch (BundleException rte)
{
// expected
}
@@ -328,7 +328,7 @@
bundle2.start();
fail("Should not be here!");
}
- catch (RuntimeException rte)
+ catch (BundleException rte)
{
// expected
}
Modified:
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 2009-11-23
12:36:31 UTC (rev 96733)
+++
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractImportExportTest.java 2009-11-23
12:48:24 UTC (rev 96734)
@@ -34,7 +34,7 @@
import org.osgi.service.packageadmin.PackageAdmin;
/**
- * An abstract {@link Resolver} test.
+ * An abstract resolver test.
*
* @author thomas.diesler(a)jboss.com
* @since 09-Nov-2009
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-23
12:36:31 UTC (rev 96733)
+++
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractResolverTest.java 2009-11-23
12:48:24 UTC (rev 96734)
@@ -74,12 +74,12 @@
@Before
public void setUp() throws Exception
{
- Resolver installedPlugin = getInstalledResolver();
+ Resolver installedResolver = getInstalledResolver();
Resolver testResolver = getTestResolver();
- if (installedPlugin.getClass() != testResolver.getClass())
+ if (installedResolver.getClass() != testResolver.getClass())
{
OSGiBundleManager bundleManager = framework.getBundleManager();
- bundleManager.removePlugin((Plugin)installedPlugin);
+ bundleManager.removePlugin((Plugin)installedResolver);
bundleManager.addPlugin((Plugin)testResolver);
}
}
@@ -93,7 +93,7 @@
protected Resolver getInstalledResolver()
{
OSGiBundleManager bundleManager = framework.getBundleManager();
- return bundleManager.getPlugin(ResolverPlugin.class);
+ return bundleManager.getOptionalPlugin(ResolverPlugin.class);
}
protected PackageAdmin getPackageAdmin()
Modified:
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/BasicResolverTest.java
===================================================================
---
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/BasicResolverTest.java 2009-11-23
12:36:31 UTC (rev 96733)
+++
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/BasicResolverTest.java 2009-11-23
12:48:24 UTC (rev 96734)
@@ -55,9 +55,9 @@
}
@Override
- public void testPackageAttributeMandatoryFails() throws Exception
+ public void testRequireBundleVersionFails() throws Exception
{
- System.out.println("FIXME: testPackageAttributeMandatoryFails");
+ System.out.println("FIXME: testRequireBundleVersionFails");
}
@Override
@@ -77,10 +77,10 @@
{
System.out.println("FIXME: testPreferredExporterLowerIdReverse");
}
-
+
@Override
- public void testRequireBundleVersionFails() throws Exception
+ public void testPackageAttributeMandatoryFails() throws Exception
{
- System.out.println("FIXME: testRequireBundleVersionFails");
+ System.out.println("FIXME: testPackageAttributeMandatoryFails");
}
}
\ No newline at end of file
Added:
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/NoExternalResolverTest.java
===================================================================
---
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/NoExternalResolverTest.java
(rev 0)
+++
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/NoExternalResolverTest.java 2009-11-23
12:48:24 UTC (rev 96734)
@@ -0,0 +1,56 @@
+/*
+ * 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.NoopResolverImpl;
+
+/**
+ * Test resolver functionality without external resolver.
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 23-Nov-2009
+ */
+public class NoExternalResolverTest extends AbstractImportExportTest
+{
+ @Override
+ protected Resolver getTestResolver()
+ {
+ Resolver resolver = getInstalledResolver();
+ if (resolver.getClass() != NoopResolverImpl.class)
+ {
+ OSGiBundleManager bundleManager = framework.getBundleManager();
+ resolver = new NoopResolverImpl(bundleManager);
+ resolver.addBundle(bundleManager.getSystemBundle());
+ }
+ return resolver;
+ }
+
+ @Override
+ public void testPreferredExporterHigherVersion() throws Exception
+ {
+ System.out.println("FIXME: testPreferredExporterHigherVersion");
+ }
+}
\ No newline at end of file
Property changes on:
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/NoExternalResolverTest.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF