home *** CD-ROM | disk | FTP | other *** search
- package com.zerog.ia.download.utility;
-
- import com.zerog.ia.download.utility.nativelib.unix.Environment;
- import java.io.File;
- import java.util.StringTokenizer;
- import netscape.security.PrivilegeManager;
-
- public class Gestalt {
- public static String NETSCAPE_VM = "netscape";
- public static String MICROSOFT_VM = "microsoft";
- public static String SUN_VM = "sun";
- public static String APPLE_VM = "apple";
- public static String IBM_VM = "ibm";
- public static String WINDOWS_PLATFORM = "windows";
- public static String MAC_OS_PLATFORM = "mac os";
- public static String MAC_OS_X_PLATFORM = "mac os x";
- public static String SOLARIS_PLATFORM = "solaris";
- public static String HPUX_PLATFORM = "hp-ux";
- public static String LINUX_PLATFORM = "linux";
- public static String DGUX_PLATFORM = "dg-ux";
- public static String IRIX_PLATFORM = "irix";
- public static String AIX_PLATFORM = "aix";
- public static String OS2_PLATFORM = "os/2";
- public static String NETSCAPE_FILE_ACCESS = "UniversalFileAccess";
- public static String NETSCAPE_EXEC_ACCESS = "UniversalExecAccess";
- public static String NETSCAPE_PROPERTY_READ = "UniversalPropertyRead";
- private static String vmVendor;
- private static String platform;
- private static String vmVersion;
- private static String mrjVersion;
- private static boolean determinedAbleToCreateFiles = false;
- private static boolean determinedAbleToExecuteFiles = false;
- private static boolean determinedAbleToReadSystemProperties = false;
- private static boolean ableToCreateFiles = false;
- private static boolean ableToExecuteFiles = false;
- private static boolean ableToReadSystemProperties = false;
- private static boolean ableToBeSuperUser = false;
- private static boolean pathChecked;
- private static boolean checkPathResult;
-
- public static String getVMVendor() {
- if (vmVendor == null) {
- String var0 = System.getProperty("java.vendor").toLowerCase();
- if (var0.indexOf("netscape") >= 0) {
- vmVendor = NETSCAPE_VM;
- } else if (var0.indexOf("microsoft") >= 0) {
- vmVendor = MICROSOFT_VM;
- } else if (var0.indexOf("sun") < 0 && var0.indexOf("java") < 0) {
- if (var0.indexOf("apple") < 0 && var0.indexOf("mac") < 0) {
- if (var0.indexOf("ibm") >= 0) {
- vmVendor = IBM_VM;
- } else {
- vmVendor = var0.toLowerCase();
- }
- } else {
- vmVendor = APPLE_VM;
- }
- } else {
- vmVendor = SUN_VM;
- }
- }
-
- return vmVendor;
- }
-
- public static String getVMVersion() {
- if (vmVersion == null) {
- vmVersion = System.getProperty("java.version").toLowerCase();
- }
-
- return vmVersion;
- }
-
- public static String getMRJVersion() {
- if (mrjVersion == null) {
- mrjVersion = System.getProperty("mrj.version").toLowerCase();
- }
-
- return mrjVersion;
- }
-
- public static String getPlatform() {
- if (platform == null) {
- String var0 = System.getProperty("os.name").toLowerCase();
- if (var0.indexOf("win") != -1) {
- platform = WINDOWS_PLATFORM;
- } else if (var0.indexOf("apple") == -1 && var0.indexOf("mac") == -1) {
- if (var0.indexOf("sun") == -1 && var0.indexOf("solaris") == -1) {
- if (var0.indexOf("linux") != -1) {
- platform = LINUX_PLATFORM;
- } else if (var0.indexOf("hp") != -1) {
- platform = HPUX_PLATFORM;
- } else if (var0.indexOf("aix") != -1) {
- platform = AIX_PLATFORM;
- } else {
- platform = var0.toLowerCase();
- }
- } else {
- platform = SOLARIS_PLATFORM;
- }
- } else if (var0.indexOf("x") != -1) {
- platform = MAC_OS_X_PLATFORM;
- } else {
- platform = MAC_OS_PLATFORM;
- }
- }
-
- return platform;
- }
-
- public static boolean isThisPlatformUnix() {
- if (getPlatform().equals(SOLARIS_PLATFORM)) {
- return true;
- } else if (getPlatform().equals(HPUX_PLATFORM)) {
- return true;
- } else if (getPlatform().equals(LINUX_PLATFORM)) {
- return true;
- } else if (getPlatform().equals(IRIX_PLATFORM)) {
- return true;
- } else if (getPlatform().equals(AIX_PLATFORM)) {
- return true;
- } else if (getPlatform().equals(DGUX_PLATFORM)) {
- return true;
- } else if (getPlatform().equals(MAC_OS_X_PLATFORM)) {
- return true;
- } else {
- return getPlatform().indexOf("unix") >= 0;
- }
- }
-
- public static boolean isSupportedVM() {
- if (getPlatform().equals(MAC_OS_PLATFORM)) {
- if (getVMVendor().equals(MICROSOFT_VM) && getVMVersion().equals("1.1.4")) {
- return false;
- }
- } else if (getPlatform().equals(SOLARIS_PLATFORM)) {
- if (getVMVendor().equals(NETSCAPE_VM) && getVMVersion().equals("1.02")) {
- return false;
- }
- } else if (getPlatform().equals(OS2_PLATFORM)) {
- if (getVMVendor().equals(IBM_VM) && getVMVersion().equals("1.1.6")) {
- return false;
- }
- } else if (getPlatform().equals(MAC_OS_X_PLATFORM) && getMRJVersion().equals("3.0")) {
- return false;
- }
-
- return true;
- }
-
- public static boolean isNetscapeSecurityModelAvailable() {
- if (getVMVendor().equals(NETSCAPE_VM)) {
- return !getPlatform().equals(MAC_OS_PLATFORM);
- } else {
- return false;
- }
- }
-
- public static boolean vmCanSupportUnsecureActivities() {
- if (getVMVendor().equals(MICROSOFT_VM)) {
- return getPlatform().equals(WINDOWS_PLATFORM);
- } else {
- if (getVMVendor().equals(NETSCAPE_VM)) {
- if (getPlatform().equals(WINDOWS_PLATFORM)) {
- return true;
- }
-
- if (getPlatform().equals(SOLARIS_PLATFORM)) {
- return true;
- }
- } else if (getVMVendor().equals(APPLE_VM)) {
- return getPlatform().equals(MAC_OS_PLATFORM) || getPlatform().equals(MAC_OS_X_PLATFORM);
- }
-
- return false;
- }
- }
-
- public static boolean isAbleToReadSystemProperties() {
- if (!determinedAbleToReadSystemProperties) {
- if (isNetscapeSecurityModelAvailable()) {
- try {
- PrivilegeManager.enablePrivilege("UniversalPropertyAccess");
- ableToReadSystemProperties = true;
- } catch (Exception var2) {
- ableToReadSystemProperties = false;
- }
- } else if (getVMVendor().equals(MICROSOFT_VM) || getVMVendor().equals(APPLE_VM)) {
- try {
- String var0 = System.getProperty("user.home");
- ableToReadSystemProperties = true;
- } catch (Throwable var1) {
- ableToReadSystemProperties = false;
- }
- }
-
- determinedAbleToReadSystemProperties = true;
- }
-
- return ableToReadSystemProperties;
- }
-
- public static boolean isAbleToSendEmail() {
- return getVMVendor() != NETSCAPE_VM;
- }
-
- public static boolean checkPathForVM() {
- if (getPlatform() == MAC_OS_X_PLATFORM) {
- pathChecked = true;
- checkPathResult = true;
- }
-
- if (!pathChecked && isThisPlatformUnix()) {
- pathChecked = true;
-
- try {
- PrivilegeManager.getPrivilegeManager();
- PrivilegeManager.enablePrivilege(NETSCAPE_FILE_ACCESS);
- } catch (Throwable var8) {
- System.err.println("Not permitted to access system files:\n " + var8);
- checkPathResult = false;
- return checkPathResult;
- }
-
- try {
- PrivilegeManager.getPrivilegeManager();
- PrivilegeManager.enablePrivilege(NETSCAPE_EXEC_ACCESS);
- } catch (Throwable var7) {
- System.err.println("Not permitted to exec files:\n " + var7);
- checkPathResult = false;
- return checkPathResult;
- }
-
- Object var0 = null;
- boolean var1 = false;
-
- try {
- var9 = Environment.getInstance().getValue("PATH");
- } catch (Throwable var6) {
- System.err.println("Unable to verify system PATH:\n " + var6);
- checkPathResult = false;
- return checkPathResult;
- }
-
- if (var9 == null || var9.trim().equals("")) {
- return false;
- }
-
- System.err.println("PATH = " + var9);
- StringTokenizer var2 = new StringTokenizer(var9, ":");
-
- while(!checkPathResult && var2.hasMoreTokens()) {
- String var3 = var2.nextToken();
- File var4 = new File(var3, "jre");
- File var5 = new File(var3, "java");
- if (var4.exists() || var5.exists()) {
- System.err.println("Java has been found on the system PATH");
- checkPathResult = true;
- }
- }
-
- if (!checkPathResult) {
- System.err.println("Java could not be found on the system PATH");
- }
- }
-
- return checkPathResult;
- }
-
- public static boolean isAbleToCreateFiles() {
- if (!determinedAbleToCreateFiles) {
- if (isNetscapeSecurityModelAvailable()) {
- try {
- PrivilegeManager.enablePrivilege(NETSCAPE_FILE_ACCESS);
- ableToCreateFiles = true;
- } catch (Exception var2) {
- ableToCreateFiles = false;
- }
- } else if (getVMVendor().equals(MICROSOFT_VM) || getVMVendor().equals(APPLE_VM)) {
- try {
- String var0 = System.getProperty("user.home");
- ableToCreateFiles = true;
- } catch (Throwable var1) {
- ableToCreateFiles = false;
- }
- }
-
- determinedAbleToCreateFiles = true;
- }
-
- return ableToCreateFiles;
- }
-
- public static boolean isAbleToExecuteFiles() {
- if (!determinedAbleToExecuteFiles) {
- if (isNetscapeSecurityModelAvailable()) {
- try {
- PrivilegeManager.enablePrivilege(NETSCAPE_EXEC_ACCESS);
- ableToExecuteFiles = true;
- } catch (Exception var2) {
- ableToExecuteFiles = false;
- }
- } else if (!getVMVendor().equals(MICROSOFT_VM) && !getVMVendor().equals(APPLE_VM)) {
- if (getVMVendor().equals(SUN_VM)) {
- ableToExecuteFiles = true;
- }
- } else {
- try {
- String var0 = System.getProperty("user.home");
- ableToExecuteFiles = true;
- } catch (Throwable var1) {
- ableToExecuteFiles = false;
- }
- }
-
- determinedAbleToExecuteFiles = true;
- }
-
- return ableToExecuteFiles;
- }
-
- static {
- if (isNetscapeSecurityModelAvailable()) {
- isAbleToExecuteFiles();
- isAbleToCreateFiles();
- isAbleToReadSystemProperties();
- }
-
- pathChecked = false;
- checkPathResult = false;
- }
- }
-