You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by ar...@apache.org on 2013/01/05 12:43:18 UTC
svn commit: r1429265 - in /openwebbeans/trunk:
webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/
webbeans-impl/src/main/java/org/apache/webbeans/component/creation/
webbeans-impl/src/main/java/org/apache/webbeans/config/ webbeans-impl/src...
Author: arne
Date: Sat Jan 5 11:43:18 2013
New Revision: 1429265
URL: http://svn.apache.org/viewvc?rev=1429265&view=rev
Log:
OWB-745: Removed DefinitionUtil.defineProducerMethods
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/creation/AbstractInjecionTargetBeanCreator.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/DefinitionUtil.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/ManagedBeanConfigurator.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansAnnotatedTypeUtil.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=1429265&r1=1429264&r2=1429265&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 Sat Jan 5 11:43:18 2013
@@ -37,7 +37,6 @@ import javax.enterprise.inject.spi.Produ
import org.apache.webbeans.component.ProducerFieldBean;
import org.apache.webbeans.component.ProducerMethodBean;
import org.apache.webbeans.component.creation.BeanCreator.MetaDataProvider;
-import org.apache.webbeans.config.DefinitionUtil;
import org.apache.webbeans.config.WebBeansContext;
import org.apache.webbeans.container.BeanManagerImpl;
import org.apache.webbeans.ejb.common.component.BaseEjbBean;
@@ -51,6 +50,7 @@ import org.apache.webbeans.portable.even
import org.apache.webbeans.portable.events.ProcessProducerImpl;
import org.apache.webbeans.portable.events.ProcessSessionBeanImpl;
import org.apache.webbeans.portable.events.generics.GProcessSessionBean;
+import org.apache.webbeans.util.WebBeansAnnotatedTypeUtil;
import org.apache.webbeans.util.WebBeansUtil;
@SuppressWarnings("unchecked")
@@ -184,11 +184,11 @@ public final class EjbUtility
final AnnotatedType<T> annotatedType = annotatedElementFactory.newAnnotatedType(clazz);
- final DefinitionUtil util = webBeansContext.getDefinitionUtil();
+ final WebBeansAnnotatedTypeUtil util = webBeansContext.getAnnotatedTypeUtil();
- final Set<ProducerMethodBean<?>> producerMethodBeans = util.defineProducerMethods(ejbBean, clazz);
+ final Set<ProducerMethodBean<?>> producerMethodBeans = util.defineProducerMethods(ejbBean, annotatedType);
- final Set<ProducerFieldBean<?>> producerFieldBeans = webBeansContext.getAnnotatedTypeUtil().defineProducerFields(ejbBean, annotatedType);
+ final Set<ProducerFieldBean<?>> producerFieldBeans = util.defineProducerFields(ejbBean, annotatedType);
checkProducerMethods(producerMethodBeans, ejbBean);
@@ -233,7 +233,7 @@ public final class EjbUtility
manager.getBeans().addAll(producerMethodBeans);
manager.getBeans().addAll(producerFieldBeans);
- webBeansContext.getAnnotatedTypeUtil().defineDisposalMethods(ejbBean, ejbBean.getAnnotatedType());
+ util.defineDisposalMethods(ejbBean, ejbBean.getAnnotatedType());
}
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractInjecionTargetBeanCreator.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractInjecionTargetBeanCreator.java?rev=1429265&r1=1429264&r2=1429265&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractInjecionTargetBeanCreator.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractInjecionTargetBeanCreator.java Sat Jan 5 11:43:18 2013
@@ -96,15 +96,7 @@ public abstract class AbstractInjecionTa
*/
public Set<ProducerMethodBean<?>> defineProducerMethods()
{
- AbstractInjectionTargetBean bean = getBean();
- if(isDefaultMetaDataProvider())
- {
- return bean.getWebBeansContext().getDefinitionUtil().defineProducerMethods(bean);
- }
- else
- {
- return bean.getWebBeansContext().getAnnotatedTypeUtil().defineProducerMethods(bean, getAnnotatedType());
- }
+ return webBeansContext.getAnnotatedTypeUtil().defineProducerMethods(getBean(), getAnnotatedType());
}
/**
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/DefinitionUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/DefinitionUtil.java?rev=1429265&r1=1429264&r2=1429265&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/DefinitionUtil.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/DefinitionUtil.java Sat Jan 5 11:43:18 2013
@@ -610,113 +610,6 @@ public final class DefinitionUtil
}
/**
- * Defines the {@link Bean} producer methods. Moreover, it configures the
- * producer methods with using the {@link Produces} annotations.
- *
- * @param component
- * @return the set of producer components
- * @throws WebBeansConfigurationException if any exception occurs
- */
- public Set<ProducerMethodBean<?>> defineProducerMethods(AbstractInjectionTargetBean<?> component)
- {
- Asserts.assertNotNull(component, "component parameter can not be null");
-
- Class<?> clazz = component.getReturnType();
-
- return defineProducerMethods(component, clazz);
- }
-
- public Set<ProducerMethodBean<?>> defineProducerMethods(AbstractInjectionTargetBean<?> component, Class<?> clazz)
- {
- Method[] declaredMethods = webBeansContext.getSecurityService().doPrivilegedGetDeclaredMethods(clazz);
-
- Set<ProducerMethodBean<?>> producerComponents = new HashSet<ProducerMethodBean<?>>();
-
- // This methods defined in the class
- for (Method declaredMethod : declaredMethods)
- {
- createProducerComponents(component, producerComponents, declaredMethod, clazz);
- }
-
- return producerComponents;
- }
-
- private <T> void createProducerComponents(InjectionTargetBean<T> component, Set<ProducerMethodBean<?>> producerComponents,
- Method declaredMethod, Class<?> clazz)
- {
- boolean isSpecializes = false;
-
- // Producer Method
- if (AnnotationUtil.hasMethodAnnotation(declaredMethod, Produces.class))
- {
- WebBeansUtil.checkProducerMethodForDeployment(declaredMethod, clazz.getName());
-
- if (AnnotationUtil.hasMethodAnnotation(declaredMethod, Specializes.class))
- {
- if (Modifier.isStatic(declaredMethod.getModifiers()))
- {
- throw new WebBeansConfigurationException("Specializing producer method : " + declaredMethod.getName()
- + " in class : " + clazz.getName()
- + " can not be static");
- }
-
- isSpecializes = true;
- }
-
- ProducerMethodBean<?> newComponent = createProducerComponent(declaredMethod.getReturnType(), declaredMethod, component, isSpecializes);
-
- if (component instanceof EnterpriseBeanMarker)
- {
- final OpenWebBeansEjbPlugin ejbPlugin = webBeansContext.getPluginLoader().getEjbPlugin();
-
- Method method = ejbPlugin.resolveViewMethod(component, declaredMethod);
- newComponent.setCreatorMethod(method);
- }
-
- if (newComponent != null)
- {
- producerComponents.add(newComponent);
- addMethodInjectionPointMetaData(newComponent, declaredMethod);
- }
- }
-
- }
-
- public <T> ProducerMethodBean<T> createProducerComponent(Class<T> returnType, Method method, InjectionTargetBean<?> parent,
- boolean isSpecializes)
- {
- ProducerMethodBean<T> component = new ProducerMethodBean<T>(parent, returnType);
- component.setCreatorMethod(method);
-
- if (isSpecializes)
- {
- WebBeansUtil.configureProducerSpecialization(component, method, parent.getReturnType().getSuperclass());
- }
-
- if (returnType.isPrimitive())
- {
- component.setNullable(false);
- }
-
- defineSerializable(component);
- defineStereoTypes(component, method.getDeclaredAnnotations());
-
- Annotation[] methodAnns = method.getDeclaredAnnotations();
-
- webBeansContext.getWebBeansUtil().setBeanEnableFlagForProducerBean(parent, component, methodAnns);
-
- defineProducerMethodApiTypes(component, method.getGenericReturnType(), methodAnns);
- defineScopeType(component, methodAnns, "WebBeans producer method : " + method.getName() + " in class " + parent.getReturnType().getName()
- + " must declare default @Scope annotation", false);
- webBeansContext.getWebBeansUtil().checkUnproxiableApiType(component, component.getScope());
- WebBeansUtil.checkProducerGenericType(component,method);
- defineName(component, methodAnns, WebBeansUtil.getProducerDefaultName(method.getName()));
- defineQualifiers(component, methodAnns);
-
- return component;
- }
-
- /**
* Configure bean instance interceptor stack.
* @param bean bean instance
*/
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/ManagedBeanConfigurator.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/ManagedBeanConfigurator.java?rev=1429265&r1=1429264&r2=1429265&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/ManagedBeanConfigurator.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/ManagedBeanConfigurator.java Sat Jan 5 11:43:18 2013
@@ -36,6 +36,7 @@ import org.apache.webbeans.exception.Web
import org.apache.webbeans.portable.creation.InjectionTargetProducer;
import org.apache.webbeans.portable.creation.ProducerBeansProducer;
import org.apache.webbeans.util.AnnotationUtil;
+import org.apache.webbeans.util.WebBeansAnnotatedTypeUtil;
import org.apache.webbeans.util.WebBeansUtil;
/**
@@ -112,7 +113,7 @@ public final class ManagedBeanConfigurat
{
BeanManagerImpl manager = webBeansContext.getBeanManagerImpl();
DefinitionUtil definitionUtil = webBeansContext.getDefinitionUtil();
-
+ WebBeansAnnotatedTypeUtil annotatedTypeUtil = webBeansContext.getAnnotatedTypeUtil();
int modifier = clazz.getModifiers();
@@ -159,7 +160,7 @@ public final class ManagedBeanConfigurat
//Dropped from the speicification
//WebBeansUtil.checkSteroTypeRequirements(component, clazz.getDeclaredAnnotations(), "Simple WebBean Component implementation class : " + clazz.getName());
- Set<ProducerMethodBean<?>> producerMethods = definitionUtil.defineProducerMethods(component);
+ Set<ProducerMethodBean<?>> producerMethods = annotatedTypeUtil.defineProducerMethods(component, component.getAnnotatedType());
for (ProducerMethodBean<?> producerMethod : producerMethods)
{
// add them one after the other to enable serialization handling et al
@@ -167,7 +168,7 @@ public final class ManagedBeanConfigurat
manager.putProducer(producerMethod, new ProducerBeansProducer(producerMethod));
}
- Set<ProducerFieldBean<?>> producerFields = webBeansContext.getAnnotatedTypeUtil().defineProducerFields(component, component.getAnnotatedType());
+ Set<ProducerFieldBean<?>> producerFields = annotatedTypeUtil.defineProducerFields(component, component.getAnnotatedType());
for (ProducerFieldBean<?> producerField : producerFields)
{
// add them one after the other to enable serialization handling et al
@@ -176,10 +177,10 @@ public final class ManagedBeanConfigurat
}
- webBeansContext.getAnnotatedTypeUtil().defineDisposalMethods(component, component.getAnnotatedType());
- webBeansContext.getAnnotatedTypeUtil().defineInjectedFields(component, component.getAnnotatedType());
- webBeansContext.getAnnotatedTypeUtil().defineInjectedMethods(component, component.getAnnotatedType());
- webBeansContext.getAnnotatedTypeUtil().defineObserverMethods(component, component.getAnnotatedType());
+ annotatedTypeUtil.defineDisposalMethods(component, component.getAnnotatedType());
+ annotatedTypeUtil.defineInjectedFields(component, component.getAnnotatedType());
+ annotatedTypeUtil.defineInjectedMethods(component, component.getAnnotatedType());
+ annotatedTypeUtil.defineObserverMethods(component, component.getAnnotatedType());
return component;
}
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansAnnotatedTypeUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansAnnotatedTypeUtil.java?rev=1429265&r1=1429264&r2=1429265&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansAnnotatedTypeUtil.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansAnnotatedTypeUtil.java Sat Jan 5 11:43:18 2013
@@ -465,6 +465,7 @@ public final class WebBeansAnnotatedType
webBeansContext.getWebBeansUtil().setBeanEnableFlagForProducerBean(bean, producerFieldBean, anns);
if (producerFieldBean.getReturnType().isArray())
{
+ // TODO this special handling should not be necessary, seems to be a bug in the tck
producerFieldBean.getTypes().add(Object.class);
producerFieldBean.getTypes().add(producerFieldBean.getReturnType());
}
@@ -530,8 +531,16 @@ public final class WebBeansAnnotatedType
producerMethodBean,
AnnotationUtil.getAnnotationsFromSet(annotatedMethod.getAnnotations()));
- Set<Type> types = annotatedMethod.getTypeClosure();
- producerMethodBean.getTypes().addAll(types);
+ if (producerMethodBean.getReturnType().isArray())
+ {
+ // TODO this special handling should not be necessary, seems to be a bug in the tck
+ producerMethodBean.getTypes().add(Object.class);
+ producerMethodBean.getTypes().add(producerMethodBean.getReturnType());
+ }
+ else
+ {
+ producerMethodBean.getTypes().addAll(annotatedMethod.getTypeClosure());
+ }
definitionUtil.defineScopeType(producerMethodBean,
AnnotationUtil.getAnnotationsFromSet(annotatedMethod.getAnnotations()),
"Annotated producer method : " + annotatedMethod + "must declare default @Scope annotation",