[jboss-cvs] jboss-seam/src/main/org/jboss/seam/deployment ...

Norman Richards norman.richards at jboss.com
Fri Jun 15 18:55:50 EDT 2007


  User: nrichards
  Date: 07/06/15 18:55:49

  Modified:    src/main/org/jboss/seam/deployment   ComponentScanner.java
                        Scanner.java
  Log:
  JBSEAM-669
  
  Revision  Changes    Path
  1.9       +25 -19    jboss-seam/src/main/org/jboss/seam/deployment/ComponentScanner.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: ComponentScanner.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/deployment/ComponentScanner.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -b -r1.8 -r1.9
  --- ComponentScanner.java	18 Apr 2007 06:40:06 -0000	1.8
  +++ ComponentScanner.java	15 Jun 2007 22:55:49 -0000	1.9
  @@ -18,6 +18,8 @@
   
      protected Set<Class<Object>> classes;
   
  +   private Set<String> resources;
  +
      public ComponentScanner(String resourceName)
      {
         super(resourceName);
  @@ -33,46 +35,50 @@
       */
      public Set<Class<Object>> getClasses()
      {
  -      if (classes == null)
  -      {
  +      if (classes == null) {
            classes = new HashSet<Class<Object>>();
  +         resources = new HashSet<String>();
            scan();
         }
         return classes;
      }
   
  +   public Set<String> getResources() {
  +       return resources;
  +   }
  +
      @Override
  +   @SuppressWarnings("unchecked")
      protected void handleItem(String name)
      {
  -      if ( name.endsWith(".class") )
  -      {
  +      if (name.endsWith(".class")) {
            String classname = filenameToClassname(name);
            String filename = Scanner.componentFilename(name);
  -         try
  -         {
  +         try {
               ClassFile classFile = getClassFile(name);
               boolean installable = ( hasAnnotation(classFile, Name.class) || classLoader.getResources(filename).hasMoreElements() )
                        && !"false".equals( getAnnotationValue(classFile, Install.class, "value") );
  -            if (installable)
  -            {
  +            if (installable) {
                  log.debug("found component class: " + name);
                  classes.add( (Class<Object>) classLoader.loadClass(classname) );
               }
  -         }
  -         catch (ClassNotFoundException cnfe)
  -         {
  -            log.debug("could not load class: " + classname, cnfe);
   
  -         }
  -         catch (NoClassDefFoundError ncdfe)
  -         {
  +         } catch (ClassNotFoundException cnfe) {
  +            log.debug("could not load class: " + classname, cnfe);
  +         } catch (NoClassDefFoundError ncdfe) {
               log.debug("could not load class (missing dependency): " + classname, ncdfe);
  -
  -         }
  -         catch (IOException ioe)
  -         {
  +         } catch (IOException ioe) {
               log.debug("could not load classfile: " + classname, ioe);
            }
  +      } else if (name.endsWith(".component.xml")) {
  +          resources.add(name);
  +      } else if (name.endsWith("/components.xml")) {
  +          resources.add(name);
  +      }
  +           
         }
  +   
  +   public ClassLoader getClassLoader() {
  +       return classLoader;
      }
   }
  
  
  
  1.28      +6 -1      jboss-seam/src/main/org/jboss/seam/deployment/Scanner.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Scanner.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/deployment/Scanner.java,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -b -r1.27 -r1.28
  --- Scanner.java	18 Apr 2007 06:40:06 -0000	1.27
  +++ Scanner.java	15 Jun 2007 22:55:49 -0000	1.28
  @@ -1,4 +1,4 @@
  -//$Id: Scanner.java,v 1.27 2007/04/18 06:40:06 ebernard Exp $
  +//$Id: Scanner.java,v 1.28 2007/06/15 22:55:49 nrichards Exp $
   package org.jboss.seam.deployment;
   
   import java.io.DataInputStream;
  @@ -48,6 +48,11 @@
               .replace('/', '.').replace('\\', '.');
      }
      
  +   public static String filenameToPackage(String filename)
  +   {
  +      return filename.substring( 0, filename.lastIndexOf(".class") )
  +            .replace('/', '.').replace('\\', '.');
  +   }
   
       protected void scan() 
       {
  
  
  



More information about the jboss-cvs-commits mailing list