From 8a05c368384eee6e73fe49590b820ec44ef127c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoph=20L=C3=A4ubrich?= Date: Mon, 18 Dec 2023 06:37:41 +0100 Subject: [PATCH] Disable P2 mirror lists by default because they are unstable --- ...ArtifactRepositoryManagerAgentFactory.java | 40 +++++++++---------- src/site/markdown/SystemProperties.md | 9 +++++ .../test/AbstractTychoIntegrationTest.java | 2 +- 3 files changed, 30 insertions(+), 21 deletions(-) diff --git a/p2-maven-plugin/src/main/java/org/eclipse/tycho/p2maven/transport/RemoteArtifactRepositoryManagerAgentFactory.java b/p2-maven-plugin/src/main/java/org/eclipse/tycho/p2maven/transport/RemoteArtifactRepositoryManagerAgentFactory.java index c936a1669c..0f638c3ea4 100644 --- a/p2-maven-plugin/src/main/java/org/eclipse/tycho/p2maven/transport/RemoteArtifactRepositoryManagerAgentFactory.java +++ b/p2-maven-plugin/src/main/java/org/eclipse/tycho/p2maven/transport/RemoteArtifactRepositoryManagerAgentFactory.java @@ -20,11 +20,12 @@ import org.eclipse.equinox.p2.core.spi.IAgentServiceFactory; import org.eclipse.equinox.p2.repository.artifact.IArtifactRepositoryManager; import org.eclipse.tycho.IRepositoryIdManager; +import org.eclipse.tycho.version.TychoVersion; @Component(role = IAgentServiceFactory.class, hint = "org.eclipse.equinox.p2.repository.artifact.IArtifactRepositoryManager") public class RemoteArtifactRepositoryManagerAgentFactory implements IAgentServiceFactory { - @Requirement + @Requirement Logger logger; @Requirement @@ -33,26 +34,25 @@ public class RemoteArtifactRepositoryManagerAgentFactory implements IAgentServic @Requirement MavenAuthenticator authenticator; - @Override - public Object createService(IProvisioningAgent agent) { - IArtifactRepositoryManager plainRepoManager = (IArtifactRepositoryManager) new ArtifactRepositoryComponent() - .createService(agent); - if (getDisableP2MirrorsConfiguration()) { - plainRepoManager = new P2MirrorDisablingArtifactRepositoryManager(plainRepoManager, - logger); - } + @Override + public Object createService(IProvisioningAgent agent) { + IArtifactRepositoryManager plainRepoManager = (IArtifactRepositoryManager) new ArtifactRepositoryComponent() + .createService(agent); + if (getDisableP2MirrorsConfiguration()) { + plainRepoManager = new P2MirrorDisablingArtifactRepositoryManager(plainRepoManager, logger); + } return new RemoteArtifactRepositoryManager(plainRepoManager, repositoryIdManager, authenticator); - } + } - private boolean getDisableP2MirrorsConfiguration() { - String key = "tycho.disableP2Mirrors"; + private boolean getDisableP2MirrorsConfiguration() { + String key = "tycho.disableP2Mirrors"; String value = System.getProperty(key); - - boolean disableP2Mirrors = Boolean.parseBoolean(value); - if (disableP2Mirrors && logger.isDebugEnabled()) { - String message = key + "=" + value + " -> ignoring mirrors specified in p2 artifact repositories"; - logger.debug(message); - } - return disableP2Mirrors; - } + if (value != null) { + logger.info("Using " + key + + " to disable P2 mirrors is deprecated, use the property eclipse.p2.mirrors instead, see https://tycho.eclipseprojects.io/doc/" + + TychoVersion.getTychoVersion() + "/SystemProperties.html for details."); + return Boolean.parseBoolean(value); + } + return false; + } } diff --git a/src/site/markdown/SystemProperties.md b/src/site/markdown/SystemProperties.md index 4890aed2da..7ba6c87471 100644 --- a/src/site/markdown/SystemProperties.md +++ b/src/site/markdown/SystemProperties.md @@ -26,3 +26,12 @@ Name | Value | Default | Documentation --- | --- | --- tycho.comparator.showDiff | true / false | false | If set to true if text-like files show a unified diff of possible differences in files tycho.comparator.threshold | bytes | 5242880 (~5MB) | gives the number of bytes for content to be compared semantically, larger files will only be compared byte-by-byte + +### P2 + +These properties control the behaviour of P2 used by Tycho + +Name | Value | Default | Documentation +--- | --- | --- +eclipse.p2.mirrors | true / false | true | Each p2 site can define a list of artifact repository mirrors, this controls if P2 mirrors should be used. This is independent from configuring mirrors in the maven configuration to be used by Tycho! + diff --git a/tycho-testing-harness/src/main/java/org/eclipse/tycho/test/AbstractTychoIntegrationTest.java b/tycho-testing-harness/src/main/java/org/eclipse/tycho/test/AbstractTychoIntegrationTest.java index 5254ea12d8..31ba59f72a 100644 --- a/tycho-testing-harness/src/main/java/org/eclipse/tycho/test/AbstractTychoIntegrationTest.java +++ b/tycho-testing-harness/src/main/java/org/eclipse/tycho/test/AbstractTychoIntegrationTest.java @@ -91,7 +91,7 @@ protected Verifier getVerifier(String test, boolean setTargetPlatform, File user Verifier verifier = new Verifier(testDir.getAbsolutePath()); verifier.setForkJvm(isForked()); if (isDisableMirrors()) { - verifier.setSystemProperty("tycho.disableP2Mirrors", "true"); + verifier.setSystemProperty("eclipse.p2.mirrors", "false"); } String debug = System.getProperty("tycho.mvnDebug"); if (debug != null) {