Author: bergmark
Date: Tue Jun 14 23:45:55 2011
New Revision: 1135853
URL: http://svn.apache.org/viewvc?rev=1135853&view=rev
Log:
[OWB-574] Fix NewBean for EJB's by allowing OpenWebBeansEjbPlugin to add a
NewBean implementing bean during defineSessionBean
Added:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewManagedBean.java
- copied, changed from r1135819,
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewBean.java
Modified:
openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/EjbUtility.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewBean.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
Modified:
openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/EjbUtility.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/EjbUtility.java?rev=1135853&r1=1135852&r2=1135853&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/EjbUtility.java
(original)
+++
openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/EjbUtility.java
Tue Jun 14 23:45:55 2011
@@ -170,14 +170,8 @@ public final class EjbUtility
"There are errors that are added by ProcessObserverMethod event
observers for observer methods. Look at logs for further details");
manager.addBean(ejbBean);
- try
- {
- manager.addBean(WebBeansUtil.createNewBean(ejbBean));
- }
- catch (DuplicateDefinitionException ignore)
- {
- }
+ // Let the plugin handle adding the new bean instance as it knows more
about its EJB Bean
manager.getBeans().addAll(producerMethodBeans);
ejbBeanCreator.defineDisposalMethods();
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewBean.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewBean.java?rev=1135853&r1=1135852&r2=1135853&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewBean.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewBean.java
Tue Jun 14 23:45:55 2011
@@ -18,55 +18,10 @@
*/
package org.apache.webbeans.component;
-import javax.enterprise.context.spi.CreationalContext;
-
-import org.apache.webbeans.config.WebBeansContext;
-
/**
- * Component definition with {@link javax.enterprise.inject.New} binding
annotation.
- *
- * <p>
- * It is defined as concrete java class component.
- * </p>
- *
+ * Marker interface for @New based beans
*/
-public class NewBean<T> extends ManagedBean<T>
+public interface NewBean<T>
{
- private WebBeansType definedType;
-
- public NewBean(Class<T> returnType, WebBeansType definedType,
WebBeansContext webBeansContext)
- {
- super(returnType, webBeansContext);
- this.definedType = definedType;
- }
-
- @Override
- protected T createInstance(CreationalContext<T> creationalContext)
- {
- return super.createInstance(creationalContext);
- }
-
- @Override
- protected void destroyInstance(T instance, CreationalContext<T>
creationalContext)
- {
- super.destroyInstance(instance, creationalContext);
- }
-
- /**
- * @return the definedType
- */
- public WebBeansType getDefinedType()
- {
- return definedType;
- }
-
- /**
- * always true for New qualifier
- */
- @Override
- public boolean isDependent()
- {
- return true;
- }
-}
+}
\ No newline at end of file
Copied:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewManagedBean.java
(from r1135819,
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewBean.java)
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewManagedBean.java?p2=openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewManagedBean.java&p1=openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewBean.java&r1=1135819&r2=1135853&rev=1135853&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewBean.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/NewManagedBean.java
Tue Jun 14 23:45:55 2011
@@ -30,11 +30,11 @@ import org.apache.webbeans.config.WebBea
* </p>
*
*/
-public class NewBean<T> extends ManagedBean<T>
+public class NewManagedBean<T> extends ManagedBean<T> implements NewBean
{
private WebBeansType definedType;
- public NewBean(Class<T> returnType, WebBeansType definedType,
WebBeansContext webBeansContext)
+ public NewManagedBean(Class<T> returnType, WebBeansType definedType,
WebBeansContext webBeansContext)
{
super(returnType, webBeansContext);
this.definedType = definedType;
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java?rev=1135853&r1=1135852&r2=1135853&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
Tue Jun 14 23:45:55 2011
@@ -111,6 +111,7 @@ import org.apache.webbeans.component.Inj
import org.apache.webbeans.component.InstanceBean;
import org.apache.webbeans.component.ManagedBean;
import org.apache.webbeans.component.NewBean;
+import org.apache.webbeans.component.NewManagedBean;
import org.apache.webbeans.component.OwbBean;
import org.apache.webbeans.component.ProducerFieldBean;
import org.apache.webbeans.component.ProducerMethodBean;
@@ -571,17 +572,17 @@ public final class WebBeansUtil
* @param clazz impl. class
* @return the new component
*/
- public <T> NewBean<T> createNewComponent(Class<T> clazz, Type apiType)
+ public <T> NewManagedBean<T> createNewComponent(Class<T> clazz, Type
apiType)
{
Asserts.nullCheckForClass(clazz);
- NewBean<T> comp;
+ NewManagedBean<T> comp;
DefinitionUtil definitionUtil = webBeansContext.getDefinitionUtil();
if (webBeansContext.getManagedBeanConfigurator().isManagedBean(clazz))
{
- comp = new NewBean<T>(clazz, WebBeansType.MANAGED,
webBeansContext);
+ comp = new NewManagedBean<T>(clazz, WebBeansType.MANAGED,
webBeansContext);
comp.setImplScopeType(new DependentScopeLiteral());
comp.setConstructor(defineConstructor(clazz));
definitionUtil.addConstructorInjectionPointMetaData(comp,
comp.getConstructor());
@@ -591,7 +592,7 @@ public final class WebBeansUtil
}
else if (EJBWebBeansConfigurator.isSessionBean(clazz, webBeansContext))
{
- comp = new NewBean<T>(clazz, WebBeansType.ENTERPRISE,
webBeansContext);
+ comp = new NewManagedBean<T>(clazz, WebBeansType.ENTERPRISE,
webBeansContext);
comp.setImplScopeType(new DependentScopeLiteral());
}
else
@@ -650,13 +651,13 @@ public final class WebBeansUtil
* @param bean bean instance
* @return the new bean from given managed bean
*/
- public static <T> NewBean<T> createNewBean(AbstractInjectionTargetBean<T>
bean)
+ public static <T> NewManagedBean<T>
createNewBean(AbstractInjectionTargetBean<T> bean)
{
Asserts.assertNotNull(bean, "bean argument can not be null");
- NewBean<T> comp = null;
+ NewManagedBean<T> comp = null;
- comp = new NewBean<T>(bean.getReturnType(), WebBeansType.NEW,
bean.getWebBeansContext());
+ comp = new NewManagedBean<T>(bean.getReturnType(), WebBeansType.NEW,
bean.getWebBeansContext());
comp.getTypes().addAll(bean.getTypes());