org.eclipse.equinox.p2.jarprocessor_1.0.200.v20110808-1657

  296	10	12	e	Exception
    //   121	10	13	e	Exception
    //   485	16	14	localObject	Object
    // Exception table:
    //   from	to	target	type
    //   89	118	121	java/lang/Exception
    //   264	293	296	java/lang/Exception
    //   6	485	485	finally
  }
  
  private String recursionEffect(String entryName)
  {
    String result = null;
    for (Iterator iter = steps.iterator(); iter.hasNext();)
    {
      IProcessStep step = (IProcessStep)iter.next();
      
      result = step.recursionEffect(entryName);
      if (result != null) {
        entryName = result;
      }
    }
    return result;
  }
  
  /* Error */
  private void extractEntries(JarFile jar, File tempDir, Map data, Properties inf)
    throws IOException
  {
    // Byte code:
    //   0: aload 4
    //   2: ifnull +102 -> 104
    //   5: aload 4
    //   7: ldc_w 196
    //   10: invokevirtual 424	java/util/Properties:containsKey	(Ljava/lang/Object;)Z
    //   13: ifeq +91 -> 104
    //   16: aload 4
    //   18: ldc_w 196
    //   21: invokevirtual 425	java/util/Properties:getProperty	(Ljava/lang/String;)Ljava/lang/String;
    //   24: astore 5
    //   26: aload 5
    //   28: invokestatic 405	java/lang/Boolean:valueOf	(Ljava/lang/String;)Ljava/lang/Boolean;
    //   31: invokevirtual 404	java/lang/Boolean:booleanValue	()Z
    //   34: ifeq +69 -> 103
    //   37: aload_0
    //   38: getfield 380	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessor:verbose	Z
    //   41: ifeq +62 -> 103
    //   44: iconst_0
    //   45: istore 6
    //   47: goto +15 -> 62
    //   50: getstatic 377	java/lang/System:out	Ljava/io/PrintStream;
    //   53: ldc_w 189
    //   56: invokevirtual 402	java/io/PrintStream:print	(Ljava/lang/String;)V
    //   59: iinc 6 1
    //   62: iload 6
    //   64: aload_0
    //   65: getfield 378	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessor:depth	I
    //   68: if_icmple -18 -> 50
    //   71: getstatic 377	java/lang/System:out	Ljava/io/PrintStream;
    //   74: new 212	java/lang/StringBuffer
    //   77: dup
    //   78: ldc_w 190
    //   81: invokespecial 414	java/lang/StringBuffer:<init>	(Ljava/lang/String;)V
    //   84: aload_1
    //   85: invokevirtual 432	java/util/jar/JarFile:getName	()Ljava/lang/String;
    //   88: invokevirtual 417	java/lang/StringBuffer:append	(Ljava/lang/String;)Ljava/lang/StringBuffer;
    //   91: ldc_w 195
    //   94: invokevirtual 417	java/lang/StringBuffer:append	(Ljava/lang/String;)Ljava/lang/StringBuffer;
    //   97: invokevirtual 413	java/lang/StringBuffer:toString	()Ljava/lang/String;
    //   100: invokevirtual 403	java/io/PrintStream:println	(Ljava/lang/String;)V
    //   103: return
    //   104: aload_1
    //   105: invokevirtual 433	java/util/jar/JarFile:entries	()Ljava/util/Enumeration;
    //   108: astore 5
    //   110: aload 5
    //   112: invokeinterface 462 1 0
    //   117: ifeq +377 -> 494
    //   120: aload 5
    //   122: invokeinterface 463 1 0
    //   127: checkcast 223	java/util/jar/JarEntry
    //   130: astore 6
    //   132: goto +357 -> 489
    //   135: aload 6
    //   137: invokevirtual 428	java/util/jar/JarEntry:getName	()Ljava/lang/String;
    //   140: astore 7
    //   142: aload_0
    //   143: aload 7
    //   145: invokespecial 456	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessor:recursionEffect	(Ljava/lang/String;)Ljava/lang/String;
    //   148: astore 8
    //   150: aload 8
    //   152: ifnull +311 -> 463
    //   155: aload_0
    //   156: getfield 380	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessor:verbose	Z
    //   159: ifeq +54 -> 213
    //   162: iconst_0
    //   163: istore 9
    //   165: goto +15 -> 180
    //   168: getstatic 377	java/lang/System:out	Ljava/io/PrintStream;
    //   171: ldc_w 189
    //   174: invokevirtual 402	java/io/PrintStream:print	(Ljava/lang/String;)V
    //   177: iinc 9 1
    //   180: iload 9
    //   182: aload_0
    //   183: getfield 378	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessor:depth	I
    //   186: if_icmple -18 -> 168
    //   189: getstatic 377	java/lang/System:out	Ljava/io/PrintStream;
    //   192: new 212	java/lang/StringBuffer
    //   195: dup
    //   196: ldc_w 192
    //   199: invokespecial 414	java/lang/StringBuffer:<init>	(Ljava/lang/String;)V
    //   202: aload 7
    //   204: invokevirtual 417	java/lang/StringBuffer:append	(Ljava/lang/String;)Ljava/lang/StringBuffer;
    //   207: invokevirtual 413	java/lang/StringBuffer:toString	()Ljava/lang/String;
    //   210: invokevirtual 403	java/io/PrintStream:println	(Ljava/lang/String;)V
    //   213: new 202	java/io/File
    //   216: dup
    //   217: aload_2
    //   218: aload 7
    //   220: invokespecial 397	java/io/File:<init>	(Ljava/io/File;Ljava/lang/String;)V
    //   223: astore 9
    //   225: aload 9
    //   227: invokevirtual 391	java/io/File:getParentFile	()Ljava/io/File;
    //   230: astore 10
    //   232: aload 10
    //   234: invokevirtual 388	java/io/File:exists	()Z
    //   237: ifne +9 -> 246
    //   240: aload 10
    //   242: invokevirtual 389	java/io/File:mkdirs	()Z
    //   245: pop
    //   246: aconst_null
    //   247: astore 11
    //   249: aconst_null
    //   250: astore 12
    //   252: aload_1
    //   253: aload 6
    //   255: invokevirtual 434	java/util/jar/JarFile:getInputStream	(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
    //   258: astore 11
    //   260: new 201	java/io/BufferedOutputStream
    //   263: dup
    //   264: new 204	java/io/FileOutputStream
    //   267: dup
    //   268: aload 9
    //   270: invokespecial 399	java/io/FileOutputStream:<init>	(Ljava/io/File;)V
    //   273: invokespecial 385	java/io/BufferedOutputStream:<init>	(Ljava/io/OutputStream;)V
    //   276: astore 12
    //   278: aload 11
    //   280: aload 12
    //   282: iconst_1
    //   283: invokestatic 445	org/eclipse/equinox/internal/p2/jarprocessor/Utils:transferStreams	(Ljava/io/InputStream;Ljava/io/OutputStream;Z)V
    //   286: goto +18 -> 304
    //   289: astore 13
    //   291: aload 11
    //   293: invokestatic 444	org/eclipse/equinox/internal/p2/jarprocessor/Utils:close	(Ljava/lang/Object;)V
    //   296: aload 12
    //   298: invokestatic 444	org/eclipse/equinox/internal/p2/jarprocessor/Utils:close	(Ljava/lang/Object;)V
    //   301: aload 13
    //   303: athrow
    //   304: aload 11
    //   306: invokestatic 444	org/eclipse/equinox/internal/p2/jarprocessor/Utils:close	(Ljava/lang/Object;)V
    //   309: aload 12
    //   311: invokestatic 444	org/eclipse/equinox/internal/p2/jarprocessor/Utils:close	(Ljava/lang/Object;)V
    //   314: aload 9
    //   316: aload 6
    //   318: invokevirtual 426	java/util/jar/JarEntry:getTime	()J
    //   321: invokevirtual 390	java/io/File:setLastModified	(J)Z
    //   324: pop
    //   325: aload_0
    //   326: invokevirtual 451	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessor:getWorkingDirectory	()Ljava/lang/String;
    //   329: astore 13
    //   331: aload_0
    //   332: getfield 382	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessor:containingInfs	Ljava/util/LinkedList;
    //   335: aload 4
    //   337: invokevirtual 423	java/util/LinkedList:addFirst	(Ljava/lang/Object;)V
    //   340: aload_0
    //   341: aload 10
    //   343: invokevirtual 393	java/io/File:getCanonicalPath	()Ljava/lang/String;
    //   346: invokevirtual 452	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessor:setWorkingDirectory	(Ljava/lang/String;)V
    //   349: aload_0
    //   350: aload 9
    //   352: invokevirtual 454	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessor:processJar	(Ljava/io/File;)Ljava/io/File;
    //   355: astore 14
    //   357: new 212	java/lang/StringBuffer
    //   360: dup
    //   361: aload 7
    //   363: iconst_0
    //   364: aload 7
    //   366: invokevirtual 409	java/lang/String:length	()I
    //   369: aload 9
    //   371: invokevirtual 394	java/io/File:getName	()Ljava/lang/String;
    //   374: invokevirtual 409	java/lang/String:length	()I
    //   377: isub
    //   378: invokevirtual 410	java/lang/String:substring	(II)Ljava/lang/String;
    //   381: invokestatic 412	java/lang/String:valueOf	(Ljava/lang/Object;)Ljava/lang/String;
    //   384: invokespecial 414	java/lang/StringBuffer:<init>	(Ljava/lang/String;)V
    //   387: aload 14
    //   389: invokevirtual 394	java/io/File:getName	()Ljava/lang/String;
    //   392: invokevirtual 417	java/lang/StringBuffer:append	(Ljava/lang/String;)Ljava/lang/StringBuffer;
    //   395: invokevirtual 413	java/lang/StringBuffer:toString	()Ljava/lang/String;
    //   398: astore 8
    //   400: aload_3
    //   401: aload 7
    //   403: aload 8
    //   405: invokeinterface 471 3 0
    //   410: pop
    //   411: goto +22 -> 433
    //   414: astore 15
    //   416: aload_0
    //   417: aload 13
    //   419: invokevirtual 452	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessor:setWorkingDirectory	(Ljava/lang/String;)V
    //   422: aload_0
    //   423: getfield 382	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessor:containingInfs	Ljava/util/LinkedList;
    //   426: invokevirtual 422	java/util/LinkedList:removeFirst	()Ljava/lang/Object;
    //   429: pop
    //   430: aload 15
    //   432: athrow
    //   433: aload_0
    //   434: aload 13
    //   436: invokevirtual 452	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessor:setWorkingDirectory	(Ljava/lang/String;)V
    //   439: aload_0
    //   440: getfield 382	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessor:containingInfs	Ljava/util/LinkedList;
    //   443: invokevirtual 422	java/util/LinkedList:removeFirst	()Ljava/lang/Object;
    //   446: pop
    //   447: aload 7
    //   449: aload 8
    //   451: invokevirtual 408	java/lang/Object:equals	(Ljava/lang/Object;)Z
    //   454: ifne +9 -> 463
    //   457: aload 9
    //   459: invokevirtual 387	java/io/File:delete	()Z
    //   462: pop
    //   463: aload 5
    //   465: invokeinterface 462 1 0
    //   470: ifeq +16 -> 486
    //   473: aload 5
    //   475: invokeinterface 463 1 0
    //   480: checkcast 223	java/util/jar/JarEntry
    //   483: goto +4 -> 487
    //   486: aconst_null
    //   487: astore 6
    //   489: aload 6
    //   491: ifnonnull -356 -> 135
    //   494: return
    // Line number table:
    //   Java source line #173	-> byte code offset #0
    //   Java source line #175	-> byte code offset #5
    //   Java source line #176	-> byte code offset #16
    //   Java source line #177	-> byte code offset #26
    //   Java source line #178	-> byte code offset #37
    //   Java source line #179	-> byte code offset #44
    //   Java source line #180	-> byte code offset #50
    //   Java source line #179	-> byte code offset #59
    //   Java source line #181	-> byte code offset #71
    //   Java source line #183	-> byte code offset #103
    //   Java source line #187	-> byte code offset #104
    //   Java source line #188	-> byte code offset #110
    //   Java source line #189	-> byte code offset #120
    //   Java source line #190	-> byte code offset #135
    //   Java source line #191	-> byte code offset #142
    //   Java source line #192	-> byte code offset #150
    //   Java source line #193	-> byte code offset #155
    //   Java source line #194	-> byte code offset #162
    //   Java source line #195	-> byte code offset #168
    //   Java source line #194	-> byte code offset #177
    //   Java source line #196	-> byte code offset #189
    //   Java source line #199	-> byte code offset #213
    //   Java source line #200	-> byte code offset #225
    //   Java source line #201	-> byte code offset #232
    //   Java source line #202	-> byte code offset #240
    //   Java source line #204	-> byte code offset #246
    //   Java source line #205	-> byte code offset #249
    //   Java source line #207	-> byte code offset #252
    //   Java source line #208	-> byte code offset #260
    //   Java source line #209	-> byte code offset #278
    //   Java source line #210	-> byte code offset #289
    //   Java source line #211	-> byte code offset #291
    //   Java source line #212	-> byte code offset #296
    //   Java source line #213	-> byte code offset #301
    //   Java source line #211	-> byte code offset #304
    //   Java source line #212	-> byte code offset #309
    //   Java source line #214	-> byte code offset #314
    //   Java source line #217	-> byte code offset #325
    //   Java source line #219	-> byte code offset #331
    //   Java source line #220	-> byte code offset #340
    //   Java source line #221	-> byte code offset #349
    //   Java source line #222	-> byte code offset #357
    //   Java source line #223	-> byte code offset #400
    //   Java source line #224	-> byte code offset #414
    //   Java source line #225	-> byte code offset #416
    //   Java source line #226	-> byte code offset #422
    //   Java source line #227	-> byte code offset #430
    //   Java source line #225	-> byte code offset #433
    //   Java source line #226	-> byte code offset #439
    //   Java source line #230	-> byte code offset #447
    //   Java source line #231	-> byte code offset #457
    //   Java source line #189	-> byte code offset #463
    //   Java source line #235	-> byte code offset #494
    // Local variable table:
    //   start	length	slot	name	signature
    //   0	495	0	this	JarProcessor
    //   0	495	1	jar	JarFile
    //   0	495	2	tempDir	File
    //   0	495	3	data	Map
    //   0	495	4	inf	Properties
    //   24	3	5	excludeChildren	String
    //   108	366	5	entries	java.util.Enumeration
    //   45	18	6	i	int
    //   130	360	6	entry	java.util.jar.JarEntry
    //   140	308	7	name	String
    //   148	302	8	newName	String
    //   163	18	9	i	int
    //   223	235	9	extracted	File
    //   230	112	10	parentDir	File
    //   247	58	11	in	java.io.InputStream
    //   250	60	12	out	java.io.OutputStream
    //   289	13	13	localObject1	Object
    //   329	106	13	dir	String
    //   355	33	14	result	File
    //   414	17	15	localObject2	Object
    // Exception table:
    //   from	to	target	type
    //   252	289	289	finally
    //   331	414	414	finally
  }
  
  private File preProcess(File input, File tempDir)
  {
    File result = null;
    for (Iterator iter = steps.iterator(); iter.hasNext();)
    {
      IProcessStep step = (IProcessStep)iter.next();
      result = step.preProcess(input, tempDir, containingInfs);
      if (result != null) {
        input = result;
      }
    }
    return input;
  }
  
  private File postProcess(File input, File tempDir)
  {
    File result = null;
    for (Iterator iter = steps.iterator(); iter.hasNext();)
    {
      IProcessStep step = (IProcessStep)iter.next();
      result = step.postProcess(input, tempDir, containingInfs);
      if (result != null) {
        input = result;
      }
    }
    return input;
  }
  
  private void adjustInf(File input, Properties inf)
  {
    for (Iterator iter = steps.iterator(); iter.hasNext();)
    {
      IProcessStep step = (IProcessStep)iter.next();
      step.adjustInf(input, inf, containingInfs);
    }
  }
  
  public File processJar(File input)
    throws IOException
  {
    File tempDir = null;
    depth += 1;
    try
    {
      long lastModified = input.lastModified();
      File workingDir = new File(getWorkingDirectory());
      if (!workingDir.exists()) {
        workingDir.mkdirs();
      }
      boolean skip = Utils.shouldSkipJar(input, processAll, verbose);
      if ((depth == 0) && (verbose)) {
        if (skip)
        {
          System.out.println("Skipping " + input.getPath());
        }
        else
        {
          System.out.print("Running ");
          for (Iterator iter = steps.iterator(); iter.hasNext();)
          {
            IProcessStep step = (IProcessStep)iter.next();
            System.out.print(step.getStepName() + " ");
          }
          System.out.println("on " + input.getPath());
        }
      }
      File localFile1;
      if (skip) {
        return input;
      }
      boolean skip;
      File workingDir;
      long lastModified;
      File workingFile = preProcess(input, workingDir);
      if (depth == 0)
      {
        tempDir = new File(workingDir, "temp." + workingFile.getName());
      }
      else
      {
        File parent = workingDir.getParentFile();
        tempDir = new File(parent, "temp_" + depth + '_' + workingFile.getName());
      }
      JarFile jar = new JarFile(workingFile, false);
      Map replacements = new HashMap();
      Properties inf = Utils.getEclipseInf(workingFile, verbose);
      extractEntries(jar, tempDir, replacements, inf);
      if (inf != null) {
        adjustInf(workingFile, inf);
      }
      File tempJar = null;
      tempJar = new File(tempDir, workingFile.getName());
      File parent = tempJar.getParentFile();
      if (!parent.exists()) {
        parent.mkdirs();
      }
      JarOutputStream jarOut = new JarOutputStream(new BufferedOutputStream(new FileOutputStream(tempJar)));
      recreateJar(jar, jarOut, replacements, tempDir, inf);
      
      jar.close();
      if (tempJar != null)
      {
        if (!workingFile.equals(input)) {
          workingFile.delete();
        }
        workingFile = tempJar;
      }
      File result = postProcess(workingFile, workingDir);
      
      normalize(result, workingDir);
      if ((!result.equals(workingFile)) && (!workingFile.equals(input))) {
        workingFile.delete();
      }
      if (!result.getParentFile().equals(workingDir))
      {
        File finalFile = new File(workingDir, result.getName());
        if (finalFile.exists()) {
          finalFile.delete();
        }
        result.renameTo(finalFile);
        result = finalFile;
      }
      result.setLastModified(lastModified);
      return result;
    }
    finally
    {
      depth -= 1;
      if ((tempDir != null) && (tempDir.exists())) {
        Utils.clear(tempDir);
      }
    }
  }
  
  /* Error */
  private void normalize(File input, File directory)
  {
    // Byte code:
    //   0: aload_1
    //   1: invokevirtual 394	java/io/File:getName	()Ljava/lang/String;
    //   4: ldc 10
    //   6: invokevirtual 411	java/lang/String:endsWith	(Ljava/lang/String;)Z
    //   9: ifeq +4 -> 13
    //   12: return
    //   13: new 202	java/io/File
    //   16: dup
    //   17: aload_2
    //   18: new 212	java/lang/StringBuffer
    //   21: dup
    //   22: ldc_w 199
    //   25: invokespecial 414	java/lang/StringBuffer:<init>	(Ljava/lang/String;)V
    //   28: aload_1
    //   29: invokevirtual 394	java/io/File:getName	()Ljava/lang/String;
    //   32: invokevirtual 417	java/lang/StringBuffer:append	(Ljava/lang/String;)Ljava/lang/StringBuffer;
    //   35: invokevirtual 413	java/lang/StringBuffer:toString	()Ljava/lang/String;
    //   38: invokespecial 397	java/io/File:<init>	(Ljava/io/File;Ljava/lang/String;)V
    //   41: astore_3
    //   42: aconst_null
    //   43: astore 4
    //   45: new 225	java/util/jar/JarFile
    //   48: dup
    //   49: aload_1
    //   50: iconst_0
    //   51: invokespecial 431	java/util/jar/JarFile:<init>	(Ljava/io/File;Z)V
    //   54: astore 4
    //   56: goto +5 -> 61
    //   59: pop
    //   60: return
    //   61: new 226	java/util/jar/JarOutputStream
    //   64: dup
    //   65: new 201	java/io/BufferedOutputStream
    //   68: dup
    //   69: new 204	java/io/FileOutputStream
    //   72: dup
    //   73: aload_3
    //   74: invokespecial 399	java/io/FileOutputStream:<init>	(Ljava/io/File;)V
    //   77: invokespecial 385	java/io/BufferedOutputStream:<init>	(Ljava/io/OutputStream;)V
    //   80: invokespecial 436	java/util/jar/JarOutputStream:<init>	(Ljava/io/OutputStream;)V
    //   83: astore 5
    //   85: aconst_null
    //   86: astore 6
    //   88: aload 4
    //   90: invokevirtual 433	java/util/jar/JarFile:entries	()Ljava/util/Enumeration;
    //   93: astore 7
    //   95: aload 7
    //   97: invokeinterface 463 1 0
    //   102: checkcast 223	java/util/jar/JarEntry
    //   105: astore 8
    //   107: goto +94 -> 201
    //   110: new 223	java/util/jar/JarEntry
    //   113: dup
    //   114: aload 8
    //   116: invokevirtual 428	java/util/jar/JarEntry:getName	()Ljava/lang/String;
    //   119: invokespecial 429	java/util/jar/JarEntry:<init>	(Ljava/lang/String;)V
    //   122: astore 9
    //   124: aload 9
    //   126: aload 8
    //   128: invokevirtual 426	java/util/jar/JarEntry:getTime	()J
    //   131: invokevirtual 427	java/util/jar/JarEntry:setTime	(J)V
    //   134: new 200	java/io/BufferedInputStream
    //   137: dup
    //   138: aload 4
    //   140: aload 8
    //   142: invokevirtual 434	java/util/jar/JarFile:getInputStream	(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
    //   145: invokespecial 384	java/io/BufferedInputStream:<init>	(Ljava/io/InputStream;)V
    //   148: astore 6
    //   150: aload 5
    //   152: aload 9
    //   154: invokevirtual 437	java/util/jar/JarOutputStream:putNextEntry	(Ljava/util/zip/ZipEntry;)V
    //   157: aload 6
    //   159: aload 5
    //   161: iconst_0
    //   162: invokestatic 445	org/eclipse/equinox/internal/p2/jarprocessor/Utils:transferStreams	(Ljava/io/InputStream;Ljava/io/OutputStream;Z)V
    //   165: aload 5
    //   167: invokevirtual 435	java/util/jar/JarOutputStream:closeEntry	()V
    //   170: aload 6
    //   172: invokevirtual 401	java/io/InputStream:close	()V
    //   175: aload 7
    //   177: invokeinterface 462 1 0
    //   182: ifeq +16 -> 198
    //   185: aload 7
    //   187: invokeinterface 463 1 0
    //   192: checkcast 223	java/util/jar/JarEntry
    //   195: goto +4 -> 199
    //   198: aconst_null
    //   199: astore 8
    //   201: aload 8
    //   203: ifnonnull -93 -> 110
    //   206: goto +23 -> 229
    //   209: astore 10
    //   211: aload 5
    //   213: invokestatic 444	org/eclipse/equinox/internal/p2/jarprocessor/Utils:close	(Ljava/lang/Object;)V
    //   216: aload 4
    //   218: invokestatic 444	org/eclipse/equinox/internal/p2/jarprocessor/Utils:close	(Ljava/lang/Object;)V
    //   221: aload 6
    //   223: invokestatic 444	org/eclipse/equinox/internal/p2/jarprocessor/Utils:close	(Ljava/lang/Object;)V
    //   226: aload 10
    //   228: athrow
    //   229: aload 5
    //   231: invokestatic 444	org/eclipse/equinox/internal/p2/jarprocessor/Utils:close	(Ljava/lang/Object;)V
    //   234: aload 4
    //   236: invokestatic 444	org/eclipse/equinox/internal/p2/jarprocessor/Utils:close	(Ljava/lang/Object;)V
    //   239: aload 6
    //   241: invokestatic 444	org/eclipse/equinox/internal/p2/jarprocessor/Utils:close	(Ljava/lang/Object;)V
    //   244: aload_3
    //   245: aload_1
    //   246: invokevirtual 386	java/io/File:lastModified	()J
    //   249: invokevirtual 390	java/io/File:setLastModified	(J)Z
    //   252: pop
    //   253: aload_1
    //   254: invokevirtual 387	java/io/File:delete	()Z
    //   257: pop
    //   258: aload_3
    //   259: aload_1
    //   260: invokevirtual 392	java/io/File:renameTo	(Ljava/io/File;)Z
    //   263: pop
    //   264: goto +41 -> 305
    //   267: astore_3
    //   268: aload_0
    //   269: getfield 380	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessor:verbose	Z
    //   272: ifeq +33 -> 305
    //   275: getstatic 377	java/lang/System:out	Ljava/io/PrintStream;
    //   278: new 212	java/lang/StringBuffer
    //   281: dup
    //   282: ldc_w 191
    //   285: invokespecial 414	java/lang/StringBuffer:<init>	(Ljava/lang/String;)V
    //   288: aload_1
    //   289: invokevirtual 394	java/io/File:getName	()Ljava/lang/String;
    //   292: invokevirtual 417	java/lang/StringBuffer:append	(Ljava/lang/String;)Ljava/lang/StringBuffer;
    //   295: invokevirtual 413	java/lang/StringBuffer:toString	()Ljava/lang/String;
    //   298: invokevirtual 403	java/io/PrintStream:println	(Ljava/lang/String;)V
    //   301: aload_3
    //   302: invokevirtual 400	java/io/IOException:printStackTrace	()V
    //   305: return
    // Line number table:
    //   Java source line #357	-> byte code offset #0
    //   Java source line #359	-> byte code offset #12
    //   Java source line #362	-> byte code offset #13
    //   Java source line #363	-> byte code offset #42
    //   Java source line #365	-> byte code offset #45
    //   Java source line #366	-> byte code offset #59
    //   Java source line #368	-> byte code offset #60
    //   Java source line #370	-> byte code offset #61
    //   Java source line #371	-> byte code offset #85
    //   Java source line #373	-> byte code offset #88
    //   Java source line #374	-> byte code offset #95
    //   Java source line #375	-> byte code offset #110
    //   Java source line #376	-> byte code offset #124
    //   Java source line #377	-> byte code offset #134
    //   Java source line #378	-> byte code offset #150
    //   Java source line #379	-> byte code offset #157
    //   Java source line #380	-> byte code offset #165
    //   Java source line #381	-> byte code offset #170
    //   Java source line #374	-> byte code offset #175
    //   Java source line #383	-> byte code offset #209
    //   Java source line #384	-> byte code offset #211
    //   Java source line #385	-> byte code offset #216
    //   Java source line #386	-> byte code offset #221
    //   Java source line #387	-> byte code offset #226
    //   Java source line #384	-> byte code offset #229
    //   Java source line #385	-> byte code offset #234
    //   Java source line #386	-> byte code offset #239
    //   Java source line #388	-> byte code offset #244
    //   Java source line #389	-> byte code offset #253
    //   Java source line #390	-> byte code offset #258
    //   Java source line #391	-> byte code offset #267
    //   Java source line #392	-> byte code offset #268
    //   Java source line #393	-> byte code offset #275
    //   Java source line #394	-> byte code offset #301
    //   Java source line #397	-> byte code offset #305
    // Local variable table:
    //   start	length	slot	name	signature
    //   0	306	0	this	JarProcessor
    //   0	306	1	input	File
    //   0	306	2	directory	File
    //   41	218	3	tempJar	File
    //   267	35	3	e	IOException
    //   43	192	4	jar	JarFile
    //   83	147	5	jarOut	JarOutputStream
    //   86	154	6	in	java.io.InputStream
    //   93	93	7	entries	java.util.Enumeration
    //   105	97	8	entry	java.util.jar.JarEntry
    //   122	31	9	newEntry	java.util.jar.JarEntry
    //   209	18	10	localObject	Object
    //   59	1	12	localJarException	java.util.jar.JarException
    // Exception table:
    //   from	to	target	type
    //   45	56	59	java/util/jar/JarException
    //   88	209	209	finally
    //   13	60	267	java/io/IOException
    //   61	264	267	java/io/IOException
  }
}

/* Location:
 * Qualified Name:     org.eclipse.internal.provisional.equinox.p2.jarprocessor.JarProcessor
 * Java Class Version: 1.2 (46.0)
 * JD-Core Version:    0.7.1
 */
package org.eclipse.internal.provisional.equinox.p2.jarprocessor;

import java.io.File;

public class JarProcessorExecutor$Options
{
  public String outputDir = ".";
  public String signCommand = null;
  public boolean pack = false;
  public boolean repack = false;
  public boolean unpack = false;
  public boolean verbose = false;
  public boolean processAll = false;
  public File input = null;
}

/* Location:
 * Qualified Name:     org.eclipse.internal.provisional.equinox.p2.jarprocessor.JarProcessorExecutor.Options
 * Java Class Version: 1.2 (46.0)
 * JD-Core Version:    0.7.1
 */
package org.eclipse.internal.provisional.equinox.p2.jarprocessor;

import java.io.File;
import java.io.FileFilter;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
import java.util.Set;
import org.eclipse.equinox.internal.p2.jarprocessor.PackStep;
import org.eclipse.equinox.internal.p2.jarprocessor.PackUnpackStep;
import org.eclipse.equinox.internal.p2.jarprocessor.SignCommandStep;
import org.eclipse.equinox.internal.p2.jarprocessor.UnpackStep;
import org.eclipse.equinox.internal.p2.jarprocessor.Utils;

public class JarProcessorExecutor
{
  /* Error */
  public void runJarProcessor(Options processOptions)
  {
    // Byte code:
    //   0: aload_0
    //   1: aload_1
    //   2: putfield 232	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor:options	Lorg/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options;
    //   5: aload_0
    //   6: getfield 232	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor:options	Lorg/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options;
    //   9: getfield 238	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options:input	Ljava/io/File;
    //   12: invokevirtual 244	java/io/File:isFile	()Z
    //   15: ifeq +103 -> 118
    //   18: aload_0
    //   19: getfield 232	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor:options	Lorg/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options;
    //   22: getfield 238	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options:input	Ljava/io/File;
    //   25: invokevirtual 248	java/io/File:getName	()Ljava/lang/String;
    //   28: ldc 1
    //   30: invokevirtual 257	java/lang/String:endsWith	(Ljava/lang/String;)Z
    //   33: ifeq +85 -> 118
    //   36: new 123	org/eclipse/equinox/internal/p2/jarprocessor/ZipProcessor
    //   39: dup
    //   40: invokespecial 274	org/eclipse/equinox/internal/p2/jarprocessor/ZipProcessor:<init>	()V
    //   43: astore_2
    //   44: aload_2
    //   45: aload_0
    //   46: getfield 232	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor:options	Lorg/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options;
    //   49: getfield 239	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options:outputDir	Ljava/lang/String;
    //   52: invokevirtual 276	org/eclipse/equinox/internal/p2/jarprocessor/ZipProcessor:setWorkingDirectory	(Ljava/lang/String;)V
    //   55: aload_2
    //   56: aload_0
    //   57: getfield 232	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor:options	Lorg/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options;
    //   60: invokevirtual 278	org/eclipse/equinox/internal/p2/jarprocessor/ZipProcessor:setOptions	(Lorg/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options;)V
    //   63: aload_2
    //   64: aload_0
    //   65: invokevirtual 277	org/eclipse/equinox/internal/p2/jarprocessor/ZipProcessor:setExecutor	(Lorg/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor;)V
    //   68: aload_2
    //   69: aload_0
    //   70: getfield 232	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor:options	Lorg/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options;
    //   73: getfield 238	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options:input	Ljava/io/File;
    //   76: invokevirtual 275	org/eclipse/equinox/internal/p2/jarprocessor/ZipProcessor:processZip	(Ljava/io/File;)V
    //   79: goto +273 -> 352
    //   82: astore_3
    //   83: aload_0
    //   84: getfield 232	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor:options	Lorg/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options;
    //   87: getfield 237	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options:verbose	Z
    //   90: ifeq +262 -> 352
    //   93: aload_3
    //   94: invokevirtual 266	java/util/zip/ZipException:printStackTrace	()V
    //   97: goto +255 -> 352
    //   100: astore_3
    //   101: aload_0
    //   102: getfield 232	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor:options	Lorg/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options;
    //   105: getfield 237	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options:verbose	Z
    //   108: ifeq +244 -> 352
    //   111: aload_3
    //   112: invokevirtual 253	java/io/IOException:printStackTrace	()V
    //   115: goto +237 -> 352
    //   118: new 124	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessor
    //   121: dup
    //   122: invokespecial 279	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessor:<init>	()V
    //   125: astore_2
    //   126: aload_2
    //   127: aload_0
    //   128: getfield 232	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor:options	Lorg/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options;
    //   131: getfield 239	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options:outputDir	Ljava/lang/String;
    //   134: invokevirtual 284	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessor:setWorkingDirectory	(Ljava/lang/String;)V
    //   137: aload_2
    //   138: aload_0
    //   139: getfield 232	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor:options	Lorg/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options;
    //   142: getfield 234	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options:processAll	Z
    //   145: invokevirtual 281	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessor:setProcessAll	(Z)V
    //   148: aload_2
    //   149: aload_0
    //   150: getfield 232	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor:options	Lorg/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options;
    //   153: getfield 237	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options:verbose	Z
    //   156: invokevirtual 282	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessor:setVerbose	(Z)V
    //   159: new 115	java/util/Properties
    //   162: dup
    //   163: invokespecial 264	java/util/Properties:<init>	()V
    //   166: astore_3
    //   167: aload_0
    //   168: getfield 232	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor:options	Lorg/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options;
    //   171: getfield 238	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options:input	Ljava/io/File;
    //   174: invokevirtual 243	java/io/File:isDirectory	()Z
    //   177: ifeq +123 -> 300
    //   180: new 107	java/io/File
    //   183: dup
    //   184: aload_0
    //   185: getfield 232	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor:options	Lorg/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options;
    //   188: getfield 238	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options:input	Ljava/io/File;
    //   191: ldc 2
    //   193: invokespecial 249	java/io/File:<init>	(Ljava/io/File;Ljava/lang/String;)V
    //   196: astore 4
    //   198: aload 4
    //   200: invokevirtual 242	java/io/File:exists	()Z
    //   203: ifeq +81 -> 284
    //   206: aload 4
    //   208: invokevirtual 244	java/io/File:isFile	()Z
    //   211: ifeq +73 -> 284
    //   214: aconst_null
    //   215: astore 5
    //   217: new 106	java/io/BufferedInputStream
    //   220: dup
    //   221: new 109	java/io/FileInputStream
    //   224: dup
    //   225: aload 4
    //   227: invokespecial 250	java/io/FileInputStream:<init>	(Ljava/io/File;)V
    //   230: invokespecial 241	java/io/BufferedInputStream:<init>	(Ljava/io/InputStream;)V
    //   233: astore 5
    //   235: aload_3
    //   236: aload 5
    //   238: invokevirtual 265	java/util/Properties:load	(Ljava/io/InputStream;)V
    //   241: goto +38 -> 279
    //   244: astore 6
    //   246: aload_0
    //   247: getfield 232	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor:options	Lorg/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options;
    //   250: getfield 237	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options:verbose	Z
    //   253: ifeq +8 -> 261
    //   256: aload 6
    //   258: invokevirtual 253	java/io/IOException:printStackTrace	()V
    //   261: aload 5
    //   263: invokestatic 271	org/eclipse/equinox/internal/p2/jarprocessor/Utils:close	(Ljava/lang/Object;)V
    //   266: goto +18 -> 284
    //   269: astore 7
    //   271: aload 5
    //   273: invokestatic 271	org/eclipse/equinox/internal/p2/jarprocessor/Utils:close	(Ljava/lang/Object;)V
    //   276: aload 7
    //   278: athrow
    //   279: aload 5
    //   281: invokestatic 271	org/eclipse/equinox/internal/p2/jarprocessor/Utils:close	(Ljava/lang/Object;)V
    //   284: aload_0
    //   285: aload_3
    //   286: invokestatic 272	org/eclipse/equinox/internal/p2/jarprocessor/Utils:getPackExclusions	(Ljava/util/Properties;)Ljava/util/Set;
    //   289: putfield 230	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor:packExclusions	Ljava/util/Set;
    //   292: aload_0
    //   293: aload_3
    //   294: invokestatic 273	org/eclipse/equinox/internal/p2/jarprocessor/Utils:getSignExclusions	(Ljava/util/Properties;)Ljava/util/Set;
    //   297: putfield 231	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor:signExclusions	Ljava/util/Set;
    //   300: aload_0
    //   301: aload_0
    //   302: getfield 232	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor:options	Lorg/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options;
    //   305: invokevirtual 290	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor:createFileFilter	(Lorg/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options;)Ljava/io/FileFilter;
    //   308: astore 4
    //   310: aload_0
    //   311: aload_0
    //   312: getfield 232	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor:options	Lorg/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options;
    //   315: getfield 238	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options:input	Ljava/io/File;
    //   318: aload 4
    //   320: aload_0
    //   321: getfield 232	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor:options	Lorg/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options;
    //   324: getfield 237	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options:verbose	Z
    //   327: aload_2
    //   328: aload_3
    //   329: invokevirtual 296	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor:process	(Ljava/io/File;Ljava/io/FileFilter;ZLorg/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessor;Ljava/util/Properties;)V
    //   332: goto +20 -> 352
    //   335: astore 4
    //   337: aload_0
    //   338: getfield 232	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor:options	Lorg/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options;
    //   341: getfield 237	org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor$Options:verbose	Z
    //   344: ifeq +8 -> 352
    //   347: aload 4
    //   349: invokevirtual 252	java/io/FileNotFoundException:printStackTrace	()V
    //   352: return
    // Line number table:
   
1 2 3 4

Further reading...

For more information on Java 1.5 Tiger, you may find Java 1.5 Tiger, A developer's Notebook by D. Flanagan and B. McLaughlin from O'Reilly of interest.

New!JAR listings


Copyright 2006-2019. Infinite Loop Ltd