This is an example that illustrates using PojoCache to replicate
over a cluster state information about students and the courses they take.

In this example, where necessary the domain model classes have been
annotated with JDK-14 style @@org.jboss.cache.aop.AopMarker and
@@org.jboss.cache.aop.InstanceOfAopMarker annotations.  To run the
example, the annoc pre-compiler needs to be run to compile the annotations.
Once annoc has been run, aopc is used to instrument the classes in the
domain model before the example is run.

The example involves 4 domain model classes, Person, Student, Address
and Course.  Student is a subclass of Person.  A Person has an Address, while
a Student can be registered for 0 or more Courses.

The class test.examples.StudentMaintTest:

1. Creates two PojoCache instances.
2. Creates two Student instances, assigns them an Address and a Course, and then
puts them in the cache.
3. Changes various state fields related to the Students and Courses, and
generates output to stdout to show that the state changes are reflected in the
other node in the cache.

The java source files for the example as well as the jboss-aop.xml file
used by aopc can be found in the src directory.

You can run the example through Ant.

1. Run "build.bat compile" to do a standard Java compilation.

2. Run "build.bat annoc" to pre-compile the annotations. This
target depends on "compile", so running it causes "annoc" to run as well.
Note that the "annoc" and "aopc" targets are defined in PojoCacheTasks.xml.

3. Run "build.bat aopc" to instrument the domain model classes. This
target depends on "annoc", so running it causes "annoc" to run as well.

4. Run "build.bat run.aop.example" to run the example.  This target
depends on "aopc", so calling it will cause "compile", "annoc" and "aopc" to
run as well.

5. Finally, if the field is not replicated correctly, a RuntimeException will
be thrown.

