You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ri...@apache.org on 2009/12/15 21:18:15 UTC
svn commit: r890971 - in
/felix/sandbox/rickhall/resolver/src/main/java/org/apache/felix/resolver:
manifestparser/Main.java prototype/ProtoResolver.java
Author: rickhall
Date: Tue Dec 15 20:18:15 2009
New Revision: 890971
URL: http://svn.apache.org/viewvc?rev=890971&view=rev
Log:
Detect when merging for require-bundle is necessary.
Modified:
felix/sandbox/rickhall/resolver/src/main/java/org/apache/felix/resolver/manifestparser/Main.java
felix/sandbox/rickhall/resolver/src/main/java/org/apache/felix/resolver/prototype/ProtoResolver.java
Modified: felix/sandbox/rickhall/resolver/src/main/java/org/apache/felix/resolver/manifestparser/Main.java
URL: http://svn.apache.org/viewvc/felix/sandbox/rickhall/resolver/src/main/java/org/apache/felix/resolver/manifestparser/Main.java?rev=890971&r1=890970&r2=890971&view=diff
==============================================================================
--- felix/sandbox/rickhall/resolver/src/main/java/org/apache/felix/resolver/manifestparser/Main.java (original)
+++ felix/sandbox/rickhall/resolver/src/main/java/org/apache/felix/resolver/manifestparser/Main.java Tue Dec 15 20:18:15 2009
@@ -401,8 +401,8 @@
private static Module getTarget(List<Module> modules)
{
// return getTargetByUnresolved(modules);
- return getTargetBySymbolicName(modules, "org.springframework.faces");
-// return getTargetBySymbolicName(modules, "bundle1");
+// return getTargetBySymbolicName(modules, "org.springframework.faces");
+ return getTargetBySymbolicName(modules, "bundle1");
}
private static Module getTargetByUnresolved(List<Module> modules)
Modified: felix/sandbox/rickhall/resolver/src/main/java/org/apache/felix/resolver/prototype/ProtoResolver.java
URL: http://svn.apache.org/viewvc/felix/sandbox/rickhall/resolver/src/main/java/org/apache/felix/resolver/prototype/ProtoResolver.java?rev=890971&r1=890970&r2=890971&view=diff
==============================================================================
--- felix/sandbox/rickhall/resolver/src/main/java/org/apache/felix/resolver/prototype/ProtoResolver.java (original)
+++ felix/sandbox/rickhall/resolver/src/main/java/org/apache/felix/resolver/prototype/ProtoResolver.java Tue Dec 15 20:18:15 2009
@@ -243,7 +243,7 @@
//System.out.println("+++ existingConstraints: " + existingConstraintsCopy);
//System.out.println("+++ currentConstraints : " + currentConstraints);
checkConsistency(
- module, cap, candidateMap,
+ module, req, cap, candidateMap,
currentConstraintsCopy, candidateConstraints);
// Finally, modify the original existing constraints.
currentConstraints.putAll(currentConstraintsCopy);
@@ -431,7 +431,7 @@
//System.out.println("+++ existingConstraints: " + existingConstraintsCopy);
//System.out.println("+++ currentConstraints : " + currentConstraints);
checkConsistency(
- module, cap, candidateMap,
+ module, req, cap, candidateMap,
currentConstraintsCopy, candidateConstraints);
// Finally, modify the original existing constraints.
currentConstraints.putAll(currentConstraintsCopy);
@@ -778,8 +778,7 @@
if (capSource != null)
{
- constraints.put(uses.get(usesIdx),
- new Blame(capSource, capTarget.getModule()));
+ constraints.put(uses.get(usesIdx), new Blame(capSource, capTarget.getModule()));
calculateResolvedUsesConstraints(capSource, constraints, cycleMap);
}
}
@@ -799,7 +798,8 @@
}
private void checkConsistency(
- Module targetModule, Capability capGoal,
+ Module targetModule,
+ Requirement reqGoal, Capability capCandidate,
Map<Requirement, Set<Capability>> candidateMap,
Map<String, Blame> currentConstraints,
Map<String, Blame> candidateConstraints)
@@ -814,17 +814,21 @@
m_invokeCounts.put(methodName, count);
}
-//System.out.println("Goal: " + capGoal);
-//System.out.println("Candidate map: " + candidateMap);
-//System.out.println(targetModule + " current : " + currentConstraints);
-//System.out.println(spaces(targetModule.toString()) + " candidate : " + candidateConstraints);
+System.out.println("Goal : " + reqGoal);
+System.out.println("Candidate : " + capCandidate);
+System.out.println("Candidate map: " + candidateMap);
+System.out.println(targetModule + " current : " + currentConstraints);
+System.out.println(spaces(targetModule.toString()) + " candidate : " + candidateConstraints);
// Find matching providing for requirement.
- if ((capGoal != null) && capGoal.getNamespace().equals(Capability.PACKAGE_NAMESPACE))
+ if ((capCandidate != null) && capCandidate.getNamespace().equals(Capability.PACKAGE_NAMESPACE))
{
verifyUses(
targetModule,
- (String) capGoal.getAttribute(Capability.PACKAGE_ATTR).getValue(),
- candidateMap, currentConstraints, candidateConstraints,
+ reqGoal,
+ (String) capCandidate.getAttribute(Capability.PACKAGE_ATTR).getValue(),
+ candidateMap,
+ currentConstraints,
+ candidateConstraints,
new HashMap<String, List<Module>>());
}
else
@@ -833,8 +837,13 @@
it.hasNext(); )
{
Entry<String, Blame> entry = it.next();
- verifyUses(targetModule, entry.getKey(),
- candidateMap, currentConstraints, candidateConstraints,
+ verifyUses(
+ targetModule,
+ reqGoal,
+ entry.getKey(),
+ candidateMap,
+ currentConstraints,
+ candidateConstraints,
new HashMap<String, List<Module>>());
}
}
@@ -842,7 +851,8 @@
//System.out.println(spaces(targetModule.toString()) + " -CONSISTENT-");
}
- private void verifyUses(Module targetModule, String pkgName,
+ private void verifyUses(Module targetModule,
+ Requirement reqGoal, String pkgName,
Map<Requirement, Set<Capability>> candidateMap,
Map<String, Blame> currentConstraints,
Map<String, Blame> candidateConstraints, Map<String, List<Module>> cycleMap)
@@ -889,6 +899,11 @@
cycleMap.put(pkgName, list);
if ((current != null)
+ && reqGoal.getNamespace().equals(Capability.MODULE_NAMESPACE))
+ {
+ System.out.println("+++ NEED TO MERGE: " + current + " AND " + candidate);
+ }
+ else if ((current != null)
&& !current.m_capability.equals(candidate.m_capability))
{
//System.out.println("Conflict: " + candidate.m_capability + " WITH " + curren.m_capability);
@@ -971,7 +986,7 @@
List<String> uses = candidate.m_capability.getUses();
for (int usesIdx = 0; usesIdx < uses.size(); usesIdx++)
{
- verifyUses(targetModule, uses.get(usesIdx), candidateMap,
+ verifyUses(targetModule, reqGoal, uses.get(usesIdx), candidateMap,
currentConstraints, candidateConstraints, cycleMap);
}
// Now we can merge constraints, since there was no issue.