home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 1999 October / pcp156b.iso / alphawrk / JAX / JAX50.ZIP / jax.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-03-03  |  13.6 KB  |  410 lines

  1. import java.io.DataInputStream;
  2. import java.io.File;
  3. import java.io.FileInputStream;
  4. import java.io.FileNotFoundException;
  5. import java.io.IOException;
  6. import java.util.Date;
  7. import java.util.StringTokenizer;
  8.  
  9. public class jax {
  10.    public static boolean f185 = false;
  11.    public static c88 f152;
  12.    public static String f184;
  13.    public static String f183;
  14.  
  15.    static {
  16.       boolean var10000 = false;
  17.       var10000 = false;
  18.    }
  19.  
  20.    public static void m158(String var0) {
  21.       f152.m158(var0);
  22.    }
  23.  
  24.    public static void m13(String var0) {
  25.       f152.m13(var0);
  26.    }
  27.  
  28.    public static void m49(String var0) {
  29.       f152.m49(var0);
  30.    }
  31.  
  32.    public static void m293(String var0, boolean var1) {
  33.       if (var1 || !var0.startsWith("java.") && (f185 || !var0.startsWith("sunw.") || var0.indexOf("hotjava") != -1 || var0.indexOf("html") != -1) && (f185 || !var0.startsWith("com.ms.")) && (f185 || !var0.startsWith("sun.")) && (f184 == null || var0.startsWith(f184))) {
  34.          try {
  35.             c74.m45(var0);
  36.          } catch (NoClassDefFoundError var3) {
  37.             f152.m194("cannot find class " + ((Throwable)var3).getMessage());
  38.          }
  39.  
  40.       }
  41.    }
  42.  
  43.    public static void m294() {
  44.       try {
  45.          FileInputStream var0 = new FileInputStream(new File(f183 + ".fcn"));
  46.          DataInputStream var1 = new DataInputStream(var0);
  47.          int var2 = 1;
  48.  
  49.          while(true) {
  50.             String var3 = var1.readLine();
  51.             if (var3 == null) {
  52.                return;
  53.             }
  54.  
  55.             var3 = var3.trim();
  56.             if (var3.length() != 0 && Character.isJavaIdentifierStart(var3.charAt(0))) {
  57.                m293(var3, true);
  58.  
  59.                c86 var4;
  60.                try {
  61.                   var4 = (c86)c74.m45(var3);
  62.                } catch (Exception var6) {
  63.                   var4 = null;
  64.                }
  65.  
  66.                if (var4 == null) {
  67.                   f152.m194("at line " + var2 + " in file " + f183 + ".fcn, cannot find class \"" + var3 + "\"\n");
  68.                   ++var2;
  69.                } else {
  70.                   if (c99.f97) {
  71.                      m13("Found fixed class name class \"" + var4.f10 + "\"");
  72.                   }
  73.  
  74.                   var4.m168();
  75.                   var4.m170();
  76.                   ++var2;
  77.                }
  78.             }
  79.          }
  80.       } catch (FileNotFoundException var7) {
  81.          f152.m194("no \"" + f183 + ".fcn\" file with fixed class names");
  82.       } catch (IOException var8) {
  83.          f152.m194("error reading \"" + f183 + ".fcn\" file.\n");
  84.       }
  85.  
  86.    }
  87.  
  88.    public static void m295() {
  89.       try {
  90.          FileInputStream var0 = new FileInputStream(new File(f183 + ".daf"));
  91.          DataInputStream var1 = new DataInputStream(var0);
  92.          int var2 = 1;
  93.  
  94.          while(true) {
  95.             String var3 = var1.readLine();
  96.             if (var3 == null) {
  97.                return;
  98.             }
  99.  
  100.             var3 = var3.trim();
  101.             if (var3.length() != 0 && Character.isJavaIdentifierStart(var3.charAt(0))) {
  102.                StringTokenizer var4 = new StringTokenizer(var3, " ");
  103.                String var5 = (String)var4.nextElement();
  104.                String var6 = (String)var4.nextElement();
  105.                String var7 = (String)var4.nextElement();
  106.  
  107.                c90 var8;
  108.                try {
  109.                   var8 = (c90)c74.m29(var5, var6, var7);
  110.                } catch (Exception var10) {
  111.                   var8 = null;
  112.                }
  113.  
  114.                if (var8 == null) {
  115.                   f152.m194("file \"" + f183 + ".daf\" at line " + var2 + " no such field found: " + var5 + "." + var6 + " " + var7);
  116.                } else {
  117.                   m13("readDynamicallyAccessedFieldNames: read \"" + var5 + "." + var6 + " " + var7 + "\"");
  118.                   var8.m202();
  119.                }
  120.  
  121.                ++var2;
  122.             }
  123.          }
  124.       } catch (FileNotFoundException var11) {
  125.          f152.m194("no \"" + f183 + ".daf\" file with names of dynamically accessed fields\n");
  126.       } catch (IOException var12) {
  127.          f152.m194("error reading \"" + f183 + ".daf\" file.\n");
  128.       }
  129.  
  130.    }
  131.  
  132.    public static void m296() {
  133.       try {
  134.          FileInputStream var0 = new FileInputStream(new File(f183 + ".dim"));
  135.          DataInputStream var1 = new DataInputStream(var0);
  136.          int var2 = 1;
  137.  
  138.          while(true) {
  139.             String var3 = var1.readLine();
  140.             if (var3 == null) {
  141.                return;
  142.             }
  143.  
  144.             var3 = var3.trim();
  145.             if (var3.length() != 0 && Character.isJavaIdentifierStart(var3.charAt(0))) {
  146.                StringTokenizer var4 = new StringTokenizer(var3, " ");
  147.                String var5 = (String)var4.nextElement();
  148.                String var6 = (String)var4.nextElement();
  149.                String var7 = (String)var4.nextElement();
  150.  
  151.                c91 var8;
  152.                try {
  153.                   var8 = (c91)c74.m31(var5, var6, var7);
  154.                } catch (Exception var10) {
  155.                   var8 = null;
  156.                }
  157.  
  158.                if (var8 == null) {
  159.                   f152.m194("file \"" + f183 + ".dim\" at line " + var2 + " no such method found: " + var5 + "." + var6 + " " + var7);
  160.                } else {
  161.                   m13("readDynamicallyCalledMethodNames: read \"" + var5 + "." + var6 + var7 + "\"");
  162.                   var8.m214();
  163.                }
  164.  
  165.                ++var2;
  166.             }
  167.          }
  168.       } catch (FileNotFoundException var11) {
  169.          f152.m194("no \"" + f183 + ".dim\" file with names of dynamically invoked methods");
  170.       } catch (IOException var12) {
  171.          f152.m194("error reading \"" + f183 + ".dim\" file.\n");
  172.       }
  173.  
  174.    }
  175.  
  176.    public static void m297() {
  177.       try {
  178.          FileInputStream var0 = new FileInputStream(new File(f183 + ".dlc"));
  179.          DataInputStream var1 = new DataInputStream(var0);
  180.          int var2 = 1;
  181.  
  182.          while(true) {
  183.             String var3 = var1.readLine();
  184.             if (var3 == null) {
  185.                return;
  186.             }
  187.  
  188.             m293(var3, true);
  189.             c86 var4 = null;
  190.  
  191.             try {
  192.                var4 = (c86)c74.m45(var3);
  193.             } catch (NoClassDefFoundError var6) {
  194.                f152.m194("at line " + var2 + " in file " + f183 + ".dlc, cannot find class \"" + ((Throwable)var6).getMessage() + "\"");
  195.             }
  196.  
  197.             if (var4 == null) {
  198.                ++var2;
  199.             } else {
  200.                f152.f131 = true;
  201.                m13("Found dynamically loaded class \"" + var4.f10 + "\"");
  202.                var4.m172();
  203.                ++var2;
  204.             }
  205.          }
  206.       } catch (FileNotFoundException var7) {
  207.          f152.m194("no \"" + f183 + ".dlc\" file with dynamically loaded class names");
  208.       } catch (IOException var8) {
  209.          f152.m194("error reading \"" + f183 + ".dlc\" file.\n");
  210.       }
  211.  
  212.    }
  213.  
  214.    private static final void m298() {
  215.       m49("\n" + "\n" + "    " + "jax" + " generates three files: two zip files and a log file.\n" + "    The zip files are:\n" + "      \"<class name>_orig." + "jax" + ".zip\" contains the uncompressed, and\n" + "      \"<class name>." + "jax" + ".zip\"      contains the compressed program.\n" + "    The log file is named \"" + "<class name>_jax.log\".\n" + "\n" + "    " + "jax" + " looks for 3 optional input files:\n" + "      Create a file \"<class name>_jax.dlc\" in the current \n" + "      directory containing the names of all the \n" + "      classes that are loaded dynamically.\n" + "      Example:\n" + "      \n" + "          com.acme.ClassOne\n" + "          com.acme.ClassTwo\n" + "          com.acme.ClassThree\n" + "      \n" + "      Create a file \"<class name>_jax.dim\" in the current \n" + "      directory containing the names of all the \n" + "      methods that are called using reflection\n" + "      Pattern: <classname> <methodname> " + " <descriptor> using JVM types.\n" + "      Example:\n" + "      \n" + "          com.acme.ClassFour specialMethod1 (I)V\n" + "          com.acme.ClassFour specialMethod2 (III)I\n" + "          com.acme.ClassFour <init> " + "(Ljava/lang/Object;)V\n" + "    \n" + "      Create a file \"<class name>_jax.daf\" in the current \n" + "      directory containing the names of all the \n" + "      fields that are accessed using reflection\n" + "      Pattern: <classname> <fieldname> " + " <descriptor> using JVM types.\n" + "      Example:\n" + "      \n" + "          com.acme.ClassFive specialField1 (I)V\n" + "          com.acme.ClassSix specialField2 (III)I\n" + "          com.acme.ClassSeven specialField3 " + "Ljava/lang/Object;\n" + "    \n" + "\n" + "    Use the enclosed \"reflect\" program to \n" + "    find out all classes that are dynamically loaded.\n" + "    Example:\n" + "    \n" + "        java reflect MyApplet.zip\n" + "    \n" + "\n" + "    Use the enclosed \"methods\" and \"fields\" programs to \n" + "    get a listing of available methods and fields.\n" + "    Example:\n" + "    \n" + "        java methods java.lang.String\n" + "        java fields java.lang.String\n" + "    \n" + "    See http://www.alphaWorks.ibm.com/formula/jax for more information.\n" + "    ");
  216.    }
  217.  
  218.    private static final void m299() {
  219.       m49("\n" + "Usage:  " + "jax" + " [<-options>] <class name>\n" + "  Where:\n" + "    <class name>:         the starting class name\n" + "    <-options> are:\n" + "      -version:                   show version number\n" + "      -help:                      show help information\n" + "" + "      -notransform:               don't merge/eliminate classes\n" + "      -noinline:                  don't inline methods\n" + "      -nodevirtualize:            don't make virtual method calls nonvirtual\n" + "      -noobfuscate:               don't shorten internal names\n" + "      -noverify:                  don't verify the compressed application\n" + "      -nocompatibleserialization: don't preserve (de)serialization " + "compatibility \n" + "                                  between original/JAXed versions of the " + "application\n" + "" + "\n");
  220.       System.exit(1);
  221.    }
  222.  
  223.    public static void m300() {
  224.       m13("");
  225.       m13("Java Execution Environment Information:");
  226.       m13("=================================================================");
  227.       m13("creation time      = " + new Date());
  228.       m13("os.name            = " + System.getProperty("os.name"));
  229.       m13("os.arch            = " + System.getProperty("os.arch"));
  230.       m13("os.version         = " + System.getProperty("os.version"));
  231.       m13("java.version       = " + System.getProperty("java.version"));
  232.       m13("java.vendor        = " + System.getProperty("java.vendor"));
  233.       m13("java.vendor.url    = " + System.getProperty("java.vendor.url"));
  234.       m13("java.class.version = " + System.getProperty("java.class.version"));
  235.       m13("java.class.path    = " + System.getProperty("java.class.path"));
  236.       m13("java.home          = " + System.getProperty("java.home"));
  237.       m13("java_compiler      = " + System.getProperty("java.compiler"));
  238.       m13("=================================================================");
  239.       m13("");
  240.    }
  241.  
  242.    public static void m301() {
  243.       m158("\nOptions: " + (f152.f129 ? "obfuscate " : "noobfuscate ") + (f152.f128 ? "transform " : "notransform ") + (f152.f126 ? "verify " : "") + (f152.f127 ? "devirtualize " : "nodevirtualize ") + "" + (f152.f124 ? "inline " : "noinline ") + (f152.f127 ? "compatibleserialization " : "nocompatibleserialization ") + "\n");
  244.    }
  245.  
  246.    public static void m302() {
  247.       Date var0 = new Date();
  248.       Date var1 = new Date("Jun 3 1999");
  249.       if (var0.getTime() > var1.getTime()) {
  250.          m158("");
  251.          m158("---------------------------------------------------");
  252.          m158("The license for this free software from IBM has");
  253.          m158("expired. A new version with major improvements ");
  254.          m158("and bug fixes may have been released. See: ");
  255.          m158("http://www.alphaWorks.ibm.com/formula/jax ");
  256.          m158("---------------------------------------------------");
  257.          m158("");
  258.       } else {
  259.          m158("");
  260.          m158("Your free license expires on " + "Jun 3 1999" + ". After this date,");
  261.          m158("download a new version with " + "major improvements and bug fixes.");
  262.       }
  263.  
  264.    }
  265.  
  266.    private static final void m303(String var0) {
  267.       if (var0.equals("version")) {
  268.          System.out.println("jax V5.0-Wednesday-Mar-3-1999 Copyright IBM 1997-1999. All rights reserved.");
  269.          System.exit(1);
  270.       }
  271.  
  272.       if (var0.equals("obfuscate")) {
  273.          f152.f129 = true;
  274.       } else if (var0.equals("noobfuscate")) {
  275.          f152.f129 = false;
  276.       } else if (var0.equals("keeppackages")) {
  277.          c99.f153 = true;
  278.       } else {
  279.          if (var0.equals("help")) {
  280.             m298();
  281.             System.exit(5);
  282.          }
  283.  
  284.          if (var0.equals("noverify")) {
  285.             f152.f126 = false;
  286.          } else if (var0.equals("devirtualize")) {
  287.             f152.f127 = true;
  288.          } else if (var0.equals("nodevirtualize")) {
  289.             f152.f127 = false;
  290.          } else if (var0.equals("inline")) {
  291.             f152.f124 = true;
  292.          } else if (var0.equals("noinline")) {
  293.             f152.f124 = false;
  294.          } else if (var0.equals("transform")) {
  295.             f152.f128 = true;
  296.          } else if (var0.equals("notransform")) {
  297.             f152.f128 = false;
  298.          } else if (var0.equals("compatibleserialization")) {
  299.             f152.f123 = true;
  300.          } else if (var0.equals("nocompatibleserialization")) {
  301.             f152.f123 = false;
  302.          } else {
  303.             m49("*** unknown option \"-" + var0 + "\"");
  304.             m299();
  305.          }
  306.       }
  307.    }
  308.  
  309.    private static final void m304(String[] var0) {
  310.       f184 = null;
  311.  
  312.       for(int var1 = 0; var1 < var0.length; ++var1) {
  313.          if (var0[var1].startsWith("-")) {
  314.             m303(var0[var1].substring(1));
  315.          } else if (f152.f136 == null) {
  316.             f152.m181(var0[var1]);
  317.          } else if (f184 == null) {
  318.             f184 = var0[var1];
  319.          } else {
  320.             m49("\n*** too many arguments that are not options\n");
  321.             m299();
  322.          }
  323.       }
  324.  
  325.       if (f152.f136 == null) {
  326.          m49("\n*** Must specify class name\n");
  327.          m299();
  328.       }
  329.  
  330.       if (f152.f136.indexOf(File.separator) != -1) {
  331.          m49("\nPlease specify class with \".\" separators\n");
  332.          m299();
  333.       }
  334.  
  335.       if (!f152.f129 && c99.f153) {
  336.          m49("\nSpecified option -keepPackages only makes " + "sense when \nused in combination with obfuscation.");
  337.          m49("\nPlease do not specify -noobfuscate.");
  338.          m299();
  339.       }
  340.  
  341.       m49("ProgramName is \"" + f152.f136 + "\"");
  342.       m49("JDK used is " + System.getProperty("java.vendor") + " version " + System.getProperty("java.version"));
  343.    }
  344.  
  345.    private static final void m235(String[] var0) {
  346.       f152 = new c88(0);
  347.       m304(var0);
  348.       m49("");
  349.       m49("jax V5.0-Wednesday-Mar-3-1999 Copyright IBM 1997-1999. All rights reserved.");
  350.       m49("Info inside IBM:  " + "http://w3.watson.ibm.com/~laffra/jax");
  351.       m49("Info outside IBM: " + "http://www.alphaWorks.ibm.com/formula/jax");
  352.       m49("");
  353.       m302();
  354.       m13("");
  355.       m13("jax V5.0-Wednesday-Mar-3-1999 Copyright IBM 1997-1999. All rights reserved.");
  356.       m13("Info inside IBM:  " + "http://w3.watson.ibm.com/~laffra/jax");
  357.       m13("Info outside IBM: " + "http://www.alphaWorks.ibm.com/formula/jax");
  358.       m13("");
  359.       m301();
  360.       m300();
  361.       long var1 = System.currentTimeMillis();
  362.       c9.f32 = f152.f32;
  363.       c74.f32 = f152.f32;
  364.       c13.f32 = f152.f32;
  365.       c59.f32 = f152.f32;
  366.       m49("loading, this may take a while");
  367.       m49(" ");
  368.       c9.f36 = true;
  369.       c99.m245(f152);
  370.       f183 = f152.f135 + "_" + "jax";
  371.       m297();
  372.       m294();
  373.       m293(f152.f136, false);
  374.       m296();
  375.       m295();
  376.       if (c74.f106.m48()) {
  377.          m158("\n" + "========================================================\n" + "Jax: could not find class " + f152.f136 + "\n" + "please check your spelling and/or classpath\n" + "========================================================\n" + "");
  378.          System.exit(7);
  379.       }
  380.  
  381.       c9.f36 = false;
  382.       System.out.print("\r                                      \r");
  383.       m13(" ");
  384.       StringBuffer var10000 = (new StringBuffer()).append("finished loading, total ");
  385.       c12 var6 = c74.f106;
  386.       m158(var10000.append(var6.f7).append(" classes").toString());
  387.       c99.m235(var0);
  388.       f152.m179(f152.f132);
  389.       f152.m178();
  390.       long var3 = System.currentTimeMillis();
  391.       m158("\nTime used for analysis: " + (var3 - var1) / 1000L + " seconds.\n");
  392.       m158("\nThanks for using JAX, a technology preview from IBM.");
  393.       m158("Please email your feedback to: jax@watson.ibm.com");
  394.       m158("");
  395.       System.exit(0);
  396.    }
  397.  
  398.    public static void main(String[] var0) {
  399.       try {
  400.          m235(var0);
  401.       } catch (Exception var2) {
  402.          m13(((Throwable)var2).toString());
  403.          ((Throwable)var2).printStackTrace(f152.f32);
  404.          System.out.println(((Throwable)var2).toString());
  405.          ((Throwable)var2).printStackTrace(System.out);
  406.       }
  407.  
  408.    }
  409. }
  410.