diff options
author | Thomas Watson | 2012-08-30 13:44:29 +0000 |
---|---|---|
committer | Thomas Watson | 2012-08-30 13:44:29 +0000 |
commit | dfcd2b0573450a5350a5a4391923111fefceeb05 (patch) | |
tree | e0e1fe6fd3e79d5406f0d7ec757d15891ea6fe6a /bundles/org.eclipse.osgi/resolver | |
parent | 6c178c339df4c827ccb6b790a988e7408be795d7 (diff) | |
download | rt.equinox.framework-dfcd2b0573450a5350a5a4391923111fefceeb05.tar.gz rt.equinox.framework-dfcd2b0573450a5350a5a4391923111fefceeb05.tar.xz rt.equinox.framework-dfcd2b0573450a5350a5a4391923111fefceeb05.zip |
Bug 388299 - OSGi startup fails - problem with fragmentsv20120830-134429
Diffstat (limited to 'bundles/org.eclipse.osgi/resolver')
-rw-r--r-- | bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/resolver/StateHelperImpl.java | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/resolver/StateHelperImpl.java b/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/resolver/StateHelperImpl.java index df09e9a75..74dac6fff 100644 --- a/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/resolver/StateHelperImpl.java +++ b/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/resolver/StateHelperImpl.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2004, 2011 IBM Corporation and others. + * Copyright (c) 2004, 2012 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -17,6 +17,7 @@ import org.eclipse.osgi.internal.baseadaptor.ArrayMap; import org.eclipse.osgi.service.resolver.*; import org.osgi.framework.hooks.resolver.ResolverHook; import org.osgi.framework.hooks.resolver.ResolverHookFactory; +import org.osgi.framework.namespace.ExecutionEnvironmentNamespace; import org.osgi.framework.wiring.BundleCapability; import org.osgi.framework.wiring.BundleRevision; @@ -340,13 +341,19 @@ public final class StateHelperImpl implements StateHelper { HostSpecification host = description.getHost(); // it is a fragment if (host != null) { - // just create a dependency between fragment and host + // just create a dependencies for non-payload requirements (osgi.wiring.host and osgi.ee) if (host.getHosts() != null) { BundleDescription[] hosts = host.getHosts(); for (int i = 0; i < hosts.length; i++) if (hosts[i] != description) references.add(new Object[] {description, hosts[i]}); } + GenericDescription[] genericDependencies = description.getResolvedGenericRequires(); + for (GenericDescription dependency : genericDependencies) { + if (ExecutionEnvironmentNamespace.EXECUTION_ENVIRONMENT_NAMESPACE.equals(dependency.getType())) { + references.add(new Object[] {description, dependency.getSupplier()}); + } + } } else { // it is a host buildReferences(description, ((BundleDescriptionImpl) description).getBundleDependencies(), references); |