You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by ge...@apache.org on 2010/01/10 01:00:17 UTC
svn commit: r897579 - in /openwebbeans/trunk: ./
webbeans-impl/src/main/java/org/apache/webbeans/component/
webbeans-impl/src/main/java/org/apache/webbeans/component/creation/
webbeans-impl/src/main/java/org/apache/webbeans/config/
webbeans-impl/src/ma...
Author: gerdogdu
Date: Sun Jan 10 00:00:16 2010
New Revision: 897579
URL: http://svn.apache.org/viewvc?rev=897579&view=rev
Log:
[OWB-223] Tests has done in between 3.1 - 3.4
Added:
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/PersonProducerTest.java (with props)
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/beans/
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/beans/PersonProducerBean.java (with props)
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/common/
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/common/Person.java (with props)
Modified:
openwebbeans/trunk/TCK-STANDALONE
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerFieldBean.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerMethodBean.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanCreatorImpl.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/ManagedBeanConfigurator.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/AbstractInjectable.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/InjectableMethods.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/TestContext.java
openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/BeansImpl.java
Modified: openwebbeans/trunk/TCK-STANDALONE
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/TCK-STANDALONE?rev=897579&r1=897578&r2=897579&view=diff
==============================================================================
--- openwebbeans/trunk/TCK-STANDALONE (original)
+++ openwebbeans/trunk/TCK-STANDALONE Sun Jan 10 00:00:16 2010
@@ -79,7 +79,30 @@
Section 2.7.1.2 - Specifying interceptor bindings for a stereotype (PASSED)
Section 2.7.1.3 - Declaring a @Named stereotype (PASSED)
Section 2.7.1.4 - Declaring an @Alternative stereotype (PASSED)
-Section 2.7.1.5 - Stereotypes with additional stereotypes (PASSED But it seems some errors in TCK)
+Section 2.7.1.5 - Stereotypes with additional stereotypes (PASSED)
Section 2.7.2 - Declaring the stereotypes for a bean (PASSED)
Section 2.7.3 - Built-in stereotypes (PASSED)
Section 2.8 - Problems detected automatically by the container (PASSED)
+Section 3.1.1 - Which Java classes are managed beans? (PASSED)
+ # ITEM f ) This is a BROKEN and not included with test
+ # ITEM n ) This is an INTEGRATION TEST
+Section 3.1.2 - Bean types of a managed bean(PASSED)
+Section 3.1.3 - Declaring a managed bean (PASSED)
+Section 3.1.4 - Specializing a managed bean (PASSED with followings)
+ # ITEM ac) FAILED
+ #Â ITEM dc) This is an INTEGRATION TEST
+Section 3.1.5 - Default name for a managed bean (PASSED)
+Section 3.2 - Session Beans (INTEGRATION TEST)
+Section 3.3 - Producer methods (PASSED)
+ #Â ITEM d) This is an INTEGRATION TEST
+Section 3.3.1 - Bean types of a producer method (PASSED)
+Section 3.3.2 - Declaring a producer method (PASSED with followings)
+ #Â ITEM fa) This is an INTEGRATION TEST
+Section 3.3.3 - Specializing a producer method (PASSED)
+Section 3.3.4 - Disposer methods (PASSED with following)
+ #Â ITEM d) This is an INTEGRATION TEST
+Section 3.3.5 - Disposed parameter of a disposer method (PASSED)
+Section 3.3.6 - Declaring a disposer method (PASSED with following)
+ #Â ITEM fa) This is an INTEGRATION TEST
+Section 3.3.7 - Disposer method resolution (PASSED)
+Section 3.3.8 - Default name for a producer method (PASSED)
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerFieldBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerFieldBean.java?rev=897579&r1=897578&r2=897579&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerFieldBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerFieldBean.java Sun Jan 10 00:00:16 2010
@@ -79,8 +79,11 @@
{
T instance = null;
Object parentInstance = null;
+ CreationalContext<?> parentCreational = null;
try
{
+ parentCreational = getManager().createCreationalContext(this.ownerComponent);
+
if (!producerField.isAccessible())
{
producerField.setAccessible(true);
@@ -91,8 +94,9 @@
instance = (T) producerField.get(null);
}
else
- {
- parentInstance = getParentInstance(creationalContext);
+ {
+ parentInstance = getParentInstance(parentCreational);
+
instance = (T) producerField.get(parentInstance);
}
}catch(Exception e)
@@ -103,7 +107,7 @@
{
if (this.ownerComponent.getScope().equals(Dependent.class))
{
- destroyBean(this.ownerComponent, parentInstance, creationalContext);
+ destroyBean(this.ownerComponent, parentInstance, parentCreational);
}
}
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerMethodBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerMethodBean.java?rev=897579&r1=897578&r2=897579&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerMethodBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerMethodBean.java Sun Jan 10 00:00:16 2010
@@ -155,12 +155,14 @@
{
T instance = null;
Object parentInstance = null;
-
+ CreationalContext<?> parentCreational = null;
try
{
+ parentCreational = getManager().createCreationalContext(this.ownerComponent);
+
if (!Modifier.isStatic(creatorMethod.getModifiers()))
{
- parentInstance = getParentInstance(creationalContext);
+ parentInstance = getParentInstance(parentCreational);
}
InjectableMethods<T> m = new InjectableMethods<T>(creatorMethod, parentInstance, this, creationalContext);
@@ -172,7 +174,7 @@
{
if (getParent().getScope().equals(Dependent.class))
{
- destroyBean(getParent(), parentInstance, creationalContext);
+ destroyBean(getParent(), parentInstance, parentCreational);
}
}
@@ -214,15 +216,19 @@
if (disposalMethod != null)
{
Object parentInstance = null;
-
+ CreationalContext<?> parentCreational = null;
try
{
+ parentCreational = getManager().createCreationalContext(this.ownerComponent);
+
if (!Modifier.isStatic(disposalMethod.getModifiers()))
{
- parentInstance = getParentInstance(creationalContext);
+ parentInstance = getParentInstance(parentCreational);
}
InjectableMethods<T> m = new InjectableMethods<T>(disposalMethod, parentInstance, this.ownerComponent, creationalContext);
+ m.setDisposable(true);
+ m.setProducerMethodInstance(instance);
m.doInjection();
@@ -231,7 +237,7 @@
{
if (getParent().getScope().equals(Dependent.class))
{
- destroyBean(getParent(), parentInstance, creationalContext);
+ destroyBean(getParent(), parentInstance, parentCreational);
}
}
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanCreatorImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanCreatorImpl.java?rev=897579&r1=897578&r2=897579&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanCreatorImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanCreatorImpl.java Sun Jan 10 00:00:16 2010
@@ -49,7 +49,7 @@
@Override
public void checkCreateConditions()
{
- ManagedBeanConfigurator.checkSimpleWebBeanCondition(getBean().getReturnType());
+ ManagedBeanConfigurator.checkManagedBeanCondition(getBean().getReturnType());
WebBeansUtil.checkGenericType(getBean());
}
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java?rev=897579&r1=897578&r2=897579&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java Sun Jan 10 00:00:16 2010
@@ -655,15 +655,20 @@
managedBeanCreator.setMetaDataProvider(MetaDataProvider.THIRDPARTY);
}
- //Define meta-data
managedBeanCreator.defineSerializable();
+
+ //Scope type
+ managedBeanCreator.defineScopeType(logger.getTokenString(OWBLogConst.TEXT_MB_IMPL) + clazz.getName() + logger.getTokenString(OWBLogConst.TEXT_SAME_SCOPE));
+ managedBeanCreator.checkCreateConditions();
+
+
+ //Define meta-data
managedBeanCreator.defineStereoTypes();
//Check for Enabled via Alternative
WebBeansUtil.setBeanEnableFlag(managedBean);
managedBeanCreator.defineApiType();
- managedBeanCreator.defineScopeType(logger.getTokenString(OWBLogConst.TEXT_MB_IMPL) + clazz.getName() + logger.getTokenString(OWBLogConst.TEXT_SAME_SCOPE));
managedBeanCreator.defineQualifier();
managedBeanCreator.defineName(WebBeansUtil.getSimpleWebBeanDefaultName(clazz.getSimpleName()));
managedBeanCreator.defineConstructor();
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=897579&r1=897578&r2=897579&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 Sun Jan 10 00:00:16 2010
@@ -54,13 +54,13 @@
* @param clazz implementation class
* @throws WebBeansConfigurationException if any configuration exception occurs
*/
- public static void checkSimpleWebBeanCondition(Class<?> clazz) throws WebBeansConfigurationException
+ public static void checkManagedBeanCondition(Class<?> clazz) throws WebBeansConfigurationException
{
int modifier = clazz.getModifiers();
if (AnnotationUtil.hasClassAnnotation(clazz, Decorator.class) && AnnotationUtil.hasClassAnnotation(clazz, Interceptor.class))
{
- throw new WebBeansConfigurationException("Simple WebBean Component implementation class : " + clazz.getName() + " may not annotated with both @Interceptor and @Decorator annotation");
+ throw new WebBeansConfigurationException("ManagedBean implementation class : " + clazz.getName() + " may not annotated with both @Interceptor and @Decorator annotation");
}
if (!AnnotationUtil.hasClassAnnotation(clazz, Decorator.class) && !AnnotationUtil.hasClassAnnotation(clazz, Interceptor.class))
@@ -70,7 +70,7 @@
if (ClassUtil.isInterface(modifier))
{
- throw new WebBeansConfigurationException("Simple WebBean Component implementation class : " + clazz.getName() + " may not defined as interface");
+ throw new WebBeansConfigurationException("ManagedBean implementation class : " + clazz.getName() + " may not defined as interface");
}
}
@@ -108,7 +108,7 @@
{
BeanManagerImpl manager = BeanManagerImpl.getManager();
- checkSimpleWebBeanCondition(clazz);
+ checkManagedBeanCondition(clazz);
ManagedBean<T> component = new ManagedBean<T>(clazz, type);
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/AbstractInjectable.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/AbstractInjectable.java?rev=897579&r1=897578&r2=897579&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/AbstractInjectable.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/AbstractInjectable.java Sun Jan 10 00:00:16 2010
@@ -29,6 +29,7 @@
import org.apache.webbeans.component.InstanceBean;
import org.apache.webbeans.container.BeanManagerImpl;
import org.apache.webbeans.container.InjectionResolver;
+import org.apache.webbeans.context.creational.CreationalContextImpl;
import org.apache.webbeans.util.AnnotationUtil;
import org.apache.webbeans.util.WebBeansUtil;
@@ -71,8 +72,11 @@
* @param injectionPoint injection point definition
* @return current bean instance in the resolved bean scope
*/
+ @SuppressWarnings("unchecked")
public <T> Object inject(InjectionPoint injectionPoint)
{
+ Object injected = null;
+
if(injectionPoint.getType().equals(InjectionPoint.class))
{
//Try to inject dependent owner injection point
@@ -87,19 +91,37 @@
}
//Get injection point Bean to look for @Dependent
- Bean<?> component = InjectionResolver.getInstance().getInjectionPointBean(injectionPoint);
+ Bean<?> injectedBean = InjectionResolver.getInstance().getInjectionPointBean(injectionPoint);
+
+ boolean dependent = false;
//Managed @Dependence instances
- if (component.getScope().equals(Dependent.class))
+ if (injectedBean.getScope().equals(Dependent.class))
+ {
+ dependent = true;
+ }
+
+ if(dependent && (WebBeansUtil.isManagedBean(this.injectionOwnerComponent) ||
+ WebBeansUtil.isEnterpriseBean(this.injectionOwnerComponent)))
+ {
+ injected = injectForBeanDependent(injectedBean,injectionPoint);
+ }
+ else
{
- if(WebBeansUtil.isManagedBean(this.injectionOwnerComponent) ||
- WebBeansUtil.isEnterpriseBean(this.injectionOwnerComponent))
+ injected = injectForComponent(injectionPoint);
+
+ if(dependent && WebBeansUtil.isProducerBean(this.injectionOwnerComponent))
{
- return injectForDependent(component,injectionPoint);
- }
+ if(this.creationalContext instanceof CreationalContext)
+ {
+ CreationalContextImpl<?> cc = (CreationalContextImpl<?>)this.creationalContext;
+ cc.addDependent((Bean<Object>)injectedBean, injected, BeanManagerImpl.getManager().createCreationalContext((Bean<Object>)injectedBean));
+ }
+ }
}
+
- return injectForComponent(injectionPoint);
+ return injected;
}
/**
@@ -136,7 +158,7 @@
* @param injectionPoint injection point
* @return injection point instance
*/
- private Object injectForDependent(Bean<?> bean, InjectionPoint injectionPoint)
+ private Object injectForBeanDependent(Bean<?> bean, InjectionPoint injectionPoint)
{
Object object = null;
object = this.injectionOwnerComponent.getDependent(bean,injectionPoint, this.creationalContext);
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/InjectableMethods.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/InjectableMethods.java?rev=897579&r1=897578&r2=897579&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/InjectableMethods.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/InjectableMethods.java Sun Jan 10 00:00:16 2010
@@ -18,6 +18,7 @@
import java.util.List;
import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.Disposes;
import javax.enterprise.inject.spi.AnnotatedParameter;
import javax.enterprise.inject.spi.InjectionPoint;
@@ -32,6 +33,10 @@
/** Component instance that owns the method */
protected Object instance;
+
+ private boolean disposable;
+
+ private Object producerMethodInstance = null;
/**
* Constructs new instance.
@@ -64,7 +69,15 @@
AnnotatedParameter<?> parameter = (AnnotatedParameter<?>)point.getAnnotated();
if(parameter.getPosition() == i)
{
- list.add(inject(point));
+ if(isDisposable() && parameter.getAnnotation(Disposes.class) != null)
+ {
+ list.add(this.producerMethodInstance);
+ }
+ else
+ {
+ list.add(inject(point));
+ }
+
break;
}
}
@@ -85,4 +98,25 @@
throw new WebBeansException(e);
}
}
+
+ /**
+ * @return the disposable
+ */
+ private boolean isDisposable()
+ {
+ return disposable;
+ }
+
+ /**
+ * @param disposable the disposable to set
+ */
+ public void setDisposable(boolean disposable)
+ {
+ this.disposable = disposable;
+ }
+
+ public void setProducerMethodInstance(Object instance)
+ {
+ this.producerMethodInstance = instance;
+ }
}
\ No newline at end of file
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java?rev=897579&r1=897578&r2=897579&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java Sun Jan 10 00:00:16 2010
@@ -24,6 +24,7 @@
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.Decorator;
import org.apache.webbeans.annotation.WebBeansAnnotation;
import org.apache.webbeans.component.AbstractBean;
@@ -69,7 +70,8 @@
Object result = null;
List<InterceptorData> interceptors = ((AbstractBean<?>) bean).getInterceptorStack();
- if(interceptors.isEmpty())
+ List<Decorator<?>> decorators = ((AbstractBean<?>) bean).getDecorators();
+ if(interceptors.isEmpty() && decorators.isEmpty())
{
return actualInstance;
}
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=897579&r1=897578&r2=897579&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 Sun Jan 10 00:00:16 2010
@@ -60,6 +60,7 @@
import javax.enterprise.inject.spi.AnnotatedType;
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.BeanManager;
+import javax.enterprise.inject.spi.Extension;
import javax.enterprise.inject.spi.InjectionPoint;
import javax.enterprise.inject.spi.Interceptor;
import javax.enterprise.inject.spi.ObserverMethod;
@@ -188,7 +189,7 @@
{
if(!bean.getScope().equals(Dependent.class))
{
- throw new WebBeansConfigurationException("Generic type may only defined with scope @Dependent for bean class : " + clazz.getName());
+ throw new WebBeansConfigurationException("Generic type may only defined with scope @Dependent for ManagedBean class : " + clazz.getName());
}
}
}
@@ -294,6 +295,11 @@
{
throw new WebBeansConfigurationException("Bean implementation class : " + clazz.getName() + " must define at least one Constructor");
}
+
+ if(Extension.class.isAssignableFrom(clazz))
+ {
+ throw new WebBeansConfigurationException("Bean implementation class can not implement javax.enterprise.inject.spi.Extension.!");
+ }
// and finally call all checks which are defined in plugins like JSF, JPA, etc
List<OpenWebBeansPlugin> plugins = PluginLoader.getInstance().getPlugins();
@@ -1819,6 +1825,17 @@
return false;
}
+ public static boolean isProducerBean(AbstractBean<?> bean)
+ {
+ if(bean.getWebBeansType().equals(WebBeansType.PRODUCERFIELD) ||
+ bean.getWebBeansType().equals(WebBeansType.PRODUCERMETHOD))
+ {
+ return true;
+ }
+
+ return false;
+ }
+
/**
* Returns true if bean is an enterprise bean, false otherwise.
* @param bean bean instance
Added: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/PersonProducerTest.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/PersonProducerTest.java?rev=897579&view=auto
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/PersonProducerTest.java (added)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/PersonProducerTest.java Sun Jan 10 00:00:16 2010
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.webbeans.newtests.promethods;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Set;
+
+import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.Bean;
+
+import junit.framework.Assert;
+
+import org.apache.webbeans.component.ProducerMethodBean;
+import org.apache.webbeans.newtests.AbstractUnitTest;
+import org.apache.webbeans.newtests.interceptors.lifecycle.LifecycleBean;
+import org.apache.webbeans.newtests.promethods.beans.PersonProducerBean;
+import org.apache.webbeans.newtests.promethods.common.Person;
+import org.junit.Test;
+
+public class PersonProducerTest extends AbstractUnitTest
+{
+ public PersonProducerTest()
+ {
+
+ }
+
+ @Test
+ @SuppressWarnings("unchecked")
+ public void testPersonProducer()
+ {
+ Collection<URL> beanXmls = new ArrayList<URL>();
+
+ Collection<Class<?>> beanClasses = new ArrayList<Class<?>>();
+ beanClasses.add(Person.class);
+ beanClasses.add(PersonProducerBean.class);
+
+ startContainer(beanClasses, beanXmls);
+
+ Set<Bean<?>> beans = getBeanManager().getBeans("personProducer");
+ Assert.assertNotNull(beans);
+ Bean<Person> bean = (Bean<Person>)beans.iterator().next();
+
+ Assert.assertTrue(bean instanceof ProducerMethodBean);
+
+ CreationalContext<Person> ctx = getBeanManager().createCreationalContext(bean);
+
+ Object reference = getBeanManager().getReference(bean, Person.class, ctx);
+ Assert.assertNotNull(reference);
+
+ Assert.assertTrue(reference instanceof Person);
+
+
+ }
+}
Propchange: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/PersonProducerTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/beans/PersonProducerBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/beans/PersonProducerBean.java?rev=897579&view=auto
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/beans/PersonProducerBean.java (added)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/beans/PersonProducerBean.java Sun Jan 10 00:00:16 2010
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.webbeans.newtests.promethods.beans;
+
+import javax.enterprise.context.SessionScoped;
+import javax.enterprise.inject.Produces;
+import javax.inject.Named;
+
+import org.apache.webbeans.newtests.promethods.common.Person;
+
+public class PersonProducerBean
+{
+
+ @Produces @SessionScoped @Named("personProducer")
+ public Person producer()
+ {
+ return new Person();
+ }
+}
Propchange: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/beans/PersonProducerBean.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/common/Person.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/common/Person.java?rev=897579&view=auto
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/common/Person.java (added)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/common/Person.java Sun Jan 10 00:00:16 2010
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.webbeans.newtests.promethods.common;
+
+public class Person
+{
+
+}
Propchange: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/promethods/common/Person.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/TestContext.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/TestContext.java?rev=897579&r1=897578&r2=897579&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/TestContext.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/TestContext.java Sun Jan 10 00:00:16 2010
@@ -418,7 +418,7 @@
{
ManagedBean<T> component = null;
- ManagedBeanConfigurator.checkSimpleWebBeanCondition(clazz);
+ ManagedBeanConfigurator.checkManagedBeanCondition(clazz);
{
// This is the interceptor class
if (InterceptorsManager.getInstance().isInterceptorEnabled(clazz))
Modified: openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/BeansImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/BeansImpl.java?rev=897579&r1=897578&r2=897579&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/BeansImpl.java (original)
+++ openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/BeansImpl.java Sun Jan 10 00:00:16 2010
@@ -41,7 +41,7 @@
{
ManagedBean<T> bean = null;
- ManagedBeanConfigurator.checkSimpleWebBeanCondition(clazz);
+ ManagedBeanConfigurator.checkManagedBeanCondition(clazz);
bean = ManagedBeanConfigurator.define(clazz, WebBeansType.MANAGED);