You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2012/06/24 23:35:57 UTC
svn commit: r1353337 -
/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
Author: rmannibucau
Date: Sun Jun 24 21:35:57 2012
New Revision: 1353337
URL: http://svn.apache.org/viewvc?rev=1353337&view=rev
Log:
OPENEJB-1844 invoking bm.createAnnotatedType() from processannotatedtype (in an extension) doesn't work if the type is not already processed
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java?rev=1353337&r1=1353336&r2=1353337&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java Sun Jun 24 21:35:57 2012
@@ -16,6 +16,8 @@
*/
package org.apache.openejb.cdi;
+import java.util.LinkedHashMap;
+import java.util.Map;
import org.apache.openejb.AppContext;
import org.apache.openejb.BeanContext;
import org.apache.openejb.OpenEJBRuntimeException;
@@ -53,12 +55,8 @@ import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.jsp.JspApplicationContext;
import javax.servlet.jsp.JspFactory;
-import java.io.BufferedInputStream;
import java.io.IOException;
-import java.io.InputStream;
-import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
-import java.net.URL;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
@@ -125,30 +123,6 @@ public class OpenEJBLifecycle implements
return this.beanManager;
}
- private String readContents(URL resource) throws IOException {
- InputStream in = resource.openStream();
- BufferedInputStream reader = null;
- StringBuilder sb = new StringBuilder();
-
- try {
- reader = new BufferedInputStream(in);
-
- int b = reader.read();
- while (b != -1) {
- sb.append((char) b);
- b = reader.read();
- }
-
- return sb.toString().trim();
- } finally {
- try {
- in.close();
- reader.close();
- } catch (Exception e) {
- }
- }
- }
-
@Override
public void startApplication(Object startupObject)
{
@@ -388,20 +362,23 @@ public class OpenEJBLifecycle implements
}
}
// Start from the class
- for (Class<?> implClass : managedBeans) {
+ final Map<Class<?>, AnnotatedType<?>> annotatedTypes = new LinkedHashMap<Class<?>, AnnotatedType<?>>();
+ for (Class<?> implClass : managedBeans) { // create all annotated types first to be sure extensions can use it during the fire
//Define annotation type
- AnnotatedType<?> annotatedType = webBeansContext.getAnnotatedElementFactory().newAnnotatedType(implClass);
-
+ annotatedTypes.put(implClass, webBeansContext.getAnnotatedElementFactory().newAnnotatedType(implClass));
+ }
+ for (Map.Entry<Class<?>, AnnotatedType<?>> implClass : annotatedTypes.entrySet()) {
//Fires ProcessAnnotatedType
- ProcessAnnotatedTypeImpl<?> processAnnotatedEvent = webBeansContext.getWebBeansUtil().fireProcessAnnotatedTypeEvent(annotatedType);
+ ProcessAnnotatedTypeImpl<?> processAnnotatedEvent = webBeansContext.getWebBeansUtil().fireProcessAnnotatedTypeEvent(implClass.getValue());
//if veto() is called
if (processAnnotatedEvent.isVeto()) {
continue;
}
- deployer.defineManagedBean((Class<Object>) implClass, (ProcessAnnotatedTypeImpl<Object>) processAnnotatedEvent);
+ deployer.defineManagedBean((Class<Object>) implClass.getKey(), (ProcessAnnotatedTypeImpl<Object>) processAnnotatedEvent);
}
+ annotatedTypes.clear();
}
@Override
@@ -526,6 +503,7 @@ public class OpenEJBLifecycle implements
protected void afterStartApplication(final Object startupObject)
{
+ // no-op
}
public void startServletContext(final ServletContext servletContext) {