[jbossws-commits] JBossWS SVN: r8401 - stack/metro/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/metro.
jbossws-commits at lists.jboss.org
jbossws-commits at lists.jboss.org
Wed Oct 8 20:19:56 EDT 2008
Author: alessio.soldano at jboss.com
Date: 2008-10-08 20:19:56 -0400 (Wed, 08 Oct 2008)
New Revision: 8401
Modified:
stack/metro/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/metro/WsgenWrapperGenerator.java
Log:
[JBWS-2129] Using JarUtils and scanning the whole client dir
Modified: stack/metro/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/metro/WsgenWrapperGenerator.java
===================================================================
--- stack/metro/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/metro/WsgenWrapperGenerator.java 2008-10-08 23:44:43 UTC (rev 8400)
+++ stack/metro/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/metro/WsgenWrapperGenerator.java 2008-10-09 00:19:56 UTC (rev 8401)
@@ -40,6 +40,7 @@
import javax.xml.ws.WebServiceException;
import org.jboss.logging.Logger;
+import org.jboss.util.file.JarUtils;
import org.jboss.wsf.spi.SPIProvider;
import org.jboss.wsf.spi.SPIProviderResolver;
import org.jboss.wsf.spi.management.ServerConfig;
@@ -113,13 +114,15 @@
StringBuffer sb = new StringBuffer();
ServerConfig cfg = getServerConfig();
File clientDir = new File(cfg.getServerTempDir(), "/../../../client/"); //TODO!!!!
- //TODO!! read all client jars
- sb.append(new File(clientDir, "jboss-ejb3x.jar").getAbsolutePath()).append(File.pathSeparator);
- sb.append(new File(clientDir, "jbossall-client.jar").getAbsolutePath()).append(File.pathSeparator);
- sb.append(new File(clientDir, "jsr181-api.jar").getAbsolutePath()).append(File.pathSeparator);
- sb.append(new File(clientDir, "jbossws-spi.jar").getAbsolutePath()).append(File.pathSeparator);
- sb.append(new File(clientDir, "jbossws-common.jar").getAbsolutePath()).append(File.pathSeparator);
- sb.append(new File(clientDir, "jbossws-framework.jar").getAbsolutePath());
+ String[] libs = clientDir.list();
+ if (libs != null && libs.length > 0)
+ {
+ for (String lib : libs)
+ {
+ sb.append(lib).append(File.pathSeparator);
+ }
+ sb.delete(sb.length() - 1, sb.length());
+ }
URL[] urls = getURLs(classLoader, archiveUrl);
for (URL url : urls)
{
@@ -168,7 +171,7 @@
if (innerUrlList.isEmpty())
{
File dest = getTempDir(archiveUrl);
- unjar(archiveUrl.openStream(), dest);
+ JarUtils.unjar(archiveUrl.openStream(), dest);
File webInf = new File(dest, "WEB-INF");
if (webInf.exists())
{
@@ -187,7 +190,7 @@
else
{
File dest = getTempDir(archiveUrl);
- unjar(archiveUrl.openStream(), dest);
+ JarUtils.unjar(archiveUrl.openStream(), dest);
urls.add(dest.toURL());
}
}
@@ -198,57 +201,4 @@
}
return (URL[])urls.toArray(new URL[0]);
}
-
- public static void unjar(InputStream in, File dest) throws IOException
- {
- if (!dest.exists())
- dest.mkdirs();
- if (!dest.isDirectory())
- throw new IOException("Destination must be a directory.");
- JarInputStream jin = new JarInputStream(in);
- byte buffer[] = new byte[1024];
- for (ZipEntry entry = jin.getNextEntry(); entry != null; entry = jin.getNextEntry())
- {
- String fileName = entry.getName();
- if (fileName.charAt(fileName.length() - 1) == '/')
- fileName = fileName.substring(0, fileName.length() - 1);
- if (fileName.charAt(0) == '/')
- fileName = fileName.substring(1);
- if (File.separatorChar != '/')
- fileName = fileName.replace('/', File.separatorChar);
- File file = new File(dest, fileName);
- if (entry.isDirectory())
- {
- file.mkdirs();
- jin.closeEntry();
- continue;
- }
- File parent = file.getParentFile();
- if (parent != null && !parent.exists())
- parent.mkdirs();
- OutputStream out = new FileOutputStream(file);
- for (int len = 0; (len = jin.read(buffer, 0, buffer.length)) != -1;)
- out.write(buffer, 0, len);
-
- out.flush();
- out.close();
- jin.closeEntry();
- file.setLastModified(entry.getTime());
- }
-
- Manifest mf = jin.getManifest();
- if (mf != null)
- {
- File file = new File(dest, "META-INF/MANIFEST.MF");
- File parent = file.getParentFile();
- if (!parent.exists())
- parent.mkdirs();
- OutputStream out = new FileOutputStream(file);
- mf.write(out);
- out.flush();
- out.close();
- }
- jin.close();
- }
-
}
More information about the jbossws-commits
mailing list