You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dw...@apache.org on 2010/01/21 23:29:06 UTC

svn commit: r901896 - in /geronimo/daytrader/trunk/modules: core/src/main/java/org/apache/geronimo/samples/daytrader/core/direct/ entities/src/main/resources/META-INF/

Author: dwoods
Date: Thu Jan 21 22:29:06 2010
New Revision: 901896

URL: http://svn.apache.org/viewvc?rev=901896&view=rev
Log:
merged in a few updates from Joe's sandbox and a few em.close() updates of my own.  Still not working on Tomcat 6.0.20.

Modified:
    geronimo/daytrader/trunk/modules/core/src/main/java/org/apache/geronimo/samples/daytrader/core/direct/TradeJDBCDirect.java
    geronimo/daytrader/trunk/modules/core/src/main/java/org/apache/geronimo/samples/daytrader/core/direct/TradeJPADirect.java
    geronimo/daytrader/trunk/modules/entities/src/main/resources/META-INF/persistence.xml

Modified: geronimo/daytrader/trunk/modules/core/src/main/java/org/apache/geronimo/samples/daytrader/core/direct/TradeJDBCDirect.java
URL: http://svn.apache.org/viewvc/geronimo/daytrader/trunk/modules/core/src/main/java/org/apache/geronimo/samples/daytrader/core/direct/TradeJDBCDirect.java?rev=901896&r1=901895&r2=901896&view=diff
==============================================================================
--- geronimo/daytrader/trunk/modules/core/src/main/java/org/apache/geronimo/samples/daytrader/core/direct/TradeJDBCDirect.java (original)
+++ geronimo/daytrader/trunk/modules/core/src/main/java/org/apache/geronimo/samples/daytrader/core/direct/TradeJDBCDirect.java Thu Jan 21 22:29:06 2010
@@ -66,6 +66,8 @@
 
     private boolean inSession = false;
 
+    private static InitialContext context;
+
     /**
      * Zero arg constructor for TradeJDBCDirect
      */
@@ -162,7 +164,7 @@
         }
 
         catch (Exception e) {
-            Log.error("TradeJDBCDirect:login -- error logging in user", e);
+            Log.error("TradeJDBCDirect:getMarketSummary -- error getting summary", e);
             rollBack(conn, e);
         } finally {
             releaseConn(conn);
@@ -1253,9 +1255,14 @@
      * @see TradeServices#logout(String)
      */
     public void logout(String userID) throws Exception {
+
+        Connection conn = null;
+
+        if (Log.doActionTrace())
+            Log.trace("TradeAction:logout", userID);
+
         if (Log.doTrace())
             Log.trace("TradeJDBCDirect:logout - inSession(" + this.inSession + ")", userID);
-        Connection conn = null;
         try {
             conn = getConn();
             PreparedStatement stmt = getStatement(conn, logoutSQL);
@@ -1277,7 +1284,7 @@
      */
 
     public AccountDataBean register(String userID, String password, String fullname, String address, String email,
-        String creditcard, BigDecimal openBalance) throws Exception {
+        String creditCard, BigDecimal openBalance) throws Exception {
 
         AccountDataBean accountData = null;
         Connection conn = null;
@@ -1312,7 +1319,7 @@
             stmt.setString(3, fullname);
             stmt.setString(4, address);
             stmt.setString(5, email);
-            stmt.setString(6, creditcard);
+            stmt.setString(6, creditCard);
             stmt.executeUpdate();
             stmt.close();
 
@@ -1890,8 +1897,6 @@
         }
     }
 
-    private static InitialContext context;
-
     /**
      * Gets the inGlobalTxn
      * 
@@ -1911,4 +1916,13 @@
         this.inGlobalTxn = inGlobalTxn;
     }
 
+    /**
+     * Get mode - returns the persistence mode (TradeConfig.JDBC)
+     * 
+     * @return int mode
+     */
+    public int getMode() {
+        return TradeConfig.JDBC;
+    }
+
 }

Modified: geronimo/daytrader/trunk/modules/core/src/main/java/org/apache/geronimo/samples/daytrader/core/direct/TradeJPADirect.java
URL: http://svn.apache.org/viewvc/geronimo/daytrader/trunk/modules/core/src/main/java/org/apache/geronimo/samples/daytrader/core/direct/TradeJPADirect.java?rev=901896&r1=901895&r2=901896&view=diff
==============================================================================
--- geronimo/daytrader/trunk/modules/core/src/main/java/org/apache/geronimo/samples/daytrader/core/direct/TradeJPADirect.java (original)
+++ geronimo/daytrader/trunk/modules/core/src/main/java/org/apache/geronimo/samples/daytrader/core/direct/TradeJPADirect.java Thu Jan 21 22:29:06 2010
@@ -25,7 +25,6 @@
 import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.Persistence;
-import javax.persistence.PersistenceContext;
 import javax.persistence.PersistenceUnit;
 import javax.persistence.Query;
 
@@ -56,9 +55,10 @@
  * @see org.apache.geronimo.samples.daytrader.TradeServices
  * 
  */
+
 public class TradeJPADirect implements TradeServices, TradeDBServices {
 
-    @PersistenceUnit(name="daytrader")
+    @PersistenceUnit(unitName="daytrader")
     private static EntityManagerFactory emf;
 
     private static BigDecimal ZERO = new BigDecimal(0.0);
@@ -71,9 +71,10 @@
     public TradeJPADirect() {
 
 
-        // TO-DO why
+        // FIXME - Why is this here???
         TradeConfig.setPublishQuotePriceChange(false);
         if (emf == null) {
+            Log.error("TradeJPADirect.ctor:  Calling createEntityManagerFactory()");
             // creating entity manager factory. the persistence xml must be
             // place under src/META-INF/
             emf = Persistence.createEntityManagerFactory("daytrader");
@@ -83,14 +84,16 @@
             init();
     }
 
+    public void setEmf (EntityManagerFactory em) { 
+        emf = em;
+    }
+
     public static synchronized void init() {
         if (initialized)
             return;
         if (Log.doTrace())
             Log.trace("TradeJPADirect:init -- *** initializing");
 
-        // TO-DO-for some reason this is not setting it to false- added
-        // to the construct.
         TradeConfig.setPublishQuotePriceChange(false);
 
         if (Log.doTrace())
@@ -165,17 +168,14 @@
         catch (Exception e) {
             Log.error("TradeJPADirect:getMarketSummary", e);
             throw new RuntimeException("TradeJPADirect:getMarketSummary -- error ", e);
+        } finally {
+            entityManager.close();
         }
-        /*
-         * closing entitymanager
-         */
-        entityManager.close();
 
         return marketSummaryData;
     }
 
-    public OrderDataBean buy(String userID, String symbol, double quantity,
-                             int orderProcessingMode) {
+    public OrderDataBean buy(String userID, String symbol, double quantity, int orderProcessingMode) {
         OrderDataBean order = null;
         BigDecimal total;
         /*
@@ -198,8 +198,7 @@
 
             HoldingDataBean holding = null; // The holding will be created by this buy order
 
-            order = createOrder(account, quote, holding, "buy", quantity,
-                                entityManager);
+            order = createOrder(account, quote, holding, "buy", quantity, entityManager);
 
             // order = createOrder(account, quote, holding, "buy", quantity);
             // UPDATE - account should be credited during completeOrder
@@ -229,10 +228,12 @@
 
             // throw new EJBException(e);
             throw new RuntimeException(e);
-        }
-        if (entityManager != null) {
-            entityManager.close();
-            entityManager = null;
+        } finally {
+            if (entityManager != null) {
+                entityManager.close();
+                entityManager = null;
+            }
+
         }
 
         // after the purchase or sell of a stock, update the stocks volume and
@@ -269,12 +270,6 @@
                 orderData.setOrderStatus("cancelled");
 
                 entityManager.persist(orderData);
-
-                if (entityManager != null) {
-                    entityManager.close();
-                    entityManager = null;
-
-                }
                 entityManager.getTransaction().commit();
                 return orderData;
             }
@@ -315,11 +310,11 @@
             entityManager.getTransaction().rollback();
 
             throw new RuntimeException("TradeJPADirect:sell(" + userID + "," + holdingID + ")", e);
-        }
-
-        if (entityManager != null) {
-            entityManager.close();
-            entityManager = null;
+        } finally {
+            if (entityManager != null) {
+                entityManager.close();
+                entityManager = null;
+            }
         }
 
         if (!(order.getOrderStatus().equalsIgnoreCase("cancelled")))
@@ -419,11 +414,11 @@
         catch (Exception e) {
             e.printStackTrace();
             entityManager.getTransaction().rollback();
-        }
-
-        if (entityManager != null) {
-            entityManager.close();
-            entityManager = null;
+        } finally {
+            if (entityManager != null) {
+                entityManager.close();
+                entityManager = null;
+            }
         }
 
         return order;
@@ -446,10 +441,9 @@
         }
         catch (Exception e) {
             entityManager.getTransaction().rollback();
+        } finally {
             entityManager.close();
-            entityManager = null;
         }
-        entityManager.close();
     }
 
     public void orderCompleted(String userID, Integer orderID) {
@@ -558,6 +552,11 @@
             throw new RuntimeException(
                                       "TradeJPADirect.getClosedOrders - error", e);
 
+        } finally {
+            if (entityManager != null) {
+                entityManager.close();
+                entityManager = null;
+            }
         }
 
     }
@@ -590,12 +589,16 @@
         }
         catch (Exception e) {
             Log.error("TradeJPADirect:createQuote -- exception creating Quote", e);
-            System.out
-            .println("TradeJPADirect:createQuote -- exception creating Quote");
             entityManager.close();
             entityManager = null;
             throw new RuntimeException(e);
+        } finally {
+            if (entityManager != null) {
+                entityManager.close();
+                entityManager = null;
+            }
         }
+
     }
 
     public QuoteDataBean getQuote(String symbol) {
@@ -641,18 +644,15 @@
          * "quoteejb.quoteForUpdate" defined in QuoteDatabean
          */
         EntityManager entityManager = emf.createEntityManager();
-        QuoteDataBean quote = new QuoteDataBean();
+        QuoteDataBean quote = null;
         if (TradeConfig.jpaLayer == TradeConfig.HIBERNATE) {
             quote = entityManager.find(QuoteDataBean.class, symbol);
-        }
-
-        if (TradeConfig.jpaLayer == TradeConfig.OPENJPA) {
+        } else if (TradeConfig.jpaLayer == TradeConfig.OPENJPA) {
   
             Query q = entityManager.createNamedQuery("quoteejb.quoteForUpdate");
             q.setParameter(1, symbol);
   
             quote = (QuoteDataBean) q.getSingleResult();
-
         }
 
         BigDecimal oldPrice = quote.getPrice();
@@ -679,11 +679,11 @@
         }
         catch (Exception e) {
             entityManager.getTransaction().rollback();
-        }
-
-        if (entityManager != null) {
-            entityManager.close();
-            entityManager = null;
+        } finally {
+            if (entityManager != null) {
+                entityManager.close();
+                entityManager = null;
+            }
         }
 
         this.publishQuotePriceChange(quote, oldPrice, changeFactor, sharesTraded);
@@ -721,8 +721,11 @@
     public HoldingDataBean getHolding(Integer holdingID) {
         if (Log.doTrace())
             Log.trace("TradeJPADirect:getHolding", holdingID);
+        HoldingDataBean holding;
         EntityManager entityManager = emf.createEntityManager();
-        return entityManager.find(HoldingDataBean.class, holdingID);
+        holding = entityManager.find(HoldingDataBean.class, holdingID);
+        entityManager.close();
+        return holding;
     }
 
     public AccountDataBean getAccountData(String userID) {
@@ -791,12 +794,11 @@
             entityManager.getTransaction().begin();
             entityManager.merge(temp);
             entityManager.getTransaction().commit();
-            entityManager.close();
         }
         catch (Exception e) {
             entityManager.getTransaction().rollback();
+        } finally {
             entityManager.close();
-            entityManager = null;
         }
 
         return temp;
@@ -846,12 +848,11 @@
             entityManager.getTransaction().begin();
             account.logout();
             entityManager.getTransaction().commit();
-            entityManager.close();
         }
         catch (Exception e) {
             entityManager.getTransaction().rollback();
+        } finally {
             entityManager.close();
-            entityManager = null;
         }
 
         if (Log.doTrace())
@@ -877,8 +878,6 @@
             return null;
         }
         else {
-        	try {
-        		entityManager.getTransaction().begin();
         	profile = new AccountProfileDataBean(userID, password, fullname,
                                                  address, email, creditcard);
             account = new AccountDataBean(0, 0, null, new Timestamp(System.currentTimeMillis()), openBalance, openBalance, userID);
@@ -887,16 +886,16 @@
             /*
              * managed Transaction
              */
-            
-                
+            try {
+                entityManager.getTransaction().begin();
                 entityManager.persist(profile);
                 entityManager.persist(account);
                 entityManager.getTransaction().commit();
             }
             catch (Exception e) {
                 entityManager.getTransaction().rollback();
+            } finally {
                 entityManager.close();
-                entityManager = null;
             }
 
         }
@@ -972,9 +971,10 @@
         }
         catch (Exception e) {
             entityManager.getTransaction().rollback();
+        } finally {
             entityManager.close();
-            entityManager = null;
         }
+
         return newHolding;
     }
 

Modified: geronimo/daytrader/trunk/modules/entities/src/main/resources/META-INF/persistence.xml
URL: http://svn.apache.org/viewvc/geronimo/daytrader/trunk/modules/entities/src/main/resources/META-INF/persistence.xml?rev=901896&r1=901895&r2=901896&view=diff
==============================================================================
--- geronimo/daytrader/trunk/modules/entities/src/main/resources/META-INF/persistence.xml (original)
+++ geronimo/daytrader/trunk/modules/entities/src/main/resources/META-INF/persistence.xml Thu Jan 21 22:29:06 2010
@@ -17,7 +17,7 @@
 -->
 <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
 
-    <persistence-unit transaction-type="JTA" name="daytrader">
+    <persistence-unit transaction-type="RESOURCE_LOCAL" name="daytrader">
         <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
         <jta-data-source>jdbc/TradeDataSource</jta-data-source>  
         <non-jta-data-source>jdbc/NoTxTradeDataSource</non-jta-data-source>