diff --git a/changelog/unreleased/GITHUB#4718-jna-wmi-windows-process-list.yml b/changelog/unreleased/GITHUB#4718-jna-wmi-windows-process-list.yml new file mode 100644 index 000000000000..25b380fd0fcf --- /dev/null +++ b/changelog/unreleased/GITHUB#4718-jna-wmi-windows-process-list.yml @@ -0,0 +1,11 @@ +# See https://github.com/apache/solr/blob/main/dev-docs/changelog.adoc + +title: > + SolrProcessManager now uses JNA/WMI to list Java processes on Windows, instead of spawning an + external PowerShell process +type: changed +authors: + - name: Jan Høydahl +links: + - name: GITHUB#4718 + url: https://github.com/apache/solr/pull/4718 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e8a77111618c..201cc2826031 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -425,6 +425,7 @@ jersey-media-jsonjackson = { module = "org.glassfish.jersey.media:jersey-media-j jetbrains-annotations = { module = "org.jetbrains:annotations", version.ref = "jetbrains-annotations" } # @keep transitive dependency for version alignment jna = { module = "net.java.dev.jna:jna", version.ref = "jna" } +jna-platform = { module = "net.java.dev.jna:jna-platform", version.ref = "jna" } # @keep transitive dependency for version alignment jodatime-jodatime = { module = "joda-time:joda-time", version.ref = "joda-time" } junit-junit = { module = "junit:junit", version.ref = "junit" } diff --git a/gradle/testing/randomization/policies/solr-tests.policy b/gradle/testing/randomization/policies/solr-tests.policy index fe21f45a04c3..8b163e3e8bb0 100644 --- a/gradle/testing/randomization/policies/solr-tests.policy +++ b/gradle/testing/randomization/policies/solr-tests.policy @@ -260,8 +260,10 @@ grant { // Run java permission java.io.FilePermission "${java.home}${/}-", "execute"; - // Required by SolrProcessManager on Windows to find Solr processes, used by StatusTool (CLI) - permission java.io.FilePermission "<>", "execute"; + // Required by SolrProcessManager on Windows to find Solr processes (used by StatusTool CLI): + // JNA queries WMI, which loads the native jnidispatch library and reads jna.* system properties. + permission java.lang.RuntimePermission "loadLibrary.*"; + permission java.util.PropertyPermission "jna.*", "read"; }; // Grant all permissions to Gradle test runner classes. diff --git a/solr/api/gradle.lockfile b/solr/api/gradle.lockfile index c3a167a80d7b..75263e64f5e8 100644 --- a/solr/api/gradle.lockfile +++ b/solr/api/gradle.lockfile @@ -89,6 +89,8 @@ jakarta.xml.bind:jakarta.xml.bind-api:3.0.1=swaggerBuild jakarta.xml.bind:jakarta.xml.bind-api:4.0.2=jarValidation,testRuntimeClasspath javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor junit:junit:4.13.2=jarValidation,testCompileClasspath,testRuntimeClasspath +net.java.dev.jna:jna-platform:5.19.1=jarValidation,testRuntimeClasspath +net.java.dev.jna:jna:5.19.1=jarValidation,testRuntimeClasspath org.antlr:antlr4-runtime:4.13.2=jarValidation,testRuntimeClasspath org.apache.commons:commons-exec:1.6.0=jarValidation,testRuntimeClasspath org.apache.commons:commons-lang3:3.20.0=jarValidation,swaggerBuild,testRuntimeClasspath diff --git a/solr/benchmark/gradle.lockfile b/solr/benchmark/gradle.lockfile index ae84e49e3694..ea97c48f5809 100644 --- a/solr/benchmark/gradle.lockfile +++ b/solr/benchmark/gradle.lockfile @@ -78,6 +78,8 @@ jakarta.ws.rs:jakarta.ws.rs-api:4.0.0=jarValidation,runtimeClasspath,testRuntime jakarta.xml.bind:jakarta.xml.bind-api:4.0.2=jarValidation,runtimeClasspath,testRuntimeClasspath javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor junit:junit:4.13.2=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +net.java.dev.jna:jna-platform:5.19.1=jarValidation,runtimeClasspath,testRuntimeClasspath +net.java.dev.jna:jna:5.19.1=jarValidation,runtimeClasspath,testRuntimeClasspath net.sf.jopt-simple:jopt-simple:5.0.4=annotationProcessor,compileClasspath,jarValidation,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath org.antlr:antlr4-runtime:4.13.2=jarValidation,runtimeClasspath,testRuntimeClasspath org.apache.commons:commons-exec:1.6.0=jarValidation,runtimeClasspath,testRuntimeClasspath diff --git a/solr/core/build.gradle b/solr/core/build.gradle index 4ba85d1d830b..9803b4ee1964 100644 --- a/solr/core/build.gradle +++ b/solr/core/build.gradle @@ -153,6 +153,9 @@ dependencies { implementation libs.apache.commons.exec + // Used by SolrProcessManager to query running processes via WMI on Windows + implementation libs.jna.platform + implementation libs.apache.log4j.api implementation libs.apache.log4j.core runtimeOnly libs.apache.log4j.slf4j2impl diff --git a/solr/core/gradle.lockfile b/solr/core/gradle.lockfile index ddfcd99d6046..bc1aa337239a 100644 --- a/solr/core/gradle.lockfile +++ b/solr/core/gradle.lockfile @@ -85,6 +85,8 @@ jakarta.xml.bind:jakarta.xml.bind-api:4.0.2=jarValidation,runtimeClasspath,runti javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor junit:junit:4.13.2=jarValidation,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy net.bytebuddy:byte-buddy:1.18.9=jarValidation,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy +net.java.dev.jna:jna-platform:5.19.1=compileClasspath,compileClasspathCopy,jarValidation,runtimeClasspath,runtimeClasspathCopy,runtimeLibs,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy +net.java.dev.jna:jna:5.19.1=compileClasspath,compileClasspathCopy,jarValidation,runtimeClasspath,runtimeClasspathCopy,runtimeLibs,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy org.antlr:antlr4-runtime:4.13.2=jarValidation,runtimeClasspath,runtimeClasspathCopy,runtimeLibs,testRuntimeClasspath,testRuntimeClasspathCopy org.apache.commons:commons-exec:1.6.0=compileClasspath,compileClasspathCopy,jarValidation,runtimeClasspath,runtimeClasspathCopy,runtimeLibs,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy org.apache.commons:commons-lang3:3.20.0=compileClasspath,compileClasspathCopy,jarValidation,runtimeClasspath,runtimeClasspathCopy,runtimeLibs,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy diff --git a/solr/core/src/java/org/apache/solr/cli/SolrProcessManager.java b/solr/core/src/java/org/apache/solr/cli/SolrProcessManager.java index 3001fd2afd53..efcfcca656af 100644 --- a/solr/core/src/java/org/apache/solr/cli/SolrProcessManager.java +++ b/solr/core/src/java/org/apache/solr/cli/SolrProcessManager.java @@ -18,12 +18,12 @@ import static org.apache.solr.servlet.CoreContainerProvider.SOLR_INSTALL_DIR; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; +import com.sun.jna.platform.win32.COM.COMUtils; +import com.sun.jna.platform.win32.COM.WbemcliUtil.WmiQuery; +import com.sun.jna.platform.win32.COM.WbemcliUtil.WmiResult; +import com.sun.jna.platform.win32.Ole32; import java.io.IOException; import java.lang.invoke.MethodHandles; -import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; @@ -37,7 +37,6 @@ import java.util.regex.Pattern; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.apache.commons.io.IOUtils; import org.apache.lucene.util.Constants; import org.apache.solr.common.SolrException; import org.apache.solr.common.util.EnvUtils; @@ -160,7 +159,7 @@ private boolean isProcessSsl(ProcessHandle ph) { /** * Gets the command line of a process as a string. For Windows, we need to fetch command lines - * using a PowerShell command. + * from WMI (see {@link #commandLinesWindows()}). * * @param ph the process handle * @return the command line of the process @@ -174,55 +173,48 @@ private static Optional commandLine(ProcessHandle ph) { } /** - * Gets the command lines of all java processes on Windows using PowerShell. + * WMI columns to select from {@code Win32_Process}. The enum constant names are used verbatim as + * the WQL {@code SELECT} column names (WQL is case-insensitive). + */ + enum ProcessProperty { + PROCESSID, + NAME, + COMMANDLINE + } + + /** + * Gets the command lines of all java processes on Windows by querying WMI ({@code Win32_Process}) + * through JNA. This avoids spawning an external PowerShell process. * * @return a map of process IDs to command lines */ private static Map commandLinesWindows() { + COMUtils.checkRC(Ole32.INSTANCE.CoInitializeEx(null, Ole32.COINIT_MULTITHREADED)); try { - Process process = - new ProcessBuilder( - "powershell.exe", - "-Command", - "Get-CimInstance -ClassName Win32_Process | Where-Object { $_.Name -like '*java*' } | Select-Object ProcessId, CommandLine | ConvertTo-Json -Depth 1") - .redirectErrorStream(true) - .start(); - String output = IOUtils.toString(process.getInputStream(), StandardCharsets.UTF_8); - int exitCode = process.waitFor(); - if (exitCode != 0) { - String errorText = IOUtils.toString(process.getErrorStream(), StandardCharsets.UTF_8); - throw new SolrException( - SolrException.ErrorCode.SERVER_ERROR, - "Error getting command lines for Windows: " + errorText); + WmiResult result = + new WmiQuery<>("Win32_Process", ProcessProperty.class).execute(); + Map pidToCommandLine = new HashMap<>(); + for (int i = 0; i < result.getResultCount(); i++) { + Object name = result.getValue(ProcessProperty.NAME, i); + if (name == null || !name.toString().toLowerCase(Locale.ROOT).contains("java")) { + continue; + } + Object commandLine = result.getValue(ProcessProperty.COMMANDLINE, i); + Object processId = result.getValue(ProcessProperty.PROCESSID, i); + // CommandLine can be null if the current user cannot read it for that process + if (commandLine != null && processId != null) { + pidToCommandLine.put(((Number) processId).longValue(), commandLine.toString()); + } } - return parseWindowsPidToCommandLineJson(output); - } catch (IOException e) { + return pidToCommandLine; + } catch (RuntimeException e) { throw new SolrException( - SolrException.ErrorCode.SERVER_ERROR, "Error getting command lines for Windows"); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - throw new SolrException( - SolrException.ErrorCode.SERVER_ERROR, - "Interrupted while getting command lines for Windows"); + SolrException.ErrorCode.SERVER_ERROR, "Error getting command lines for Windows", e); + } finally { + Ole32.INSTANCE.CoUninitialize(); } } - static Map parseWindowsPidToCommandLineJson(String jsonString) - throws JsonProcessingException { - // Json format: [{"ProcessId": 1234, "CommandLine": "java foo"}] - ObjectMapper mapper = new ObjectMapper(); - List processInfoList = - mapper.readValue(jsonString, new TypeReference<>() {}); - return processInfoList.stream() - .filter(p -> p.CommandLine != null) - .collect(Collectors.toMap(p -> p.ProcessId, p -> p.CommandLine)); - } - - public static class WindowsProcessInfo { - public long ProcessId; - public String CommandLine; - } - /** * Gets the arguments of a process as a list of strings. With workaround for Windows. * diff --git a/solr/core/src/test/org/apache/solr/cli/SolrProcessManagerTest.java b/solr/core/src/test/org/apache/solr/cli/SolrProcessManagerTest.java index 2102e1e3d75d..e31ccb3381ec 100644 --- a/solr/core/src/test/org/apache/solr/cli/SolrProcessManagerTest.java +++ b/solr/core/src/test/org/apache/solr/cli/SolrProcessManagerTest.java @@ -16,7 +16,6 @@ */ package org.apache.solr.cli; -import com.fasterxml.jackson.core.JsonProcessingException; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; @@ -28,7 +27,6 @@ import java.nio.file.Path; import java.util.Arrays; import java.util.Collection; -import java.util.Map; import java.util.stream.Collectors; import org.apache.commons.math3.util.Pair; import org.apache.solr.SolrTestCase; @@ -175,15 +173,6 @@ public void testSolrProcessMethods() { assertEquals("https://localhost:" + processHttps.getKey() + "/solr", https.getLocalUrl()); } - public void testParseWindowsPidToCommandLineJson() throws JsonProcessingException { - String jsonResponseFromPowershell = - "[{\"ProcessId\": 9356, \"CommandLine\": \"date\"}, {\"ProcessId\": 4736, \"CommandLine\": null}\n]"; - Map pidToCommandLine = - SolrProcessManager.parseWindowsPidToCommandLineJson(jsonResponseFromPowershell); - assertEquals(1, pidToCommandLine.size()); - assertEquals("date", pidToCommandLine.get(9356L)); - } - /** * This class is started as new java process by {@link SolrProcessManagerTest#createProcess}, and * it listens to an HTTP(s) port to simulate a real Solr process. diff --git a/solr/cross-dc-manager/gradle.lockfile b/solr/cross-dc-manager/gradle.lockfile index a60d7f62fdd8..b12197a6b14d 100644 --- a/solr/cross-dc-manager/gradle.lockfile +++ b/solr/cross-dc-manager/gradle.lockfile @@ -102,6 +102,8 @@ javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcess junit:junit:4.13.2=jarValidation,testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy-agent:1.18.9=jarValidation,testRuntimeClasspath net.bytebuddy:byte-buddy:1.18.9=jarValidation,testRuntimeClasspath +net.java.dev.jna:jna-platform:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +net.java.dev.jna:jna:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath net.sf.jopt-simple:jopt-simple:5.0.4=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath net.sourceforge.argparse4j:argparse4j:0.7.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath org.antlr:antlr4-runtime:4.13.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/licenses/jna-platform-5.19.1.jar.sha1 b/solr/licenses/jna-platform-5.19.1.jar.sha1 new file mode 100644 index 000000000000..a8e52af219a6 --- /dev/null +++ b/solr/licenses/jna-platform-5.19.1.jar.sha1 @@ -0,0 +1 @@ +d1e54d9231da5ca3fa730d52960deaa555475468 diff --git a/solr/modules/analysis-extras/gradle.lockfile b/solr/modules/analysis-extras/gradle.lockfile index 87c45ec45920..80a897bb9717 100644 --- a/solr/modules/analysis-extras/gradle.lockfile +++ b/solr/modules/analysis-extras/gradle.lockfile @@ -81,6 +81,8 @@ jakarta.xml.bind:jakarta.xml.bind-api:4.0.2=jarValidation,runtimeClasspath,runti javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor junit:junit:4.13.2=jarValidation,testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy:1.18.9=jarValidation,testCompileClasspath,testRuntimeClasspath +net.java.dev.jna:jna-platform:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +net.java.dev.jna:jna:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.antlr:antlr4-runtime:4.13.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.apache.commons:commons-exec:1.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.apache.commons:commons-lang3:3.20.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/clustering/gradle.lockfile b/solr/modules/clustering/gradle.lockfile index 99f1b806e091..5d5ce4994f05 100644 --- a/solr/modules/clustering/gradle.lockfile +++ b/solr/modules/clustering/gradle.lockfile @@ -78,6 +78,8 @@ jakarta.ws.rs:jakarta.ws.rs-api:4.0.0=jarValidation,runtimeClasspath,runtimeLibs jakarta.xml.bind:jakarta.xml.bind-api:4.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor junit:junit:4.13.2=jarValidation,testCompileClasspath,testRuntimeClasspath +net.java.dev.jna:jna-platform:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +net.java.dev.jna:jna:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.antlr:antlr4-runtime:4.13.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.apache.commons:commons-exec:1.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.apache.commons:commons-lang3:3.20.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/cross-dc/gradle.lockfile b/solr/modules/cross-dc/gradle.lockfile index 0044e890b0b1..4089c630b34b 100644 --- a/solr/modules/cross-dc/gradle.lockfile +++ b/solr/modules/cross-dc/gradle.lockfile @@ -82,6 +82,8 @@ javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcess junit:junit:4.13.2=jarValidation,testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy-agent:1.18.9=jarValidation,testRuntimeClasspath net.bytebuddy:byte-buddy:1.18.9=jarValidation,testRuntimeClasspath +net.java.dev.jna:jna-platform:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +net.java.dev.jna:jna:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.antlr:antlr4-runtime:4.13.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.apache.commons:commons-exec:1.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.apache.commons:commons-lang3:3.20.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/cuvs/gradle.lockfile b/solr/modules/cuvs/gradle.lockfile index bee22fe0fbd5..a305a10b9e80 100644 --- a/solr/modules/cuvs/gradle.lockfile +++ b/solr/modules/cuvs/gradle.lockfile @@ -80,6 +80,8 @@ jakarta.ws.rs:jakarta.ws.rs-api:4.0.0=jarValidation,runtimeClasspath,runtimeLibs jakarta.xml.bind:jakarta.xml.bind-api:4.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor junit:junit:4.13.2=jarValidation,testCompileClasspath,testRuntimeClasspath +net.java.dev.jna:jna-platform:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +net.java.dev.jna:jna:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.antlr:antlr4-runtime:4.13.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.apache.commons:commons-exec:1.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.apache.commons:commons-lang3:3.20.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/extraction/gradle.lockfile b/solr/modules/extraction/gradle.lockfile index a3ef6b0dafa8..528840efb1d6 100644 --- a/solr/modules/extraction/gradle.lockfile +++ b/solr/modules/extraction/gradle.lockfile @@ -81,7 +81,8 @@ jakarta.ws.rs:jakarta.ws.rs-api:4.0.0=jarValidation,runtimeClasspath,runtimeLibs jakarta.xml.bind:jakarta.xml.bind-api:4.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor junit:junit:4.13.2=jarValidation,testCompileClasspath,testRuntimeClasspath -net.java.dev.jna:jna:5.19.1=jarValidation,testCompileClasspath,testRuntimeClasspath +net.java.dev.jna:jna-platform:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +net.java.dev.jna:jna:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.antlr:antlr4-runtime:4.13.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.apache.commons:commons-compress:1.28.0=jarValidation,testCompileClasspath,testRuntimeClasspath org.apache.commons:commons-exec:1.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/gcs-repository/gradle.lockfile b/solr/modules/gcs-repository/gradle.lockfile index 485b424ab5db..e89290189567 100644 --- a/solr/modules/gcs-repository/gradle.lockfile +++ b/solr/modules/gcs-repository/gradle.lockfile @@ -130,6 +130,8 @@ jakarta.ws.rs:jakarta.ws.rs-api:4.0.0=jarValidation,runtimeClasspath,runtimeLibs jakarta.xml.bind:jakarta.xml.bind-api:4.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor junit:junit:4.13.2=jarValidation,testCompileClasspath,testRuntimeClasspath +net.java.dev.jna:jna-platform:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +net.java.dev.jna:jna:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.antlr:antlr4-runtime:4.13.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.apache.commons:commons-exec:1.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.apache.commons:commons-lang3:3.20.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/jwt-auth/gradle.lockfile b/solr/modules/jwt-auth/gradle.lockfile index b23540782e98..9cb7d14d41a7 100644 --- a/solr/modules/jwt-auth/gradle.lockfile +++ b/solr/modules/jwt-auth/gradle.lockfile @@ -95,6 +95,8 @@ jakarta.xml.bind:jakarta.xml.bind-api:4.0.2=jarValidation,runtimeClasspath,runti javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor junit:junit:4.13.2=jarValidation,testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy:1.18.9=jarValidation,testCompileClasspath,testRuntimeClasspath +net.java.dev.jna:jna-platform:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +net.java.dev.jna:jna:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath net.minidev:accessors-smart:2.5.2=jarValidation,testCompileClasspath,testRuntimeClasspath net.minidev:json-smart:2.5.2=jarValidation,testCompileClasspath,testRuntimeClasspath no.nav.security:mock-oauth2-server:5.0.1=jarValidation,testCompileClasspath,testRuntimeClasspath diff --git a/solr/modules/langid/gradle.lockfile b/solr/modules/langid/gradle.lockfile index de28a2636fc6..ba865f1be100 100644 --- a/solr/modules/langid/gradle.lockfile +++ b/solr/modules/langid/gradle.lockfile @@ -79,6 +79,8 @@ jakarta.ws.rs:jakarta.ws.rs-api:4.0.0=jarValidation,runtimeClasspath,runtimeLibs jakarta.xml.bind:jakarta.xml.bind-api:4.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor junit:junit:4.13.2=jarValidation,testCompileClasspath,testRuntimeClasspath +net.java.dev.jna:jna-platform:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +net.java.dev.jna:jna:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.antlr:antlr4-runtime:4.13.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.apache.commons:commons-exec:1.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.apache.commons:commons-lang3:3.20.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/language-models/gradle.lockfile b/solr/modules/language-models/gradle.lockfile index b5b02791f2ca..7e7602d62fd8 100644 --- a/solr/modules/language-models/gradle.lockfile +++ b/solr/modules/language-models/gradle.lockfile @@ -97,6 +97,8 @@ jakarta.ws.rs:jakarta.ws.rs-api:4.0.0=jarValidation,runtimeClasspath,runtimeLibs jakarta.xml.bind:jakarta.xml.bind-api:4.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor junit:junit:4.13.2=jarValidation,testCompileClasspath,testRuntimeClasspath +net.java.dev.jna:jna-platform:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +net.java.dev.jna:jna:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.antlr:antlr4-runtime:4.13.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.apache.commons:commons-exec:1.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.apache.commons:commons-lang3:3.20.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/ltr/gradle.lockfile b/solr/modules/ltr/gradle.lockfile index 83645788f9d9..2e9e535d04d9 100644 --- a/solr/modules/ltr/gradle.lockfile +++ b/solr/modules/ltr/gradle.lockfile @@ -79,6 +79,8 @@ jakarta.xml.bind:jakarta.xml.bind-api:4.0.2=jarValidation,runtimeClasspath,runti javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor junit:junit:4.13.2=jarValidation,testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy:1.18.9=jarValidation,testCompileClasspath,testRuntimeClasspath +net.java.dev.jna:jna-platform:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +net.java.dev.jna:jna:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.antlr:antlr4-runtime:4.13.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.apache.commons:commons-exec:1.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.apache.commons:commons-lang3:3.20.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/opentelemetry/gradle.lockfile b/solr/modules/opentelemetry/gradle.lockfile index b9150edaca66..b67f62c0173d 100644 --- a/solr/modules/opentelemetry/gradle.lockfile +++ b/solr/modules/opentelemetry/gradle.lockfile @@ -87,6 +87,8 @@ jakarta.ws.rs:jakarta.ws.rs-api:4.0.0=jarValidation,runtimeClasspath,runtimeLibs jakarta.xml.bind:jakarta.xml.bind-api:4.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor junit:junit:4.13.2=jarValidation,testCompileClasspath,testRuntimeClasspath +net.java.dev.jna:jna-platform:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +net.java.dev.jna:jna:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.antlr:antlr4-runtime:4.13.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.apache.commons:commons-exec:1.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.apache.commons:commons-lang3:3.20.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/s3-repository/gradle.lockfile b/solr/modules/s3-repository/gradle.lockfile index e954715ad597..6573d118c60e 100644 --- a/solr/modules/s3-repository/gradle.lockfile +++ b/solr/modules/s3-repository/gradle.lockfile @@ -93,6 +93,8 @@ javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcess joda-time:joda-time:2.14.2=jarValidation,testCompileClasspath,testRuntimeClasspath junit:junit:4.13.2=jarValidation,testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy:1.18.9=jarValidation,testCompileClasspath,testRuntimeClasspath +net.java.dev.jna:jna-platform:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +net.java.dev.jna:jna:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.antlr:antlr4-runtime:4.13.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.apache.commons:commons-exec:1.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.apache.commons:commons-lang3:3.20.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/scripting/gradle.lockfile b/solr/modules/scripting/gradle.lockfile index a8b1799aee1d..480fc01547c7 100644 --- a/solr/modules/scripting/gradle.lockfile +++ b/solr/modules/scripting/gradle.lockfile @@ -78,6 +78,8 @@ jakarta.ws.rs:jakarta.ws.rs-api:4.0.0=jarValidation,runtimeClasspath,runtimeLibs jakarta.xml.bind:jakarta.xml.bind-api:4.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor junit:junit:4.13.2=jarValidation,testCompileClasspath,testRuntimeClasspath +net.java.dev.jna:jna-platform:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +net.java.dev.jna:jna:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.antlr:antlr4-runtime:4.13.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.apache.commons:commons-exec:1.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.apache.commons:commons-lang3:3.20.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/sql/gradle.lockfile b/solr/modules/sql/gradle.lockfile index 042a7f184bfc..78d3ced4a81d 100644 --- a/solr/modules/sql/gradle.lockfile +++ b/solr/modules/sql/gradle.lockfile @@ -81,6 +81,8 @@ jakarta.ws.rs:jakarta.ws.rs-api:4.0.0=jarValidation,runtimeClasspath,runtimeLibs jakarta.xml.bind:jakarta.xml.bind-api:4.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor junit:junit:4.13.2=jarValidation,testCompileClasspath,testRuntimeClasspath +net.java.dev.jna:jna-platform:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +net.java.dev.jna:jna:5.19.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.antlr:antlr4-runtime:4.13.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.apache.calcite.avatica:avatica-core:1.25.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath org.apache.calcite.avatica:avatica-metrics:1.25.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath diff --git a/solr/server/gradle.lockfile b/solr/server/gradle.lockfile index 4daac6874889..542ff98fe147 100644 --- a/solr/server/gradle.lockfile +++ b/solr/server/gradle.lockfile @@ -76,6 +76,8 @@ jakarta.validation:jakarta.validation-api:3.1.0=jarValidation,runtimeClasspath,s jakarta.ws.rs:jakarta.ws.rs-api:4.0.0=jarValidation,runtimeClasspath,solrCore jakarta.xml.bind:jakarta.xml.bind-api:4.0.2=jarValidation,runtimeClasspath,solrCore javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor +net.java.dev.jna:jna-platform:5.19.1=jarValidation,runtimeClasspath,solrCore +net.java.dev.jna:jna:5.19.1=jarValidation,runtimeClasspath,solrCore org.antlr:antlr4-runtime:4.13.2=jarValidation,runtimeClasspath,solrCore org.apache.commons:commons-exec:1.6.0=jarValidation,runtimeClasspath,solrCore org.apache.commons:commons-lang3:3.20.0=jarValidation,runtimeClasspath,solrCore diff --git a/solr/solr-ref-guide/gradle.lockfile b/solr/solr-ref-guide/gradle.lockfile index 826be023c52b..a04e07da19d0 100644 --- a/solr/solr-ref-guide/gradle.lockfile +++ b/solr/solr-ref-guide/gradle.lockfile @@ -78,6 +78,8 @@ jakarta.ws.rs:jakarta.ws.rs-api:4.0.0=testRuntimeClasspath jakarta.xml.bind:jakarta.xml.bind-api:4.0.2=testRuntimeClasspath javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor junit:junit:4.13.2=testCompileClasspath,testRuntimeClasspath +net.java.dev.jna:jna-platform:5.19.1=testRuntimeClasspath +net.java.dev.jna:jna:5.19.1=testRuntimeClasspath org.antlr:antlr4-runtime:4.13.2=testRuntimeClasspath org.apache.calcite.avatica:avatica-core:1.25.0=testRuntimeClasspath org.apache.calcite.avatica:avatica-metrics:1.25.0=testRuntimeClasspath diff --git a/solr/solrj-jetty/gradle.lockfile b/solr/solrj-jetty/gradle.lockfile index 736690e69b2c..93c32c6af418 100644 --- a/solr/solrj-jetty/gradle.lockfile +++ b/solr/solrj-jetty/gradle.lockfile @@ -78,6 +78,8 @@ jakarta.ws.rs:jakarta.ws.rs-api:4.0.0=jarValidation,runtimeClasspath,testRuntime jakarta.xml.bind:jakarta.xml.bind-api:4.0.2=jarValidation,testRuntimeClasspath javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor junit:junit:4.13.2=jarValidation,testCompileClasspath,testRuntimeClasspath +net.java.dev.jna:jna-platform:5.19.1=jarValidation,testRuntimeClasspath +net.java.dev.jna:jna:5.19.1=jarValidation,testRuntimeClasspath org.antlr:antlr4-runtime:4.13.2=jarValidation,testRuntimeClasspath org.apache.commons:commons-exec:1.6.0=jarValidation,testRuntimeClasspath org.apache.commons:commons-lang3:3.20.0=jarValidation,testRuntimeClasspath diff --git a/solr/solrj-streaming/gradle.lockfile b/solr/solrj-streaming/gradle.lockfile index 28bf7a0cfbc6..1defd1682ef4 100644 --- a/solr/solrj-streaming/gradle.lockfile +++ b/solr/solrj-streaming/gradle.lockfile @@ -78,6 +78,8 @@ jakarta.ws.rs:jakarta.ws.rs-api:4.0.0=jarValidation,runtimeClasspath,testRuntime jakarta.xml.bind:jakarta.xml.bind-api:4.0.2=jarValidation,testRuntimeClasspath javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor junit:junit:4.13.2=jarValidation,testCompileClasspath,testRuntimeClasspath +net.java.dev.jna:jna-platform:5.19.1=jarValidation,testRuntimeClasspath +net.java.dev.jna:jna:5.19.1=jarValidation,testRuntimeClasspath org.antlr:antlr4-runtime:4.13.2=jarValidation,testRuntimeClasspath org.apache.calcite.avatica:avatica-core:1.25.0=jarValidation,testRuntimeClasspath org.apache.calcite.avatica:avatica-metrics:1.25.0=jarValidation,testRuntimeClasspath diff --git a/solr/solrj-zookeeper/gradle.lockfile b/solr/solrj-zookeeper/gradle.lockfile index 916b3562fcf8..8993a7516acb 100644 --- a/solr/solrj-zookeeper/gradle.lockfile +++ b/solr/solrj-zookeeper/gradle.lockfile @@ -78,6 +78,8 @@ jakarta.ws.rs:jakarta.ws.rs-api:4.0.0=jarValidation,runtimeClasspath,runtimeClas jakarta.xml.bind:jakarta.xml.bind-api:4.0.2=jarValidation,testRuntimeClasspath,testRuntimeClasspathCopy javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor junit:junit:4.13.2=jarValidation,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy +net.java.dev.jna:jna-platform:5.19.1=jarValidation,testRuntimeClasspath,testRuntimeClasspathCopy +net.java.dev.jna:jna:5.19.1=jarValidation,testRuntimeClasspath,testRuntimeClasspathCopy org.antlr:antlr4-runtime:4.13.2=jarValidation,testRuntimeClasspath,testRuntimeClasspathCopy org.apache.commons:commons-exec:1.6.0=jarValidation,testRuntimeClasspath,testRuntimeClasspathCopy org.apache.commons:commons-lang3:3.20.0=jarValidation,testRuntimeClasspath,testRuntimeClasspathCopy diff --git a/solr/solrj/gradle.lockfile b/solr/solrj/gradle.lockfile index 3336889d484a..aff5bd3bdc88 100644 --- a/solr/solrj/gradle.lockfile +++ b/solr/solrj/gradle.lockfile @@ -79,6 +79,8 @@ jakarta.xml.bind:jakarta.xml.bind-api:4.0.2=jarValidation,testRuntimeClasspath javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor junit:junit:4.13.2=jarValidation,testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy:1.18.9=jarValidation,testCompileClasspath,testRuntimeClasspath +net.java.dev.jna:jna-platform:5.19.1=jarValidation,testRuntimeClasspath +net.java.dev.jna:jna:5.19.1=jarValidation,testRuntimeClasspath org.antlr:antlr4-runtime:4.13.2=jarValidation,testRuntimeClasspath org.apache.commons:commons-exec:1.6.0=jarValidation,testRuntimeClasspath org.apache.commons:commons-lang3:3.20.0=jarValidation,testRuntimeClasspath diff --git a/solr/test-framework/gradle.lockfile b/solr/test-framework/gradle.lockfile index b0ea8c4c29ae..3242465b8219 100644 --- a/solr/test-framework/gradle.lockfile +++ b/solr/test-framework/gradle.lockfile @@ -79,6 +79,8 @@ jakarta.ws.rs:jakarta.ws.rs-api:4.0.0=jarValidation,runtimeClasspath,runtimeClas jakarta.xml.bind:jakarta.xml.bind-api:4.0.2=jarValidation,runtimeClasspath,runtimeClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor junit:junit:4.13.2=compileClasspath,compileClasspathCopy,jarValidation,runtimeClasspath,runtimeClasspathCopy,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy +net.java.dev.jna:jna-platform:5.19.1=jarValidation,runtimeClasspath,runtimeClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy +net.java.dev.jna:jna:5.19.1=jarValidation,runtimeClasspath,runtimeClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy org.antlr:antlr4-runtime:4.13.2=jarValidation,runtimeClasspath,runtimeClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy org.apache.commons:commons-exec:1.6.0=jarValidation,runtimeClasspath,runtimeClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy org.apache.commons:commons-lang3:3.20.0=jarValidation,runtimeClasspath,runtimeClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy diff --git a/solr/webapp/gradle.lockfile b/solr/webapp/gradle.lockfile index a562330bd664..1f99e444fdf8 100644 --- a/solr/webapp/gradle.lockfile +++ b/solr/webapp/gradle.lockfile @@ -76,6 +76,8 @@ jakarta.validation:jakarta.validation-api:3.1.0=solrCore jakarta.ws.rs:jakarta.ws.rs-api:4.0.0=solrCore jakarta.xml.bind:jakarta.xml.bind-api:4.0.2=solrCore javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor +net.java.dev.jna:jna-platform:5.19.1=solrCore +net.java.dev.jna:jna:5.19.1=solrCore org.antlr:antlr4-runtime:4.13.2=solrCore org.apache.commons:commons-exec:1.6.0=solrCore org.apache.commons:commons-lang3:3.20.0=solrCore