home *** CD-ROM | disk | FTP | other *** search
- package sun.applet;
-
- import java.io.BufferedInputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.lang.reflect.InvocationTargetException;
- import java.lang.reflect.Method;
- import java.net.MalformedURLException;
- import java.net.URL;
- import java.util.Enumeration;
- import java.util.Hashtable;
- import java.util.Properties;
- import java.util.Vector;
-
- public class Main {
- static File theUserPropertiesFile;
- static final String[][] avDefaultUserProps = new String[][]{{"http.proxyHost", ""}, {"http.proxyPort", "80"}, {"package.restrict.access.sun", "true"}};
- private static AppletMessageHandler amh;
- private boolean debugFlag = false;
- private boolean helpFlag = false;
- private String encoding = null;
- private boolean noSecurityFlag = false;
- private static boolean cmdLineTestFlag;
- private static Vector urlList;
- public static final String theVersion = "1.3";
- // $FF: synthetic field
- static Class array$Ljava$lang$String;
-
- public static void main(String[] var0) {
- Main var1 = new Main();
- int var2 = var1.run(var0);
- if (var2 != 0 || cmdLineTestFlag) {
- System.exit(var2);
- }
-
- }
-
- private int run(String[] var1) {
- try {
- if (var1.length == 0) {
- usage();
- return 0;
- }
-
- int var3;
- for(int var2 = 0; var2 < var1.length; var2 += var3) {
- var3 = this.decodeArg(var1, var2);
- if (var3 == 0) {
- throw new ParseException(this, lookup("main.err.unrecognizedarg", var1[var2]));
- }
- }
- } catch (ParseException var5) {
- System.err.println(((Throwable)var5).getMessage());
- return 1;
- }
-
- if (this.helpFlag) {
- usage();
- return 0;
- } else if (urlList.size() == 0) {
- System.err.println(lookup("main.err.inputfile"));
- return 1;
- } else if (this.debugFlag) {
- return this.invokeDebugger(var1);
- } else {
- if (!this.noSecurityFlag && System.getSecurityManager() == null) {
- this.init();
- }
-
- for(int var6 = 0; var6 < urlList.size(); ++var6) {
- try {
- AppletViewer.parse((URL)urlList.elementAt(var6), this.encoding);
- } catch (IOException var4) {
- System.err.println(lookup("main.err.io", ((Throwable)var4).getMessage()));
- return 1;
- }
- }
-
- return 0;
- }
- }
-
- private static void usage() {
- System.out.println(lookup("usage"));
- }
-
- private int decodeArg(String[] var1, int var2) throws ParseException {
- String var3 = var1[var2];
- int var4 = var1.length;
- if (!"-help".equalsIgnoreCase(var3) && !"-?".equals(var3)) {
- if ("-encoding".equals(var3) && var2 < var4 - 1) {
- if (this.encoding != null) {
- throw new ParseException(this, lookup("main.err.dupoption", var3));
- } else {
- ++var2;
- this.encoding = var1[var2];
- return 2;
- }
- } else if ("-debug".equals(var3)) {
- this.debugFlag = true;
- return 1;
- } else if ("-Xnosecurity".equals(var3)) {
- System.err.println();
- System.err.println(lookup("main.warn.nosecmgr"));
- System.err.println();
- this.noSecurityFlag = true;
- return 1;
- } else if ("-XcmdLineTest".equals(var3)) {
- cmdLineTestFlag = true;
- return 1;
- } else if (var3.startsWith("-")) {
- throw new ParseException(this, lookup("main.err.unsupportedopt", var3));
- } else {
- URL var5 = this.parseURL(var3);
- if (var5 != null) {
- urlList.addElement(var5);
- return 1;
- } else {
- return 0;
- }
- }
- } else {
- this.helpFlag = true;
- return 1;
- }
- }
-
- private URL parseURL(String var1) throws ParseException {
- Object var2 = null;
-
- try {
- URL var5;
- if (var1.indexOf(58) <= 1) {
- var5 = (new File(System.getProperty("user.dir"), var1)).toURL();
- } else if (var1.startsWith("file:") && var1.replace(File.separatorChar, '/').indexOf(47) == -1) {
- String var3 = var1.substring("file:".length());
- if (var3.length() > 0) {
- var5 = (new File(System.getProperty("user.dir"), var3)).toURL();
- } else {
- var5 = new URL(var1);
- }
- } else {
- var5 = new URL(var1);
- }
-
- return var5;
- } catch (MalformedURLException var4) {
- throw new ParseException(this, lookup("main.err.badurl", var1, ((Throwable)var4).getMessage()));
- }
- }
-
- private int invokeDebugger(String[] var1) {
- String[] var2 = new String[var1.length + 1];
- int var3 = 0;
- String var4 = System.getProperty("java.home") + File.separator + "phony";
- var2[var3++] = "-Djava.class.path=" + var4;
- var2[var3++] = "sun.applet.Main";
-
- for(int var5 = 0; var5 < var1.length; ++var5) {
- if (!"-debug".equals(var1[var5])) {
- var2[var3++] = var1[var5];
- }
- }
-
- try {
- Class var6 = Class.forName("com.sun.tools.example.debug.tty.TTY", true, ClassLoader.getSystemClassLoader());
- Method var7 = var6.getDeclaredMethod("main", array$Ljava$lang$String == null ? (array$Ljava$lang$String = class$("[Ljava.lang.String;")) : array$Ljava$lang$String);
- var7.invoke((Object)null, var2);
- return 0;
- } catch (ClassNotFoundException var10) {
- System.err.println(lookup("main.debug.cantfinddebug"));
- return 1;
- } catch (NoSuchMethodException var11) {
- System.err.println(lookup("main.debug.cantfindmain"));
- return 1;
- } catch (InvocationTargetException var12) {
- System.err.println(lookup("main.debug.exceptionindebug"));
- return 1;
- } catch (IllegalAccessException var13) {
- System.err.println(lookup("main.debug.cantaccess"));
- return 1;
- }
- }
-
- private void init() {
- Properties var1 = this.getAVProps();
- ((Hashtable)var1).put("acl.read", "+");
- ((Hashtable)var1).put("acl.read.default", "");
- ((Hashtable)var1).put("acl.write", "+");
- ((Hashtable)var1).put("acl.write.default", "");
- ((Hashtable)var1).put("browser", "sun.applet.AppletViewer");
- ((Hashtable)var1).put("browser.version", "1.06");
- ((Hashtable)var1).put("browser.vendor", "Sun Microsystems Inc.");
- ((Hashtable)var1).put("http.agent", "Java(tm) 2 SDK, Standard Edition v1.3");
- ((Hashtable)var1).put("package.restrict.definition.java", "true");
- ((Hashtable)var1).put("package.restrict.definition.sun", "true");
- ((Hashtable)var1).put("java.version.applet", "true");
- ((Hashtable)var1).put("java.vendor.applet", "true");
- ((Hashtable)var1).put("java.vendor.url.applet", "true");
- ((Hashtable)var1).put("java.class.version.applet", "true");
- ((Hashtable)var1).put("os.name.applet", "true");
- ((Hashtable)var1).put("os.version.applet", "true");
- ((Hashtable)var1).put("os.arch.applet", "true");
- ((Hashtable)var1).put("file.separator.applet", "true");
- ((Hashtable)var1).put("path.separator.applet", "true");
- ((Hashtable)var1).put("line.separator.applet", "true");
- Properties var2 = System.getProperties();
- Enumeration var3 = var2.propertyNames();
-
- while(var3.hasMoreElements()) {
- String var4 = (String)var3.nextElement();
- String var5 = var2.getProperty(var4);
- String var6;
- if ((var6 = (String)var1.setProperty(var4, var5)) != null) {
- System.err.println(lookup("main.warn.prop.overwrite", var4, var6, var5));
- }
- }
-
- System.setProperties(var1);
- if (!this.noSecurityFlag) {
- System.setSecurityManager(new AppletSecurity());
- } else {
- System.err.println(lookup("main.nosecmgr"));
- }
-
- }
-
- private Properties getAVProps() {
- new Properties();
- File var2 = theUserPropertiesFile;
- Properties var1;
- if (var2.exists()) {
- if (var2.canRead()) {
- var1 = this.getAVProps(var2);
- } else {
- System.err.println(lookup("main.warn.cantreadprops", var2.toString()));
- var1 = this.setDefaultAVProps();
- }
- } else {
- File var3 = new File(System.getProperty("user.home"));
- File var4 = new File(var3, ".hotjava");
- var4 = new File(var4, "properties");
- if (var4.exists()) {
- var1 = this.getAVProps(var4);
- } else {
- System.err.println(lookup("main.warn.cantreadprops", var4.toString()));
- var1 = this.setDefaultAVProps();
- }
-
- try {
- FileOutputStream var5 = new FileOutputStream(var2);
- var1.store(var5, lookup("main.prop.store"));
- var5.close();
- } catch (IOException var6) {
- System.err.println(lookup("main.err.prop.cantsave", var2.toString()));
- }
- }
-
- return var1;
- }
-
- private Properties setDefaultAVProps() {
- Properties var1 = new Properties();
-
- for(int var2 = 0; var2 < avDefaultUserProps.length; ++var2) {
- var1.setProperty(avDefaultUserProps[var2][0], avDefaultUserProps[var2][1]);
- }
-
- return var1;
- }
-
- private Properties getAVProps(File var1) {
- Properties var2 = new Properties();
- Properties var3 = new Properties();
-
- try {
- FileInputStream var4 = new FileInputStream(var1);
- var3.load(new BufferedInputStream(var4));
- var4.close();
- } catch (IOException var6) {
- System.err.println(lookup("main.err.prop.cantread", var1.toString()));
- }
-
- for(int var7 = 0; var7 < avDefaultUserProps.length; ++var7) {
- String var5 = var3.getProperty(avDefaultUserProps[var7][0]);
- if (var5 != null) {
- var2.setProperty(avDefaultUserProps[var7][0], var5);
- } else {
- var2.setProperty(avDefaultUserProps[var7][0], avDefaultUserProps[var7][1]);
- }
- }
-
- return var2;
- }
-
- private static String lookup(String var0) {
- return amh.getMessage(var0);
- }
-
- private static String lookup(String var0, String var1) {
- return amh.getMessage(var0, var1);
- }
-
- private static String lookup(String var0, String var1, String var2) {
- return amh.getMessage(var0, var1, var2);
- }
-
- private static String lookup(String var0, String var1, String var2, String var3) {
- return amh.getMessage(var0, var1, var2, var3);
- }
-
- // $FF: synthetic method
- static Class class$(String var0) {
- try {
- return Class.forName(var0);
- } catch (ClassNotFoundException var2) {
- throw new NoClassDefFoundError(((Throwable)var2).getMessage());
- }
- }
-
- static {
- File var0 = new File(System.getProperty("user.home"));
- var0.canWrite();
- theUserPropertiesFile = new File(var0, ".appletviewer");
- amh = new AppletMessageHandler("appletviewer");
- cmdLineTestFlag = false;
- urlList = new Vector(1);
- }
- }
-