You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by jo...@apache.org on 2010/06/20 00:15:13 UTC

svn commit: r956304 [10/33] - in /qpid/site/docs/books/0.7: ./ AMQP-Messaging-Broker-CPP-Book/ AMQP-Messaging-Broker-CPP-Book/html-single/ AMQP-Messaging-Broker-CPP-Book/html-single/images/ AMQP-Messaging-Broker-CPP-Book/html-single/images/jmx_console/...

Added: qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02.html
URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02.html?rev=956304&view=auto
==============================================================================
--- qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02.html (added)
+++ qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02.html Sat Jun 19 22:15:03 2010
@@ -0,0 +1,239 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 2. How Tos</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="AMQP Messaging Broker (Implemented in Java)"><link rel="up" href="index.html" title="AMQP Messaging Broker (Implemented in Java)"><link rel="prev" href="ch01s04.html" title="4.  Qpid Troubleshooting Guide"><link rel="next" href="ch02s02.html" title="2.  Configure ACLs"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 2. How Tos</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch01s04.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch02s02.html">Next</a></td></tr></table><hr></div><div class="chapter" title="Chapter 2
 . How Tos"><div class="titlepage"><div><div><h2 class="title"><a name="Qpid-Java-Broker-HowTos"></a>Chapter 2. How Tos</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="ch02.html#id2927310">1. 
+      Add New Users
+    </a></span></dt><dd><dl><dt><span class="section"><a href="ch02.html#AddNewUsers-AvailablePasswordfileformats">1.1. 
+            Available
+            Password file formats
+          </a></span></dt><dt><span class="section"><a href="ch02.html#AddNewUsers-Dynamicchangestopasswordfiles.">1.2. 
+            Dynamic
+            changes to password files.
+          </a></span></dt><dt><span class="section"><a href="ch02.html#AddNewUsers-HowpasswordfilesandPrincipalDatabasesrelatetoauthenticationmechanisms">1.3. 
+            How password files and PrincipalDatabases relate to
+            authentication mechanisms
+          </a></span></dt></dl></dd><dt><span class="section"><a href="ch02s02.html">2. 
+      Configure ACLs
+    </a></span></dt><dd><dl><dt><span class="section"><a href="ch02s02.html#ConfigureACLs-ConfigureACLs">2.1. 
+            Configure ACLs
+          </a></span></dt></dl></dd><dt><span class="section"><a href="ch02s03.html">3. 
+      Configure Java Qpid to use a SSL connection.
+    </a></span></dt><dd><dl><dt><span class="section"><a href="ch02s03.html#ConfigureJavaQpidtouseaSSLconnection.-UsingSSLconnectionwithQpidJava.">3.1. 
+            Using SSL connection with Qpid Java.
+          </a></span></dt><dt><span class="section"><a href="ch02s03.html#ConfigureJavaQpidtouseaSSLconnection.-Setup">3.2. 
+            Setup
+          </a></span></dt><dt><span class="section"><a href="ch02s03.html#ConfigureJavaQpidtouseaSSLconnection.-Performingtheconnection.">3.3. 
+            Performing
+            the connection.
+          </a></span></dt></dl></dd><dt><span class="section"><a href="ch02s04.html">4. 
+      Configure Log4j CompositeRolling Appender
+    </a></span></dt><dd><dl><dt><span class="section"><a href="ch02s04.html#ConfigureLog4jCompositeRollingAppender-HowtoconfiguretheCompositeRollinglog4jAppender">4.1. 
+            How to configure the CompositeRolling log4j Appender
+          </a></span></dt></dl></dd><dt><span class="section"><a href="ch02s05.html">5. 
+      Configure the Broker via config.xml
+    </a></span></dt><dd><dl><dt><span class="section"><a href="ch02s05.html#ConfiguretheBrokerviaconfig.xml-Brokerconfig.xmlOverview">5.1. 
+            Broker config.xml Overview
+          </a></span></dt><dt><span class="section"><a href="ch02s05.html#ConfiguretheBrokerviaconfig.xml-QpidVersion">5.2. 
+            Qpid
+            Version
+          </a></span></dt></dl></dd><dt><span class="section"><a href="ch02s06.html">6. 
+      Configure the Virtual Hosts via virtualhosts.xml
+    </a></span></dt><dd><dl><dt><span class="section"><a href="ch02s06.html#ConfiguretheVirtualHostsviavirtualhosts.xml-virtualhosts.xmlOverview">6.1. 
+            virtualhosts.xml Overview
+          </a></span></dt></dl></dd><dt><span class="section"><a href="ch02s07.html">7. 
+      Debug using log4j
+    </a></span></dt><dd><dl><dt><span class="section"><a href="ch02s07.html#Debugusinglog4j-Debuggingwithlog4jconfigurations">7.1. 
+            Debugging
+            with log4j configurations
+          </a></span></dt></dl></dd><dt><span class="section"><a href="ch02s08.html">8. 
+      How to Tune M3 Java Broker Performance
+    </a></span></dt><dd><dl><dt><span class="section"><a href="ch02s08.html#HowtoTuneM3JavaBrokerPerformance-ProblemStatement">8.1. 
+            Problem
+            Statement
+          </a></span></dt><dt><span class="section"><a href="ch02s08.html#HowtoTuneM3JavaBrokerPerformance-SuccessfulTuningOptions">8.2. 
+            Successful
+            Tuning Options
+          </a></span></dt><dt><span class="section"><a href="ch02s08.html#HowtoTuneM3JavaBrokerPerformance-NextSteps">8.3. 
+            Next
+            Steps
+          </a></span></dt></dl></dd><dt><span class="section"><a href="ch02s09.html">9. 
+      Qpid Java Build How To
+    </a></span></dt><dd><dl><dt><span class="section"><a href="ch02s09.html#QpidJavaBuildHowTo-BuildInstructionsGeneral">9.1. 
+            Build
+            Instructions - General
+          </a></span></dt><dt><span class="section"><a href="ch02s09.html#QpidJavaBuildHowTo-BuildInstructionsTrunk">9.2. 
+            Build
+            Instructions - Trunk
+          </a></span></dt></dl></dd><dt><span class="section"><a href="ch02s10.html">10. 
+      Use Priority Queues
+    </a></span></dt><dd><dl><dt><span class="section"><a href="ch02s10.html#UsePriorityQueues-GeneralInformation">10.1. 
+            General
+            Information
+          </a></span></dt><dt><span class="section"><a href="ch02s10.html#UsePriorityQueues-DefiningPriorityQueues">10.2. 
+            Defining
+            Priority Queues
+          </a></span></dt><dt><span class="section"><a href="ch02s10.html#UsePriorityQueues-Clientconfiguration-2Fmessagingmodelforpriorityqueues">10.3. 
+            Client configuration/messaging model for priority queues
+          </a></span></dt></dl></dd></dl></div><div class="section" title="1.  Add New Users"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2927310"></a>1. 
+      Add New Users
+    </h2></div></div></div><p>
+            The Qpid Java Broker has a single reference source (<a class="xref" href="">???</a>) that
+            defines all the users in the system.
+          </p><p>
+            To add a new user to the broker the password file must be
+            updated. The details about adding entries and when these updates
+            take effect are dependent on the file format each of which are
+            described below.
+          </p><div class="section" title="1.1.  Available Password file formats"><div class="titlepage"><div><div><h3 class="title"><a name="AddNewUsers-AvailablePasswordfileformats"></a>1.1. 
+            Available
+            Password file formats
+          </h3></div></div></div><p>
+            There are currently two different file formats available for use
+            depending on the PrincipalDatabase that is desired. In all cases
+            the clients need not be aware of the type of PrincipalDatabase in
+            use they only need support the SASL mechanisms they provide.
+          </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
+              <a class="xref" href="ch02.html#AddNewUsers-Plain" title="1.1.1.  Plain">Section 1.1.1, &#8220;
+            Plain
+          &#8221;</a>
+            </p></li><li class="listitem"><p>
+              <a class="xref" href="ch02.html#AddNewUsers-Base64MD5PasswordFileFormat" title="1.1.3.  Base64MD5 Password File Format">Section 1.1.3, &#8220;
+            Base64MD5
+            Password File Format
+          &#8221;</a>
+            </p></li></ul></div><p>
+            
+          </p><div class="section" title="1.1.1.  Plain"><div class="titlepage"><div><div><h4 class="title"><a name="AddNewUsers-Plain"></a>1.1.1. 
+            Plain
+          </h4></div></div></div><p>
+            The plain file has the following format:
+          </p><pre class="programlisting">
+# Plain password authentication file.
+# default name : passwd
+# Format &lt;username&gt;:&lt;password&gt;
+#e.g.
+martin:password
+</pre><p>
+            As the contents of the file are plain text and the password is
+            taken to be everything to the right of the ':'(colon). The
+            password, therefore, cannot contain a ':' colon, but this can be
+            used to delimit the password.
+          </p><p>
+            Lines starting with a '#' are treated as comments.
+          </p></div><div class="section" title="1.1.2.  Where is the password file for my broker ?"><div class="titlepage"><div><div><h4 class="title"><a name="AddNewUsers-Whereisthepasswordfileformybroker-3F"></a>1.1.2. 
+            Where is
+            the password file for my broker ?
+          </h4></div></div></div><p>
+            The location of the password file in use for your broker is as
+            configured in your config.xml file.
+          </p><pre class="programlisting">
+&lt;principal-databases&gt;
+            &lt;principal-database&gt;
+                &lt;name&gt;passwordfile&lt;/name&gt;
+                &lt;class&gt;org.apache.qpid.server.security.auth.database.PlainPasswordFilePrincipalDatabase&lt;/class&gt;
+                &lt;attributes&gt;
+                    &lt;attribute&gt;
+                        &lt;name&gt;passwordFile&lt;/name&gt;
+                        &lt;value&gt;${conf}/passwd&lt;/value&gt;
+                    &lt;/attribute&gt;
+                &lt;/attributes&gt;
+            &lt;/principal-database&gt;
+        &lt;/principal-databases&gt;
+</pre><p>
+            So in the example config.xml file this password file lives in the
+            directory specified as the conf directory (at the top of your
+            config.xml file).
+          </p><p>
+            If you wish to use Base64 encoding for your password file, then
+            in the &lt;class&gt; element above you should specify
+            org.apache.qpid.server.security.auth.database.Base64MD5PasswordFilePrincipalDatabase
+          </p><p>
+            The default is:
+          </p><pre class="programlisting">
+ &lt;conf&gt;${prefix}/etc&lt;/conf&gt;
+</pre></div><div class="section" title="1.1.3.  Base64MD5 Password File Format"><div class="titlepage"><div><div><h4 class="title"><a name="AddNewUsers-Base64MD5PasswordFileFormat"></a>1.1.3. 
+            Base64MD5
+            Password File Format
+          </h4></div></div></div><p>
+            This format can be used to ensure that SAs cannot read the plain
+            text password values from your password file on disk.
+          </p><p>
+            The Base64MD5 file uses the following format:
+          </p><pre class="programlisting">
+# Base64MD5 password authentication file
+# default name : qpid.passwd
+# Format &lt;username&gt;:&lt;Base64 Encoded MD5 hash of the users password&gt;
+#e.g.
+martin:X03MO1qnZdYdgyfeuILPmQ==
+</pre><p>
+            As with the Plain format the line is delimited by a ':'(colon).
+            The password field contains the MD5 Hash of the users password
+            encoded in Base64.
+          </p><p>
+            This file is read on broker start-up and is not re-read.
+          </p></div><div class="section" title="1.1.4.  How can I update a Base64MD5 password file ?"><div class="titlepage"><div><div><h4 class="title"><a name="AddNewUsers-HowcanIupdateaBase64MD5passwordfile-3F"></a>1.1.4. 
+            How can
+            I update a Base64MD5 password file ?
+          </h4></div></div></div><p>
+            To update the file there are two options:
+          </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Edit the file by hand using the <span class="emphasis"><em>qpid-passwd</em></span> tool
+            that will generate the required lines. The output from the tool
+            is the text that needs to be copied in to your active password
+            file. This tool is located in the broker bin directory.
+              Eventually it is planned for this tool to emulate the
+              functionality of <a class="xref" href="">???</a>
+              for qpid passwd files.
+              <span class="emphasis"><em>NOTE:</em></span> For the changes to be seen by the broker you must
+              either restart the broker or reload the data with the
+              management tools (see <a class="xref" href="ch03.html#Qpid-JMX-Management-Console-User-Guide" title="1.1.5.  Qpid JMX Management Console User Guide">Section 1.1.5, &#8220;
+      Qpid JMX Management Console User Guide
+    &#8221;</a>)
+            </p></li><li class="listitem"><p>Use the management tools to create a new user. The changes
+            will be made by the broker to the password file and the new user
+            will be immediately available to the system (see <a class="xref" href="ch03.html#Qpid-JMX-Management-Console-User-Guide" title="1.1.5.  Qpid JMX Management Console User Guide">Section 1.1.5, &#8220;
+      Qpid JMX Management Console User Guide
+    &#8221;</a>).
+            </p></li></ol></div></div></div><div class="section" title="1.2.  Dynamic changes to password files."><div class="titlepage"><div><div><h3 class="title"><a name="AddNewUsers-Dynamicchangestopasswordfiles."></a>1.2. 
+            Dynamic
+            changes to password files.
+          </h3></div></div></div><p>
+            The Plain password file and the Base64MD5 format file are both
+            only read once on start up.
+          </p><p>
+            To make changes dynamically there are two options, both require
+            administrator access via the Management Console (see <a class="xref" href="ch03.html#Qpid-JMX-Management-Console-User-Guide" title="1.1.5.  Qpid JMX Management Console User Guide">Section 1.1.5, &#8220;
+      Qpid JMX Management Console User Guide
+    &#8221;</a>)
+          </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>You can replace the file and use the console to reload its
+            contents.
+            </p></li><li class="listitem"><p>The management console provides an interface to create,
+            delete and amend the users. These changes are written back to the
+            active password file.
+            </p></li></ol></div></div><div class="section" title="1.3.  How password files and PrincipalDatabases relate to authentication mechanisms"><div class="titlepage"><div><div><h3 class="title"><a name="AddNewUsers-HowpasswordfilesandPrincipalDatabasesrelatetoauthenticationmechanisms"></a>1.3. 
+            How password files and PrincipalDatabases relate to
+            authentication mechanisms
+          </h3></div></div></div><p>
+            For each type of password file a PrincipalDatabase exists that
+            parses the contents. These PrincipalDatabases load various SASL
+            mechanism based on their supportability. e.g. the Base64MD5 file
+            format can't support Plain authentication as the plain password
+            is not available. Any client connecting need only be concerned
+            about the SASL module they support and not the type of
+            PrincipalDatabase. So I client that understands CRAM-MD5 will
+            work correctly with a Plain and Base64MD5 PrincipalDatabase.
+          </p><div class="table"><a name="id2927843"></a><p class="title"><b>Table 2.1. </b></p><div class="table-contents"><table summary="" border="1"><colgroup><col><col></colgroup><tbody><tr><td>
+                  FileFormat/PrincipalDatabase
+                </td><td>
+                  SASL
+                </td></tr><tr><td>
+                  Plain
+                </td><td>
+                  AMQPLAIN PLAIN CRAM-MD5
+                </td></tr><tr><td>
+                  Base64MD5
+                </td><td>
+                  CRAM-MD5 CRAM-MD5-HASHED
+                </td></tr></tbody></table></div></div><br class="table-break"><p>
+            For details of SASL support see <a class="xref" href="">???</a>
+          </p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch01s04.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch02s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">4. 
+      Qpid Troubleshooting Guide
+     </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 2. 
+      Configure ACLs
+    </td></tr></table></div></body></html>

Added: qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s02.html
URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s02.html?rev=956304&view=auto
==============================================================================
--- qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s02.html (added)
+++ qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s02.html Sat Jun 19 22:15:03 2010
@@ -0,0 +1,24 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>2.  Configure ACLs</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="AMQP Messaging Broker (Implemented in Java)"><link rel="up" href="ch02.html" title="Chapter 2. How Tos"><link rel="prev" href="ch02.html" title="Chapter 2. How Tos"><link rel="next" href="ch02s03.html" title="3.  Configure Java Qpid to use a SSL connection."></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">2. 
+      Configure ACLs
+    </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02.html">Prev</a> </td><th width="60%" align="center">Chapter 2. How Tos</th><td width="20%" align="right"> <a accesskey="n" href="ch02s03.html">Next</a></td></tr></table><hr></div><div class="section" title="2.  Configure ACLs"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2927309"></a>2. 
+      Configure ACLs
+    </h2></div></div></div><div class="section" title="2.1.  Configure ACLs"><div class="titlepage"><div><div><h3 class="title"><a name="ConfigureACLs-ConfigureACLs"></a>2.1. 
+            Configure ACLs
+          </h3></div></div></div><div class="section" title="2.1.1.  Specification"><div class="titlepage"><div><div><h4 class="title"><a name="ConfigureACLs-Specification"></a>2.1.1. 
+            Specification
+          </h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
+              <a class="xref" href="">???</a>
+            </p></li><li class="listitem"><p>
+              <a class="xref" href="">???</a>
+            </p></li></ul></div></div><div class="section" title="2.1.2.  C++ Broker"><div class="titlepage"><div><div><h4 class="title"><a name="ConfigureACLs-CBroker"></a>2.1.2. 
+            C++ Broker
+          </h4></div></div></div><p>
+            The C++ broker supports <a class="xref" href="">???</a> of the ACLs
+          </p></div><div class="section" title="2.1.3.  Java Broker"><div class="titlepage"><div><div><h4 class="title"><a name="ConfigureACLs-JavaBroker"></a>2.1.3. 
+            Java Broker
+          </h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
+              <a class="xref" href="">???</a>
+            </p></li><li class="listitem"><p>Support for Version 2 specification is in progress.
+            </p></li></ul></div></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 2. How Tos </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 3. 
+      Configure Java Qpid to use a SSL connection.
+    </td></tr></table></div></body></html>

Added: qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s03.html
URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s03.html?rev=956304&view=auto
==============================================================================
--- qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s03.html (added)
+++ qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s03.html Sat Jun 19 22:15:03 2010
@@ -0,0 +1,46 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>3.  Configure Java Qpid to use a SSL connection.</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="AMQP Messaging Broker (Implemented in Java)"><link rel="up" href="ch02.html" title="Chapter 2. How Tos"><link rel="prev" href="ch02s02.html" title="2.  Configure ACLs"><link rel="next" href="ch02s04.html" title="4.  Configure Log4j CompositeRolling Appender"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">3. 
+      Configure Java Qpid to use a SSL connection.
+    </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s02.html">Prev</a> </td><th width="60%" align="center">Chapter 2. How Tos</th><td width="20%" align="right"> <a accesskey="n" href="ch02s04.html">Next</a></td></tr></table><hr></div><div class="section" title="3.  Configure Java Qpid to use a SSL connection."><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2926875"></a>3. 
+      Configure Java Qpid to use a SSL connection.
+    </h2></div></div></div><div class="section" title="3.1.  Using SSL connection with Qpid Java."><div class="titlepage"><div><div><h3 class="title"><a name="ConfigureJavaQpidtouseaSSLconnection.-UsingSSLconnectionwithQpidJava."></a>3.1. 
+            Using SSL connection with Qpid Java.
+          </h3></div></div></div><p>
+            This section will show how to use SSL to enable secure
+            connections between a Java client and broker.
+          </p></div><div class="section" title="3.2.  Setup"><div class="titlepage"><div><div><h3 class="title"><a name="ConfigureJavaQpidtouseaSSLconnection.-Setup"></a>3.2. 
+            Setup
+          </h3></div></div></div><div class="section" title="3.2.1.  Broker Setup"><div class="titlepage"><div><div><h4 class="title"><a name="ConfigureJavaQpidtouseaSSLconnection.-BrokerSetup"></a>3.2.1. 
+            Broker
+            Setup
+          </h4></div></div></div><p>
+            The broker configuration file (config.xml) needs to be updated to
+            include the SSL keystore location details.
+          </p><pre class="programlisting">
+&lt;!-- Additions required to Connector Section --&gt;
+
+&lt;ssl&gt;
+    &lt;enabled&gt;true&lt;/enabled&gt;
+    &lt;sslOnly&gt;true&lt;/sslOnly&gt;
+    &lt;keystorePath&gt;/path/to/keystore.ks&lt;/keystorePath&gt;
+    &lt;keystorePassword&gt;keystorepass&lt;/keystorePassword&gt;
+&lt;/ssl&gt;
+</pre><p>
+            The sslOnly option is included here for completeness however this
+            will disable the unencrypted port and leave only the SSL port
+            listening for connections.
+          </p></div><div class="section" title="3.2.2.  Client Setup"><div class="titlepage"><div><div><h4 class="title"><a name="ConfigureJavaQpidtouseaSSLconnection.-ClientSetup"></a>3.2.2. 
+            Client
+            Setup
+          </h4></div></div></div><p>
+            The best place to start looking is class
+            <span class="emphasis"><em>SSLConfiguration</em></span> this is provided to the connection
+            during creation however there is currently no example that
+            demonstrates its use.
+          </p></div></div><div class="section" title="3.3.  Performing the connection."><div class="titlepage"><div><div><h3 class="title"><a name="ConfigureJavaQpidtouseaSSLconnection.-Performingtheconnection."></a>3.3. 
+            Performing
+            the connection.
+          </h3></div></div></div><p></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s04.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">2. 
+      Configure ACLs
+     </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 4. 
+      Configure Log4j CompositeRolling Appender
+    </td></tr></table></div></body></html>

Added: qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s04.html
URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s04.html?rev=956304&view=auto
==============================================================================
--- qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s04.html (added)
+++ qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s04.html Sat Jun 19 22:15:03 2010
@@ -0,0 +1,109 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>4.  Configure Log4j CompositeRolling Appender</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="AMQP Messaging Broker (Implemented in Java)"><link rel="up" href="ch02.html" title="Chapter 2. How Tos"><link rel="prev" href="ch02s03.html" title="3.  Configure Java Qpid to use a SSL connection."><link rel="next" href="ch02s05.html" title="5.  Configure the Broker via config.xml"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">4. 
+      Configure Log4j CompositeRolling Appender
+    </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s03.html">Prev</a> </td><th width="60%" align="center">Chapter 2. How Tos</th><td width="20%" align="right"> <a accesskey="n" href="ch02s05.html">Next</a></td></tr></table><hr></div><div class="section" title="4.  Configure Log4j CompositeRolling Appender"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2927727"></a>4. 
+      Configure Log4j CompositeRolling Appender
+    </h2></div></div></div><div class="section" title="4.1.  How to configure the CompositeRolling log4j Appender"><div class="titlepage"><div><div><h3 class="title"><a name="ConfigureLog4jCompositeRollingAppender-HowtoconfiguretheCompositeRollinglog4jAppender"></a>4.1. 
+            How to configure the CompositeRolling log4j Appender
+          </h3></div></div></div><p>
+            There are several sections of our default log4j file that will
+            need your attention if you wish to fully use this Appender.
+          </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Enable the Appender</p><p>
+            The default log4j.xml file uses the FileAppender, swap this for
+            the ArchivingFileAppender as follows:
+          </p><pre class="programlisting">
+    &lt;!-- Log all info events to file --&gt;
+    &lt;root&gt;
+        &lt;priority value="info"/&gt;
+
+        &lt;appender-ref ref="ArchivingFileAppender"/&gt;
+    &lt;/root&gt;
+</pre></li><li class="listitem"><p>
+            Configure the Appender
+          </p><p>
+            The Appender has a number of parameters that can be adjusted
+            depending on what you are trying to achieve. For clarity lets
+            take a quick look at the complete default appender:
+          </p><pre class="programlisting">
+  &lt;appender name="ArchivingFileAppender" class="org.apache.log4j.QpidCompositeRollingAppender"&gt;
+        &lt;!-- Ensure that logs allways have the dateFormat set--&gt;
+        &lt;param name="StaticLogFileName" value="false"/&gt;
+        &lt;param name="File" value="${QPID_WORK}/log/${logprefix}qpid${logsuffix}.log"/&gt;
+        &lt;param name="Append" value="false"/&gt;
+        &lt;!-- Change the direction so newer files have bigger numbers --&gt;
+        &lt;!-- So log.1 is written then log.2 etc This prevents a lot of file renames at log rollover --&gt;
+        &lt;param name="CountDirection" value="1"/&gt;
+        &lt;!-- Use default 10MB --&gt;
+        &lt;!--param name="MaxFileSize" value="100000"/--&gt;
+        &lt;param name="DatePattern" value="'.'yyyy-MM-dd-HH-mm"/&gt;
+        &lt;!-- Unlimited number of backups --&gt;
+        &lt;param name="MaxSizeRollBackups" value="-1"/&gt;
+        &lt;!-- Compress(gzip) the backup files--&gt;
+        &lt;param name="CompressBackupFiles" value="true"/&gt;
+        &lt;!-- Compress the backup files using a second thread --&gt;
+        &lt;param name="CompressAsync" value="true"/&gt;
+        &lt;!-- Start at zero numbered files--&gt;
+        &lt;param name="ZeroBased" value="true"/&gt;
+        &lt;!-- Backup Location --&gt;
+        &lt;param name="backupFilesToPath" value="${QPID_WORK}/backup/log"/&gt;
+
+        &lt;layout class="org.apache.log4j.PatternLayout"&gt;
+            &lt;param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/&gt;
+        &lt;/layout&gt;
+    &lt;/appender&gt;
+</pre><p>
+            The appender configuration has three groups of parameter
+            configuration.
+          </p><p>
+            The first group is for configuration of the file name. The
+            default is to write a log file to QPID_WORK/log/qpid.log
+            (Remembering you can use the logprefix and logsuffix values to
+            modify the file name, see Property Config).
+          </p><pre class="programlisting">
+        &lt;!-- Ensure that logs always have the dateFormat set--&gt;
+        &lt;param name="StaticLogFileName" value="false"/&gt;
+        &lt;param name="File" value="${QPID_WORK}/log/${logprefix}qpid${logsuffix}.log"/&gt;
+        &lt;param name="Append" value="false"/&gt;
+</pre><p>
+            The second section allows the specification of a Maximum File
+            Size and a DatePattern that will be used to move on to the next
+            file.
+          </p><p>
+            When MaxFileSize is reached a new log file will be created
+            The DataPattern is used to decide when to create a new log file,
+            so here a new file will be created for every minute and every
+            10Meg of data. So if 15MB of data is made every minute then there
+            will be two log files created each minute. One at the start of
+            the minute and a second when the file hit 10MB. When the next
+            minute arrives a new file will be made even though it only has
+            5MB of content. For a production system it would be expected to
+            be changed to something like 'yyyy-MM-dd' which would make a new
+            log file each day and keep the files to a max of 10MB.
+          </p><p>
+            The final MaxSizeRollBackups allows you to limit the amount of
+            disk you are using by only keeping the last n backups.
+          </p><pre class="programlisting">
+        &lt;!-- Change the direction so newer files have bigger numbers --&gt;
+        &lt;!-- So log.1 is written then log.2 etc This prevents a lot of file renames at log rollover --&gt;
+        &lt;param name="CountDirection" value="1"/&gt;
+        &lt;!-- Use default 10MB --&gt;
+        &lt;!--param name="MaxFileSize" value="100000"/--&gt;
+        &lt;param name="DatePattern" value="'.'yyyy-MM-dd-HH-mm"/&gt;
+        &lt;!-- Unlimited number of backups --&gt;
+        &lt;param name="MaxSizeRollBackups" value="-1"/&gt;
+</pre><p>
+            The final section allows the old log files to be compressed and
+            copied to a new location.
+          </p><pre class="programlisting">
+        &lt;!-- Compress(gzip) the backup files--&gt;
+        &lt;param name="CompressBackupFiles" value="true"/&gt;
+        &lt;!-- Compress the backup files using a second thread --&gt;
+        &lt;param name="CompressAsync" value="true"/&gt;
+        &lt;!-- Start at zero numbered files--&gt;
+        &lt;param name="ZeroBased" value="true"/&gt;
+        &lt;!-- Backup Location --&gt;
+        &lt;param name="backupFilesToPath" value="${QPID_WORK}/backup/log"/&gt;
+</pre></li></ol></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s03.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s05.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">3. 
+      Configure Java Qpid to use a SSL connection.
+     </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 5. 
+      Configure the Broker via config.xml
+    </td></tr></table></div></body></html>

Added: qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s05.html
URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s05.html?rev=956304&view=auto
==============================================================================
--- qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s05.html (added)
+++ qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s05.html Sat Jun 19 22:15:03 2010
@@ -0,0 +1,36 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>5.  Configure the Broker via config.xml</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="AMQP Messaging Broker (Implemented in Java)"><link rel="up" href="ch02.html" title="Chapter 2. How Tos"><link rel="prev" href="ch02s04.html" title="4.  Configure Log4j CompositeRolling Appender"><link rel="next" href="ch02s06.html" title="6.  Configure the Virtual Hosts via virtualhosts.xml"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">5. 
+      Configure the Broker via config.xml
+    </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s04.html">Prev</a> </td><th width="60%" align="center">Chapter 2. How Tos</th><td width="20%" align="right"> <a accesskey="n" href="ch02s06.html">Next</a></td></tr></table><hr></div><div class="section" title="5.  Configure the Broker via config.xml"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2927793"></a>5. 
+      Configure the Broker via config.xml
+    </h2></div></div></div><div class="section" title="5.1.  Broker config.xml Overview"><div class="titlepage"><div><div><h3 class="title"><a name="ConfiguretheBrokerviaconfig.xml-Brokerconfig.xmlOverview"></a>5.1. 
+            Broker config.xml Overview
+          </h3></div></div></div><p>
+            The broker config.xml file which is shipped in the etc directory
+            of any Qpid binary distribution details various options and
+            configuration for the Java Qpid broker implementation.
+          </p><p>
+            In tandem with the virtualhosts.xml file, the config.xml file
+            allows you to control much of the deployment detail for your Qpid
+            broker in a flexible fashion.
+          </p><p>
+            Note that you can pass the config.xml you wish to use for your
+            broker instance to the broker using the -c command line option.
+            In turn, you can specify the paths for the broker password file
+            and virtualhosts.xml files in your config.xml for simplicity.
+          </p><p>
+            For more information about command line configuration options
+            please see <a class="xref" href="">???</a>.
+          </p></div><div class="section" title="5.2.  Qpid Version"><div class="titlepage"><div><div><h3 class="title"><a name="ConfiguretheBrokerviaconfig.xml-QpidVersion"></a>5.2. 
+            Qpid
+            Version
+          </h3></div></div></div><p>
+            The config format has changed between versions here you can find
+            the configuration details on a per version basis.
+          </p><p>
+            <a class="xref" href="">???</a>
+            <a class="xref" href="">???</a>
+          </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s04.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s06.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">4. 
+      Configure Log4j CompositeRolling Appender
+     </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 6. 
+      Configure the Virtual Hosts via virtualhosts.xml
+    </td></tr></table></div></body></html>

Added: qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s06.html
URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s06.html?rev=956304&view=auto
==============================================================================
--- qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s06.html (added)
+++ qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s06.html Sat Jun 19 22:15:03 2010
@@ -0,0 +1,99 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>6.  Configure the Virtual Hosts via virtualhosts.xml</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="AMQP Messaging Broker (Implemented in Java)"><link rel="up" href="ch02.html" title="Chapter 2. How Tos"><link rel="prev" href="ch02s05.html" title="5.  Configure the Broker via config.xml"><link rel="next" href="ch02s07.html" title="7.  Debug using log4j"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">6. 
+      Configure the Virtual Hosts via virtualhosts.xml
+    </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s05.html">Prev</a> </td><th width="60%" align="center">Chapter 2. How Tos</th><td width="20%" align="right"> <a accesskey="n" href="ch02s07.html">Next</a></td></tr></table><hr></div><div class="section" title="6.  Configure the Virtual Hosts via virtualhosts.xml"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2928591"></a>6. 
+      Configure the Virtual Hosts via virtualhosts.xml
+    </h2></div></div></div><div class="section" title="6.1.  virtualhosts.xml Overview"><div class="titlepage"><div><div><h3 class="title"><a name="ConfiguretheVirtualHostsviavirtualhosts.xml-virtualhosts.xmlOverview"></a>6.1. 
+            virtualhosts.xml Overview
+          </h3></div></div></div><p>
+            This configuration file contains details of all queues and
+            topics, and associated properties, to be created on broker
+            startup. These details are configured on a per virtual host
+            basis.
+          </p><p>
+            Note that if you do not add details of a queue or topic you
+            intend to use to this file, you must first create a consumer on a
+            queue/topic before you can publish to it using Qpid.
+          </p><p>
+            Thus most application deployments need a virtualhosts.xml file
+            with at least some minimal detail.
+          </p><div class="section" title="6.1.1.  XML Format with Comments"><div class="titlepage"><div><div><h4 class="title"><a name="ConfiguretheVirtualHostsviavirtualhosts.xml-XMLFormatwithComments"></a>6.1.1. 
+            XML Format with Comments
+          </h4></div></div></div><p>
+            The virtualhosts.xml which currently ships as part of the Qpid
+            distribution is really targeted at development use, and supports
+            various artifacts commonly used by the Qpid development team.
+          </p><p>
+            As a result, it is reasonably complex. In the example XML below,
+            I have tried to simplify one example virtual host setup which is
+            possibly more useful for new users of Qpid or development teams
+            looking to simply make use of the Qpid broker in their
+            deployment.
+          </p><p>
+            I have also added some inline comments on each section, which
+            should give some extra information on the purpose of the various
+            elements.
+          </p><pre class="programlisting">
+&lt;virtualhosts&gt;
+    &lt;!-- Sets the default virtual host for connections which do not specify a vh --&gt;
+    &lt;default&gt;localhost&lt;/default&gt;
+    &lt;!-- Define a virtual host and all it's config --&gt;
+    &lt;virtualhost&gt;
+        &lt;name&gt;localhost&lt;/name&gt;
+        &lt;localhost&gt;    
+            &lt;!-- Define the types of additional AMQP exchange available for this vh --&gt;   
+            &lt;!-- Always get amq.direct (for queues) and amq.topic (for topics) by default --&gt;     
+            &lt;exchanges&gt;
+                &lt;!-- Example of declaring an additional exchanges type for developer use only --&gt;
+                &lt;exchange&gt;
+                    &lt;type&gt;direct&lt;/type&gt;
+                    &lt;name&gt;test.direct&lt;/name&gt;
+                    &lt;durable&gt;true&lt;/durable&gt;
+                &lt;/exchange&gt;
+            &lt;/exchanges&gt;
+             
+            &lt;!-- Define the set of queues to be created at broker startup --&gt;
+            &lt;queues&gt;
+                &lt;!-- The properties configured here will be applied as defaults to all --&gt;
+                &lt;!-- queues subsequently defined unless explicitly overridden --&gt;
+                &lt;exchange&gt;amq.direct&lt;/exchange&gt;
+                &lt;!-- Set threshold values for queue monitor alerting to log --&gt; 
+                &lt;maximumQueueDepth&gt;4235264&lt;/maximumQueueDepth&gt;  &lt;!-- 4Mb --&gt;
+                &lt;maximumMessageSize&gt;2117632&lt;/maximumMessageSize&gt; &lt;!-- 2Mb --&gt;
+                &lt;maximumMessageAge&gt;600000&lt;/maximumMessageAge&gt;  &lt;!-- 10 mins --&gt;
+
+                &lt;!-- Define a queue with all default settings --&gt;   
+                &lt;queue&gt;
+                    &lt;name&gt;ping&lt;/name&gt;
+                &lt;/queue&gt;
+                &lt;!-- Example definitions of queues with overriden settings --&gt;
+                &lt;queue&gt;
+                    &lt;name&gt;test-queue&lt;/name&gt;
+                    &lt;test-queue&gt;
+                        &lt;exchange&gt;test.direct&lt;/exchange&gt;
+                        &lt;durable&gt;true&lt;/durable&gt;
+                    &lt;/test-queue&gt;
+                &lt;/queue&gt;
+                &lt;queue&gt;
+                    &lt;name&gt;test-ping&lt;/name&gt;
+                    &lt;test-ping&gt;
+                        &lt;exchange&gt;test.direct&lt;/exchange&gt;
+                    &lt;/test-ping&gt;
+                &lt;/queue&gt;
+            &lt;/queues&gt;
+        &lt;/localhost&gt;
+    &lt;/virtualhost&gt;
+&lt;/virtualhosts&gt;
+</pre></div><div class="section" title="6.1.2.  Using your own virtualhosts.xml"><div class="titlepage"><div><div><h4 class="title"><a name="ConfiguretheVirtualHostsviavirtualhosts.xml-Usingyourownvirtualhosts.xml"></a>6.1.2. 
+            Using your own virtualhosts.xml
+          </h4></div></div></div><p>
+            Note that the config.xml file shipped as an example (or developer
+            default) in the Qpid distribution contains an element which
+            defines the path to the virtualhosts.xml.
+          </p><p>
+            When using your own virtualhosts.xml you must edit this path to
+            point at the location of your file.
+          </p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s05.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s07.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">5. 
+      Configure the Broker via config.xml
+     </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 7. 
+      Debug using log4j
+    </td></tr></table></div></body></html>

Added: qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s07.html
URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s07.html?rev=956304&view=auto
==============================================================================
--- qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s07.html (added)
+++ qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s07.html Sat Jun 19 22:15:03 2010
@@ -0,0 +1,251 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>7.  Debug using log4j</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="AMQP Messaging Broker (Implemented in Java)"><link rel="up" href="ch02.html" title="Chapter 2. How Tos"><link rel="prev" href="ch02s06.html" title="6.  Configure the Virtual Hosts via virtualhosts.xml"><link rel="next" href="ch02s08.html" title="8.  How to Tune M3 Java Broker Performance"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">7. 
+      Debug using log4j
+    </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s06.html">Prev</a> </td><th width="60%" align="center">Chapter 2. How Tos</th><td width="20%" align="right"> <a accesskey="n" href="ch02s08.html">Next</a></td></tr></table><hr></div><div class="section" title="7.  Debug using log4j"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2928594"></a>7. 
+      Debug using log4j
+    </h2></div></div></div><div class="section" title="7.1.  Debugging with log4j configurations"><div class="titlepage"><div><div><h3 class="title"><a name="Debugusinglog4j-Debuggingwithlog4jconfigurations"></a>7.1. 
+            Debugging
+            with log4j configurations
+          </h3></div></div></div><p>
+            Unfortunately setting of logging in the Java Broker is not simply
+            a matter of setting one of WARN,INFO,DEBUG. At some point in the
+            future we may have more BAU logging that falls in to that
+            category but more likely is that we will have a varioius config
+            files that can be swapped in (dynamically) to understand what is
+            going on.
+          </p><p>
+            This page will be host to a variety of useful configuration
+            setups that will allow a user or developer to extract only the
+            information they are interested in logging. Each section will be
+            targeted at logging in a particular area and will include a full
+            log4j file that can be used. In addition the logging
+            <span class="emphasis"><em>category</em></span> elements will be presented and discussed so
+            that the user can create their own file.
+          </p><p>
+            Currently the configuration that is available has not been fully
+            documented and as such there are gaps in what is desired and what
+            is available. Some times this is due to the desire to reduce the
+            overhead in message processing, but sometimes it is simply an
+            oversight. Hopefully in future releases the latter will be
+            addressed but care needs to be taken when adding logging to the
+            'Message Flow' path as this will have performance implications.
+          </p><div class="section" title="7.1.1.  Logging Connection State *Deprecated*"><div class="titlepage"><div><div><h4 class="title"><a name="Debugusinglog4j-LoggingConnectionState-5CDeprecated-5C"></a>7.1.1. 
+            Logging
+            Connection State *Deprecated*
+          </h4></div></div></div><p>
+            <span class="emphasis"><em>deprecation notice</em></span> Version 0.6 of the Java broker includes
+            <a class="xref" href="">???</a> functionality which improves upon these messages and
+            as such enabling status logging would be more beneficial.
+            The configuration file has been left here for assistence with
+            broker versions prior to 0.6.
+          </p><p>
+            The goals of this configuration are to record:
+          </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>New Connections
+            </p></li><li class="listitem"><p>New Consumers
+            </p></li><li class="listitem"><p>Identify slow consumers
+            </p></li><li class="listitem"><p>Closing of Consumers
+            </p></li><li class="listitem"><p>Closing of Connections
+            </p></li></ul></div><p>
+            An additional goal of this configuration is to minimise any
+            impact to the 'message flow' path. So it should not adversely
+            affect production systems.
+          </p><pre class="programlisting">
+
+&lt;log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"&gt;
+    &lt;appender name="FileAppender" class="org.apache.log4j.FileAppender"&gt;
+        &lt;param name="File" value="${QPID_WORK}/log/${logprefix}qpid${logsuffix}.log"/&gt;
+        &lt;param name="Append" value="false"/&gt;
+
+        &lt;layout class="org.apache.log4j.PatternLayout"&gt;
+            &lt;param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/&gt;
+        &lt;/layout&gt;
+
+    &lt;/appender&gt;
+
+    &lt;appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"&gt;
+
+        &lt;layout class="org.apache.log4j.PatternLayout"&gt;
+            &lt;param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/&gt;
+        &lt;/layout&gt;
+    &lt;/appender&gt;
+
+    &lt;category name="Qpid.Broker"&gt;
+
+        &lt;priority value="debug"/&gt;
+    &lt;/category&gt;
+
+
+    &lt;!-- Provide warnings to standard output --&gt;
+    &lt;category name="org.apache.qpid"&gt;
+        &lt;priority value="warn"/&gt;
+    &lt;/category&gt;
+
+
+    &lt;!-- Connection Logging --&gt;
+
+    &lt;!-- Log details of client starting connection --&gt;
+    &lt;category name="org.apache.qpid.server.handler.ConnectionStartOkMethodHandler"&gt;
+        &lt;priority value="info"/&gt;
+    &lt;/category&gt;
+    &lt;!-- Log details of client closing connection --&gt;
+    &lt;category name="org.apache.qpid.server.handler.ConnectionCloseMethodHandler"&gt;
+        &lt;priority value="info"/&gt;
+    &lt;/category&gt;
+    &lt;!-- Log details of client responding to be asked to closing connection --&gt;
+
+    &lt;category name="org.apache.qpid.server.handler.ConnectionCloseOkMethodHandler"&gt;
+        &lt;priority value="info"/&gt;
+    &lt;/category&gt;
+
+
+    &lt;!-- Consumer Logging --&gt;
+    &lt;!-- Provide details of Consumers connecting--&gt;
+    &lt;category name="org.apache.qpid.server.handler.BasicConsumeMethodHandler"&gt;
+        &lt;priority value="debug"/&gt;
+    &lt;/category&gt;
+
+    &lt;!-- Provide details of Consumers disconnecting, if the call it--&gt;
+    &lt;category name="org.apache.qpid.server.handler.BasicCancelMethodHandler"&gt;
+        &lt;priority value="debug"/&gt;
+    &lt;/category&gt;
+    &lt;!-- Provide details of when a channel closes to attempt to match to the Consume as a Cancel is not always issued--&gt;
+    &lt;category name="org.apache.qpid.server.handler.ChannelCloseHandler"&gt;
+        &lt;priority value="info"/&gt;
+    &lt;/category&gt;
+
+    &lt;!-- Provide details of Consumers starting to consume--&gt;
+    &lt;category name="org.apache.qpid.server.handler.ChannelFlowHandler"&gt;
+        &lt;priority value="debug"/&gt;
+    &lt;/category&gt;
+    &lt;!-- Provide details of what consumers are going to be consuming--&gt;
+    &lt;category name="org.apache.qpid.server.handler.QueueBindHandler"&gt;
+        &lt;priority value="info"/&gt;
+    &lt;/category&gt;
+
+    &lt;!-- No way of determining if publish message is returned, client log should show it.--&gt;
+
+    &lt;root&gt;
+        &lt;priority value="debug"/&gt;
+        &lt;appender-ref ref="STDOUT"/&gt;      
+        &lt;appender-ref ref="FileAppender"/&gt;
+    &lt;/root&gt;
+
+&lt;/log4j:configuration&gt;
+
+</pre></div><div class="section" title="7.1.2.  Debugging My Application"><div class="titlepage"><div><div><h4 class="title"><a name="Debugusinglog4j-DebuggingMyApplication"></a>7.1.2. 
+            Debugging My
+            Application
+          </h4></div></div></div><p>
+            This is the most often asked for set of configuration. The goals
+            of this configuration are to record:
+          </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>New Connections
+            </p></li><li class="listitem"><p>New Consumers
+            </p></li><li class="listitem"><p>Message Publications
+            </p></li><li class="listitem"><p>Message Consumption
+            </p></li><li class="listitem"><p>Identify slow consumers
+            </p></li><li class="listitem"><p>Closing of Consumers
+            </p></li><li class="listitem"><p>Closing of Connections
+            </p></li></ul></div><p>
+            NOTE: This configuration enables message logging on the 'message
+            flow' path so should only be used were message volume is
+            low.
+            <span class="emphasis"><em>Every message that is sent to the broker will generate at
+            least four logging statements</em></span>
+          </p><pre class="programlisting">
+
+&lt;log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"&gt;
+    &lt;appender name="FileAppender" class="org.apache.log4j.FileAppender"&gt;
+        &lt;param name="File" value="${QPID_WORK}/log/${logprefix}qpid${logsuffix}.log"/&gt;
+        &lt;param name="Append" value="false"/&gt;
+
+        &lt;layout class="org.apache.log4j.PatternLayout"&gt;
+            &lt;param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/&gt;
+        &lt;/layout&gt;
+
+    &lt;/appender&gt;
+
+    &lt;appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"&gt;
+
+        &lt;layout class="org.apache.log4j.PatternLayout"&gt;
+            &lt;param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/&gt;
+        &lt;/layout&gt;
+    &lt;/appender&gt;
+
+    &lt;category name="Qpid.Broker"&gt;
+
+        &lt;priority value="debug"/&gt;
+    &lt;/category&gt;
+
+
+    &lt;!-- Provide warnings to standard output --&gt;
+    &lt;category name="org.apache.qpid"&gt;
+        &lt;priority value="warn"/&gt;
+    &lt;/category&gt;
+
+
+    &lt;!-- Connection Logging --&gt;
+
+    &lt;!-- Log details of client starting connection --&gt;
+    &lt;category name="org.apache.qpid.server.handler.ConnectionStartOkMethodHandler"&gt;
+        &lt;priority value="info"/&gt;
+    &lt;/category&gt;
+    &lt;!-- Log details of client closing connection --&gt;
+    &lt;category name="org.apache.qpid.server.handler.ConnectionCloseMethodHandler"&gt;
+        &lt;priority value="info"/&gt;
+    &lt;/category&gt;
+    &lt;!-- Log details of client responding to be asked to closing connection --&gt;
+
+    &lt;category name="org.apache.qpid.server.handler.ConnectionCloseOkMethodHandler"&gt;
+        &lt;priority value="info"/&gt;
+    &lt;/category&gt;
+
+    &lt;!-- Consumer Logging --&gt;
+    &lt;!-- Provide details of Consumers connecting--&gt;
+    &lt;category name="org.apache.qpid.server.handler.BasicConsumeMethodHandler"&gt;
+        &lt;priority value="debug"/&gt;
+    &lt;/category&gt;
+
+    &lt;!-- Provide details of Consumers disconnecting, if the call it--&gt;
+    &lt;category name="org.apache.qpid.server.handler.BasicCancelMethodHandler"&gt;
+        &lt;priority value="debug"/&gt;
+    &lt;/category&gt;
+    &lt;!-- Provide details of when a channel closes to attempt to match to the Consume as a Cancel is not always issued--&gt;
+    &lt;category name="org.apache.qpid.server.handler.ChannelCloseHandler"&gt;
+        &lt;priority value="info"/&gt;
+    &lt;/category&gt;
+
+    &lt;!-- Provide details of Consumers starting to consume--&gt;
+    &lt;category name="org.apache.qpid.server.handler.ChannelFlowHandler"&gt;
+        &lt;priority value="debug"/&gt;
+    &lt;/category&gt;
+    &lt;!-- Provide details of what consumers are going to be consuming--&gt;
+    &lt;category name="org.apache.qpid.server.handler.QueueBindHandler"&gt;
+        &lt;priority value="info"/&gt;
+    &lt;/category&gt;
+
+    &lt;!-- No way of determining if publish message is returned, client log should show it.--&gt;
+
+    &lt;!-- WARNING DO NOT ENABLE THIS IN PRODUCTION --&gt;
+    &lt;!-- Will generate minimum one log statements per published message --&gt;
+    &lt;!-- Will generate will log receiving of all body frame, count will vary on size of message.--&gt;
+    &lt;!-- Empty Message = no body, Body is up to 64kb of data --&gt;
+    &lt;!-- Will generate three log statements per recevied message --&gt;
+
+    &lt;!-- Log messages flow--&gt;
+    &lt;category name="org.apache.qpid.server.AMQChannel"&gt;
+
+        &lt;priority value="debug"/&gt;
+    &lt;/category&gt;
+
+    &lt;root&gt;
+        &lt;priority value="debug"/&gt;
+        &lt;appender-ref ref="STDOUT"/&gt;      
+        &lt;appender-ref ref="FileAppender"/&gt;
+    &lt;/root&gt;
+
+&lt;/log4j:configuration&gt;
+
+</pre></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s06.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s08.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">6. 
+      Configure the Virtual Hosts via virtualhosts.xml
+     </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 8. 
+      How to Tune M3 Java Broker Performance
+    </td></tr></table></div></body></html>

Added: qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s08.html
URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s08.html?rev=956304&view=auto
==============================================================================
--- qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s08.html (added)
+++ qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s08.html Sat Jun 19 22:15:03 2010
@@ -0,0 +1,104 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>8.  How to Tune M3 Java Broker Performance</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="AMQP Messaging Broker (Implemented in Java)"><link rel="up" href="ch02.html" title="Chapter 2. How Tos"><link rel="prev" href="ch02s07.html" title="7.  Debug using log4j"><link rel="next" href="ch02s09.html" title="9.  Qpid Java Build How To"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">8. 
+      How to Tune M3 Java Broker Performance
+    </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s07.html">Prev</a> </td><th width="60%" align="center">Chapter 2. How Tos</th><td width="20%" align="right"> <a accesskey="n" href="ch02s09.html">Next</a></td></tr></table><hr></div><div class="section" title="8.  How to Tune M3 Java Broker Performance"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="How-to-Tune-M3-Java-Broker-Performance"></a>8. 
+      How to Tune M3 Java Broker Performance
+    </h2></div></div></div><div class="section" title="8.1.  Problem Statement"><div class="titlepage"><div><div><h3 class="title"><a name="HowtoTuneM3JavaBrokerPerformance-ProblemStatement"></a>8.1. 
+            Problem
+            Statement
+          </h3></div></div></div><p>
+            During destructive testing of the Qpid M3 Java Broker, we tested
+            some tuning techniques and deployment changes to improve the Qpid
+            M3 Java Broker's capacity to maintain high levels of throughput,
+            particularly in the case of a slower consumer than produceer
+            (i.e. a growing backlog).
+          </p><p>
+            The focus of this page is to detail the results of tuning &amp;
+            deployment changes trialled.
+          </p><p>
+            The successful tuning changes are applicable for any deployment
+            expecting to see bursts of high volume throughput (1000s of
+            persistent messages in large batches). Any user wishing to use
+            these options <span class="emphasis"><em>must test them thoroughly in their own
+            environment with representative volumes</em></span>.
+          </p></div><div class="section" title="8.2.  Successful Tuning Options"><div class="titlepage"><div><div><h3 class="title"><a name="HowtoTuneM3JavaBrokerPerformance-SuccessfulTuningOptions"></a>8.2. 
+            Successful
+            Tuning Options
+          </h3></div></div></div><p>
+            The key scenario being taregetted by these changes is a broker
+            under heavy load (processing a large batch of persistent
+            messages)can be seen to perform slowly when filling up with an
+            influx of high volume transient messages which are queued behind
+            the persistent backlog. However, the changes suggested will be
+            equally applicable to general heavy load scenarios.
+          </p><p>
+            The easiest way to address this is to separate streams of
+            messages. Thus allowing the separate streams of messages to be
+            processed, and preventing a backlog behind a particular slow
+            consumer.
+          </p><p>
+            These strategies have been successfully tested to mitigate this
+            problem:
+          </p><div class="table"><a name="id2930191"></a><p class="title"><b>Table 2.2. </b></p><div class="table-contents"><table summary="" border="1"><colgroup><col><col></colgroup><tbody><tr><td>
+                  Strategy
+                </td><td>
+                  Result
+                </td></tr><tr><td>
+                  Seperate connections to one broker for separate streams of
+                  messages.
+                </td><td>
+                  Messages processed successfully, no problems experienced
+                </td></tr><tr><td>
+                  Seperate brokers for transient and persistent messages.
+                </td><td>
+                  Messages processed successfully, no problems experienced
+                </td></tr></tbody></table></div></div><br class="table-break"><p>
+            <span class="emphasis"><em>Separate Connections</em></span>
+            Using separate connections effectively means that the two streams
+            of data are not being processed via the same buffer, and thus the
+            broker gets &amp; processes the transient messages while
+            processing the persistent messages. Thus any build up of
+            unprocessed data is minimal and transitory.
+          </p><p>
+            <span class="emphasis"><em>Separate Brokers</em></span>
+            Using separate brokers may mean more work in terms of client
+            connection details being changed, and from an operational
+            perspective. However, it is certainly the most clear cut way of
+            isolating the two streams of messages and the heaps impacted.
+          </p><div class="section" title="8.2.1.  Additional tuning"><div class="titlepage"><div><div><h4 class="title"><a name="HowtoTuneM3JavaBrokerPerformance-Additionaltuning"></a>8.2.1. 
+            Additional
+            tuning
+          </h4></div></div></div><p>
+            It is worth testing if changing the size of the Qpid read/write
+            thread pool improves performance (eg. by setting
+            JAVA_OPTS="-Damqj.read_write_pool_size=32" before running
+            qpid-server). By default this is equal to the number of CPU
+            cores, but a higher number may show better performance with some
+            work loads.
+          </p><p>
+            It is also important to note that you should give the Qpid broker
+            plenty of memory - for any serious application at least a -Xmx of
+            3Gb. If you are deploying on a 64 bit platform, a larger heap is
+            definitely worth testing with. We will be testing tuning options
+            around a larger heap shortly.
+          </p></div></div><div class="section" title="8.3.  Next Steps"><div class="titlepage"><div><div><h3 class="title"><a name="HowtoTuneM3JavaBrokerPerformance-NextSteps"></a>8.3. 
+            Next
+            Steps
+          </h3></div></div></div><p>
+            These two options have been testing using a Qpid test case, and
+            demonstrated that for a test case with a profile of persistent
+            heavy load following by constant transient high load traffic they
+            provide significant improvment.
+          </p><p>
+            However, the deploying project <span class="emphasis"><em>must</em></span> complete their own
+            testing, using the same destructive test cases, representative
+            message paradigms &amp; volumes, in order to verify the proposed
+            mitigation options.
+          </p><p>
+            The using programme should then choose the option most applicable
+            for their deployment and perform BAU testing before any
+            implementation into a production or pilot environment.
+          </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s07.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s09.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">7. 
+      Debug using log4j
+     </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 9. 
+      Qpid Java Build How To
+    </td></tr></table></div></body></html>

Added: qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s09.html
URL: http://svn.apache.org/viewvc/qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s09.html?rev=956304&view=auto
==============================================================================
--- qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s09.html (added)
+++ qpid/site/docs/books/0.7/AMQP-Messaging-Broker-Java-Book/html/ch02s09.html Sat Jun 19 22:15:03 2010
@@ -0,0 +1,211 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>9.  Qpid Java Build How To</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="AMQP Messaging Broker (Implemented in Java)"><link rel="up" href="ch02.html" title="Chapter 2. How Tos"><link rel="prev" href="ch02s08.html" title="8.  How to Tune M3 Java Broker Performance"><link rel="next" href="ch02s10.html" title="10.  Use Priority Queues"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">9. 
+      Qpid Java Build How To
+    </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s08.html">Prev</a> </td><th width="60%" align="center">Chapter 2. How Tos</th><td width="20%" align="right"> <a accesskey="n" href="ch02s10.html">Next</a></td></tr></table><hr></div><div class="section" title="9.  Qpid Java Build How To"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2926968"></a>9. 
+      Qpid Java Build How To
+    </h2></div></div></div><div class="section" title="9.1.  Build Instructions - General"><div class="titlepage"><div><div><h3 class="title"><a name="QpidJavaBuildHowTo-BuildInstructionsGeneral"></a>9.1. 
+            Build
+            Instructions - General
+          </h3></div></div></div><div class="section" title="9.1.1.  Check out the source"><div class="titlepage"><div><div><h4 class="title"><a name="QpidJavaBuildHowTo-Checkoutthesource"></a>9.1.1. 
+            Check out the
+            source
+          </h4></div></div></div><p>
+            Firstly, check the source for Qpid out of our subversion
+            repository:
+          </p><p>
+            <a class="xref" href="">???</a>
+          </p></div><div class="section" title="9.1.2.  Prerequisites"><div class="titlepage"><div><div><h4 class="title"><a name="QpidJavaBuildHowTo-Prerequisites"></a>9.1.2. 
+            Prerequisites
+          </h4></div></div></div><p>
+            For the broker code you need JDK 1.5.0_15 or later. You should
+            set JAVA_HOME and include the bin directory in your PATH.
+          </p><p>
+            Check it's ok by executing java -v !
+          </p><p>
+            If you are wanting to run the python tests against the broker you
+            will of course need a version of python.
+          </p></div></div><div class="section" title="9.2.  Build Instructions - Trunk"><div class="titlepage"><div><div><h3 class="title"><a name="QpidJavaBuildHowTo-BuildInstructionsTrunk"></a>9.2. 
+            Build
+            Instructions - Trunk
+          </h3></div></div></div><p>
+            Our build system has reverted to ant as of May 2008.
+          </p><p>
+            The ant target 'help' will tell you what you need to know about
+            the build system.
+          </p><div class="section" title="9.2.1.  Ant Build Scripts"><div class="titlepage"><div><div><h4 class="title"><a name="QpidJavaBuildHowTo-AntBuildScripts"></a>9.2.1. 
+            Ant Build
+            Scripts
+          </h4></div></div></div><p>
+            Currently the Qpid java project builds using ant.
+          </p><p>
+            The ant build system is set up in a modular way, with a top level
+            build script and template for module builds and then a module
+            level build script which inherits from the template.
+          </p><p>
+            So, at the top level there are:
+          </p><div class="table"><a name="id2929948"></a><p class="title"><b>Table 2.3. </b></p><div class="table-contents"><table summary="" border="1"><colgroup><col><col></colgroup><tbody><tr><td>
+                  File
+                </td><td>
+                  Description
+                </td></tr><tr><td>
+                  build.xml
+                </td><td>
+                  Top level build file for the project which defines all the
+                  build targets
+                </td></tr><tr><td>
+                  common.xml
+                </td><td>
+                  Common properties used throughout the build system
+                </td></tr><tr><td>
+                  module.xml
+                </td><td>
+                  Template used by all modules which sets up properties for
+                  module builds
+                </td></tr></tbody></table></div></div><br class="table-break"><p>
+            Then, in each module subdirectory there is:
+          </p><div class="table"><a name="id2930342"></a><p class="title"><b>Table 2.4. </b></p><div class="table-contents"><table summary="" border="1"><colgroup><col><col></colgroup><tbody><tr><td>
+                  File
+                </td><td>
+                  Description
+                </td></tr><tr><td>
+                  build.xml
+                </td><td>
+                  Defines all the module values for template properties
+                </td></tr></tbody></table></div></div><br class="table-break"></div><div class="section" title="9.2.2.  Build targets"><div class="titlepage"><div><div><h4 class="title"><a name="QpidJavaBuildHowTo-Buildtargets"></a>9.2.2. 
+            Build targets
+          </h4></div></div></div><p>
+            The main build targets you are probably interested in are:
+          </p><div class="table"><a name="id2930398"></a><p class="title"><b>Table 2.5. </b></p><div class="table-contents"><table summary="" border="1"><colgroup><col><col></colgroup><tbody><tr><td>
+                  Target
+                </td><td>
+                  Description
+                </td></tr><tr><td>
+                  build
+                </td><td>
+                  Builds all source code for Qpid
+                </td></tr><tr><td>
+                  test
+                </td><td>
+                  Runs the testsuite for Qpid
+                </td></tr></tbody></table></div></div><br class="table-break"><p>
+            So, if you just want to compile everything you should run the
+            build target in the top level build.xml file.
+          </p><p>
+            If you want to build an installable version of Qpid, run the
+            archive task from the top level build.xml file.
+          </p><p>
+            If you want to compile an individual module, simply run the build
+            target from the appropriate module e.g. to compile the broker
+            source
+          </p></div><div class="section" title="9.2.3.  Configuring Eclipse"><div class="titlepage"><div><div><h4 class="title"><a name="QpidJavaBuildHowTo-ConfiguringEclipse"></a>9.2.3. 
+            Configuring
+            Eclipse
+          </h4></div></div></div><p>
+            1. Run the ant build from the root directory of Java trunk.
+            2. New project -&gt; create from existing file system for broker,
+            common, client, junit-toolkit, perftests, systests and each
+            directory under management
+            4. Add the contents of lib/ to the build path
+            5. Setup Generated Code
+            6. Setup Dependencies
+          </p><div class="section" title="9.2.3.1.  Generated Code"><div class="titlepage"><div><div><h5 class="title"><a name="QpidJavaBuildHowTo-GeneratedCode"></a>9.2.3.1. 
+            Generated Code
+          </h5></div></div></div><p>
+            The Broker and Common packages both depend on generated code.
+            After running 'ant' the build/scratch directory will contain this
+            generated code.
+            For the broker module add build/scratch/broker/src
+            For the common module add build/scratch/common/src
+          </p></div><div class="section" title="9.2.3.2.  Dependencies"><div class="titlepage"><div><div><h5 class="title"><a name="QpidJavaBuildHowTo-Dependencies"></a>9.2.3.2. 
+            Dependencies
+          </h5></div></div></div><p>
+            These dependencies are correct at the time of writting however,
+            if things are not working you can check the dependencies by
+            looking in the modules build.xml file:
+          </p><pre class="programlisting">
+for i in `find . -name build.xml` ; do echo "$i:"; grep module.depends $i ; done
+</pre><p>
+            The <span class="emphasis"><em>module.depend</em></span> value will detail which other modules
+            are dependencies.
+          </p><p>
+            broker
+          </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>common
+            </p></li><li class="listitem"><p>management/common
+            </p></li></ul></div><p>
+            client
+          </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Common
+            </p></li></ul></div><p>
+            systest
+          </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>client
+            </p></li><li class="listitem"><p>management/common
+            </p></li><li class="listitem"><p>broker
+            </p></li><li class="listitem"><p>broker/test
+            </p></li><li class="listitem"><p>common
+            </p></li><li class="listitem"><p>junit-toolkit
+            </p></li><li class="listitem"><p>management/tools/qpid-cli
+            </p></li></ul></div><p>
+            perftests
+          </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>systests
+            </p></li><li class="listitem"><p>client
+            </p></li><li class="listitem"><p>broker
+            </p></li><li class="listitem"><p>common
+            </p></li><li class="listitem"><p>junit-toolkit
+            </p></li></ul></div><p>
+            management/eclipse-plugin
+          </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>broker
+            </p></li><li class="listitem"><p>common
+            </p></li><li class="listitem"><p>management/common
+            </p></li></ul></div><p>
+            management/console
+          </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>common
+            </p></li><li class="listitem"><p>client
+            </p></li></ul></div><p>
+            management/agent
+          </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>common
+            </p></li><li class="listitem"><p>client
+            </p></li></ul></div><p>
+            management/tools/qpid-cli
+          </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>common
+            </p></li><li class="listitem"><p>management/common
+            </p></li></ul></div><p>
+            management/client
+          </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>common
+            </p></li><li class="listitem"><p>client
+            </p></li></ul></div><p>
+            integrationtests
+          </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>systests
+            </p></li><li class="listitem"><p>client
+            </p></li><li class="listitem"><p>common
+            </p></li><li class="listitem"><p>junit-toolkit
+            </p></li></ul></div><p>
+            testkit
+          </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>client
+            </p></li><li class="listitem"><p>broker
+            </p></li><li class="listitem"><p>common
+            </p></li></ul></div><p>
+            tools
+          </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>client
+            </p></li><li class="listitem"><p>common
+            </p></li></ul></div><p>
+            client/examples
+          </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>common
+            </p></li><li class="listitem"><p>client
+            </p></li></ul></div><p>
+            broker-plugins
+          </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>client
+            </p></li><li class="listitem"><p>management/common
+            </p></li><li class="listitem"><p>broker
+            </p></li><li class="listitem"><p>common
+            </p></li><li class="listitem"><p>junit-toolkit
+            </p></li></ul></div></div></div><div class="section" title="9.2.4.  What next ?"><div class="titlepage"><div><div><h4 class="title"><a name="QpidJavaBuildHowTo-Whatnext-3F"></a>9.2.4. 
+            What next ?
+          </h4></div></div></div><p>
+            If you want to run your built Qpid package, see our <a class="xref" href="">???</a> for details of
+            how to do that.
+          </p><p>
+            If you want to run our tests, you can use the ant test or
+            testreport (produces a useful report) targets.
+          </p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s08.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s10.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">8. 
+      How to Tune M3 Java Broker Performance
+     </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 10. 
+      Use Priority Queues
+    </td></tr></table></div></body></html>



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org