org.apache.ojb.otm
Class PerformanceTest

java.lang.Object
  extended byjunit.framework.Assert
      extended byjunit.framework.TestCase
          extended byorg.apache.ojb.otm.PerformanceTest
All Implemented Interfaces:
junit.framework.Test

public class PerformanceTest
extends junit.framework.TestCase

This TestCase contains the OJB performance benchmarks for the OTM API.

Author:
Oleg Nitz, Matthew Baird, borrowing heavily from Thomas Mahler

Field Summary
(package private) static int articleCount
          the number of PerformanceArticle objects to work with.
(package private) static int iterations
          the number of iterations to perform.
(package private)  int offsetId
          the offset value for PerformanceArticle primary keys
 
Constructor Summary
PerformanceTest(java.lang.String name)
           
 
Method Summary
protected  void deleteArticles()
          deletes all PerformanceArticle created by insertNewArticles.
protected  void insertNewArticles()
          create new PerformanceArticle objects and insert them into the RDBMS.
static void main(java.lang.String[] args)
          launches the TestCase.
protected  void readArticles()
          read in all the PerformanceArticles from the RDBMS that have been inserted by insertNewArticles().
protected  void readArticlesByCursor()
          read in all the PerformanceArticles from the RDBMS that have been inserted by insertNewArticles().
 void setUp()
           
 void tearDown()
           
 void testBenchmark()
          this method is the driver for the complete Benchmark.
protected  void updateExistingArticles()
          updates all PerformanceArticles inserted by insertNewArticles().
 
Methods inherited from class junit.framework.TestCase
countTestCases, createResult, getName, run, run, runBare, runTest, setName, toString
 
Methods inherited from class junit.framework.Assert
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

articleCount

static int articleCount
the number of PerformanceArticle objects to work with.


iterations

static int iterations
the number of iterations to perform.


offsetId

int offsetId
the offset value for PerformanceArticle primary keys

Constructor Detail

PerformanceTest

public PerformanceTest(java.lang.String name)
Method Detail

main

public static void main(java.lang.String[] args)
launches the TestCase. The number of Objects to work with and the number of iterations to be performed can be adjusted by setting them as commandline parameters.

Parameters:
args - the String[] holding the commandline parameters.

setUp

public void setUp()

tearDown

public void tearDown()

deleteArticles

protected void deleteArticles()
                       throws java.lang.Exception
deletes all PerformanceArticle created by insertNewArticles.

Throws:
java.lang.Exception

insertNewArticles

protected void insertNewArticles()
                          throws java.lang.Exception
create new PerformanceArticle objects and insert them into the RDBMS. The number of objects to create is defined by articleCount.

Throws:
java.lang.Exception

readArticles

protected void readArticles()
                     throws java.lang.Exception
read in all the PerformanceArticles from the RDBMS that have been inserted by insertNewArticles(). The lookup is done one by one, that is: a primary key based lookup is used.

Throws:
java.lang.Exception

readArticlesByCursor

protected void readArticlesByCursor()
                             throws java.lang.Exception
read in all the PerformanceArticles from the RDBMS that have been inserted by insertNewArticles(). The lookup is done with a cursor fetch, that is: a between Statement is used to select all inserted PerformanceArticles and Objects are read in by fetching from the cursor (JDBC ResultSet).

Throws:
java.lang.Exception

updateExistingArticles

protected void updateExistingArticles()
                               throws java.lang.Exception
updates all PerformanceArticles inserted by insertNewArticles(). All objects are modified and changes are written to the RDBMS with an UPDATE.

Throws:
java.lang.Exception

testBenchmark

public void testBenchmark()
this method is the driver for the complete Benchmark. It performs the following steps: 1.) n objects are created and inserted to the RDBMS. 2.) the created objects are modified. Modifications are written to the RDBMS with updates. 3.) All objects created in 1.) are read in by primary key based SELECT statements. 4.) Step 3.) is repeated to test caching facilities. 5.) All objects created in 1.) are read by iterating over a ResultSet. 6.) All objects created in 1.) are deleted with n separate DELETE Statements.



Authors: Thomas Mahler and others. (C) 2000 - 2003 Apache Software Foundation
All rights reserved. Published under the Apache License.
http://db.apache.org/ojb
Version: 1.0.rc5, 2003-12-14