IVY-1529
Add ivy.maven.sources.lookup and ivy.maven.javadoc.lookup variables to control the lookup of the additional artifacts. Defaults to true, for backward compatibility
diff --git a/doc/release-notes.html b/doc/release-notes.html
index b29528c..63c4fcf 100644
--- a/doc/release-notes.html
+++ b/doc/release-notes.html
@@ -64,6 +64,7 @@
- IMPROVEMENT: Optimization: limit the revision numbers scanned if revision prefix is specified (Thanks to Ernestas Vaiciukevičius)
- NEW: Lets ssh-based resolvers use an ~/.ssh/config file to find username/hostname/keyfile options (Thanks to Colin Stanfill)
+- NEW: Add ivy.maven.sources.lookup and ivy.maven.javadoc.lookup variables to control the lookup of the additional artifacts. Defaults to true, for backward compatibility (IVY-1529)
<!-- Samples :
- NEW: bla bla bla (IVY-1234) (Thanks to Jane Doe)
diff --git a/src/java/org/apache/ivy/core/cache/DefaultResolutionCacheManager.java b/src/java/org/apache/ivy/core/cache/DefaultResolutionCacheManager.java
index 2683702..d6bc2d7 100644
--- a/src/java/org/apache/ivy/core/cache/DefaultResolutionCacheManager.java
+++ b/src/java/org/apache/ivy/core/cache/DefaultResolutionCacheManager.java
@@ -274,6 +274,10 @@
public Namespace getContextNamespace() {
return delegate.getContextNamespace();
}
+
+ public String getVariable(String value) {
+ return delegate.getVariable(value);
+ }
}
private static class MapURLResolver extends RelativeUrlResolver {
diff --git a/src/java/org/apache/ivy/core/cache/ParserSettingsMonitor.java b/src/java/org/apache/ivy/core/cache/ParserSettingsMonitor.java
index 58c7f31..35da0bd 100644
--- a/src/java/org/apache/ivy/core/cache/ParserSettingsMonitor.java
+++ b/src/java/org/apache/ivy/core/cache/ParserSettingsMonitor.java
@@ -150,5 +150,9 @@
}
return r;
}
+
+ public String getVariable(String value) {
+ return delegatedSettings.getVariable(value);
+ }
};
}
diff --git a/src/java/org/apache/ivy/plugins/parser/ParserSettings.java b/src/java/org/apache/ivy/plugins/parser/ParserSettings.java
index fc10fd3..662736c 100644
--- a/src/java/org/apache/ivy/plugins/parser/ParserSettings.java
+++ b/src/java/org/apache/ivy/plugins/parser/ParserSettings.java
@@ -59,4 +59,5 @@
*/
Namespace getContextNamespace();
+ String getVariable(String string);
}
diff --git a/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java b/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java
index f4d6206..f2d3cfc 100644
--- a/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java
+++ b/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java
@@ -315,6 +315,14 @@
// no main artifact in pom, we don't need to search for meta artifacts
return;
}
+
+ boolean sourcesLookup = !"false".equals(ivySettings.getVariable("ivy.maven.lookup.sources"));
+ boolean javadocLookup = !"false".equals(ivySettings.getVariable("ivy.maven.lookup.javadoc"));
+ if (!sourcesLookup && !javadocLookup) {
+ Message.debug("Sources and javadocs lookup disabled");
+ return;
+ }
+
ModuleDescriptor md = mdBuilder.getModuleDescriptor();
ModuleRevisionId mrid = md.getModuleRevisionId();
DependencyResolver resolver = ivySettings.getResolver(mrid);
@@ -328,30 +336,39 @@
if (!ArtifactOrigin.isUnknown(mainArtifact)) {
String mainArtifactLocation = mainArtifact.getLocation();
- ArtifactOrigin sourceArtifact = resolver.locate(mdBuilder.getSourceArtifact());
- if (!ArtifactOrigin.isUnknown(sourceArtifact)
- && !sourceArtifact.getLocation().equals(mainArtifactLocation)) {
- Message.debug("source artifact found for " + mrid);
- mdBuilder.addSourceArtifact();
- } else {
- // it seems that sometimes the 'src' classifier is used instead of 'sources'
- // Cfr. IVY-1138
- ArtifactOrigin srcArtifact = resolver.locate(mdBuilder.getSrcArtifact());
- if (!ArtifactOrigin.isUnknown(srcArtifact)
- && !srcArtifact.getLocation().equals(mainArtifactLocation)) {
+ if (sourcesLookup) {
+ ArtifactOrigin sourceArtifact = resolver.locate(mdBuilder.getSourceArtifact());
+ if (!ArtifactOrigin.isUnknown(sourceArtifact)
+ && !sourceArtifact.getLocation().equals(mainArtifactLocation)) {
Message.debug("source artifact found for " + mrid);
- mdBuilder.addSrcArtifact();
+ mdBuilder.addSourceArtifact();
} else {
- Message.debug("no source artifact found for " + mrid);
+ // it seems that sometimes the 'src' classifier is used instead of 'sources'
+ // Cfr. IVY-1138
+ ArtifactOrigin srcArtifact = resolver.locate(mdBuilder.getSrcArtifact());
+ if (!ArtifactOrigin.isUnknown(srcArtifact)
+ && !srcArtifact.getLocation().equals(mainArtifactLocation)) {
+ Message.debug("source artifact found for " + mrid);
+ mdBuilder.addSrcArtifact();
+ } else {
+ Message.debug("no source artifact found for " + mrid);
+ }
}
- }
- ArtifactOrigin javadocArtifact = resolver.locate(mdBuilder.getJavadocArtifact());
- if (!ArtifactOrigin.isUnknown(javadocArtifact)
- && !javadocArtifact.getLocation().equals(mainArtifactLocation)) {
- Message.debug("javadoc artifact found for " + mrid);
- mdBuilder.addJavadocArtifact();
} else {
- Message.debug("no javadoc artifact found for " + mrid);
+ Message.debug("sources lookup disabled");
+ }
+
+ if (javadocLookup) {
+ ArtifactOrigin javadocArtifact = resolver.locate(mdBuilder.getJavadocArtifact());
+ if (!ArtifactOrigin.isUnknown(javadocArtifact)
+ && !javadocArtifact.getLocation().equals(mainArtifactLocation)) {
+ Message.debug("javadoc artifact found for " + mrid);
+ mdBuilder.addJavadocArtifact();
+ } else {
+ Message.debug("no javadoc artifact found for " + mrid);
+ }
+ } else {
+ Message.debug("javadocs lookup disabled");
}
}
}
diff --git a/src/java/org/apache/ivy/plugins/resolver/AbstractResolver.java b/src/java/org/apache/ivy/plugins/resolver/AbstractResolver.java
index ff0fa3c..6030c9f 100644
--- a/src/java/org/apache/ivy/plugins/resolver/AbstractResolver.java
+++ b/src/java/org/apache/ivy/plugins/resolver/AbstractResolver.java
@@ -603,5 +603,9 @@
return AbstractResolver.this.getSettings().substitute(value);
}
+ public String getVariable(String value) {
+ return AbstractResolver.this.getSettings().getVariable(value);
+ }
+
}
}