The admin infrastructure quicklook tests.

Instructions to run:
1- as part of overall tests.
2- stand-alone.

For 1, you do not have to do anything, it will be executed as part of the top-level QL.

For 2, you need to use your own ANT.
- set S1AS_HOME
- set APS_HOME as the environmental variables.
- make sure that the servers are started (in case of PE, start the default domain, in case of EE start the sqe-domain, node agent and server instance).
- ant <target-that-you-wish-to-test>.

$Author: $
$Id: $
Note that most of the variables (ANT properties) are reused from the current quicklook infrastructure. Here are some of them:

<Shell Environment as property>
  env.S1AS_HOME -> The server installation path.
  env.APS_HOME -> The location (absolute) of the tests directory.
</Shell Environment as property>
<Property as part of ANT>
  src.dir=src
  test.module.name=admin-infrastructure
  APPCLIENT -> <S1AS_HOME/bin>/appclient.bat
  ASADMIN -> <S1AS_HOME>/bin/asadmin.bat
  ld.library.path -> <S1AS_HOME>/bin
  s1as.classpath = <The Entire ClassPath that we can rely on for compilation/running, including where the test classes are compiled>
 admin.domain -> domain1
 admin.password -> adminadmin
 ssl.password -> changeit
 resources.dottedname.prefix -> domain.resources
 results.mailer -> QLTestsForPEInstallOrDASInEEInstall@sun.com
 admin.domain.dir -> D:\work\gf\latest\serverimage/domains
 admin.user -> admin
 config.dottedname.prefix -> server
 precompilejsp -> true
 http.port -> 8080
 https.port -> 8181
 results.mailee -> yourname@sun.com
 appserver.instance.name -> server
 http.host -> localhost
 admin.port -> 4848
 autodeploy.dir -> D:\work\gf\latest\serverimage/domains/domain1/autodeploy
 orb.port -> 3700
 admin.host -> localhost
 as.props -> --user admin --password adminadmin --host localhost --port 4848
 authrealmname -> file
 build.classes.dir -> <The parent directory of the directory where the classes should get compiled>
 das.host -> localhost
 das.jmx.port -> 8686
 http.listener1.port -> 38080
 http.listener2.port -> 38181
 orb.listener1.port -> 33700
 ssl.port -> 33820
 ssl.mutualauth.port -> 33920
 jmx.system.connector.port -> 38686
 http.listener1.port.two -> 38081
 http.listener2.port.two -> 38182
 orb.listener1.port.two -> 33701
 ssl.port.two -> 33821
 ssl.mutualauth.port.two -> 33921
 jmx.system.connector.port.two -> 38687
