You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by sa...@apache.org on 2014/04/04 01:55:59 UTC
svn commit: r1584474 - in /lucene/dev/branches/branch_4x: ./ lucene/
lucene/tools/
lucene/tools/src/java/org/apache/lucene/dependencies/GetMavenDependenciesTask.java
solr/ solr/CHANGES.txt
Author: sarowe
Date: Thu Apr 3 23:55:59 2014
New Revision: 1584474
URL: http://svn.apache.org/r1584474
Log:
SOLR-5950: Maven config: make the org.slf4j:slf4j-api dependency transitive (i.e., not optional) in all modules in which it's a dependency, including solrj, except for the WAR, where it will remain optional. (merged trunk r1584473)
Modified:
lucene/dev/branches/branch_4x/ (props changed)
lucene/dev/branches/branch_4x/lucene/ (props changed)
lucene/dev/branches/branch_4x/lucene/tools/ (props changed)
lucene/dev/branches/branch_4x/lucene/tools/src/java/org/apache/lucene/dependencies/GetMavenDependenciesTask.java
lucene/dev/branches/branch_4x/solr/ (props changed)
lucene/dev/branches/branch_4x/solr/CHANGES.txt (contents, props changed)
Modified: lucene/dev/branches/branch_4x/lucene/tools/src/java/org/apache/lucene/dependencies/GetMavenDependenciesTask.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/tools/src/java/org/apache/lucene/dependencies/GetMavenDependenciesTask.java?rev=1584474&r1=1584473&r2=1584474&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/tools/src/java/org/apache/lucene/dependencies/GetMavenDependenciesTask.java (original)
+++ lucene/dev/branches/branch_4x/lucene/tools/src/java/org/apache/lucene/dependencies/GetMavenDependenciesTask.java Thu Apr 3 23:55:59 2014
@@ -92,17 +92,23 @@ public class GetMavenDependenciesTask ex
private static final Properties allProperties = new Properties();
private static final Set<String> modulesWithSeparateCompileAndTestPOMs = new HashSet<>();
- private static final Set<String> optionalExternalDependencies = new HashSet<>();
+ private static final Set<String> globalOptionalExternalDependencies = new HashSet<>();
+ private static final Map<String,Set<String>> perModuleOptionalExternalDependencies = new HashMap<>();
static {
// Add modules here that have split compile and test POMs
// - they need compile-scope deps to also be test-scope deps.
modulesWithSeparateCompileAndTestPOMs.addAll
(Arrays.asList("lucene-core", "lucene-codecs", "solr-core", "solr-solrj"));
- // Add external dependencies here that should be optional (i.e., not invoke Maven's transitive dep mechanism).
+ // Add external dependencies here that should be optional for all modules
+ // (i.e., not invoke Maven's transitive dependency mechanism).
// Format is "groupId:artifactId"
- optionalExternalDependencies.addAll(Arrays.asList
- ("org.slf4j:jcl-over-slf4j", "org.slf4j:jul-to-slf4j", "org.slf4j:slf4j-api", "org.slf4j:slf4j-log4j12"));
+ globalOptionalExternalDependencies.addAll(Arrays.asList
+ ("org.slf4j:jcl-over-slf4j", "org.slf4j:jul-to-slf4j", "org.slf4j:slf4j-log4j12"));
+
+ // Add per-module optional external dependencies here.
+ Set<String> optionalDeps = new HashSet<>(Arrays.asList("org.slf4j:slf4j-api"));
+ perModuleOptionalExternalDependencies.put("solr-webapp", optionalDeps);
}
private final XPath xpath = XPathFactory.newInstance().newXPath();
@@ -241,7 +247,7 @@ public class GetMavenDependenciesTask ex
} catch (BuildException e) {
throw e;
} catch (Exception e) {
- throw new BuildException("Exception reading file " + ivyXmlFile.getPath(), e);
+ throw new BuildException("Exception reading file " + ivyXmlFile.getPath() + ": " + e, e);
}
}
addSharedExternalDependencies();
@@ -257,10 +263,10 @@ public class GetMavenDependenciesTask ex
// Delay adding shared compile-scope dependencies until after all have been processed,
// so dependency sharing is limited to a depth of one.
Map<String,SortedSet<ExternalDependency>> sharedDependencies = new HashMap<>();
- for (String artifactId : interModuleExternalCompileScopeDependencies.keySet()) {
+ for (String module : interModuleExternalCompileScopeDependencies.keySet()) {
TreeSet<ExternalDependency> deps = new TreeSet<ExternalDependency>();
- sharedDependencies.put(artifactId, deps);
- Set<String> moduleDependencies = interModuleExternalCompileScopeDependencies.get(artifactId);
+ sharedDependencies.put(module, deps);
+ Set<String> moduleDependencies = interModuleExternalCompileScopeDependencies.get(module);
if (null != moduleDependencies) {
for (String otherArtifactId : moduleDependencies) {
SortedSet<ExternalDependency> otherExtDeps = allExternalDependencies.get(otherArtifactId);
@@ -274,13 +280,13 @@ public class GetMavenDependenciesTask ex
}
}
}
- for (String artifactId : interModuleExternalTestScopeDependencies.keySet()) {
- SortedSet<ExternalDependency> deps = sharedDependencies.get(artifactId);
+ for (String module : interModuleExternalTestScopeDependencies.keySet()) {
+ SortedSet<ExternalDependency> deps = sharedDependencies.get(module);
if (null == deps) {
deps = new TreeSet<>();
- sharedDependencies.put(artifactId, deps);
+ sharedDependencies.put(module, deps);
}
- Set<String> moduleDependencies = interModuleExternalTestScopeDependencies.get(artifactId);
+ Set<String> moduleDependencies = interModuleExternalTestScopeDependencies.get(module);
if (null != moduleDependencies) {
for (String otherArtifactId : moduleDependencies) {
int testScopePos = otherArtifactId.indexOf(":test");
@@ -294,8 +300,8 @@ public class GetMavenDependenciesTask ex
for (ExternalDependency otherDep : otherExtDeps) {
if (otherDep.isTestDependency == isTestScope) {
if ( ! deps.contains(otherDep)
- && ( null == allExternalDependencies.get(artifactId)
- || ! allExternalDependencies.get(artifactId).contains(otherDep))) {
+ && ( null == allExternalDependencies.get(module)
+ || ! allExternalDependencies.get(module).contains(otherDep))) {
// Add test-scope clone only if it's not already a compile-scope dependency.
ExternalDependency otherDepTestScope = new ExternalDependency
(otherDep.groupId, otherDep.artifactId, otherDep.classifier, true, otherDep.isOptional);
@@ -307,13 +313,21 @@ public class GetMavenDependenciesTask ex
}
}
}
- for (String artifactId : sharedDependencies.keySet()) {
- SortedSet<ExternalDependency> deps = allExternalDependencies.get(artifactId);
+ for (String module : sharedDependencies.keySet()) {
+ SortedSet<ExternalDependency> deps = allExternalDependencies.get(module);
if (null == deps) {
deps = new TreeSet<>();
- allExternalDependencies.put(artifactId, deps);
+ allExternalDependencies.put(module, deps);
+ }
+ for (ExternalDependency dep : sharedDependencies.get(module)) {
+ String dependencyCoordinate = dep.groupId + ":" + dep.artifactId;
+ if (globalOptionalExternalDependencies.contains(dependencyCoordinate)
+ || (perModuleOptionalExternalDependencies.containsKey(module)
+ && perModuleOptionalExternalDependencies.get(module).contains(dependencyCoordinate))) {
+ dep = new ExternalDependency(dep.groupId, dep.artifactId, dep.classifier, dep.isTestDependency, true);
+ }
+ deps.add(dep);
}
- deps.addAll(sharedDependencies.get(artifactId));
}
}
@@ -671,7 +685,9 @@ public class GetMavenDependenciesTask ex
}
String conf = dependency.getAttribute("conf");
boolean confContainsTest = conf.contains("test");
- boolean isOptional = optionalExternalDependencies.contains(dependencyCoordinate);
+ boolean isOptional = globalOptionalExternalDependencies.contains(dependencyCoordinate)
+ || ( perModuleOptionalExternalDependencies.containsKey(module)
+ && perModuleOptionalExternalDependencies.get(module).contains(dependencyCoordinate));
SortedSet<ExternalDependency> deps = allExternalDependencies.get(module);
if (null == deps) {
deps = new TreeSet<>();
Modified: lucene/dev/branches/branch_4x/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/CHANGES.txt?rev=1584474&r1=1584473&r2=1584474&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/CHANGES.txt (original)
+++ lucene/dev/branches/branch_4x/solr/CHANGES.txt Thu Apr 3 23:55:59 2014
@@ -114,8 +114,6 @@ New Features
* SOLR-5829: Allow ExpandComponent to accept query and filter query parameters
(Joel Bernstein)
-
-
Bug Fixes
----------------------
@@ -133,6 +131,11 @@ Bug Fixes
* SOLR-5951: Fixed SolrDispatchFilter to throw useful exception on startup if
SLF4j logging jars are missing. (Uwe Schindler, Hossman, Shawn Heisey)
+* SOLR-5950: Maven config: make the org.slf4j:slf4j-api dependency transitive
+ (i.e., not optional) in all modules in which it's a dependency, including
+ solrj, except for the WAR, where it will remain optional.
+ (Uwe Schindler, Steve Rowe)
+
Optimizations
----------------------
* SOLR-1880: Distributed Search skips GET_FIELDS stage if EXECUTE_QUERY