[jboss-svn-commits] JBL Code SVN: r33895 - in labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/toolsframework: plugin and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jul 15 05:00:23 EDT 2010


Author: mmusgrov
Date: 2010-07-15 05:00:22 -0400 (Thu, 15 Jul 2010)
New Revision: 33895

Modified:
   labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/toolsframework/ToolsClassLoader.java
   labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/toolsframework/plugin/ToolPluginInformation.java
Log:
[JBTM-730] Unpack sars correctly (didn't handle the case where the contained files were not in hierarchical order)

Modified: labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/toolsframework/ToolsClassLoader.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/toolsframework/ToolsClassLoader.java	2010-07-15 08:28:33 UTC (rev 33894)
+++ labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/toolsframework/ToolsClassLoader.java	2010-07-15 09:00:22 UTC (rev 33895)
@@ -110,22 +110,15 @@
             while (entries.hasMoreElements())
             {
                 ZipEntry ze = entries.nextElement();
-                String fname = tmpDir + '/' + ze.getName();
+                File f = ToolPluginInformation.externalizeFile(tmpDir, zf.getInputStream(ze), ze);
 
-                if (ze.isDirectory())
-                {
-                    new File(fname).mkdirs();
+                if (accept(ze.getName())) {
+System.out.println("checking jar " + ze.getName() + " against " + f.getAbsolutePath() + " - " + f.getName());
+                    addURL(ToolPluginInformation.getToolPluginInformation(_toolJars, f));
                 }
-                else
-                {
-                    File f = ToolPluginInformation.externalizeFile(fname, zf.getInputStream(ze));
-
-                    if (accept(ze.getName()))
-                        addURL(ToolPluginInformation.getToolPluginInformation(_toolJars, f));
-//                        urls.add(ToolPluginInformation.getToolPluginInformation(_toolJars, f));
-                }
             }
 
+System.out.println("Adding tmp dir: " + getTmpDir() + " - " + new File(getTmpDir()).toURL());
             addURL(new File(getTmpDir()).toURL());
 //            urls.add(new File(getTmpDir()).toURL());
             toolsDir = new File(getTmpDir() + DEFAULT_LIB_DIRECTORY).toURL();

Modified: labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/toolsframework/plugin/ToolPluginInformation.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/toolsframework/plugin/ToolPluginInformation.java	2010-07-15 08:28:33 UTC (rev 33894)
+++ labs/jbosstm/branches/JBOSSTS_4_6_1_GA_CP/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/toolsframework/plugin/ToolPluginInformation.java	2010-07-15 09:00:22 UTC (rev 33895)
@@ -183,14 +183,17 @@
 
     public static File externalizeFile(String tmpDir, InputStream is, ZipEntry ze) throws IOException
     {
-        File f = new File(tmpDir + ze.getName());
+        File f = new File(tmpDir + File.separatorChar + ze.getName());
         
-        if (f.isFile())
+        if (!ze.isDirectory())
         {
-            File d = f.getParentFile();
+			int i = ze.getName().lastIndexOf(File.separatorChar);
 
-            if (d != null)
-                f.mkdirs();
+            if (i != -1) {
+                String path = f.getPath();
+                String sp = path.substring(0, path.lastIndexOf(File.separatorChar));
+                new File(sp).mkdirs();
+            }
 
             OutputStream out = new FileOutputStream(f);
             byte[] buf = new byte[1024];



More information about the jboss-svn-commits mailing list