in maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManager.java [233:307]
private RepositoryPolicy merge(
RepositorySystemSession session, RepositoryPolicy policy1, RepositoryPolicy policy2, boolean globalPolicy) {
RepositoryPolicy policy;
if (policy2 == null) {
if (globalPolicy) {
policy = merge(
policy1,
session.getArtifactUpdatePolicy(),
session.getMetadataUpdatePolicy(),
session.getChecksumPolicy());
} else {
policy = policy1;
}
} else if (policy1 == null) {
if (globalPolicy) {
policy = merge(
policy2,
session.getArtifactUpdatePolicy(),
session.getMetadataUpdatePolicy(),
session.getChecksumPolicy());
} else {
policy = policy2;
}
} else if (!policy2.isEnabled()) {
if (globalPolicy) {
policy = merge(
policy1,
session.getArtifactUpdatePolicy(),
session.getMetadataUpdatePolicy(),
session.getChecksumPolicy());
} else {
policy = policy1;
}
} else if (!policy1.isEnabled()) {
if (globalPolicy) {
policy = merge(
policy2,
session.getArtifactUpdatePolicy(),
session.getMetadataUpdatePolicy(),
session.getChecksumPolicy());
} else {
policy = policy2;
}
} else {
String checksums = session.getChecksumPolicy();
//noinspection StatementWithEmptyBody
if (globalPolicy && checksums != null && !checksums.isEmpty()) {
// use global override
} else {
checksums = checksumPolicyProvider.getEffectiveChecksumPolicy(
session, policy1.getChecksumPolicy(), policy2.getChecksumPolicy());
}
String artifactUpdates = session.getArtifactUpdatePolicy();
//noinspection StatementWithEmptyBody
if (globalPolicy && artifactUpdates != null && !artifactUpdates.isEmpty()) {
// use global override
} else {
artifactUpdates = updatePolicyAnalyzer.getEffectiveUpdatePolicy(
session, policy1.getArtifactUpdatePolicy(), policy2.getArtifactUpdatePolicy());
}
String metadataUpdates = session.getMetadataUpdatePolicy();
if (globalPolicy && metadataUpdates != null && !metadataUpdates.isEmpty()) {
// use global override
} else {
metadataUpdates = updatePolicyAnalyzer.getEffectiveUpdatePolicy(
session, policy1.getMetadataUpdatePolicy(), policy2.getMetadataUpdatePolicy());
}
policy = new RepositoryPolicy(true, artifactUpdates, metadataUpdates, checksums);
}
return policy;
}