You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2023/11/05 01:23:59 UTC

(commons-crypto) 01/01: Implement jni.library.name [skip ci]

This is an automated email from the ASF dual-hosted git repository.

sebb pushed a commit to branch crypto-174
in repository https://gitbox.apache.org/repos/asf/commons-crypto.git

commit c1e3024813fdf5aa5a72168f058b9a183924662b
Author: Sebb <se...@apache.org>
AuthorDate: Sun Nov 5 01:23:53 2023 +0000

    Implement jni.library.name [skip ci]
---
 src/main/java/org/apache/commons/crypto/Crypto.java      | 1 +
 src/main/java/org/apache/commons/crypto/utils/Utils.java | 7 +++++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/apache/commons/crypto/Crypto.java b/src/main/java/org/apache/commons/crypto/Crypto.java
index 5a082a77..1748419e 100644
--- a/src/main/java/org/apache/commons/crypto/Crypto.java
+++ b/src/main/java/org/apache/commons/crypto/Crypto.java
@@ -152,6 +152,7 @@ public final class Crypto {
     public static void main(final String[] args) throws Exception {
         quiet = args.length == 1 && args[0].equals("-q");
         info("jni.library.path=%s", System.getProperty("jni.library.path"));
+        info("jni.library.name=%s", System.getProperty("jni.library.name"));
         info("%s %s", getComponentName(), getComponentVersion());
         if (isNativeCodeLoaded()) {
             info("Native code loaded OK: %s", OpenSslInfoNative.NativeVersion());
diff --git a/src/main/java/org/apache/commons/crypto/utils/Utils.java b/src/main/java/org/apache/commons/crypto/utils/Utils.java
index f02fc78c..7e54001a 100644
--- a/src/main/java/org/apache/commons/crypto/utils/Utils.java
+++ b/src/main/java/org/apache/commons/crypto/utils/Utils.java
@@ -190,6 +190,8 @@ public final class Utils {
 
     /*
      * Override the default DLL name if jni.library.path is a valid directory
+     * If jni.library.name is defined, this overrides the default name
+     *
      * @param name - the default name, passed from native code
      * @return the updated library path
      * This method is designed for use from the DynamicLoader native code.
@@ -201,11 +203,12 @@ public final class Utils {
      * Do not change the method name or its signature!
      */
     static String libraryPath(final String name) {
+        final String overridename = System.getProperty("jni.library.name", name);
         final String override = System.getProperty("jni.library.path");
         if (override != null && new File(override).isDirectory()) {
-            return new File(override, name).getPath();
+            return new File(override, overridename).getPath();
         }
-        return name;
+        return overridename;
     }
 
     /**