Return-Path: Delivered-To: apmail-geronimo-scm-archive@www.apache.org Received: (qmail 91773 invoked from network); 30 Jan 2006 18:23:35 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 30 Jan 2006 18:23:35 -0000 Received: (qmail 13578 invoked by uid 500); 30 Jan 2006 18:23:34 -0000 Delivered-To: apmail-geronimo-scm-archive@geronimo.apache.org Received: (qmail 13436 invoked by uid 500); 30 Jan 2006 18:23:34 -0000 Mailing-List: contact scm-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list scm@geronimo.apache.org Received: (qmail 13425 invoked by uid 99); 30 Jan 2006 18:23:34 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 30 Jan 2006 10:23:34 -0800 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [209.237.227.194] (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.29) with SMTP; Mon, 30 Jan 2006 10:23:32 -0800 Received: (qmail 91656 invoked by uid 65534); 30 Jan 2006 18:23:12 -0000 Message-ID: <20060130182312.91653.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r373562 - in /geronimo/daytrader/trunk: ear/ ejb/src/java/org/apache/geronimo/samples/daytrader/ ejb/src/java/org/apache/geronimo/samples/daytrader/util/ web/src/java/org/apache/geronimo/samples/daytrader/web/prims/ web/src/webapp/ web/src/... Date: Mon, 30 Jan 2006 18:23:10 -0000 To: scm@geronimo.apache.org From: hogstrom@apache.org X-Mailer: svnmailer-1.0.5 X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: hogstrom Date: Mon Jan 30 10:23:04 2006 New Revision: 373562 URL: http://svn.apache.org/viewcvs?rev=373562&view=rev Log: Added new primitives and cleaned up some DDs Added: geronimo/daytrader/trunk/web/src/java/org/apache/geronimo/samples/daytrader/web/prims/ExplicitGC.java Modified: geronimo/daytrader/trunk/ear/project.xml geronimo/daytrader/trunk/ejb/src/java/org/apache/geronimo/samples/daytrader/TradeConfig.java geronimo/daytrader/trunk/ejb/src/java/org/apache/geronimo/samples/daytrader/util/Log.java geronimo/daytrader/trunk/web/src/webapp/WEB-INF/web.xml geronimo/daytrader/trunk/web/src/webapp/web_prmtv.html Modified: geronimo/daytrader/trunk/ear/project.xml URL: http://svn.apache.org/viewcvs/geronimo/daytrader/trunk/ear/project.xml?rev=373562&r1=373561&r2=373562&view=diff ============================================================================== --- geronimo/daytrader/trunk/ear/project.xml (original) +++ geronimo/daytrader/trunk/ear/project.xml Mon Jan 30 10:23:04 2006 @@ -18,14 +18,14 @@ log4j ${log4j_version} - + org.apache.geronimo.samples daytrader-web Modified: geronimo/daytrader/trunk/ejb/src/java/org/apache/geronimo/samples/daytrader/TradeConfig.java URL: http://svn.apache.org/viewcvs/geronimo/daytrader/trunk/ejb/src/java/org/apache/geronimo/samples/daytrader/TradeConfig.java?rev=373562&r1=373561&r2=373562&view=diff ============================================================================== --- geronimo/daytrader/trunk/ejb/src/java/org/apache/geronimo/samples/daytrader/TradeConfig.java (original) +++ geronimo/daytrader/trunk/ejb/src/java/org/apache/geronimo/samples/daytrader/TradeConfig.java Mon Jan 30 10:23:04 2006 @@ -108,6 +108,7 @@ private static boolean actionTrace = false; private static boolean updateQuotePrices = true; private static int primIterations = 1; + private static boolean longRun = true; /* * Penny stocks is a problem where the random price change factor gets a stock @@ -825,4 +826,12 @@ public static void setPrimIterations(int iter) { primIterations = iter; } + + public static boolean getLongRun() { + return longRun; + } + + public static void setLongRun(boolean longRun) { + TradeConfig.longRun = longRun; + } } Modified: geronimo/daytrader/trunk/ejb/src/java/org/apache/geronimo/samples/daytrader/util/Log.java URL: http://svn.apache.org/viewcvs/geronimo/daytrader/trunk/ejb/src/java/org/apache/geronimo/samples/daytrader/util/Log.java?rev=373562&r1=373561&r2=373562&view=diff ============================================================================== --- geronimo/daytrader/trunk/ejb/src/java/org/apache/geronimo/samples/daytrader/util/Log.java (original) +++ geronimo/daytrader/trunk/ejb/src/java/org/apache/geronimo/samples/daytrader/util/Log.java Mon Jan 30 10:23:04 2006 @@ -28,6 +28,7 @@ public static void log(String message) { + log.debug("DayTrader Log:" + new java.util.Date() + "------\n\t "); log.debug(message); } public static void log(String msg1, String msg2) Added: geronimo/daytrader/trunk/web/src/java/org/apache/geronimo/samples/daytrader/web/prims/ExplicitGC.java URL: http://svn.apache.org/viewcvs/geronimo/daytrader/trunk/web/src/java/org/apache/geronimo/samples/daytrader/web/prims/ExplicitGC.java?rev=373562&view=auto ============================================================================== --- geronimo/daytrader/trunk/web/src/java/org/apache/geronimo/samples/daytrader/web/prims/ExplicitGC.java (added) +++ geronimo/daytrader/trunk/web/src/java/org/apache/geronimo/samples/daytrader/web/prims/ExplicitGC.java Mon Jan 30 10:23:04 2006 @@ -0,0 +1,123 @@ +/** + * + * Copyright 2005 The Apache Software Foundation or its licensors, as applicable + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.geronimo.samples.daytrader.web.prims; + +import java.io.*; +import javax.servlet.*; +import javax.servlet.http.*; + +import org.apache.geronimo.samples.daytrader.util.*; + + +/** + * + * ExplicitGC invokes System.gc(). This allows one to gather min / max heap statistics. + * + */ +public class ExplicitGC extends HttpServlet +{ + + private static String initTime; + private static int hitCount; + + /** + * forwards post requests to the doGet method + * Creation date: (01/29/2006 20:10:00 PM) + * @param res javax.servlet.http.HttpServletRequest + * @param res2 javax.servlet.http.HttpServletResponse + */ + public void doPost(HttpServletRequest req, HttpServletResponse res) + throws ServletException, IOException + { + doGet(req, res); + } + + /** + * this is the main method of the servlet that will service all get requests. + * @param request HttpServletRequest + * @param responce HttpServletResponce + **/ + public void doGet(HttpServletRequest req, HttpServletResponse res) + throws ServletException, IOException + { + try + { + res.setContentType("text/html"); + + ServletOutputStream out = res.getOutputStream(); + hitCount++; + long totalMemory = Runtime.getRuntime().totalMemory(); + + long maxMemoryBeforeGC = Runtime.getRuntime().maxMemory(); + long freeMemoryBeforeGC = Runtime.getRuntime().freeMemory(); + long startTime = System.currentTimeMillis(); + + System.gc(); // Invoke the GC. + + long endTime = System.currentTimeMillis(); + long maxMemoryAfterGC = Runtime.getRuntime().maxMemory(); + long freeMemoryAfterGC = Runtime.getRuntime().freeMemory(); + + + + out.println( + "ExplicitGC" + + "

Explicit Garbage Collection
Init time : " + + initTime + + "

Hit Count: " + + hitCount + + "
" + + " Total Memory = " + totalMemory + "
" + + "
Statistics before GC
" + + " Max Memory = " + maxMemoryBeforeGC + "
" + + " Free Memory = " + freeMemoryBeforeGC + "
" + + "
Statistics after GC
" + + " Max Memory = " + maxMemoryAfterGC + "
" + + " Free Memory = " + freeMemoryAfterGC + "
" + + " Used Memory = " + (totalMemory - freeMemoryAfterGC) + "
" + + + " Total Time in GC = " + Float.toString(endTime - startTime / 1000) + "s" + + ""); + } + catch (Exception e) + { + Log.error(e, "ExplicitGC.doGet(...): general exception caught"); + res.sendError(500, e.toString()); + + } + } + + /** + * returns a string of information about the servlet + * @return info String: contains info about the servlet + **/ + public String getServletInfo() + { + return "Generate Explicit GC to VM"; + } + /** + * called when the class is loaded to initialize the servlet + * @param config ServletConfig: + **/ + public void init(ServletConfig config) throws ServletException + { + super.init(config); + initTime = new java.util.Date().toString(); + hitCount = 0; + + } +} Modified: geronimo/daytrader/trunk/web/src/webapp/WEB-INF/web.xml URL: http://svn.apache.org/viewcvs/geronimo/daytrader/trunk/web/src/webapp/WEB-INF/web.xml?rev=373562&r1=373561&r2=373562&view=diff ============================================================================== --- geronimo/daytrader/trunk/web/src/webapp/WEB-INF/web.xml (original) +++ geronimo/daytrader/trunk/web/src/webapp/WEB-INF/web.xml Mon Jan 30 10:23:04 2006 @@ -3,360 +3,369 @@ xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> - TradeWeb - + DayTraderWeb + OrdersAlertFilter OrdersAlertFilter org.apache.geronimo.samples.daytrader.web.OrdersAlertFilter - + OrdersAlertFilter TradeAppServlet - + org.apache.geronimo.samples.daytrader.web.TradeWebContextListener - + TradeAppServlet TradeAppServlet org.apache.geronimo.samples.daytrader.web.TradeAppServlet 1 - + register register /register.jsp - + TestServlet TestServlet org.apache.geronimo.samples.daytrader.web.TestServlet - + welcome welcome /welcome.jsp - + order order /order.jsp - + tradehome tradehome /tradehome.jsp - + TradeConfigServlet TradeConfigServlet org.apache.geronimo.samples.daytrader.web.TradeConfigServlet - + TradeScenarioServlet TradeScenarioServlet org.apache.geronimo.samples.daytrader.web.TradeScenarioServlet - + Sets the default RuntimeMode. Legal values include EJB and Direct runTimeMode - EJB + DIRECT - + Sets the default Order Processing Mode. Legal values include Synchronous, Asynchronous_1-Phase and Asynchronous_2-Phase orderProcessingMode Synchronous - + Sets the protocol the web application communicates with the server side services when driving with TradeScenarioServlet. Legal values incude Standard and WebServices. accessMode Standard - + Sets the WebServices endpoint when using WebServices accessMode when driving with TradeScenarioServlet. webServicesEndpoint http://localhost:8080/daytrader/services/TradeWSServices - + Sets the default workloadMix used with TradeScenario servlet. Legal values include Standard and High-Volume workloadMix Standard - + Sets the default WebInterface. Legal values include JSP and JSP-images WebInterface JSP - + Sets the population of Trade users when driving with TradeScenarioServlet. maxUsers - 500 + 5 - + Sets the population of Stock quotes used when driving with TradeScenarioServlet. maxQuotes - 1000 + 10 - + Sets the number of iterations on web/ejb primitives. primIterations 1 - + Sets the data caching type No Caching 2 1 - + + ExplicitGC + ExplicitGC + org.apache.geronimo.samples.daytrader.web.prims.ExplicitGC + + PingServlet PingServlet org.apache.geronimo.samples.daytrader.web.prims.PingServlet - + PingServletWriter PingServletWriter org.apache.geronimo.samples.daytrader.web.prims.PingServletWriter - + PingServlet2Servlet PingServlet2Servlet org.apache.geronimo.samples.daytrader.web.prims.PingServlet2Servlet - + PingServlet2ServletRcv PingServlet2ServletRcv org.apache.geronimo.samples.daytrader.web.prims.PingServlet2ServletRcv - + PingServlet2Jsp PingServlet2Jsp org.apache.geronimo.samples.daytrader.web.prims.PingServlet2Jsp - + PingSession1 PingSession1 org.apache.geronimo.samples.daytrader.web.prims.PingSession1 - + PingSession2 PingSession2 org.apache.geronimo.samples.daytrader.web.prims.PingSession2 - + PingSession3 PingSession3 org.apache.geronimo.samples.daytrader.web.prims.PingSession3 - + PingJDBCRead PingJDBCRead org.apache.geronimo.samples.daytrader.web.prims.PingJDBCRead - + PingJDBCWrite PingJDBCWrite org.apache.geronimo.samples.daytrader.web.prims.PingJDBCWrite - + PingServlet2Session PingServlet2Session org.apache.geronimo.samples.daytrader.web.prims.PingServlet2Session - + PingServlet2EntityLocal PingServlet2EntityLocal org.apache.geronimo.samples.daytrader.web.prims.PingServlet2EntityLocal - + PingServlet2EntityRemote PingServlet2EntityRemote org.apache.geronimo.samples.daytrader.web.prims.PingServlet2EntityRemote - + PingServlet2Session2Entity PingServlet2Session2Entity org.apache.geronimo.samples.daytrader.web.prims.PingServlet2Session2Entity - + PingServlet2Session2EntityCollection PingServlet2Session2EntityCollection org.apache.geronimo.samples.daytrader.web.prims.PingServlet2Session2EntityCollection - + PingServlet2Session2CMROne2One PingServlet2Session2CMROne2One org.apache.geronimo.samples.daytrader.web.prims.PingServlet2Session2CMROne2One - + PingServlet2Session2CMROne2Many PingServlet2Session2CMROne2Many org.apache.geronimo.samples.daytrader.web.prims.PingServlet2Session2CMROne2Many - + PingServlet2MDBQueue PingServlet2MDBQueue org.apache.geronimo.samples.daytrader.web.prims.PingServlet2MDBQueue - + PingServlet2MDBTopic PingServlet2MDBTopic org.apache.geronimo.samples.daytrader.web.prims.PingServlet2MDBTopic - + PingServlet2JNDI PingServlet2JNDI org.apache.geronimo.samples.daytrader.web.prims.PingServlet2JNDI - + PingServlet2TwoPhase PingServlet2TwoPhase org.apache.geronimo.samples.daytrader.web.prims.PingServlet2TwoPhase - + PingServlet2Include PingServlet2Include org.apache.geronimo.samples.daytrader.web.prims.PingServlet2Include - + PingServlet2IncludeRcv PingServlet2IncludeRcv org.apache.geronimo.samples.daytrader.web.prims.PingServlet2IncludeRcv - + org_apache_geronimo_samples_daytrader_TradeWSAction org_apache_geronimo_samples_daytrader_TradeWSAction org.apache.geronimo.samples.daytrader.TradeWSAction - + TradeAppServlet /app - + TestServlet /TestServlet - + TradeConfigServlet /config - + TradeScenarioServlet /scenario - + org_apache_geronimo_samples_daytrader_TradeWSAction /services/TradeWSServices - + + ExplicitGC + /servlet/ExplicitGC + + PingServlet /servlet/PingServlet - + PingServletWriter /servlet/PingServletWriter - + PingServlet2Servlet /servlet/PingServlet2Servlet - + PingServlet2ServletRcv /servlet/PingServlet2ServletRcv - + PingServlet2Jsp /servlet/PingServlet2Jsp - + PingSession1 /servlet/PingSession1 - + PingSession2 /servlet/PingSession2 - + PingSession3 /servlet/PingSession3 - + PingJDBCRead /servlet/PingJDBCRead - + PingJDBCWrite /servlet/PingJDBCWrite - + PingServlet2Session /servlet/PingServlet2Session - + PingServlet2EntityLocal /servlet/PingServlet2EntityLocal - + PingServlet2EntityRemote /servlet/PingServlet2EntityRemote - + PingServlet2Session2Entity /servlet/PingServlet2Session2Entity - + PingServlet2Session2EntityCollection /servlet/PingServlet2Session2EntityCollection - + PingServlet2Session2CMROne2One /servlet/PingServlet2Session2CMROne2One - + PingServlet2Session2CMROne2Many /servlet/PingServlet2Session2CMROne2Many - + PingServlet2MDBQueue /servlet/PingServlet2MDBQueue - + PingServlet2MDBTopic /servlet/PingServlet2MDBTopic - + PingServlet2JNDI /servlet/PingServlet2JNDI - + PingServlet2TwoPhase /servlet/PingServlet2TwoPhase - + PingServlet2Include /servlet/PingServlet2Include - + 30 - + index.html - + java.lang.Exception /error.jsp - + 500 /error.jsp @@ -406,13 +415,13 @@ org.apache.geronimo.samples.daytrader.ejb.LocalAccount AccountEJB - + jms/TradeBrokerQueue javax.jms.Queue Produces daytrader-ejb-${pom.currentVersion}.jar#TradeBrokerQueue - + jms/TradeStreamerTopic javax.jms.Topic Produces Modified: geronimo/daytrader/trunk/web/src/webapp/web_prmtv.html URL: http://svn.apache.org/viewcvs/geronimo/daytrader/trunk/web/src/webapp/web_prmtv.html?rev=373562&r1=373561&r2=373562&view=diff ============================================================================== --- geronimo/daytrader/trunk/web/src/webapp/web_prmtv.html (original) +++ geronimo/daytrader/trunk/web/src/webapp/web_prmtv.html Mon Jan 30 10:23:04 2006 @@ -38,6 +38,10 @@ page of static HTML. + Explicit GC + Invoke Garbage Collection on AppServer. Reports heap statistics after the GC has completed. + + PingServlet PingServlet tests fundamental dynamic HTML creation through server side servlet processing.