[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