You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by sd...@apache.org on 2016/06/24 07:10:46 UTC

[3/4] commons-crypto git commit: Move OSInfo to top level package an make it package private

Move OSInfo to top level package an make it package private


Project: http://git-wip-us.apache.org/repos/asf/commons-crypto/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-crypto/commit/363ec740
Tree: http://git-wip-us.apache.org/repos/asf/commons-crypto/tree/363ec740
Diff: http://git-wip-us.apache.org/repos/asf/commons-crypto/diff/363ec740

Branch: refs/heads/master
Commit: 363ec7404c632afaf93cf6e9290baccf99463541
Parents: d94bd07
Author: Benedikt Ritter <be...@gmail.com>
Authored: Tue Jun 21 20:22:35 2016 +0200
Committer: Benedikt Ritter <be...@gmail.com>
Committed: Fri Jun 24 08:55:01 2016 +0200

----------------------------------------------------------------------
 Makefile.common                                 |   4 +-
 .../apache/commons/crypto/NativeCodeLoader.java |   1 -
 .../java/org/apache/commons/crypto/OSInfo.java  | 216 +++++++++++++++++++
 .../org/apache/commons/crypto/utils/OSInfo.java | 216 -------------------
 4 files changed, 218 insertions(+), 219 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-crypto/blob/363ec740/Makefile.common
----------------------------------------------------------------------
diff --git a/Makefile.common b/Makefile.common
index f861319..2c41b31 100644
--- a/Makefile.common
+++ b/Makefile.common
@@ -32,8 +32,8 @@ JAVA  := "$$JAVA_HOME/bin/java"
 JAVAC := "$$JAVA_HOME/bin/javac"
 JAVAH := "$$JAVA_HOME/bin/javah"
 
-OSINFO_CLASS := org.apache.commons.crypto.utils.OSInfo
-OSINFO_PROG := $(TARGET)/classes/org/apache/commons/crypto/utils/OSInfo.class
+OSINFO_CLASS := org.apache.commons.crypto.OSInfo
+OSINFO_PROG := $(TARGET)/classes/org/apache/commons/crypto/OSInfo.class
 
 OS_NAME := $(shell $(JAVA) -cp $(TARGET)/classes $(OSINFO_CLASS) --os)
 OS_ARCH := $(shell $(JAVA) -cp $(TARGET)/classes $(OSINFO_CLASS) --arch)

http://git-wip-us.apache.org/repos/asf/commons-crypto/blob/363ec740/src/main/java/org/apache/commons/crypto/NativeCodeLoader.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/crypto/NativeCodeLoader.java b/src/main/java/org/apache/commons/crypto/NativeCodeLoader.java
index 00e8766..5c7d1f3 100644
--- a/src/main/java/org/apache/commons/crypto/NativeCodeLoader.java
+++ b/src/main/java/org/apache/commons/crypto/NativeCodeLoader.java
@@ -27,7 +27,6 @@ import java.net.URL;
 import java.util.Properties;
 import java.util.UUID;
 
-import org.apache.commons.crypto.utils.OSInfo;
 import org.apache.commons.crypto.utils.Utils;
 
 /**

http://git-wip-us.apache.org/repos/asf/commons-crypto/blob/363ec740/src/main/java/org/apache/commons/crypto/OSInfo.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/crypto/OSInfo.java b/src/main/java/org/apache/commons/crypto/OSInfo.java
new file mode 100644
index 0000000..08048b2
--- /dev/null
+++ b/src/main/java/org/apache/commons/crypto/OSInfo.java
@@ -0,0 +1,216 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.crypto;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Locale;
+
+/**
+ * Provides OS name and architecture name.
+ */
+final class OSInfo {
+    private final static HashMap<String, String> archMapping = new HashMap<>();
+
+    /**
+     * The constant string represents for X86 architecture, the value is:
+     * {@value #X86}.
+     */
+    static final String X86 = "x86";
+
+    /**
+     * The constant string represents for X86_64 architecture, the value is:
+     * {@value #X86_64}.
+     */
+    static final String X86_64 = "x86_64";
+
+    /**
+     * The constant string represents for IA64_32 architecture, the value is:
+     * {@value #IA64_32}.
+     */
+    static final String IA64_32 = "ia64_32";
+
+    /**
+     * The constant string represents for IA64 architecture, the value is:
+     * {@value #IA64}.
+     */
+    static final String IA64 = "ia64";
+
+    /**
+     * The constant string represents for PPC architecture, the value is:
+     * {@value #PPC}.
+     */
+    static final String PPC = "ppc";
+
+    /**
+     * The constant string represents for PPC64 architecture, the value is:
+     * {@value #PPC64}.
+     */
+    static final String PPC64 = "ppc64";
+
+    /**
+     * The private constructor of {@Link OSInfo}.
+     */
+    private OSInfo() {
+    }
+
+    static {
+        // x86 mappings
+        archMapping.put(X86, X86);
+        archMapping.put("i386", X86);
+        archMapping.put("i486", X86);
+        archMapping.put("i586", X86);
+        archMapping.put("i686", X86);
+        archMapping.put("pentium", X86);
+
+        // x86_64 mappings
+        archMapping.put(X86_64, X86_64);
+        archMapping.put("amd64", X86_64);
+        archMapping.put("em64t", X86_64);
+        archMapping.put("universal", X86_64); // Needed for openjdk7 in Mac
+
+        // Itenium 64-bit mappings
+        archMapping.put(IA64, IA64);
+        archMapping.put("ia64w", IA64);
+
+        // Itenium 32-bit mappings, usually an HP-UX construct
+        archMapping.put(IA64_32, IA64_32);
+        archMapping.put("ia64n", IA64_32);
+
+        // PowerPC mappings
+        archMapping.put(PPC, PPC);
+        archMapping.put("power", PPC);
+        archMapping.put("powerpc", PPC);
+        archMapping.put("power_pc", PPC);
+        archMapping.put("power_rs", PPC);
+
+        // TODO: PowerPC 64bit mappings
+        archMapping.put(PPC64, PPC64);
+        archMapping.put("power64", PPC64);
+        archMapping.put("powerpc64", PPC64);
+        archMapping.put("power_pc64", PPC64);
+        archMapping.put("power_rs64", PPC64);
+    }
+
+    /**
+     * The main method.
+     *
+     * @param args the argv.
+     */
+    public static void main(String[] args) {
+        if (args.length >= 1) {
+            if ("--os".equals(args[0])) {
+                System.out.print(getOSName());
+                return;
+            } else if ("--arch".equals(args[0])) {
+                System.out.print(getArchName());
+                return;
+            }
+        }
+
+        System.out.print(getNativeLibFolderPathForCurrentOS());
+    }
+
+    /**
+     * Gets the native lib folder.
+     *
+     * @return the current OS's native lib folder.
+     */
+    static String getNativeLibFolderPathForCurrentOS() {
+        return getOSName() + "/" + getArchName();
+    }
+
+    /**
+     * Gets the OS name.
+     *
+     * @return the OS name.
+     */
+    static String getOSName() {
+        return translateOSNameToFolderName(System.getProperty("os.name"));
+    }
+
+    /**
+     * Gets the architecture name.
+     *
+     * @return the architecture name.
+     */
+    static String getArchName() {
+        // if running Linux on ARM, need to determine ABI of JVM
+        String osArch = System.getProperty("os.arch");
+        if (osArch.startsWith("arm")
+                && System.getProperty("os.name").contains("Linux")) {
+            String javaHome = System.getProperty("java.home");
+            try {
+                // determine if first JVM found uses ARM hard-float ABI
+                String[] cmdarray = {
+                        "/bin/sh",
+                        "-c",
+                        "find '"
+                                + javaHome
+                                + "' -name 'libjvm.so' | head -1 | xargs readelf -A | "
+                                + "grep 'Tag_ABI_VFP_args: VFP registers'" };
+                int exitCode = Runtime.getRuntime().exec(cmdarray).waitFor();
+                if (exitCode == 0) {
+                    return "armhf";
+                }
+            } catch (IOException e) { //NOPMD
+                // ignored: fall back to "arm" arch (soft-float ABI)
+            } catch (InterruptedException e) { //NOPMD
+                // ignored: fall back to "arm" arch (soft-float ABI)
+            }
+        } else {
+            String lc = osArch.toLowerCase(Locale.US);
+            if (archMapping.containsKey(lc)) {
+                return archMapping.get(lc);
+            }
+        }
+        return translateArchNameToFolderName(osArch);
+    }
+
+    /**
+     * Translates the OS name to folder name.
+     *
+     * @param osName the OS name.
+     * @return the folder name.
+     */
+    private static String translateOSNameToFolderName(String osName) {
+        if (osName.contains("Windows")) {
+            return "Windows";
+        } else if (osName.contains("Mac")) {
+            return "Mac";
+        } else if (osName.contains("Linux")) {
+            return "Linux";
+        } else if (osName.contains("AIX")) {
+            return "AIX";
+        }
+
+        else {
+            return osName.replaceAll("\\W", "");
+        }
+    }
+
+    /**
+     * Translates the architecture name to folder name.
+     *
+     * @param archName the architecture name.
+     * @return the folder name.
+     */
+    private static String translateArchNameToFolderName(String archName) {
+        return archName.replaceAll("\\W", "");
+    }
+}

http://git-wip-us.apache.org/repos/asf/commons-crypto/blob/363ec740/src/main/java/org/apache/commons/crypto/utils/OSInfo.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/crypto/utils/OSInfo.java b/src/main/java/org/apache/commons/crypto/utils/OSInfo.java
deleted file mode 100644
index 4cd4ef4..0000000
--- a/src/main/java/org/apache/commons/crypto/utils/OSInfo.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.commons.crypto.utils;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Locale;
-
-/**
- * Provides OS name and architecture name.
- */
-public class OSInfo {
-    private final static HashMap<String, String> archMapping = new HashMap<>();
-
-    /**
-     * The constant string represents for X86 architecture, the value is:
-     * {@value #X86}.
-     */
-    public static final String X86 = "x86";
-
-    /**
-     * The constant string represents for X86_64 architecture, the value is:
-     * {@value #X86_64}.
-     */
-    public static final String X86_64 = "x86_64";
-
-    /**
-     * The constant string represents for IA64_32 architecture, the value is:
-     * {@value #IA64_32}.
-     */
-    public static final String IA64_32 = "ia64_32";
-
-    /**
-     * The constant string represents for IA64 architecture, the value is:
-     * {@value #IA64}.
-     */
-    public static final String IA64 = "ia64";
-
-    /**
-     * The constant string represents for PPC architecture, the value is:
-     * {@value #PPC}.
-     */
-    public static final String PPC = "ppc";
-
-    /**
-     * The constant string represents for PPC64 architecture, the value is:
-     * {@value #PPC64}.
-     */
-    public static final String PPC64 = "ppc64";
-
-    /**
-     * The private constructor of {@Link OSInfo}.
-     */
-    private OSInfo() {
-    }
-
-    static {
-        // x86 mappings
-        archMapping.put(X86, X86);
-        archMapping.put("i386", X86);
-        archMapping.put("i486", X86);
-        archMapping.put("i586", X86);
-        archMapping.put("i686", X86);
-        archMapping.put("pentium", X86);
-
-        // x86_64 mappings
-        archMapping.put(X86_64, X86_64);
-        archMapping.put("amd64", X86_64);
-        archMapping.put("em64t", X86_64);
-        archMapping.put("universal", X86_64); // Needed for openjdk7 in Mac
-
-        // Itenium 64-bit mappings
-        archMapping.put(IA64, IA64);
-        archMapping.put("ia64w", IA64);
-
-        // Itenium 32-bit mappings, usually an HP-UX construct
-        archMapping.put(IA64_32, IA64_32);
-        archMapping.put("ia64n", IA64_32);
-
-        // PowerPC mappings
-        archMapping.put(PPC, PPC);
-        archMapping.put("power", PPC);
-        archMapping.put("powerpc", PPC);
-        archMapping.put("power_pc", PPC);
-        archMapping.put("power_rs", PPC);
-
-        // TODO: PowerPC 64bit mappings
-        archMapping.put(PPC64, PPC64);
-        archMapping.put("power64", PPC64);
-        archMapping.put("powerpc64", PPC64);
-        archMapping.put("power_pc64", PPC64);
-        archMapping.put("power_rs64", PPC64);
-    }
-
-    /**
-     * The main method.
-     *
-     * @param args the argv.
-     */
-    public static void main(String[] args) {
-        if (args.length >= 1) {
-            if ("--os".equals(args[0])) {
-                System.out.print(getOSName());
-                return;
-            } else if ("--arch".equals(args[0])) {
-                System.out.print(getArchName());
-                return;
-            }
-        }
-
-        System.out.print(getNativeLibFolderPathForCurrentOS());
-    }
-
-    /**
-     * Gets the native lib folder.
-     *
-     * @return the current OS's native lib folder.
-     */
-    public static String getNativeLibFolderPathForCurrentOS() {
-        return getOSName() + "/" + getArchName();
-    }
-
-    /**
-     * Gets the OS name.
-     *
-     * @return the OS name.
-     */
-    public static String getOSName() {
-        return translateOSNameToFolderName(System.getProperty("os.name"));
-    }
-
-    /**
-     * Gets the architecture name.
-     *
-     * @return the architecture name.
-     */
-    public static String getArchName() {
-        // if running Linux on ARM, need to determine ABI of JVM
-        String osArch = System.getProperty("os.arch");
-        if (osArch.startsWith("arm")
-                && System.getProperty("os.name").contains("Linux")) {
-            String javaHome = System.getProperty("java.home");
-            try {
-                // determine if first JVM found uses ARM hard-float ABI
-                String[] cmdarray = {
-                        "/bin/sh",
-                        "-c",
-                        "find '"
-                                + javaHome
-                                + "' -name 'libjvm.so' | head -1 | xargs readelf -A | "
-                                + "grep 'Tag_ABI_VFP_args: VFP registers'" };
-                int exitCode = Runtime.getRuntime().exec(cmdarray).waitFor();
-                if (exitCode == 0) {
-                    return "armhf";
-                }
-            } catch (IOException e) { //NOPMD
-                // ignored: fall back to "arm" arch (soft-float ABI)
-            } catch (InterruptedException e) { //NOPMD
-                // ignored: fall back to "arm" arch (soft-float ABI)
-            }
-        } else {
-            String lc = osArch.toLowerCase(Locale.US);
-            if (archMapping.containsKey(lc)) {
-                return archMapping.get(lc);
-            }
-        }
-        return translateArchNameToFolderName(osArch);
-    }
-
-    /**
-     * Translates the OS name to folder name.
-     *
-     * @param osName the OS name.
-     * @return the folder name.
-     */
-    static String translateOSNameToFolderName(String osName) {
-        if (osName.contains("Windows")) {
-            return "Windows";
-        } else if (osName.contains("Mac")) {
-            return "Mac";
-        } else if (osName.contains("Linux")) {
-            return "Linux";
-        } else if (osName.contains("AIX")) {
-            return "AIX";
-        }
-
-        else {
-            return osName.replaceAll("\\W", "");
-        }
-    }
-
-    /**
-     * Translates the architecture name to folder name.
-     *
-     * @param archName the architecture name.
-     * @return the folder name.
-     */
-    static String translateArchNameToFolderName(String archName) {
-        return archName.replaceAll("\\W", "");
-    }
-}