Lines 364-374
Link Here
|
364 |
assumptions.add(iu); |
364 |
assumptions.add(iu); |
365 |
} |
365 |
} |
366 |
|
366 |
|
367 |
private void createNegation(IInstallableUnit iu, IRequirement req) throws ContradictionException { |
367 |
private void createNegation(IInstallableUnit iu, IRequirement req, boolean isRootIu) throws ContradictionException { |
368 |
if (DEBUG) { |
368 |
if (DEBUG) { |
369 |
Tracing.debug(iu + "=0"); //$NON-NLS-1$ |
369 |
Tracing.debug(iu + "=0"); //$NON-NLS-1$ |
370 |
} |
370 |
} |
371 |
dependencyHelper.setFalse(iu, new Explanation.MissingIU(iu, req)); |
371 |
dependencyHelper.setFalse(iu, new Explanation.MissingIU(iu, req, isRootIu)); |
372 |
} |
372 |
} |
373 |
|
373 |
|
374 |
// Check whether the requirement is applicable |
374 |
// Check whether the requirement is applicable |
Lines 416-422
Link Here
|
416 |
} |
416 |
} |
417 |
if (req.getMin() > 0) { |
417 |
if (req.getMin() > 0) { |
418 |
if (matches.isEmpty()) { |
418 |
if (matches.isEmpty()) { |
419 |
missingRequirement(iu, req); |
419 |
missingRequirement(iu, req, isRootIu); |
420 |
} else { |
420 |
} else { |
421 |
if (req.isGreedy()) { |
421 |
if (req.isGreedy()) { |
422 |
IInstallableUnit reqIu = matches.get(0); |
422 |
IInstallableUnit reqIu = matches.get(0); |
Lines 503-509
Link Here
|
503 |
} |
503 |
} |
504 |
iuSlice.put(iu.getVersion(), iu); |
504 |
iuSlice.put(iu.getVersion(), iu); |
505 |
if (!isApplicable(iu)) { |
505 |
if (!isApplicable(iu)) { |
506 |
createNegation(iu, null); |
506 |
createNegation(iu, null, isRootIU); |
507 |
return; |
507 |
return; |
508 |
} |
508 |
} |
509 |
|
509 |
|
Lines 581-587
Link Here
|
581 |
} |
581 |
} |
582 |
if (req.getMin() > 0) { |
582 |
if (req.getMin() > 0) { |
583 |
if (matches.isEmpty()) { |
583 |
if (matches.isEmpty()) { |
584 |
missingRequirement(patch, req); |
584 |
missingRequirement(patch, req, isRootIu); |
585 |
} else { |
585 |
} else { |
586 |
IInstallableUnit current; |
586 |
IInstallableUnit current; |
587 |
if (req.isGreedy()) { |
587 |
if (req.isGreedy()) { |
Lines 763-769
Link Here
|
763 |
if (req.getMin() > 0) { |
763 |
if (req.getMin() > 0) { |
764 |
if (matches.isEmpty()) { |
764 |
if (matches.isEmpty()) { |
765 |
if (requiredPatches.isEmpty()) { |
765 |
if (requiredPatches.isEmpty()) { |
766 |
missingRequirement(iu, req); |
766 |
missingRequirement(iu, req, isRootIu); |
767 |
} else { |
767 |
} else { |
768 |
createImplication(iu, requiredPatches, new Explanation.HardRequirement(iu, req)); |
768 |
createImplication(iu, requiredPatches, new Explanation.HardRequirement(iu, req)); |
769 |
} |
769 |
} |
Lines 848-856
Link Here
|
848 |
expandRequirement(req, iu, CollectionUtils.<AbstractVariable> emptyList(), isRootIu); |
848 |
expandRequirement(req, iu, CollectionUtils.<AbstractVariable> emptyList(), isRootIu); |
849 |
} |
849 |
} |
850 |
|
850 |
|
851 |
private void missingRequirement(IInstallableUnit iu, IRequirement req) throws ContradictionException { |
851 |
private void missingRequirement(IInstallableUnit iu, IRequirement req, boolean isRootIu) throws ContradictionException { |
852 |
result.add(new Status(IStatus.WARNING, DirectorActivator.PI_DIRECTOR, NLS.bind(Messages.Planner_Unsatisfied_dependency, iu, req))); |
852 |
result.add(new Status(IStatus.WARNING, DirectorActivator.PI_DIRECTOR, NLS.bind(Messages.Planner_Unsatisfied_dependency, iu, req))); |
853 |
createNegation(iu, req); |
853 |
createNegation(iu, req, isRootIu); |
854 |
} |
854 |
} |
855 |
|
855 |
|
856 |
/** |
856 |
/** |