User: reverbel
  Date: 02/03/15 14:36:28

  Added:       src/main/org/jboss/test/bankiiop/ejb AccountBean.java
                        AccountBeanCMP.java BankBean.java CustomerBean.java
                        TellerBean.java
  Log:
  Initial version of the bank test for JBoss/IIOP.
  
  Revision  Changes    Path
  1.1                  jbosstest/src/main/org/jboss/test/bankiiop/ejb/AccountBean.java
  
  Index: AccountBean.java
  ===================================================================
  /*
   * Copyright 1999 by dreamBean Software,
   * All rights reserved.
   */
  package org.jboss.test.bankiiop.ejb;
  
  import java.rmi.RemoteException;
  import javax.ejb.CreateException;
  
  import org.jboss.test.util.ejb.EntitySupport;
  import org.jboss.test.bankiiop.interfaces.Customer;
  
  /**
   *      
   *   @see <related>
   *   @author $Author: reverbel $
   *   @version $Revision: 1.1 $
   */
  public abstract class AccountBean
     extends EntitySupport
  {
     // Constants -----------------------------------------------------
      
     // Attributes ----------------------------------------------------
     
     // Static --------------------------------------------------------
  
     // Constructors --------------------------------------------------
     
     // Public --------------------------------------------------------
     public void deposit(float amount)
     {
        setBalance(getBalance()+amount);
     }
     
     public void withdraw(float amount)
     {
        setBalance(getBalance()-amount);
     }
  
     public abstract float getBalance();
     public abstract void setBalance(float balance);
  }
  
  /*
   *   $Id: AccountBean.java,v 1.1 2002/03/15 22:36:28 reverbel Exp $
   *   Currently locked by:$Locker:  $
   *   Revision:
   *   $Log: AccountBean.java,v $
   *   Revision 1.1  2002/03/15 22:36:28  reverbel
   *   Initial version of the bank test for JBoss/IIOP.
   *
   *   Revision 1.2  2001/01/07 23:14:34  peter
   *   Trying to get JAAS to work within test suite.
   *
   *   Revision 1.1.1.1  2000/06/21 15:52:37  oberg
   *   Initial import of jBoss test. This module contains CTS tests, some simple 
examples, and small bean suites.
   *
   *
   *  
   */
  
  
  
  1.1                  
jbosstest/src/main/org/jboss/test/bankiiop/ejb/AccountBeanCMP.java
  
  Index: AccountBeanCMP.java
  ===================================================================
  /*
   * Copyright 1999 by dreamBean Software,
   * All rights reserved.
   */
  package org.jboss.test.bankiiop.ejb;
  
  import java.io.ObjectStreamException;
  import java.rmi.RemoteException;
  import javax.ejb.CreateException;
  
  import org.jboss.test.bankiiop.interfaces.AccountData;
  import org.jboss.test.bankiiop.interfaces.Customer;
  
  /**
   *      
   *   @see <related>
   *   @author $Author: reverbel $
   *   @version $Revision: 1.1 $
   */
  public class AccountBeanCMP
     extends AccountBean
  {
     // Constants -----------------------------------------------------
      
     // Attributes ----------------------------------------------------
     public String id;
     public float balance;
     public Customer owner;
     
     private boolean dirty;
     
     // Static --------------------------------------------------------
  
     // Constructors --------------------------------------------------
     
     // Public --------------------------------------------------------
     public String getId()
     {
        return id;
     }
     
     public void setId(String id)
     {
        this.id = id;
        dirty = true;
     }
     
     public float getBalance()
     {
        return balance;
     }
     
     public void setBalance(float balance)
     {
        this.balance = balance;
        dirty = true;
     }
     
     public Customer getOwner()
     {
        return owner;
     }
     
     public void setOwner(Customer owner)
     {
        this.owner = owner;
        dirty = true;
     }
     
     public void setData(AccountData data)
     {
        setBalance(data.getBalance());
        setOwner(data.getOwner());
     }
     
     public AccountData getData()
     {
        AccountData data = new AccountData();
        data.setId(id);
        data.setBalance(balance);
        data.setOwner(owner);
        return data;
     }
     
     public boolean isModified()
     {
        return dirty;
     }
     
     // EntityBean implementation -------------------------------------
     public String ejbCreate(AccountData data) 
        throws RemoteException, CreateException
     { 
        setId(data.id);
        setData(data);
        dirty = false;
        return null;
     }
     
     public void ejbPostCreate(AccountData data) 
        throws RemoteException, CreateException
     { 
     }
     
     public void ejbLoad()
        throws RemoteException
     {
        super.ejbLoad();
        dirty = false;
     }
  }
  
  /*
   *   $Id: AccountBeanCMP.java,v 1.1 2002/03/15 22:36:28 reverbel Exp $
   *   Currently locked by:$Locker:  $
   *   Revision:
   *   $Log: AccountBeanCMP.java,v $
   *   Revision 1.1  2002/03/15 22:36:28  reverbel
   *   Initial version of the bank test for JBoss/IIOP.
   *
   *   Revision 1.2  2001/01/07 23:14:34  peter
   *   Trying to get JAAS to work within test suite.
   *
   *   Revision 1.1.1.1  2000/06/21 15:52:37  oberg
   *   Initial import of jBoss test. This module contains CTS tests, some simple 
examples, and small bean suites.
   *
   *
   *  
   */
  
  
  
  1.1                  jbosstest/src/main/org/jboss/test/bankiiop/ejb/BankBean.java
  
  Index: BankBean.java
  ===================================================================
  /*
   * Copyright 1999 by dreamBean Software,
   * All rights reserved.
   */
  package org.jboss.test.bankiiop.ejb;
  
  import java.rmi.*;
  import javax.naming.*;
  import javax.ejb.*;
  
  import org.jboss.test.util.ejb.SessionSupport;
  import org.jboss.test.bankiiop.interfaces.*;
  
  /**
   *      
   *   @see <related>
   *   @author $Author: reverbel $
   *   @version $Revision: 1.1 $
   */
  public class BankBean
     extends SessionSupport
  {
     // Constants -----------------------------------------------------
      
     // Attributes ----------------------------------------------------
     static final String ID = "java:comp/env/id";
     String id;
     
     // Static --------------------------------------------------------
     static long nextAccountId = System.currentTimeMillis();
     static long nextCustomerId = System.currentTimeMillis();
  
     // Constructors --------------------------------------------------
     
     // Public --------------------------------------------------------
     public String getId()
     {
        return id;
     }
     
     public String createAccountId(Customer customer)
        throws RemoteException
     {
        return getId()+"."+customer.getName()+"."+(nextAccountId++);
     }
     
     public String createCustomerId()
     {
        return getId()+"."+(nextCustomerId++);
     }
     
     // SessionBean implementation ------------------------------------
     public void setSessionContext(SessionContext context) 
     {
        super.setSessionContext(context);
        
        try
        {
           id = (String)new InitialContext().lookup(ID);
        } catch (Exception e)
        {
           log.debug(e);
           throw new EJBException(e);
        }
     }
  }
  
  /*
   *   $Id: BankBean.java,v 1.1 2002/03/15 22:36:28 reverbel Exp $
   *   Currently locked by:$Locker:  $
   *   Revision:
   *   $Log: BankBean.java,v $
   *   Revision 1.1  2002/03/15 22:36:28  reverbel
   *   Initial version of the bank test for JBoss/IIOP.
   *
   *   Revision 1.3  2002/02/15 06:15:50  user57
   *    o replaced most System.out usage with Log4j.  should really introduce
   *      some base classes to make this mess more maintainable...
   *
   *   Revision 1.2  2001/01/07 23:14:34  peter
   *   Trying to get JAAS to work within test suite.
   *
   *   Revision 1.1.1.1  2000/06/21 15:52:37  oberg
   *   Initial import of jBoss test. This module contains CTS tests, some simple 
examples, and small bean suites.
   *
   *
   *  
   */
  
  
  
  1.1                  jbosstest/src/main/org/jboss/test/bankiiop/ejb/CustomerBean.java
  
  Index: CustomerBean.java
  ===================================================================
  /*
   * Copyright 1999 by dreamBean Software,
   * All rights reserved.
   */
  package org.jboss.test.bankiiop.ejb;
  
  import java.util.*;
  
  import javax.naming.InitialContext;
  
  import org.jboss.test.util.ejb.EntitySupport;
  import org.jboss.test.bankiiop.interfaces.*;
  
  /**
   *      
   *   @see <related>
   *   @author $Author: reverbel $
   *   @version $Revision: 1.1 $
   */
  public class CustomerBean
     extends EntitySupport
  {
     // Constants -----------------------------------------------------
      
     // Attributes ----------------------------------------------------
     public String id;
     public String name;
     public Collection accounts;
     
     // Static --------------------------------------------------------
  
     // Constructors --------------------------------------------------
     
     // Public --------------------------------------------------------
     public String getId()
     {
        return id;
     }
     
     public void setId(String id)
     {
        this.id = id;
     }
     
     public String getName()
     {
        return name;
     }
     
     public void setName(String name)
     {
        this.name = name;
     }
     
     public Collection getAccounts()
     {
                return accounts;
     }
     
     public void addAccount(Account acct)
     {
                accounts.add(acct);
     }
     
     public void removeAccount(Account acct)
     {
                accounts.remove(acct);
     }
     
     // EntityHome implementation -------------------------------------
     public CustomerPK ejbCreate(String id, String name) 
     { 
        setId(id);
        setName(name);
        accounts = new ArrayList();
        
        CustomerPK pk = new CustomerPK();
        pk.id = id;
        pk.name = name;
  
        return pk;
     }
     
     public void ejbPostCreate(String id, String name) 
     { 
     }
  }
  
  /*
   *   $Id: CustomerBean.java,v 1.1 2002/03/15 22:36:28 reverbel Exp $
   *   Currently locked by:$Locker:  $
   *   Revision:
   *   $Log: CustomerBean.java,v $
   *   Revision 1.1  2002/03/15 22:36:28  reverbel
   *   Initial version of the bank test for JBoss/IIOP.
   *
   *   Revision 1.4  2001/01/20 16:32:51  osh
   *   More cleanup to avoid verifier warnings.
   *
   *   Revision 1.3  2001/01/07 23:14:34  peter
   *   Trying to get JAAS to work within test suite.
   *
   *   Revision 1.2  2000/09/30 01:00:54  fleury
   *   Updated bank tests to work with new jBoss version
   *
   *   Revision 1.1.1.1  2000/06/21 15:52:37  oberg
   *   Initial import of jBoss test. This module contains CTS tests, some simple 
examples, and small bean suites.
   *
   *
   *  
   */
  
  
  
  1.1                  jbosstest/src/main/org/jboss/test/bankiiop/ejb/TellerBean.java
  
  Index: TellerBean.java
  ===================================================================
  /*
   * Copyright 1999 by dreamBean Software,
   * All rights reserved.
   */
  package org.jboss.test.bankiiop.ejb;
  
  import java.util.*;
  
  import javax.rmi.PortableRemoteObject;
  import javax.naming.InitialContext;
  
  import org.jboss.test.util.ejb.SessionSupport;
  import org.jboss.test.bankiiop.interfaces.*;
  
  import org.apache.log4j.Category;
  
  
  /**
   *      
   *   @see <related>
   *   @author $Author: reverbel $
   *   @version $Revision: 1.1 $
   */
  public class TellerBean
     extends SessionSupport
  {
     // Constants -----------------------------------------------------
      
     // Attributes ----------------------------------------------------
     static int invocations;
     // Static --------------------------------------------------------
  
     // Constructors --------------------------------------------------
     
     // Public --------------------------------------------------------
     public void transfer(Account from, Account to, float amount)
        throws BankException
     {
        try
        {
           Category.getInstance(TellerBean.class.getName()).info("Invocation 
#"+invocations++);
           from.withdraw(amount);
           to.deposit(amount);
        } catch (Exception e)
        {
           throw new BankException("Could not transfer "+amount+" from "+from+" to 
"+to, e);
        }
     }
     
     public Account createAccount(Customer customer, float balance)
        throws BankException
     {
        try
        {
           BankHome bankHome = (BankHome)PortableRemoteObject.narrow(
                                 new InitialContext().lookup(BankHome.JNDI_NAME),
                                 BankHome.class);
           Bank bank = bankHome.create();
           
           AccountHome home = (AccountHome)PortableRemoteObject.narrow(
                              new InitialContext().lookup(AccountHome.JNDI_NAME),
                              AccountHome.class);
           AccountData data = new AccountData();
           data.setId(bank.createAccountId(customer));
           data.setBalance(balance);
           data.setOwner(customer);
           Account acct = home.create(data);
                 customer.addAccount(acct);
           
           return acct;
        } catch (Exception e)
        {
           log.debug("failed", e);
           throw new BankException("Could not create account", e);
        }
     }
     
     public Account getAccount(Customer customer, float balance)
        throws BankException
     {
        try
        {
           // Check for existing account
           Collection accounts = customer.getAccounts();
           if (accounts.size() > 0)
           {
              Iterator enum = accounts.iterator();
              Account acct = (Account)PortableRemoteObject.narrow(enum.next(),
                                                                Account.class);
  
              // Set balance
              acct.withdraw(acct.getBalance()-balance);
              
              return acct;
           } else
           {
              // Create account
              return createAccount(customer, balance);
           }
        } catch (Exception e)
        {
           log.debug("failed", e);
           throw new BankException("Could not get account for "+customer, e);
        }
     }
     
     public Customer getCustomer(String name)
        throws BankException
     {
        try
        {
           // Check for existing customer
           CustomerHome home = (CustomerHome)PortableRemoteObject.narrow(
                             new InitialContext().lookup(CustomerHome.JNDI_NAME),
                             CustomerHome.class);
           Collection customers = home.findAll();
           
           Iterator enum = customers.iterator();
           while(enum.hasNext())
           {
              Customer cust = 
               (Customer)PortableRemoteObject.narrow(enum.next(),
                                                     Customer.class);
              if (cust.getName().equals(name))
                 return cust;
              
           }
           
           // Create customer
           BankHome bankHome = (BankHome)PortableRemoteObject.narrow(
                                 new InitialContext().lookup(BankHome.JNDI_NAME),
                                 BankHome.class);
           Bank bank = bankHome.create();
           
           Customer cust = home.create(bank.createCustomerId(), name);
           log.debug("Customer created");
           return cust;
        } catch (Exception e)
        {
           log.debug("failed", e);
           throw new BankException("Could not get customer for "+name, e);
        }
     }
     
     public void transferTest(Account from, Account to, float amount, int iter)
        throws java.rmi.RemoteException, BankException
     {
        for (int i = 0; i < iter; i++)
        {
           from.withdraw(amount);
           to.deposit(amount);
        }
     }
  }
  /*
   *   $Id: TellerBean.java,v 1.1 2002/03/15 22:36:28 reverbel Exp $
   *   Currently locked by:$Locker:  $
   *   Revision:
   *   $Log: TellerBean.java,v $
   *   Revision 1.1  2002/03/15 22:36:28  reverbel
   *   Initial version of the bank test for JBoss/IIOP.
   *
   *   Revision 1.7  2002/02/16 11:26:57  user57
   *    o System.err, System.out & printStackTrace() 99.9% gone.
   *
   *   Revision 1.6  2002/02/15 06:15:50  user57
   *    o replaced most System.out usage with Log4j.  should really introduce
   *      some base classes to make this mess more maintainable...
   *
   *   Revision 1.5  2001/08/19 14:45:20  d_jencks
   *   Modified TellerBean to use log4j logging
   *
   *   Revision 1.4  2001/08/02 15:54:17  mnf999
   *   TestBankTest update with number of threads and the output for visual feedback 
on console
   *
   *
   *   Revision 1.3  2001/01/07 23:14:34  peter
   *   Trying to get JAAS to work within test suite.
   *
   *   Revision 1.2  2000/09/30 01:00:55  fleury
   *   Updated bank tests to work with new jBoss version
   *
   *   Revision 1.1.1.1  2000/06/21 15:52:37  oberg
   *   Initial import of jBoss test. This module contains CTS tests, some simple 
examples, and small bean suites.
   *
   *
   *  
   */
  
  
  

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to