diff --git a/tycho-api/src/main/java/org/eclipse/tycho/TargetPlatform.java b/tycho-api/src/main/java/org/eclipse/tycho/TargetPlatform.java index 46fd097a86..99b2572379 100644 --- a/tycho-api/src/main/java/org/eclipse/tycho/TargetPlatform.java +++ b/tycho-api/src/main/java/org/eclipse/tycho/TargetPlatform.java @@ -33,6 +33,7 @@ public interface TargetPlatform { * Key under which the final target platform is stored in the reactor project instances. */ String FINAL_TARGET_PLATFORM_KEY = "org.eclipse.tycho.core.TychoConstants/targetPlatform"; + String PRELIMINARY_TARGET_PLATFORM_KEY = "org.eclipse.tycho.core.TychoConstants/dependencyOnlyTargetPlatform"; /** * Returns an artifact of the given type, id and matching version. The version reference string @@ -77,12 +78,11 @@ ArtifactKey resolveArtifact(String type, String id, String versionRef) default ResolvedArtifactKey resolvePackage(String packageName, String versionRef) throws DependencyResolutionException, IllegalArtifactReferenceException { - ArtifactKey packageJar = resolveArtifact(PublisherHelper.CAPABILITY_NS_JAVA_PACKAGE, packageName, - versionRef); - File location = getArtifactLocation(new DefaultArtifactKey(ArtifactType.TYPE_ECLIPSE_PLUGIN, - packageJar.getId(), packageJar.getVersion())); - return ResolvedArtifactKey.of(ArtifactType.TYPE_ECLIPSE_PLUGIN, packageJar.getId(), - packageJar.getVersion(), location); + ArtifactKey packageJar = resolveArtifact(PublisherHelper.CAPABILITY_NS_JAVA_PACKAGE, packageName, versionRef); + File location = getArtifactLocation( + new DefaultArtifactKey(ArtifactType.TYPE_ECLIPSE_PLUGIN, packageJar.getId(), packageJar.getVersion())); + return ResolvedArtifactKey.of(ArtifactType.TYPE_ECLIPSE_PLUGIN, packageJar.getId(), packageJar.getVersion(), + location); } /** diff --git a/tycho-core/src/main/java/org/eclipse/tycho/core/resolver/DefaultTargetPlatformService.java b/tycho-core/src/main/java/org/eclipse/tycho/core/resolver/DefaultTargetPlatformService.java index 0dee889fac..ebed7133f5 100644 --- a/tycho-core/src/main/java/org/eclipse/tycho/core/resolver/DefaultTargetPlatformService.java +++ b/tycho-core/src/main/java/org/eclipse/tycho/core/resolver/DefaultTargetPlatformService.java @@ -36,7 +36,10 @@ import org.eclipse.tycho.core.DependencyResolver; import org.eclipse.tycho.core.osgitools.DefaultReactorProject; import org.eclipse.tycho.p2.repository.GAV; +import org.eclipse.tycho.p2.repository.PublishingRepository; import org.eclipse.tycho.p2.target.facade.PomDependencyCollector; +import org.eclipse.tycho.p2.target.facade.TargetPlatformFactory; +import org.eclipse.tycho.p2resolver.PreliminaryTargetPlatformImpl; import org.eclipse.tycho.repository.registry.facade.ReactorRepositoryManager; @Component(role = TargetPlatformService.class) @@ -54,6 +57,10 @@ public class DefaultTargetPlatformService implements TargetPlatformService { @Requirement ReactorRepositoryManager repositoryManager; + @Requirement + P2ResolverFactory p2ResolverFactory; + private TargetPlatformFactory tpFactory; + @Override public Optional<TargetPlatform> getTargetPlatform() throws DependencyResolutionException { MavenSession session = legacySupport.getSession(); @@ -81,12 +88,73 @@ public Optional<TargetPlatform> getTargetPlatform(ReactorProject project) throws List<ReactorProjectIdentities> upstreamProjects = getReferencedTychoProjects(project); PomDependencyCollector pomDependenciesCollector = dependencyResolver.resolvePomDependencies(session, project.adapt(MavenProject.class)); - TargetPlatform finalTargetPlatform = repositoryManager.computeFinalTargetPlatform(project, upstreamProjects, + TargetPlatform finalTargetPlatform = computeFinalTargetPlatform(project, upstreamProjects, pomDependenciesCollector); return Optional.ofNullable(finalTargetPlatform); } } + /** + * Computes the (immutable) target platform with final p2 metadata and attaches it to the given + * project. + * + * @param project + * the reactor project to compute the target platform for. + * @param upstreamProjects + * Other projects in the reactor which have already been built and may be referenced + * by the given project. + */ + private TargetPlatform computeFinalTargetPlatform(ReactorProject project, + List<? extends ReactorProjectIdentities> upstreamProjects, PomDependencyCollector pomDependencyCollector) { + synchronized (project) { + PreliminaryTargetPlatformImpl preliminaryTargetPlatform = getRegisteredPreliminaryTargetPlatform(project); + if (preliminaryTargetPlatform == null) { + MavenSession session = project.adapt(MavenSession.class); + if (session == null) { + session = legacySupport.getSession(); + if (session == null) { + return null; + } + } + MavenProject mavenProject = project.adapt(MavenProject.class); + if (mavenProject == null) { + return null; + } + preliminaryTargetPlatform = (PreliminaryTargetPlatformImpl) dependencyResolver + .computePreliminaryTargetPlatform(session, mavenProject, DefaultReactorProject.adapt(session)); + + } + List<PublishingRepository> upstreamProjectResults = getBuildResults(upstreamProjects); + TargetPlatform result = getTpFactory().createTargetPlatformWithUpdatedReactorContent( + preliminaryTargetPlatform, upstreamProjectResults, pomDependencyCollector); + + project.setContextValue(TargetPlatform.FINAL_TARGET_PLATFORM_KEY, result); + return result; + } + } + + private List<PublishingRepository> getBuildResults(List<? extends ReactorProjectIdentities> projects) { + List<PublishingRepository> results = new ArrayList<>(projects.size()); + for (ReactorProjectIdentities project : projects) { + results.add(repositoryManager.getPublishingRepository(project)); + } + return results; + } + + public synchronized TargetPlatformFactory getTpFactory() { + if (tpFactory == null) { + tpFactory = p2ResolverFactory.getTargetPlatformFactory(); + } + return tpFactory; + } + + private PreliminaryTargetPlatformImpl getRegisteredPreliminaryTargetPlatform(ReactorProject project) { + return project.getContextValue( + TargetPlatform.PRELIMINARY_TARGET_PLATFORM_KEY) instanceof PreliminaryTargetPlatformImpl preliminaryTargetPlatformImpl + ? preliminaryTargetPlatformImpl + : null; + } + private List<ReactorProjectIdentities> getReferencedTychoProjects(ReactorProject reactorProject) throws DependencyResolutionException { List<ReactorProjectIdentities> result = new ArrayList<>(); diff --git a/tycho-core/src/main/java/org/eclipse/tycho/p2resolver/P2DependencyResolver.java b/tycho-core/src/main/java/org/eclipse/tycho/p2resolver/P2DependencyResolver.java index 8358bf89ef..bf04d5cdd8 100644 --- a/tycho-core/src/main/java/org/eclipse/tycho/p2resolver/P2DependencyResolver.java +++ b/tycho-core/src/main/java/org/eclipse/tycho/p2resolver/P2DependencyResolver.java @@ -59,6 +59,7 @@ import org.eclipse.tycho.IDependencyMetadata; import org.eclipse.tycho.IDependencyMetadata.DependencyMetadataType; import org.eclipse.tycho.IllegalArtifactReferenceException; +import org.eclipse.tycho.MavenArtifactRepositoryReference; import org.eclipse.tycho.MavenDependencyDescriptor; import org.eclipse.tycho.MavenRepositoryLocation; import org.eclipse.tycho.OptionalResolutionAction; @@ -91,9 +92,11 @@ import org.eclipse.tycho.p2.repository.LocalRepositoryP2Indices; import org.eclipse.tycho.p2.target.facade.PomDependencyCollector; import org.eclipse.tycho.p2.target.facade.TargetPlatformConfigurationStub; +import org.eclipse.tycho.p2.target.facade.TargetPlatformFactory; import org.eclipse.tycho.p2maven.repository.P2ArtifactRepositoryLayout; import org.eclipse.tycho.repository.registry.facade.ReactorRepositoryManager; import org.eclipse.tycho.resolver.P2MetadataProvider; +import org.eclipse.tycho.targetplatform.TargetDefinition.MavenGAVLocation; import org.eclipse.tycho.targetplatform.TargetDefinitionFile; @Component(role = DependencyResolver.class, hint = P2DependencyResolver.ROLE_HINT, instantiationStrategy = "per-lookup") @@ -140,6 +143,8 @@ public class P2DependencyResolver extends AbstractLogEnabled implements Dependen @Requirement private MavenDependenciesResolver dependenciesResolver; + private TargetPlatformFactory tpFactory; + @Override public void setupProjects(final MavenSession session, final MavenProject project, final ReactorProject reactorProject) { @@ -212,8 +217,39 @@ public TargetPlatform computePreliminaryTargetPlatform(MavenSession session, Mav .setIgnoreLocalArtifacts(configuration.getIgnoreLocalArtifacts() == LocalArtifactHandling.ignore); tpConfiguration.setReferencedRepositoryMode(configuration.getReferencedRepositoryMode()); - return reactorRepositoryManager.computePreliminaryTargetPlatform(reactorProject, tpConfiguration, ee, - reactorProjects); + return computePreliminaryTargetPlatform(reactorProject, tpConfiguration, ee, reactorProjects); + } + + /** + * Computes the target platform with dependency-only p2 metadata and attaches it to the given + * project. + * + * @param project + * the reactor project to compute the target platform for. + * @param resolvedEnvironment + */ + private TargetPlatform computePreliminaryTargetPlatform(ReactorProject project, + TargetPlatformConfigurationStub tpConfiguration, ExecutionEnvironmentConfiguration eeConfiguration, + List<ReactorProject> reactorProjects) { + // + // at this point, there is only incomplete ("dependency-only") metadata for the reactor projects + TargetPlatform result = getTpFactory().createTargetPlatform(tpConfiguration, eeConfiguration, reactorProjects, + project); + project.setContextValue(TargetPlatform.PRELIMINARY_TARGET_PLATFORM_KEY, result); + + List<MavenArtifactRepositoryReference> repositoryReferences = tpConfiguration.getTargetDefinitions().stream() + .flatMap(definition -> definition.getLocations().stream()).filter(MavenGAVLocation.class::isInstance) + .map(MavenGAVLocation.class::cast).flatMap(location -> location.getRepositoryReferences().stream()) + .toList(); + project.setContextValue(TychoConstants.CTX_REPOSITORY_REFERENCE, repositoryReferences); + return result; + } + + public synchronized TargetPlatformFactory getTpFactory() { + if (tpFactory == null) { + tpFactory = resolverFactory.getTargetPlatformFactory(); + } + return tpFactory; } private ReactorProject getThisReactorProject(MavenSession session, MavenProject project, diff --git a/tycho-core/src/main/java/org/eclipse/tycho/p2resolver/PublisherServiceFactoryImpl.java b/tycho-core/src/main/java/org/eclipse/tycho/p2resolver/PublisherServiceFactoryImpl.java index 639411c019..75b7cc1be4 100644 --- a/tycho-core/src/main/java/org/eclipse/tycho/p2resolver/PublisherServiceFactoryImpl.java +++ b/tycho-core/src/main/java/org/eclipse/tycho/p2resolver/PublisherServiceFactoryImpl.java @@ -19,6 +19,7 @@ import org.eclipse.tycho.Interpolator; import org.eclipse.tycho.ReactorProject; import org.eclipse.tycho.TargetEnvironment; +import org.eclipse.tycho.TargetPlatform; import org.eclipse.tycho.core.shared.MavenContext; import org.eclipse.tycho.p2.repository.PublishingRepository; import org.eclipse.tycho.p2.tools.publisher.PublishProductToolImpl; @@ -40,9 +41,9 @@ public class PublisherServiceFactoryImpl implements PublisherServiceFactory { @Override public PublisherService createPublisher(ReactorProject project, List<TargetEnvironment> environments) { - P2TargetPlatform targetPlatform = (P2TargetPlatform) reactorRepoManager.getFinalTargetPlatform(project); + P2TargetPlatform targetPlatform = (P2TargetPlatform) getFinalTargetPlatform(project); PublisherActionRunner publisherRunner = getPublisherRunnerForProject(targetPlatform, environments); - PublishingRepository publishingRepository = reactorRepoManager.getPublishingRepository(project.getIdentities()); + PublishingRepository publishingRepository = reactorRepoManager.getPublishingRepository(project); return new PublisherServiceImpl(publisherRunner, project.getBuildQualifier(), publishingRepository); } @@ -50,14 +51,26 @@ public PublisherService createPublisher(ReactorProject project, List<TargetEnvir @Override public PublishProductTool createProductPublisher(ReactorProject project, List<TargetEnvironment> environments, String buildQualifier, Interpolator interpolator) { - P2TargetPlatform targetPlatform = (P2TargetPlatform) reactorRepoManager.getFinalTargetPlatform(project); + P2TargetPlatform targetPlatform = (P2TargetPlatform) getFinalTargetPlatform(project); PublisherActionRunner publisherRunner = getPublisherRunnerForProject(targetPlatform, environments); - PublishingRepository publishingRepository = reactorRepoManager.getPublishingRepository(project.getIdentities()); + PublishingRepository publishingRepository = reactorRepoManager.getPublishingRepository(project); return new PublishProductToolImpl(publisherRunner, publishingRepository, targetPlatform, buildQualifier, interpolator, mavenContext.getLogger()); } + /** + * Returns the target platform with final p2 metadata for the given project. + */ + private TargetPlatform getFinalTargetPlatform(ReactorProject project) { + TargetPlatform targetPlatform = (TargetPlatform) project + .getContextValue(TargetPlatform.FINAL_TARGET_PLATFORM_KEY); + if (targetPlatform == null) { + throw new IllegalStateException("Target platform is missing"); + } + return targetPlatform; + } + private PublisherActionRunner getPublisherRunnerForProject(P2TargetPlatform targetPlatform, List<TargetEnvironment> environments) { checkCollaborators(); diff --git a/tycho-core/src/main/java/org/eclipse/tycho/p2resolver/ReactorRepositoryManagerImpl.java b/tycho-core/src/main/java/org/eclipse/tycho/p2resolver/ReactorRepositoryManagerImpl.java index 61bac65be2..37f45c2873 100644 --- a/tycho-core/src/main/java/org/eclipse/tycho/p2resolver/ReactorRepositoryManagerImpl.java +++ b/tycho-core/src/main/java/org/eclipse/tycho/p2resolver/ReactorRepositoryManagerImpl.java @@ -13,133 +13,23 @@ *******************************************************************************/ package org.eclipse.tycho.p2resolver; -import java.util.ArrayList; -import java.util.List; - -import org.apache.maven.execution.MavenSession; -import org.apache.maven.plugin.LegacySupport; -import org.apache.maven.project.MavenProject; import org.codehaus.plexus.component.annotations.Component; import org.codehaus.plexus.component.annotations.Requirement; import org.eclipse.equinox.p2.core.IProvisioningAgent; -import org.eclipse.tycho.ExecutionEnvironmentConfiguration; -import org.eclipse.tycho.MavenArtifactRepositoryReference; -import org.eclipse.tycho.ReactorProject; import org.eclipse.tycho.ReactorProjectIdentities; -import org.eclipse.tycho.TargetPlatform; -import org.eclipse.tycho.TychoConstants; -import org.eclipse.tycho.core.DependencyResolver; -import org.eclipse.tycho.core.osgitools.DefaultReactorProject; -import org.eclipse.tycho.core.resolver.P2ResolverFactory; import org.eclipse.tycho.p2.repository.PublishingRepository; import org.eclipse.tycho.p2.repository.module.PublishingRepositoryImpl; -import org.eclipse.tycho.p2.target.facade.PomDependencyCollector; -import org.eclipse.tycho.p2.target.facade.TargetPlatformConfigurationStub; -import org.eclipse.tycho.p2.target.facade.TargetPlatformFactory; import org.eclipse.tycho.repository.registry.facade.ReactorRepositoryManager; -import org.eclipse.tycho.targetplatform.TargetDefinition.MavenGAVLocation; @Component(role = ReactorRepositoryManager.class) public class ReactorRepositoryManagerImpl implements ReactorRepositoryManager { - private static final String PRELIMINARY_TARGET_PLATFORM_KEY = ReactorRepositoryManagerImpl.class.getName() - + "/dependencyOnlyTargetPlatform"; - @Requirement IProvisioningAgent agent; - @Requirement - P2ResolverFactory p2ResolverFactory; - - @Requirement(hint = P2DependencyResolver.ROLE_HINT) - DependencyResolver p2Resolver; - - @Requirement - LegacySupport legacySupport; - private TargetPlatformFactory tpFactory; @Override public PublishingRepository getPublishingRepository(ReactorProjectIdentities project) { return new PublishingRepositoryImpl(agent, project); } - @Override - public TargetPlatform computePreliminaryTargetPlatform(ReactorProject project, - TargetPlatformConfigurationStub tpConfiguration, ExecutionEnvironmentConfiguration eeConfiguration, - List<ReactorProject> reactorProjects) { - // - // at this point, there is only incomplete ("dependency-only") metadata for the reactor projects - TargetPlatform result = getTpFactory().createTargetPlatform(tpConfiguration, eeConfiguration, reactorProjects, - project); - project.setContextValue(PRELIMINARY_TARGET_PLATFORM_KEY, result); - - List<MavenArtifactRepositoryReference> repositoryReferences = tpConfiguration.getTargetDefinitions().stream() - .flatMap(definition -> definition.getLocations().stream()).filter(MavenGAVLocation.class::isInstance) - .map(MavenGAVLocation.class::cast).flatMap(location -> location.getRepositoryReferences().stream()) - .toList(); - project.setContextValue(TychoConstants.CTX_REPOSITORY_REFERENCE, repositoryReferences); - return result; - } - - @Override - public TargetPlatform computeFinalTargetPlatform(ReactorProject project, - List<? extends ReactorProjectIdentities> upstreamProjects, PomDependencyCollector pomDependencyCollector) { - synchronized (project) { - PreliminaryTargetPlatformImpl preliminaryTargetPlatform = getRegisteredPreliminaryTargetPlatform(project); - if (preliminaryTargetPlatform == null) { - MavenSession session = project.adapt(MavenSession.class); - if (session == null) { - session = legacySupport.getSession(); - if (session == null) { - return null; - } - } - MavenProject mavenProject = project.adapt(MavenProject.class); - if (mavenProject == null) { - return null; - } - preliminaryTargetPlatform = (PreliminaryTargetPlatformImpl) p2Resolver - .computePreliminaryTargetPlatform(session, mavenProject, DefaultReactorProject.adapt(session)); - - } - List<PublishingRepository> upstreamProjectResults = getBuildResults(upstreamProjects); - TargetPlatform result = getTpFactory().createTargetPlatformWithUpdatedReactorContent( - preliminaryTargetPlatform, upstreamProjectResults, pomDependencyCollector); - - project.setContextValue(TargetPlatform.FINAL_TARGET_PLATFORM_KEY, result); - return result; - } - } - - private PreliminaryTargetPlatformImpl getRegisteredPreliminaryTargetPlatform(ReactorProject project) { - return project.getContextValue( - PRELIMINARY_TARGET_PLATFORM_KEY) instanceof PreliminaryTargetPlatformImpl preliminaryTargetPlatformImpl - ? preliminaryTargetPlatformImpl - : null; - } - - private List<PublishingRepository> getBuildResults(List<? extends ReactorProjectIdentities> projects) { - List<PublishingRepository> results = new ArrayList<>(projects.size()); - for (ReactorProjectIdentities project : projects) { - results.add(getPublishingRepository(project)); - } - return results; - } - - @Override - public TargetPlatform getFinalTargetPlatform(ReactorProject project) { - TargetPlatform targetPlatform = (TargetPlatform) project - .getContextValue(TargetPlatform.FINAL_TARGET_PLATFORM_KEY); - if (targetPlatform == null) { - throw new IllegalStateException("Target platform is missing"); - } - return targetPlatform; - } - - public synchronized TargetPlatformFactory getTpFactory() { - if (tpFactory == null) { - tpFactory = p2ResolverFactory.getTargetPlatformFactory(); - } - return tpFactory; - } - } diff --git a/tycho-core/src/main/java/org/eclipse/tycho/repository/registry/facade/ReactorRepositoryManager.java b/tycho-core/src/main/java/org/eclipse/tycho/repository/registry/facade/ReactorRepositoryManager.java index 8879386dfb..94533d1a7c 100644 --- a/tycho-core/src/main/java/org/eclipse/tycho/repository/registry/facade/ReactorRepositoryManager.java +++ b/tycho-core/src/main/java/org/eclipse/tycho/repository/registry/facade/ReactorRepositoryManager.java @@ -13,15 +13,9 @@ *******************************************************************************/ package org.eclipse.tycho.repository.registry.facade; -import java.util.List; - -import org.eclipse.tycho.ExecutionEnvironmentConfiguration; import org.eclipse.tycho.ReactorProject; import org.eclipse.tycho.ReactorProjectIdentities; -import org.eclipse.tycho.TargetPlatform; import org.eclipse.tycho.p2.repository.PublishingRepository; -import org.eclipse.tycho.p2.target.facade.PomDependencyCollector; -import org.eclipse.tycho.p2.target.facade.TargetPlatformConfigurationStub; /** * Manages the p2 repositories for the projects' build results ("publishing repository") and the p2 @@ -29,42 +23,17 @@ */ public interface ReactorRepositoryManager { - /** - * Computes the target platform with dependency-only p2 metadata and attaches it to the given - * project. - * - * @param project - * the reactor project to compute the target platform for. - * @param resolvedEnvironment - */ - TargetPlatform computePreliminaryTargetPlatform(ReactorProject project, - TargetPlatformConfigurationStub tpConfiguration, ExecutionEnvironmentConfiguration eeConfiguration, - List<ReactorProject> reactorProjects); - - /** - * Computes the (immutable) target platform with final p2 metadata and attaches it to the given - * project. - * - * @param project - * the reactor project to compute the target platform for. - * @param upstreamProjects - * Other projects in the reactor which have already been built and may be referenced - * by the given project. - */ - TargetPlatform computeFinalTargetPlatform(ReactorProject project, - List<? extends ReactorProjectIdentities> upstreamProjects, PomDependencyCollector pomDependencyCollector); - - /** - * Returns the target platform with final p2 metadata for the given project. - */ - TargetPlatform getFinalTargetPlatform(ReactorProject project); - /** * Returns the project's publishing repository. * * @param project * a reference to a project in the reactor. + * @return the {@link PublishingRepository} for the {@link ReactorProjectIdentities} */ PublishingRepository getPublishingRepository(ReactorProjectIdentities project); + default PublishingRepository getPublishingRepository(ReactorProject project) { + return getPublishingRepository(project.getIdentities()); + } + } diff --git a/tycho-core/src/test/java/org/eclipse/tycho/p2resolver/ReactorRepositoryManagerTest.java b/tycho-core/src/test/java/org/eclipse/tycho/p2resolver/ReactorRepositoryManagerTest.java index 598d4b788d..3bf6a8e63c 100644 --- a/tycho-core/src/test/java/org/eclipse/tycho/p2resolver/ReactorRepositoryManagerTest.java +++ b/tycho-core/src/test/java/org/eclipse/tycho/p2resolver/ReactorRepositoryManagerTest.java @@ -13,28 +13,12 @@ *******************************************************************************/ package org.eclipse.tycho.p2resolver; -import static org.eclipse.tycho.test.util.InstallableUnitMatchers.unitWithId; -import static org.hamcrest.CoreMatchers.hasItem; -import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertNotNull; -import java.util.Arrays; -import java.util.Collection; - -import org.eclipse.equinox.p2.metadata.IInstallableUnit; -import org.eclipse.tycho.MavenRepositoryLocation; -import org.eclipse.tycho.ReactorProject; -import org.eclipse.tycho.ReactorProjectIdentities; -import org.eclipse.tycho.core.ee.shared.ExecutionEnvironmentConfigurationStub; -import org.eclipse.tycho.core.test.utils.ResourceUtil; import org.eclipse.tycho.p2.target.facade.PomDependencyCollector; -import org.eclipse.tycho.p2.target.facade.TargetPlatformConfigurationStub; import org.eclipse.tycho.repository.registry.facade.ReactorRepositoryManager; -import org.eclipse.tycho.targetplatform.P2TargetPlatform; -import org.eclipse.tycho.test.util.ReactorProjectIdentitiesStub; import org.eclipse.tycho.test.util.ReactorProjectStub; import org.junit.Before; -import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; @@ -67,34 +51,4 @@ public void testReactorRepositoryManagerFacadeServiceAvailability() throws Excep assertNotNull(subject); } - @Test - @Ignore("This test currently do no longer work with the mocked project...") - public void testTargetPlatformComputationInIntegration() throws Exception { - subject = lookup(ReactorRepositoryManager.class); - assertNotNull(subject); - ReactorProject currentProject = new ReactorProjectStub("reactor-artifact"); - - TargetPlatformConfigurationStub tpConfig = new TargetPlatformConfigurationStub(); - tpConfig.addP2Repository( - new MavenRepositoryLocation(null, ResourceUtil.resourceFile("repositories/launchers").toURI())); - subject.computePreliminaryTargetPlatform(currentProject, tpConfig, - new ExecutionEnvironmentConfigurationStub("JavaSE-1.7"), null); - - ReactorProjectIdentities upstreamProject = new ReactorProjectIdentitiesStub( - ResourceUtil.resourceFile("projectresult")); - - subject.computeFinalTargetPlatform(currentProject, Arrays.asList(upstreamProject), pomDependencyCollector); - - P2TargetPlatform finalTP = (P2TargetPlatform) currentProject - .getContextValue("org.eclipse.tycho.core.TychoConstants/targetPlatform"); - Collection<IInstallableUnit> units = finalTP.getInstallableUnits(); - // units from the p2 repository - assertThat(units, hasItem(unitWithId("org.eclipse.equinox.launcher"))); - // units from the upstream project - assertThat(units, hasItem(unitWithId("bundle"))); - assertThat(units, hasItem(unitWithId("bundle.source"))); - - // TODO get artifact - } - } diff --git a/tycho-p2-publisher-plugin/src/main/java/org/eclipse/tycho/plugins/p2/publisher/PublishProductMojo.java b/tycho-p2-publisher-plugin/src/main/java/org/eclipse/tycho/plugins/p2/publisher/PublishProductMojo.java index 242a837210..b1af0965b6 100644 --- a/tycho-p2-publisher-plugin/src/main/java/org/eclipse/tycho/plugins/p2/publisher/PublishProductMojo.java +++ b/tycho-p2-publisher-plugin/src/main/java/org/eclipse/tycho/plugins/p2/publisher/PublishProductMojo.java @@ -137,7 +137,7 @@ protected Collection<DependencySeed> publishContent(PublisherServiceFactory publ File artifactsXml = new File(getProject().getBuild().getDirectory(), TychoConstants.FILE_NAME_P2_ARTIFACTS); if (artifactsXml.isFile()) { PublishingRepository publishingRepository = reactorRepoManager - .getPublishingRepository(getReactorProject().getIdentities()); + .getPublishingRepository(getReactorProject()); IFileArtifactRepository repository = publishingRepository.getArtifactRepository(); repository.descriptorQueryable().query(new IQuery<IArtifactDescriptor>() {