[webbeans-commits] Webbeans SVN: r2260 - in ri/trunk: impl/src/main/java/org/jboss/webbeans/bean/standard and 3 other directories.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Sun Mar 29 20:39:24 EDT 2009


Author: pete.muir at jboss.org
Date: 2009-03-29 20:39:23 -0400 (Sun, 29 Mar 2009)
New Revision: 2260

Added:
   ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/producer/method/NamedProducer.java
   ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/producer/method/NamedProducerTest.java
Removed:
   ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/ejb/
Modified:
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ProducerFieldBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ProducerMethodBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/RIBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/AbstractStandardBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/MethodSignatureImpl.java
Log:
WBRI-212

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractBean.java	2009-03-30 00:05:55 UTC (rev 2259)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractBean.java	2009-03-30 00:39:23 UTC (rev 2260)
@@ -532,29 +532,5 @@
       return getAnnotatedItem().isAnnotationPresent(Specializes.class);
    }
 
-   @Override
-   // TODO Fix this!!!
-   public boolean equals(Object other)
-   {
-      if (other instanceof AbstractBean)
-      {
-         AbstractBean<?, ?> that = (AbstractBean<?, ?>) other;
-         boolean equal = this.getTypes().equals(that.getTypes()) && this.getBindings().equals(that.getBindings());
-         return equal;
-      }
-      else
-      {
-         return false;
-      }
-   }
 
-   @Override
-   public int hashCode()
-   {
-      int result = 17;
-      result = 31 * result + getTypes().hashCode();
-      result = 31 * result + getBindings().hashCode();
-      return result;
-   }
-
 }

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java	2009-03-30 00:05:55 UTC (rev 2259)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java	2009-03-30 00:39:23 UTC (rev 2260)
@@ -66,6 +66,8 @@
    // The initializer methods
    private Set<MethodInjectionPoint<?>> initializerMethods;
    private Set<String> dependencies;
+   
+   private final String id;
 
    /**
     * Constructor
@@ -77,6 +79,7 @@
    {
       super(manager);
       this.annotatedItem = type;
+      this.id = createId(getClass().getSimpleName() + "-" + type.getName());
    }
 
    /**
@@ -344,19 +347,11 @@
    {
       return Production.class;
    }
-
+   
    @Override
-   public boolean equals(Object other)
+   public String getId()
    {
-      if (other instanceof AbstractClassBean)
-      {
-         AbstractClassBean<?> that = (AbstractClassBean<?>) other;
-         return super.equals(other) && that.getType().equals(this.getType());
-      }
-      else
-      {
-         return false;
-      }
+      return id;
    }
 
 }

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java	2009-03-30 00:05:55 UTC (rev 2259)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java	2009-03-30 00:39:23 UTC (rev 2260)
@@ -381,18 +381,4 @@
       return buffer.toString();
    }
 
-   @Override
-   public boolean equals(Object other)
-   {
-      if (other instanceof AbstractProducerBean)
-      {
-         AbstractProducerBean<?, ?> that = (AbstractProducerBean<?, ?>) other;
-         return super.equals(other) && this.getAnnotatedItem().getDeclaringClass().equals(that.getAnnotatedItem().getDeclaringClass());
-      }
-      else
-      {
-         return false;
-      }
-   }
-
 }
\ No newline at end of file

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ProducerFieldBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ProducerFieldBean.java	2009-03-30 00:05:55 UTC (rev 2259)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ProducerFieldBean.java	2009-03-30 00:39:23 UTC (rev 2260)
@@ -37,6 +37,7 @@
 {
    // The underlying field
    private AnnotatedField<T> field;
+   private final String id;
    
    /**
     * Creates a producer field Web Bean
@@ -65,6 +66,7 @@
       initType();
       initTypes();
       initBindings();
+      this.id = createId("ProducerField-" + declaringBean.getType().getName() + "-"+ field.getName());
    }
    
    @Override
@@ -140,5 +142,11 @@
    {
       return false;
    }
+   
+   @Override
+   public String getId()
+   {
+      return id;
+   }
 
 }

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ProducerMethodBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ProducerMethodBean.java	2009-03-30 00:05:55 UTC (rev 2259)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ProducerMethodBean.java	2009-03-30 00:39:23 UTC (rev 2260)
@@ -51,6 +51,8 @@
    private AnnotatedMethod<?> disposalMethod;
    
    private ProducerMethodBean<?> specializedBean;
+
+   private final String id;
    
    /**
     * Creates a producer method Web Bean
@@ -75,6 +77,7 @@
       initType();
       initTypes();
       initBindings();
+      this.id = createId("ProducerField-" + declaringBean.getType().getName() + "-"+ method.getSignature().toString());
    }
    
    protected T produceInstance(CreationalContext<T> creationalContext)
@@ -254,4 +257,10 @@
       this.specializedBean = environment.getProducerMethod(superClassMethod);
    }
    
+   @Override
+   public String getId()
+   {
+      return id;
+   }
+   
 }

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/RIBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/RIBean.java	2009-03-30 00:05:55 UTC (rev 2259)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/RIBean.java	2009-03-30 00:39:23 UTC (rev 2260)
@@ -17,6 +17,8 @@
 package org.jboss.webbeans.bean;
 
 import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import javax.context.Dependent;
@@ -34,19 +36,22 @@
 public abstract class RIBean<T> extends Bean<T>
 {
    
-   private static final AtomicInteger idGenerator = new AtomicInteger();
+   private static final ConcurrentMap<String, AtomicInteger> ids = new ConcurrentHashMap<String, AtomicInteger>();
    
    private final ManagerImpl manager;
-   
-   private final String id;
 
    protected RIBean(ManagerImpl manager)
    {
       super(manager);
       this.manager = manager;
       // TODO better ID strategy (human readable)
-      this.id = getClass().getName() + "-" + idGenerator.getAndIncrement();
    }
+   
+   protected static String createId(String prefix)
+   {
+      AtomicInteger i = ids.putIfAbsent(prefix, new AtomicInteger());
+      return prefix + "-" + i;
+   }
 
    @Override
    protected ManagerImpl getManager()
@@ -73,9 +78,26 @@
 
    public abstract RIBean<?> getSpecializedBean();
    
-   public String getId()
+   public abstract String getId();
+   
+   @Override
+   public boolean equals(Object obj)
    {
-      return id;
+      if (obj instanceof RIBean)
+      {
+         RIBean<?> that = (RIBean<?>) obj;
+         return this.getId().equals(that.getId());
+      }
+      else
+      {
+         return false;
+      }
    }
+   
+   @Override
+   public int hashCode()
+   {
+      return getId().hashCode();
+   }
 
 }

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/AbstractStandardBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/AbstractStandardBean.java	2009-03-30 00:05:55 UTC (rev 2259)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/AbstractStandardBean.java	2009-03-30 00:39:23 UTC (rev 2260)
@@ -18,9 +18,15 @@
 public abstract class AbstractStandardBean<T> extends RIBean<T>
 {
    
+   private static final Annotation[] DEFAULT_BINDING_ARRAY = { new CurrentLiteral() };
+   private static final Set<Annotation> DEFAULT_BINDING = new HashSet<Annotation>(Arrays.asList(DEFAULT_BINDING_ARRAY));
+   
+   private final String id;
+   
    protected AbstractStandardBean(ManagerImpl manager)
    {
       super(manager);
+      this.id = getClass().getSimpleName();
    }
    
    @Override
@@ -29,9 +35,8 @@
       // No-op
    }
 
-   private static final Annotation[] DEFAULT_BINDING_ARRAY = { new CurrentLiteral() };
-   private static final Set<Annotation> DEFAULT_BINDING = new HashSet<Annotation>(Arrays.asList(DEFAULT_BINDING_ARRAY));
    
+   
    @Override
    public Set<Annotation> getBindings()
    {
@@ -98,4 +103,10 @@
       return false;
    }
    
+   @Override
+   public String getId()
+   {
+      return id;
+   }
+   
 }

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/MethodSignatureImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/MethodSignatureImpl.java	2009-03-30 00:05:55 UTC (rev 2259)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/MethodSignatureImpl.java	2009-03-30 00:39:23 UTC (rev 2260)
@@ -55,4 +55,10 @@
       return parameterTypes;
    }
    
+   @Override
+   public String toString()
+   {
+      return getMethodName() + Arrays.asList(getParameterTypes()).toString().replace('[', '(').replace(']', ')');
+   }
+   
 }
\ No newline at end of file

Added: ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/producer/method/NamedProducer.java
===================================================================
--- ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/producer/method/NamedProducer.java	                        (rev 0)
+++ ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/producer/method/NamedProducer.java	2009-03-30 00:39:23 UTC (rev 2260)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.test.unit.implementation.producer.method;
+
+import javax.annotation.Named;
+import javax.inject.Produces;
+
+public class NamedProducer
+{
+   @Named("itoen")
+   @Produces
+   public String[] createName()
+   {
+      return new String[] { "oh", "otya" };
+   }
+
+   @Named("iemon")
+   @Produces
+   public String[] createName2()
+   {
+      return new String[] { "fukujyuen", "iemon", "otya" };
+   }
+}


Property changes on: ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/producer/method/NamedProducer.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/producer/method/NamedProducerTest.java
===================================================================
--- ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/producer/method/NamedProducerTest.java	                        (rev 0)
+++ ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/producer/method/NamedProducerTest.java	2009-03-30 00:39:23 UTC (rev 2260)
@@ -0,0 +1,19 @@
+package org.jboss.webbeans.test.unit.implementation.producer.method;
+
+import org.jboss.testharness.impl.packaging.Artifact;
+import org.jboss.webbeans.test.unit.AbstractWebBeansTest;
+import org.testng.annotations.Test;
+
+ at Artifact
+public class NamedProducerTest extends AbstractWebBeansTest
+{
+   @Test
+   public void testNamedProducer()
+   {
+      String[] iemon = (String[]) manager.getInstanceByName("iemon");
+      assert iemon.length == 3;
+      String[] itoen = (String[]) manager.getInstanceByName("itoen");
+      assert itoen.length == 2;
+   }
+
+}


Property changes on: ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/producer/method/NamedProducerTest.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain




More information about the weld-commits mailing list