Roger, Sheetal: Change to automated test environment to support clustering

From: Ed Burns <>
Date: Sat, 1 Jan 2011 06:06:25 -0800

This change impacts everyone running Mojarra automated tests on
GlassFish 3.1. In particular, Roger and Sheetal need to read this
changebundle carefully.

This is the hudson job to watch

Revision: 8769

Make the automated test infrastructure cluster aware when running in GlassFish 3.1

I have tested this on 3.1 with, and without that

I have tested this on 3.0.1.

It worked in all cases.

SECTION: Modified Files
M common/ant/glassfishV3.1/container.xml

- When running on 3.1 all in-container tests now run in a custom domain
  created just for this purpose: mojarra-domain. This domain is
  automatically created when the testing starts, and deleted when the
  testing completes.

  Unless the system property is set to true, the tests
  create an N node local cluster named mojarra-cluster. The number of
  nodes is controlled via the instance.numbers property, which is a
  comma separated list of integers between 1 and 5, with no duplicates.
  The default value is

    <property name="instance.numbers" value="1,2" />

- Introduce a new required target, define.cluster.aware.port. This is
  important because the cluster port is different than the non-cluster
  port. The V3.1 variant of this target takes special action depending
  on if clustering is desired, the default, or not.

M common/ant/glassfish/container.xml
M common/ant/glassfishV3/container.xml
M common/ant/glassfishV3prelude/container.xml
M common/ant/tomcat6/container.xml

- Stub out the define.cluster.aware.port to just return container.port
  because these containers do not natively support clustering.

M jsf-ri/build.xml

- change the ordering of tests. Now the order is systest, junit test,
  systest-per-webapp, cactus test. Cactus doesn't seem to like
  clustering so I run the cactus tests in non-clustered mode. That's
  why cactus test is at the end.

M jsf-ri/build-tests.xml
M jsf-ri/systest/build-tests.xml

- pass the cluster.aware.port to the cactus tests. This is necessary
  even in the non-clustered case, because of the new mojarra-domain

- Make test launching targets depend on define.cluster.aware.port

M jsf-ri/systest-per-webapp/build.xml
M jsf-ri/systest-per-webapp/build-tests.xml
M build.xml

M jsf-ri/systest/src/com/sun/faces/htmlunit/

- This is an important change. If clustering is enabled (the default)
  requests will go to a random instance in the cluster. A new set of
  sticky methods have been added for tests that want all requests in the
  test to go to the same instance in the cluster.

M jsf-ri/systest/src/com/sun/faces/systest/
M jsf-ri/systest/src/com/sun/faces/systest/
M jsf-ri/systest-per-webapp/request-char-encoding-no-session/src/java/com/sun/faces/systest/

- These tests require session stickiness, so they have to make their
  requests all go to the same instance.
|        | office: +1 407 458 0017
| homepage:               |