Skip to content

Commit 701145a

Browse files
committed
[refactor] Remove dependency on commons-lang3
1 parent af3dde7 commit 701145a

File tree

22 files changed

+405
-86
lines changed

22 files changed

+405
-86
lines changed

exist-core/pom.xml

Lines changed: 25 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>
@@ -779,6 +776,7 @@
779776
<include>src/main/java/org/exist/launcher/ConfigurationUtility.java</include>
780777
<include>src/main/java/org/exist/launcher/Launcher.java</include>
781778
<include>src/main/java/org/exist/launcher/LauncherWrapper.java</include>
779+
<include>src/main/java/org/exist/launcher/ServiceManagerFactory.java</include>
782780
<include>src/main/java/org/exist/launcher/SplashScreen.java</include>
783781
<include>src/main/java/org/exist/launcher/WindowsServiceManager.java</include>
784782
<include>src/main/java/org/exist/management/impl/ExistMBean.java</include>
@@ -787,6 +785,7 @@
787785
<include>src/main/java/org/exist/repo/ClasspathHelper.java</include>
788786
<include>src/main/java/org/exist/repo/Deployment.java</include>
789787
<include>src/main/java/org/exist/scheduler/impl/QuartzSchedulerImpl.java</include>
788+
<include>src/main/java/org/exist/security/EffectiveSubject.java</include>
790789
<include>src/main/java/org/exist/security/SecurityManager.java</include>
791790
<include>src/main/java/org/exist/security/internal/AccountImpl.java</include>
792791
<include>src/main/java/org/exist/source/Source.java</include>
@@ -797,6 +796,7 @@
797796
<include>src/main/java/org/exist/storage/IndexSpec.java</include>
798797
<include>src/main/java/org/exist/storage/Indexable.java</include>
799798
<include>src/main/java/org/exist/storage/NativeBroker.java</include>
799+
<include>src/main/java/org/exist/storage/ProcessMonitor.java</include>
800800
<include>src/main/java/org/exist/storage/lock/FileLock.java</include>
801801
<include>src/main/java/org/exist/storage/recovery/RecoveryManager.java</include>
802802
<include>src/main/java/org/exist/storage/serializers/Serializer.java</include>
@@ -818,14 +818,22 @@
818818
<include>src/main/java/org/exist/xmldb/RemoteRestoreService.java</include>
819819
<include>src/main/java/org/exist/xmlrpc/ExistRpcTypeFactory.java</include>
820820
<include>src/main/java/org/exist/xqj/Marshaller.java</include>
821+
<include>src/main/java/org/exist/xquery/UserDefinedFunction.java</include>
822+
<include>src/main/java/org/exist/xquery/FunctionFactory.java</include>
823+
<include>src/main/java/org/exist/xquery/Optimizer.java</include>
821824
<include>src/main/java/org/exist/xquery/XQueryContext.java</include>
822825
<include>src/main/java/org/exist/xquery/functions/fn/FunDeepEqual.java</include>
823826
<include>src/main/java/org/exist/xquery/functions/fn/FunUriCollection.java</include>
824827
<include>src/main/java/org/exist/xquery/functions/fn/ParsingFunctions.java</include>
825828
<include>src/main/java/org/exist/xquery/functions/integer/WordPicture.java</include>
829+
<include>src/main/java/org/exist/xquery/functions/system/FunctionAvailable.java</include>
826830
<include>src/main/java/org/exist/xquery/functions/system/GetUptime.java</include>
827831
<include>src/main/java/org/exist/xquery/functions/system/Shutdown.java</include>
828832
<include>src/main/java/org/exist/xquery/functions/system/TriggerSystemTask.java</include>
833+
<include>src/main/java/org/exist/xquery/functions/util/BuiltinFunctions.java</include>
834+
<include>src/main/java/org/exist/xquery/functions/util/DescribeFunction.java</include>
835+
<include>src/main/java/org/exist/xquery/functions/util/FunctionFunction.java</include>
836+
<include>src/main/java/org/exist/xquery/functions/util/ModuleInfo.java</include>
829837
<include>src/main/java/org/exist/xquery/functions/xmldb/XMLDBStore.java</include>
830838
<include>src/main/java/org/exist/xquery/functions/xmldb/XMLDBXUpdate.java</include>
831839
<include>src/test/java/org/exist/xquery/update/UpdateReplaceTest.java</include>
@@ -977,6 +985,7 @@
977985
<exclude>src/main/java/org/exist/repo/ClasspathHelper.java</exclude>
978986
<exclude>src/main/java/org/exist/repo/Deployment.java</exclude>
979987
<exclude>src/main/java/org/exist/scheduler/impl/QuartzSchedulerImpl.java</exclude>
988+
<exclude>src/main/java/org/exist/security/EffectiveSubject.java</exclude>
980989
<exclude>src/main/java/org/exist/security/SecurityManager.java</exclude>
981990
<exclude>src/main/java/org/exist/security/internal/AccountImpl.java</exclude>
982991
<exclude>src/main/java/org/exist/source/Source.java</exclude>
@@ -988,6 +997,7 @@
988997
<exclude>src/main/java/org/exist/storage/IndexSpec.java</exclude>
989998
<exclude>src/main/java/org/exist/storage/Indexable.java</exclude>
990999
<exclude>src/main/java/org/exist/storage/NativeBroker.java</exclude>
1000+
<exclude>src/main/java/org/exist/storage/ProcessMonitor.java</exclude>
9911001
<exclude>src/main/java/org/exist/storage/lock/FileLock.java</exclude>
9921002
<exclude>src/main/java/org/exist/storage/recovery/RecoveryManager.java</exclude>
9931003
<exclude>src/main/java/org/exist/storage/serializers/Serializer.java</exclude>
@@ -997,6 +1007,8 @@
9971007
<exclude>src/main/java/org/exist/test/runner/XQueryTestRunner.java</exclude>
9981008
<exclude>src/main/java/org/exist/test/runner/XSuite.java</exclude>
9991009
<exclude>src/main/java/org/exist/util/ByteOrderMark.java</exclude>
1010+
<exclude>src/main/java/org/exist/util/JREUtil.java</exclude>
1011+
<exclude>src/main/java/org/exist/util/OSUtil.java</exclude>
10001012
<exclude>src/main/java/org/exist/util/StringUtil.java</exclude>
10011013
<exclude>src/main/java/org/exist/util/Collations.java</exclude>
10021014
<exclude>src/main/java/org/exist/util/Configuration.java</exclude>
@@ -1010,8 +1022,10 @@
10101022
<exclude>src/main/java/org/exist/xmldb/RemoteRestoreService.java</exclude>
10111023
<exclude>src/main/java/org/exist/xmlrpc/ExistRpcTypeFactory.java</exclude>
10121024
<exclude>src/main/java/org/exist/xqj/Marshaller.java</exclude>
1025+
<exclude>src/main/java/org/exist/xquery/FunctionFactory.java</exclude>
10131026
<exclude>src/test/java/org/exist/xquery/ImportFromPkgTest.java</exclude>
10141027
<exclude>src/main/java/org/exist/xquery/NameTest.java</exclude>
1028+
<exclude>src/main/java/org/exist/xquery/Optimizer.java</exclude>
10151029
<exclude>src/main/java/org/exist/xquery/UserDefinedFunction.java</exclude>
10161030
<exclude>src/test/java/org/exist/xquery/WatchdogTest.java</exclude>
10171031
<exclude>src/main/java/org/exist/xquery/XQueryContext.java</exclude>
@@ -1029,6 +1043,7 @@
10291043
<exclude>src/test/java/org/exist/xquery/functions/fn/transform/ConvertTest.java</exclude>
10301044
<exclude>src/test/java/org/exist/xquery/functions/fn/transform/FunTransformITTest.java</exclude>
10311045
<exclude>src/main/java/org/exist/xquery/functions/integer/WordPicture.java</exclude>
1046+
<exclude>src/main/java/org/exist/xquery/functions/system/FunctionAvailable.java</exclude>
10321047
<exclude>src/main/java/org/exist/xquery/functions/system/GetUptime.java</exclude>
10331048
<exclude>src/main/java/org/exist/xquery/functions/system/Shutdown.java</exclude>
10341049
<exclude>src/main/java/org/exist/xquery/functions/system/TriggerSystemTask.java</exclude>
@@ -1053,6 +1068,7 @@
10531068
<exclude>src/main/resources/org/exist/client/messages_sv_SE.properties</exclude>
10541069
<exclude>src/main/resources/org/exist/client/messages_zh_CN.properties</exclude>
10551070
<exclude>src/main/resources/org/exist/launcher/ConfigurationDialog.form</exclude>
1071+
<exclude>src/main/java/org/exist/launcher/ServiceManagerFactory.java</exclude>
10561072
<exclude>src/test/java/org/exist/http/AbstractHttpTest.java</exclude>
10571073
<exclude>src/test/java/org/exist/http/RESTServiceTest.java</exclude>
10581074
<exclude>src/test/java/org/exist/management/JmxRemoteTest.java</exclude>
@@ -1134,7 +1150,11 @@
11341150
<exclude>src/test/java/org/exist/xquery/functions/xmldb/AbstractXMLDBTest.java</exclude>
11351151
<exclude>src/test/java/org/exist/xquery/functions/session/AttributeTest.java</exclude>
11361152
<exclude>src/test/java/org/exist/xquery/functions/xmldb/XMLDBAuthenticateTest.java</exclude>
1153+
<exclude>src/main/java/org/exist/xquery/functions/util/BuiltinFunctions.java</exclude>
1154+
<exclude>src/main/java/org/exist/xquery/functions/util/DescribeFunction.java</exclude>
11371155
<exclude>src/main/java/org/exist/xquery/functions/util/Eval.java</exclude>
1156+
<exclude>src/main/java/org/exist/xquery/functions/util/FunctionFunction.java</exclude>
1157+
<exclude>src/main/java/org/exist/xquery/functions/util/ModuleInfo.java</exclude>
11381158
<exclude>src/main/java/org/exist/xquery/pragmas/TimePragma.java</exclude>
11391159
<exclude>src/main/java/org/exist/xquery/util/SerializerUtils.java</exclude>
11401160
<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)