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 2009/10/10 20:43:10 UTC

svn commit: r823919 - in /incubator/openwebbeans/trunk/webbeans-impl/src: main/java/org/apache/webbeans/annotation/ main/java/org/apache/webbeans/container/ main/java/org/apache/webbeans/inject/impl/ main/java/org/apache/webbeans/util/ test/java/org/ap...

Author: gerdogdu
Date: Sat Oct 10 18:43:09 2009
New Revision: 823919

URL: http://svn.apache.org/viewvc?rev=823919&view=rev
Log:
Adding @Named qualifier for injection points. Adding tests.

Added:
    incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/annotation/NamedLiteral.java   (with props)
    incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/inject/named/
    incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/inject/named/NamedFieldWithNamedValue.java   (with props)
    incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/inject/named/NamedFieldWithoutNamedValue.java   (with props)
    incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/inject/named/NamedOtherWithNamedValue.java   (with props)
    incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/inject/named/NamedOtherWithoutNamedValue.java   (with props)
    incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/inject/named/
    incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/inject/named/NamedTests.java   (with props)
Modified:
    incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
    incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectionResolver.java
    incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/impl/InjectionPointFactory.java
    incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java

Added: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/annotation/NamedLiteral.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/annotation/NamedLiteral.java?rev=823919&view=auto
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/annotation/NamedLiteral.java (added)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/annotation/NamedLiteral.java Sat Oct 10 18:43:09 2009
@@ -0,0 +1,39 @@
+/*
+ * 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.annotation;
+
+import javax.enterprise.inject.AnnotationLiteral;
+import javax.inject.Named;
+
+/**
+ * Named literal.
+ * 
+ * @version $Rev$ $Date$
+ *
+ */
+public class NamedLiteral extends AnnotationLiteral<Named> implements Named
+{
+    private String value;
+
+    @Override
+    public String value()
+    {
+        return value;
+    }
+
+    public void setValue(String value)
+    {
+        this.value = value;
+    }
+}

Propchange: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/annotation/NamedLiteral.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java?rev=823919&r1=823918&r2=823919&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java Sat Oct 10 18:43:09 2009
@@ -15,6 +15,8 @@
 
 import java.io.InputStream;
 import java.lang.annotation.Annotation;
+import java.lang.reflect.Field;
+import java.lang.reflect.Member;
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
 import java.util.ArrayList;

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectionResolver.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectionResolver.java?rev=823919&r1=823918&r2=823919&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectionResolver.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectionResolver.java Sat Oct 10 18:43:09 2009
@@ -34,6 +34,7 @@
 import org.apache.webbeans.util.AnnotationUtil;
 import org.apache.webbeans.util.Asserts;
 import org.apache.webbeans.util.ClassUtil;
+import org.apache.webbeans.util.WebBeansUtil;
 
 /**
  * Injection point resolver class. 
@@ -105,9 +106,10 @@
      * @throws If bean is not avialable in the current deployment for given injection
      */
     public void checkInjectionPoints(InjectionPoint injectionPoint)
-    {
-        Type type = injectionPoint.getType();
+    {        
+        WebBeansUtil.checkInjectionPointNamedQualifier(injectionPoint);
         
+        Type type = injectionPoint.getType();        
         Class<?> clazz = null;
         
         if (type instanceof ParameterizedType)
@@ -145,7 +147,7 @@
         
     }
     
-
+        
     /**
      * Returns bean for injection point.
      * 

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/impl/InjectionPointFactory.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/impl/InjectionPointFactory.java?rev=823919&r1=823918&r2=823919&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/impl/InjectionPointFactory.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/impl/InjectionPointFactory.java Sat Oct 10 18:43:09 2009
@@ -30,7 +30,9 @@
 import javax.enterprise.inject.spi.AnnotatedParameter;
 import javax.enterprise.inject.spi.Bean;
 import javax.enterprise.inject.spi.InjectionPoint;
+import javax.inject.Named;
 
+import org.apache.webbeans.annotation.NamedLiteral;
 import org.apache.webbeans.inject.xml.XMLInjectionModelType;
 import org.apache.webbeans.inject.xml.XMLInjectionPointModel;
 import org.apache.webbeans.portable.AnnotatedElementFactory;
@@ -111,14 +113,48 @@
         return false;
     }
 
+    /**
+     * Gets injected point instance.
+     * @param owner owner of the injection point
+     * @param annots annotations of the injection point
+     * @param type type of the injection point
+     * @param member member of the injection point
+     * @param annotated annotated instance of injection point
+     * @return injection point instance
+     */
     private static InjectionPoint getGenericInjectionPoint(Bean<?> owner, Annotation[] annots, Type type, Member member,Annotated annotated)
     {
         InjectionPointImpl injectionPoint = null;
 
-        Annotation[] bindingAnnots = AnnotationUtil.getQualifierAnnotations(annots);
+        Annotation[] qualifierAnnots = AnnotationUtil.getQualifierAnnotations(annots);
+        
+        //@Named update for injection fields!
+        if(member instanceof Field)
+        {
+            for(int i=0;i<qualifierAnnots.length;i++)
+            {
+                Annotation qualifier = qualifierAnnots[i];
+                if(qualifier.annotationType().equals(Named.class))
+                {
+                    Named named = (Named)qualifier;
+                    String value = named.value();
+                    
+                    if(value == null || value.equals(""))
+                    {
+                        NamedLiteral namedLiteral = new NamedLiteral();
+                        namedLiteral.setValue(member.getName());
+                        qualifierAnnots[i] = namedLiteral;
+                    }
+                    
+                    break;
+                }
+            }            
+        }    
+        
+        
         injectionPoint = new InjectionPointImpl(owner, type, member, annotated);
 
-        addAnnotation(injectionPoint, bindingAnnots, true);
+        addAnnotation(injectionPoint, qualifierAnnots, true);
 
         return injectionPoint;
 

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java?rev=823919&r1=823918&r2=823919&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java Sat Oct 10 18:43:09 2009
@@ -2028,4 +2028,34 @@
         
         return false;
     }
+    
+    public static void checkInjectionPointNamedQualifier(InjectionPoint injectionPoint)
+    {
+        Set<Annotation> qualifierset = injectionPoint.getQualifiers();
+        Named namedQualifier = null;
+        for(Annotation qualifier : qualifierset)
+        {
+            if(qualifier.annotationType().equals(Named.class))
+            {
+                namedQualifier = (Named)qualifier;
+                break;
+            }
+        }
+        
+        if(namedQualifier != null)
+        {
+            String value = namedQualifier.value();
+            
+            if(value == null || value.equals(""))
+            {
+                Member member = injectionPoint.getMember();
+                if(!(member instanceof Field))
+                {
+                    throw new WebBeansConfigurationException("Injection point type : " + injectionPoint + " can not define @Named qualifier without value!");
+                }
+            }
+        }        
+        
+    }
+    
 }
\ No newline at end of file

Added: incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/inject/named/NamedFieldWithNamedValue.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/inject/named/NamedFieldWithNamedValue.java?rev=823919&view=auto
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/inject/named/NamedFieldWithNamedValue.java (added)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/inject/named/NamedFieldWithNamedValue.java Sat Oct 10 18:43:09 2009
@@ -0,0 +1,25 @@
+/*
+ * 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.test.component.inject.named;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import org.apache.webbeans.test.component.IPayment;
+
+public class NamedFieldWithNamedValue
+{
+    private @Inject @Named("payment") IPayment paymentProcessor;
+    
+}

Propchange: incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/inject/named/NamedFieldWithNamedValue.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/inject/named/NamedFieldWithoutNamedValue.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/inject/named/NamedFieldWithoutNamedValue.java?rev=823919&view=auto
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/inject/named/NamedFieldWithoutNamedValue.java (added)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/inject/named/NamedFieldWithoutNamedValue.java Sat Oct 10 18:43:09 2009
@@ -0,0 +1,25 @@
+/*
+ * 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.test.component.inject.named;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import org.apache.webbeans.test.component.IPayment;
+
+public class NamedFieldWithoutNamedValue
+{
+    private @Inject @Named IPayment paymentProcessor;
+    
+}

Propchange: incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/inject/named/NamedFieldWithoutNamedValue.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/inject/named/NamedOtherWithNamedValue.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/inject/named/NamedOtherWithNamedValue.java?rev=823919&view=auto
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/inject/named/NamedOtherWithNamedValue.java (added)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/inject/named/NamedOtherWithNamedValue.java Sat Oct 10 18:43:09 2009
@@ -0,0 +1,28 @@
+/*
+ * 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.test.component.inject.named;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import org.apache.webbeans.test.component.IPayment;
+
+public class NamedOtherWithNamedValue
+{    
+    @Inject
+    public NamedOtherWithNamedValue(@Named("value") IPayment payment)
+    {
+        
+    }
+}

Propchange: incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/inject/named/NamedOtherWithNamedValue.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/inject/named/NamedOtherWithoutNamedValue.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/inject/named/NamedOtherWithoutNamedValue.java?rev=823919&view=auto
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/inject/named/NamedOtherWithoutNamedValue.java (added)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/inject/named/NamedOtherWithoutNamedValue.java Sat Oct 10 18:43:09 2009
@@ -0,0 +1,28 @@
+/*
+ * 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.test.component.inject.named;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import org.apache.webbeans.test.component.IPayment;
+
+public class NamedOtherWithoutNamedValue
+{    
+    @Inject
+    public NamedOtherWithoutNamedValue(@Named IPayment payment)
+    {
+        
+    }
+}

Propchange: incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/inject/named/NamedOtherWithoutNamedValue.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/inject/named/NamedTests.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/inject/named/NamedTests.java?rev=823919&view=auto
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/inject/named/NamedTests.java (added)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/inject/named/NamedTests.java Sat Oct 10 18:43:09 2009
@@ -0,0 +1,137 @@
+/*
+ * 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.test.unittests.inject.named;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
+import java.util.Set;
+
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.InjectionPoint;
+import javax.inject.Named;
+
+import org.apache.webbeans.container.InjectionResolver;
+import org.apache.webbeans.exception.WebBeansConfigurationException;
+import org.apache.webbeans.inject.impl.InjectionPointFactory;
+import org.apache.webbeans.test.component.IPayment;
+import org.apache.webbeans.test.component.inject.named.NamedFieldWithNamedValue;
+import org.apache.webbeans.test.component.inject.named.NamedFieldWithoutNamedValue;
+import org.apache.webbeans.test.component.inject.named.NamedOtherWithNamedValue;
+import org.apache.webbeans.test.component.inject.named.NamedOtherWithoutNamedValue;
+import org.apache.webbeans.test.servlet.TestContext;
+import org.apache.webbeans.util.WebBeansUtil;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+public class NamedTests extends TestContext
+{
+    public NamedTests()
+    {
+        super(NamedTests.class.getName());
+    }
+    
+    @Before
+    public void init()
+    {
+        super.init();
+    }
+    
+    
+    @Test
+    public void testFieldWithNamedValue() throws Exception
+    {
+        Bean<NamedFieldWithNamedValue> bean = defineSimpleWebBean(NamedFieldWithNamedValue.class);
+        Field field = NamedFieldWithNamedValue.class.getDeclaredField("paymentProcessor");
+        
+        InjectionPoint point =InjectionPointFactory.getFieldInjectionPointData(bean, field);
+        
+        WebBeansUtil.checkInjectionPointNamedQualifier(point);
+        
+        String value = qulifier(point);
+        
+        Assert.assertEquals("payment", value);
+    }
+    
+    @Test
+    public void testFieldWithoutNamedValue() throws Exception
+    {
+        Bean<NamedFieldWithoutNamedValue> bean = defineSimpleWebBean(NamedFieldWithoutNamedValue.class);
+        Field field = NamedFieldWithoutNamedValue.class.getDeclaredField("paymentProcessor");
+        
+        InjectionPoint point =InjectionPointFactory.getFieldInjectionPointData(bean, field);
+        
+        WebBeansUtil.checkInjectionPointNamedQualifier(point);
+        
+        String value = qulifier(point);
+        
+        Assert.assertEquals("paymentProcessor", value);
+        
+    }
+    
+    @Test
+    public void testOtherWithNamedValue() throws Exception
+    {
+        Bean<NamedOtherWithNamedValue> bean = defineSimpleWebBean(NamedOtherWithNamedValue.class);
+        Constructor<?> constructor = NamedOtherWithNamedValue.class.getDeclaredConstructor(new Class<?>[]{IPayment.class});
+        
+        InjectionPoint point =InjectionPointFactory.getConstructorInjectionPointData(bean, constructor).get(0);
+        
+        WebBeansUtil.checkInjectionPointNamedQualifier(point);
+        
+        String value = qulifier(point);
+        
+        Assert.assertEquals("value", value);
+        
+    }
+    
+    @Test(expected=WebBeansConfigurationException.class)
+    public void testOtherWithoutNamedValue() throws Exception
+    {
+        Bean<NamedOtherWithoutNamedValue> bean = defineSimpleWebBean(NamedOtherWithoutNamedValue.class);
+        Constructor<?> constructor = NamedOtherWithoutNamedValue.class.getDeclaredConstructor(new Class<?>[]{IPayment.class});
+        
+        InjectionPoint point =InjectionPointFactory.getConstructorInjectionPointData(bean, constructor).get(0);
+                
+        String value = qulifier(point);
+        
+        Assert.assertEquals("", value);
+        
+        WebBeansUtil.checkInjectionPointNamedQualifier(point);
+
+    }
+    
+    
+    private String qulifier(InjectionPoint injectionPoint)
+    {
+        Set<Annotation> qualifierset = injectionPoint.getQualifiers();
+        Named namedQualifier = null;
+        for(Annotation qualifier : qualifierset)
+        {
+            if(qualifier.annotationType().equals(Named.class))
+            {
+                namedQualifier = (Named)qualifier;
+                break;
+            }
+        }
+        
+        if(namedQualifier != null)
+        {
+            return namedQualifier.value();
+        }
+        
+        return null;
+    } 
+}

Propchange: incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/inject/named/NamedTests.java
------------------------------------------------------------------------------
    svn:eol-style = native