Skip to content

Commit dcba786

Browse files
authored
Fixes #4108: Remove org.apache.commons.collections* imports (#4129) (#4218)
* Fixes #4108: Remove org.apache.commons.collections* imports (#4129) * Fixes #4108: Remove org.apache.commons.collections* imports * removed unused methods * Update build.gradle
1 parent 8f4b277 commit dcba786

File tree

13 files changed

+77
-39
lines changed

13 files changed

+77
-39
lines changed

docs/asciidoc/modules/ROOT/partials/xls-dependencies.adoc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ Alternatively, you can download these jars from Maven Repository (putting them i
1010
* https://repo1.maven.org/maven2/org/apache/poi/poi/5.1.0/poi-5.1.0.jar[poi-5.1.0.jar^]
1111
1212
.Additional for XLSX files:
13-
* https://repo1.maven.org/maven2/org/apache/commons/commons-collections4/4.4/commons-collections4-4.4.jar[commons-collections4-4.4.jar^]
1413
* https://repo1.maven.org/maven2/org/apache/poi/poi-ooxml/5.1.0/poi-ooxml-5.1.0.jar[poi-ooxml-5.1.0.jar^]
1514
* https://repo1.maven.org/maven2/org/apache/poi/poi-ooxml-lite/5.1.0/poi-ooxml-lite-5.1.0.jar[poi-ooxml-lite-5.1.0.jar^]
1615
* https://repo1.maven.org/maven2/org/apache/xmlbeans/xmlbeans/5.0.2/xmlbeans-5.0.2.jar[xmlbeans-5.0.2.jar^]

extended/build.gradle

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ dependencies {
8888
implementation project(':common')
8989
implementation group: 'com.unboundid', name: 'unboundid-ldapsdk', version: '6.0.11'
9090
implementation group: 'org.jsoup', name: 'jsoup', version: '1.15.3'
91-
implementation group: 'org.apache.commons', name: 'commons-collections4', version: '4.4'
9291
implementation group: 'org.apache.commons', name: 'commons-csv', version: '1.10.0', {
9392
exclude group: 'org.apache.commons', module: 'commons-io'
9493
exclude group: 'org.apache.commons', module: 'commons-lang3'
@@ -102,8 +101,12 @@ dependencies {
102101
// same version as the one included in neo4j `lib`
103102
compileOnly group: 'org.neo4j.driver', name: 'neo4j-java-driver', version: '5.20.0'
104103

105-
compileOnly group: 'org.apache.poi', name: 'poi', version: '5.1.0'
106-
compileOnly group: 'org.apache.poi', name: 'poi-ooxml', version: '5.1.0'
104+
compileOnly group: 'org.apache.poi', name: 'poi', version: '5.1.0', {
105+
exclude group: 'org.apache.commons', module: 'commons-collections4'
106+
}
107+
compileOnly group: 'org.apache.poi', name: 'poi-ooxml', version: '5.1.0', {
108+
exclude group: 'org.apache.commons', module: 'commons-collections4'
109+
}
107110
compileOnly group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '4.10.0', {
108111
exclude group: 'com.google.guava', module: 'guava'
109112
}
@@ -134,8 +137,12 @@ dependencies {
134137
// These dependencies affect the tests only, they will not be packaged in the resulting .jar
135138
testImplementation project(':test-utils')
136139
testImplementation project(':core')
137-
testImplementation group: 'org.apache.poi', name: 'poi', version: '5.1.0'
138-
testImplementation group: 'org.apache.poi', name: 'poi-ooxml', version: '5.1.0'
140+
testImplementation group: 'org.apache.poi', name: 'poi', version: '5.1.0', {
141+
exclude group: 'org.apache.commons', module: 'commons-collections4'
142+
}
143+
testImplementation group: 'org.apache.poi', name: 'poi-ooxml', version: '5.1.0', {
144+
exclude group: 'org.apache.commons', module: 'commons-collections4'
145+
}
139146
testImplementation group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '4.10.0'
140147
testImplementation group: 'io.github.bonigarcia', name: 'webdrivermanager', version: '5.4.0'
141148
testImplementation group: 'com.github.stefanbirkner', name: 'system-rules', version: '1.19.0'
@@ -154,7 +161,9 @@ dependencies {
154161
testImplementation group: 'org.zapodot', name: 'embedded-ldap-junit', version: '0.9.0'
155162
testImplementation group: 'org.mockito', name: 'mockito-core', version: '5.4.0'
156163
testImplementation group: 'org.apache.parquet', name: 'parquet-hadoop', version: '1.13.1', withoutServers
157-
testImplementation group: 'com.opencsv', name: 'opencsv', version: '5.7.1'
164+
testImplementation group: 'com.opencsv', name: 'opencsv', version: '5.7.1', {
165+
exclude group: 'org.apache.commons', module: 'commons-collections4'
166+
}
158167

159168
configurations.all {
160169
exclude group: 'org.slf4j', module: 'slf4j-nop'

extended/src/main/java/apoc/agg/Rollup.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package apoc.agg;
22

33
import apoc.Extended;
4+
import apoc.util.ExtendedListUtils;
45
import apoc.util.Util;
5-
import org.apache.commons.collections4.ListUtils;
66
import org.neo4j.graphdb.Entity;
77
import org.neo4j.procedure.Description;
88
import org.neo4j.procedure.Name;
@@ -106,7 +106,7 @@ public void aggregate(
106106
for (int i = 0; i <= groupKey.size(); i++) {
107107
// add NULL_ROLLUP to remaining elements,
108108
// e.g. `[<firstGroupKey>, `NULL_ROLLUP`, `NULL_ROLLUP`]`
109-
List<Object> partialKey = ListUtils.union(groupKey.subList(0, i), Collections.nCopies(groupKey.size() - i, NULL_ROLLUP));
109+
List<Object> partialKey = ExtendedListUtils.union(groupKey.subList(0, i), Collections.nCopies(groupKey.size() - i, NULL_ROLLUP));
110110
if (!rolledUpData.containsKey(partialKey)) {
111111
rolledUpData.put(partialKey, new HashMap<>());
112112
}

extended/src/main/java/apoc/coll/CollExtended.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package apoc.coll;
22

33
import apoc.Extended;
4-
import org.apache.commons.collections4.CollectionUtils;
4+
import apoc.util.CollectionUtils;
55
import org.neo4j.procedure.Description;
66
import org.neo4j.procedure.Name;
77
import org.neo4j.procedure.UserFunction;

extended/src/main/java/apoc/dv/VirtualizedResource.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package apoc.dv;
22

3-
import org.apache.commons.collections4.CollectionUtils;
4-
import org.apache.commons.collections4.MapUtils;
3+
import apoc.util.ExtendedMapUtils;
54
import org.apache.commons.lang3.StringUtils;
65
import org.apache.commons.lang3.tuple.Pair;
76

@@ -70,11 +69,11 @@ private void validateQueryParams(Object queryParams) {
7069
throw new IllegalArgumentException("Query Params cannot be null");
7170
}
7271
final int actualSize;
73-
if (queryParams instanceof Collection) {
74-
actualSize = CollectionUtils.size(queryParams);
72+
if (queryParams instanceof Collection collection) {
73+
actualSize = collection.size();
7574
} else if (queryParams instanceof Map) {
7675
final Map<String, Object> parameterMap = (Map<String, Object>) queryParams;
77-
actualSize = MapUtils.size(parameterMap);
76+
actualSize = ExtendedMapUtils.size(parameterMap);
7877
Set<String> setParams = params.stream()
7978
.collect(Collectors.toSet());
8079
final Set<String> actualParams = parameterMap.keySet().stream().map(p -> "$" + p).collect(Collectors.toSet());

extended/src/main/java/apoc/export/xls/ExportXlsHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import apoc.export.util.ProgressReporter;
66
import apoc.result.ExportProgressInfo;
77
import apoc.result.ProgressInfo;
8-
import org.apache.commons.collections4.ListUtils;
8+
import apoc.util.ExtendedListUtils;
99
import org.apache.commons.lang3.tuple.Triple;
1010
import org.apache.poi.ss.usermodel.Cell;
1111
import org.apache.poi.ss.usermodel.CellStyle;
@@ -144,7 +144,7 @@ private static void dumpSubGraph(SubGraph subgraph, XlsExportConfig config, Prog
144144
List<String> keys = triple.getRight();
145145
Row row = sheet.getRow(0);
146146
int cellNum = 0;
147-
for (String key: ListUtils.union(magicKeys,keys)) {
147+
for (String key: ExtendedListUtils.union(magicKeys,keys)) {
148148
sheet.autoSizeColumn(cellNum);
149149
Cell cell = row.createCell(cellNum++);
150150
cell.setCellValue(key);
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package apoc.util;
2+
3+
import java.util.ArrayList;
4+
import java.util.Collection;
5+
import java.util.List;
6+
7+
public class ExtendedListUtils {
8+
9+
/**
10+
* Returns a new list containing the second list appended to the
11+
* first list. The {@link List#addAll(Collection)} operation is
12+
* used to append the two given lists into a new list.
13+
*
14+
* @param <E> the element type
15+
* @param list1 the first list
16+
* @param list2 the second list
17+
* @return a new list containing the union of those lists
18+
* @throws NullPointerException if either list is null
19+
*/
20+
public static <E> List<E> union(final List<? extends E> list1, final List<? extends E> list2) {
21+
final ArrayList<E> result = new ArrayList<>(list1.size() + list2.size());
22+
result.addAll(list1);
23+
result.addAll(list2);
24+
return result;
25+
}
26+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package apoc.util;
2+
3+
import java.util.Map;
4+
5+
public class ExtendedMapUtils {
6+
7+
public static int size(final Map<?, ?> map) {
8+
return map == null ? 0 : map.size();
9+
}
10+
11+
public static boolean isEmpty(final Map<?,?> map) {
12+
return map == null || map.isEmpty();
13+
}
14+
}

extended/src/main/java/apoc/uuid/UuidHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import apoc.Pools;
88
import apoc.SystemPropertyKeys;
99
import apoc.util.Util;
10-
import org.apache.commons.collections4.IterableUtils;
10+
import apoc.util.collection.Iterables;
1111
import org.apache.commons.lang3.tuple.Pair;
1212
import org.neo4j.dbms.api.DatabaseManagementService;
1313
import org.neo4j.graphdb.GraphDatabaseService;
@@ -147,7 +147,7 @@ public Void beforeCommit(TransactionData txData, Transaction transaction, GraphD
147147
final String propertyName = config.getUuidProperty();
148148
List<Node> nodes = config.isAddToSetLabels()
149149
? StreamSupport.stream(txData.assignedLabels().spliterator(), false).map(LabelEntry::node).collect(Collectors.toList())
150-
: IterableUtils.toList(txData.createdNodes());
150+
: Iterables.asList(txData.createdNodes());
151151
try {
152152
nodes.forEach(node -> {
153153
if (node.hasLabel(Label.label(label)) && !node.hasProperty(propertyName)) {

extended/src/main/java/apoc/vectordb/ChromaDb.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import apoc.ml.RestAPIConfig;
55
import apoc.result.ListResult;
66
import apoc.result.MapResult;
7-
import org.apache.commons.collections4.CollectionUtils;
7+
import apoc.util.CollectionUtils;
88
import org.neo4j.graphdb.GraphDatabaseService;
99
import org.neo4j.graphdb.Transaction;
1010
import org.neo4j.graphdb.security.URLAccessChecker;

0 commit comments

Comments
 (0)