Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Watson2017-02-09 17:41:03 +0000
committerThomas Watson2017-02-09 17:41:03 +0000
commit71394a2cbca386ea5b4a2acc3d807be51336baca (patch)
tree7398d2e734fd35b011b0784787852bd5b22535af
parent1bc36f585d4c1e6e329b0d584c9a649f0330416a (diff)
downloadrt.equinox.framework-71394a2cbca386ea5b4a2acc3d807be51336baca.tar.gz
rt.equinox.framework-71394a2cbca386ea5b4a2acc3d807be51336baca.tar.xz
rt.equinox.framework-71394a2cbca386ea5b4a2acc3d807be51336baca.zip
Change solution to avoid introducing new API on ModuleWiring. Change-Id: I1de1dd5ce55c05b04f9eaa699606ce70ba22ec89 Signed-off-by: Thomas Watson <tjwatson@us.ibm.com>
-rw-r--r--bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleResolver.java5
-rw-r--r--bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleWiring.java20
-rwxr-xr-xbundles/org.eclipse.osgi/felix/src/org/apache/felix/resolver/FelixResolveContext.java19
-rw-r--r--bundles/org.eclipse.osgi/felix/src/org/apache/felix/resolver/FelixWiring.java26
-rwxr-xr-xbundles/org.eclipse.osgi/felix/src/org/apache/felix/resolver/ResolverImpl.java5
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
{

Back to the top