Skip to content

Commit

Permalink
Disable P2 mirror lists by default because they are unstable
Browse files Browse the repository at this point in the history
  • Loading branch information
laeubi committed Dec 18, 2023
1 parent be79a86 commit 8a05c36
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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;
}
}
9 changes: 9 additions & 0 deletions src/site/markdown/SystemProperties.md
Original file line number Diff line number Diff line change
Expand Up @@ -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!

Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down

0 comments on commit 8a05c36

Please sign in to comment.