You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by st...@apache.org on 2012/04/01 14:58:42 UTC
svn commit: r1308092 - in /openwebbeans/trunk/webbeans-impl/src/test:
java/org/apache/webbeans/newtests/concepts/alternatives/common/
java/org/apache/webbeans/newtests/concepts/alternatives/tests/
resources/org/apache/webbeans/newtests/concepts/alterna...
Author: struberg
Date: Sun Apr 1 12:58:41 2012
New Revision: 1308092
URL: http://svn.apache.org/viewvc?rev=1308092&view=rev
Log:
OWB-658 further improve our Alternative tests
Added:
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/AlternativeOnClassAndProducerMethodBean.java (contents, props changed)
- copied, changed from r1308084, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/AlternativeBeanProducer2.java
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/AlternativeOnClassOnlyBean.java (contents, props changed)
- copied, changed from r1308084, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/AlternativeBeanProducer1.java
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/AlternativeOnProducerMethodOnlyBean.java
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/tests/AlternativeTest.java (contents, props changed)
- copied, changed from r1308071, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/tests/Alternative1Test.java
openwebbeans/trunk/webbeans-impl/src/test/resources/org/apache/webbeans/newtests/concepts/alternatives/tests/AlternativeOnClassAndProducerMethod.xml (props changed)
- copied unchanged from r1303760, openwebbeans/trunk/webbeans-impl/src/test/resources/org/apache/webbeans/newtests/concepts/alternatives/tests/AlternativeTest5.xml
openwebbeans/trunk/webbeans-impl/src/test/resources/org/apache/webbeans/newtests/concepts/alternatives/tests/AlternativeOnProducerMethodOnly.xml
Removed:
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/AlternativeBeanProducer1.java
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/AlternativeBeanProducer2.java
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/tests/Alternative1Test.java
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/tests/Alternative2Test.java
openwebbeans/trunk/webbeans-impl/src/test/resources/org/apache/webbeans/newtests/concepts/alternatives/tests/AlternativeTest5.xml
Modified:
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/Pencil.java
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/tests/AlternativeOnProducerFieldTest.java
Copied: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/AlternativeOnClassAndProducerMethodBean.java (from r1308084, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/AlternativeBeanProducer2.java)
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/AlternativeOnClassAndProducerMethodBean.java?p2=openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/AlternativeOnClassAndProducerMethodBean.java&p1=openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/AlternativeBeanProducer2.java&r1=1308084&r2=1308092&rev=1308092&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/AlternativeBeanProducer2.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/AlternativeOnClassAndProducerMethodBean.java Sun Apr 1 12:58:41 2012
@@ -26,7 +26,7 @@ import javax.enterprise.inject.Produces;
* AND also an @Alternative on the producer method
*/
@Alternative
-public class AlternativeBeanProducer2
+public class AlternativeOnClassAndProducerMethodBean
{
@Produces
@@ -34,7 +34,7 @@ public class AlternativeBeanProducer2
@QualifierProducerBased
public IProducedBean generateBean2()
{
- return new ProducedBean("alternative2", this);
+ return new ProducedBean("AlternativeOnClassAndProducerMethodBean", this);
}
}
Propchange: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/AlternativeOnClassAndProducerMethodBean.java
------------------------------------------------------------------------------
svn:eol-style = native
Copied: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/AlternativeOnClassOnlyBean.java (from r1308084, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/AlternativeBeanProducer1.java)
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/AlternativeOnClassOnlyBean.java?p2=openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/AlternativeOnClassOnlyBean.java&p1=openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/AlternativeBeanProducer1.java&r1=1308084&r2=1308092&rev=1308092&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/AlternativeBeanProducer1.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/AlternativeOnClassOnlyBean.java Sun Apr 1 12:58:41 2012
@@ -26,13 +26,13 @@ import javax.enterprise.inject.Produces;
* This one has the @Alternative on the class and NOT on the producer method
*/
@Alternative
-public class AlternativeBeanProducer1
+public class AlternativeOnClassOnlyBean
{
@Produces
@QualifierProducerBased
public IProducedBean generateBean1()
{
- return new ProducedBean("alternative1", this);
+ return new ProducedBean("AlternativeOnClassOnlyBean", this);
}
}
Propchange: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/AlternativeOnClassOnlyBean.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/AlternativeOnProducerMethodOnlyBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/AlternativeOnProducerMethodOnlyBean.java?rev=1308092&view=auto
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/AlternativeOnProducerMethodOnlyBean.java (added)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/AlternativeOnProducerMethodOnlyBean.java Sun Apr 1 12:58:41 2012
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.webbeans.newtests.concepts.alternatives.common;
+
+import javax.enterprise.inject.Alternative;
+import javax.enterprise.inject.Produces;
+
+/**
+ * This one has the @Alternative ONLY on the producer method
+ */
+public class AlternativeOnProducerMethodOnlyBean
+{
+
+ @Produces
+ @Alternative
+ @QualifierProducerBased
+ public IProducedBean generateBean2()
+ {
+ return new ProducedBean("AlternativeOnProducerMethodOnlyBean", this);
+ }
+
+}
Modified: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/Pencil.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/Pencil.java?rev=1308092&r1=1308091&r2=1308092&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/Pencil.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/common/Pencil.java Sun Apr 1 12:58:41 2012
@@ -18,7 +18,13 @@
*/
package org.apache.webbeans.newtests.concepts.alternatives.common;
+
public class Pencil
{
+ private int nr = 42;
+ public int getNr()
+ {
+ return nr;
+ }
}
Modified: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/tests/AlternativeOnProducerFieldTest.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/tests/AlternativeOnProducerFieldTest.java?rev=1308092&r1=1308091&r2=1308092&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/tests/AlternativeOnProducerFieldTest.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/tests/AlternativeOnProducerFieldTest.java Sun Apr 1 12:58:41 2012
@@ -45,19 +45,38 @@ public class AlternativeOnProducerFieldT
@Test
public void testProducerFieldAlternativeNotEnabled()
{
+
+ Collection<Class<?>> beanClasses = new ArrayList<Class<?>>();
+ beanClasses.add(PencilProducerBean.class);
+ beanClasses.add(Pencil.class);
+
+ startContainer(beanClasses, null);
+
+ Set<Bean<?>> beans = getBeanManager().getBeans(Pencil.class, new AnnotationLiteral<Pen>(){});
+ Assert.assertEquals(0, beans.size());
+
+ shutDownContainer();
+ }
+
+ @Test
+ public void testProducerFieldAlternativeEnabled()
+ {
Collection<String> beanXmls = new ArrayList<String>();
beanXmls.add(getXmlPath(PACKAGE_NAME, "AlternativeOnProducerFieldTest"));
-
+
Collection<Class<?>> beanClasses = new ArrayList<Class<?>>();
beanClasses.add(PencilProducerBean.class);
beanClasses.add(Pencil.class);
-
- startContainer(beanClasses, beanXmls);
-
+
+ startContainer(beanClasses, beanXmls);
+
Set<Bean<?>> beans = getBeanManager().getBeans(Pencil.class, new AnnotationLiteral<Pen>(){});
Assert.assertEquals(1, beans.size());
-
+ Pencil pencil = getInstance(Pencil.class, new AnnotationLiteral<Pen>(){});
+ Assert.assertNotNull(pencil);
+ Assert.assertEquals(42, pencil.getNr());
+
shutDownContainer();
}
-
+
}
Copied: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/tests/AlternativeTest.java (from r1308071, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/tests/Alternative1Test.java)
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/tests/AlternativeTest.java?p2=openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/tests/AlternativeTest.java&p1=openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/tests/Alternative1Test.java&r1=1308071&r2=1308092&rev=1308092&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/tests/Alternative1Test.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/tests/AlternativeTest.java Sun Apr 1 12:58:41 2012
@@ -26,23 +26,24 @@ import javax.enterprise.util.AnnotationL
import junit.framework.Assert;
import org.apache.webbeans.newtests.AbstractUnitTest;
-import org.apache.webbeans.newtests.concepts.alternatives.common.AlternativeBeanProducer1;
+import org.apache.webbeans.newtests.concepts.alternatives.common.AlternativeOnClassAndProducerMethodBean;
+import org.apache.webbeans.newtests.concepts.alternatives.common.AlternativeOnClassOnlyBean;
import org.apache.webbeans.newtests.concepts.alternatives.common.DefaultBeanProducer;
import org.apache.webbeans.newtests.concepts.alternatives.common.IProducedBean;
import org.apache.webbeans.newtests.concepts.alternatives.common.QualifierProducerBased;
import org.junit.Test;
-public class Alternative1Test extends AbstractUnitTest {
+public class AlternativeTest extends AbstractUnitTest {
@Test
@SuppressWarnings("unchecked")
- public void testDisposerMethodInAlternativeBean()
+ public void testAlternativeOnClassOnlyBean()
{
Collection<Class<?>> beanClasses = new ArrayList<Class<?>>();
beanClasses.add(DefaultBeanProducer.class);
// available but not enabled in beans.xml
- beanClasses.add(AlternativeBeanProducer1.class);
+ beanClasses.add(AlternativeOnClassOnlyBean.class);
startContainer(beanClasses, null);
@@ -58,4 +59,31 @@ public class Alternative1Test extends A
shutDownContainer();
}
+
+ @Test
+ public void testAlternativeOnClassAndProducerMethodBean()
+ {
+ Collection<String> beanXmls = new ArrayList<String>();
+
+ Collection<Class<?>> beanClasses = new ArrayList<Class<?>>();
+ beanClasses.add(DefaultBeanProducer.class);
+
+ // available but not enabled in beans.xml
+ beanClasses.add(AlternativeOnClassAndProducerMethodBean.class);
+
+ startContainer(beanClasses, beanXmls);
+
+ Annotation[] anns = new Annotation[1];
+ anns[0] = new AnnotationLiteral<QualifierProducerBased>()
+ {
+ };
+
+ IProducedBean producedBean = getInstance(IProducedBean.class, anns);
+ Assert.assertNotNull(producedBean);
+ Assert.assertEquals("default", producedBean.getProducerType());
+
+ shutDownContainer();
+ }
+
+
}
Propchange: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/concepts/alternatives/tests/AlternativeTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: openwebbeans/trunk/webbeans-impl/src/test/resources/org/apache/webbeans/newtests/concepts/alternatives/tests/AlternativeOnClassAndProducerMethod.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: openwebbeans/trunk/webbeans-impl/src/test/resources/org/apache/webbeans/newtests/concepts/alternatives/tests/AlternativeOnProducerMethodOnly.xml
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/resources/org/apache/webbeans/newtests/concepts/alternatives/tests/AlternativeOnProducerMethodOnly.xml?rev=1308092&view=auto
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/resources/org/apache/webbeans/newtests/concepts/alternatives/tests/AlternativeOnProducerMethodOnly.xml (added)
+++ openwebbeans/trunk/webbeans-impl/src/test/resources/org/apache/webbeans/newtests/concepts/alternatives/tests/AlternativeOnProducerMethodOnly.xml Sun Apr 1 12:58:41 2012
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+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.
+-->
+<beans>
+ <alternatives>
+ <class>org.apache.webbeans.newtests.concepts.alternatives.common.AlternativeBeanProducer4</class>
+ </alternatives>
+</beans>