[jboss-cvs] JBossAS SVN: r69229 - projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/plugins/classloader.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Jan 23 01:10:57 EST 2008
Author: scott.stark at jboss.org
Date: 2008-01-23 01:10:57 -0500 (Wed, 23 Jan 2008)
New Revision: 69229
Modified:
projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/plugins/classloader/PackageVisitor.java
projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/plugins/classloader/VFSClassLoaderPolicy.java
Log:
JBMICROCONT-228, add excludedPackage setting
Modified: projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/plugins/classloader/PackageVisitor.java
===================================================================
--- projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/plugins/classloader/PackageVisitor.java 2008-01-23 00:16:59 UTC (rev 69228)
+++ projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/plugins/classloader/PackageVisitor.java 2008-01-23 06:10:57 UTC (rev 69229)
@@ -51,7 +51,9 @@
/** The exportAll policy */
private ExportAll exportAll;
+ private Set<String> excludedPackages;
+
/**
* Create a new PackageVisitor.
*
@@ -60,9 +62,14 @@
*/
public PackageVisitor(ExportAll exportAll)
{
+ this(exportAll, null);
+ }
+ public PackageVisitor(ExportAll exportAll, Set<String> excludedPackages)
+ {
if (exportAll == null)
throw new IllegalArgumentException("Null exportAll policy");
this.exportAll = exportAll;
+ this.excludedPackages = excludedPackages;
}
/**
@@ -133,7 +140,28 @@
path = "";
else if (path.startsWith(rootPathWithSlash))
path = path.substring(rootPathWithSlash.length());
- packages.add(path.replace('/', '.'));
+ String pkg = path.replace('/', '.');
+ // Check for excluded package prefixes
+ if(excludedPackages != null)
+ {
+ // Look at each package up to the root
+ String prefix = pkg;
+ while(prefix.length() >= 0)
+ {
+ if(excludedPackages.contains(prefix))
+ {
+ pkg = null;
+ break;
+ }
+ int dot = prefix.lastIndexOf('.');
+ if(dot > 0)
+ prefix = prefix.substring(0, dot);
+ else
+ break;
+ }
+ }
+ if(pkg != null)
+ packages.add(pkg);
}
}
}
Modified: projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/plugins/classloader/VFSClassLoaderPolicy.java
===================================================================
--- projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/plugins/classloader/VFSClassLoaderPolicy.java 2008-01-23 00:16:59 UTC (rev 69228)
+++ projects/microcontainer/trunk/deployers-vfs/src/main/org/jboss/deployers/vfs/plugins/classloader/VFSClassLoaderPolicy.java 2008-01-23 06:10:57 UTC (rev 69229)
@@ -70,7 +70,10 @@
/** The exported packages */
private String[] exportedPackages;
-
+
+ /** Package */
+ private Set<String> excludedPackages;
+
/** The import all */
private boolean importAll;
@@ -188,6 +191,23 @@
exportedPackages = null;
}
+
+
+ public Set<String> getExcludedPackages()
+ {
+ return excludedPackages;
+ }
+
+ public void setExcludedPackages(Set<String> excludedPackages)
+ {
+ this.excludedPackages = excludedPackages;
+ }
+
+ public String[] getExportedPackages()
+ {
+ return exportedPackages;
+ }
+
@Override
public boolean isImportAll()
{
@@ -409,7 +429,7 @@
*/
protected Set<String> determineAllPackages()
{
- PackageVisitor visitor = new PackageVisitor(exportAll);
+ PackageVisitor visitor = new PackageVisitor(exportAll, excludedPackages);
for (VirtualFile root : roots)
{
try
More information about the jboss-cvs-commits
mailing list