Author: dallen6
Date: 2008-10-31 15:00:18 -0400 (Fri, 31 Oct 2008)
New Revision: 213
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/EventBeanModel.java
Log:
Fixed Java 6 compiler error and replaced the reflection on T to find the constructor.
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/EventBeanModel.java
===================================================================
---
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/EventBeanModel.java 2008-10-31
14:46:37 UTC (rev 212)
+++
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/EventBeanModel.java 2008-10-31
19:00:18 UTC (rev 213)
@@ -2,6 +2,7 @@
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
+import java.util.logging.Level;
import java.util.logging.Logger;
import javax.webbeans.Dependent;
@@ -14,6 +15,8 @@
import org.jboss.webbeans.introspector.SimpleAnnotatedField;
import org.jboss.webbeans.util.LoggerUtil;
+import com.sun.org.apache.xerces.internal.dom.events.EventImpl;
+
/**
* Web Beans bean meta model for the container instantiated, injectable,
* observable events (Section 7.4).
@@ -28,33 +31,32 @@
private String location;
private SimpleAnnotatedField<T> annotatedItem;
private SimpleAnnotatedField<T> xmlAnnotatedItem;
- private BeanConstructor<T> constructor;
+ private BeanConstructor<T> constructor;
public EventBeanModel(SimpleAnnotatedField<T> annotatedItem,
SimpleAnnotatedField<T> xmlAnnotatedItem, ManagerImpl manager)
{
this.annotatedItem = annotatedItem;
this.xmlAnnotatedItem = xmlAnnotatedItem;
+ initConstructor();
this.init(manager);
}
- @Override
- protected void init(ManagerImpl container)
- {
- super.init(container);
- this.initConstructor();
- }
-
/**
- * Initializes the constructor field of this class.
+ * Caches the constructor for this type of bean to avoid future reflections during
use.
*/
- protected void initConstructor()
+ @SuppressWarnings("unchecked")
+ private void initConstructor()
{
- // There should only be one constructor for the event implementation used here
- // TODO Probably don't need to use reflection as this is a container supplied
class
- Constructor<T> classConstructor =
this.annotatedItem.getType().getConstructors()[0];
- constructor = new SimpleConstructor<T>(classConstructor);
+ try
+ {
+ constructor = new SimpleConstructor<T>((Constructor<T>)
EventImpl.class.getConstructor((Class[])null));
+ } catch (Exception e)
+ {
+ log.log(Level.SEVERE, "Unable to get constructor for build-in Event
implementation", e);
+ }
}
+
public BeanConstructor<T> getConstructor()
{
return constructor;