You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 14 Next »

Using Criteria API in DayTrader

A current DayTrader project implementation in Apache Geronimo contains several JPQL queries. These can easily be converted to JPA Criteria API queries. A sample with this conversion can be created to run on either the Apache Geronimo server or the WebSphere Application Server with the built-in Derby database.

Downloading DayTrader

You must have Subversion installed in order to download the DayTrader implementation.Subversion can be downloaded from http://subversion.apache.org/packages.html. Use the 2.1.3 version of DayTrader for this sample. Follow the following steps:

  1. Create a root directory for the download. For this example, we will use a directory called DayTrader.
  2. Create subdirectories branches/2.1.3 under the DayTrader directory
  3. cd to DayTrader
  4. Issue the following subversion command:
         svn checkout https://svn.apache.org/repos/asf/geronimo/daytrader/branches/2.1.3 branches/2.1.3

Build DayTrader

You must have maven installed in order to build DayTrader. Maven can be downloaded from http://maven.apache.org/download.html. Unzip the file to a directory and run mvn.bat|.sh in the bin subdirectory to install. Add the bin subdirectory to you system path.

Maven needs a repository. Typically it is at the following:

  • Windows - C:\Documents and Settings\<userid>\.m2\repository
  • Linux/unix - ~/.m2/repository

From the DayTrader/branches/2.1.3 directory, type "mvn clean install" to build the project. (Note: If you see errors that say "java.util.zip.ZipException: error in opening zip file", ignore them for this exercise.)

Apply the DayTrader Patch

The following patch can be applied using a system or downloaded patch utility. (For example, you can get a patch utility for Windows from http://gnuwin32.sourceforge.net/packages/patch.htm.)

for Geronimo - daytrader_geronimo.patch

for WebSphere - daytrader_websphere.patch

Download the appropriate patch and go to the DayTrader/branches.2.1.3 directory to apply it. For example, with the patch utility mentioned above, you can type:

patch -p0 -i <path-to>/daytrader_geronimo.patch

After you have applied the patch, you can see the changes from JPQL to the Criteria API in the java class org.apache.geronimo.samples.daytrader.ejb3.TradeSLSBBean. The changes are in the following 4 methods:

  • getMarketSummary()
  • getClosedOrders()
  • getAllQuotes()
  • getHoldings()

(Note: If you view these changes in eclipse, and you have previously run "mvn eclipse:eclipse" to setup eclipse projects, you'll have to run this command again in order for this file to compile.)

You can also Apply an Eclipse Patch

Re-create the DayTrader ear file

From the DayTrader/branches/2.1.3 directory, type "mvn clean install" to build the project.

Run DayTrader on Geronimo

This writeup assumes some familiarity with Apache Geronimo. The download and documentation can be found at http://geronimo.apache.org.

Install and start the Geronimo server

Add jpa2 plugins from repository http://geronimo.apache.org/plugins/openjpa2. One way to do this is the following:

  1. Go to the Geronimo console at http://<host>:8080/console and logon
  2. Select plugins
  3. Click on Add Repository and add http://geronimo.apache.org/plugins/openjpa2
  4. Click on Update Repository List
  5. Make sure the new repository is selected. Then click on Show Plugins in selected repository. On that panel:
    1. Select GeronimoPlugins, OpenJPA2::CAR 2.1.3-SNAPSHOT and GeronimoPlugins, OpenJPA2::Deployer 2.1.3-SNAPSHOT
    2. Click on Install
  6. On the next screen, click on Install

Deploy the DayTrader application. This can be done through the console as follows:

  1. Click on Deploy New
  2. For Archive, browse to DayTrader/branches/2.1.3/modules/ear/target/daytrader-ear-2.1.3.ear
  3. For Plan, browse to DayTrader/branches/2.1.3/plans/dayTrader-derby-plan.xml
  4. Check Start app after install
  5. Click on Install

Re-start the server.

Make sure that the system module, org.apache.geronimo.configs/axis-deployer/2.1.5/car, is running.

Run DayTrader:

  1. Go to http://<host>:8080/daytrader/
  2. Click on the Configuration tab and click on (Re)-create DayTrader Database Tables and Indexes
  3. Click on the Configuration  tab and click on (Re)-populate DayTrader Database
  4. Click on the Trading & Portfolios tab, login, and start trading
  • No labels