[jboss-cvs] JBossAS SVN: r106442 - trunk/ejb3/src/main/java/org/jboss/ejb3/client.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Jul 6 02:50:53 EDT 2010


Author: wolfc
Date: 2010-07-06 02:50:52 -0400 (Tue, 06 Jul 2010)
New Revision: 106442

Modified:
   trunk/ejb3/src/main/java/org/jboss/ejb3/client/ClientLauncher.java
Log:
JBAS-8152: mount the archives from the client class path

Modified: trunk/ejb3/src/main/java/org/jboss/ejb3/client/ClientLauncher.java
===================================================================
--- trunk/ejb3/src/main/java/org/jboss/ejb3/client/ClientLauncher.java	2010-07-06 06:50:10 UTC (rev 106441)
+++ trunk/ejb3/src/main/java/org/jboss/ejb3/client/ClientLauncher.java	2010-07-06 06:50:52 UTC (rev 106442)
@@ -24,6 +24,8 @@
 import java.io.IOException;
 import java.lang.reflect.Method;
 import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.rmi.server.RMIClassLoader;
 import java.rmi.server.RMIClassLoaderSpi;
 import java.util.ArrayList;
@@ -63,6 +65,11 @@
 import org.jboss.logging.Logger;
 import org.jboss.metadata.client.jboss.JBossClientMetaData;
 import org.jboss.remoting.Remoting;
+import org.jboss.vfs.VFS;
+import org.jboss.vfs.VirtualFile;
+import org.jboss.vfs.util.PathTokenizer;
+import org.jboss.vfs.util.automount.Automounter;
+import org.jboss.vfs.util.automount.MountOption;
 import org.jboss.xb.binding.JBossXBException;
 
 /**
@@ -233,11 +240,13 @@
          for(String path : classPath)
          {
             log.info(path);
+            mount(path);
             roots.add(path);
          }
          for(String path : extraClassPath)
          {
             log.info(path);
+            mount(path);
             roots.add(path);
          }
          log.info("End classpath");
@@ -490,17 +499,38 @@
 
    public static void main(String[] args)
    {
-      String[] roots = {
-            "vfszip:/home/svn/JBossHead/jboss-head/build/output/jboss-5.0.0.CR2/server/cts/tmp/jsr88/assembly_classpath_appclient.ear/assembly_classpath_appclient_client.jar",
-            "vfszip:/Users/svn/JBossHead/jboss-head/build/output/jboss-5.0.0.CR2/server/cts/tmp/jsr88/assembly_classpath_appclient.ear/libs/direct_classpath_util.jar",
-            "vfszip:/Users/svn/JBossHead/jboss-head/build/output/jboss-5.0.0.CR2/server/cts/tmp/jsr88/assembly_classpath_appclient.ear/libs/indirect_classpath_util.jar"
-      };
-      VFSClassLoaderFactory10 factory = new VFSClassLoaderFactory10();
-      factory.setRoots(Arrays.asList(roots));
-      VFSClassLoaderPolicyModule module = new VFSClassLoaderPolicyModule(factory, "AppClientLoaderModule");
-   
+      try
+      {
+         String path = "vfs:///home/carlo/work/jboss-head/build/target/jboss-6.0.0-SNAPSHOT/server/cts/tmp/jsr88/ejb3_timer_basic_mdb.ear/ejb3_timer_basic_mdb_client.jar";
+         mount(path);
+      }
+      catch(Exception e)
+      {
+         e.printStackTrace();
+      }
    }
 
+   private static void mount(String path) throws IOException, URISyntaxException
+   {
+      URI root = new URI(path);
+      VirtualFile file = VFS.getChild(root);
+
+      mount(file);
+   }
+
+   private static void mount(VirtualFile target) throws IOException
+   {
+      if(target.exists())
+      {
+         Automounter.mount(target);
+         return;
+      }
+
+      mount(target.getParent());
+
+      Automounter.mount(target);
+   }
+
    /**
     * RMIClassLoaderSpi that uses the thread context class loader
     * 



More information about the jboss-cvs-commits mailing list