Skip to content

Commit a5d7913

Browse files
committed
Revisit lucene and org.apache.directory.api dependencies
1 parent 21cf21a commit a5d7913

File tree

6 files changed

+85
-111
lines changed

6 files changed

+85
-111
lines changed

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/dependencies/rules/CodeQualityRule.java

Lines changed: 0 additions & 40 deletions
This file was deleted.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/*
2+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3+
* or more contributor license agreements. Licensed under the "Elastic License
4+
* 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side
5+
* Public License v 1"; you may not use this file except in compliance with, at
6+
* your election, the "Elastic License 2.0", the "GNU Affero General Public
7+
* License v3.0 only", or the "Server Side Public License, v 1".
8+
*/
9+
10+
package org.elasticsearch.gradle.internal.dependencies.rules;
11+
12+
import org.gradle.api.artifacts.ComponentMetadataContext;
13+
import org.gradle.api.artifacts.ComponentMetadataRule;
14+
15+
//@CacheableRule
16+
public abstract class ExcludeTransitiveOtherGroupsRule implements ComponentMetadataRule {
17+
18+
@Override
19+
public void execute(ComponentMetadataContext context) {
20+
context.getDetails().allVariants(variant -> {
21+
variant.withDependencies(dependencies -> {
22+
// Exclude transitive dependencies with a different groupId than the parent
23+
dependencies.removeIf(dep -> dep.getGroup().equals(context.getDetails().getId().getGroup()) == false);
24+
});
25+
});
26+
}
27+
}

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/dependencies/rules/ExcludeTransitivesRule.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,18 @@ public void execute(ComponentMetadataContext context) {
2121
variant.withDependencies(dependencies -> {
2222
// Exclude all transitive dependencies
2323
if (dependencies.isEmpty() == false) {
24-
System.out.println(context.getDetails().getId().getGroup() + ":" + context.getDetails().getId().getName());
24+
2525
}
26+
dependencies.removeIf(dep -> {
27+
// if (dep.getGroup().equals(context.getDetails().getId().getGroup()) == false) {
28+
if (context.getDetails().getId().getGroup().equals("org.apache.directory.api")) {
29+
System.out.println(
30+
context.getDetails().getId().getGroup() + ":" + context.getDetails().getId().getName() + ": " + dep
31+
);
32+
}
33+
// }
34+
return false;
35+
});
2636
dependencies.clear();
2737
});
2838
});

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/dependencies/rules/SpotlessRule.java

Lines changed: 0 additions & 52 deletions
This file was deleted.

gradle/verification-metadata.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2369,11 +2369,6 @@
23692369
<sha256 value="e955772e53448ecec3450da0e43097e8fe3f1e684eed4617453ff42b76fa75b5" origin="Generated by Gradle"/>
23702370
</artifact>
23712371
</component>
2372-
<component group="org.apache.directory.api" name="api-asn1-api" version="1.0.0-M20">
2373-
<artifact name="api-asn1-api-1.0.0-M20.jar">
2374-
<sha256 value="484aaf4b888b0eb699d95bea265c2d5b6ebec951d70e5c5f7691cd52dd4c8298" origin="Generated by Gradle"/>
2375-
</artifact>
2376-
</component>
23772372
<component group="org.apache.directory.api" name="api-asn1-api" version="1.0.1">
23782373
<artifact name="api-asn1-api-1.0.1.jar">
23792374
<sha256 value="e558865b92fcd7211e18d5d34d3cff9e51b172f291be074497811dc3b5ba197c" origin="Generated by Gradle"/>

settings.gradle

Lines changed: 47 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import org.elasticsearch.gradle.internal.dependencies.rules.ExcludeTransitivesRule
2+
import org.elasticsearch.gradle.internal.dependencies.rules.ExcludeTransitiveOtherGroupsRule
23
import org.elasticsearch.gradle.internal.toolchain.AdoptiumJdkToolchainResolver
34
import org.elasticsearch.gradle.internal.toolchain.ArchivedOracleJdkToolchainResolver
45
import org.elasticsearch.gradle.internal.toolchain.OracleOpenJdkToolchainResolver
@@ -143,19 +144,39 @@ dependencyResolutionManagement {
143144
withModule("org.apache.arrow:arrow-vector", ExcludeTransitivesRule)
144145
withModule("org.apache.commons:commons-compress", ExcludeTransitivesRule)
145146
withModule("org.apache.commons:commons-text", ExcludeTransitivesRule)
146-
withModule("org.apache.directory.api:api-asn1-api", ExcludeTransitivesRule)
147-
withModule("org.apache.directory.api:api-asn1-ber", ExcludeTransitivesRule)
148-
withModule("org.apache.directory.api:api-ldap-client-api", ExcludeTransitivesRule)
147+
148+
// org.apache.directory.api:api-asn1-ber brings in org.slf4j:slf4j-api:1.7.25. We use 2.0.6
149+
withModule("org.apache.directory.api:api-asn1-ber", ExcludeTransitiveOtherGroupsRule)
150+
151+
// org.apache.directory.api:api-ldap-client-api brings in org.apache.mina:mina-core:2.0.16. We use 2.2.4
152+
withModule("org.apache.directory.api:api-ldap-client-api", ExcludeTransitiveOtherGroupsRule)
149153
withModule("org.apache.directory.api:api-ldap-codec-core", ExcludeTransitivesRule)
150-
withModule("org.apache.directory.api:api-ldap-codec-standalone", ExcludeTransitivesRule)
154+
155+
// "org.apache.directory.api:api-ldap-codec-standalone brings in org.apache.mina:mina-core:2.0.16. We use 2.2.4
156+
withModule("org.apache.directory.api:api-ldap-codec-standalone", ExcludeTransitiveOtherGroupsRule)
157+
158+
// TODO: For org.apache.directory.api dependencies we use partially 1.0.1 and partially 1.0.0. We should align these.
151159
withModule("org.apache.directory.api:api-ldap-extras-aci", ExcludeTransitivesRule)
160+
withModule("org.apache.directory.api:api-ldap-schema-data", ExcludeTransitivesRule)
152161
withModule("org.apache.directory.api:api-ldap-extras-codec-api", ExcludeTransitivesRule)
153162
withModule("org.apache.directory.api:api-ldap-extras-sp", ExcludeTransitivesRule)
154163
withModule("org.apache.directory.api:api-ldap-extras-util", ExcludeTransitivesRule)
155-
withModule("org.apache.directory.api:api-ldap-model", ExcludeTransitivesRule)
156-
withModule("org.apache.directory.api:api-ldap-net-mina", ExcludeTransitivesRule)
157-
withModule("org.apache.directory.api:api-ldap-schema-data", ExcludeTransitivesRule)
164+
165+
// org.apache.directory.api:api-ldap-model brings in org.apache.mina:mina-core:2.0.17. We use 2.2.4
166+
// org.apache.directory.api:api-ldap-model brings in org.apache.servicemix.bundles:org.apache.servicemix.bundles.antlr:2.7.7_5. We use 2.7.7_5.
167+
// org.apache.directory.api:api-ldap-model brings in commons-codec:commons-lang:commons-lang:2.6. We use 2.6.
168+
// org.apache.directory.api:api-ldap-model brings in commons-collections:commons-collections:3.2.2. We use 3.3.2.
169+
// org.apache.directory.api:api-ldap-model brings in commons-codec:commons-codec:1.10. We use 1.15.
170+
// TODO exclude matching third party deps from being excluded
171+
withModule("org.apache.directory.api:api-ldap-model", ExcludeTransitiveOtherGroupsRule)
172+
173+
// org.apache.directory.api:api-ldap-model brings in org.apache.mina:mina-core:2.0.17. We use 2.2.4
174+
withModule("org.apache.directory.api:api-ldap-net-mina", ExcludeTransitiveOtherGroupsRule)
175+
176+
// org.apache.directory.api:api-asn1-ber brings in org.slf4j:slf4j-api:1.7.25. We use 2.0.6
177+
// TODO: For org.apache.directory.api dependencies we use partially 1.0.1 and partially 1.0.0. We should align these.
158178
withModule("org.apache.directory.api:api-util", ExcludeTransitivesRule)
179+
159180
withModule("org.apache.directory.jdbm:apacheds-jdbm1", ExcludeTransitivesRule)
160181
withModule("org.apache.directory.mavibot:mavibot", ExcludeTransitivesRule)
161182
withModule("org.apache.directory.server:apacheds-core-annotations", ExcludeTransitivesRule)
@@ -173,6 +194,7 @@ dependencyResolutionManagement {
173194
withModule("org.apache.directory.server:apacheds-test-framework", ExcludeTransitivesRule)
174195
withModule("org.apache.directory.server:apacheds-xdbm-partition", ExcludeTransitivesRule)
175196
withModule("org.apache.directory.server:ldap-client-test", ExcludeTransitivesRule)
197+
176198
withModule("org.apache.hadoop:hadoop-client-api", ExcludeTransitivesRule)
177199
withModule("org.apache.hadoop:hadoop-client-runtime", ExcludeTransitivesRule)
178200
withModule("org.apache.hadoop:hadoop-common", ExcludeTransitivesRule)
@@ -200,12 +222,24 @@ dependencyResolutionManagement {
200222
withModule("org.apache.logging.log4j:log4j-core", ExcludeTransitivesRule)
201223
withModule("org.apache.logging.log4j:log4j-jcl", ExcludeTransitivesRule)
202224
withModule("org.apache.logging.log4j:log4j-slf4j-impl", ExcludeTransitivesRule)
203-
withModule("org.apache.lucene:lucene-analysis-icu", ExcludeTransitivesRule)
204-
withModule("org.apache.lucene:lucene-analysis-morfologik", ExcludeTransitivesRule)
205-
withModule("org.apache.lucene:lucene-analysis-phonetic", ExcludeTransitivesRule)
206-
withModule("org.apache.lucene:lucene-spatial-extras", ExcludeTransitivesRule)
207-
withModule("org.apache.lucene:lucene-expressions", ExcludeTransitivesRule)
208-
withModule("org.apache.lucene:lucene-test-framework", ExcludeTransitivesRule)
225+
226+
// lucene-analysis-morfologik brings in org.carrot2:morfologik-stemming:2.1.9. we use 2.1.1
227+
// lucene-analysis-morfologik brings in org.carrot2:morfologik-polish:2.1.9. we use none.
228+
// lucene-analysis-morfologik brings in ua.net.nlp:morfologik-ukrainian-search:4.9.1 we use 3.7.5.
229+
withModule("org.apache.lucene:lucene-analysis-morfologik", ExcludeTransitiveOtherGroupsRule)
230+
231+
// lucene-analysis-phonetic brings in commons-codec:1.17. We use 1.15
232+
withModule("org.apache.lucene:lucene-analysis-phonetic", ExcludeTransitiveOtherGroupsRule)
233+
234+
// lucene-spatial-extras brings in different version of spatial4j
235+
// lucene-spatial-extras brings in different version of s2-geometry-library-java
236+
withModule("org.apache.lucene:lucene-spatial-extras", ExcludeTransitiveOtherGroupsRule)
237+
238+
// lucene-expressions brings in org.antlr:antlr4-runtime:4.13.2
239+
// lucene-expressions brings in org.ow2.asm:asm:9.6
240+
// lucene-expressions brings in org.ow2.asm:asm-commons:9.6
241+
withModule("org.apache.lucene:lucene-expressions", ExcludeTransitiveOtherGroupsRule)
242+
withModule("org.apache.lucene:lucene-test-framework", ExcludeTransitiveOtherGroupsRule)
209243
withModule("org.apache.mina:mina-core", ExcludeTransitivesRule)
210244
withModule("org.apache.pdfbox:fontbox", ExcludeTransitivesRule)
211245
withModule("org.apache.pdfbox:pdfbox", ExcludeTransitivesRule)

0 commit comments

Comments
 (0)