[webbeans-commits] Webbeans SVN: r271 - in ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans: injectable and 2 other directories.
by webbeans-commits@lists.jboss.org
Author: gavin.king(a)jboss.com
Date: 2008-11-06 22:45:58 -0500 (Thu, 06 Nov 2008)
New Revision: 271
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/event/ObserverImpl.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/ForwardingInjectableMethod.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/Invokable.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedConstructor.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedMethod.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedConstructor.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedMethod.java
Log:
the parameters of a method or constructor are a List!
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/event/ObserverImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/event/ObserverImpl.java 2008-11-06 20:01:03 UTC (rev 270)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/event/ObserverImpl.java 2008-11-07 03:45:58 UTC (rev 271)
@@ -2,7 +2,7 @@
import java.lang.annotation.Annotation;
import java.util.Iterator;
-import java.util.Set;
+import java.util.List;
import javax.webbeans.Current;
import javax.webbeans.Observer;
@@ -15,7 +15,7 @@
import org.jboss.webbeans.model.bean.BeanModel;
import com.google.common.collect.ForwardingIterator;
-import com.google.common.collect.ForwardingSet;
+import com.google.common.collect.ForwardingList;
/**
* <p>
@@ -92,11 +92,11 @@
{
@Override
- public Set<InjectableParameter<Object>> getParameters()
+ public List<InjectableParameter<Object>> getParameters()
{
- final Set<InjectableParameter<Object>>parameters = super.getParameters();
+ final List<InjectableParameter<Object>>parameters = super.getParameters();
- return new ForwardingSet<InjectableParameter<Object>>()
+ return new ForwardingList<InjectableParameter<Object>>()
{
@Override
@@ -143,7 +143,7 @@
}
@Override
- protected Set<InjectableParameter<Object>> delegate()
+ protected List<InjectableParameter<Object>> delegate()
{
return parameters;
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/ForwardingInjectableMethod.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/ForwardingInjectableMethod.java 2008-11-06 20:01:03 UTC (rev 270)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/ForwardingInjectableMethod.java 2008-11-07 03:45:58 UTC (rev 271)
@@ -1,6 +1,6 @@
package org.jboss.webbeans.injectable;
-import java.util.Set;
+import java.util.List;
import javax.webbeans.manager.Manager;
@@ -23,7 +23,7 @@
}
@Override
- public Set<InjectableParameter<Object>> getParameters()
+ public List<InjectableParameter<Object>> getParameters()
{
return delegate().getParameters();
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/Invokable.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/Invokable.java 2008-11-06 20:01:03 UTC (rev 270)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/Invokable.java 2008-11-07 03:45:58 UTC (rev 271)
@@ -1,8 +1,8 @@
package org.jboss.webbeans.injectable;
-import java.util.HashSet;
+import java.util.ArrayList;
import java.util.Iterator;
-import java.util.Set;
+import java.util.List;
import javax.webbeans.manager.Manager;
@@ -12,13 +12,13 @@
public abstract class Invokable<T, S>
{
- private Set<InjectableParameter<Object>> parameters;
+ private List<InjectableParameter<Object>> parameters;
protected Invokable() {}
- public Invokable(Set<AnnotatedParameter<Object>> parameters)
+ public Invokable(List<AnnotatedParameter<Object>> parameters)
{
- this.parameters = new HashSet<InjectableParameter<Object>>();
+ this.parameters = new ArrayList<InjectableParameter<Object>>();
for (AnnotatedParameter<Object> parameter : parameters)
{
this.parameters.add(new InjectableParameter<Object>(parameter));
@@ -38,7 +38,7 @@
return parameterValues;
}
- public Set<InjectableParameter<Object>> getParameters()
+ public List<InjectableParameter<Object>> getParameters()
{
return parameters;
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedConstructor.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedConstructor.java 2008-11-06 20:01:03 UTC (rev 270)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedConstructor.java 2008-11-07 03:45:58 UTC (rev 271)
@@ -2,7 +2,7 @@
import java.lang.annotation.Annotation;
import java.lang.reflect.Constructor;
-import java.util.Set;
+import java.util.List;
/**
* AnnotatedType provides a uniform access to the annotations on an annotated
@@ -16,8 +16,8 @@
public Constructor<T> getAnnotatedConstructor();
- public Set<AnnotatedParameter<Object>> getParameters();
+ public List<AnnotatedParameter<Object>> getParameters();
- public Set<AnnotatedParameter<Object>> getAnnotatedParameters(Class<? extends Annotation> metaAnnotationType);
+ public List<AnnotatedParameter<Object>> getAnnotatedParameters(Class<? extends Annotation> metaAnnotationType);
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedMethod.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedMethod.java 2008-11-06 20:01:03 UTC (rev 270)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedMethod.java 2008-11-07 03:45:58 UTC (rev 271)
@@ -2,7 +2,7 @@
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
-import java.util.Set;
+import java.util.List;
/**
* AnnotatedType provides a uniform access to the annotations on an annotated
@@ -16,8 +16,8 @@
public Method getAnnotatedMethod();
- public Set<AnnotatedParameter<Object>> getParameters();
+ public List<AnnotatedParameter<Object>> getParameters();
- public Set<AnnotatedParameter<Object>> getAnnotatedParameters(Class<? extends Annotation> metaAnnotationType);
+ public List<AnnotatedParameter<Object>> getAnnotatedParameters(Class<? extends Annotation> metaAnnotationType);
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedConstructor.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedConstructor.java 2008-11-06 20:01:03 UTC (rev 270)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedConstructor.java 2008-11-07 03:45:58 UTC (rev 271)
@@ -3,10 +3,10 @@
import java.lang.annotation.Annotation;
import java.lang.reflect.Constructor;
import java.lang.reflect.Type;
+import java.util.ArrayList;
import java.util.HashMap;
-import java.util.HashSet;
+import java.util.List;
import java.util.Map;
-import java.util.Set;
import org.jboss.webbeans.introspector.AnnotatedConstructor;
import org.jboss.webbeans.introspector.AnnotatedParameter;
@@ -18,8 +18,8 @@
private Constructor<T> constructor;
- private Set<AnnotatedParameter<Object>> parameters;
- private Map<Class<? extends Annotation>, Set<AnnotatedParameter<Object>>> annotatedParameters;
+ private List<AnnotatedParameter<Object>> parameters;
+ private Map<Class<? extends Annotation>, List<AnnotatedParameter<Object>>> annotatedParameters;
public SimpleAnnotatedConstructor(Constructor<T> constructor)
{
@@ -47,7 +47,7 @@
return actualTypeArguments;
}
- public Set<AnnotatedParameter<Object>> getParameters()
+ public List<AnnotatedParameter<Object>> getParameters()
{
if (parameters == null)
{
@@ -58,7 +58,7 @@
private void initParameters()
{
- this.parameters = new HashSet<AnnotatedParameter<Object>>();
+ this.parameters = new ArrayList<AnnotatedParameter<Object>>();
for (int i = 0; i < constructor.getParameterTypes().length; i++)
{
if (constructor.getParameterAnnotations()[i].length > 0)
@@ -76,7 +76,7 @@
}
}
- public Set<AnnotatedParameter<Object>> getAnnotatedMethods(Class<? extends Annotation> annotationType)
+ public List<AnnotatedParameter<Object>> getAnnotatedMethods(Class<? extends Annotation> annotationType)
{
if (annotatedParameters == null)
{
@@ -85,7 +85,7 @@
if (!annotatedParameters.containsKey(annotationType))
{
- return new HashSet<AnnotatedParameter<Object>>();
+ return new ArrayList<AnnotatedParameter<Object>>();
}
else
{
@@ -99,21 +99,21 @@
{
initParameters();
}
- annotatedParameters = new HashMap<Class<? extends Annotation>, Set<AnnotatedParameter<Object>>>();
+ annotatedParameters = new HashMap<Class<? extends Annotation>, List<AnnotatedParameter<Object>>>();
for (AnnotatedParameter<Object> parameter : parameters)
{
for (Annotation annotation : parameter.getAnnotations())
{
if (!annotatedParameters.containsKey(annotation))
{
- annotatedParameters.put(annotation.annotationType(), new HashSet<AnnotatedParameter<Object>>());
+ annotatedParameters.put(annotation.annotationType(), new ArrayList<AnnotatedParameter<Object>>());
}
annotatedParameters.get(annotation.annotationType()).add(parameter);
}
}
}
- public Set<AnnotatedParameter<Object>> getAnnotatedParameters(Class<? extends Annotation> annotationType)
+ public List<AnnotatedParameter<Object>> getAnnotatedParameters(Class<? extends Annotation> annotationType)
{
if (annotatedParameters == null)
{
@@ -121,7 +121,7 @@
}
if (!annotatedParameters.containsKey(annotationType))
{
- return new HashSet<AnnotatedParameter<Object>>();
+ return new ArrayList<AnnotatedParameter<Object>>();
}
return annotatedParameters.get(annotationType);
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedMethod.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedMethod.java 2008-11-06 20:01:03 UTC (rev 270)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedMethod.java 2008-11-07 03:45:58 UTC (rev 271)
@@ -4,10 +4,10 @@
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
+import java.util.ArrayList;
import java.util.HashMap;
-import java.util.HashSet;
+import java.util.List;
import java.util.Map;
-import java.util.Set;
import org.jboss.webbeans.introspector.AnnotatedMethod;
import org.jboss.webbeans.introspector.AnnotatedParameter;
@@ -19,8 +19,8 @@
private Method method;
- private Set<AnnotatedParameter<Object>> parameters;
- private Map<Class<? extends Annotation>, Set<AnnotatedParameter<Object>>> annotatedParameters;
+ private List<AnnotatedParameter<Object>> parameters;
+ private Map<Class<? extends Annotation>, List<AnnotatedParameter<Object>>> annotatedParameters;
public SimpleAnnotatedMethod(Method method)
{
@@ -52,7 +52,7 @@
return actualTypeArgements;
}
- public Set<AnnotatedParameter<Object>> getParameters()
+ public List<AnnotatedParameter<Object>> getParameters()
{
if (parameters == null)
{
@@ -63,7 +63,7 @@
private void initParameters()
{
- this.parameters = new HashSet<AnnotatedParameter<Object>>();
+ this.parameters = new ArrayList<AnnotatedParameter<Object>>();
for (int i = 0; i < method.getParameterTypes().length; i++)
{
if (method.getParameterAnnotations()[i].length > 0)
@@ -81,7 +81,7 @@
}
}
- public Set<AnnotatedParameter<Object>> getAnnotatedMethods(Class<? extends Annotation> annotationType)
+ public List<AnnotatedParameter<Object>> getAnnotatedMethods(Class<? extends Annotation> annotationType)
{
if (annotatedParameters == null)
{
@@ -90,7 +90,7 @@
if (!annotatedParameters.containsKey(annotationType))
{
- return new HashSet<AnnotatedParameter<Object>>();
+ return new ArrayList<AnnotatedParameter<Object>>();
}
else
{
@@ -104,21 +104,21 @@
{
initParameters();
}
- annotatedParameters = new HashMap<Class<? extends Annotation>, Set<AnnotatedParameter<Object>>>();
+ annotatedParameters = new HashMap<Class<? extends Annotation>, List<AnnotatedParameter<Object>>>();
for (AnnotatedParameter<Object> parameter : parameters)
{
for (Annotation annotation : parameter.getAnnotations())
{
if (!annotatedParameters.containsKey(annotation))
{
- annotatedParameters.put(annotation.annotationType(), new HashSet<AnnotatedParameter<Object>>());
+ annotatedParameters.put(annotation.annotationType(), new ArrayList<AnnotatedParameter<Object>>());
}
annotatedParameters.get(annotation.annotationType()).add(parameter);
}
}
}
- public Set<AnnotatedParameter<Object>> getAnnotatedParameters(Class<? extends Annotation> annotationType)
+ public List<AnnotatedParameter<Object>> getAnnotatedParameters(Class<? extends Annotation> annotationType)
{
if (annotatedParameters == null)
{
@@ -126,7 +126,7 @@
}
if (!annotatedParameters.containsKey(annotationType))
{
- return new HashSet<AnnotatedParameter<Object>>();
+ return new ArrayList<AnnotatedParameter<Object>>();
}
return annotatedParameters.get(annotationType);
}
15 years, 6 months
[webbeans-commits] Webbeans SVN: r270 - ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples.
by webbeans-commits@lists.jboss.org
Author: gavin.king(a)jboss.com
Date: 2008-11-06 15:01:03 -0500 (Thu, 06 Nov 2008)
New Revision: 270
Added:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Mock.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/MockSentenceTranslator.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/SentenceParser.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/SentenceTranslator.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/TextTranslator.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Translator.java
Modified:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Tests.java
Log:
another example
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Mock.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Mock.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Mock.java 2008-11-06 20:01:03 UTC (rev 270)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.examples;
+
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.DeploymentType;
+
+@Target( { TYPE, METHOD })
+@Retention(RUNTIME)
+@Documented
+@DeploymentType
+public @interface Mock
+{
+
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/MockSentenceTranslator.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/MockSentenceTranslator.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/MockSentenceTranslator.java 2008-11-06 20:01:03 UTC (rev 270)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.examples;
+
+@Mock
+public class MockSentenceTranslator implements Translator {
+ public String translate(String sentence) {
+ return "Lorem ipsum dolor sit amet";
+ }
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/SentenceParser.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/SentenceParser.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/SentenceParser.java 2008-11-06 20:01:03 UTC (rev 270)
@@ -0,0 +1,10 @@
+package org.jboss.webbeans.examples;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class SentenceParser {
+ public List<String> parse(String text) {
+ return Arrays.asList( text.split("[.?]") );
+ }
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/SentenceTranslator.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/SentenceTranslator.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/SentenceTranslator.java 2008-11-06 20:01:03 UTC (rev 270)
@@ -0,0 +1,10 @@
+package org.jboss.webbeans.examples;
+
+import javax.ejb.Stateless;
+
+@Stateless
+public class SentenceTranslator implements Translator {
+public String translate(String sentence) {
+ throw new UnsupportedOperationException();
+}
+}
\ No newline at end of file
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Tests.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Tests.java 2008-11-06 17:57:49 UTC (rev 269)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Tests.java 2008-11-06 20:01:03 UTC (rev 270)
@@ -12,14 +12,8 @@
{
@Test
public void testGameGenerator() throws Exception {
- SimpleBean<Game> gameBean = Util.createSimpleWebBean(Game.class, manager);
- SimpleBean<Generator> generatorBean = Util.createSimpleWebBean(Generator.class, manager);
- Method method = Generator.class.getDeclaredMethod("next");
- method.setAccessible(true);
- ProducerMethodBean<Integer> nextBean = Util.createProducerMethodBean(int.class, method, manager, generatorBean);
- manager.addBean(gameBean);
- manager.addBean(generatorBean);
- manager.addBean(nextBean);
+ setupGameGenerator();
+
Game game1 = manager.getInstanceByType(Game.class);
Game game2 = manager.getInstanceByType(Game.class);
assert game1!=game2;
@@ -29,4 +23,57 @@
assert gen1.getRandom()!=null;
assert gen1.getRandom()==gen2.getRandom();
}
+
+ private void setupGameGenerator() throws NoSuchMethodException
+ {
+ SimpleBean<Game> gameBean = Util.createSimpleWebBean(Game.class, manager);
+ SimpleBean<Generator> generatorBean = Util.createSimpleWebBean(Generator.class, manager);
+ Method method = Generator.class.getDeclaredMethod("next");
+ method.setAccessible(true);
+ ProducerMethodBean<Integer> nextBean = Util.createProducerMethodBean(int.class, method, manager, generatorBean);
+
+ manager.addBean(gameBean);
+ manager.addBean(generatorBean);
+ manager.addBean(nextBean);
+ }
+
+ @Test
+ public void testMockSentenceTranslator() throws Exception {
+ setupTextTranslator();
+
+ manager.getEnabledDeploymentTypes().add(Mock.class);
+
+ TextTranslator tt2 = manager.getInstanceByType(TextTranslator.class);
+ assert "Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.".equals( tt2.translate("Hello world. How's tricks?") );
+ }
+
+ @Test
+ public void testSentenceTranslator() throws Exception {
+ setupTextTranslator();
+
+ TextTranslator tt1 = manager.getInstanceByType(TextTranslator.class);
+ try {
+ tt1.translate("hello world");
+ assert false;
+ }
+ catch (UnsupportedOperationException uoe)
+ {
+ //expected
+ }
+
+ }
+
+ private void setupTextTranslator()
+ {
+ SimpleBean<SentenceParser> spBean = Util.createSimpleWebBean(SentenceParser.class, manager);
+ SimpleBean<SentenceTranslator> stBean = Util.createSimpleWebBean(SentenceTranslator.class, manager);
+ SimpleBean<MockSentenceTranslator> mstBean = Util.createSimpleWebBean(MockSentenceTranslator.class, manager);
+ SimpleBean<TextTranslator> ttBean = Util.createSimpleWebBean(TextTranslator.class, manager);
+
+ manager.addBean(spBean);
+ manager.addBean(stBean);
+ manager.addBean(mstBean);
+ manager.addBean(ttBean);
+ }
+
}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/TextTranslator.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/TextTranslator.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/TextTranslator.java 2008-11-06 20:01:03 UTC (rev 270)
@@ -0,0 +1,23 @@
+package org.jboss.webbeans.examples;
+
+import javax.webbeans.Initializer;
+
+public class TextTranslator {
+ private SentenceParser sentenceParser;
+ private Translator sentenceTranslator;
+
+ @Initializer
+ TextTranslator(SentenceParser sentenceParser, Translator sentenceTranslator) {
+ this.sentenceParser = sentenceParser;
+ this.sentenceTranslator = sentenceTranslator;
+ }
+
+ public String translate(String text) {
+ StringBuilder sb = new StringBuilder();
+ for (String sentence: sentenceParser.parse(text)) {
+ sb.append(sentenceTranslator.translate(sentence)).append(". ");
+ }
+ return sb.toString().trim();
+ }
+
+}
\ No newline at end of file
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Translator.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Translator.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Translator.java 2008-11-06 20:01:03 UTC (rev 270)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.examples;
+
+import javax.ejb.Local;
+
+@Local
+public interface Translator {
+ public String translate(String sentence);
+}
15 years, 6 months
[webbeans-commits] Webbeans SVN: r269 - in ri/trunk/webbeans-ri: src/test/java/org/jboss/webbeans/test and 1 other directories.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2008-11-06 12:57:49 -0500 (Thu, 06 Nov 2008)
New Revision: 269
Modified:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectionTests.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/Tuna.java
ri/trunk/webbeans-ri/testng.xml
Log:
Enable and fix client proxy tests
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectionTests.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectionTests.java 2008-11-06 17:06:47 UTC (rev 268)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectionTests.java 2008-11-06 17:57:49 UTC (rev 269)
@@ -8,14 +8,17 @@
import javax.webbeans.DefinitionException;
import javax.webbeans.NonexistentFieldException;
import javax.webbeans.NullableDependencyException;
+import javax.webbeans.RequestScoped;
import javax.webbeans.manager.Bean;
import org.jboss.webbeans.bean.SimpleBean;
+import org.jboss.webbeans.contexts.RequestContext;
import org.jboss.webbeans.test.beans.Fox;
import org.jboss.webbeans.test.beans.FoxRun;
import org.jboss.webbeans.test.beans.SpiderNest;
import org.jboss.webbeans.test.beans.SpiderProducer;
import org.jboss.webbeans.test.beans.Tuna;
+import org.jboss.webbeans.test.beans.TunaFarm;
import org.jboss.webbeans.test.beans.broken.BeanWithFinalBoundField;
import org.jboss.webbeans.test.beans.broken.BeanWithStaticBoundField;
import org.jboss.webbeans.test.beans.broken.FarmHouse;
@@ -49,7 +52,14 @@
@Test(groups={"injection", "clientProxy"}, expectedExceptions=ContextNotActiveException.class) @SpecAssertion(section="4.3")
public void testInvokeNormalInjectedWebBeanWhenContextNotActive()
{
-
+ SimpleBean<TunaFarm> tunaFarmBean = createSimpleWebBean(TunaFarm.class, manager);
+ Bean<Tuna> tunaBean = createSimpleWebBean(Tuna.class, manager);
+ manager.addBean(tunaBean);
+ TunaFarm tunaFarm = tunaFarmBean.create();
+ assert tunaFarm.tuna != null;
+ RequestContext requestContext = (RequestContext) manager.getContext(RequestScoped.class);
+ requestContext.setActive(false);
+ tunaFarm.tuna.getName();
}
@Test(groups="injection") @SpecAssertion(section="4.3")
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/Tuna.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/Tuna.java 2008-11-06 17:06:47 UTC (rev 268)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/Tuna.java 2008-11-06 17:57:49 UTC (rev 269)
@@ -8,5 +8,10 @@
@RequestScoped
public class Tuna
{
+
+ public String getName()
+ {
+ return "Ophir";
+ }
}
Modified: ri/trunk/webbeans-ri/testng.xml
===================================================================
--- ri/trunk/webbeans-ri/testng.xml 2008-11-06 17:06:47 UTC (rev 268)
+++ ri/trunk/webbeans-ri/testng.xml 2008-11-06 17:57:49 UTC (rev 269)
@@ -20,7 +20,7 @@
<exclude name="interceptors" />
<exclude name="decorators" />
<exclude name="servlet" />
- <exclude name="clientProxy" />
+
<exclude name="passivation" />
<exclude name="enterpriseBeans" />
<exclude name="removeMethod" />
15 years, 6 months
[webbeans-commits] Webbeans SVN: r268 - ri/trunk/webbeans-ri.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2008-11-06 12:06:47 -0500 (Thu, 06 Nov 2008)
New Revision: 268
Modified:
ri/trunk/webbeans-ri/testng.xml
Log:
Add Gavin's example tests
Modified: ri/trunk/webbeans-ri/testng.xml
===================================================================
--- ri/trunk/webbeans-ri/testng.xml 2008-11-06 17:04:17 UTC (rev 267)
+++ ri/trunk/webbeans-ri/testng.xml 2008-11-06 17:06:47 UTC (rev 268)
@@ -32,6 +32,7 @@
</groups>
<packages>
<package name="org.jboss.webbeans.test"></package>
+ <package name="org.jboss.webbeans.examples"></package>
<package name="org.jboss.webbeans.test.ejb.lifecycle"></package>
<package name="org.jboss.webbeans.test.ejb.model"></package>
</packages>
15 years, 6 months
[webbeans-commits] Webbeans SVN: r267 - in ri/trunk/webbeans-ri: src/test/java/org/jboss/webbeans/test and 1 other directories.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2008-11-06 12:04:17 -0500 (Thu, 06 Nov 2008)
New Revision: 267
Added:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/SpiderNest.java
Modified:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/DependentContextTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectionTests.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ProducerMethodBeanLifecycleTest.java
ri/trunk/webbeans-ri/testng.xml
Log:
Enable producer method tests
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/DependentContextTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/DependentContextTest.java 2008-11-06 16:51:22 UTC (rev 266)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/DependentContextTest.java 2008-11-06 17:04:17 UTC (rev 267)
@@ -1,14 +1,21 @@
package org.jboss.webbeans.test;
+import static org.jboss.webbeans.test.util.Util.createProducerMethodBean;
import static org.jboss.webbeans.test.util.Util.createSimpleWebBean;
+import java.lang.reflect.Method;
+
import javax.webbeans.ContextNotActiveException;
import javax.webbeans.Dependent;
import javax.webbeans.manager.Bean;
+import org.jboss.webbeans.bean.ProducerMethodBean;
+import org.jboss.webbeans.bean.SimpleBean;
import org.jboss.webbeans.contexts.DependentContext;
import org.jboss.webbeans.test.beans.Fox;
import org.jboss.webbeans.test.beans.FoxRun;
+import org.jboss.webbeans.test.beans.SpiderProducer;
+import org.jboss.webbeans.test.beans.Tarantula;
import org.testng.annotations.Test;
@SpecVersion("PDR")
@@ -32,9 +39,17 @@
}
@Test(groups={"contexts", "producerMethod"}) @SpecAssertion(section="8.3")
- public void testInstanceUsedForProducerMethodNotShared()
+ public void testInstanceUsedForProducerMethodNotShared() throws Exception
{
- assert false;
+ SimpleBean<SpiderProducer> spiderProducer = createSimpleWebBean(SpiderProducer.class, manager);
+ manager.addBean(spiderProducer);
+ Method method = SpiderProducer.class.getMethod("produceTarantula");
+ ProducerMethodBean<Tarantula> tarantulaBean = createProducerMethodBean(Tarantula.class, method, manager, spiderProducer);
+ Tarantula tarantula = tarantulaBean.create();
+ Tarantula tarantula2 = tarantulaBean.create();
+ assert tarantula != null;
+ assert tarantula2 != null;
+ assert tarantula != tarantula2;
}
@Test(groups={"contexts", "observerMethod"}) @SpecAssertion(section="8.3")
@@ -70,12 +85,6 @@
manager.getContext(Dependent.class).isActive();
}
- @Test(groups={"contexts", "producerMethod"}) @SpecAssertion(section="8.3")
- public void testContextIsActiveWhenInvokingProducerMethod()
- {
- assert false;
- }
-
@Test(groups={"contexts", "observerMethod"}) @SpecAssertion(section="8.3")
public void testContextIsActiveWhenInvokingObserverMethod()
{
@@ -164,12 +173,6 @@
assert false;
}
- @Test(groups={"contexts", "producerMethod"}) @SpecAssertion(section="8.3")
- public void testDependentsDestroyedWhenProducerMethodEvaluationCompletes()
- {
- assert false;
- }
-
@Test(groups={"contexts", "observerMethod"}) @SpecAssertion(section="8.3")
public void testDependentsDestroyedWhenObserverMethodEvaluationCompletes()
{
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectionTests.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectionTests.java 2008-11-06 16:51:22 UTC (rev 266)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectionTests.java 2008-11-06 17:04:17 UTC (rev 267)
@@ -13,6 +13,8 @@
import org.jboss.webbeans.bean.SimpleBean;
import org.jboss.webbeans.test.beans.Fox;
import org.jboss.webbeans.test.beans.FoxRun;
+import org.jboss.webbeans.test.beans.SpiderNest;
+import org.jboss.webbeans.test.beans.SpiderProducer;
import org.jboss.webbeans.test.beans.Tuna;
import org.jboss.webbeans.test.beans.broken.BeanWithFinalBoundField;
import org.jboss.webbeans.test.beans.broken.BeanWithStaticBoundField;
@@ -25,29 +27,23 @@
{
@Test(groups={"injection", "producerMethod"}) @SpecAssertion(section="4.2")
- public void testPrimitiveTypesEquivalentToBoxedTypes()
+ public void testInjectionPerformsBoxingIfNecessary() throws Exception
{
- assert false;
+ SimpleBean<SpiderProducer> spiderProducer = createSimpleWebBean(SpiderProducer.class, manager);
+ manager.addBean(spiderProducer);
+ Bean<SpiderNest> spiderNestBean = createSimpleWebBean(SpiderNest.class, manager);
+ manager.addBean(createProducerMethodBean(Integer.class, SpiderProducer.class.getMethod("getWolfSpiderSize"), manager, spiderProducer));
+ SpiderNest spiderNest = spiderNestBean.create();
+ assert spiderNest.numberOfSpiders != null;
+ assert spiderNest.numberOfSpiders.equals(4);
}
- @Test(groups={"injection", "producerMethod"}) @SpecAssertion(section="4.2")
- public void testInjectionPerformsBoxingIfNecessary()
- {
- assert false;
- }
-
- @Test(groups={"injection", "producerMethod"}) @SpecAssertion(section="4.2")
- public void testInjectionPerformsUnboxingIfNecessary()
- {
- assert false;
- }
-
@Test(groups={"injection", "producerMethod"}, expectedExceptions=NullableDependencyException.class) @SpecAssertion(section="4.2")
public void testPrimitiveInjectionPointResolvesToNullableWebBean() throws Exception
{
Bean<FarmHouse> farmHouseBean = createSimpleWebBean(FarmHouse.class, manager);
manager.addBean(createProducerMethodBean(Integer.class, FarmHouseProducer.class.getMethod("getNumberOfBedrooms"), manager));
- FarmHouse farmHouse = farmHouseBean.create();
+ farmHouseBean.create();
}
@Test(groups={"injection", "clientProxy"}, expectedExceptions=ContextNotActiveException.class) @SpecAssertion(section="4.3")
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ProducerMethodBeanLifecycleTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ProducerMethodBeanLifecycleTest.java 2008-11-06 16:51:22 UTC (rev 266)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ProducerMethodBeanLifecycleTest.java 2008-11-06 17:04:17 UTC (rev 267)
@@ -51,7 +51,7 @@
}
- @Test(groups="producerMethod") @SpecAssertion(section={"3.4", "5.6"})
+ @Test(groups="producerMethod") @SpecAssertion(section={"3.4", "5.6", "8.3"})
public void testProducerMethodReturnsNullIsDependent() throws Exception
{
SimpleBean<SpiderProducer> spiderProducer = createSimpleWebBean(SpiderProducer.class, manager);
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/SpiderNest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/SpiderNest.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/SpiderNest.java 2008-11-06 17:04:17 UTC (rev 267)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.test.beans;
+
+import javax.webbeans.Initializer;
+
+public class SpiderNest
+{
+
+ public Integer numberOfSpiders;
+
+ @Initializer
+ public SpiderNest(Integer numberOfSpiders)
+ {
+ this.numberOfSpiders = numberOfSpiders;
+ }
+
+}
Property changes on: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/SpiderNest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: ri/trunk/webbeans-ri/testng.xml
===================================================================
--- ri/trunk/webbeans-ri/testng.xml 2008-11-06 16:51:22 UTC (rev 266)
+++ ri/trunk/webbeans-ri/testng.xml 2008-11-06 17:04:17 UTC (rev 267)
@@ -8,7 +8,7 @@
<exclude name="specialization" />
<exclude name="deployment" />
<exclude name="disposalMethod" />
- <exclude name="producerMethod" />
+
<exclude name="observerMethod" />
<exclude name="deferredEvent" />
<exclude name="ejb3" />
15 years, 6 months
[webbeans-commits] Webbeans SVN: r266 - in ri/trunk/webbeans-ri/src: main/java/org/jboss/webbeans/introspector/impl and 5 other directories.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2008-11-06 11:51:22 -0500 (Thu, 06 Nov 2008)
New Revision: 266
Added:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Types.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/Barn.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/FarmHouse.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/FarmHouseProducer.java
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ResolutionManager.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/AbstractAnnotatedItem.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/BindingTypeTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/CommonWebBeanTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectionTests.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ProducerMethodBeanModelTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByTypeTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/annotations/Tame.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/SpiderProducer.java
Log:
Support primitive/boxed type equality
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ResolutionManager.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ResolutionManager.java 2008-11-06 16:49:13 UTC (rev 265)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ResolutionManager.java 2008-11-06 16:51:22 UTC (rev 266)
@@ -10,6 +10,7 @@
import java.util.SortedSet;
import java.util.TreeSet;
+import javax.webbeans.NullableDependencyException;
import javax.webbeans.manager.Bean;
import org.jboss.webbeans.injectable.Injectable;
@@ -69,7 +70,18 @@
private void registerInjectionPoint(Injectable<?, ?> injectable)
{
- resolvedInjectionPoints.put(injectable, retainHighestPrecedenceBeans(injectable.getMatchingBeans(manager.getBeans(), manager.getModelManager()), manager.getEnabledDeploymentTypes()));
+ Set<Bean<?>> beans = retainHighestPrecedenceBeans(injectable.getMatchingBeans(manager.getBeans(), manager.getModelManager()), manager.getEnabledDeploymentTypes());
+ if (injectable.getType().isPrimitive())
+ {
+ for (Bean<?> bean : beans)
+ {
+ if (bean.isNullable())
+ {
+ throw new NullableDependencyException("Primitive injection points resolves to nullable web bean");
+ }
+ }
+ }
+ resolvedInjectionPoints.put(injectable, beans);
}
public void clear()
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/AbstractAnnotatedItem.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/AbstractAnnotatedItem.java 2008-11-06 16:49:13 UTC (rev 265)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/AbstractAnnotatedItem.java 2008-11-06 16:51:22 UTC (rev 266)
@@ -13,6 +13,7 @@
import org.jboss.webbeans.exceptions.TypesafeResolutionLocation;
import org.jboss.webbeans.introspector.AnnotatedItem;
import org.jboss.webbeans.util.Reflections;
+import org.jboss.webbeans.util.Types;
public abstract class AbstractAnnotatedItem<T, S> implements AnnotatedItem<T, S>
{
@@ -149,9 +150,7 @@
private boolean isAssignableFrom(Class<?> type, Type[] actualTypeArguments)
{
- //TODO: primitive types and wrapper types should be considered equal
- //TODO: array types should be considered equal only if the element type matches
- return getType().isAssignableFrom(type) && Arrays.equals(getActualTypeArguments(), actualTypeArguments);
+ return Types.boxedType(getType()).isAssignableFrom(Types.boxedType(type)) && Arrays.equals(getActualTypeArguments(), actualTypeArguments);
}
@Override
Added: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Types.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Types.java (rev 0)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Types.java 2008-11-06 16:51:22 UTC (rev 266)
@@ -0,0 +1,53 @@
+package org.jboss.webbeans.util;
+
+public class Types
+{
+
+ public static Class<?> boxedType(Class<?> type)
+ {
+ if (type.isPrimitive())
+ {
+ if (type.equals(Boolean.TYPE))
+ {
+ return Boolean.class;
+ }
+ else if (type.equals(Character.TYPE))
+ {
+ return Character.class;
+ }
+ else if (type.equals(Byte.TYPE))
+ {
+ return Byte.class;
+ }
+ else if (type.equals(Short.TYPE))
+ {
+ return Short.class;
+ }
+ else if (type.equals(Integer.TYPE))
+ {
+ return Integer.class;
+ }
+ else if (type.equals(Long.TYPE))
+ {
+ return Long.class;
+ }
+ else if (type.equals(Float.TYPE))
+ {
+ return Float.class;
+ }
+ else if (type.equals(Double.TYPE))
+ {
+ return Double.class;
+ }
+ else
+ {
+ throw new IllegalStateException("Some weird type!!!");
+ }
+ }
+ else
+ {
+ return type;
+ }
+ }
+
+}
Property changes on: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Types.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/BindingTypeTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/BindingTypeTest.java 2008-11-06 16:49:13 UTC (rev 265)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/BindingTypeTest.java 2008-11-06 16:51:22 UTC (rev 266)
@@ -1,14 +1,19 @@
package org.jboss.webbeans.test;
+import static org.jboss.webbeans.test.util.Util.createProducerMethodBean;
import static org.jboss.webbeans.test.util.Util.createSimpleModel;
+import static org.jboss.webbeans.test.util.Util.createSimpleWebBean;
import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
import javax.webbeans.AnnotationLiteral;
import javax.webbeans.Current;
+import org.jboss.webbeans.bean.ProducerMethodBean;
+import org.jboss.webbeans.bean.SimpleBean;
import org.jboss.webbeans.bindings.CurrentAnnotationLiteral;
import org.jboss.webbeans.introspector.AnnotatedClass;
import org.jboss.webbeans.introspector.impl.SimpleAnnotatedClass;
@@ -17,9 +22,14 @@
import org.jboss.webbeans.test.annotations.Asynchronous;
import org.jboss.webbeans.test.annotations.Synchronous;
import org.jboss.webbeans.test.beans.Antelope;
+import org.jboss.webbeans.test.beans.Barn;
import org.jboss.webbeans.test.beans.Cat;
import org.jboss.webbeans.test.beans.Cod;
+import org.jboss.webbeans.test.beans.DefangedTarantula;
import org.jboss.webbeans.test.beans.Order;
+import org.jboss.webbeans.test.beans.Spider;
+import org.jboss.webbeans.test.beans.SpiderProducer;
+import org.jboss.webbeans.test.beans.Tarantula;
import org.jboss.webbeans.test.beans.Tuna;
import org.jboss.webbeans.test.bindings.AsynchronousAnnotationLiteral;
import org.jboss.webbeans.util.Reflections;
@@ -38,12 +48,6 @@
order.getBindingTypes().iterator().next().annotationType().equals(Current.class);
}
- @Test(groups={"injection", "producerMethod"}) @SpecAssertion(section="2.3.1")
- public void testDefaultBindingTypeAssumedAtInjectionPoint() throws Exception
- {
- assert false;
- }
-
@Test(groups="annotationDefinition") @SpecAssertion(section="2.3.2")
public void testBindingTypeHasCorrectTarget()
{
@@ -124,9 +128,15 @@
@Test(groups={"injection", "producerMethod"}) @SpecAssertion(section="2.3.5")
- public void testFieldInjectedFromProducerMethod()
+ public void testFieldInjectedFromProducerMethod() throws Exception
{
- assert false;
+ SimpleBean<SpiderProducer> spiderProducer = createSimpleWebBean(SpiderProducer.class, manager);
+ manager.addBean(spiderProducer);
+ Method method = SpiderProducer.class.getMethod("produceTameTarantula");
+ manager.addBean(createProducerMethodBean(Tarantula.class, method, manager, spiderProducer));
+ Barn barn = createSimpleWebBean(Barn.class, manager).create();
+ assert barn.petSpider != null;
+ assert barn.petSpider instanceof DefangedTarantula;
}
@Test(groups={"injection", "webbeansxml"}) @SpecAssertion(section="2.3.5")
@@ -142,9 +152,17 @@
}
@Test(groups={"injection", "producerMethod"})
- public void testMethodWithBindingAnnotationsOnParametersAreInjected()
+ public void testMethodWithBindingAnnotationsOnParametersAreInjected() throws Exception
{
- assert false;
+ SimpleBean<SpiderProducer> spiderProducer = createSimpleWebBean(SpiderProducer.class, manager);
+ manager.addBean(spiderProducer);
+ Method method = SpiderProducer.class.getMethod("produceTameTarantula");
+ manager.addBean(createProducerMethodBean(Tarantula.class, method, manager, spiderProducer));
+ method = SpiderProducer.class.getMethod("produceSpiderFromInjection", Tarantula.class);
+ ProducerMethodBean<Spider> spiderBean = createProducerMethodBean(Spider.class, method, manager, spiderProducer);
+ Spider spider = spiderBean.create();
+ assert spider != null;
+ assert spider instanceof DefangedTarantula;
}
@Test(groups={"injection", "webbeansxml"}) @SpecAssertion(section="2.3.6")
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/CommonWebBeanTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/CommonWebBeanTest.java 2008-11-06 16:49:13 UTC (rev 265)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/CommonWebBeanTest.java 2008-11-06 16:51:22 UTC (rev 266)
@@ -1,12 +1,20 @@
package org.jboss.webbeans.test;
+import static org.jboss.webbeans.test.util.Util.createProducerMethodBean;
import static org.jboss.webbeans.test.util.Util.createSimpleModel;
+import static org.jboss.webbeans.test.util.Util.createSimpleWebBean;
+import java.lang.reflect.Method;
+
import javax.webbeans.Production;
import javax.webbeans.RequestScoped;
+import javax.webbeans.manager.Bean;
+import org.jboss.webbeans.bean.SimpleBean;
import org.jboss.webbeans.model.bean.BeanModel;
import org.jboss.webbeans.test.beans.RedSnapper;
+import org.jboss.webbeans.test.beans.Spider;
+import org.jboss.webbeans.test.beans.SpiderProducer;
import org.testng.annotations.Test;
/**
@@ -49,9 +57,16 @@
}
@Test(groups="producerMethod") @SpecAssertion(section="4.2")
- public void testIsNullable()
+ public void testIsNullable() throws Exception
{
- assert false;
+ SimpleBean<SpiderProducer> spiderProducerBean = createSimpleWebBean(SpiderProducer.class, manager);
+ manager.addBean(spiderProducerBean);
+ Method method = SpiderProducer.class.getMethod("getWolfSpiderSize");
+ Bean<Integer> bean = createProducerMethodBean(int.class, method, manager);
+ assert !bean.isNullable();
+ method = SpiderProducer.class.getMethod("makeASpider");
+ Bean<Spider> spiderBean = createProducerMethodBean(Spider.class, method, manager);
+ assert spiderBean.isNullable();
}
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectionTests.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectionTests.java 2008-11-06 16:49:13 UTC (rev 265)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectionTests.java 2008-11-06 16:51:22 UTC (rev 266)
@@ -1,6 +1,7 @@
package org.jboss.webbeans.test;
+import static org.jboss.webbeans.test.util.Util.createProducerMethodBean;
import static org.jboss.webbeans.test.util.Util.createSimpleWebBean;
import javax.webbeans.ContextNotActiveException;
@@ -15,6 +16,8 @@
import org.jboss.webbeans.test.beans.Tuna;
import org.jboss.webbeans.test.beans.broken.BeanWithFinalBoundField;
import org.jboss.webbeans.test.beans.broken.BeanWithStaticBoundField;
+import org.jboss.webbeans.test.beans.broken.FarmHouse;
+import org.jboss.webbeans.test.beans.broken.FarmHouseProducer;
import org.testng.annotations.Test;
@SpecVersion("PDR")
@@ -40,15 +43,17 @@
}
@Test(groups={"injection", "producerMethod"}, expectedExceptions=NullableDependencyException.class) @SpecAssertion(section="4.2")
- public void testPrimitiveInjectionPointResolvesToNullableWebBean()
+ public void testPrimitiveInjectionPointResolvesToNullableWebBean() throws Exception
{
- assert false;
+ Bean<FarmHouse> farmHouseBean = createSimpleWebBean(FarmHouse.class, manager);
+ manager.addBean(createProducerMethodBean(Integer.class, FarmHouseProducer.class.getMethod("getNumberOfBedrooms"), manager));
+ FarmHouse farmHouse = farmHouseBean.create();
}
@Test(groups={"injection", "clientProxy"}, expectedExceptions=ContextNotActiveException.class) @SpecAssertion(section="4.3")
public void testInvokeNormalInjectedWebBeanWhenContextNotActive()
{
-
+
}
@Test(groups="injection") @SpecAssertion(section="4.3")
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ProducerMethodBeanModelTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ProducerMethodBeanModelTest.java 2008-11-06 16:49:13 UTC (rev 265)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ProducerMethodBeanModelTest.java 2008-11-06 16:51:22 UTC (rev 266)
@@ -89,7 +89,7 @@
assert false;
}
- @Test(groups="producerMethod") @SpecAssertion(section="3.4")
+ @Test(groups="producerMethod") @SpecAssertion(section={"3.4", "2.3.1"})
public void testDefaultBindingType() throws Exception
{
SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByTypeTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByTypeTest.java 2008-11-06 16:49:13 UTC (rev 265)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByTypeTest.java 2008-11-06 16:51:22 UTC (rev 266)
@@ -1,7 +1,9 @@
package org.jboss.webbeans.test;
+import static org.jboss.webbeans.test.util.Util.createProducerMethodBean;
import static org.jboss.webbeans.test.util.Util.createSimpleWebBean;
+import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
@@ -13,6 +15,7 @@
import javax.webbeans.manager.Bean;
import org.jboss.webbeans.ResolutionManager;
+import org.jboss.webbeans.bean.SimpleBean;
import org.jboss.webbeans.bindings.CurrentAnnotationLiteral;
import org.jboss.webbeans.injectable.InjectableField;
import org.jboss.webbeans.test.annotations.Expensive;
@@ -31,6 +34,8 @@
import org.jboss.webbeans.test.beans.ScottishFishFarmer;
import org.jboss.webbeans.test.beans.SeaBass;
import org.jboss.webbeans.test.beans.Sole;
+import org.jboss.webbeans.test.beans.Spider;
+import org.jboss.webbeans.test.beans.SpiderProducer;
import org.jboss.webbeans.test.beans.Tuna;
import org.jboss.webbeans.test.bindings.AnotherDeploymentTypeAnnotationLiteral;
import org.jboss.webbeans.test.bindings.BindingTypeWithBindingAnnotationMemberAnnotationLiteral;
@@ -206,9 +211,18 @@
}
@Test(groups={"resolution", "producerMethod"}) @SpecAssertion(section="4.9.2")
- public void testResolveByTypeWithArray()
+ public void testResolveByTypeWithArray() throws Exception
{
- assert false;
+ SimpleBean<SpiderProducer> spiderProducerBean = createSimpleWebBean(SpiderProducer.class, manager);
+ manager.addBean(spiderProducerBean);
+ Method method = SpiderProducer.class.getMethod("getSpiders");
+ Bean<Spider[]> spidersModel = createProducerMethodBean(Spider[].class, method, manager);
+ manager.addBean(spidersModel);
+ method = SpiderProducer.class.getMethod("getStrings");
+ Bean<String[]> stringModel = createProducerMethodBean(String[].class, method, manager);
+ manager.addBean(stringModel);
+
+ assert manager.resolveByType(Spider[].class).size() == 1;
}
@Test @SpecAssertion(section="4.9.2")
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/annotations/Tame.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/annotations/Tame.java 2008-11-06 16:49:13 UTC (rev 265)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/annotations/Tame.java 2008-11-06 16:51:22 UTC (rev 266)
@@ -1,5 +1,6 @@
package org.jboss.webbeans.test.annotations;
+import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.ElementType.TYPE;
@@ -11,7 +12,7 @@
import javax.webbeans.BindingType;
-@Target( { TYPE, METHOD, PARAMETER })
+@Target( { TYPE, METHOD, PARAMETER, FIELD })
@Retention(RUNTIME)
@Documented
@BindingType
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/Barn.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/Barn.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/Barn.java 2008-11-06 16:51:22 UTC (rev 266)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.test.beans;
+
+import org.jboss.webbeans.test.annotations.Tame;
+
+public class Barn
+{
+
+ @Tame
+ public Tarantula petSpider;
+
+}
Property changes on: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/Barn.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/SpiderProducer.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/SpiderProducer.java 2008-11-06 16:49:13 UTC (rev 265)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/SpiderProducer.java 2008-11-06 16:51:22 UTC (rev 266)
@@ -70,6 +70,11 @@
return ALL_SPIDERS;
}
+ @Produces public String[] getStrings()
+ {
+ return new String[0];
+ }
+
@Produces public <T> FunnelWeaver<T> getFunnelWeaver()
{
return new FunnelWeaver<T>();
@@ -89,5 +94,10 @@
{
return null;
}
+
+ @Produces public Spider produceSpiderFromInjection(@Tame Tarantula tarantula)
+ {
+ return tarantula;
+ }
}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/FarmHouse.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/FarmHouse.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/FarmHouse.java 2008-11-06 16:51:22 UTC (rev 266)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.test.beans.broken;
+
+import javax.webbeans.Current;
+
+public class FarmHouse
+{
+
+ @Current
+ public int noOfBedrooms;
+
+}
Property changes on: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/FarmHouse.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/FarmHouseProducer.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/FarmHouseProducer.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/FarmHouseProducer.java 2008-11-06 16:51:22 UTC (rev 266)
@@ -0,0 +1,13 @@
+package org.jboss.webbeans.test.beans.broken;
+
+import javax.webbeans.Produces;
+
+public class FarmHouseProducer
+{
+
+ @Produces public Integer getNumberOfBedrooms()
+ {
+ return null;
+ }
+
+}
Property changes on: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/FarmHouseProducer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
15 years, 6 months
[webbeans-commits] Webbeans SVN: r265 - ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples.
by webbeans-commits@lists.jboss.org
Author: gavin.king(a)jboss.com
Date: 2008-11-06 11:49:13 -0500 (Thu, 06 Nov 2008)
New Revision: 265
Modified:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Game.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Generator.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Tests.java
Log:
add some more assertions
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Game.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Game.java 2008-11-06 16:32:45 UTC (rev 264)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Game.java 2008-11-06 16:49:13 UTC (rev 265)
@@ -1,8 +1,16 @@
package org.jboss.webbeans.examples;
+import javax.webbeans.Initializer;
+
public class Game
{
- private @Random int number;
+ private final int number;
+
+ @Initializer
+ Game(@Random int number)
+ {
+ this.number = number;
+ }
public int getNumber()
{
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Generator.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Generator.java 2008-11-06 16:32:45 UTC (rev 264)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Generator.java 2008-11-06 16:49:13 UTC (rev 265)
@@ -8,8 +8,13 @@
private java.util.Random random = new java.util.Random( System.currentTimeMillis() );
+ java.util.Random getRandom()
+ {
+ return random;
+ }
+
@Produces @Random int next() {
- return random.nextInt(100);
+ return getRandom().nextInt(100);
}
-
+
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Tests.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Tests.java 2008-11-06 16:32:45 UTC (rev 264)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Tests.java 2008-11-06 16:49:13 UTC (rev 265)
@@ -22,6 +22,11 @@
manager.addBean(nextBean);
Game game1 = manager.getInstanceByType(Game.class);
Game game2 = manager.getInstanceByType(Game.class);
+ assert game1!=game2;
assert game1.getNumber()!=game2.getNumber();
+ Generator gen1 = manager.getInstanceByType(Generator.class);
+ Generator gen2 = manager.getInstanceByType(Generator.class);
+ assert gen1.getRandom()!=null;
+ assert gen1.getRandom()==gen2.getRandom();
}
}
15 years, 6 months
[webbeans-commits] Webbeans SVN: r264 - in ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans: examples and 1 other directory.
by webbeans-commits@lists.jboss.org
Author: gavin.king(a)jboss.com
Date: 2008-11-06 11:32:45 -0500 (Thu, 06 Nov 2008)
New Revision: 264
Added:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Game.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Generator.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Random.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Tests.java
Log:
Added Random example
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Game.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Game.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Game.java 2008-11-06 16:32:45 UTC (rev 264)
@@ -0,0 +1,12 @@
+package org.jboss.webbeans.examples;
+
+public class Game
+{
+ private @Random int number;
+
+ public int getNumber()
+ {
+ return number;
+ }
+
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Generator.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Generator.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Generator.java 2008-11-06 16:32:45 UTC (rev 264)
@@ -0,0 +1,15 @@
+package org.jboss.webbeans.examples;
+
+import javax.webbeans.ApplicationScoped;
+import javax.webbeans.Produces;
+
+@ApplicationScoped
+public class Generator {
+
+ private java.util.Random random = new java.util.Random( System.currentTimeMillis() );
+
+ @Produces @Random int next() {
+ return random.nextInt(100);
+ }
+
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Random.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Random.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Random.java 2008-11-06 16:32:45 UTC (rev 264)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.examples;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.BindingType;
+
+@Target( { TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+@BindingType
+public @interface Random
+{
+
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Tests.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Tests.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Tests.java 2008-11-06 16:32:45 UTC (rev 264)
@@ -0,0 +1,27 @@
+package org.jboss.webbeans.examples;
+
+import java.lang.reflect.Method;
+
+import org.jboss.webbeans.bean.ProducerMethodBean;
+import org.jboss.webbeans.bean.SimpleBean;
+import org.jboss.webbeans.test.AbstractTest;
+import org.jboss.webbeans.test.util.Util;
+import org.testng.annotations.Test;
+
+public class Tests extends AbstractTest
+{
+ @Test
+ public void testGameGenerator() throws Exception {
+ SimpleBean<Game> gameBean = Util.createSimpleWebBean(Game.class, manager);
+ SimpleBean<Generator> generatorBean = Util.createSimpleWebBean(Generator.class, manager);
+ Method method = Generator.class.getDeclaredMethod("next");
+ method.setAccessible(true);
+ ProducerMethodBean<Integer> nextBean = Util.createProducerMethodBean(int.class, method, manager, generatorBean);
+ manager.addBean(gameBean);
+ manager.addBean(generatorBean);
+ manager.addBean(nextBean);
+ Game game1 = manager.getInstanceByType(Game.class);
+ Game game2 = manager.getInstanceByType(Game.class);
+ assert game1.getNumber()!=game2.getNumber();
+ }
+}
15 years, 6 months
[webbeans-commits] Webbeans SVN: r263 - in ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans: util and 1 other directory.
by webbeans-commits@lists.jboss.org
Author: gavin.king(a)jboss.com
Date: 2008-11-06 11:32:17 -0500 (Thu, 06 Nov 2008)
New Revision: 263
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/AbstractAnnotatedItem.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedClass.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/ProxyMethodHandler.java
Log:
fix the use of getMethod(), getField(), instead use getDeclaredXxxx() and setAccessible(true)
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/AbstractAnnotatedItem.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/AbstractAnnotatedItem.java 2008-11-06 16:12:09 UTC (rev 262)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/AbstractAnnotatedItem.java 2008-11-06 16:32:17 UTC (rev 263)
@@ -149,6 +149,8 @@
private boolean isAssignableFrom(Class<?> type, Type[] actualTypeArguments)
{
+ //TODO: primitive types and wrapper types should be considered equal
+ //TODO: array types should be considered equal only if the element type matches
return getType().isAssignableFrom(type) && Arrays.equals(getActualTypeArguments(), actualTypeArguments);
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedClass.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedClass.java 2008-11-06 16:12:09 UTC (rev 262)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedClass.java 2008-11-06 16:32:17 UTC (rev 263)
@@ -92,9 +92,13 @@
private void initFields()
{
this.fields = new HashSet<AnnotatedField<Object>>();
- for(Field field : clazz.getFields())
+ for(Class c=clazz;c!=Object.class;c=c.getSuperclass())
{
- fields.add(new SimpleAnnotatedField<Object>(field));
+ for(Field field : clazz.getDeclaredFields())
+ {
+ if ( !field.isAccessible() ) field.setAccessible(true);
+ fields.add(new SimpleAnnotatedField<Object>(field));
+ }
}
}
@@ -176,9 +180,13 @@
private void initMethods()
{
this.methods = new HashSet<AnnotatedMethod<Object>>();
- for (Method member : clazz.getDeclaredMethods())
+ for(Class c=clazz;c!=Object.class;c=c.getSuperclass())
{
- methods.add(new SimpleAnnotatedMethod<Object>(member));
+ for (Method method : clazz.getDeclaredMethods())
+ {
+ if (!method.isAccessible()) method.setAccessible(true);
+ methods.add(new SimpleAnnotatedMethod<Object>(method));
+ }
}
}
@@ -226,6 +234,7 @@
for (Constructor<T> constructor : clazz.getDeclaredConstructors())
{
AnnotatedConstructor<T> annotatedConstructor = new SimpleAnnotatedConstructor<T>(constructor);
+ if (!constructor.isAccessible()) constructor.setAccessible(true);
constructors.add(annotatedConstructor);
constructorsByArgumentMap.put(new HashSet<Class<?>>(Arrays.asList(constructor.getParameterTypes())), annotatedConstructor);
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/ProxyMethodHandler.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/ProxyMethodHandler.java 2008-11-06 16:12:09 UTC (rev 262)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/ProxyMethodHandler.java 2008-11-06 16:32:17 UTC (rev 263)
@@ -33,8 +33,23 @@
}
Context context = manager.getContext(bean.getScopeType());
Object proxiedInstance = context.get(bean, true);
- Method proxiedMethod = proxiedInstance.getClass().getMethod(method.getName(), method.getParameterTypes());
+ Method proxiedMethod = getMethod(method, proxiedInstance);
return proxiedMethod.invoke(proxiedInstance, args);
}
+ private static Method getMethod(Method method, Object instance)
+ {
+ for (Class<? extends Object> c = instance.getClass(); c!=Object.class; c=c.getSuperclass())
+ {
+ try
+ {
+ Method m = c.getDeclaredMethod(method.getName(), method.getParameterTypes());
+ if (!m.isAccessible()) m.setAccessible(true);
+ return m;
+ }
+ catch (NoSuchMethodException nsme) {}
+ }
+ throw new IllegalArgumentException("method not implemented by instance");
+ }
+
}
15 years, 6 months
[webbeans-commits] Webbeans SVN: r262 - ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/util.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2008-11-06 11:12:09 -0500 (Thu, 06 Nov 2008)
New Revision: 262
Modified:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/util/Util.java
Log:
Deprecate this method which isn't safe
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/util/Util.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/util/Util.java 2008-11-06 14:55:05 UTC (rev 261)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/util/Util.java 2008-11-06 16:12:09 UTC (rev 262)
@@ -63,6 +63,7 @@
return new ProducerMethodBeanModel<T>(new SimpleAnnotatedMethod<T>(method), xmlAnnotatedMethod, manager, declaringBean);
}
+ @Deprecated
public static <T> ProducerMethodBeanModel<T> createProducerModel(Class<T> type, Method method, AnnotatedMethod<T> xmlAnnotatedMethod, ManagerImpl manager)
{
return createProducerModel(type, method, xmlAnnotatedMethod, manager, null);
15 years, 6 months