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",