[jboss-cvs] JBossAS SVN: r74972 - in projects/metadata/trunk/src: main/java/org/jboss/metadata/annotation/creator/ejb/jboss and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Jun 24 07:49:34 EDT 2008
Author: emuckenhuber
Date: 2008-06-24 07:49:34 -0400 (Tue, 24 Jun 2008)
New Revision: 74972
Modified:
projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/ImplicitLocalProcessor.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/ImplicitLocalProcessor.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/lang/ClassHelper.java
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/defaultinterface/Child.java
Log:
[JBMETA-15] update ClassHelper to ignore Serializable, Externalizable interfaces
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/ImplicitLocalProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/ImplicitLocalProcessor.java 2008-06-24 11:32:25 UTC (rev 74971)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/ImplicitLocalProcessor.java 2008-06-24 11:49:34 UTC (rev 74972)
@@ -33,6 +33,7 @@
import org.jboss.metadata.annotation.finder.AnnotationFinder;
import org.jboss.metadata.ejb.spec.BusinessLocalsMetaData;
import org.jboss.metadata.ejb.spec.SessionBeanMetaData;
+import org.jboss.metadata.lang.ClassHelper;
/**
* Process the implicit local business interface (4.6.6)
@@ -60,11 +61,11 @@
return;
// Don't check super class
- if(!metaData.getEjbClass().equals(type.getName()))
+ if(metaData.getEjbName() != null && !metaData.getEjbClass().equals(type.getName()))
return;
// Get the a single interface
- Class<?> businessInterface = extractInterface(type.getInterfaces());
+ Class<?> businessInterface = ClassHelper.extractInterface(type.getInterfaces());
if(businessInterface == null)
return;
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/ImplicitLocalProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/ImplicitLocalProcessor.java 2008-06-24 11:32:25 UTC (rev 74971)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/ImplicitLocalProcessor.java 2008-06-24 11:49:34 UTC (rev 74972)
@@ -21,8 +21,6 @@
*/
package org.jboss.metadata.annotation.creator.ejb.jboss;
-import java.io.Externalizable;
-import java.io.Serializable;
import java.lang.reflect.AnnotatedElement;
import javax.ejb.EJBLocalObject;
@@ -33,6 +31,7 @@
import org.jboss.metadata.annotation.finder.AnnotationFinder;
import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
import org.jboss.metadata.ejb.spec.BusinessLocalsMetaData;
+import org.jboss.metadata.lang.ClassHelper;
/**
* Process the implicit local business interface (4.6.6)
@@ -60,11 +59,11 @@
return;
// Don't check super class
- if(!metaData.getEjbClass().equals(type.getName()))
+ if(metaData.getEjbName() != null && !metaData.getEjbClass().equals(type.getName()))
return;
// Get the a single interface
- Class<?> businessInterface = extractInterface(type.getInterfaces());
+ Class<?> businessInterface = ClassHelper.extractInterface(type.getInterfaces());
if(businessInterface == null)
return;
@@ -84,36 +83,4 @@
// Finally add local business interface
metaData.getBusinessLocals().add(businessInterface.getName());
}
-
- /**
- * Extracts a single interface.
- *
- * @param interfaces
- * @return The extracted interface class. null if there are none or more interfaces
- */
- private static Class<?> extractInterface(Class<?>... interfaces)
- {
- Class<?> iFace = null;
- for(Class<?> candidate : interfaces)
- {
- // Ignore specific interfaces
- if(Serializable.class.equals(candidate))
- continue;
- else if (Externalizable.class.equals(candidate))
- continue;
- else if (candidate.getName().startsWith("javax.ejb"))
- continue;
- else if (candidate.getName().startsWith("org.jboss.aop"))
- continue;
- else
- {
- // Just allow one interface otherwise return null
- if(iFace == null)
- iFace = candidate;
- else
- return null;
- }
- }
- return iFace;
- }
}
\ No newline at end of file
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/lang/ClassHelper.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/lang/ClassHelper.java 2008-06-24 11:32:25 UTC (rev 74971)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/lang/ClassHelper.java 2008-06-24 11:49:34 UTC (rev 74972)
@@ -21,12 +21,15 @@
*/
package org.jboss.metadata.lang;
+import java.io.Externalizable;
+import java.io.Serializable;
+
/**
* Useful methods on classes.
*
* @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
- * @version $Revision: $
+ * @version $Revision$
*/
public class ClassHelper
{
@@ -43,12 +46,44 @@
case 1:
return interfaces[0];
default:
- // TODO: maybe an exception?
- return null;
+ return extractInterface(interfaces);
}
}
/**
+ * Extracts a single interface.
+ *
+ * @param interfaces
+ * @return The extracted interface class. null if there are none or more interfaces
+ */
+ public static Class<?> extractInterface(Class<?>... interfaces)
+ {
+ Class<?> iFace = null;
+ for(Class<?> candidate : interfaces)
+ {
+ // Ignore specific interfaces
+ if(Serializable.class.equals(candidate))
+ continue;
+ else if (Externalizable.class.equals(candidate))
+ continue;
+ else if (candidate.getName().startsWith("javax.ejb"))
+ continue;
+ else if (candidate.getName().startsWith("org.jboss.aop"))
+ continue;
+ else
+ {
+ // Just allow one interface otherwise return null
+ if(iFace == null)
+ iFace = candidate;
+ else
+ return null;
+ }
+ }
+ return iFace;
+ }
+
+
+ /**
* Find the default interface of a class. If a class implements one interface,
* that interface is considered the default interface. If it does not implement
* an interface it's super class is considered. If it implements multiple
Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/defaultinterface/Child.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/defaultinterface/Child.java 2008-06-24 11:32:25 UTC (rev 74971)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/defaultinterface/Child.java 2008-06-24 11:49:34 UTC (rev 74972)
@@ -21,14 +21,16 @@
*/
package org.jboss.test.metadata.annotation.ejb3.defaultinterface;
+import java.io.Serializable;
+
/**
* A Child.
*
* @author <a href="alex at jboss.com">Alexey Loubyansky</a>
* @version $Revision: 1.1 $
*/
-public class Child extends Parent implements ChildInterface
+public class Child extends Parent implements ChildInterface, Serializable
{
}
More information about the jboss-cvs-commits
mailing list