geronimo-scm mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From viol...@apache.org
Subject svn commit: r1071543 [14/15] - in /geronimo/daytrader/trunk: ./ assemblies/javaee/ javaee6/ javaee6/assemblies/ javaee6/assemblies/daytrader-ear/ javaee6/assemblies/daytrader-ear/src/ javaee6/assemblies/daytrader-ear/src/main/ javaee6/assemblies/daytra...
Date Thu, 17 Feb 2011 08:24:04 GMT
Added: geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/orderImg.jsp
URL: http://svn.apache.org/viewvc/geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/orderImg.jsp?rev=1071543&view=auto
==============================================================================
--- geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/orderImg.jsp (added)
+++ geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/orderImg.jsp Thu Feb 17 08:23:57 2011
@@ -0,0 +1,187 @@
+<!--
+ 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.
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+<META http-equiv="Content-Style-Type" content="text/css">
+<TITLE>Trade Order information</TITLE>
+
+</HEAD>
+<BODY bgcolor="#ffffff" link="#000099" vlink="#000099">
+<%@ page import="java.util.Collection, java.util.Iterator, org.apache.geronimo.daytrader.javaee6.core.*, org.apache.geronimo.daytrader.javaee6.entities.*, org.apache.geronimo.daytrader.javaee6.utils.*" session="true" isThreadSafe="true" isErrorPage="false"%>
+<jsp:useBean id="results" scope="request" type="java.lang.String" />
+
+<TABLE height="54">
+  <TBODY>
+    <TR>
+                <TD bgcolor="#c93333" align="left" width="640" height="10" colspan=5><B><FONT
+                color="#ffffff">DayTrader New Orders</FONT></B></TD>
+            <TD align="center" bgcolor="#ffffff" width="100" height="10">
+                <IMG src="images/spacer.gif" width="45" height="19" border="0"></TD>
+        </TR>
+        <TR align="left">
+            <TD><A href="app?action=home"><IMG src="images/home.gif" width="80" height="20" border="0"></A></TD>
+            <TD><A href="app?action=account"><IMG src="images/account.gif" width="80" height="20" border="0"></A></TD>
+            <TD><B><A href="app?action=portfolio"><IMG src="images/portfolio.gif" width="80" height="20" border="0"></A> </B></TD>
+            <TD><A href="app?action=quotes&symbols=s:0,s:1,s:2,s:3,s:4"><IMG src="images/quotes.gif" width="80" height="20" border="0"></A></TD>
+            <TD><A href="app?action=logout"><IMG src="images/logout.gif" width="80" height="20" border="0"></A></TD>
+            <TD><IMG src="images/graph.gif" width="32" height="32" border="0"></TD>
+        </TR>
+        <TR>
+            <TD align="left" colspan="6"><IMG src="images/line.gif" width="600" height="6" border="0"><FONT color="#ff0000" size="-2"><BR>
+            <%= new java.util.Date() %></FONT></TD>
+        </TR>
+<%
+Collection closedOrders = (Collection)request.getAttribute("closedOrders");
+if ( (closedOrders != null) && (closedOrders.size()>0) )
+{
+%>         
+        <TR>
+            <TD colspan="6" bgcolor="#ff0000"><BLINK><B><FONT color="#ffffff">Alert: The following Order(s) have completed.</FONT></B></BLINK></TD>
+        </TR>
+        <TR align="center">
+            <TD colspan="6">
+            <TABLE border="1" style="font-size: smaller">
+                            <TBODY>
+<%
+    Iterator it = closedOrders.iterator();
+    while (it.hasNext() )
+    {
+        OrderDataBean closedOrderData = (OrderDataBean)it.next();
+%>                            
+                                <TR align="center">
+                                    <TD><A href="docs/glossary.html">order ID</A></TD>
+                                    <TD><A href="docs/glossary.html">order status</A></TD>
+                                    <TD><A href="docs/glossary.html">creation date</A></TD>
+                                    <TD><A href="docs/glossary.html">completion date</A></TD>
+                                    <TD><A href="docs/glossary.html">txn fee</A></TD>
+                                    <TD><A href="docs/glossary.html">type</A></TD>
+                                    <TD><A href="docs/glossary.html">symbol</A></TD>
+                                    <TD><A href="docs/glossary.html">quantity</A></TD>
+                                </TR>
+                                <TR align="center">
+                        <TD><%= closedOrderData.getOrderID()%></TD>
+                        <TD><%= closedOrderData.getOrderStatus()%></TD>
+                                    <TD><%= closedOrderData.getOpenDate()%></TD>
+                                    <TD><%= closedOrderData.getCompletionDate()%></TD>
+                                    <TD><%= closedOrderData.getOrderFee()%></TD>
+                                    <TD><%= closedOrderData.getOrderType()%></TD>
+                                    <TD><%= FinancialUtils.printQuoteLink(closedOrderData.getSymbol()) %></TD>
+                                    <TD><%= closedOrderData.getQuantity()%></TD>
+                                </TR>
+        <%
+    }
+%>
+                                
+                            </TBODY>
+                        </TABLE>
+            </TD>
+        </TR>
+        <%
+}
+%>
+    </TBODY>
+</TABLE>
+<TABLE width="650">
+    <TBODY>
+        <TR>
+            <TD>
+            <TABLE width="100%">
+                <TBODY>
+                    <TR>
+                        <TD></TD>
+                    </TR>
+                    <% 
+ OrderDataBean orderData = (OrderDataBean)request.getAttribute("orderData");
+ if ( orderData != null )
+ {
+                    %>
+                    <TR>
+                        <TD align="left" bgcolor="#cccccc"><B>New Order</B></TD>
+                    </TR>
+                    <TR>
+                        <TD align="left"><FONT color="#cc0000"><B><BR>
+                        Order <%=orderData.getOrderID()%></B> to <B><%=orderData.getOrderType()%> <%=orderData.getQuantity()%></B> shares of <B><%=orderData.getSymbol()%></B> has been submitted for processing. </FONT><BR>
+                        <BR>
+                        <FONT color="#000000">Order <FONT color="#000000"><B><%=orderData.getOrderID()%></B></FONT> details:</FONT></TD>
+                    </TR>
+                    <TR>
+                        <TD align="center">
+                        <TABLE border="1" style="font-size: smaller">
+                            <TBODY>
+                                <TR align="center">
+                                    <TD><A href="docs/glossary.html">order ID</A></TD>
+                                    <TD><A href="docs/glossary.html">order status</A></TD>
+                                    <TD><A href="docs/glossary.html">creation date</A></TD>
+                                    <TD><A href="docs/glossary.html">completion date</A></TD>
+                                    <TD><A href="docs/glossary.html">txn fee</A></TD>
+                                    <TD><A href="docs/glossary.html">type</A></TD>
+                                    <TD><A href="docs/glossary.html">symbol</A></TD>
+                                    <TD><A href="docs/glossary.html">quantity</A></TD>
+                                </TR>
+                                <TR align="center" bgcolor="#fafcb6">
+                                    <TD><%= orderData.getOrderID()%></TD>
+                                    <TD><%= orderData.getOrderStatus()%></TD>
+                                    <TD><%= orderData.getOpenDate()%></TD>
+                                    <TD><%= orderData.getCompletionDate()%></TD>
+                                    <TD><%= orderData.getOrderFee()%></TD>
+                                    <TD><%= orderData.getOrderType()%></TD>
+                                    <TD><%= FinancialUtils.printQuoteLink(orderData.getSymbol()) %></TD>
+                                    <TD><%= orderData.getQuantity()%></TD>
+                                </TR>
+                            </TBODY>
+                        </TABLE>
+                        </TD>
+                    </TR>
+<% 
+ }
+ %>
+                </TBODY>
+            </TABLE>
+            </TD>
+        </TR>
+    </TBODY>
+</TABLE>
+<TABLE height="54" style="font-size: smaller">
+  <TBODY>
+        <TR>
+            <TD colspan="2">
+            <HR>
+            </TD>
+        </TR>
+        <TR>
+            <TD colspan="2">
+            <TABLE width="100%" style="font-size: smaller">
+                <TBODY>
+                    <TR>
+                        <TD>Note: Click any <A href="docs/glossary.html">symbol</A> for a quote or to trade.</TD>
+                        <TD align="right"><FORM><INPUT type="submit" name="action" value="quotes"> <INPUT size="20" type="text" name="symbols" value="s:0, s:1, s:2, s:3, s:4"></FORM></TD>
+                    </TR>
+                </TBODY>
+            </TABLE>
+            </TD>
+        </TR>
+        <TR>
+                <TD bgcolor="#c93333" align="left" width="640" height="10"><B><FONT
+                color="#ffffff">DayTrader New Orders</FONT></B></TD>
+            <TD align="center" bgcolor="#ffffff" width="100" height="10">
+                <IMG src="images/spacer.gif" width="45" height="19" border="0"></TD>
+        </TR>
+    </TBODY>
+</TABLE>
+</BODY>
+</HTML>

Added: geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/portfolio.jsp
URL: http://svn.apache.org/viewvc/geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/portfolio.jsp?rev=1071543&view=auto
==============================================================================
--- geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/portfolio.jsp (added)
+++ geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/portfolio.jsp Thu Feb 17 08:23:57 2011
@@ -0,0 +1,238 @@
+<!--
+ 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.
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+<META http-equiv="Content-Style-Type" content="text/css">
+<TITLE>Trade Portfolio</TITLE>
+<LINK rel="stylesheet" href="style.css" type="text/css" />
+</HEAD>
+<BODY bgcolor="#ffffff" link="#000099" vlink="#000099">
+<%@ page import="java.util.Collection, java.util.Iterator, java.util.HashMap, java.math.BigDecimal, org.apache.geronimo.daytrader.javaee6.core.*, org.apache.geronimo.daytrader.javaee6.entities.*, org.apache.geronimo.daytrader.javaee6.utils.*" session="true" isThreadSafe="true" isErrorPage="false"%>
+<jsp:useBean id="results" scope="request" type="java.lang.String" />
+<jsp:useBean id="holdingDataBeans" type="java.util.Collection" scope="request" />
+<jsp:useBean id="quoteDataBeans" type="java.util.Collection" scope="request"/>
+<TABLE height="54">
+  <TBODY>
+    <TR>
+            <TD bgcolor="#c93333" align="left" width="640" height="10" colspan=5><B><FONT
+                color="#ffffff">DayTrader Portfolio</FONT></B></TD>
+            <TD align="center" bgcolor="#000000" width="100" height="10"><FONT
+                color="#ffffff"><B>DayTrader</B></FONT></TD>
+        </TR>
+        <TR align="left">
+            <TD><B><A href="app?action=home">Home</A></B><B> </B></TD>
+            <TD><B><A href="app?action=account">Account</A></B><B> </B></TD>
+            <TD><B><A href="app?action=portfolio">Portfolio</A></B><B> </B></TD>
+            <TD><B><A href="app?action=quotes&symbols=s:0,s:1,s:2,s:3,s:4">Quotes/Trade</A></B></TD>
+            <TD><B><A href="app?action=logout">Logoff</A></B></TD>
+            <TD></TD>
+        </TR>
+        <TR>
+            <TD align="right" colspan="6">
+            <HR>
+            <FONT color="#ff0000" size="-2"><%= new java.util.Date() %></FONT></TD>
+        </TR>
+<%
+Collection closedOrders = (Collection)request.getAttribute("closedOrders");
+if ( (closedOrders != null) && (closedOrders.size()>0) )
+{
+%>         
+        <TR>
+            <TD colspan="6" bgcolor="#ff0000"><BLINK><B><FONT color="#ffffff">Alert: The following Order(s) have completed.</FONT></B></BLINK></TD>
+        </TR>
+        <TR align="center">
+            <TD colspan="6">
+            <TABLE border="1" style="font-size: smaller">
+                            <TBODY>
+<%
+    Iterator it = closedOrders.iterator();
+    while (it.hasNext() )
+    {
+        OrderDataBean closedOrderData = (OrderDataBean)it.next();
+%>                            
+                                <TR align="center">
+                                    <TD><A href="docs/glossary.html">order ID</A></TD>
+                                    <TD><A href="docs/glossary.html">order status</A></TD>
+                                    <TD><A href="docs/glossary.html">creation date</A></TD>
+                                    <TD><A href="docs/glossary.html">completion date</A></TD>
+                                    <TD><A href="docs/glossary.html">txn fee</A></TD>
+                                    <TD><A href="docs/glossary.html">type</A></TD>
+                                    <TD><A href="docs/glossary.html">symbol</A></TD>
+                                    <TD><A href="docs/glossary.html">quantity</A></TD>
+                                </TR>
+                                <TR align="center">
+                        <TD><%= closedOrderData.getOrderID()%></TD>
+                        <TD><%= closedOrderData.getOrderStatus()%></TD>
+                                    <TD><%= closedOrderData.getOpenDate()%></TD>
+                                    <TD><%= closedOrderData.getCompletionDate()%></TD>
+                                    <TD><%= closedOrderData.getOrderFee()%></TD>
+                                    <TD><%= closedOrderData.getOrderType()%></TD>
+                                    <TD><%= FinancialUtils.printQuoteLink(closedOrderData.getSymbol())%></TD>
+                                    <TD><%= closedOrderData.getQuantity()%></TD>
+                                </TR>
+        <%
+    }
+%>
+                                
+                            </TBODY>
+                        </TABLE>
+            </TD>
+        </TR>
+        <%
+}
+%>
+    </TBODY>
+</TABLE>
+<TABLE width="645">
+    <TBODY>
+        <TR>
+            <TD valign="top" width="643">
+            <TABLE width="100%">
+                <TBODY>
+
+                    <TR>
+                        <TD colspan="5" bgcolor="#cccccc"><B>Portfolio </B></TD>
+                        <TD bgcolor="#cccccc" align="right"><B>Number of Holdings: </B><%= holdingDataBeans.size()
+%></TD>
+                    </TR>
+                    <TR align="center">
+                        <TD colspan="6">
+                        <CENTER></CENTER>
+                        <TABLE border="1" style="font-size: smaller">
+                            <CAPTION align="bottom"><B>Portfolio </B></CAPTION>
+                            <TBODY>
+                                <TR align="center">
+                                    <TD><A href="docs/glossary.html">holding ID</A></TD>
+                                    <TD><A href="docs/glossary.html">purchase date</A></TD>
+                                    <TD><A href="docs/glossary.html">symbol</A></TD>
+                                    <TD><A href="docs/glossary.html">quantity</A></TD>
+                                    <TD><A href="docs/glossary.html">purchase price</A></TD>
+                                    <TD><A href="docs/glossary.html">current price</A></TD>
+                                    <TD><A href="docs/glossary.html">purchase basis</A></TD>                                    
+                                    <TD><A href="docs/glossary.html">market value</A></TD>
+                                    <TD><A href="docs/glossary.html">gain/(loss)</A></TD>
+                                    <TD><B><A href="docs/glossary.html">trade</A></B></TD>
+                                </TR>
+                                <% // Create Hashmap for quick lookup of quote values
+Iterator it = quoteDataBeans.iterator();
+HashMap quoteMap = new HashMap();                                
+while ( it.hasNext() ) 
+{
+    QuoteDataBean quoteData = (QuoteDataBean) it.next();
+    quoteMap.put(quoteData.getSymbol(), quoteData);
+}
+//Step through and printout Holdings
+
+it = holdingDataBeans.iterator();
+BigDecimal totalGain = new BigDecimal(0.0);
+BigDecimal totalBasis = new BigDecimal(0.0);
+BigDecimal totalValue = new BigDecimal(0.0);
+try {
+    while (it.hasNext()) {
+        HoldingDataBean holdingData = (HoldingDataBean) it.next();
+        QuoteDataBean quoteData = (QuoteDataBean) quoteMap.get(holdingData.getQuoteID());
+        BigDecimal basis = holdingData.getPurchasePrice().multiply(new BigDecimal(holdingData.getQuantity()));
+        BigDecimal marketValue = quoteData.getPrice().multiply(new BigDecimal(holdingData.getQuantity()));
+        totalBasis = totalBasis.add(basis);    
+        totalValue = totalValue.add(marketValue);    
+        BigDecimal gain = marketValue.subtract(basis);
+        totalGain = totalGain.add(gain);
+        BigDecimal gainPercent = null;
+        if (basis.doubleValue() == 0.0)
+        {
+            gainPercent = new BigDecimal(0.0);
+            Log.error("portfolio.jsp: Holding with zero basis. holdingID="+holdingData.getHoldingID() + " symbol=" + holdingData.getQuoteID() + " purchasePrice=" + holdingData.getPurchasePrice());
+        }
+        else
+            gainPercent = marketValue.divide(basis, BigDecimal.ROUND_HALF_UP).subtract(new BigDecimal(1.0)).multiply(new BigDecimal(100.0));                            
+    
+                         %>
+                                <TR bgcolor="#fafcb6" align="center">
+                                    <TD><%= holdingData.getHoldingID() %></TD>
+                                    <TD><%= holdingData.getPurchaseDate() %></TD>
+                                    <TD><%= FinancialUtils.printQuoteLink(holdingData.getQuoteID()) %></TD>
+                                    <TD><%= holdingData.getQuantity() %></TD>
+                                    <TD><%= holdingData.getPurchasePrice() %></TD>
+                                    <TD><%= quoteData.getPrice() %></TD>
+                                    <TD><%= basis %></TD>
+                                    <TD><%= marketValue %></TD>
+                                    <TD><%= FinancialUtils.printGainHTML(gain) %></TD>
+                                    <TD><B><%= "<A href=\"app?action=sell&holdingID=" + holdingData.getHoldingID()+"\">sell</A>"%></B></TD>
+                                </TR>
+                                <% 
+    }
+}
+catch (Exception e)
+{
+     Log.error("portfolio.jsp: error displaying user holdings", e);
+}
+                %>
+                                <TR align="center">
+                                    <TD></TD>
+                                    <TD></TD>
+                                    <TD></TD>
+                                    <TD></TD>
+                                    <TD></TD>
+                                    <TD><B>Total</B></TD>
+                                    <TD align="center">$ <%= totalBasis %></TD>
+                                    <TD align="center">$ <%= totalValue %></TD>
+                                    <TD align="center" colspan="2">$ <%= FinancialUtils.printGainHTML(totalGain) %> <%= FinancialUtils.printGainPercentHTML(FinancialUtils.computeGainPercent(totalValue, totalBasis)) %></TD>
+                                </TR>
+                            </TBODY>
+                        </TABLE>
+                        <CENTER></CENTER>
+                        </TD>
+                    </TR>
+                    <TR>
+                        <TD colspan="6"></TD>
+                    </TR>
+               </TBODY>
+            </TABLE>
+            </TD>
+        </TR>
+    </TBODY>
+</TABLE>
+<TABLE height="54" style="font-size: smaller">
+  <TBODY>
+        <TR>
+            <TD colspan="2">
+            <HR>
+            </TD>
+        </TR>
+        <TR>
+            <TD colspan="2">
+            <TABLE width="100%" style="font-size: smaller">
+                <TBODY>
+                    <TR>
+                        <TD>Note: Click any <A href="docs/glossary.html">symbol</A> for a quote or to trade.</TD>
+                        <TD align="right"><FORM><INPUT type="submit" name="action" value="quotes"> <INPUT size="20" type="text" name="symbols" value="s:0, s:1, s:2, s:3, s:4"></FORM></TD>
+                    </TR>
+                </TBODY>
+            </TABLE>
+            </TD>
+        </TR>
+        <TR>
+            <TD bgcolor="#c93333" align="left" width="640" height="10"><B><FONT
+                color="#ffffff">DayTrader Portfolio</FONT></B></TD>
+            <TD align="center" bgcolor="#000000" width="100" height="10"><FONT
+                color="#ffffff"><B>DayTrader</B></FONT></TD>
+        </TR>
+    </TBODY>
+</TABLE>
+</BODY>
+</HTML>

Added: geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/portfolioImg.jsp
URL: http://svn.apache.org/viewvc/geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/portfolioImg.jsp?rev=1071543&view=auto
==============================================================================
--- geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/portfolioImg.jsp (added)
+++ geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/portfolioImg.jsp Thu Feb 17 08:23:57 2011
@@ -0,0 +1,255 @@
+<!--
+ 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.
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+<META http-equiv="Content-Style-Type" content="text/css">
+<TITLE>Trade Portfolio</TITLE>
+<LINK rel="stylesheet" href="style.css" type="text/css" />
+</HEAD>
+<BODY bgcolor="#ffffff" link="#000099" vlink="#000099">
+<%@ page
+    import="java.util.Collection, java.util.Iterator, java.util.HashMap, java.math.BigDecimal, org.apache.geronimo.daytrader.javaee6.core.*, org.apache.geronimo.daytrader.javaee6.entities.*, org.apache.geronimo.daytrader.javaee6.utils.*"
+    session="true" isThreadSafe="true" isErrorPage="false"%>
+<jsp:useBean id="results" scope="request" type="java.lang.String" />
+<jsp:useBean id="holdingDataBeans" type="java.util.Collection"
+    scope="request" />
+<jsp:useBean id="quoteDataBeans" type="java.util.Collection"
+    scope="request" />
+<TABLE height="54">
+    <TBODY>
+        <TR>
+            <TD bgcolor="#c93333" align="left" width="640" height="10" colspan=5><B><FONT
+                color="#ffffff">DayTrader Portfolio</FONT></B></TD>
+            <TD align="center" bgcolor="#000000" width="100" height="10"><FONT
+                color="#ffffff"><B>DayTrader</B></FONT></TD>
+        </TR>
+        <TR align="left">
+            <TD><A href="app?action=home"><IMG src="images/menuHome.gif" width="80"
+                height="20" border="0" alt=""></A></TD>
+            <TD><A href="app?action=account"><IMG src="images/account.gif"
+                width="80" height="20" border="0" alt=""></A></TD>
+            <TD><B><A href="app?action=portfolio"><IMG src="images/portfolio.gif"
+                width="80" height="20" border="0" alt=""></A> </B></TD>
+            <TD><A href="app?action=quotes&amp;symbols=s:0,s:1,s:2,s:3,s:4"><IMG
+                src="images/quotes.gif" width="80" height="20" border="0" alt=""></A></TD>
+            <TD><A href="app?action=logout"><IMG src="images/logout.gif"
+                width="80" height="20" border="0" alt=""></A></TD>
+            <TD><IMG src="images/graph.gif" width="32" height="32" border="0"
+                alt=""></TD>
+        </TR>
+        <TR>
+            <TD align="left" colspan="6"><IMG src="images/line.gif" width="600"
+                height="6" border="0" alt=""><BR>
+            <FONT color="#ff0000" size="-2"><%= new java.util.Date() %></FONT></TD>
+        </TR>
+        <%
+Collection closedOrders = (Collection)request.getAttribute("closedOrders");
+if ( (closedOrders != null) && (closedOrders.size()>0) )
+{
+%>
+        <TR>
+            <TD colspan="6" bgcolor="#ff0000"><BLINK><B><FONT color="#ffffff">Alert:
+            The following Order(s) have completed.</FONT></B></BLINK></TD>
+        </TR>
+        <TR align="center">
+            <TD colspan="6">
+            <TABLE border="1" style="font-size: smaller">
+                <TBODY>
+                    <%
+    Iterator it = closedOrders.iterator();
+    while (it.hasNext() )
+    {
+        OrderDataBean closedOrderData = (OrderDataBean)it.next();
+%>
+                    <TR align="center">
+                        <TD><A href="docs/glossary.html">order ID</A></TD>
+                        <TD><A href="docs/glossary.html">order status</A></TD>
+                        <TD><A href="docs/glossary.html">creation date</A></TD>
+                        <TD><A href="docs/glossary.html">completion date</A></TD>
+                        <TD><A href="docs/glossary.html">txn fee</A></TD>
+                        <TD><A href="docs/glossary.html">type</A></TD>
+                        <TD><A href="docs/glossary.html">symbol</A></TD>
+                        <TD><A href="docs/glossary.html">quantity</A></TD>
+                    </TR>
+                    <TR align="center">
+                        <TD><%= closedOrderData.getOrderID()%></TD>
+                        <TD><%= closedOrderData.getOrderStatus()%></TD>
+                        <TD><%= closedOrderData.getOpenDate()%></TD>
+                        <TD><%= closedOrderData.getCompletionDate()%></TD>
+                        <TD><%= closedOrderData.getOrderFee()%></TD>
+                        <TD><%= closedOrderData.getOrderType()%></TD>
+                        <TD><%= FinancialUtils.printQuoteLink(closedOrderData.getSymbol())%></TD>
+                        <TD><%= closedOrderData.getQuantity()%></TD>
+                    </TR>
+                    <%
+    }
+%>
+
+                </TBODY>
+            </TABLE>
+            </TD>
+        </TR>
+        <%
+}
+%>
+    </TBODY>
+</TABLE>
+<TABLE width="645">
+    <TBODY>
+        <TR>
+            <TD valign="top" width="643">
+            <TABLE width="100%">
+                <TBODY>
+
+                    <TR>
+                        <TD colspan="5" bgcolor="#cccccc"><B>Portfolio </B></TD>
+                        <TD bgcolor="#cccccc" align="right"><B>Number of Holdings: </B><%= holdingDataBeans.size()
+%></TD>
+                    </TR>
+                    <TR align="center">
+                        <TD colspan="6">
+                        <CENTER></CENTER>
+                        <TABLE border="1" style="font-size: smaller">
+                            <CAPTION align="bottom"><B>Portfolio </B></CAPTION>
+                            <TBODY>
+                                <TR align="center">
+                                    <TD><A href="docs/glossary.html">holding ID</A></TD>
+                                    <TD><A href="docs/glossary.html">purchase date</A></TD>
+                                    <TD><A href="docs/glossary.html">symbol</A></TD>
+                                    <TD><A href="docs/glossary.html">quantity</A></TD>
+                                    <TD><A href="docs/glossary.html">purchase price</A></TD>
+                                    <TD><A href="docs/glossary.html">current price</A></TD>
+                                    <TD><A href="docs/glossary.html">purchase basis</A></TD>
+                                    <TD><A href="docs/glossary.html">market value</A></TD>
+                                    <TD><A href="docs/glossary.html">gain/(loss)</A></TD>
+                                    <TD><B><A href="docs/glossary.html">trade</A></B></TD>
+                                </TR>
+                                <% // Create Hashmap for quick lookup of quote values
+Iterator it = quoteDataBeans.iterator();
+HashMap quoteMap = new HashMap();                                
+while ( it.hasNext() ) 
+{
+    QuoteDataBean quoteData = (QuoteDataBean) it.next();
+    quoteMap.put(quoteData.getSymbol(), quoteData);
+}
+//Step through and printout Holdings
+
+it = holdingDataBeans.iterator();
+BigDecimal totalGain = new BigDecimal(0.0);
+BigDecimal totalBasis = new BigDecimal(0.0);
+BigDecimal totalValue = new BigDecimal(0.0);
+try {
+    while (it.hasNext()) {
+        HoldingDataBean holdingData = (HoldingDataBean) it.next();
+        QuoteDataBean quoteData = (QuoteDataBean) quoteMap.get(holdingData.getQuoteID());
+        BigDecimal basis = holdingData.getPurchasePrice().multiply(new BigDecimal(holdingData.getQuantity()));
+        BigDecimal marketValue = quoteData.getPrice().multiply(new BigDecimal(holdingData.getQuantity()));
+        totalBasis = totalBasis.add(basis);    
+        totalValue = totalValue.add(marketValue);    
+        BigDecimal gain = marketValue.subtract(basis);
+        totalGain = totalGain.add(gain);
+        BigDecimal gainPercent = null;
+        if (basis.doubleValue() == 0.0)
+        {
+            gainPercent = new BigDecimal(0.0);
+            Log.error("portfolio.jsp: Holding with zero basis. holdingID="+holdingData.getHoldingID() + " symbol=" + holdingData.getQuoteID() + " purchasePrice=" + holdingData.getPurchasePrice());
+        }
+        else
+            gainPercent = marketValue.divide(basis, BigDecimal.ROUND_HALF_UP).subtract(new BigDecimal(1.0)).multiply(new BigDecimal(100.0));                            
+    
+                         %>
+                                <TR bgcolor="#fafcb6" align="center">
+                                    <TD><%= holdingData.getHoldingID() %></TD>
+                                    <TD><%= holdingData.getPurchaseDate() %></TD>
+                                    <TD><%= FinancialUtils.printQuoteLink(holdingData.getQuoteID()) %></TD>
+                                    <TD><%= holdingData.getQuantity() %></TD>
+                                    <TD><%= holdingData.getPurchasePrice() %></TD>
+                                    <TD><%= quoteData.getPrice() %></TD>
+                                    <TD><%= basis %></TD>
+                                    <TD><%= marketValue %></TD>
+                                    <TD><%= FinancialUtils.printGainHTML(gain) %></TD>
+                                    <TD><B><%= "<A href=\"app?action=sell&holdingID=" + holdingData.getHoldingID()+"\">sell</A>"%></B></TD>
+                                </TR>
+                                <% 
+    }
+}
+catch (Exception e)
+{
+     Log.error("portfolio.jsp: error displaying user holdings", e);
+}
+                %>
+                                <TR align="center">
+                                    <TD></TD>
+                                    <TD></TD>
+                                    <TD></TD>
+                                    <TD></TD>
+                                    <TD></TD>
+                                    <TD><B>Total</B></TD>
+                                    <TD align="center">$<%= totalBasis %></TD>
+                                    <TD align="center">$<%= totalValue %></TD>
+                                    <TD align="center" colspan="2">$<%= FinancialUtils.printGainHTML(totalGain) %>
+                                    <%= FinancialUtils.printGainPercentHTML(FinancialUtils.computeGainPercent(totalValue, totalBasis)) %></TD>
+                                </TR>
+                            </TBODY>
+                        </TABLE>
+                        <CENTER></CENTER>
+                        </TD>
+                    </TR>
+                    <TR>
+                        <TD colspan="6"></TD>
+                    </TR>
+                </TBODY>
+            </TABLE>
+            </TD>
+        </TR>
+    </TBODY>
+</TABLE>
+<TABLE height="54" style="font-size: smaller">
+    <TBODY>
+        <TR>
+            <TD colspan="2">
+            <HR>
+            </TD>
+        </TR>
+        <TR>
+            <TD colspan="2">
+            <TABLE width="100%" style="font-size: smaller">
+                <TBODY>
+                    <TR>
+                        <TD>Note: Click any <A href="docs/glossary.html">symbol</A> for a
+                        quote or to trade.</TD>
+                        <TD align="right">
+                        <FORM action=""><INPUT type="submit" name="action" value="quotes">
+                        <INPUT size="20" type="text" name="symbols"
+                            value="s:0, s:1, s:2, s:3, s:4"></FORM>
+                        </TD>
+                    </TR>
+                </TBODY>
+            </TABLE>
+            </TD>
+        </TR>
+        <TR>
+            <TD bgcolor="#c93333" align="left" width="640" height="10" colspan=5><B><FONT
+                color="#ffffff">DayTrader Portfolio</FONT></B></TD>
+            <TD align="center" bgcolor="#000000" width="100" height="10"><FONT
+                color="#ffffff"><B>DayTrader</B></FONT></TD>
+        </TR>
+    </TBODY>
+</TABLE>
+</BODY>
+</HTML>

Added: geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/quote.jsp
URL: http://svn.apache.org/viewvc/geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/quote.jsp?rev=1071543&view=auto
==============================================================================
--- geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/quote.jsp (added)
+++ geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/quote.jsp Thu Feb 17 08:23:57 2011
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ 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.
+-->
+<HTML>
+<HEAD>
+<META http-equiv="Content-Style-Type" content="text/css">
+<TITLE>Trade: Quotes and Trading</TITLE>
+<LINK rel="stylesheet" href="style.css" type="text/css" />
+</HEAD>
+
+<BODY bgcolor="#ffffff" link="#000099" vlink="#000099">
+<%@ page import="java.util.Collection, java.util.Iterator, org.apache.geronimo.daytrader.javaee6.core.*, org.apache.geronimo.daytrader.javaee6.entities.*, org.apache.geronimo.daytrader.javaee6.utils.*" session="true" isThreadSafe="true" isErrorPage="false"%>
+
+<TABLE height="54">
+  <TBODY>
+    <TR>
+            <TD bgcolor="#c93333" align="left" width="640" height="10" colspan=5><B><FONT
+                color="#ffffff">DayTrader Quotes</FONT></B></TD>
+            <TD align="center" bgcolor="#000000" width="100" height="10"><FONT
+                color="#ffffff"><B>DayTrader</B></FONT></TD>
+        </TR>
+        <TR align="left">
+            <TD><B><A href="app?action=home">Home</A></B><B> </B></TD>
+            <TD><B><A href="app?action=account">Account</A></B><B> </B></TD>
+            <TD><B><A href="app?action=portfolio">Portfolio</A></B><B> </B></TD>
+            <TD><B><A href="app?action=quotes&symbols=s:0,s:1,s:2,s:3,s:4">Quotes/Trade</A></B></TD>
+            <TD><B><A href="app?action=logout">Logoff</A></B></TD>
+            <TD></TD>
+        </TR>
+        <TR>
+            <TD align="right" colspan="6">
+            <HR>
+            <FONT color="#ff0000" size="-2"><%= new java.util.Date() %></FONT></TD>
+        </TR>
+<%
+Collection closedOrders = (Collection)request.getAttribute("closedOrders");
+if ( (closedOrders != null) && (closedOrders.size()>0) )
+{
+%>         
+        <TR>
+            <TD colspan="6" bgcolor="#ff0000"><BLINK><B><FONT color="#ffffff">Alert: The following Order(s) have completed.</FONT></B></BLINK></TD>
+        </TR>
+        <TR align="center">
+            <TD colspan="6">
+            <TABLE border="1" style="font-size: smaller">
+                            <TBODY>
+<%
+    Iterator it = closedOrders.iterator();
+    while (it.hasNext() )
+    {
+        OrderDataBean closedOrderData = (OrderDataBean)it.next();
+%>                            
+                                <TR align="center">
+                                    <TD><A href="docs/glossary.html">order ID</A></TD>
+                                    <TD><A href="docs/glossary.html">order status</A></TD>
+                                    <TD><A href="docs/glossary.html">creation date</A></TD>
+                                    <TD><A href="docs/glossary.html">completion date</A></TD>
+                                    <TD><A href="docs/glossary.html">txn fee</A></TD>
+                                    <TD><A href="docs/glossary.html">type</A></TD>
+                                    <TD><A href="docs/glossary.html">symbol</A></TD>
+                                    <TD><A href="docs/glossary.html">quantity</A></TD>
+                                </TR>
+                                <TR align="center">
+                        <TD><%= closedOrderData.getOrderID()%></TD>
+                        <TD><%= closedOrderData.getOrderStatus()%></TD>
+                                    <TD><%= closedOrderData.getOpenDate()%></TD>
+                                    <TD><%= closedOrderData.getCompletionDate()%></TD>
+                                    <TD><%= closedOrderData.getOrderFee()%></TD>
+                                    <TD><%= closedOrderData.getOrderType()%></TD>
+                                    <TD><%= FinancialUtils.printQuoteLink(closedOrderData.getSymbol()) %></TD>
+                                    <TD><%= closedOrderData.getQuantity()%></TD>
+                                </TR>
+        <%
+    }
+%>
+                                
+                            </TBODY>
+                        </TABLE>
+            </TD>
+        </TR>
+        <%
+}
+%>
+    </TBODY>
+</TABLE>
+<TABLE width="650">
+    <TBODY>
+        <TR>
+            <TD>
+            <TABLE width="100%">
+                <TBODY>
+                    <TR>
+                        <TD></TD>
+                    </TR>
+                    <TR>
+                        <TD bgcolor="#cccccc"> <B>Quotes</B></TD>
+                    </TR>
+                    <TR>
+                        <TD align="center">
+                        <TABLE border="1" style="font-size: smaller">
+                            <TBODY>
+                                <TR align="center">
+                                    <TD><A href="docs/glossary.html">symbol</A></TD>
+                                    <TD><A href="docs/glossary.html">company</A></TD>
+                                    <TD><A href="docs/glossary.html">volume</A></TD>  
+                                    <TD><A href="docs/glossary.html">price range</A></TD>
+                                    <TD><A href="docs/glossary.html">open price</A></TD>                                                                                                          
+                                    <TD><A href="docs/glossary.html">current price</A></TD>
+                                    <TD><A href="docs/glossary.html">gain/(loss)</A></TD>
+                                    <TD><A href="docs/glossary.html">trade</A></TD>
+                                </TR>
+                    <% 
+
+
+
+String symbols = request.getParameter("symbols");
+if (symbols == null)
+    symbols = "no_stock_symbol_provided";
+java.util.ArrayList quotes = new java.util.ArrayList();
+java.util.StringTokenizer st = new java.util.StringTokenizer(symbols, " ,");
+while (st.hasMoreElements())
+{
+         String symbol = st.nextToken();
+        String displayQuoteURL = "displayQuote.jsp?symbol="+symbol;
+                    %>
+        <jsp:include page="<%=displayQuoteURL%>"/>
+
+                    <% 
+ }
+                    %>                                                  
+                            </TBODY>
+                        </TABLE>
+                        </TD>
+                    </TR>
+                </TBODY>
+            </TABLE>
+            </TD>
+        </TR>
+    </TBODY>
+</TABLE>
+<TABLE height="54" style="font-size: smaller">
+  <TBODY>
+        <TR>
+            <TD colspan="2">
+            <HR>
+            </TD>
+        </TR>
+        <TR>
+            <TD colspan="2">
+            <TABLE width="100%" style="font-size: smaller">
+                <TBODY>
+                    <TR>
+                        <TD>Note: Click any <A href="docs/glossary.html">symbol</A> for a quote or to trade.</TD>
+                        <TD align="right"><FORM><INPUT type="submit" name="action" value="quotes"> <INPUT size="20" type="text" name="symbols" value="s:0, s:1, s:2, s:3, s:4"></FORM></TD>
+                    </TR>
+                </TBODY>
+            </TABLE>
+            </TD>
+        </TR>
+        <TR>
+            <TD bgcolor="#c93333" align="left" width="640" height="10"><B><FONT
+                color="#ffffff">DayTrader Quotes</FONT></B></TD>
+            <TD align="center" bgcolor="#000000" width="100" height="10"><FONT
+                color="#ffffff"><B>DayTrader</B></FONT></TD>
+        </TR>
+    </TBODY>
+</TABLE>
+</BODY>
+</HTML>

Added: geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/quoteImg.jsp
URL: http://svn.apache.org/viewvc/geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/quoteImg.jsp?rev=1071543&view=auto
==============================================================================
--- geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/quoteImg.jsp (added)
+++ geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/quoteImg.jsp Thu Feb 17 08:23:57 2011
@@ -0,0 +1,204 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ 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.
+-->
+<HTML>
+<HEAD>
+<META http-equiv="Content-Style-Type" content="text/css">
+<TITLE>Trade: Quotes and Trading</TITLE>
+<LINK rel="stylesheet" href="style.css" type="text/css" />
+</HEAD>
+
+<BODY bgcolor="#ffffff" link="#000099" vlink="#000099">
+<%@ page
+    import="java.util.Collection, java.util.Iterator, org.apache.geronimo.daytrader.javaee6.core.*, org.apache.geronimo.daytrader.javaee6.entities.*, org.apache.geronimo.daytrader.javaee6.utils.*"
+    session="true" isThreadSafe="true" isErrorPage="false"%>
+
+<TABLE height="54">
+    <TBODY>
+        <TR>
+            <TD bgcolor="#c93333" align="left" width="640" height="10" colspan=5><B><FONT
+                color="#ffffff">DayTrader Quotes</FONT></B></TD>
+            <TD align="center" bgcolor="#000000" width="100" height="10"><FONT
+                color="#ffffff"><B>DayTrader</B></FONT></TD>
+        </TR>
+        <TR align="left">
+            <TD><A href="app?action=home"><IMG src="images/menuHome.gif" width="80"
+                height="20" border="0" alt=""></A></TD>
+            <TD><A href="app?action=account"><IMG src="images/account.gif"
+                width="80" height="20" border="0" alt=""></A></TD>
+            <TD><B><A href="app?action=portfolio"><IMG src="images/portfolio.gif"
+                width="80" height="20" border="0" alt=""></A> </B></TD>
+            <TD><A href="app?action=quotes&amp;symbols=s:0,s:1,s:2,s:3,s:4"><IMG
+                src="images/quotes.gif" width="80" height="20" border="0" alt=""></A></TD>
+            <TD><A href="app?action=logout"><IMG src="images/logout.gif"
+                width="80" height="20" border="0" alt=""></A></TD>
+            <TD><IMG src="images/graph.gif" width="32" height="32" border="0"
+                alt=""></TD>
+        </TR>
+        <TR>
+            <TD align="left" colspan="6"><IMG src="images/line.gif" width="600"
+                height="6" border="0" alt=""><BR>
+            <FONT color="#ff0000" size="-2"><%= new java.util.Date() %></FONT></TD>
+        </TR>
+        <%
+Collection closedOrders = (Collection)request.getAttribute("closedOrders");
+if ( (closedOrders != null) && (closedOrders.size()>0) )
+{
+%>
+        <TR>
+            <TD colspan="6" bgcolor="#ff0000"><BLINK><B><FONT color="#ffffff">Alert:
+            The following Order(s) have completed.</FONT></B></BLINK></TD>
+        </TR>
+        <TR align="center">
+            <TD colspan="6">
+            <TABLE border="1" style="font-size: smaller">
+                <TBODY>
+                    <%
+    Iterator it = closedOrders.iterator();
+    while (it.hasNext() )
+    {
+        OrderDataBean closedOrderData = (OrderDataBean)it.next();
+%>
+                    <TR align="center">
+                        <TD><A href="docs/glossary.html">order ID</A></TD>
+                        <TD><A href="docs/glossary.html">order status</A></TD>
+                        <TD><A href="docs/glossary.html">creation date</A></TD>
+                        <TD><A href="docs/glossary.html">completion date</A></TD>
+                        <TD><A href="docs/glossary.html">txn fee</A></TD>
+                        <TD><A href="docs/glossary.html">type</A></TD>
+                        <TD><A href="docs/glossary.html">symbol</A></TD>
+                        <TD><A href="docs/glossary.html">quantity</A></TD>
+                    </TR>
+                    <TR align="center">
+                        <TD><%= closedOrderData.getOrderID()%></TD>
+                        <TD><%= closedOrderData.getOrderStatus()%></TD>
+                        <TD><%= closedOrderData.getOpenDate()%></TD>
+                        <TD><%= closedOrderData.getCompletionDate()%></TD>
+                        <TD><%= closedOrderData.getOrderFee()%></TD>
+                        <TD><%= closedOrderData.getOrderType()%></TD>
+                        <TD><%= FinancialUtils.printQuoteLink(closedOrderData.getSymbol()) %></TD>
+                        <TD><%= closedOrderData.getQuantity()%></TD>
+                    </TR>
+                    <%
+    }
+%>
+
+                </TBODY>
+            </TABLE>
+            </TD>
+        </TR>
+        <%
+}
+%>
+    </TBODY>
+</TABLE>
+<TABLE width="650">
+    <TBODY>
+        <TR>
+            <TD>
+            <TABLE width="100%">
+                <TBODY>
+                    <TR>
+                        <TD></TD>
+                    </TR>
+                    <TR>
+                        <TD bgcolor="#cccccc"><B>Quotes</B></TD>
+                    </TR>
+                    <TR>
+                        <TD align="center">
+                        <TABLE border="1" style="font-size: smaller">
+                            <TBODY>
+                                <TR align="center">
+                                    <TD><A href="docs/glossary.html">symbol</A></TD>
+                                    <TD><A href="docs/glossary.html">company</A></TD>
+                                    <TD><A href="docs/glossary.html">volume</A></TD>
+                                    <TD><A href="docs/glossary.html">price range</A></TD>
+                                    <TD><A href="docs/glossary.html">open price</A></TD>
+                                    <TD><A href="docs/glossary.html">current price</A></TD>
+                                    <TD><A href="docs/glossary.html">gain/(loss)</A></TD>
+                                    <TD><A href="docs/glossary.html">trade</A></TD>
+                                </TR>
+
+                                <% 
+String symbols = request.getParameter("symbols");
+if (symbols == null)
+    symbols = "no_stock_symbol_provided";
+java.util.ArrayList quotes = new java.util.ArrayList();
+java.util.StringTokenizer st = new java.util.StringTokenizer(symbols, " ,");
+while (st.hasMoreElements())
+{
+         String symbol = st.nextToken();
+
+                    %>
+                                <jsp:include page="displayQuote.jsp" flush="">
+                                    <jsp:param name="symbol" value="<%= symbol%>" />
+                                </jsp:include>
+
+                                <% 
+ }
+                    %>
+
+                            </TBODY>
+                        </TABLE>
+                        </TD>
+                    </TR>
+                </TBODY>
+            </TABLE>
+            </TD>
+        </TR>
+    </TBODY>
+</TABLE>
+<TABLE height="54" style="font-size: smaller">
+    <TBODY>
+        <TR>
+            <TD colspan="2">
+            <HR>
+            </TD>
+        </TR>
+        <TR>
+            <TD colspan="2">
+            <TABLE width="100%" style="font-size: smaller">
+                <TBODY>
+                    <TR>
+                        <TD>Note: Click any <A href="docs/glossary.html">symbol</A> for a
+                        quote or to trade.</TD>
+                        <TD align="right">
+                        <FORM action=""><INPUT type="submit" name="action" value="quotes">
+                        <INPUT size="20" type="text" name="symbols"
+                            value="s:0, s:1, s:2, s:3, s:4"></FORM>
+                        </TD>
+                    </TR>
+                </TBODY>
+            </TABLE>
+            </TD>
+        </TR>
+        <TR>
+            <TD bgcolor="#c93333" align="left" width="640" height="10" colspan=5><B><FONT
+                color="#ffffff">DayTrader Quotes</FONT></B></TD>
+            <TD align="center" bgcolor="#000000" width="100" height="10"><FONT
+                color="#ffffff"><B>DayTrader</B></FONT></TD>
+        </TR>
+        <TR>
+            <TD colspan="2" align="center">
+            <IMG src="images/ticker-anim.gif" width="385" height="22" border="0"
+                align="middle" alt="">
+            <TD></TD>
+        </TR>
+    </TBODY>
+</TABLE>
+</BODY>
+</HTML>

Added: geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/register.jsp
URL: http://svn.apache.org/viewvc/geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/register.jsp?rev=1071543&view=auto
==============================================================================
--- geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/register.jsp (added)
+++ geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/register.jsp Thu Feb 17 08:23:57 2011
@@ -0,0 +1,158 @@
+<!--
+ 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.
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+<TITLE>Trade Registration</TITLE>
+</HEAD>
+<BODY bgcolor="#ffffff" link="#000099">
+<%@ page session="false"%>
+<% 
+String blank = "";
+String fakeCC = "123-fake-ccnum-456";
+String fullname =   request.getParameter ( "Full Name" );
+String snailmail=   request.getParameter ( "snail mail" );
+String email =      request.getParameter ( "email" ); 
+String userID =     request.getParameter ( "user id" ); 
+String money =      request.getParameter ( "money" ); 
+String creditcard = request.getParameter ( "Credit Card Number" );
+String results =   (String) request.getAttribute ( "results" );
+%>
+<TABLE style="font-size: smaller">
+    <TBODY>
+        <TR>
+            <TD bgcolor="#c93333" align="left" width="640" height="10"><B><FONT
+                color="#ffffff">DayTrader Register</FONT></B></TD>
+            <TD align="center" bgcolor="#000000" width="100" height="10"><FONT
+                color="#ffffff"><B>DayTrader</B></FONT></TD>
+        </TR>
+    </TBODY>
+</TABLE>
+<TABLE width="740" height="30">
+    <TBODY>
+        <TR>
+            <TD align="center"></TD>
+            <TD><FONT color="#ff3333"><%= results==null ? blank : results %></FONT></TD>
+            <TD></TD>
+        </TR>
+    </TBODY>
+</TABLE>
+<TABLE width="665">
+    <TBODY>
+        <TR>
+            <TD width="2%" bgcolor="#e7e4e7"></TD>
+            <TD width="98%" colspan="8"><B>Register</B>
+            <HR>
+            </TD>
+        </TR>
+    </TBODY>
+</TABLE>
+<FORM action="app">
+<TABLE width="665">
+    <TBODY align="right">
+        <TR>
+            <TD width="2%" bgcolor="#e7e4e7" rowspan="11"></TD>
+            <TD width="33%" colspan="4" align="right"><FONT COLOR="#FF0000">*</FONT><B>Full
+            name:</B></TD>
+            <TD width="20%" colspan="2" align="right"><INPUT size="40"
+                type="text" name="Full Name"
+                value="<%= fullname==null ? blank : fullname %>"></TD>
+            <TD width="2%" bgcolor="#e7e4e7" rowspan="11"></TD>
+        </TR>
+        <TR>
+            <TD colspan="4" align="right"><FONT COLOR="#FF0000">*</FONT><B>Address:</B></TD>
+            <TD colspan="2" align="right"><INPUT size="40" type="text"
+                name="snail mail" value="<%= snailmail==null ? blank : snailmail %>"></TD>
+        </TR>
+        <TR>
+            <TD colspan="4" align="right"><FONT COLOR="#FF0000">*</FONT><B>E-Mail
+            address:</B></TD>
+            <TD colspan="2" align="right"><INPUT size="40" type="text"
+                name="email" value="<%= email==null ? blank : email %>"></TD>
+        </TR>
+        <TR>
+            <TD colspan="4">&nbsp;</TD>
+            <TD colspan="2" align="right">&nbsp;</TD>
+        </TR>
+        <TR>
+            <TD colspan="4" align="right"><FONT COLOR="#FF0000">*</FONT><B>User
+            ID:</B></TD>
+            <TD colspan="2" align="right"><INPUT size="40" type="text"
+                name="user id" value="<%= userID==null ? blank : userID %>"></TD>
+        </TR>
+        <TR>
+            <TD colspan="4" align="right"><B><FONT COLOR="#FF0000">*</FONT>Password:</B></TD>
+            <TD colspan="2" align="right"><INPUT size="40" type="password"
+                name="passwd"></TD>
+        </TR>
+        <TR>
+            <TD colspan="4" align="right"><B><FONT COLOR="#FF0000">*</FONT>Confirm
+            password:</B></TD>
+            <TD colspan="2" align="right"><INPUT size="40" type="password"
+                name="confirm passwd"></TD>
+        </TR>
+        <TR>
+            <TD colspan="4">&nbsp;</TD>
+            <TD colspan="2" align="right">&nbsp;</TD>
+        </TR>
+        <TR>
+            <TD colspan="4" align="right"><FONT COLOR="#FF0000">*</FONT><B>Opening
+            account balance:</B></TD>
+            <TD colspan="2" align="right">$<B> </B><INPUT size="20" type="text"
+                name="money" value='<%= money==null ? "10000" : money %>'></TD>
+        </TR>
+        <TR>
+            <TD colspan="4" align="right"><B><FONT COLOR="#FF0000">*</FONT>Credit
+            card number:</B></TD>
+            <TD colspan="2" align="right">&nbsp;&nbsp;<INPUT size="40"
+                type="text" name="Credit Card Number"
+                value="<%= creditcard==null ? fakeCC : creditcard %>" readonly></TD>
+        </TR>
+        <TR>
+            <TD align="center"></TD>
+            <TD align="center"></TD>
+            <TD align="center"></TD>
+            <TD align="center"></TD>
+            <TD align="center"></TD>
+            <TD align="center"><INPUT type="submit" value="Submit Registration"></TD>
+        </TR>
+        <TR>
+            <TD align="right" colspan="6"></TD>
+        </TR>
+    </TBODY>
+</TABLE>
+<INPUT type="hidden" name="action" value="register"></FORM>
+<TABLE height="54" style="font-size: smaller">
+    <TBODY>
+        <TR>
+            <TD colspan="2">
+            <HR>
+            </TD>
+        </TR>
+        <TR>
+            <TD colspan="2"></TD>
+        </TR>
+        <TR>
+            <TD bgcolor="#c93333" align="left" width="640" height="10"><B><FONT
+                color="#ffffff">DayTrader Register</FONT></B></TD>
+            <TD align="center" bgcolor="#000000" width="100" height="10"><FONT
+                color="#ffffff"><B>DayTrader</B></FONT></TD>
+        </TR>
+    </TBODY>
+</TABLE>
+</BODY>
+</HTML>

Added: geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/registerImg.jsp
URL: http://svn.apache.org/viewvc/geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/registerImg.jsp?rev=1071543&view=auto
==============================================================================
--- geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/registerImg.jsp (added)
+++ geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/registerImg.jsp Thu Feb 17 08:23:57 2011
@@ -0,0 +1,159 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ 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.
+-->
+<HTML>
+<HEAD>
+<TITLE>Trade Registration</TITLE>
+</HEAD>
+<BODY bgcolor="#ffffff" link="#000099">
+<%@ page session="false"%>
+<% 
+String blank = "";
+String fakeCC = "123-fake-ccnum-456";
+String fullname =   request.getParameter ( "Full Name" );
+String snailmail=   request.getParameter ( "snail mail" );
+String email =      request.getParameter ( "email" ); 
+String userID =     request.getParameter ( "user id" ); 
+String money =      request.getParameter ( "money" ); 
+String creditcard = request.getParameter ( "Credit Card Number" );
+String results =   (String) request.getAttribute ( "results" );
+%>
+<TABLE style="font-size: smaller">
+    <TBODY>
+        <TR>
+            <TD bgcolor="#c93333" align="left" width="640" height="10"><B><FONT
+                color="#ffffff">DayTrader Register</FONT></B></TD>
+            <TD align="center" bgcolor="#ffffff" width="100" height="10"><IMG
+                src="images/spacer.gif" border="0" width="45" height="19" alt=""></TD>
+        </TR>
+    </TBODY>
+</TABLE>
+<TABLE width="740" height="30">
+    <TBODY>
+        <TR>
+            <TD align="center"></TD>
+            <TD><FONT color="#ff3333"><%= results==null ? blank : results %></FONT></TD>
+            <TD width="120" align="right"><IMG src="images/graph.gif" width="32"
+                height="32" border="0" alt=""></TD>
+        </TR>
+    </TBODY>
+</TABLE>
+<TABLE width="665">
+    <TBODY>
+        <TR>
+            <TD width="2%" bgcolor="#e7e4e7"></TD>
+            <TD width="98%" colspan="8"><B>Register</B>
+            <HR>
+            </TD>
+        </TR>
+    </TBODY>
+</TABLE>
+<FORM action="app">
+<TABLE width="665">
+    <TBODY align="right">
+        <TR>
+            <TD width="2%" bgcolor="#e7e4e7" rowspan="11"></TD>
+            <TD width="33%" colspan="4" align="right"><FONT COLOR="#FF0000">*</FONT><B>Full
+            name:</B></TD>
+            <TD width="20%" colspan="2" align="right"><INPUT size="40"
+                type="text" name="Full Name"
+                value="<%= fullname==null ? blank : fullname %>"></TD>
+            <TD width="2%" bgcolor="#e7e4e7" rowspan="11"></TD>
+        </TR>
+        <TR>
+            <TD colspan="4" align="right"><FONT COLOR="#FF0000">*</FONT><B>Address:</B></TD>
+            <TD colspan="2" align="right"><INPUT size="40" type="text"
+                name="snail mail" value="<%= snailmail==null ? blank : snailmail %>"></TD>
+        </TR>
+        <TR>
+            <TD colspan="4" align="right"><FONT COLOR="#FF0000">*</FONT><B>E-Mail
+            address:</B></TD>
+            <TD colspan="2" align="right"><INPUT size="40" type="text"
+                name="email" value="<%= email==null ? blank : email %>"></TD>
+        </TR>
+        <TR>
+            <TD colspan="4">&nbsp;</TD>
+            <TD colspan="2" align="right">&nbsp;</TD>
+        </TR>
+        <TR>
+            <TD colspan="4" align="right"><FONT COLOR="#FF0000">*</FONT><B>User
+            ID:</B></TD>
+            <TD colspan="2" align="right"><INPUT size="40" type="text"
+                name="user id" value="<%= userID==null ? blank : userID %>"></TD>
+        </TR>
+        <TR>
+            <TD colspan="4" align="right"><B><FONT COLOR="#FF0000">*</FONT>Password:</B></TD>
+            <TD colspan="2" align="right"><INPUT size="40" type="password"
+                name="passwd"></TD>
+        </TR>
+        <TR>
+            <TD colspan="4" align="right"><B><FONT COLOR="#FF0000">*</FONT>Confirm
+            password:</B></TD>
+            <TD colspan="2" align="right"><INPUT size="40" type="password"
+                name="confirm passwd"></TD>
+        </TR>
+        <TR>
+            <TD colspan="4">&nbsp;</TD>
+            <TD colspan="2" align="right">&nbsp;</TD>
+        </TR>
+        <TR>
+            <TD colspan="4" align="right"><FONT COLOR="#FF0000">*</FONT><B>Opening
+            account balance:</B></TD>
+            <TD colspan="2" align="right">$<B> </B><INPUT size="20" type="text"
+                name="money" value='<%= money==null ? "10000" : money %>'></TD>
+        </TR>
+        <TR>
+            <TD colspan="4" align="right"><B><FONT COLOR="#FF0000">*</FONT>Credit
+            card number:</B></TD>
+            <TD colspan="2" align="right">&nbsp;&nbsp;<INPUT size="40"
+                type="text" name="Credit Card Number"
+                value="<%= creditcard==null ? fakeCC : creditcard %>" readonly></TD>
+        </TR>
+        <TR>
+            <TD align="center"></TD>
+            <TD align="center"></TD>
+            <TD align="center"></TD>
+            <TD align="center"></TD>
+            <TD align="center"></TD>
+            <TD align="center"><INPUT type="submit" value="Submit Registration"></TD>
+        </TR>
+        <TR>
+            <TD align="right" colspan="6"></TD>
+        </TR>
+    </TBODY>
+</TABLE>
+<INPUT type="hidden" name="action" value="register"></FORM>
+<TABLE height="54" style="font-size: smaller">
+    <TBODY>
+        <TR>
+            <TD colspan="2">
+            <HR>
+            </TD>
+        </TR>
+        <TR>
+            <TD colspan="2"></TD>
+        </TR>
+        <TR>
+            <TD bgcolor="#c93333" align="left" width="640" height="10"><B><FONT
+                color="#ffffff">DayTrader Home</FONT></B></TD>
+            <TD align="center" bgcolor="#000000" width="100" height="10"><FONT
+                color="#ffffff"><B>DayTrader</B></FONT></TD>
+        </TR>
+    </TBODY>
+</TABLE>
+</BODY>
+</HTML>

Added: geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/runStats.jsp
URL: http://svn.apache.org/viewvc/geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/runStats.jsp?rev=1071543&view=auto
==============================================================================
--- geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/runStats.jsp (added)
+++ geronimo/daytrader/trunk/javaee6/modules/web/src/main/webapp/runStats.jsp Thu Feb 17 08:23:57 2011
@@ -0,0 +1,324 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<%--
+   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.
+--%>
+<HTML>
+<HEAD>
+<META http-equiv="Content-Style-Type" content="text/css">
+<TITLE>Welcome to Trade</TITLE>
+</HEAD>
+<BODY bgcolor="#ffffff" link="#000099">
+<%@ page import="org.apache.geronimo.daytrader.javaee6.utils.*"
+    session="false" isThreadSafe="true" isErrorPage="false"%>
+
+<jsp:useBean
+    class="org.apache.geronimo.daytrader.javaee6.core.RunStatsDataBean"
+    id="runStatsData" scope="request" />
+<% 
+double loginPercentage = (double) ((TradeConfig.getScenarioMixes())[TradeConfig.workloadMix][TradeConfig.LOGOUT_OP]) / 100.0;
+double logoutPercentage = (double) ((TradeConfig.getScenarioMixes())[TradeConfig.workloadMix][TradeConfig.LOGOUT_OP]) / 100.0;
+double buyOrderPercentage = (double) ((TradeConfig.getScenarioMixes())[TradeConfig.workloadMix][TradeConfig.BUY_OP]) / 100.0;
+double sellOrderPercentage = (double) ((TradeConfig.getScenarioMixes())[TradeConfig.workloadMix][TradeConfig.SELL_OP]) / 100.0;
+double orderPercentage = buyOrderPercentage + sellOrderPercentage;
+double registerPercentage = (double) ((TradeConfig.getScenarioMixes())[TradeConfig.workloadMix][TradeConfig.REGISTER_OP]) / 100.0;
+                                                            
+int logins = runStatsData.getSumLoginCount()-runStatsData.getTradeUserCount(); //account for each user being logged in up front
+if (logins < 0 ) logins = 0; //no requests before reset
+//double expectedRequests = ((double) logins) / loginPercentage;
+double expectedRequests = (double)TradeConfig.getScenarioCount();
+TradeConfig.setScenarioCount(0);
+
+int verifyPercent = TradeConfig.verifyPercent;
+%>
+<%!// verifies 2 values are w/in tradeConfig.verifyPercent percent
+String verify(double expected, double actual, int verifyPercent)
+{
+    String retVal = "";
+    if ( (expected==0.0) || (actual == 0.0) )
+        return "N/A";
+    double check = (actual / expected) * 100 - 100;
+    //PASS
+    retVal += check +"% ";
+    if ( (check>=(-1.0*verifyPercent)) && (check<=verifyPercent) )
+        retVal += " Pass";
+    else 
+        retVal += " Fail<SUP>4</SUP>";
+    if (check > 0.0)
+        retVal = "+" + retVal;
+//System.out.println("verify --- expected="+expected+" actual="+actual+ " check="+check);        
+    return retVal;
+}
+String verify(int expected, int actual, int verifyPercent)
+{
+    return verify((double)expected, (double)actual, verifyPercent);
+}
+%>
+<DIV align="left">
+
+<TABLE style="font-size: smaller">
+    <TBODY>
+        <TR>
+            <TD bgcolor="#c93333" align="left" width="640" height="10" colspan=5><B><FONT
+                color="#ffffff">DayTrader Scenario Runtime Statistics</FONT></B></TD>
+            <TD align="center" bgcolor="#000000" width="100" height="10"><FONT
+                color="#ffffff"><B>DayTrader</B></FONT></TD>
+        </TR>
+    </TBODY>
+</TABLE>
+<TABLE width="639" height="30">
+    <TBODY>
+        <TR>
+            <TD width="228"><B><FONT size="-1" color="#cc0000"><% 
+String status;
+status = (String) request.getAttribute("status");
+if ( status != null )out.print(status);
+%></FONT></B></TD>
+            <TD width="202"></TD>
+            <TD width="187" align="right"><FONT size="-1"><A href="config"
+                target="_self">Modify runtime configuration</A></FONT></TD>
+        </TR>
+    </TBODY>
+</TABLE>
+</DIV>
+<TABLE width="645">
+    <TBODY>
+        <TR>
+            <TD valign="top" width="643">
+            <TABLE width="100%">
+                <TBODY>
+                    <TR align="center">
+                        <TD colspan="6">
+                        <CENTER></CENTER>
+                        <TABLE border="1" style="font-size: smaller" cellpadding="2"
+                            cellspacing="0">
+                            <COL span="1" align="right">
+                            <COL span="1">
+                            <COL span="3" align="center">
+                            <CAPTION align="bottom"><FONT size="+1"><B>Benchmark scenario
+                            statistics</B></FONT></CAPTION>
+                            <TBODY>
+                                <TR bgcolor="#f3f3f3">
+                                    <TD colspan="2" align="center"><B>Benchmark runtime
+                                    configuration summary</B></TD>
+                                    <TD colspan="3"><B>Value </B></TD>
+                                </TR>
+                                <TR>
+                                    <TD colspan="2"><A href="docs/glossary.html">Run-Time Mode</A></TD>
+                                    <TD colspan="3"><B><%= (TradeConfig.getRunTimeModeNames())[TradeConfig.runTimeMode] %></B></TD>
+                                </TR>
+                                <TR>
+                                    <TD colspan="2"><A href="docs/glossary.html">Order-Processing
+                                    Mode</A></TD>
+                                    <TD colspan="3"><B><%= (TradeConfig.getOrderProcessingModeNames())[TradeConfig.orderProcessingMode]%></B></TD>
+                                </TR>
+                                <TR>
+                                    <TD colspan="2"><A href="docs/glossary.html">Scenario Workload
+                                    Mix</A></TD>
+                                    <TD colspan="3"><B><%= (TradeConfig.getWorkloadMixNames())[TradeConfig.workloadMix]%></B></TD>
+                                </TR>
+                                <TR>
+                                    <TD colspan="2"><A href="docs/glossary.html">Web Interface</A></TD>
+                                    <TD colspan="3"><B><%= (TradeConfig.getWebInterfaceNames())[TradeConfig.webInterface]%></B></TD>
+                                </TR>
+                                <TR>
+                                    <TD colspan="2"><A href="docs/glossary.html">Active Traders /
+                                    Trade User population</A></TD>
+                                    <TD colspan="3"><B><%= runStatsData.getTradeUserCount() %> / <%= TradeConfig.getMAX_USERS() %>
+                                    </B></TD>
+                                </TR>
+                                <TR>
+                                    <TD colspan="2"><A href="docs/glossary.html">Active Stocks /
+                                    Trade Stock population</A></TD>
+                                    <TD colspan="3"><B><%= TradeConfig.getMAX_QUOTES() %> / <%= runStatsData.getTradeStockCount() %></B></TD>
+                                </TR>
+                                <TR>
+                                    <TD colspan="5" align="center" bgcolor="#f3f3f3"><B>Benchmark
+                                    scenario verification</B></TD>
+                                </TR>
+                                <TR bgcolor="#fafcb6" align="center">
+                                    <TD width="109"><B>Run Statistic</B></TD>
+                                    <TD><B>Scenario verification test</B></TD>
+                                    <TD><B>Expected Value</B></TD>
+                                    <TD width="25"><B>Actual Value</B></TD>
+                                    <TD><B>Pass/Fail</B></TD>
+                                </TR>
+                                <TR>
+                                    <TD>Active Stocks</TD>
+                                    <TD>Active stocks should generally equal the db population of
+                                    stocks</TD>
+                                    <TD><%= runStatsData.getTradeStockCount() %></TD>
+                                    <TD><B><%= TradeConfig.getMAX_QUOTES() %></B></TD>
+                                    <TD><%= ( runStatsData.getTradeStockCount() == TradeConfig.getMAX_QUOTES() ) ? "Pass":"Warn" %></TD>
+                                </TR>
+                                <TR bgcolor="#ffffff">
+                                    <TD><A href="docs/glossary.html">Active Traders</A></TD>
+                                    <TD>Active traders should generally equal the db population of
+                                    traders</TD>
+                                    <TD><%= runStatsData.getTradeUserCount() %></TD>
+                                    <TD><B><%= TradeConfig.getMAX_USERS() %></B></TD>
+                                    <TD><%= ( runStatsData.getTradeUserCount() == TradeConfig.getMAX_USERS() ) ? "Pass":"Warn" %></TD>
+                                </TR>
+                                <TR>
+                                    <TD><A href="docs/glossary.html">Estimated total requests</A></TD>
+                                    <TD>Actual benchmark scenario requests should be within +/- 2%
+                                    of the estimated number of requests in the last benchmark run
+                                    to pass.</TD>
+                                    <TD><%= expectedRequests %></TD>
+                                    <TD><B>see</B><B><SUP>2</SUP></B></TD>
+                                    <TD>see<SUP>2</SUP></TD>
+                                </TR>
+                                <TR>
+                                    <TD><A href="docs/glossary.html">New Users Registered </A></TD>
+                                    <TD><%= registerPercentage * 100 %>% of expected requests (<%= registerPercentage%>
+                                    * <%= expectedRequests %> )</TD>
+                                    <TD><%= registerPercentage * expectedRequests %></TD>
+                                    <TD><B><%= runStatsData.getNewUserCount() %></B></TD>
+                                    <TD><%= verify(registerPercentage * expectedRequests, (double)runStatsData.getNewUserCount(), verifyPercent) %></TD>
+                                </TR>
+                                <TR>
+                                    <TD><A href="docs/glossary.html">Logins </A></TD>
+                                    <TD><%= loginPercentage * 100 %>% of expected requests (<%= loginPercentage%>
+                                    * <%= expectedRequests %> ) + initial login</TD>
+                                    <TD><%= loginPercentage * expectedRequests + runStatsData.getTradeUserCount()  %></TD>
+                                    <TD><B><%= runStatsData.getSumLoginCount() + runStatsData.getTradeUserCount()  %></B></TD>
+                                    <TD><%= verify((double)loginPercentage * expectedRequests, (double)runStatsData.getSumLoginCount(), verifyPercent)%></TD>
+                                </TR>
+                                <TR>
+                                    <TD><A href="docs/glossary.html">Logouts </A></TD>
+                                    <TD>#logouts must be &gt;= #logins-active traders ( <%= runStatsData.getSumLoginCount() %>
+                                    - <%= TradeConfig.getMAX_USERS() %> )</TD>
+                                    <TD><%= runStatsData.getSumLoginCount()- TradeConfig.getMAX_USERS() %></TD>
+                                    <TD><B><%= runStatsData.getSumLogoutCount() %></B></TD>
+                                    <TD><%= (runStatsData.getSumLogoutCount() >= (runStatsData.getSumLoginCount()- TradeConfig.getMAX_USERS())) ? "Pass" : "Fail<SUP>4</SUP>" %>
+                                    </TD>
+                                </TR>
+                                <TR>
+                                    <TD><A href="docs/glossary.html">User Holdings </A></TD>
+                                    <TD>Trade users own an average of 5 holdings, 5* total Users =
+                                    ( 5 * <%= runStatsData.getTradeUserCount() %>)</TD>
+                                    <TD><%= 5 * runStatsData.getTradeUserCount() %></TD>
+                                    <TD><B><%= runStatsData.getHoldingCount() %></B></TD>
+                                    <TD><%= verify( 5 * runStatsData.getTradeUserCount(), runStatsData.getHoldingCount(), verifyPercent ) %></TD>
+                                </TR>
+                                <TR>
+                                    <TD><A href="docs/glossary.html">Buy Order Count </A></TD>
+                                    <TD><%= buyOrderPercentage * 100 %>% of expected requests (<%= buyOrderPercentage%>
+                                    * <%= expectedRequests %> ) + current holdings count</TD>
+                                    <TD><%= buyOrderPercentage * expectedRequests + runStatsData.getHoldingCount() %></TD>
+                                    <TD><B><%= runStatsData.getBuyOrderCount() %></B></TD>
+                                    <TD><%= verify(buyOrderPercentage * expectedRequests + runStatsData.getHoldingCount() , (double)runStatsData.getBuyOrderCount(), verifyPercent)%></TD>
+                                </TR>
+                                <TR>
+                                    <TD><A href="docs/glossary.html">Sell Order Count </A></TD>
+                                    <TD><%= sellOrderPercentage * 100 %>% of expected requests (<%= sellOrderPercentage%>
+                                    * <%= expectedRequests %> )</TD>
+                                    <TD><%= sellOrderPercentage * expectedRequests %></TD>
+                                    <TD><B><%= runStatsData.getSellOrderCount() %></B></TD>
+                                    <TD><%= verify(sellOrderPercentage * expectedRequests, (double)runStatsData.getSellOrderCount(), verifyPercent)%></TD>
+                                </TR>
+                                <TR>
+                                    <TD><A href="docs/glossary.html">Total Order Count </A></TD>
+                                    <TD><%= orderPercentage * 100 %>% of expected requests (<%= orderPercentage%>
+                                    * <%= expectedRequests %> ) + current holdings count</TD>
+                                    <TD><%= orderPercentage * expectedRequests + runStatsData.getHoldingCount() %></TD>
+                                    <TD><B><%= runStatsData.getOrderCount() %></B></TD>
+                                    <TD><%= verify(orderPercentage * expectedRequests + runStatsData.getHoldingCount(), (double)runStatsData.getOrderCount(), verifyPercent)%></TD>
+                                </TR>
+                                <TR>
+                                    <TD><A href="docs/glossary.html">Open Orders </A></TD>
+                                    <TD>All orders should be completed before reset<SUP>3</SUP></TD>
+                                    <TD>0</TD>
+                                    <TD><B><%= runStatsData.getOpenOrderCount() %></B></TD>
+                                    <TD><%= (runStatsData.getOpenOrderCount() > 0) ? "Fail<SUP>4</SUP>" : "Pass" %></TD>
+                                </TR>
+                                <TR>
+                                    <TD><A href="docs/glossary.html">Cancelled Orders </A></TD>
+                                    <TD>Orders are cancelled if an error is encountered during
+                                    order processing.</TD>
+                                    <TD>0</TD>
+                                    <TD><B><%= runStatsData.getCancelledOrderCount() %></B></TD>
+                                    <TD><%= (runStatsData.getCancelledOrderCount() > 0) ? "Fail<SUP>4</SUP>" : "Pass" %></TD>
+                                </TR>
+                                <TR>
+                                    <TD><A href="docs/glossary.html">Orders remaining after reset </A></TD>
+                                    <TD>After Trade reset, each user should carry an average of 5
+                                    orders in the database. 5* total Users = (5 * <%= runStatsData.getTradeUserCount() %>)</TD>
+                                    <TD><%= 5 * runStatsData.getTradeUserCount() %></TD>
+                                    <TD><B><%= runStatsData.getOrderCount()-runStatsData.getDeletedOrderCount() %></B></TD>
+                                    <TD><%=  verify( 5 * runStatsData.getTradeUserCount(), runStatsData.getOrderCount()-runStatsData.getDeletedOrderCount(), verifyPercent ) %></TD>
+                                </TR>
+                            </TBODY>
+                        </TABLE>
+                        <CENTER>
+                        <DIV align="left"></DIV>
+                        </CENTER>
+                        </TD>
+                    </TR>
+                    <TR>
+                        <TD colspan="6">
+                        <OL>
+                            <LI><FONT size="-1"> Benchmark verification tests require a Trade
+                            Reset between each benchmark run.</FONT></LI>
+                            <LI><FONT size="-1">The expected value of benchmark requests is
+                            computed based on the the count from the Web application since
+                            the last Trade reset.The actual value of benchmark request
+                            requires user verification and may be incorrect for a cluster.</FONT></LI>
+                            <LI><FONT size="-1">Orders are processed asynchronously in Trade.
+                            Therefore, processing may continue beyond the end of a benchmark
+                            run. Trade Reset should not be invoked until processing is
+                            completed.</FONT></LI>
+                            <LI><FONT size="-1">Actual values must be within</FONT><FONT
+                                size="-1" color="#cc0000"><FONT size="-1" color="#cc0000"><B> <FONT
+                                size="-1" color="#cc0000"><%= TradeConfig.verifyPercent %></FONT>%
+                            </B></FONT></FONT><FONT size="-1">of corresponding estimated
+                            values to pass verification.</FONT></LI>
+                        </OL>
+                        </TD>
+                    </TR>
+                </TBODY>
+            </TABLE>
+            </TD>
+        </TR>
+    </TBODY>
+</TABLE>
+<FORM action="config" method="POST"><INPUT type="hidden" name="action"
+    value="updateConfig">
+<TABLE height="54" style="font-size: smaller">
+    <TBODY>
+        <TR>
+            <TD colspan="2">
+            <HR>
+            </TD>
+        </TR>
+        <TR>
+            <TD colspan="2"></TD>
+        </TR>
+        <TR>
+            <TD bgcolor="#c93333" align="left" width="640" height="10" colspan=5><B><FONT
+                color="#ffffff">DayTrader Scenario Runtime Statistics</FONT></B></TD>
+            <TD align="center" bgcolor="#000000" width="100" height="10"><FONT
+                color="#ffffff"><B>DayTrader</B></FONT></TD>
+        </TR>
+        <TR>
+            <TD colspan="2" align="center">Apache Geronimo Performance Benchmark
+            Sample DayTrader<BR>
+            Copyright 2005, Apache Software Foundation</TD>
+        </TR>
+    </TBODY>
+</TABLE>
+</FORM>
+</BODY>
+</HTML>



Mime
View raw message