[ 
https://issues.apache.org/jira/browse/OWB-992?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bruno updated OWB-992:
----------------------

    Attachment: owbdecorator.zip

Maven projet to reproduce the malfunction.

> Decorator generic delegate attribute must be same with decorated type
> ---------------------------------------------------------------------
>
>                 Key: OWB-992
>                 URL: https://issues.apache.org/jira/browse/OWB-992
>             Project: OpenWebBeans
>          Issue Type: Bug
>    Affects Versions: 1.2.6
>         Environment: Windows 7 32bit
> Oracle JDK1.7.0_51
>            Reporter: Bruno
>         Attachments: owbdecorator.zip
>
>
> public interface IService<O extends Object> {
>     boolean test(final O value);
> }
> public interface IExtendService<S extends Serializable> extends IService<S> {
>     boolean another(final S value);
> }
> public class ServiceImpl implements IExtendService<Serializable> {
>     public boolean test(final Serializable value) {
>         return false;
>     }
>     public boolean another(final Serializable value) {
>         return false;
>     }
> }
> @Decorator
> public abstract class ServiceDecorator<S extends Serializable> implements
>         IExtendService<S> {
>     @Inject
>     @Delegate
>     @Any
>     private IExtendService<S> delegate;
>     public static boolean called = false;
>     public boolean test(final S value) {
>         called = true;
>         return this.delegate.test(value);
>     }
> }
> @RunWith(BlockJUnit4ClassRunner.class)
> public class ServiceTest extends
>         org.apache.myfaces.extensions.cdi.test.junit4.AbstractCdiAwareTest {
>     @Inject
>     IExtendService<Serializable> service;
>     @Test
>     public void test() {
>         Assert.assertNotNull("Inject service is null", this.service);
>         Assert.assertFalse("Value should be false before calling 
> service",ServiceDecorator.called);
>         this.service.test(new Serializable() {
>         });
>         Assert.assertTrue("Value should be true before calling service",
>                 ServiceDecorator.called);
>     }
> }
> <?xml version="1.0"?>
> <beans xmlns="http://java.sun.com/xml/ns/javaee"; 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
> http://java.sun.com/xml/ns/javaee/beans_1_0.xsd 
> http://jboss.org/schema/weld/beans 
> http://jboss.org/schema/weld/beans_1_1.xsd";>
>       <decorators>
>               <class>org.owb.decorator.sample.ServiceDecorator</class>
>       </decorators>
> </beans>
> When running the JUnit test, i've got next exception :
> java.lang.RuntimeException: 
> org.apache.webbeans.exception.inject.DeploymentException: 
> org.apache.webbeans.exception.WebBeansConfigurationException: Decorator : 
> org.apache.webbeans.component.creation.DecoratorBeanBuilder@1329346 generic 
> delegate attribute must be same with decorated type : IService<S>



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to