[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