woo hoo!! finally a simple ejb client example!

thanks!!!!!!
david jencks

On Apr 8, 2008, at 1:53 PM, Jarek Gawor wrote:

Viet,

Can you please commit this to samples/trunk too?

Jarek

On Tue, Apr 8, 2008 at 1:18 PM,  <[EMAIL PROTECTED]> wrote:
Author: viet
 Date: Tue Apr  8 10:17:58 2008
 New Revision: 646006

 URL: http://svn.apache.org/viewvc?rev=646006&view=rev
 Log:
Add remote application portion to show how to remotely access an EJB3.

 Added:
    geronimo/samples/branches/2.1/samples/bank/bank-client/
geronimo/samples/branches/2.1/samples/bank/bank-client/ LICENSE.txt (with props) geronimo/samples/branches/2.1/samples/bank/bank-client/ NOTICE.txt (with props) geronimo/samples/branches/2.1/samples/bank/bank-client/ pom.xml (with props)
    geronimo/samples/branches/2.1/samples/bank/bank-client/src/
    geronimo/samples/branches/2.1/samples/bank/bank-client/src/main/
geronimo/samples/branches/2.1/samples/bank/bank-client/src/ main/java/ geronimo/samples/branches/2.1/samples/bank/bank-client/src/ main/java/BankClient.java (with props)
 Modified:
geronimo/samples/branches/2.1/samples/bank/bank-ejb/src/main/ java/org/apache/geronimo/samples/bank/ejb/BankManagerFacadeBean.java geronimo/samples/branches/2.1/samples/bank/bank-ejb/src/main/ java/org/apache/geronimo/samples/bank/ejb/BankManagerFacadeLocal.java
    geronimo/samples/branches/2.1/samples/bank/pom.xml

Added: geronimo/samples/branches/2.1/samples/bank/bank-client/ LICENSE.txt URL: http://svn.apache.org/viewvc/geronimo/samples/branches/2.1/ samples/bank/bank-client/LICENSE.txt?rev=646006&view=auto ===================================================================== ========= --- geronimo/samples/branches/2.1/samples/bank/bank-client/ LICENSE.txt (added) +++ geronimo/samples/branches/2.1/samples/bank/bank-client/ LICENSE.txt Tue Apr 8 10:17:58 2008
 @@ -0,0 +1,203 @@
 +
 +                                 Apache License
 +                           Version 2.0, January 2004
 +                        http://www.apache.org/licenses/
 +
 +   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
 +
 +   1. Definitions.
 +
+ "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document.
 +
+ "Licensor" shall mean the copyright owner or entity authorized by
 +      the copyright owner that is granting the License.
 +
+ "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity.
 +
 +      "You" (or "Your") shall mean an individual or Legal Entity
 +      exercising permissions granted by this License.
 +
+ "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation
 +      source, and configuration files.
 +
 +      "Object" form shall mean any form resulting from mechanical
 +      transformation or translation of a Source form, including but
 +      not limited to compiled object code, generated documentation,
 +      and conversions to other media types.
 +
+ "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a
 +      copyright notice that is included in or attached to the work
 +      (an example is provided in the Appendix below).
 +
+ "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of,
 +      the Work and Derivative Works thereof.
 +
 +      "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution."
 +
+ "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and
 +      subsequently incorporated within the Work.
 +
+ 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable
 +      copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
 +      Work and such Derivative Works in Source or Object form.
 +
+ 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable
 +      by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You
 +      institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct
 +      or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
 +      as of the date such litigation is filed.
 +
+ 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You
 +      meet the following conditions:
 +
 +      (a) You must give any other recipients of the Work or
 +          Derivative Works a copy of this License; and
 +
+ (b) You must cause any modified files to carry prominent notices
 +          stating that You changed the files; and
 +
+ (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and
 +          attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
 +          the Derivative Works; and
 +
 +      (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed
 +          as modifying the License.
 +
+ You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or
 +      for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
 +      the conditions stated in this License.
 +
+ 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of
 +      this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed
 +      with Licensor regarding such Contributions.
 +
+ 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file.
 +
 +   7. Disclaimer of Warranty. Unless required by applicable law or
 +      agreed to in writing, Licensor provides the Work (and each
 +      Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions
 +      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License.
 +
+ 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all
 +      other commercial damages or losses), even if such Contributor
 +      has been advised of the possibility of such damages.
 +
+ 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf
 +      of any other Contributor, and only if You agree to indemnify,
 +      defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
 +      of your accepting any such warranty or additional liability.
 +
 +   END OF TERMS AND CONDITIONS
 +
 +   APPENDIX: How to apply the Apache License to your work.
 +
+ To apply the Apache License to your work, attach the following
 +      boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate
 +      comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
 +      same "printed page" as the copyright notice for easier
 +      identification within third-party archives.
 +
 +   Copyright [yyyy] [name of copyright owner]
 +
 +   Licensed 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.
 +

Propchange: geronimo/samples/branches/2.1/samples/bank/bank- client/LICENSE.txt --------------------------------------------------------------------- ---------
    svn:eol-style = native

Propchange: geronimo/samples/branches/2.1/samples/bank/bank- client/LICENSE.txt --------------------------------------------------------------------- ---------
    svn:keywords = Date Revision

Propchange: geronimo/samples/branches/2.1/samples/bank/bank- client/LICENSE.txt --------------------------------------------------------------------- ---------
    svn:mime-type = text/plain

Added: geronimo/samples/branches/2.1/samples/bank/bank-client/ NOTICE.txt URL: http://svn.apache.org/viewvc/geronimo/samples/branches/2.1/ samples/bank/bank-client/NOTICE.txt?rev=646006&view=auto ===================================================================== ========= --- geronimo/samples/branches/2.1/samples/bank/bank-client/ NOTICE.txt (added) +++ geronimo/samples/branches/2.1/samples/bank/bank-client/ NOTICE.txt Tue Apr 8 10:17:58 2008
 @@ -0,0 +1,6 @@
 +Apache Geronimo
 +Copyright 2003-2007 The Apache Software Foundation
 +
 +This product includes software developed by
 +The Apache Software Foundation (http://www.apache.org/).
 +

Propchange: geronimo/samples/branches/2.1/samples/bank/bank- client/NOTICE.txt --------------------------------------------------------------------- ---------
    svn:eol-style = native

Propchange: geronimo/samples/branches/2.1/samples/bank/bank- client/NOTICE.txt --------------------------------------------------------------------- ---------
    svn:keywords = Date Revision

Propchange: geronimo/samples/branches/2.1/samples/bank/bank- client/NOTICE.txt --------------------------------------------------------------------- ---------
    svn:mime-type = text/plain

Added: geronimo/samples/branches/2.1/samples/bank/bank-client/ pom.xml URL: http://svn.apache.org/viewvc/geronimo/samples/branches/2.1/ samples/bank/bank-client/pom.xml?rev=646006&view=auto ===================================================================== ========= --- geronimo/samples/branches/2.1/samples/bank/bank-client/ pom.xml (added) +++ geronimo/samples/branches/2.1/samples/bank/bank-client/ pom.xml Tue Apr 8 10:17:58 2008
 @@ -0,0 +1,57 @@
 +<?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.
 +-->
 +
 +<!-- $Rev$ $Date$ -->
 +
+<project xmlns="http://maven.apache.org/POM/4.0.0"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http:// maven.apache.org/maven-v4_0_0.xsd">
 +
 +    <modelVersion>4.0.0</modelVersion>
 +
 +    <parent>
 +        <groupId>org.apache.geronimo.samples</groupId>
 +        <artifactId>bank</artifactId>
 +        <version>2.1-SNAPSHOT</version>
 +        <relativePath>../pom.xml</relativePath>
 +    </parent>
 +
 +    <artifactId>bank-client</artifactId>
 +    <name>Geronimo Samples :: bank :: CLIENT</name>
 +    <packaging>jar</packaging>
 +
 +    <description>Geronimo Samples. Client Module</description>
 +
 +    <dependencies>
 +        <dependency>
 +            <groupId>org.apache.openejb</groupId>
 +            <artifactId>openejb-client</artifactId>
 +            <version>3.0-SNAPSHOT</version>
 +            <type>jar</type>
 +        </dependency>
 +
 +        <dependency>
 +            <groupId>org.apache.geronimo.samples</groupId>
 +            <artifactId>bank-ejb</artifactId>
 +            <version>${version}</version>
 +            <type>jar</type>
 +        </dependency>
 +
 +    </dependencies>
 +
 +</project>

Propchange: geronimo/samples/branches/2.1/samples/bank/bank- client/pom.xml --------------------------------------------------------------------- ---------
    svn:eol-style = native

Propchange: geronimo/samples/branches/2.1/samples/bank/bank- client/pom.xml --------------------------------------------------------------------- ---------
    svn:keywords = Date Revision

Propchange: geronimo/samples/branches/2.1/samples/bank/bank- client/pom.xml --------------------------------------------------------------------- ---------
    svn:mime-type = text/xml

Added: geronimo/samples/branches/2.1/samples/bank/bank-client/src/ main/java/BankClient.java URL: http://svn.apache.org/viewvc/geronimo/samples/branches/2.1/ samples/bank/bank-client/src/main/java/BankClient.java? rev=646006&view=auto ===================================================================== ========= --- geronimo/samples/branches/2.1/samples/bank/bank-client/src/ main/java/BankClient.java (added) +++ geronimo/samples/branches/2.1/samples/bank/bank-client/src/ main/java/BankClient.java Tue Apr 8 10:17:58 2008
 @@ -0,0 +1,48 @@
 +/**
+ * 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.
 + */
 +
 +import java.util.List;
 +import java.util.Properties;
 +
 +import javax.naming.Context;
 +import javax.naming.InitialContext;
 +
+import org.apache.geronimo.samples.bank.ejb.BankManagerFacadeRemote;
 +import org.apache.geronimo.samples.bank.ejb.ExchangeRate;
 +
 +public class BankClient {
 +    public static void main(String[] args) {
 +
 +        Properties p = new Properties();
+ p.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.RemoteInitialContextFactory"); + p.setProperty(Context.PROVIDER_URL, "ejbd://localhost: 4201");
 +        try {
 +            Context ic = new InitialContext(p);
+ BankManagerFacadeRemote bmr = (BankManagerFacadeRemote)ic.lookup("BankManagerFacadeBeanRemote");
 +            List<ExchangeRate> rates = bmr.getExchangeRates();
 +            System.out.println("Exchange Rates");
 +            for(int i = 0 ; i < (int)rates.size(); i++) {
 +                ExchangeRate rate = rates.get(i);
+ System.out.println("Currency: " + rate.getCurrency());
 +                System.out.println("Rate: " + rate.getRate());
 +                System.out.println();
 +            }
 +        } catch(Exception e) {
 +            e.printStackTrace();
 +        }
 +    }
 +}

Propchange: geronimo/samples/branches/2.1/samples/bank/bank- client/src/main/java/BankClient.java --------------------------------------------------------------------- ---------
    svn:eol-style = native

Propchange: geronimo/samples/branches/2.1/samples/bank/bank- client/src/main/java/BankClient.java --------------------------------------------------------------------- ---------
    svn:keywords = Date Revision

Propchange: geronimo/samples/branches/2.1/samples/bank/bank- client/src/main/java/BankClient.java --------------------------------------------------------------------- ---------
    svn:mime-type = text/plain

Modified: geronimo/samples/branches/2.1/samples/bank/bank-ejb/src/ main/java/org/apache/geronimo/samples/bank/ejb/ BankManagerFacadeBean.java URL: http://svn.apache.org/viewvc/geronimo/samples/branches/2.1/ samples/bank/bank-ejb/src/main/java/org/apache/geronimo/samples/ bank/ejb/BankManagerFacadeBean.java? rev=646006&r1=646005&r2=646006&view=diff ===================================================================== ========= --- geronimo/samples/branches/2.1/samples/bank/bank-ejb/src/main/ java/org/apache/geronimo/samples/bank/ejb/ BankManagerFacadeBean.java (original) +++ geronimo/samples/branches/2.1/samples/bank/bank-ejb/src/main/ java/org/apache/geronimo/samples/bank/ejb/ BankManagerFacadeBean.java Tue Apr 8 10:17:58 2008
 @@ -25,6 +25,8 @@

  import javax.persistence.PersistenceUnit;
  import javax.ejb.EJBException;
 +import javax.ejb.Local;
 +import javax.ejb.Remote;
  import javax.ejb.Stateless;
  import javax.naming.Context;
  import javax.naming.InitialContext;
 @@ -33,7 +35,9 @@
  import javax.persistence.EntityManagerFactory;

  @Stateless
-public class BankManagerFacadeBean implements BankManagerFacadeLocal {
 [EMAIL PROTECTED](BankManagerFacadeLocal.class)
 [EMAIL PROTECTED](BankManagerFacadeRemote.class)
 +public class BankManagerFacadeBean {

        @PersistenceUnit(unitName="BankPU")
        protected EntityManagerFactory emf;

Modified: geronimo/samples/branches/2.1/samples/bank/bank-ejb/src/ main/java/org/apache/geronimo/samples/bank/ejb/ BankManagerFacadeLocal.java URL: http://svn.apache.org/viewvc/geronimo/samples/branches/2.1/ samples/bank/bank-ejb/src/main/java/org/apache/geronimo/samples/ bank/ejb/BankManagerFacadeLocal.java? rev=646006&r1=646005&r2=646006&view=diff ===================================================================== ========= --- geronimo/samples/branches/2.1/samples/bank/bank-ejb/src/main/ java/org/apache/geronimo/samples/bank/ejb/ BankManagerFacadeLocal.java (original) +++ geronimo/samples/branches/2.1/samples/bank/bank-ejb/src/main/ java/org/apache/geronimo/samples/bank/ejb/ BankManagerFacadeLocal.java Tue Apr 8 10:17:58 2008
 @@ -17,10 +17,13 @@

  package org.apache.geronimo.samples.bank.ejb;

 +import javax.ejb.Local;
 +
  import org.apache.geronimo.samples.bank.ejb.Account;
  import org.apache.geronimo.samples.bank.ejb.ExchangeRate;
  import org.apache.geronimo.samples.bank.ejb.Customer;

 [EMAIL PROTECTED]
  public interface BankManagerFacadeLocal {
public java.util.List<Account> getAccountInformation (String customerId);


 Modified: geronimo/samples/branches/2.1/samples/bank/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/samples/branches/2.1/ samples/bank/pom.xml?rev=646006&r1=646005&r2=646006&view=diff ===================================================================== =========
 --- geronimo/samples/branches/2.1/samples/bank/pom.xml (original)
+++ geronimo/samples/branches/2.1/samples/bank/pom.xml Tue Apr 8 10:17:58 2008
 @@ -43,25 +43,26 @@
         <module>bank-ejb</module>
         <module>bank-war</module>
         <module>bank-ear</module>
 +        <module>bank-client</module>
     </modules>

 -        <dependencies>
 -                <dependency>
- <groupId>org.apache.geronimo.specs</ groupId> - <artifactId>geronimo- annotation_1.0_spec</artifactId>
 -                        <version>1.1</version>
 -                        <type>jar</type>
 -                        <scope>provided</scope>
 -                </dependency>
 +    <dependencies>
 +        <dependency>
 +            <groupId>org.apache.geronimo.specs</groupId>
 +            <artifactId>geronimo-annotation_1.0_spec</artifactId>
 +            <version>1.1</version>
 +            <type>jar</type>
 +            <scope>provided</scope>
 +        </dependency>

 -                <dependency>
- <groupId>org.apache.geronimo.specs</ groupId> - <artifactId>geronimo-jpa_3.0_spec</ artifactId>
 -                        <version>1.1</version>
 -                        <type>jar</type>
 -                        <scope>provided</scope>
 -                </dependency>
 -        </dependencies>
 +        <dependency>
 +            <groupId>org.apache.geronimo.specs</groupId>
 +            <artifactId>geronimo-jpa_3.0_spec</artifactId>
 +            <version>1.1</version>
 +            <type>jar</type>
 +            <scope>provided</scope>
 +        </dependency>
 +    </dependencies>

    <build>
         <plugins>




Reply via email to