Source:
protected P2ResolutionResult resolveDependencies(ReactorProject project, AbstractResolutionStrategy strategy, TargetEnvironment environment) { ResolutionDataImpl data = new ResolutionDataImpl(context.getEEResolutionHints()); Set<IInstallableUnit> availableUnits = context.getInstallableUnits(); if (project != null) { data.setRootIUs((Set<IInstallableUnit>) project.getDependencyMetadata(true)); Collection<IInstallableUnit> projectSecondaryIUs = (Collection<IInstallableUnit>) project .getDependencyMetadata(false); if (!projectSecondaryIUs.isEmpty()) { availableUnits = new LinkedHashSet<IInstallableUnit>(availableUnits); availableUnits.addAll(projectSecondaryIUs); } } else { data.setRootIUs(Collections.<IInstallableUnit> emptySet()); } data.setAdditionalRequirements(additionalRequirements); data.setAvailableIUs(availableUnits); data.setAdditionalFilterProperties(additionalFilterProperties); strategy.setData(data); Collection<IInstallableUnit> newState; try { newState = strategy.resolve(environment, monitor); } catch (ResolverException e) { logger.info(e.getSelectionContext()); logger.error("Cannot resolve project dependencies:"); new MultiLineLogger(logger).error(e.getDetails(), " "); logger.error(""); logger.error("The dependency resolution failed because there are requirements which are neither satisfied by artifacts " + "from the project's target plaform nor by other projects in the reactor."); throw new BuildFailureException("Cannot resolve dependencies of " + project.toString(), e); } if (usedTargetPlatformUnits != null) { usedTargetPlatformUnits.addAll(newState); } return toResolutionResult(newState, project); }

Target:
protected P2ResolutionResult resolveDependencies(ReactorProject project, AbstractResolutionStrategy strategy, TargetEnvironment environment) { ResolutionDataImpl data = new ResolutionDataImpl(context.getEEResolutionHints()); Set<IInstallableUnit> availableUnits = context.getInstallableUnits(); if (project != null) { data.setRootIUs((Set<IInstallableUnit>) project.getDependencyMetadata(true)); Collection<IInstallableUnit> projectSecondaryIUs = (Collection<IInstallableUnit>) project .getDependencyMetadata(false); if (!projectSecondaryIUs.isEmpty()) { availableUnits = new LinkedHashSet<IInstallableUnit>(availableUnits); availableUnits.addAll(projectSecondaryIUs); } } else { data.setRootIUs(Collections.<IInstallableUnit> emptySet()); } data.setAdditionalRequirements(additionalRequirements); data.setAvailableIUs(availableUnits); data.setAdditionalFilterProperties(additionalFilterProperties); strategy.setData(data); Collection<IInstallableUnit> newState; try { newState = strategy.resolve(environment, monitor); } catch (ResolverException e) { logger.info(e.getSelectionContext()); logger.error("Cannot resolve project dependencies:"); new MultiLineLogger(logger).error(e.getDetails(), " "); logger.error(""); logger.error("The dependency resolution failed because there are requirements which are neither satisfied by artifacts " + "from the project's target platform nor by other projects in the reactor."); throw new BuildFailureException("Cannot resolve dependencies of " + project.toString(), e); } if (usedTargetPlatformUnits != null) { usedTargetPlatformUnits.addAll(newState); } return toResolutionResult(newState, project); }