|
Guidelines, Patterns, and code for end-to-end Java applications.
Java Pet Store Demo 1.3.1 > Configuring the Demo
Configuring the Demo
The Java Pet Store Demo allows various behaviors to be configured. This
section describes the following customizations:
Setting Up E-mail Notifications Using the J2EE
SDK Deployment Tool
You can configure the Java Pet Store Demo to send customers e-mail notifications
regarding the status of their orders. By default, these notifications are
disabled, but you can enable them at deployment time.
To set up e-mail notifications using the J2EE SDK deployment tool,
follow these steps:
Open the OPC EAR (OrderProcessingCenter EAR).
From the menu, select File -> Open.
The Open Object dialog appears.
Find <petstore.home>/opc.ear (or <petstore.home>/src/apps/opc/build/opc.ear
if you built the EAR) and click Open Object.
The OPC EAR appears in the Applications tree on the left panel.
Enable order approval notifications.
In the Applications tree on the left panel, select OrderProcessingCenterEAR
-> OrderProcessingCenterJAR -> MailOrderApprovalMDB.
In the inspector on the right panel, select the Env. Entries tab.
Select the param/SendApprovalMail entry, and set its value
to true.
Enable order confirmation notifications.
In the Applications tree on the left panel, select OrderProcessingCenterEAR
-> OrderProcessingCenterJAR -> MailInvoiceMDB.
In the inspector on the right panel, select the Env. Entries tab.
Select the param/SendConfirmationMail entry, and set its
value to true.
Enable order completion notifications.
In the Applications tree on the left panel, select OrderProcessingCenterEAR
-> OrderProcessingCenterJAR -> MailCompletedOrderMDB.
In the inspector on the right panel, select the Env. Entries tab.
Select the param/SendCompletedOrderMail entry, and set its
value to true.
Configure the mail service.
In the Applications tree on the left panel, select OrderProcessingCenterEAR
-> MailerJAR -> MailerMDB.
In the inspector on the right panel, select the Resource Refs tab.
Select the mail/MailSession entry and edit the deployment
settings at the bottom of the panel:
Change the From field to the e-mail address for the From: header
of the confirmation messages.
Change the Host field to the name of the mail server through which
the confirmation e-mails should be sent.
Change the User Name to the name you use to access the mail server.
Save your changes.
From the main menu, select File -> Save.
Setting Up E-mail Notifications by Editing
the Deployment Descriptors
To set up e-mail notifications by editing the deployment descriptors,
follow these steps:
Open the OPC application's standard EJB deployment descriptor.
Using a text editor, open <petstore.home>/src/apps/opc/src/ejb-jar.xml
Enable order approval notifications.
Look for these lines:
<env-entry> <env-entry-name>param/SendApprovalMail</env-entry-name> <env-entry-type>java.lang.Boolean</env-entry-type> <env-entry-value>true</env-entry-value> </env-entry>
Ensure that the env-entry-value entry is set to true.
Enable order confirmation notifications.
Look for these lines:
<env-entry> <env-entry-name>param/SendConfirmationMail</env-entry-name> <env-entry-type>java.lang.Boolean</env-entry-type> <env-entry-value>true</env-entry-value> </env-entry>
Ensure that the env-entry-value entry is set to true.
Enable order completion notifications.
Look for these lines:
<env-entry> <env-entry-name>param/SendCompletedOrderMail</env-entry-name> <env-entry-type>java.lang.Boolean</env-entry-type> <env-entry-value>true</env-entry-value> </env-entry>
Ensure that the env-entry-value entry is set to true.
Save your changes to the standard EJB deployment descriptor.
Open the OPC application's J2EE RI specific deployment descriptor.
Using a text editor, open <petstore.home>/src/apps/opc/src/sun-j2ee-ri.xml.
Configure the mail service.
Look for these lines:
<mail-configuration> <name>yourname</name> <mail-from>customerservice@javapetstoredemo.com</mail-from> <mail-host>yourmailserver</mail-host> <mail-configuration>
Change the value of the mail-from entry to the e-mail address
for the From: header of the confirmation messages.
Change the value of the mail-host entry to the name of the
mail server through which the confirmation e-mails should be sent.
Change the value of the name entry to the name you use to
access the mail server.
Save your changes to the J2EE RI specific deployment descriptor.
Rebuild the OPC EAR.
If you use the provided build files to rebuild the application, the OPC
EAR is placed in <petstore.home>/apps/opc/build/opc.ear. (For
more information on building the application, see Building the Demo.)
After you make your changes, the Java Pet Store Demo sends e-mail notifications
the next time you deploy the OPC EAR.
To test the e-mail notifications, visit the Storefront, create a new
user with your e-mail address, and complete an order. If the order is approved,
you will receive an e-mail. You will receive one or more e-mails as parts
of the order are fulfilled. When the order is completely fulfilled, you
will receive one final e-mail. (For more information on how orders work
in the pet store application, see Using the Demo.)
Adding a New Localization
The Storefront of the Java Pet Store Demo is internationalized, and
comes with the English (en) and Japanese (ja) localizations.
To add another localization, follow these steps:
Add new JSP pages for the locale.
Place these in the subdirectory <petstore.home>/src/apps/petstore/src/docroot/<locale.code>/,
where <locale.code> is the string representation of the locale.
For example, the JSP pages for the Japanese localization are located
in the directory <petstore.home>/src/apps/petstore/src/docroot/ja/.
Create a localized screen definitions file.
Place the screen definitions (which use your localized JSP pages, of
course) in a file called <petstore.home>/src/apps/petstore/src/docroot/WEB-INF/screendefinitions_<locale.code>.xml,
where <locale.code> is the string representation of the locale.
For example, the Japanese screen definitions are stored in <petstore.home>/src/apps/petstore/src/docroot/WEB-INF/screendefinitions_ja_JP.xml.
Add new catalog data for the locale.
The XML file <petstore.home>/src/apps/petstore/src/docroot/populate/Populate-UTF8.xml
contains the data used to populate the pet store's database. Localizing
the catalog for a particular language involves adding new data to this XML
file.
To support localization, the CategoryDetails, ProductDetails,
and ItemDetails elements take a xml:lang locale attribute. Before
adding your own localized data, you may find it helpful to refer to the Japanese
data in the XML file for examples.
Configuring the Database
The Storefront and Supplier applications in the Java Pet Store Demo can
be configured to use a different database from the default one (Cloudscape).
Using a different database may require different SQL statements (e.g. create
table, drop table) from the default ones. These statements
can be specified by editing some of the sample application's XML configuration
files.
To configure the sample application to use a different database:
-
Add a new entry to the <petstore.home>/src/apps/petstore/src/docroot/populate/PopulateSQL.xml
configuration file.
Each database for which the sample application is configured has a
DatabaseStatements entry, which contains fragments for
performing various SQL operations on the application's database tables. For
example, here is a fragment from the default (Cloudscape) entry:
<DatabaseStatements database="cloudscape"> <TableStatements table="category"> <CheckStatement> select * from category </CheckStatement> <CreateStatement> create table category (catid char(10) not null, constraint pk_category primary key (catid)) </CreateStatement> <InsertStatement> insert into category values (?) </InsertStatement> <DropStatement> drop table category </DropStatement> </TableStatements> ...
To create a new DatabaseStatements entry for a different
database, it is easiest to copy the default entry and edit the fragments
in the new copy. Note that each DatabaseStatements entry has
a database attribute uniquely identifying the database
to which it belongs. So, before editing the new copy, make sure to change
the value of this attribute to a unique identifier. Remember this identifier
as you complete the rest of these steps.
When editing the new DatabaseStatements entry, edit only
the fragments. The sample application expects certain elements and attributes
in this file. Also, make sure that the parentheses are balanced.
-
Add a new entry to the <petstore.home>/src/apps/petstore/src/docroot/CatalogDAOSQL.xml
configuration file.
Each database for which the sample application is configured has a
DAOStatements entry, which contains fragments for performing
select statements on the application's database tables.
For example, here is a fragment from the default (Cloudscape) entry:
<DAOStatements database="cloudscape"> <SQLStatement method="GET_CATEGORY"> <SQLFragment parameterNb="2"> select name, descn from (category a join category_details b on a.catid=b.catid) where locale = ? and a.catid = ? </SQLFragment> </SQLStatement> <SQLStatement method="GET_CATEGORIES"> <SQLFragment parameterNb="1"> select a.catid, name, descn from (category a join category_details b on a.catid=b.catid) where locale = ? order by name </SQLFragment> </SQLStatement> ...
To create a new DAOStatements entry for a different database,
it is easier to copy the default entry and edit the fragments in the new
copy. Note that each DAOStatements entry has a database
attribute uniquely identifying the database to which it belongs. So, before
editing the new copy, make sure to change the value of this attribute to
the unique identifier you chose in step 1.
When editing the new DAOStatements entry, edit only the
fragments. The sample application expects certain elements and attributes
in this file. Also, make sure that the parentheses are balanced.
-
Edit the Storefront's Web deployment descriptor, <petstore.home>/src/apps/petstore/src/docroot/WEB-INF/web.xml.
Look for the following entry:
<init-param> <param-name>Database</param-name> <param-value>cloudscape</param-value> </init-param>
Change the value of the param-value sub-entry to the unique
identifier you chose in step 1.
Also look for the following entry:
<env-entry> <env-entry-name>param/CatalogDAODatabase</env-entry-name> <env-entry-value>cloudscape</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry>
Change the value of the env-entry-value sub-entry to the
unique identifier you chose in step 1.
-
Edit the catalog component's EJB deployment descriptor, <petstore.home>/src/components/catalog/src/ejb-jar.xml.
Look for the following entry:
<env-entry> <env-entry-name>param/CatalogDAODatabase</env-entry-name> <env-entry-value>cloudscape</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry>
Change the value of the env-entry-value sub-entry to the
unique identifier you chose in step 1.
You also have the option of changing the catalog and inventory information
used to populate the sample application's database. To modify this data,
edit the file <petstore.home>/src/apps/petstore/src/docroot/populate/Populate-UTF8.xml.
|