You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by da...@apache.org on 2008/08/16 20:46:19 UTC
svn commit: r686535 - in
/openejb/trunk/openejb3/container/openejb-spring/src:
main/java/org/apache/openejb/spring/ test/java/org/apache/openejb/spring/
test/resources/org/apache/openejb/spring/
Author: dain
Date: Sat Aug 16 11:46:19 2008
New Revision: 686535
URL: http://svn.apache.org/viewvc?rev=686535&view=rev
Log:
Added tests to show EJB injected into Spring bean and Spring bean injected into EJB
Added:
openejb/trunk/openejb3/container/openejb-spring/src/test/java/org/apache/openejb/spring/EchoReverseBean.java
openejb/trunk/openejb3/container/openejb-spring/src/test/java/org/apache/openejb/spring/SpringBean.java
Modified:
openejb/trunk/openejb3/container/openejb-spring/src/main/java/org/apache/openejb/spring/OpenEJB.java
openejb/trunk/openejb3/container/openejb-spring/src/test/java/org/apache/openejb/spring/EchoBean.java
openejb/trunk/openejb3/container/openejb-spring/src/test/java/org/apache/openejb/spring/SpringTest.java
openejb/trunk/openejb3/container/openejb-spring/src/test/resources/org/apache/openejb/spring/spring.xml
Modified: openejb/trunk/openejb3/container/openejb-spring/src/main/java/org/apache/openejb/spring/OpenEJB.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-spring/src/main/java/org/apache/openejb/spring/OpenEJB.java?rev=686535&r1=686534&r2=686535&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-spring/src/main/java/org/apache/openejb/spring/OpenEJB.java (original)
+++ openejb/trunk/openejb3/container/openejb-spring/src/main/java/org/apache/openejb/spring/OpenEJB.java Sat Aug 16 11:46:19 2008
@@ -439,15 +439,14 @@
private <T extends ServiceInfo> T initPassthrough(String id, T info, String serviceType, Object instance) {
info.id = id;
info.service = serviceType;
- info.types = getTypes(instance);
+ info.types = getTypes(instance.getClass());
PassthroughFactory.add(info, instance);
return info;
}
- private List<String> getTypes(Object instance) {
+ private List<String> getTypes(Class type) {
LinkedHashSet<String> types = new LinkedHashSet<String>();
- Class clazz = instance.getClass();
- addTypes(clazz, types);
+ addTypes(type, types);
return new ArrayList<String>(types);
}
Modified: openejb/trunk/openejb3/container/openejb-spring/src/test/java/org/apache/openejb/spring/EchoBean.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-spring/src/test/java/org/apache/openejb/spring/EchoBean.java?rev=686535&r1=686534&r2=686535&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-spring/src/test/java/org/apache/openejb/spring/EchoBean.java (original)
+++ openejb/trunk/openejb3/container/openejb-spring/src/test/java/org/apache/openejb/spring/EchoBean.java Sat Aug 16 11:46:19 2008
@@ -17,12 +17,25 @@
*/
package org.apache.openejb.spring;
+import javax.annotation.Resource;
import javax.ejb.Stateless;
@Stateless
public class EchoBean implements Echo {
+ @Resource
+ private SpringBean springBean;
+
+ public SpringBean getSpringBean() {
+ return springBean;
+ }
+
+ public void setSpringBean(SpringBean springBean) {
+ this.springBean = springBean;
+ }
+
public String echo(String s) {
- System.out.println(s);
- return new StringBuilder(s).reverse().toString();
+ String name = null;
+ if (springBean != null) name = springBean.getName();
+ return s + " " + name;
}
}
Added: openejb/trunk/openejb3/container/openejb-spring/src/test/java/org/apache/openejb/spring/EchoReverseBean.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-spring/src/test/java/org/apache/openejb/spring/EchoReverseBean.java?rev=686535&view=auto
==============================================================================
--- openejb/trunk/openejb3/container/openejb-spring/src/test/java/org/apache/openejb/spring/EchoReverseBean.java (added)
+++ openejb/trunk/openejb3/container/openejb-spring/src/test/java/org/apache/openejb/spring/EchoReverseBean.java Sat Aug 16 11:46:19 2008
@@ -0,0 +1,37 @@
+/**
+ *
+ * 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.openejb.spring;
+
+import javax.ejb.EJB;
+
+public class EchoReverseBean {
+ @EJB
+ public Echo echo;
+
+ public Echo getEcho() {
+ return echo;
+ }
+
+ public void setEcho(Echo echo) {
+ this.echo = echo;
+ }
+
+ public String echoReverse(String message) {
+ return new StringBuilder(echo.echo(message)).reverse().toString();
+ }
+}
Added: openejb/trunk/openejb3/container/openejb-spring/src/test/java/org/apache/openejb/spring/SpringBean.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-spring/src/test/java/org/apache/openejb/spring/SpringBean.java?rev=686535&view=auto
==============================================================================
--- openejb/trunk/openejb3/container/openejb-spring/src/test/java/org/apache/openejb/spring/SpringBean.java (added)
+++ openejb/trunk/openejb3/container/openejb-spring/src/test/java/org/apache/openejb/spring/SpringBean.java Sat Aug 16 11:46:19 2008
@@ -0,0 +1,39 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.openejb.spring;
+
+import org.springframework.beans.factory.BeanNameAware;
+
+public class SpringBean implements BeanNameAware
+{
+ public String name;
+ private String beanName;
+
+ public String getName() {
+ if (name == null) return beanName;
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setBeanName(String beanName) {
+ this.beanName = beanName;
+ }
+}
Modified: openejb/trunk/openejb3/container/openejb-spring/src/test/java/org/apache/openejb/spring/SpringTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-spring/src/test/java/org/apache/openejb/spring/SpringTest.java?rev=686535&r1=686534&r2=686535&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-spring/src/test/java/org/apache/openejb/spring/SpringTest.java (original)
+++ openejb/trunk/openejb3/container/openejb-spring/src/test/java/org/apache/openejb/spring/SpringTest.java Sat Aug 16 11:46:19 2008
@@ -121,14 +121,24 @@
System.out.println();
//
- // EJB
+ // EJB with Spring bean injected
//
Echo echo = (Echo) context.getBean("EchoBeanLocal");
assertNotNull("echo is null", echo);
- assertEquals("olleH", echo.echo("Hello"));
- echo = (Echo) context.getBean("Echo");
- assertNotNull("echo is null", echo);
- assertEquals("olleH", echo.echo("Hello"));
+ assertEquals("Hello MySpringBean", echo.echo("Hello"));
+// echo = (Echo) context.getBean("Echo");
+// assertNotNull("echo is null", echo);
+// assertEquals("Hello MySpringBean", echo.echo("Hello"));
+
+ //
+ // Spring bean with EJB injected
+ //
+ EchoReverseBean echoReverse = (EchoReverseBean) context.getBean("EchoReverse");
+ assertNotNull("echoReverse is null", echoReverse);
+ assertEquals("naeBgnirpSyM olleH", echoReverse.echoReverse("Hello"));
+// echoReverse = (EchoReverseBean) context.getBean("Echo");
+// assertNotNull("echoReverse is null", echoReverse);
+// assertEquals("Hello MySpringBean", echoReverse.echoReverse("Hello"));
//
// Stop the Spring Context
Modified: openejb/trunk/openejb3/container/openejb-spring/src/test/resources/org/apache/openejb/spring/spring.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-spring/src/test/resources/org/apache/openejb/spring/spring.xml?rev=686535&r1=686534&r2=686535&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-spring/src/test/resources/org/apache/openejb/spring/spring.xml (original)
+++ openejb/trunk/openejb3/container/openejb-spring/src/test/resources/org/apache/openejb/spring/spring.xml Sat Aug 16 11:46:19 2008
@@ -78,13 +78,17 @@
<bean name="classPathApplication" class="org.apache.openejb.spring.ClassPathApplication"/>
<!-- Explicit reference to the Echo bean... normally not needed -->
- <bean name="Echo" class="org.apache.openejb.spring.EJB">
- <property name="deploymentId" value="EchoBean"/>
- <property name="interface" value="org.apache.openejb.spring.Echo"/>
- </bean>
+ <!--<bean name="Echo" class="org.apache.openejb.spring.EJB">-->
+ <!--<property name="deploymentId" value="EchoBean"/>-->
+ <!--<property name="interface" value="org.apache.openejb.spring.Echo"/>-->
+ <!--</bean>-->
<!-- DataSource exported from OpenEJB -->
<bean id="openejbDS" class="org.apache.openejb.spring.OpenEJBDataSource">
<property name="resourceId" value="ds"/>
</bean>
+
+ <bean name="MySpringBean" class="org.apache.openejb.spring.SpringBean"/>
+
+ <bean name="EchoReverse" class="org.apache.openejb.spring.EchoReverseBean"/>
</beans>
\ No newline at end of file