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