[jboss-cvs] JBossAS SVN: r66296 - in projects/microcontainer/trunk: deployers-vfs/src/main/org/jboss/deployers/vfs/plugins/classloader and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Oct 19 12:44:26 EDT 2007
Author: kabir.khan at jboss.com
Date: 2007-10-19 12:44:26 -0400 (Fri, 19 Oct 2007)
New Revision: 66296
Modified:
projects/microcontainer/trunk/deployers-impl/src/main/org/jboss/deployers/plugins/classloading/Module.java
projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/plugins/classloader/VFSTopLevelClassLoaderSystemDeployer.java
Log:
Add memory VFS root to top-level classloader that can be used for dynamically generated files
Modified: projects/microcontainer/trunk/deployers-impl/src/main/org/jboss/deployers/plugins/classloading/Module.java
===================================================================
--- projects/microcontainer/trunk/deployers-impl/src/main/org/jboss/deployers/plugins/classloading/Module.java 2007-10-19 16:43:12 UTC (rev 66295)
+++ projects/microcontainer/trunk/deployers-impl/src/main/org/jboss/deployers/plugins/classloading/Module.java 2007-10-19 16:44:26 UTC (rev 66296)
@@ -21,6 +21,8 @@
*/
package org.jboss.deployers.plugins.classloading;
+import java.net.MalformedURLException;
+import java.net.URL;
import java.util.ArrayList;
import java.util.List;
@@ -36,6 +38,7 @@
import org.jboss.deployers.structure.spi.classloading.ExportAll;
import org.jboss.deployers.structure.spi.classloading.PackageCapability;
import org.jboss.deployers.structure.spi.classloading.Requirement;
+import org.jboss.util.id.GUID;
/**
* Module.
@@ -57,6 +60,9 @@
/** The requirements */
private List<RequirementDependencyItem> requirementDependencies;
+ /** The URL for the dynamic classes */
+ private URL dynamicClassRoot;
+
/**
* Create a new Module.
*
@@ -274,4 +280,20 @@
{
domain.removeModule(this);
}
+
+ public URL getDynamicClassRoot()
+ {
+ if (dynamicClassRoot == null)
+ {
+ try
+ {
+ dynamicClassRoot = new URL("vfsmemory://" + new GUID());
+ }
+ catch (MalformedURLException e)
+ {
+ throw new RuntimeException(e);
+ }
+ }
+ return dynamicClassRoot;
+ }
}
Modified: projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/plugins/classloader/VFSTopLevelClassLoaderSystemDeployer.java
===================================================================
--- projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/plugins/classloader/VFSTopLevelClassLoaderSystemDeployer.java 2007-10-19 16:43:12 UTC (rev 66295)
+++ projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/plugins/classloader/VFSTopLevelClassLoaderSystemDeployer.java 2007-10-19 16:44:26 UTC (rev 66296)
@@ -21,6 +21,7 @@
*/
package org.jboss.deployers.vfs.plugins.classloader;
+import java.net.URL;
import java.util.Set;
import org.jboss.deployers.plugins.classloading.AbstractTopLevelClassLoaderSystemDeployer;
@@ -28,6 +29,8 @@
import org.jboss.deployers.structure.spi.DeploymentContext;
import org.jboss.deployers.vfs.spi.structure.helpers.ClassPathVisitor;
import org.jboss.virtual.VirtualFile;
+import org.jboss.virtual.plugins.context.memory.MemoryContextFactory;
+import org.jboss.virtual.spi.VFSContext;
/**
* VFSTopLevelClassLoaderSystemDeployer.
@@ -44,10 +47,17 @@
context.visit(visitor);
Set<VirtualFile> classPath = visitor.getClassPath();
- VirtualFile[] roots = new VirtualFile[classPath.size()];
+ VirtualFile[] roots = new VirtualFile[classPath.size() + 1];
int i = 0;
for (VirtualFile path : classPath)
roots[i++] = path;
+
+ MemoryContextFactory factory = MemoryContextFactory.getInstance();
+ VFSContext ctx = factory.createRoot(module.getDynamicClassRoot());
+
+ URL url = new URL(module.getDynamicClassRoot() + "/classes");
+ roots[i++] = factory.createDirectory(url).getVirtualFile();
+
VFSClassLoaderPolicy policy = new VFSClassLoaderPolicy(roots);
policy.setExportAll(module.getExportAll());
policy.setImportAll(module.isImportAll());
More information about the jboss-cvs-commits
mailing list