<chapter id="appendix">

   <title>Appendix</title>
   <sect1>
      <title id="examplePOJO">Example POJO</title>

      <para>The example POJO classes used for
         are:
         <literal>Person,</literal> <literal>Student,</literal>
         and
         <literal>Address</literal>. Below are their defintion
         (note that
         neither class implements
         <literal>Serializable</literal>
         ).
      </para>

      <programlisting>public class Person {
   String name=null;
   int age=0;
   Map hobbies=null;
   Address address=null;
   Set skills;
   List languages;

   public String getName() { return name; }
   public void setName(String name) { this.name=name; }

   public int getAge() { return age; }
   public void setAge(int age) { this.age = age; }

   public Map getHobbies() { return hobbies; }
   public void setHobbies(Map hobbies) { this.hobbies = hobbies; }

   public Address getAddress() { return address; }
   public void setAddress(Address address) { this.address = address; }

   public Set getSkills() { return skills; }
   public void setSkills(Set skills) { this.skills = skills; }

   public List getLanguages() { return languages; }
   public void setLanguages(List languages) { this.languages = languages; }
}</programlisting>

      <programlisting>public class Student extends Person {
   String year=null;

   public String getYear() { return year; }
   public void setYear(String year) { this.year=year; }
}</programlisting>

      <programlisting>public class Address {
   String street=null;
   String city=null;
   int zip=0;

   public String getStreet() { return street; }
   public void setStreet(String street) { this.street=street; }
   ...
}</programlisting>
   </sect1>

   <sect1 id="xml" revision="1">
      <title>Sample configuration xml</title>

      <para>
         Below is a sample xml configuration for PojoCache. Today, it uses the same configuration option as that
         of TreeCache super-class except the MBean service class (if you are deploying it under JBoss).
      </para>
      <programlisting>
&lt;?xml version="1.0" encoding="UTF-8" ?&gt;

&lt;server&gt;
&lt;mbean code="org.jboss.cache.aop.PojoCache" name="jboss.cache:service=PojoCache"&gt;
&lt;depends&gt;jboss:service=TransactionManager&lt;/depends&gt;

&lt;!--         Configure the TransactionManager --&gt;
&lt;attribute name="TransactionManagerLookupClass"&gt;org.jboss.cache.DummyTransactionManagerLookup&lt;/attribute&gt;

&lt;!--             Isolation level : SERIALIZABLE
                            REPEATABLE_READ (default)
                            READ_COMMITTED
                            READ_UNCOMMITTED
                            NONE
--&gt;
&lt;attribute name="IsolationLevel"&gt;REPEATABLE_READ&lt;/attribute&gt;

&lt;!--              Valid modes are LOCAL, REPL_ASYNC and REPL_SYNC --&gt;
&lt;attribute name="CacheMode"&gt;REPL_SYNC&lt;/attribute&gt;

&lt;!--         Just used for async repl: use a replication queue --&gt;
&lt;attribute name="UseReplQueue"&gt;false&lt;/attribute&gt;

&lt;!--             Replication interval for replication queue (in ms) --&gt;
&lt;attribute name="ReplQueueInterval"&gt;0&lt;/attribute&gt;

&lt;!--             Max number of elements which trigger replication --&gt;
&lt;attribute name="ReplQueueMaxElements"&gt;0&lt;/attribute&gt;

&lt;!--  Name of cluster. Needs to be the same for all clusters, in order
           to find each other
--&gt;
&lt;attribute name="ClusterName"&gt;TreeCache-Cluster&lt;/attribute&gt;

&lt;!--  JGroups protocol stack properties. Can also be a URL,
           e.g. file:/home/bela/default.xml
         &lt;attribute name="ClusterProperties"&gt;&lt;/attribute&gt;
--&gt;
&lt;attribute name="ClusterConfig"&gt;

&lt;config&gt;
&lt;!--  UDP: if you have a multihomed machine,
              set the bind_addr attribute to the appropriate NIC IP address, e.g bind_addr="192.168.0.2"
--&gt;
&lt;!--  UDP: On Windows machines, because of the media sense feature
               being broken with multicast (even after disabling media sense)
               set the loopback attribute to true
--&gt;
&lt;UDP mcast_addr="228.1.2.3" mcast_port="48866" ip_ttl="64" ip_mcast="true" mcast_send_buf_size="150000" mcast_recv_buf_size="80000" ucast_send_buf_size="150000" ucast_recv_buf_size="80000" loopback="false" /&gt;
&lt;PING timeout="2000" num_initial_members="3" up_thread="false" down_thread="false" /&gt;
&lt;MERGE2 min_interval="10000" max_interval="20000" /&gt;
&lt;FD_SOCK /&gt;
&lt;VERIFY_SUSPECT timeout="1500" up_thread="false" down_thread="false" /&gt;
&lt;pbcast.NAKACK gc_lag="50" retransmit_timeout="600,1200,2400,4800" max_xmit_size="8192" up_thread="false" down_thread="false" /&gt;
&lt;UNICAST timeout="600,1200,2400" window_size="100" min_threshold="10" down_thread="false" /&gt;
&lt;pbcast.STABLE desired_avg_gossip="20000" up_thread="false" down_thread="false" /&gt;
&lt;FRAG frag_size="8192" down_thread="false" up_thread="false" /&gt;
&lt;pbcast.GMS join_timeout="5000" join_retry_timeout="2000" shun="true" print_local_addr="true" /&gt;
&lt;pbcast.STATE_TRANSFER up_thread="true" down_thread="true" /&gt;
&lt;/config&gt;
&lt;/attribute&gt;

&lt;!--         Whether or not to fetch state on joining a cluster --&gt;
&lt;attribute name="FetchStateOnStartup"&gt;true&lt;/attribute&gt;

&lt;!--             The max amount of time (in milliseconds) we wait until the
            initial state (ie. the contents of the cache) are retrieved from
            existing members in a clustered environment

--&gt;
&lt;attribute name="InitialStateRetrievalTimeout"&gt;5000&lt;/attribute&gt;

&lt;!--             Number of milliseconds to wait until all responses for a
            synchronous call have been received.
--&gt;
&lt;attribute name="SyncReplTimeout"&gt;15000&lt;/attribute&gt;

&lt;!--  Max number of milliseconds to wait for a lock acquisition --&gt;
&lt;attribute name="LockAcquisitionTimeout"&gt;10000&lt;/attribute&gt;

&lt;!--  Name of the eviction policy class. --&gt;
&lt;attribute name="EvictionPolicyClass" /&gt;
&lt;/mbean&gt;
&lt;/server&gt;
      </programlisting>

   </sect1>

</chapter>

