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 2009/08/28 21:52:14 UTC
svn commit: r809008 [4/7] - in /geronimo/daytrader/trunk: assemblies/
assemblies/daytrader-javaee/ assemblies/daytrader-javaee/src/
assemblies/daytrader-javaee/src/main/
assemblies/daytrader-javaee/src/main/resources/
assemblies/daytrader-javaee/src/ma...
Added: geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/WEB-INF/wsdl/TradeServices.wsdl
URL: http://svn.apache.org/viewvc/geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/WEB-INF/wsdl/TradeServices.wsdl?rev=809008&view=auto
==============================================================================
--- geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/WEB-INF/wsdl/TradeServices.wsdl (added)
+++ geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/WEB-INF/wsdl/TradeServices.wsdl Fri Aug 28 19:52:10 2009
@@ -0,0 +1,1303 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<wsdl:definitions targetNamespace="http://daytrader.samples.geronimo.apache.org"
+ xmlns:impl="http://daytrader.samples.geronimo.apache.org"
+ xmlns:intf="http://daytrader.samples.geronimo.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <wsdl:types>
+ <schema elementFormDefault="qualified"
+ targetNamespace="http://daytrader.samples.geronimo.apache.org"
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:impl="http://daytrader.samples.geronimo.apache.org"
+ xmlns:intf="http://daytrader.samples.geronimo.apache.org"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <element name="getMarketSummary">
+ <complexType>
+ <sequence/>
+ </complexType>
+ </element>
+ <complexType name="MarketSummaryDataBeanWS">
+ <sequence>
+ <element name="TSIA" nillable="true" type="xsd:decimal"/>
+ <element name="openTSIA" nillable="true" type="xsd:decimal"/>
+ <element name="volume" type="xsd:double"/>
+ <element name="topGainers" nillable="true" type="impl:ArrayOfQuoteDataBean"/>
+ <element name="topLosers" nillable="true" type="impl:ArrayOfQuoteDataBean"/>
+ <element name="summaryDate" nillable="true" type="xsd:dateTime"/>
+ </sequence>
+ </complexType>
+ <complexType name="QuoteDataBean">
+ <sequence>
+ <element name="symbol" nillable="true" type="xsd:string"/>
+ <element name="companyName" nillable="true" type="xsd:string"/>
+ <element name="price" nillable="true" type="xsd:decimal"/>
+ <element name="open" nillable="true" type="xsd:decimal"/>
+ <element name="low" nillable="true" type="xsd:decimal"/>
+ <element name="high" nillable="true" type="xsd:decimal"/>
+ <element name="change" type="xsd:double"/>
+ <element name="volume" type="xsd:double"/>
+ </sequence>
+ </complexType>
+ <complexType name="ArrayOfQuoteDataBean">
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" name="QuoteDataBean" nillable="true" type="impl:QuoteDataBean"/>
+ </sequence>
+ </complexType>
+ <element name="getMarketSummaryResponse">
+ <complexType>
+ <sequence>
+ <element name="getMarketSummaryReturn" nillable="true" type="impl:MarketSummaryDataBeanWS"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="buy">
+ <complexType>
+ <sequence>
+ <element name="userID" nillable="true" type="xsd:string"/>
+ <element name="symbol" nillable="true" type="xsd:string"/>
+ <element name="quantity" type="xsd:double"/>
+ <element name="orderProcessingMode" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <complexType name="OrderDataBean">
+ <sequence>
+ <element name="orderID" nillable="true" type="xsd:int"/>
+ <element name="orderType" nillable="true" type="xsd:string"/>
+ <element name="orderStatus" nillable="true" type="xsd:string"/>
+ <element name="openDate" nillable="true" type="xsd:dateTime"/>
+ <element name="completionDate" nillable="true" type="xsd:dateTime"/>
+ <element name="quantity" type="xsd:double"/>
+ <element name="price" nillable="true" type="xsd:decimal"/>
+ <element name="orderFee" nillable="true" type="xsd:decimal"/>
+ <element name="symbol" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ <element name="buyResponse">
+ <complexType>
+ <sequence>
+ <element name="buyReturn" nillable="true" type="impl:OrderDataBean"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="sell">
+ <complexType>
+ <sequence>
+ <element name="userID" nillable="true" type="xsd:string"/>
+ <element name="holdingID" nillable="true" type="xsd:int"/>
+ <element name="orderProcessingMode" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="sellResponse">
+ <complexType>
+ <sequence>
+ <element name="sellReturn" nillable="true" type="impl:OrderDataBean"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="queueOrder">
+ <complexType>
+ <sequence>
+ <element name="orderID" nillable="true" type="xsd:int"/>
+ <element name="twoPhase" type="xsd:boolean"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="queueOrderResponse">
+ <complexType>
+ <sequence/>
+ </complexType>
+ </element>
+ <element name="completeOrder">
+ <complexType>
+ <sequence>
+ <element name="orderID" nillable="true" type="xsd:int"/>
+ <element name="twoPhase" type="xsd:boolean"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="completeOrderResponse">
+ <complexType>
+ <sequence>
+ <element name="completeOrderReturn" nillable="true" type="impl:OrderDataBean"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="cancelOrder">
+ <complexType>
+ <sequence>
+ <element name="orderID" nillable="true" type="xsd:int"/>
+ <element name="twoPhase" type="xsd:boolean"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="cancelOrderResponse">
+ <complexType>
+ <sequence/>
+ </complexType>
+ </element>
+ <element name="orderCompleted">
+ <complexType>
+ <sequence>
+ <element name="userID" nillable="true" type="xsd:string"/>
+ <element name="orderID" nillable="true" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="orderCompletedResponse">
+ <complexType>
+ <sequence/>
+ </complexType>
+ </element>
+ <element name="getOrders">
+ <complexType>
+ <sequence>
+ <element name="userID" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <complexType name="ArrayOfOrderDataBean">
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" name="OrderDataBean" nillable="true" type="impl:OrderDataBean"/>
+ </sequence>
+ </complexType>
+ <element name="getOrdersResponse">
+ <complexType>
+ <sequence>
+ <element name="getOrdersReturn" nillable="true" type="impl:ArrayOfOrderDataBean"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="getClosedOrders">
+ <complexType>
+ <sequence>
+ <element name="userID" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="getClosedOrdersResponse">
+ <complexType>
+ <sequence>
+ <element name="getClosedOrdersReturn" nillable="true" type="impl:ArrayOfOrderDataBean"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="createQuote">
+ <complexType>
+ <sequence>
+ <element name="symbol" nillable="true" type="xsd:string"/>
+ <element name="companyName" nillable="true" type="xsd:string"/>
+ <element name="price" nillable="true" type="xsd:decimal"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="createQuoteResponse">
+ <complexType>
+ <sequence>
+ <element name="createQuoteReturn" nillable="true" type="impl:QuoteDataBean"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="getQuote">
+ <complexType>
+ <sequence>
+ <element name="symbol" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="getQuoteResponse">
+ <complexType>
+ <sequence>
+ <element name="getQuoteReturn" nillable="true" type="impl:QuoteDataBean"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="getAllQuotes">
+ <complexType>
+ <sequence/>
+ </complexType>
+ </element>
+ <element name="getAllQuotesResponse">
+ <complexType>
+ <sequence>
+ <element name="getAllQuotesReturn" nillable="true" type="impl:ArrayOfQuoteDataBean"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="updateQuotePriceVolume">
+ <complexType>
+ <sequence>
+ <element name="symbol" nillable="true" type="xsd:string"/>
+ <element name="newPrice" nillable="true" type="xsd:decimal"/>
+ <element name="sharesTraded" type="xsd:double"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="updateQuotePriceVolumeResponse">
+ <complexType>
+ <sequence>
+ <element name="updateQuotePriceVolumeReturn" nillable="true" type="impl:QuoteDataBean"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="getHoldings">
+ <complexType>
+ <sequence>
+ <element name="userID" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <complexType name="HoldingDataBean">
+ <sequence>
+ <element name="holdingID" nillable="true" type="xsd:int"/>
+ <element name="quantity" type="xsd:double"/>
+ <element name="purchasePrice" nillable="true" type="xsd:decimal"/>
+ <element name="purchaseDate" nillable="true" type="xsd:dateTime"/>
+ <element name="quoteID" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ <complexType name="ArrayOfHoldingDataBean">
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" name="HoldingDataBean" nillable="true" type="impl:HoldingDataBean"/>
+ </sequence>
+ </complexType>
+ <element name="getHoldingsResponse">
+ <complexType>
+ <sequence>
+ <element name="getHoldingsReturn" nillable="true" type="impl:ArrayOfHoldingDataBean"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="getHolding">
+ <complexType>
+ <sequence>
+ <element name="holdingID" nillable="true" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="getHoldingResponse">
+ <complexType>
+ <sequence>
+ <element name="getHoldingReturn" nillable="true" type="impl:HoldingDataBean"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="getAccountData">
+ <complexType>
+ <sequence>
+ <element name="userID" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <complexType name="AccountDataBean">
+ <sequence>
+ <element name="accountID" nillable="true" type="xsd:int"/>
+ <element name="loginCount" type="xsd:int"/>
+ <element name="logoutCount" type="xsd:int"/>
+ <element name="lastLogin" nillable="true" type="xsd:dateTime"/>
+ <element name="creationDate" nillable="true" type="xsd:dateTime"/>
+ <element name="balance" nillable="true" type="xsd:decimal"/>
+ <element name="openBalance" nillable="true" type="xsd:decimal"/>
+ <element name="profileID" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ <element name="getAccountDataResponse">
+ <complexType>
+ <sequence>
+ <element name="getAccountDataReturn" nillable="true" type="impl:AccountDataBean"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="getAccountProfileData">
+ <complexType>
+ <sequence>
+ <element name="userID" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <complexType name="AccountProfileDataBean">
+ <sequence>
+ <element name="userID" nillable="true" type="xsd:string"/>
+ <element name="password" nillable="true" type="xsd:string"/>
+ <element name="fullName" nillable="true" type="xsd:string"/>
+ <element name="address" nillable="true" type="xsd:string"/>
+ <element name="email" nillable="true" type="xsd:string"/>
+ <element name="creditCard" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ <element name="getAccountProfileDataResponse">
+ <complexType>
+ <sequence>
+ <element name="getAccountProfileDataReturn" nillable="true" type="impl:AccountProfileDataBean"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="updateAccountProfile">
+ <complexType>
+ <sequence>
+ <element name="profileData" nillable="true" type="impl:AccountProfileDataBean"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="updateAccountProfileResponse">
+ <complexType>
+ <sequence>
+ <element name="updateAccountProfileReturn" nillable="true" type="impl:AccountProfileDataBean"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="login">
+ <complexType>
+ <sequence>
+ <element name="userID" nillable="true" type="xsd:string"/>
+ <element name="password" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="loginResponse">
+ <complexType>
+ <sequence>
+ <element name="loginReturn" nillable="true" type="impl:AccountDataBean"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="logout">
+ <complexType>
+ <sequence>
+ <element name="userID" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="logoutResponse">
+ <complexType>
+ <sequence/>
+ </complexType>
+ </element>
+ <element name="register">
+ <complexType>
+ <sequence>
+ <element name="userID" nillable="true" type="xsd:string"/>
+ <element name="password" nillable="true" type="xsd:string"/>
+ <element name="fullname" nillable="true" type="xsd:string"/>
+ <element name="address" nillable="true" type="xsd:string"/>
+ <element name="email" nillable="true" type="xsd:string"/>
+ <element name="creditcard" nillable="true" type="xsd:string"/>
+ <element name="openBalance" nillable="true" type="xsd:decimal"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="registerResponse">
+ <complexType>
+ <sequence>
+ <element name="registerReturn" nillable="true" type="impl:AccountDataBean"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="resetTrade">
+ <complexType>
+ <sequence>
+ <element name="deleteAll" type="xsd:boolean"/>
+ </sequence>
+ </complexType>
+ </element>
+ <complexType name="RunStatsDataBean">
+ <sequence>
+ <element name="tradeUserCount" type="xsd:int"/>
+ <element name="newUserCount" type="xsd:int"/>
+ <element name="sumLoginCount" type="xsd:int"/>
+ <element name="sumLogoutCount" type="xsd:int"/>
+ <element name="holdingCount" type="xsd:int"/>
+ <element name="buyOrderCount" type="xsd:int"/>
+ <element name="sellOrderCount" type="xsd:int"/>
+ <element name="cancelledOrderCount" type="xsd:int"/>
+ <element name="openOrderCount" type="xsd:int"/>
+ <element name="deletedOrderCount" type="xsd:int"/>
+ <element name="orderCount" type="xsd:int"/>
+ <element name="tradeStockCount" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ <element name="resetTradeResponse">
+ <complexType>
+ <sequence>
+ <element name="resetTradeReturn" nillable="true" type="impl:RunStatsDataBean"/>
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </wsdl:types>
+
+ <wsdl:message name="createQuoteRequest">
+
+ <wsdl:part element="impl:createQuote" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="loginRequest">
+
+ <wsdl:part element="impl:login" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="createQuoteResponse">
+
+ <wsdl:part element="impl:createQuoteResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="buyResponse">
+
+ <wsdl:part element="impl:buyResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="buyRequest">
+
+ <wsdl:part element="impl:buy" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="cancelOrderRequest">
+
+ <wsdl:part element="impl:cancelOrder" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="sellResponse">
+
+ <wsdl:part element="impl:sellResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="queueOrderResponse">
+
+ <wsdl:part element="impl:queueOrderResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="updateAccountProfileResponse">
+
+ <wsdl:part element="impl:updateAccountProfileResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="registerResponse">
+
+ <wsdl:part element="impl:registerResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getClosedOrdersResponse">
+
+ <wsdl:part element="impl:getClosedOrdersResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="resetTradeRequest">
+
+ <wsdl:part element="impl:resetTrade" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="orderCompletedRequest">
+
+ <wsdl:part element="impl:orderCompleted" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getOrdersResponse">
+
+ <wsdl:part element="impl:getOrdersResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="orderCompletedResponse">
+
+ <wsdl:part element="impl:orderCompletedResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getHoldingsResponse">
+
+ <wsdl:part element="impl:getHoldingsResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="logoutRequest">
+
+ <wsdl:part element="impl:logout" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getAllQuotesResponse">
+
+ <wsdl:part element="impl:getAllQuotesResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getAccountProfileDataResponse">
+
+ <wsdl:part element="impl:getAccountProfileDataResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="updateAccountProfileRequest">
+
+ <wsdl:part element="impl:updateAccountProfile" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getOrdersRequest">
+
+ <wsdl:part element="impl:getOrders" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getHoldingsRequest">
+
+ <wsdl:part element="impl:getHoldings" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getClosedOrdersRequest">
+
+ <wsdl:part element="impl:getClosedOrders" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getMarketSummaryResponse">
+
+ <wsdl:part element="impl:getMarketSummaryResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="registerRequest">
+
+ <wsdl:part element="impl:register" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="loginResponse">
+
+ <wsdl:part element="impl:loginResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="queueOrderRequest">
+
+ <wsdl:part element="impl:queueOrder" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getHoldingResponse">
+
+ <wsdl:part element="impl:getHoldingResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="sellRequest">
+
+ <wsdl:part element="impl:sell" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="updateQuotePriceVolumeRequest">
+
+ <wsdl:part element="impl:updateQuotePriceVolume" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getAccountDataRequest">
+
+ <wsdl:part element="impl:getAccountData" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getAccountProfileDataRequest">
+
+ <wsdl:part element="impl:getAccountProfileData" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="resetTradeResponse">
+
+ <wsdl:part element="impl:resetTradeResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="updateQuotePriceVolumeResponse">
+
+ <wsdl:part element="impl:updateQuotePriceVolumeResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="cancelOrderResponse">
+
+ <wsdl:part element="impl:cancelOrderResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getHoldingRequest">
+
+ <wsdl:part element="impl:getHolding" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getMarketSummaryRequest">
+
+ <wsdl:part element="impl:getMarketSummary" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getQuoteRequest">
+
+ <wsdl:part element="impl:getQuote" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="logoutResponse">
+
+ <wsdl:part element="impl:logoutResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getAllQuotesRequest">
+
+ <wsdl:part element="impl:getAllQuotes" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getQuoteResponse">
+
+ <wsdl:part element="impl:getQuoteResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="getAccountDataResponse">
+
+ <wsdl:part element="impl:getAccountDataResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="completeOrderResponse">
+
+ <wsdl:part element="impl:completeOrderResponse" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:message name="completeOrderRequest">
+
+ <wsdl:part element="impl:completeOrder" name="parameters"/>
+
+ </wsdl:message>
+
+ <wsdl:portType name="TradeWSServices">
+
+ <wsdl:operation name="getMarketSummary">
+
+ <wsdl:input message="impl:getMarketSummaryRequest" name="getMarketSummaryRequest"/>
+
+ <wsdl:output message="impl:getMarketSummaryResponse" name="getMarketSummaryResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="buy">
+
+ <wsdl:input message="impl:buyRequest" name="buyRequest"/>
+
+ <wsdl:output message="impl:buyResponse" name="buyResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="sell">
+
+ <wsdl:input message="impl:sellRequest" name="sellRequest"/>
+
+ <wsdl:output message="impl:sellResponse" name="sellResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="queueOrder">
+
+ <wsdl:input message="impl:queueOrderRequest" name="queueOrderRequest"/>
+
+ <wsdl:output message="impl:queueOrderResponse" name="queueOrderResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="completeOrder">
+
+ <wsdl:input message="impl:completeOrderRequest" name="completeOrderRequest"/>
+
+ <wsdl:output message="impl:completeOrderResponse" name="completeOrderResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="cancelOrder">
+
+ <wsdl:input message="impl:cancelOrderRequest" name="cancelOrderRequest"/>
+
+ <wsdl:output message="impl:cancelOrderResponse" name="cancelOrderResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="orderCompleted">
+
+ <wsdl:input message="impl:orderCompletedRequest" name="orderCompletedRequest"/>
+
+ <wsdl:output message="impl:orderCompletedResponse" name="orderCompletedResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="getOrders">
+
+ <wsdl:input message="impl:getOrdersRequest" name="getOrdersRequest"/>
+
+ <wsdl:output message="impl:getOrdersResponse" name="getOrdersResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="getClosedOrders">
+
+ <wsdl:input message="impl:getClosedOrdersRequest" name="getClosedOrdersRequest"/>
+
+ <wsdl:output message="impl:getClosedOrdersResponse" name="getClosedOrdersResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="createQuote">
+
+ <wsdl:input message="impl:createQuoteRequest" name="createQuoteRequest"/>
+
+ <wsdl:output message="impl:createQuoteResponse" name="createQuoteResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="getQuote">
+
+ <wsdl:input message="impl:getQuoteRequest" name="getQuoteRequest"/>
+
+ <wsdl:output message="impl:getQuoteResponse" name="getQuoteResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="getAllQuotes">
+
+ <wsdl:input message="impl:getAllQuotesRequest" name="getAllQuotesRequest"/>
+
+ <wsdl:output message="impl:getAllQuotesResponse" name="getAllQuotesResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="updateQuotePriceVolume">
+
+ <wsdl:input message="impl:updateQuotePriceVolumeRequest" name="updateQuotePriceVolumeRequest"/>
+
+ <wsdl:output message="impl:updateQuotePriceVolumeResponse" name="updateQuotePriceVolumeResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="getHoldings">
+
+ <wsdl:input message="impl:getHoldingsRequest" name="getHoldingsRequest"/>
+
+ <wsdl:output message="impl:getHoldingsResponse" name="getHoldingsResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="getHolding">
+
+ <wsdl:input message="impl:getHoldingRequest" name="getHoldingRequest"/>
+
+ <wsdl:output message="impl:getHoldingResponse" name="getHoldingResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="getAccountData">
+
+ <wsdl:input message="impl:getAccountDataRequest" name="getAccountDataRequest"/>
+
+ <wsdl:output message="impl:getAccountDataResponse" name="getAccountDataResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="getAccountProfileData">
+
+ <wsdl:input message="impl:getAccountProfileDataRequest" name="getAccountProfileDataRequest"/>
+
+ <wsdl:output message="impl:getAccountProfileDataResponse" name="getAccountProfileDataResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="updateAccountProfile">
+
+ <wsdl:input message="impl:updateAccountProfileRequest" name="updateAccountProfileRequest"/>
+
+ <wsdl:output message="impl:updateAccountProfileResponse" name="updateAccountProfileResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="login">
+
+ <wsdl:input message="impl:loginRequest" name="loginRequest"/>
+
+ <wsdl:output message="impl:loginResponse" name="loginResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="logout">
+
+ <wsdl:input message="impl:logoutRequest" name="logoutRequest"/>
+
+ <wsdl:output message="impl:logoutResponse" name="logoutResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="register">
+
+ <wsdl:input message="impl:registerRequest" name="registerRequest"/>
+
+ <wsdl:output message="impl:registerResponse" name="registerResponse"/>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="resetTrade">
+
+ <wsdl:input message="impl:resetTradeRequest" name="resetTradeRequest"/>
+
+ <wsdl:output message="impl:resetTradeResponse" name="resetTradeResponse"/>
+
+ </wsdl:operation>
+
+ </wsdl:portType>
+
+ <wsdl:binding name="TradeWSServicesSoapBinding" type="impl:TradeWSServices">
+
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <wsdl:operation name="getMarketSummary">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="getMarketSummaryRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="getMarketSummaryResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="buy">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="buyRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="buyResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="sell">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="sellRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="sellResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="queueOrder">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="queueOrderRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="queueOrderResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="completeOrder">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="completeOrderRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="completeOrderResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="cancelOrder">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="cancelOrderRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="cancelOrderResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="orderCompleted">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="orderCompletedRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="orderCompletedResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="getOrders">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="getOrdersRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="getOrdersResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="getClosedOrders">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="getClosedOrdersRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="getClosedOrdersResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="createQuote">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="createQuoteRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="createQuoteResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="getQuote">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="getQuoteRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="getQuoteResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="getAllQuotes">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="getAllQuotesRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="getAllQuotesResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="updateQuotePriceVolume">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="updateQuotePriceVolumeRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="updateQuotePriceVolumeResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="getHoldings">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="getHoldingsRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="getHoldingsResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="getHolding">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="getHoldingRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="getHoldingResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="getAccountData">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="getAccountDataRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="getAccountDataResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="getAccountProfileData">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="getAccountProfileDataRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="getAccountProfileDataResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="updateAccountProfile">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="updateAccountProfileRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="updateAccountProfileResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="login">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="loginRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="loginResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="logout">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="logoutRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="logoutResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="register">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="registerRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="registerResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ <wsdl:operation name="resetTrade">
+
+ <wsdlsoap:operation soapAction=""/>
+
+ <wsdl:input name="resetTradeRequest">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:input>
+
+ <wsdl:output name="resetTradeResponse">
+
+ <wsdlsoap:body use="literal"/>
+
+ </wsdl:output>
+
+ </wsdl:operation>
+
+ </wsdl:binding>
+
+ <wsdl:service name="Trade">
+
+ <wsdl:port binding="impl:TradeWSServicesSoapBinding" name="TradeWSServices">
+ <wsdlsoap:address location="http://localhost:8080/daytrader/services/TradeWSServices"/>
+ </wsdl:port>
+
+ </wsdl:service>
+
+</wsdl:definitions>
Propchange: geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/WEB-INF/wsdl/TradeServices.wsdl
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/account.jsp
URL: http://svn.apache.org/viewvc/geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/account.jsp?rev=809008&view=auto
==============================================================================
--- geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/account.jsp (added)
+++ geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/account.jsp Fri Aug 28 19:52:10 2009
@@ -0,0 +1,320 @@
+<!--
+ 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 Account information</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.math.BigDecimal,org.apache.geronimo.samples.daytrader.*,org.apache.geronimo.samples.daytrader.util.*"
+ session="true" isThreadSafe="true" isErrorPage="false"%>
+<jsp:useBean id="results" scope="request" type="java.lang.String" />
+<jsp:useBean id="accountData"
+ type="org.apache.geronimo.samples.daytrader.AccountDataBean"
+ scope="request" />
+<jsp:useBean id="accountProfileData"
+ type="org.apache.geronimo.samples.daytrader.AccountProfileDataBean"
+ scope="request" />
+<jsp:useBean id="orderDataBeans" 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 Account</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>
+ <%
+boolean showAllOrders = request.getParameter("showAllOrders") == null ? false
+ : true;
+ 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="620">
+ <TBODY>
+ <TR>
+ <TD valign="top" width="643">
+ <TABLE width="100%">
+ <TBODY>
+ <TR>
+ <TD colspan="8"><FONT color="#ff0000"><%=results%></FONT></TD>
+ </TR>
+ <TR>
+ <TD colspan="8" align="left" bgcolor="#cccccc"><B>Account
+ Information</B></TD>
+ </TR>
+ <TR>
+ <TD align="right" valign="bottom"><A href="docs/glossary.html">account
+ created:</A></TD>
+ <TD align="left" valign="bottom" colspan="2"><%=accountData.getCreationDate()%></TD>
+ <TD align="right" valign="bottom"><A href="docs/glossary.html">last
+ login: </A></TD>
+ <TD align="left" valign="bottom" colspan="3"><%=accountData.getLastLogin()%></TD>
+ <TD align="left" valign="bottom"></TD>
+ </TR>
+ <TR>
+ <TD align="right" valign="bottom"><A href="docs/glossary.html">account
+ ID</A></TD>
+ <TD valign="bottom"><%=accountData.getAccountID()%></TD>
+ <TD valign="bottom"></TD>
+ <TD align="right" valign="bottom"><A href="docs/glossary.html">total
+ logins: </A></TD>
+ <TD valign="bottom"><%=accountData.getLoginCount()%></TD>
+ <TD valign="bottom"></TD>
+ <TD align="right" valign="bottom"><A href="docs/glossary.html">cash
+ balance: </A></TD>
+ <TD valign="bottom"><%=accountData.getBalance()%></TD>
+ </TR>
+ <TR>
+ <TD align="right" valign="bottom"><A href="docs/glossary.html">user
+ ID:</A></TD>
+ <TD valign="bottom"><%=accountData.getProfileID()%></TD>
+ <TD valign="bottom"></TD>
+ <TD align="right" valign="bottom"><A href="docs/glossary.html">total
+ logouts: </A></TD>
+ <TD valign="bottom"><%=accountData.getLogoutCount()%></TD>
+ <TD valign="bottom"></TD>
+ <TD valign="bottom" align="right"><A href="docs/glossary.html">opening
+ balance: </A></TD>
+ <TD valign="bottom"><%=accountData.getOpenBalance()%></TD>
+ </TR>
+ <TR>
+ <TD colspan="8"></TD>
+ </TR>
+ </TBODY>
+ </TABLE>
+ <TABLE width="100%">
+ <TBODY>
+
+ <TR>
+ <TD colspan="5" bgcolor="#cccccc"><B>Total Orders: </B><%=orderDataBeans.size()%></TD>
+ <TD bgcolor="#cccccc" align="right"><B><A
+ href="app?action=account&showAllOrders=true">show all orders</A></B></TD>
+ </TR>
+ <TR align="center">
+ <TD colspan="6">
+ <TABLE border="1" style="font-size: smaller">
+ <CAPTION align="bottom"><B>Recent Orders</B></CAPTION>
+ <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>
+ <TD><A href="docs/glossary.html">price</A></TD>
+ <TD><A href="docs/glossary.html">total</A></TD>
+ </TR>
+ <%Iterator it = orderDataBeans.iterator();
+ int count = 0;
+ while (it.hasNext()) {
+ if ((showAllOrders == false) && (count++ >= 5))
+ break;
+ OrderDataBean orderData = (OrderDataBean) it.next();
+
+ %>
+ <TR bgcolor="#fafcb6" align="center">
+ <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>
+ <TD><%=orderData.getPrice()%></TD>
+ <TD><%=orderData.getPrice().multiply(
+ new BigDecimal(orderData.getQuantity()))%></TD>
+ </TR>
+ <%}
+
+ %>
+ </TBODY>
+ </TABLE>
+ </TD>
+ </TR>
+ <TR>
+ <TD colspan="6"></TD>
+ </TR>
+ </TBODY>
+ </TABLE>
+ <FORM>
+ <TABLE width="100%">
+ <TBODY>
+ <TR>
+ <TD colspan="6" bgcolor="#cccccc"><B>Account Profile</B></TD>
+ </TR>
+ <TR>
+ <TD align="right" valign="top" width="113"><A
+ href="docs/glossary.html">user ID:</A></TD>
+ <TD align="left" valign="top" colspan="2" width="228"><INPUT
+ size="30" type="text" maxlength="30" readonly name="userID"
+ value="<%= accountProfileData.getUserID() %>"></TD>
+ <TD align="right" valign="top" width="73" colspan="2"><A
+ href="docs/glossary.html">full name: </A></TD>
+ <TD align="left" valign="top"><INPUT size="30" type="text"
+ maxlength="30" name="fullname"
+ value="<%= accountProfileData.getFullName() %>"></TD>
+ </TR>
+ <TR>
+ <TD align="right" width="113"><A href="docs/glossary.html">password:
+ </A></TD>
+ <TD colspan="2" width="228"><INPUT size="30" type="password"
+ maxlength="30" name="password"
+ value="<%= accountProfileData.getPassword() %>"></TD>
+ <TD align="right" width="73" colspan="2"><A
+ href="docs/glossary.html">address: </A></TD>
+ <TD><INPUT size="30" type="text" maxlength="30" name="address"
+ value="<%= accountProfileData.getAddress() %>"></TD>
+ </TR>
+ <TR>
+ <TD align="right" width="113"><A href="docs/glossary.html">confirm
+ password: </A><BR>
+ </TD>
+ <TD colspan="2" align="left" width="228"><INPUT size="30"
+ type="password" maxlength="30" name="cpassword"
+ value="<%= accountProfileData.getPassword() %>"></TD>
+ <TD align="right" width="73" colspan="2"><A
+ href="docs/glossary.html">credit card: </A></TD>
+ <TD align="left"><INPUT size="30" type="text" maxlength="30"
+ name="creditcard"
+ value="<%= accountProfileData.getCreditCard() %>" readonly></TD>
+ </TR>
+ <TR>
+ <TD align="right" width="113"><A href="docs/glossary.html">email
+ address: </A></TD>
+ <TD colspan="2" align="left" width="228"><INPUT size="30"
+ type="text" maxlength="30" name="email"
+ value="<%= accountProfileData.getEmail() %>"></TD>
+ <TD align="right" width="73" colspan="2"></TD>
+ <TD align="center"><INPUT type="submit" name="action"
+ value="update_profile"></TD>
+ </TR>
+ <TR>
+ <TD width="113"></TD>
+ <TD colspan="5"></TD>
+ </TR>
+ </TBODY>
+ </TABLE>
+ </FORM>
+ </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"><B><FONT
+ color="#ffffff">DayTrader Account</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>
Propchange: geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/account.jsp
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/accountImg.jsp
URL: http://svn.apache.org/viewvc/geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/accountImg.jsp?rev=809008&view=auto
==============================================================================
--- geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/accountImg.jsp (added)
+++ geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/accountImg.jsp Fri Aug 28 19:52:10 2009
@@ -0,0 +1,335 @@
+<!--
+ 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>DayTrader Account Information</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.math.BigDecimal, org.apache.geronimo.samples.daytrader.*, org.apache.geronimo.samples.daytrader.util.*"
+ session="true" isThreadSafe="true" isErrorPage="false"%>
+<jsp:useBean id="results" scope="request" type="java.lang.String" />
+<jsp:useBean id="accountData"
+ type="org.apache.geronimo.samples.daytrader.AccountDataBean"
+ scope="request" />
+<jsp:useBean id="accountProfileData"
+ type="org.apache.geronimo.samples.daytrader.AccountProfileDataBean"
+ scope="request" />
+<jsp:useBean id="orderDataBeans" 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 Account</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&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=""><FONT color="#ff0000" size="-2"><BR>
+ <%= new java.util.Date() %></FONT></TD>
+ </TR>
+ <%
+boolean showAllOrders = request.getParameter("showAllOrders")==null?false:true;
+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="620">
+ <TBODY>
+ <TR>
+ <TD valign="top" width="643">
+ <TABLE width="100%">
+ <TBODY>
+ <TR>
+ <TD colspan="8"><FONT color="#ff0000"><%= results %></FONT></TD>
+ </TR>
+ <TR>
+ <TD colspan="8" align="left" bgcolor="#cccccc"><B>Account
+ Information</B></TD>
+ </TR>
+ <TR>
+ <TD align="right" valign="bottom"><A href="docs/glossary.html">account
+ created:</A></TD>
+ <TD align="left" valign="bottom" colspan="2"><%= accountData.getCreationDate()
+%></TD>
+ <TD align="right" valign="bottom"><A href="docs/glossary.html">last
+ login: </A></TD>
+ <TD align="left" valign="bottom" colspan="3"><%= accountData.getLastLogin()
+%></TD>
+ <TD align="left" valign="bottom"></TD>
+ </TR>
+ <TR>
+ <TD align="right" valign="bottom"><A href="docs/glossary.html">account
+ ID</A></TD>
+ <TD valign="bottom"><%= accountData.getAccountID()
+%></TD>
+ <TD valign="bottom"></TD>
+ <TD align="right" valign="bottom"><A href="docs/glossary.html">total
+ logins: </A></TD>
+ <TD valign="bottom"><%= accountData.getLoginCount()
+%></TD>
+ <TD valign="bottom"></TD>
+ <TD align="right" valign="bottom"><A href="docs/glossary.html">cash
+ balance: </A></TD>
+ <TD valign="bottom"><%= accountData.getBalance()
+%></TD>
+ </TR>
+ <TR>
+ <TD align="right" valign="bottom"><A href="docs/glossary.html">user
+ ID:</A></TD>
+ <TD valign="bottom"><%= accountData.getProfileID()
+%></TD>
+ <TD valign="bottom"></TD>
+ <TD align="right" valign="bottom"><A href="docs/glossary.html">total
+ logouts: </A></TD>
+ <TD valign="bottom"><%= accountData.getLogoutCount()
+%></TD>
+ <TD valign="bottom"></TD>
+ <TD valign="bottom" align="right"><A href="docs/glossary.html">opening
+ balance: </A></TD>
+ <TD valign="bottom"><%= accountData.getOpenBalance()
+%></TD>
+ </TR>
+ <TR>
+ <TD colspan="8"></TD>
+ </TR>
+ </TBODY>
+ </TABLE>
+ <TABLE width="100%">
+ <TBODY>
+
+ <TR>
+ <TD colspan="5" bgcolor="#cccccc"><B>Total Orders: </B><%= orderDataBeans.size()
+%></TD>
+ <TD bgcolor="#cccccc" align="right"><B><A
+ href="app?action=account&showAllOrders=true">show all orders</A></B></TD>
+ </TR>
+ <TR align="center">
+ <TD colspan="6">
+ <TABLE border="1" style="font-size: smaller">
+ <CAPTION align="bottom"><B>Recent Orders</B></CAPTION>
+ <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>
+ <TD><A href="docs/glossary.html">price</A></TD>
+ <TD><A href="docs/glossary.html">total</A></TD>
+ </TR>
+ <%
+Iterator it = orderDataBeans.iterator();
+int count=0;
+while (it.hasNext()) {
+ if ( (showAllOrders == false) && (count++ >= 5) )
+ break;
+ OrderDataBean orderData = (OrderDataBean) it.next();
+ %>
+ <TR bgcolor="#fafcb6" align="center">
+ <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>
+ <TD><%= orderData.getPrice() %></TD>
+ <TD><%= orderData.getPrice().multiply(new BigDecimal(orderData.getQuantity())) %></TD>
+ </TR>
+ <% }
+ %>
+ </TBODY>
+ </TABLE>
+ </TD>
+ </TR>
+ <TR>
+ <TD colspan="6"></TD>
+ </TR>
+ </TBODY>
+ </TABLE>
+ <FORM>
+ <TABLE width="100%">
+ <TBODY>
+ <TR>
+ <TD colspan="6" bgcolor="#cccccc"><B>Account Profile</B></TD>
+ </TR>
+ <TR>
+ <TD align="right" valign="top" width="113"><A
+ href="docs/glossary.html">user ID:</A></TD>
+ <TD align="left" valign="top" colspan="2" width="228"><INPUT
+ size="30" type="text" maxlength="30" readonly name="userID"
+ value="<%= accountProfileData.getUserID() %>"></TD>
+ <TD align="right" valign="top" width="73" colspan="2"><A
+ href="docs/glossary.html">full name: </A></TD>
+ <TD align="left" valign="top"><INPUT size="30" type="text"
+ maxlength="30" name="fullname"
+ value="<%= accountProfileData.getFullName() %>"></TD>
+ </TR>
+ <TR>
+ <TD align="right" width="113"><A href="docs/glossary.html">password:
+ </A></TD>
+ <TD colspan="2" width="228"><INPUT size="30" type="password"
+ maxlength="30" name="password"
+ value="<%= accountProfileData.getPassword() %>"></TD>
+ <TD align="right" width="73" colspan="2"><A
+ href="docs/glossary.html">address: </A></TD>
+ <TD><INPUT size="30" type="text" maxlength="30" name="address"
+ value="<%= accountProfileData.getAddress() %>"></TD>
+ </TR>
+ <TR>
+ <TD align="right" width="113"><A href="docs/glossary.html">confirm
+ password: </A><BR>
+ </TD>
+ <TD colspan="2" align="left" width="228"><INPUT size="30"
+ type="password" maxlength="30" name="cpassword"
+ value="<%= accountProfileData.getPassword() %>"></TD>
+ <TD align="right" width="73" colspan="2"><A
+ href="docs/glossary.html">credit card: </A></TD>
+ <TD align="left"><INPUT size="30" type="text" maxlength="30"
+ name="creditcard"
+ value="<%= accountProfileData.getCreditCard() %>" readonly></TD>
+ </TR>
+ <TR>
+ <TD align="right" width="113"><A href="docs/glossary.html">email
+ address: </A></TD>
+ <TD colspan="2" align="left" width="228"><INPUT size="30"
+ type="text" maxlength="30" name="email"
+ value="<%= accountProfileData.getEmail() %>"></TD>
+ <TD align="right" width="73" colspan="2"></TD>
+ <TD align="center"><INPUT type="submit" name="action"
+ value="update_profile"></TD>
+ </TR>
+ <TR>
+ <TD width="113"></TD>
+ <TD colspan="5"></TD>
+ </TR>
+ </TBODY>
+ </TABLE>
+ </FORM>
+ </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"><B><FONT
+ color="#ffffff">DayTrader Account</FONT></B></TD>
+ <TD align="center" bgcolor="#000000" width="100" height="10"><FONT
+ color="#ffffff"><B>DayTrader</B></FONT></TD>
+ </TR>
+ <TR>
+ <TD colspan="4" align="center"><IMG src="images/ticker-anim.gif"
+ width="385" height="22" border="0" align="middle" alt=""></TD>
+ </TR>
+ </TBODY>
+</TABLE>
+</BODY>
+</HTML>
Propchange: geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/accountImg.jsp
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/config.jsp
URL: http://svn.apache.org/viewvc/geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/config.jsp?rev=809008&view=auto
==============================================================================
--- geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/config.jsp (added)
+++ geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/config.jsp Fri Aug 28 19:52:10 2009
@@ -0,0 +1,348 @@
+<!--
+ 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>Welcome to DayTrader</TITLE>
+</HEAD>
+<BODY bgcolor="#ffffff" link="#000099">
+<%@ page import="org.apache.geronimo.samples.daytrader.TradeConfig"
+ session="false" isThreadSafe="true" isErrorPage="false"%>
+
+<TABLE style="font-size: smaller">
+ <TBODY>
+ <TR>
+ <TD bgcolor="#c93333" align="left" width="640" height="10"><B><FONT
+ color="#ffffff">DayTrader Configuration</FONT></B></TD>
+ <TD align="center" bgcolor="#000000" width="100" height="10"><FONT
+ color="#ffffff"><B>DayTrader</B></FONT></TD>
+ </TR>
+ <TR>
+ <TD colspan="6">
+ <HR>
+ </TD>
+ </TR>
+ <TR>
+ <TD colspan="6"></TD>
+ </TR>
+ </TBODY>
+</TABLE>
+
+<%
+String status;
+status = (String) request.getAttribute("status");
+if (status != null) {
+%>
+<TABLE width="740" height="30">
+ <TBODY>
+ <TR>
+ <TD></TD>
+ <TD><FONT color="#ff0033"><% out.print(status); %> </FONT></TD>
+ <TD></TD>
+ </TR>
+ </TBODY>
+</TABLE>
+<%
+}
+%>
+
+<FORM action="config" method="POST"><INPUT type="hidden" name="action"
+ value="updateConfig">
+
+<TABLE border="1" width="740">
+ <TBODY>
+ <TR>
+ <TD colspan="2">The current DayTrader runtime configuration is
+ detailed below. View and optionally update run-time parameters.
+ <BR>
+ <BR>
+ <B>NOTE: </B>Parameters settings will return to default
+ on server restart. To make configuration settings persistent
+ across application server stop/starts, edit the servlet init
+ parameters for each DayTrader servlet. This is described in the <A
+ href="docs/tradeFAQ.html">DayTrader FAQ</A>.<BR>
+ <HR>
+ </TD>
+ </TR>
+ <TR>
+ <TD align="left"><B>Run-Time Mode </B>
+ <P align="left"><%String configParm = "RunTimeMode";
+String names[] = TradeConfig.runTimeModeNames;
+int index = TradeConfig.runTimeMode;
+for (int i = 0; i < names.length; i++) {
+ out.print(
+ "<INPUT type=\"radio\" name=\""
+ + configParm
+ + "\" value=\""
+ + i
+ + "\" ");
+ if (index == i)
+ out.print("checked");
+ out.print("> " + names[i] + "<BR>");
+}
+%></P>
+ </TD>
+ <TD><BR>
+ Run Time Mode determines server implementation of the TradeServices
+ to use in the DayTrader application Enterprise Java Beans including
+ Session, Entity and Message beans or Direct mode which uses direct
+ database and JMS access. See <A href="docs/tradeFAQ.html">DayTrader
+ FAQ</A> for details.<BR>
+ </TD>
+ </TR>
+
+
+ <TR>
+ <TD align="left"><B>JPA Layer</B>
+ <P align="left"><%configParm = "JPALayer";
+names = TradeConfig.jpaLayerNames;
+index = TradeConfig.jpaLayer;
+for (int i = 0; i < names.length; i++) {
+ out.print(
+ "<INPUT type=\"radio\" name=\""
+ + configParm
+ + "\" value=\""
+ + i
+ + "\" ");
+ if (index == i)
+ out.print("checked");
+ out.print("> " + names[i] + "<BR>");
+}
+%></P>
+ </TD>
+ <TD><BR>
+ JPA Layer determines what kind of JPA Implementation Daytrader
+ EJB classes use. Typically, Apache Geronimo uses OpenJPA, and RedHat
+ JBoss 5 uses Hibernate.<BR>
+ </TD>
+ </TR>
+
+
+ <TR>
+ <TD align="left"><B>Order-Processing Mode </B>
+ <P align="left"><%configParm = "OrderProcessingMode";
+names = TradeConfig.orderProcessingModeNames;
+index = TradeConfig.orderProcessingMode;
+for (int i = 0; i < names.length; i++) {
+ out.print(
+ "<INPUT type=\"radio\" name=\""
+ + configParm
+ + "\" value=\""
+ + i
+ + "\" ");
+ if (index == i)
+ out.print("checked");
+ out.print("> " + names[i] + "<BR>");
+}
+%></P>
+ </TD>
+ <TD><BR>
+ Order Processing Mode determines the mode for completing stock
+ purchase and sell operations. Synchronous mode completes the order
+ immediately. Asychronous_2-Phase performs a 2-phase commit over the EJB Entity/DB
+ and MDB/JMS transactions. See <A href="docs/tradeFAQ.html">DayTrader
+ FAQ</A> for details. <B></B><BR>
+ </TD>
+ </TR>
+ <TR>
+ <TD align="left"><B>Access Mode </B>
+ <P align="left"><%configParm = "AcessMode";
+names = TradeConfig.accessModeNames;
+index = TradeConfig.getAccessMode();
+for (int i = 0; i < names.length; i++) {
+ out.print(
+ "<INPUT type=\"radio\" name=\""
+ + configParm
+ + "\" value=\""
+ + i
+ + "\" ");
+ if (index == i)
+ out.print("checked");
+ out.print("> " + names[i] + "<BR>");
+}
+%></P>
+ <P><B> Web Services Endpoint <BR>
+ <INPUT name="SOAP_URL" size="30" type="text"
+ value='<%=(TradeConfig.getSoapURL() == null) ? "" : TradeConfig.getSoapURL()%>'>
+ <BR>
+ </B></P>
+ </TD>
+ <TD><BR>
+ Access Mode determines the protocol used by the DayTrader Web
+ application to access server side services. The Standard mode uses
+ the default Java RMI protocol. The Web Services mode uses the Axis
+ implementation of Web Services including SOAP, WSDL and UDDI. <BR>
+ For the Web Services Access mode, set the Web Services Endpoint URL
+ to point to the host and port which is running the DayTrader
+ Application Web Services module. <BR>
+ </TD>
+ </TR>
+ <TR>
+ <TD align="left"><B>Scenario Workload Mix</B>
+ <P align="left"><%configParm = "WorkloadMix";
+names = TradeConfig.workloadMixNames;
+index = TradeConfig.workloadMix;
+for (int i = 0; i < names.length; i++) {
+ out.print(
+ "<INPUT type=\"radio\" name=\""
+ + configParm
+ + "\" value=\""
+ + i
+ + "\" ");
+ if (index == i)
+ out.print("checked");
+ out.print("> " + names[i] + "<BR>");
+}
+%></P>
+ </TD>
+ <TD>This setting determines the runtime workload mix of DayTrader
+ operations when driving the benchmark through TradeScenarioServlet.
+ See <A href="docs/tradeFAQ.html">DayTrader FAQ</A> for details.</TD>
+ </TR>
+ <TR>
+ <TD align="left"><B>WebInterface</B>
+ <P align="left"><%configParm = "WebInterface";
+names = TradeConfig.webInterfaceNames;
+index = TradeConfig.webInterface;
+for (int i = 0; i < names.length; i++) {
+ out.print(
+ "<INPUT type=\"radio\" name=\""
+ + configParm
+ + "\" value=\""
+ + i
+ + "\" ");
+ if (index == i)
+ out.print("checked");
+ out.print("> " + names[i] + "<BR>");
+}
+%></P>
+ </TD>
+ <TD>This setting determines the Web interface technology used, JSPs
+ or JSPs with static images and GIFs.</TD>
+ </TR>
+ <!-- <TR>
+ <TD align="left">
+ <B>Caching Type</B>
+ <P align="left"><%configParm = "CachingType";
+names = TradeConfig.cachingTypeNames;
+index = TradeConfig.cachingType;
+for (int i = 0; i < names.length; i++) {
+ out.print(
+ "<INPUT type=\"radio\" name=\""
+ + configParm
+ + "\" value=\""
+ + i
+ + "\" ");
+ if (index == i)
+ out.print("checked");
+ out.print("> " + names[i] + "<BR>");
+}
+%></P>
+ </TD>
+ <TD>
+ This setting determines the caching technology used for data caching
+ , DistributedMap, Command Caching or No Caching.
+ </TD>
+ </TR>-->
+ <TR>
+ <TD colspan="2" align="center"><B>Miscellaneous Settings</B></TD>
+ </TR>
+ <TR>
+ <TD align="left"><B>DayTrader Max Users </B><BR>
+ <INPUT size="25" type="text" name="MaxUsers"
+ value="<%=TradeConfig.getMAX_USERS()%>"><BR>
+ <B>Trade Max Quotes</B><BR>
+ <INPUT size="25" type="text" name="MaxQuotes"
+ value="<%=TradeConfig.getMAX_QUOTES()%>"></TD>
+ <TD>By default the DayTrader database is populated with 200 users
+ (uid:0 - uid:199) and 400 quotes (s:0 - s:399). <BR>
+ </TD>
+ </TR>
+ <TR>
+ <TD align="left"><B>Market Summary Interval</B><BR>
+ <INPUT size="25" type="text" name="marketSummaryInterval"
+ value="<%=TradeConfig.getMarketSummaryInterval()%>"></TD>
+ <TD>< 0 Do not perform Market Summary Operations.
+ <br>= 0 Perform market Summary on every request.</br>
+ <br>> 0 number of seconds between Market Summary Operations</br></TD>
+ </TR>
+ <TR>
+ <TD align="left"><B>Primitive Iteration</B><BR>
+ <INPUT size="25" type="text" name="primIterations"
+ value="<%=TradeConfig.getPrimIterations()%>"></TD>
+ <TD>By default the DayTrader primitives are execute one operation per
+ web request. Change this value to repeat operations multiple times
+ per web request.</TD>
+ </TR>
+ <TR>
+ <TD align="left"><INPUT type="checkbox"
+ <%=TradeConfig.getPublishQuotePriceChange() ? "checked" : ""%>
+ name="EnablePublishQuotePriceChange"> <B><FONT size="-1">Publish Quote Updates</FONT></B><BR>
+ </TD>
+ <TD>
+ Publish quote price changes to a JMS topic.<BR>
+ </TD>
+ </TR>
+ <TR>
+ <TD align="left"><INPUT type="checkbox"
+ <%=TradeConfig.getLongRun() ? "checked" : ""%>
+ name="EnableLongRun"> <B><FONT size="-1">Enable long run support</FONT></B><BR>
+ </TD>
+ <TD>
+ Enable long run support by disabling the show all orders query performed on the Account page.<BR>
+ </TD>
+ </TR>
+ <TR>
+ <TD align="left">
+ <INPUT type="checkbox"
+ <%=TradeConfig.getActionTrace() ? "checked" : ""%>
+ name="EnableActionTrace"> <B><FONT size="-1">Enable operation trace</FONT></B><BR>
+ <INPUT type="checkbox" <%=TradeConfig.getTrace() ? "checked" : ""%>
+ name="EnableTrace"> <B><FONT size="-1">Enable full trace</FONT></B>
+ </TD>
+ <TD>Enable DayTrader processing trace messages<BR>
+ </TD>
+ </TR>
+ <TR>
+ <TD colspan="2" align="right"><INPUT type="submit"
+ value="Update Config"></TD>
+ </TR>
+ </TBODY>
+</TABLE>
+
+<TABLE width="740" 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 Configuration</FONT></B></TD>
+ <TD align="center" bgcolor="#000000" width="100" height="10"><FONT
+ color="#ffffff"><B>DayTrader</B></FONT></TD>
+ </TR>
+ </TBODY>
+</TABLE>
+</FORM>
+</BODY>
+</HTML>
Propchange: geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/config.jsp
------------------------------------------------------------------------------
svn:eol-style = native
Added: geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/configure.html
URL: http://svn.apache.org/viewvc/geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/configure.html?rev=809008&view=auto
==============================================================================
--- geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/configure.html (added)
+++ geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/configure.html Fri Aug 28 19:52:10 2009
@@ -0,0 +1,95 @@
+<!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.
+-->
+<!-- Sample HTML file -->
+
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Style-Type" content="text/css">
+ <TITLE>Configuration and utilities</TITLE>
+</HEAD>
+
+<BODY BGCOLOR="#FFFFFF">
+<TABLE width="740" align="left" border="1">
+ <TBODY>
+ <TR>
+ <TD align="center" colspan="2">
+ <H3>Configuration Utilities</H3>
+ </TD>
+ </TR>
+ <TR>
+ <TD align="center"><B><FONT face="Times New Roman" size="-1">Benchmark
+ Configuration <BR>
+ Tools</FONT></B></TD>
+ <TD align="center"><B><FONT face="Times New Roman" size="-1"></FONT>Description
+ </B></TD>
+ </TR>
+ <TR>
+ <TD><A href="config?action=resetTrade"><FONT face="Times New Roman"
+ size="-1">Reset DayTrader<BR>
+ (to be done before each run)</FONT></A></TD>
+ <TD>Reset the DayTrader runtime to a clean starting point by logging
+ off all users, removing new registrations and other general cleanup.
+ For consistent results this URL should be run <B>before each </B>Trade
+ run.</TD>
+ </TR>
+ <TR>
+ <TD><A href="config" target="_self"><FONT face="Times New Roman"
+ size="-1">Configure DayTrader run-time parameters</FONT></A></TD>
+ <TD>This link provides an interface to set configuration parameters
+ that control DayTrader run-time characteristics such as using EJBs or
+ JDBC. This link also provides utilities such as setting the UID and
+ Password for a remote or protected database when using JDBC.</TD>
+ </TR>
+ <TR>
+ <TD><A href="config?action=buildDBTables"><FONT
+ face="Times New Roman" size="-1">(Re)-create
+ DayTrader Database Tables and Indexes</FONT></A></TD>
+ <TD>This link is used to (a) initially create or (b) drop and re-create the
+ DayTrader tables. <b>A DayTrader database should exist before doing this action</b>,
+ the existing DayTrader tables, if any, are dropped, then new
+ tables and indexes are created. <b>Please stop and re-start the Daytrader application
+ (or your application server) after this action and then use the "Repopulate
+ DayTrader Database" link below to repopulate the new database tables.</b></TD>
+ </TR>
+ <TR>
+ <TD><A href="config?action=buildDB"><FONT
+ face="Times New Roman" size="-1">(Re)-populate
+ DayTrader Database</FONT></A></TD>
+ <TD>This link is used to initially populate or re-populate the
+ DayTrader database with fictitious users (uid:0, uid:1, ...) and
+ stocks (s:0, s:1, ...). First all existing users and stocks are
+ deleted (if any). The database is then populated with a new set of
+ DayTrader users and stocks. This option does not drop and recreate the
+ Daytrader db tables.</TD>
+ </TR>
+ <TR>
+ <TD><A href="scenario" target="_blank"><FONT face="Times New Roman"
+ size="-1">Test DayTrader Scenario</FONT></A></TD>
+ <TD>This links pops up a browser to manually step through a DayTrader
+ scenario by hitting "Reload" on your browser</TD>
+ </TR>
+ <TR>
+ <TD><FONT size="-1"><A href="docs/tradeversion.html">DayTrader
+ Version</A></FONT></TD>
+ <TD>DayTrader application version and change history information</TD>
+ </TR>
+ </TBODY>
+</TABLE>
+
+</BODY>
+</HTML>
Propchange: geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/configure.html
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/configure.html
------------------------------------------------------------------------------
svn:mime-type = text/html
Added: geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/contentHome.html
URL: http://svn.apache.org/viewvc/geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/contentHome.html?rev=809008&view=auto
==============================================================================
--- geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/contentHome.html (added)
+++ geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/contentHome.html Fri Aug 28 19:52:10 2009
@@ -0,0 +1,80 @@
+<!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.
+-->
+<!-- Sample HTML file -->
+
+<HTML>
+<HEAD>
+<META http-equiv="Content-Style-Type" content="text/css">
+<TITLE>Geronimo performance benchmark sample overview</TITLE>
+</HEAD>
+
+<BODY bgcolor="#FFFFFF">
+<TABLE width="740">
+ <TR>
+ <TD>
+ <HR>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <P align="left"><FONT size="+1"><B>Overview</B></FONT></P>
+ <BLOCKQUOTE><FONT face="Times New Roman" size="-1">The Geronimo<SUP>TM</SUP>
+ performance benchmark sample provides a suite of Apache developed
+ workloads for characterizing performance of the Geronimo J2EE
+ Application Server. The workloads consist of an end to end web
+ application and a full set of primitives. The applications are a
+ collection of Java classes, Java Servlets, Java Server Pages, Web
+ Services, and Enterprise Java Beans built to open J2EE APIs. Together
+ these provide versatile and portable test cases designed to measure
+ aspects of scalability and performance.</FONT></BLOCKQUOTE>
+ <P align="center"><IMG src="images/tradeOverview.png" width="717" height="538" border="0" alt=""> <BR>
+ <B>DayTrader J2EE Components </B><BR>
+ <B>Model-View-Controller Architecture</B></P>
+ <BLOCKQUOTE><FONT size="-1"><B>DayTrader</B><BR>
+ DayTrader is the Geronimo end-to-end benchmark and performance sample
+ application. The new DayTrader benchmark has been re-designed and
+ developed to cover Geronimo's significantly expanding programming
+ model. This provides a real world workload driving Geronimo's
+ implementation of J2EE 1.4 and Web Services including key Geronimo
+ performance components and features.<BR>
+ <BR>
+ DayTrader's new design spans J2EE 1.4 including the new EJB 2.1
+ component architecture, Message Driven beans, transactions (1-phase,
+ 2-phase commit) and Web Services (SOAP, WSDL).<BR>
+ <BR>
+ <B>Primitives</B><BR>
+ </FONT><FONT face="Times New Roman" size="-1">The <A
+ href="web_prmtv.html">Primitives</A> provide a set of workloads to
+ individually test various components of the Geronimo Application
+ Server. The primitives leverage the DayTrader application
+ infrastructure to test specific Geronimo J2EE components such as the
+ servlet engine, JSP support, EJB Entitiy, Session and Message Driven
+ beans, HTTP Session support and more.</FONT></BLOCKQUOTE>
+ <BLOCKQUOTE><FONT face="Times New Roman" size="-1">Additional overview
+ information is included in the <A href="docs/tradeFAQ.html">FAQ</A></FONT></BLOCKQUOTE>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <HR>
+ </TD>
+ </TR>
+</TABLE>
+
+</BODY>
+</HTML>
Propchange: geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/contentHome.html
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/contentHome.html
------------------------------------------------------------------------------
svn:mime-type = text/html
Added: geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/dbscripts/db2/Table.ddl
URL: http://svn.apache.org/viewvc/geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/dbscripts/db2/Table.ddl?rev=809008&view=auto
==============================================================================
--- geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/dbscripts/db2/Table.ddl (added)
+++ geronimo/daytrader/trunk/assemblies/daytrader-web-ejb/src/main/webapp/dbscripts/db2/Table.ddl Fri Aug 28 19:52:10 2009
@@ -0,0 +1,107 @@
+## 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.
+
+# Each SQL statement in this file should terminate with a semicolon (;)
+# Lines starting with the pound character (#) are considered as comments
+DROP TABLE HOLDINGEJB;
+DROP TABLE ACCOUNTPROFILEEJB;
+DROP TABLE QUOTEEJB;
+DROP TABLE KEYGENEJB;
+DROP TABLE ACCOUNTEJB;
+DROP TABLE ORDEREJB;
+
+CREATE TABLE HOLDINGEJB
+ (PURCHASEPRICE DECIMAL(14, 2),
+ HOLDINGID INTEGER NOT NULL,
+ QUANTITY DOUBLE NOT NULL,
+ PURCHASEDATE TIMESTAMP,
+ ACCOUNT_ACCOUNTID INTEGER,
+ QUOTE_SYMBOL VARCHAR(254));
+
+ALTER TABLE HOLDINGEJB
+ ADD CONSTRAINT PK_HOLDINGEJB PRIMARY KEY (HOLDINGID);
+
+CREATE TABLE ACCOUNTPROFILEEJB
+ (ADDRESS VARCHAR(254),
+ PASSWD VARCHAR(254),
+ USERID VARCHAR(254) NOT NULL,
+ EMAIL VARCHAR(254),
+ CREDITCARD VARCHAR(254),
+ FULLNAME VARCHAR(254));
+
+ALTER TABLE ACCOUNTPROFILEEJB
+ ADD CONSTRAINT PK_ACCOUNTPROFILE2 PRIMARY KEY (USERID);
+
+CREATE TABLE QUOTEEJB
+ (LOW DECIMAL(14, 2),
+ OPEN1 DECIMAL(14, 2),
+ VOLUME DOUBLE NOT NULL,
+ PRICE DECIMAL(14, 2),
+ HIGH DECIMAL(14, 2),
+ COMPANYNAME VARCHAR(254),
+ SYMBOL VARCHAR(254) NOT NULL,
+ CHANGE1 DOUBLE NOT NULL);
+
+ALTER TABLE QUOTEEJB
+ ADD CONSTRAINT PK_QUOTEEJB PRIMARY KEY (SYMBOL);
+
+CREATE TABLE KEYGENEJB
+ (KEYVAL INTEGER NOT NULL,
+ KEYNAME VARCHAR(254) NOT NULL);
+
+ALTER TABLE KEYGENEJB
+ ADD CONSTRAINT PK_KEYGENEJB PRIMARY KEY (KEYNAME);
+
+CREATE TABLE ACCOUNTEJB
+ (CREATIONDATE TIMESTAMP,
+ OPENBALANCE DECIMAL(14, 2),
+ LOGOUTCOUNT INTEGER NOT NULL,
+ BALANCE DECIMAL(14, 2),
+ ACCOUNTID INTEGER NOT NULL,
+ LASTLOGIN TIMESTAMP,
+ LOGINCOUNT INTEGER NOT NULL,
+ PROFILE_USERID VARCHAR(254));
+
+ALTER TABLE ACCOUNTEJB
+ ADD CONSTRAINT PK_ACCOUNTEJB PRIMARY KEY (ACCOUNTID);
+
+CREATE TABLE ORDEREJB
+ (ORDERFEE DECIMAL(14, 2),
+ COMPLETIONDATE TIMESTAMP,
+ ORDERTYPE VARCHAR(254),
+ ORDERSTATUS VARCHAR(254),
+ PRICE DECIMAL(14, 2),
+ QUANTITY DOUBLE NOT NULL,
+ OPENDATE TIMESTAMP,
+ ORDERID INTEGER NOT NULL,
+ ACCOUNT_ACCOUNTID INTEGER,
+ QUOTE_SYMBOL VARCHAR(254),
+ HOLDING_HOLDINGID INTEGER);
+
+ALTER TABLE ORDEREJB
+ ADD CONSTRAINT PK_ORDEREJB PRIMARY KEY (ORDERID);
+
+ALTER TABLE HOLDINGEJB VOLATILE;
+ALTER TABLE ACCOUNTPROFILEEJB VOLATILE;
+ALTER TABLE QUOTEEJB VOLATILE;
+ALTER TABLE KEYGENEJB VOLATILE;
+ALTER TABLE ACCOUNTEJB VOLATILE;
+ALTER TABLE ORDEREJB VOLATILE;
+
+CREATE INDEX ACCOUNT_USERID ON ACCOUNTEJB(PROFILE_USERID);
+CREATE INDEX HOLDING_ACCOUNTID ON HOLDINGEJB(ACCOUNT_ACCOUNTID);
+CREATE INDEX ORDER_ACCOUNTID ON ORDEREJB(ACCOUNT_ACCOUNTID);
+CREATE INDEX ORDER_HOLDINGID ON ORDEREJB(HOLDING_HOLDINGID);
+CREATE INDEX CLOSED_ORDERS ON ORDEREJB(ACCOUNT_ACCOUNTID,ORDERSTATUS);