You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2007/06/09 15:25:56 UTC

svn commit: r545742 - in /incubator/tuscany/java/sca/modules/binding-ejb: ./ src/main/java/org/apache/tuscany/sca/binding/ejb/util/ src/test/ src/test/java/ src/test/java/account/ src/test/java/org/ src/test/java/org/apache/ src/test/java/org/apache/tu...

Author: antelder
Date: Sat Jun  9 06:25:55 2007
New Revision: 545742

URL: http://svn.apache.org/viewvc?view=rev&rev=545742
Log:
EJB binding: Add testcase, all works now to bank app in Geronimo. need to make a mock server for testcase

Added:
    incubator/tuscany/java/sca/modules/binding-ejb/src/test/
    incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/
    incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/account/
    incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/account/BankManagerFacade.java   (with props)
    incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/account/Customer.java   (with props)
    incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/account/CustomerImpl.java   (with props)
    incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/org/
    incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/org/apache/
    incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/org/apache/tuscany/
    incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/org/apache/tuscany/sca/
    incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/org/apache/tuscany/sca/binding/
    incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/org/apache/tuscany/sca/binding/ejb/
    incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/org/apache/tuscany/sca/binding/ejb/tests/
    incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/org/apache/tuscany/sca/binding/ejb/tests/EJBReferenceTestCase.java   (with props)
    incubator/tuscany/java/sca/modules/binding-ejb/src/test/resources/
    incubator/tuscany/java/sca/modules/binding-ejb/src/test/resources/account/
    incubator/tuscany/java/sca/modules/binding-ejb/src/test/resources/account/account.composite
Modified:
    incubator/tuscany/java/sca/modules/binding-ejb/pom.xml
    incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBHandler.java
    incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBLocator.java

Modified: incubator/tuscany/java/sca/modules/binding-ejb/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ejb/pom.xml?view=diff&rev=545742&r1=545741&r2=545742
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ejb/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/binding-ejb/pom.xml Sat Jun  9 06:25:55 2007
@@ -47,6 +47,13 @@
         </dependency>
 
         <dependency>
+            <groupId>cglib</groupId>
+            <artifactId>cglib-nodep</artifactId>
+            <version>2.1_3</version>
+            <scope>runtime</scope>
+        </dependency>
+
+        <dependency>
             <groupId>junit</groupId>                                      
             <artifactId>junit</artifactId>
             <version>3.8.1</version>

Modified: incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBHandler.java?view=diff&rev=545742&r1=545741&r2=545742
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBHandler.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBHandler.java Sat Jun  9 06:25:55 2007
@@ -64,6 +64,8 @@
             this.ejbStub = EJBStubHelper.lookup(namingEndpoint);
             this.interfaceInfo = ejbInterface;
         } catch (Exception e) {
+            Throwable b = e.getCause();
+            b.printStackTrace();
             throw new ServiceRuntimeException(e);
         }
     }

Modified: incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBLocator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBLocator.java?view=diff&rev=545742&r1=545741&r2=545742
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBLocator.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/util/EJBLocator.java Sat Jun  9 06:25:55 2007
@@ -478,7 +478,12 @@
         }
 
         public Object locate(String name) throws NamingException {
+            try {
             return context.lookup(name);
+            } catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
         }
     }
 

Added: incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/account/BankManagerFacade.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/account/BankManagerFacade.java?view=auto&rev=545742
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/account/BankManagerFacade.java (added)
+++ incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/account/BankManagerFacade.java Sat Jun  9 06:25:55 2007
@@ -0,0 +1,20 @@
+/**
+ * 
+ * (C) Copyright IBM Corp. 2004, 2006  All Rights Reserved
+ * 
+ */
+package account;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * 
+ * Compatible EJB interface
+ *
+ */
+@Remotable
+public interface BankManagerFacade   
+{
+    public java.lang.Double getAccountBalance( java.lang.String accountNo );
+    public void changeAccountBalance( java.lang.String accountNo,java.lang.Double balance );
+}
\ No newline at end of file

Propchange: incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/account/BankManagerFacade.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/account/BankManagerFacade.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/account/Customer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/account/Customer.java?view=auto&rev=545742
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/account/Customer.java (added)
+++ incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/account/Customer.java Sat Jun  9 06:25:55 2007
@@ -0,0 +1,24 @@
+/**
+ * 
+ * (C) Copyright IBM Corp. 2004, 2006  All Rights Reserved
+ * 
+ */
+package account;
+
+import org.osoa.sca.annotations.Remotable;
+import org.osoa.sca.annotations.Service;
+
+@Remotable
+@Service
+public interface Customer {
+
+    /**
+     * This method deposits the amount. method accesses external EJB to get the 
+     * current balance and add the amount to existing balance.
+     *
+     * @param String amount to be deposited
+     * @return total amount in customer accound after deposit
+     */
+    Double depositAmount(java.lang.String accountNo, Double amount);
+
+}

Propchange: incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/account/Customer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/account/Customer.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/account/CustomerImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/account/CustomerImpl.java?view=auto&rev=545742
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/account/CustomerImpl.java (added)
+++ incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/account/CustomerImpl.java Sat Jun  9 06:25:55 2007
@@ -0,0 +1,42 @@
+/**
+ * 
+ * (C) Copyright IBM Corp. 2004, 2006  All Rights Reserved
+ * 
+ */
+package account;
+
+import org.osoa.sca.ServiceRuntimeException;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+
+@Service(Customer.class)
+public class CustomerImpl implements Customer {
+
+    private BankManagerFacade extEJBService = null;
+
+    public BankManagerFacade getExtEJBService() {
+        return extEJBService;
+    }
+
+    @Reference
+    public void setExtEJBService(BankManagerFacade extEJBService) {
+        this.extEJBService = extEJBService;
+    }
+
+    // this method invokes external EJB through EJB reference binding
+    public Double depositAmount(java.lang.String accountNo, Double amount) {
+         
+        Double total = null;
+
+        System.out.println("In component implementation. Invoking external EJB through EJB reference binding  ");
+
+        try {
+            Double balance = extEJBService.getAccountBalance(accountNo); //invoke external ejb through ejb reference binding 
+            total =  balance + amount; 
+        } catch (Exception e) {
+            throw new ServiceRuntimeException(e);
+        }
+        return total;
+    }
+
+}

Propchange: incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/account/CustomerImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/account/CustomerImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/org/apache/tuscany/sca/binding/ejb/tests/EJBReferenceTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/org/apache/tuscany/sca/binding/ejb/tests/EJBReferenceTestCase.java?view=auto&rev=545742
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/org/apache/tuscany/sca/binding/ejb/tests/EJBReferenceTestCase.java (added)
+++ incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/org/apache/tuscany/sca/binding/ejb/tests/EJBReferenceTestCase.java Sat Jun  9 06:25:55 2007
@@ -0,0 +1,31 @@
+package org.apache.tuscany.sca.binding.ejb.tests;
+
+import junit.framework.TestCase;
+
+import org.apache.tuscany.sca.host.embedded.SCADomain;
+
+import account.Customer;
+
+/**
+ * This shows how to test the Calculator service component.
+ */
+public class EJBReferenceTestCase extends TestCase {
+
+    private SCADomain scaDomain;
+
+    protected void setUp() throws Exception {
+        scaDomain = SCADomain.newInstance("account/account.composite");
+    }
+
+    protected void tearDown() throws Exception {
+        scaDomain.close();
+    }
+
+    public void testCalculator() throws Exception {
+        Customer customer = scaDomain.getService(Customer.class, "CustomerComponent");
+        String accountNo = "1234567890"; // This is one of the customer numbers in bank application running on
+                                            // Geronimo
+        Double balance = customer.depositAmount(accountNo, new Double(100));
+        System.out.println("Balance amount for account " + accountNo + " is $" + balance);
+    }
+}

Propchange: incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/org/apache/tuscany/sca/binding/ejb/tests/EJBReferenceTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/binding-ejb/src/test/java/org/apache/tuscany/sca/binding/ejb/tests/EJBReferenceTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/modules/binding-ejb/src/test/resources/account/account.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ejb/src/test/resources/account/account.composite?view=auto&rev=545742
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ejb/src/test/resources/account/account.composite (added)
+++ incubator/tuscany/java/sca/modules/binding-ejb/src/test/resources/account/account.composite Sat Jun  9 06:25:55 2007
@@ -0,0 +1,32 @@
+<?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.    
+-->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
+           name="account">
+
+   	<!-- composite refrence with ejb binding. Modify host and port number in uri attribute based on where you have installed target ResumeBank EJB -->
+
+    <component name="CustomerComponent">
+ 		<implementation.java class="account.CustomerImpl"/>
+        <reference name="extEJBService">
+           <binding.ejb uri="corbaname:iiop:1.2@localhost:4201#org.apache.geronimo.samples.bank.ejb.BankManagerFacadeBean"/>
+        </reference>
+    </component>
+
+</composite>



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org