diff options
5 files changed, 29 insertions, 46 deletions
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleResolver.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleResolver.java index fb3920413..6e1f16f5c 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleResolver.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleResolver.java @@ -1518,6 +1518,11 @@ final class ModuleResolver { throw new ResolutionTimeout(); } } + + @Override + public Collection<Wire> getSubstitutionWires(Wiring wiring) { + return ((ModuleWiring) wiring).getSubstitutionWires(); + } } protected boolean threadResolving() { diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleWiring.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleWiring.java index dd8a8dd62..ce85e5074 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleWiring.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleWiring.java @@ -14,7 +14,6 @@ import java.net.URL; import java.util.*; import java.util.concurrent.Callable; import java.util.concurrent.atomic.AtomicReference; -import org.apache.felix.resolver.FelixWiring; import org.eclipse.osgi.container.ModuleRevisionBuilder.GenericInfo; import org.eclipse.osgi.internal.container.AtomicLazyInitializer; import org.eclipse.osgi.internal.container.InternalUtils; @@ -29,7 +28,7 @@ import org.osgi.resource.*; * An implementation of {@link BundleWiring}. * @since 3.10 */ -public final class ModuleWiring implements BundleWiring, FelixWiring { +public final class ModuleWiring implements BundleWiring { class LoaderInitializer implements Callable<ModuleLoader> { @Override public ModuleLoader call() throws Exception { @@ -460,22 +459,7 @@ public final class ModuleWiring implements BundleWiring, FelixWiring { return revision.toString(); } - /** - * Returns the subset of {@link Wiring#getRequiredResourceWires(String) require wires} - * that provide wires to {@link Capability capabilities} which substitute capabilities - * of this wiring. For example, when a {@link PackageNamespace package} name is both - * provided and required by the same resource. If the package requirement is resolved - * to a capability hosted by a different wiring then the package capability is - * considered to be substituted. - * - * @see #getSubstitutedNames() - * @return A collection containing a snapshot of the substitution {@link Wire}s - * for the {@link Requirement requirements} of this wiring, or an empty list - * if this wiring has no substitution wires. - * @since 3.12 - */ - @Override - public Collection<Wire> getSubstitutionWires() { + Collection<Wire> getSubstitutionWires() { if (substitutedPkgNames.isEmpty()) { return Collections.emptyList(); } diff --git a/bundles/org.eclipse.osgi/felix/src/org/apache/felix/resolver/FelixResolveContext.java b/bundles/org.eclipse.osgi/felix/src/org/apache/felix/resolver/FelixResolveContext.java index 502a7e459..9782d0a02 100755 --- a/bundles/org.eclipse.osgi/felix/src/org/apache/felix/resolver/FelixResolveContext.java +++ b/bundles/org.eclipse.osgi/felix/src/org/apache/felix/resolver/FelixResolveContext.java @@ -18,7 +18,11 @@ */package org.apache.felix.resolver; import java.util.Collection; + +import org.osgi.framework.namespace.PackageNamespace; import org.osgi.resource.Resource; +import org.osgi.resource.Wire; +import org.osgi.resource.Wiring; public interface FelixResolveContext { @@ -41,4 +45,19 @@ public interface FelixResolveContext * resources. The returned collection may be unmodifiable. */ public Collection<Resource> getOndemandResources(Resource host); + + /** + * Returns the subset of {@link Wiring#getRequiredResourceWires(String) require wires} + * that provide wires to {@link Capability capabilities} which substitute capabilities + * of the given wiring. For example, when a {@link PackageNamespace package} name is both + * provided and required by the same resource. If the package requirement is resolved + * to a capability hosted by a different wiring then the package capability is + * considered to be substituted. + * + * @param wiring the wiring to get the substitution wires from + * @return A collection containing a snapshot of the substitution {@link Wire}s + * for the {@link Requirement requirements} of this wiring, or an empty list + * if this wiring has no substitution wires. + */ + public Collection<Wire> getSubstitutionWires(Wiring wiring); } diff --git a/bundles/org.eclipse.osgi/felix/src/org/apache/felix/resolver/FelixWiring.java b/bundles/org.eclipse.osgi/felix/src/org/apache/felix/resolver/FelixWiring.java deleted file mode 100644 index ce453b029..000000000 --- a/bundles/org.eclipse.osgi/felix/src/org/apache/felix/resolver/FelixWiring.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */package org.apache.felix.resolver; - -import java.util.Collection; -import org.osgi.resource.Wire; - -public interface FelixWiring -{ - Collection<Wire> getSubstitutionWires(); -} diff --git a/bundles/org.eclipse.osgi/felix/src/org/apache/felix/resolver/ResolverImpl.java b/bundles/org.eclipse.osgi/felix/src/org/apache/felix/resolver/ResolverImpl.java index 897b9698f..60beca879 100755 --- a/bundles/org.eclipse.osgi/felix/src/org/apache/felix/resolver/ResolverImpl.java +++ b/bundles/org.eclipse.osgi/felix/src/org/apache/felix/resolver/ResolverImpl.java @@ -1608,9 +1608,10 @@ public class ResolverImpl implements Resolver if (wiring != null) { Collection<Wire> substitutionWires; - if (wiring instanceof FelixWiring) + if (session.getContext() instanceof FelixResolveContext) { - substitutionWires = ((FelixWiring) wiring).getSubstitutionWires(); + substitutionWires = ((FelixResolveContext) session.getContext()).getSubstitutionWires( + wiring); } else { |