Steps to run the lazyInit devtests
----------------------------------

1. Create a clean appserver domain. This is to make sure that no applications are deployed in the server and no resources are created.

2. Start the domain.

3. Set S1AS_HOME (=glassfish installation location), APS_HOME(=appserv-tests directory), ANT_HOME, JAVA_HOME variables.

4. cd $APS_HOME	

5. ant startDerby

6. cd $APS_HOME/devtests/lazyInit

7. ant runtest all.

Comments.
--------

- The tests restarts the server many times in between.

- Lazy Initialization is implicitely tested due to the restarts.

- It is ideal to tail the server.log while you run the tests.
