Skip to content

Commit 70b543b

Browse files
committed
[refactor] Remove dependency on commons-lang3
1 parent 7421642 commit 70b543b

File tree

22 files changed

+404
-86
lines changed

22 files changed

+404
-86
lines changed

exist-core/pom.xml

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -249,11 +249,6 @@
249249
<artifactId>commons-io</artifactId>
250250
</dependency>
251251

252-
<dependency>
253-
<groupId>org.apache.commons</groupId>
254-
<artifactId>commons-lang3</artifactId>
255-
</dependency>
256-
257252
<dependency>
258253
<groupId>commons-logging</groupId>
259254
<artifactId>commons-logging</artifactId>
@@ -685,6 +680,8 @@
685680
<include>src/main/java/org/exist/dom/memtree/reference/ProcessingInstructionReferenceImpl.java</include>
686681
<include>src/main/java/org/exist/dom/memtree/reference/TextReferenceImpl.java</include>
687682
<include>src/main/java/org/exist/util/ByteOrderMark.java</include>
683+
<include>src/main/java/org/exist/util/JREUtil.java</include>
684+
<include>src/main/java/org/exist/util/OSUtil.java</include>
688685
<include>src/main/java/org/exist/util/StringUtil.java</include>
689686
<include>src/test/java/org/exist/xquery/ImportFromPkgTest.java</include>
690687
<include>src/test/java/org/exist/xquery/WatchdogTest.java</include>
@@ -778,6 +775,7 @@
778775
<include>src/main/java/org/exist/launcher/ConfigurationUtility.java</include>
779776
<include>src/main/java/org/exist/launcher/Launcher.java</include>
780777
<include>src/main/java/org/exist/launcher/LauncherWrapper.java</include>
778+
<include>src/main/java/org/exist/launcher/ServiceManagerFactory.java</include>
781779
<include>src/main/java/org/exist/launcher/SplashScreen.java</include>
782780
<include>src/main/java/org/exist/launcher/WindowsServiceManager.java</include>
783781
<include>src/main/java/org/exist/management/impl/ExistMBean.java</include>
@@ -786,6 +784,7 @@
786784
<include>src/main/java/org/exist/repo/ClasspathHelper.java</include>
787785
<include>src/main/java/org/exist/repo/Deployment.java</include>
788786
<include>src/main/java/org/exist/scheduler/impl/QuartzSchedulerImpl.java</include>
787+
<include>src/main/java/org/exist/security/EffectiveSubject.java</include>
789788
<include>src/main/java/org/exist/security/SecurityManager.java</include>
790789
<include>src/main/java/org/exist/security/internal/AccountImpl.java</include>
791790
<include>src/main/java/org/exist/source/Source.java</include>
@@ -796,6 +795,7 @@
796795
<include>src/main/java/org/exist/storage/IndexSpec.java</include>
797796
<include>src/main/java/org/exist/storage/Indexable.java</include>
798797
<include>src/main/java/org/exist/storage/NativeBroker.java</include>
798+
<include>src/main/java/org/exist/storage/ProcessMonitor.java</include>
799799
<include>src/main/java/org/exist/storage/lock/FileLock.java</include>
800800
<include>src/main/java/org/exist/storage/recovery/RecoveryManager.java</include>
801801
<include>src/main/java/org/exist/storage/serializers/Serializer.java</include>
@@ -818,13 +818,20 @@
818818
<include>src/main/java/org/exist/xmlrpc/ExistRpcTypeFactory.java</include>
819819
<include>src/main/java/org/exist/xqj/Marshaller.java</include>
820820
<include>src/main/java/org/exist/xquery/UserDefinedFunction.java</include>
821+
<include>src/main/java/org/exist/xquery/FunctionFactory.java</include>
822+
<include>src/main/java/org/exist/xquery/Optimizer.java</include>
821823
<include>src/main/java/org/exist/xquery/XQueryContext.java</include>
822824
<include>src/main/java/org/exist/xquery/functions/fn/FunDeepEqual.java</include>
823825
<include>src/main/java/org/exist/xquery/functions/fn/FunUriCollection.java</include>
824826
<include>src/main/java/org/exist/xquery/functions/fn/ParsingFunctions.java</include>
827+
<include>src/main/java/org/exist/xquery/functions/system/FunctionAvailable.java</include>
825828
<include>src/main/java/org/exist/xquery/functions/system/GetUptime.java</include>
826829
<include>src/main/java/org/exist/xquery/functions/system/Shutdown.java</include>
827830
<include>src/main/java/org/exist/xquery/functions/system/TriggerSystemTask.java</include>
831+
<include>src/main/java/org/exist/xquery/functions/util/BuiltinFunctions.java</include>
832+
<include>src/main/java/org/exist/xquery/functions/util/DescribeFunction.java</include>
833+
<include>src/main/java/org/exist/xquery/functions/util/FunctionFunction.java</include>
834+
<include>src/main/java/org/exist/xquery/functions/util/ModuleInfo.java</include>
828835
<include>src/main/java/org/exist/xquery/functions/xmldb/XMLDBStore.java</include>
829836
<include>src/main/java/org/exist/xquery/functions/xmldb/XMLDBXUpdate.java</include>
830837
<include>src/main/java/org/exist/xquery/value/AbstractDateTimeValue.java</include>
@@ -973,6 +980,7 @@
973980
<exclude>src/main/java/org/exist/repo/ClasspathHelper.java</exclude>
974981
<exclude>src/main/java/org/exist/repo/Deployment.java</exclude>
975982
<exclude>src/main/java/org/exist/scheduler/impl/QuartzSchedulerImpl.java</exclude>
983+
<exclude>src/main/java/org/exist/security/EffectiveSubject.java</exclude>
976984
<exclude>src/main/java/org/exist/security/SecurityManager.java</exclude>
977985
<exclude>src/main/java/org/exist/security/internal/AccountImpl.java</exclude>
978986
<exclude>src/main/java/org/exist/source/Source.java</exclude>
@@ -984,6 +992,7 @@
984992
<exclude>src/main/java/org/exist/storage/IndexSpec.java</exclude>
985993
<exclude>src/main/java/org/exist/storage/Indexable.java</exclude>
986994
<exclude>src/main/java/org/exist/storage/NativeBroker.java</exclude>
995+
<exclude>src/main/java/org/exist/storage/ProcessMonitor.java</exclude>
987996
<exclude>src/main/java/org/exist/storage/lock/FileLock.java</exclude>
988997
<exclude>src/main/java/org/exist/storage/recovery/RecoveryManager.java</exclude>
989998
<exclude>src/main/java/org/exist/storage/serializers/Serializer.java</exclude>
@@ -993,6 +1002,8 @@
9931002
<exclude>src/main/java/org/exist/test/runner/XQueryTestRunner.java</exclude>
9941003
<exclude>src/main/java/org/exist/test/runner/XSuite.java</exclude>
9951004
<exclude>src/main/java/org/exist/util/ByteOrderMark.java</exclude>
1005+
<exclude>src/main/java/org/exist/util/JREUtil.java</exclude>
1006+
<exclude>src/main/java/org/exist/util/OSUtil.java</exclude>
9961007
<exclude>src/main/java/org/exist/util/StringUtil.java</exclude>
9971008
<exclude>src/main/java/org/exist/util/Collations.java</exclude>
9981009
<exclude>src/main/java/org/exist/util/Configuration.java</exclude>
@@ -1006,8 +1017,10 @@
10061017
<exclude>src/main/java/org/exist/xmldb/RemoteRestoreService.java</exclude>
10071018
<exclude>src/main/java/org/exist/xmlrpc/ExistRpcTypeFactory.java</exclude>
10081019
<exclude>src/main/java/org/exist/xqj/Marshaller.java</exclude>
1020+
<exclude>src/main/java/org/exist/xquery/FunctionFactory.java</exclude>
10091021
<exclude>src/test/java/org/exist/xquery/ImportFromPkgTest.java</exclude>
10101022
<exclude>src/main/java/org/exist/xquery/NameTest.java</exclude>
1023+
<exclude>src/main/java/org/exist/xquery/Optimizer.java</exclude>
10111024
<exclude>src/main/java/org/exist/xquery/UserDefinedFunction.java</exclude>
10121025
<exclude>src/test/java/org/exist/xquery/WatchdogTest.java</exclude>
10131026
<exclude>src/main/java/org/exist/xquery/XQueryContext.java</exclude>
@@ -1022,6 +1035,7 @@
10221035
<exclude>src/test/java/org/exist/xquery/functions/fn/ParsingFunctionsTest.java</exclude>
10231036
<exclude>src/test/java/org/exist/xquery/functions/fn/transform/ConvertTest.java</exclude>
10241037
<exclude>src/test/java/org/exist/xquery/functions/fn/transform/FunTransformITTest.java</exclude>
1038+
<exclude>src/main/java/org/exist/xquery/functions/system/FunctionAvailable.java</exclude>
10251039
<exclude>src/main/java/org/exist/xquery/functions/system/GetUptime.java</exclude>
10261040
<exclude>src/main/java/org/exist/xquery/functions/system/Shutdown.java</exclude>
10271041
<exclude>src/main/java/org/exist/xquery/functions/system/TriggerSystemTask.java</exclude>
@@ -1045,6 +1059,7 @@
10451059
<exclude>src/main/resources/org/exist/client/messages_sv_SE.properties</exclude>
10461060
<exclude>src/main/resources/org/exist/client/messages_zh_CN.properties</exclude>
10471061
<exclude>src/main/resources/org/exist/launcher/ConfigurationDialog.form</exclude>
1062+
<exclude>src/main/java/org/exist/launcher/ServiceManagerFactory.java</exclude>
10481063
<exclude>src/test/java/org/exist/http/AbstractHttpTest.java</exclude>
10491064
<exclude>src/test/java/org/exist/http/RESTServiceTest.java</exclude>
10501065
<exclude>src/test/java/org/exist/management/JmxRemoteTest.java</exclude>
@@ -1127,7 +1142,11 @@
11271142
<exclude>src/test/java/org/exist/xquery/functions/xmldb/AbstractXMLDBTest.java</exclude>
11281143
<exclude>src/test/java/org/exist/xquery/functions/session/AttributeTest.java</exclude>
11291144
<exclude>src/test/java/org/exist/xquery/functions/xmldb/XMLDBAuthenticateTest.java</exclude>
1145+
<exclude>src/main/java/org/exist/xquery/functions/util/BuiltinFunctions.java</exclude>
1146+
<exclude>src/main/java/org/exist/xquery/functions/util/DescribeFunction.java</exclude>
11301147
<exclude>src/main/java/org/exist/xquery/functions/util/Eval.java</exclude>
1148+
<exclude>src/main/java/org/exist/xquery/functions/util/FunctionFunction.java</exclude>
1149+
<exclude>src/main/java/org/exist/xquery/functions/util/ModuleInfo.java</exclude>
11311150
<exclude>src/main/java/org/exist/xquery/pragmas/TimePragma.java</exclude>
11321151
<exclude>src/test/java/org/exist/xquery/update/UpdateReplaceTest.java</exclude>
11331152
<exclude>src/test/java/org/exist/xquery/util/URIUtilsTest.java</exclude>

exist-core/src/main/antlr/org/exist/xquery/parser/XQueryTree.g

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,6 @@ header {
8080
import org.exist.storage.ElementValue;
8181
import org.exist.xquery.functions.map.MapExpr;
8282
import org.exist.xquery.functions.array.ArrayConstructor;
83-
84-
import static org.apache.commons.lang3.ArrayUtils.isNotEmpty;
8583
}
8684

8785
/**
@@ -685,12 +683,12 @@ throws PermissionDeniedException, EXistException, XPathException
685683
throw xpe;
686684
}
687685

688-
if (isNotEmpty(modules)) {
686+
if (modules != null) {
689687
for (final org.exist.xquery.Module module : modules) {
690688

691689
// check modules does not import any duplicate function definitions
692690
final FunctionSignature[] signatures = module.listFunctions();
693-
if (isNotEmpty(signatures)) {
691+
if (signatures != null) {
694692
for (final FunctionSignature signature : signatures) {
695693
final String qualifiedNameArity = signature.getName().toURIQualifiedName() + '#' + signature.getArgumentCount();
696694
if (importedModuleFunctions != null) {

exist-core/src/main/java/org/exist/http/urlrewrite/ModuleCall.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,12 @@
5353
import org.exist.xquery.value.Sequence;
5454
import org.w3c.dom.Element;
5555

56+
import javax.annotation.Nullable;
5657
import javax.servlet.ServletException;
5758
import javax.servlet.http.HttpServletRequest;
5859
import javax.servlet.http.HttpServletResponse;
5960
import java.util.ArrayList;
6061

61-
import static org.apache.commons.lang3.ArrayUtils.isEmpty;
62-
6362
public class ModuleCall extends URLRewrite {
6463
private static final Logger LOG = LogManager.getLogger(ModuleCall.class);
6564

@@ -84,9 +83,9 @@ public ModuleCall(final Element config, final XQueryContext context, final Strin
8483
}
8584
try {
8685
final QName fqn = QName.parse(context, funcName);
87-
final Module[] modules = context.getModules(fqn.getNamespaceURI());
86+
@Nullable final Module[] modules = context.getModules(fqn.getNamespaceURI());
8887
UserDefinedFunction func = null;
89-
if (isEmpty(modules)) {
88+
if (modules == null || modules.length == 0) {
9089
func = context.resolveFunction(fqn, arity);
9190
} else {
9291
for (final Module module : modules) {

exist-core/src/main/java/org/exist/launcher/ConfigurationDialog.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@
6060
import javax.swing.*;
6161
import javax.xml.transform.TransformerException;
6262

63-
import org.apache.commons.lang3.SystemUtils;
6463
import org.exist.collections.CollectionCache;
6564
import org.exist.storage.BrokerPool;
6665
import org.exist.storage.DefaultCacheManager;
@@ -71,6 +70,7 @@
7170

7271
import static org.exist.launcher.ConfigurationUtility.LAUNCHER_PROPERTY_MAX_MEM;
7372
import static org.exist.launcher.ConfigurationUtility.LAUNCHER_PROPERTY_MIN_MEM;
73+
import static org.exist.util.OSUtil.IS_MAC_OSX;
7474

7575
/**
7676
*
@@ -147,7 +147,7 @@ public void open(boolean firstStart) {
147147
lbStartupMsg.setVisible(true);
148148
lbStartupWarn.setVisible(true);
149149

150-
if (SystemUtils.IS_OS_MAC_OSX) {
150+
if (IS_MAC_OSX) {
151151
Path dir = Paths.get(System.getProperty("user.home")).resolve("Library").resolve("Application Support").resolve("xyz.elemental");
152152
dataDir.setText(dir.toAbsolutePath().toString());
153153
}

exist-core/src/main/java/org/exist/launcher/Launcher.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,6 @@
4545
*/
4646
package org.exist.launcher;
4747

48-
49-
import org.apache.commons.lang3.SystemUtils;
5048
import org.exist.EXistException;
5149
import org.exist.jetty.JettyStart;
5250
import org.exist.repo.ExistRepository;
@@ -82,6 +80,8 @@
8280

8381
import static java.nio.charset.StandardCharsets.UTF_8;
8482
import static org.exist.launcher.ConfigurationUtility.LAUNCHER_PROPERTY_NEVER_INSTALL_SERVICE;
83+
import static org.exist.util.OSUtil.IS_LINUX;
84+
import static org.exist.util.OSUtil.IS_WINDOWS;
8585
import static org.exist.util.ThreadUtils.newGlobalThread;
8686

8787
/**
@@ -257,7 +257,7 @@ private boolean initSystemTray() {
257257
trayIcon.addActionListener(actionEvent -> showTrayInfoMessage("Right click for menu"));
258258

259259
// add listener for left click on system tray icon. doesn't work well on linux though.
260-
if (!SystemUtils.IS_OS_LINUX) {
260+
if (!IS_LINUX) {
261261
trayIcon.addMouseListener(new MouseAdapter() {
262262
@Override
263263
public void mouseClicked(MouseEvent mouseEvent) {
@@ -372,7 +372,7 @@ private PopupMenu createMenu() {
372372
uninstallServiceItem.setEnabled(serviceManager != null);
373373
uninstallServiceItem.addActionListener(e -> SwingUtilities.invokeLater(this::uninstallService));
374374

375-
if (SystemUtils.IS_OS_WINDOWS) {
375+
if (IS_WINDOWS) {
376376
final MenuItem showServices = new MenuItem("Show services console");
377377
popup.add(showServices);
378378
showServices.addActionListener(e -> SwingUtilities.invokeLater(this::showNativeServiceManagementConsole));
@@ -655,7 +655,7 @@ void signalStarted() {
655655
final boolean neverInstallService = Boolean.parseBoolean(properties.getProperty(LAUNCHER_PROPERTY_NEVER_INSTALL_SERVICE, "false"));
656656

657657
if (!neverInstallService) {
658-
if (SystemUtils.IS_OS_WINDOWS && !isInstallingService && serviceManager != null && !serviceManager.isInstalled()) {
658+
if (IS_WINDOWS && !isInstallingService && serviceManager != null && !serviceManager.isInstalled()) {
659659
isInstallingService = true;
660660
SwingUtilities.invokeLater(() -> {
661661
final int installServiceResult = JOptionPane.showOptionDialog(

exist-core/src/main/java/org/exist/launcher/ServiceManagerFactory.java

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,28 @@
11
/*
2+
* Elemental
3+
* Copyright (C) 2024, Evolved Binary Ltd
4+
*
5+
6+
* https://www.evolvedbinary.com | https://www.elemental.xyz
7+
*
8+
* This library is free software; you can redistribute it and/or
9+
* modify it under the terms of the GNU Lesser General Public
10+
* License as published by the Free Software Foundation; version 2.1.
11+
*
12+
* This library is distributed in the hope that it will be useful,
13+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15+
* Lesser General Public License for more details.
16+
*
17+
* You should have received a copy of the GNU Lesser General Public
18+
* License along with this library; if not, write to the Free Software
19+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20+
*
21+
* NOTE: Parts of this file contain code from 'The eXist-db Authors'.
22+
* The original license header is included below.
23+
*
24+
* =====================================================================
25+
*
226
* eXist-db Open Source Native XML Database
327
* Copyright (C) 2001 The eXist-db Authors
428
*
@@ -22,11 +46,11 @@
2246
package org.exist.launcher;
2347

2448
import com.evolvedbinary.j8fu.lazy.AtomicLazyVal;
25-
import com.evolvedbinary.j8fu.lazy.AtomicLazyValE;
26-
import org.apache.commons.lang3.SystemUtils;
2749

2850
import javax.annotation.Nullable;
2951

52+
import static org.exist.util.OSUtil.IS_WINDOWS;
53+
3054
public class ServiceManagerFactory {
3155

3256
private static final AtomicLazyVal<ServiceManager> WINDOWS_SERVICE_MANAGER = new AtomicLazyVal<>(WindowsServiceManager::new);
@@ -38,7 +62,7 @@ public class ServiceManagerFactory {
3862
* @return the service manager, or null if the platform is unsupported.
3963
*/
4064
public static @Nullable ServiceManager getServiceManager() {
41-
if (SystemUtils.IS_OS_WINDOWS) {
65+
if (IS_WINDOWS) {
4266
return WINDOWS_SERVICE_MANAGER.get();
4367
}
4468

0 commit comments

Comments
 (0)