qpid-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From oru...@apache.org
Subject [04/32] qpid-site git commit: QPID-8148: Update site for Qpid Broker-J release 7.0.3
Date Thu, 05 Apr 2018 17:25:05 GMT
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/082a5541/input/releases/qpid-broker-j-7.0.3/book/Java-Broker-Security-Group-Providers.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-broker-j-7.0.3/book/Java-Broker-Security-Group-Providers.html.in b/input/releases/qpid-broker-j-7.0.3/book/Java-Broker-Security-Group-Providers.html.in
new file mode 100644
index 0000000..ac2c92e
--- /dev/null
+++ b/input/releases/qpid-broker-j-7.0.3/book/Java-Broker-Security-Group-Providers.html.in
@@ -0,0 +1,36 @@
+<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">8.2.&#160;Group Providers</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-Security.html">Prev</a>&#160;</td><th align="center" width="60%">Chapter&#160;8.&#160;Security</th><td align="right" width="20%">&#160;<a accesskey="n" href="Java-Broker-Security-AccessControlProviders.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="Java-Broker-Security-Group-Providers"></a>8.2.&#160;Group Providers</h2></div></div></div><p>
+    The Apache Qpid Broker-J utilises GroupProviders to allow assigning users to groups for use in <a class="link" href="Java-Broker-Security-AccessControlProviders.html" title="8.3.&#160;Access Control Providers">ACLs</a>.
+    Following authentication by a given <a class="link" href="Java-Broker-Security.html#Java-Broker-Security-Authentication-Providers" title="8.1.&#160;Authentication Providers">Authentication Provider</a>,
+    the configured Group Providers are consulted allowing the assignment of GroupPrincipals for a given authenticated user. Any number of
+    Group Providers can be added into the Broker. All of them will be checked for the presence of the groups for a given authenticated user.
+  </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="File-Group-Manager"></a>8.2.1.&#160;GroupFile Provider</h3></div></div></div><p>
+      The <span class="emphasis"><em>GroupFile</em></span> Provider allows specifying group membership in a flat file on disk.
+      On adding a new GroupFile Provider the path to the groups file is required to be specified.
+      If file does not exist an empty file is created automatically. On deletion of GroupFile Provider
+      the groups file is deleted as well. Only one instance of "GroupFile" Provider per groups file location can be created.
+      On attempt to create another GroupFile Provider pointing to the same location the error will be displayed and
+      the creation will be aborted.
+    </p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="File-Group-Manager-FileFormat"></a>8.2.1.1.&#160;File Format</h4></div></div></div><p>
+            The groups file has the following format:
+          </p><pre class="programlisting">
+    # &lt;GroupName&gt;.users = &lt;comma delimited user list&gt;
+    # For example:
+
+    administrators.users = admin,manager
+</pre><p>
+            Only users can be added to a group currently, not other groups. Usernames can't contain commas.
+          </p><p>
+            Lines starting with a '#' are treated as comments when opening the file, but these are not preserved when the broker updates the file due to changes made through the management interface.
+          </p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Security-Group-Providers-ManagedGroupProvider"></a>8.2.2.&#160;ManagedGroupProvider</h3></div></div></div><p>
+            The <span class="emphasis"><em>ManagedGroupProvider</em></span> allows specifying group membership as part of broker configuration.
+            In future version of Brokers GroupFile Provider will be replaced by this one.
+        </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Security-Group-Providers-CloudFoundry"></a>8.2.3.&#160;CloudFoundryDashboardManagementGroupProvider</h3></div></div></div><p>
+            The <span class="emphasis"><em>CloudFoundryDashboardManagementGroupProvider</em></span>
+            allows mapping of service instance ids to qpid management groups.
+        </p><p>
+            One use case is restricting management capabilities of a OAuth2 authenticated user to certain virtual
+            hosts. For this, one would associate a cloudfoundry service id with each virtual host and have an ACL with a
+            separate management group for each virtual host. Given the correct service instance id to
+            management group mapping the GroupProvider will then associate the user with each management group the user
+            is provisioned to manage the associated service instance in the <a class="link" href="http://docs.cloudfoundry.org/services/dashboard-sso.html#checking-user-permissions" target="_top">CloudFoundry dashboard</a>.
+        </p></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="Java-Broker-Security.html">Prev</a>&#160;</td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-Security.html">Up</a></td><td align="right" width="40%">&#160;<a accesskey="n" href="Java-Broker-Security-AccessControlProviders.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">Chapter&#160;8.&#160;Security&#160;</td><td align="center" width="20%"><a accesskey="h" href="Apache-Qpid-Broker-J-Book.html">Home</a></td><td align="right" valign="top" width="40%">&#160;8.3.&#160;Access Control Providers</td></tr></table></div></div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/082a5541/input/releases/qpid-broker-j-7.0.3/book/Java-Broker-Security.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-broker-j-7.0.3/book/Java-Broker-Security.html.in b/input/releases/qpid-broker-j-7.0.3/book/Java-Broker-Security.html.in
new file mode 100644
index 0000000..3eca520
--- /dev/null
+++ b/input/releases/qpid-broker-j-7.0.3/book/Java-Broker-Security.html.in
@@ -0,0 +1,152 @@
+<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">Chapter&#160;8.&#160;Security</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-Management-Managing-Plugin-HTTP.html">Prev</a>&#160;</td><th align="center" width="60%">&#160;</th><td align="right" width="20%">&#160;<a accesskey="n" href="Java-Broker-Security-Group-Providers.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="Java-Broker-Security"></a>Chapter&#160;8.&#160;Security</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="Java-Broker-Security.html#Java-Broker-Security-Authentication-Providers">8.1. Authentication Providers</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-Security.html#Java-Broker-Security-LDAP-Provider">8.1.1. Simple LDAP</a></span></dt><
 dt><span class="section"><a href="Java-Broker-Security.html#Java-Broker-Security-Kerberos-Provider">8.1.2. Kerberos</a></span></dt><dt><span class="section"><a href="Java-Broker-Security.html#Java-Broker-Security-OAuth2-Provider">8.1.3. OAuth2</a></span></dt><dt><span class="section"><a href="Java-Broker-Security.html#Java-Broker-Security-External-Provider">8.1.4. External (SSL Client Certificates)</a></span></dt><dt><span class="section"><a href="Java-Broker-Security.html#Java-Broker-Security-Anonymous-Provider">8.1.5. Anonymous</a></span></dt><dt><span class="section"><a href="Java-Broker-Security.html#Java-Broker-Security-ScramSha-Providers">8.1.6. SCRAM SHA</a></span></dt><dt><span class="section"><a href="Java-Broker-Security.html#Java-Broker-Security-Plain-Provider">8.1.7. Plain</a></span></dt><dt><span class="section"><a href="Java-Broker-Security.html#Java-Broker-Security-PlainPasswordFile-Provider">8.1.8. Plain Password File <span class="emphasis"><em>(Deprecated)</em></spa
 n></a></span></dt><dt><span class="section"><a href="Java-Broker-Security.html#Java-Broker-Security-MD5-Provider">8.1.9. MD5 Provider</a></span></dt><dt><span class="section"><a href="Java-Broker-Security.html#Java-Broker-Security-Base64MD5PasswordFile-Provider">8.1.10. Base64MD5 Password File <span class="emphasis"><em>(Deprecated)</em></span></a></span></dt></dl></dd><dt><span class="section"><a href="Java-Broker-Security-Group-Providers.html">8.2. Group Providers</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-Security-Group-Providers.html#File-Group-Manager">8.2.1. GroupFile Provider</a></span></dt><dt><span class="section"><a href="Java-Broker-Security-Group-Providers.html#Java-Broker-Security-Group-Providers-ManagedGroupProvider">8.2.2. ManagedGroupProvider</a></span></dt><dt><span class="section"><a href="Java-Broker-Security-Group-Providers.html#Java-Broker-Security-Group-Providers-CloudFoundry">8.2.3. CloudFoundryDashboardManagementGroupProvider</a></s
 pan></dt></dl></dd><dt><span class="section"><a href="Java-Broker-Security-AccessControlProviders.html">8.3. Access Control Providers</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-Security-AccessControlProviders.html#Java-Broker-Security-AccessControlProviders-Types">8.3.1. Types</a></span></dt><dt><span class="section"><a href="Java-Broker-Security-AccessControlProviders.html#Java-Broker-Security-AccessControlProviders-ACLRules">8.3.2. 
+       ACL Rules
+    </a></span></dt><dt><span class="section"><a href="Java-Broker-Security-AccessControlProviders.html#Java-Broker-Security-AccessControlProviders-Syntax">8.3.3. 
+       Syntax
+    </a></span></dt><dt><span class="section"><a href="Java-Broker-Security-AccessControlProviders.html#Java-Broker-Security-AccessControlProviders-WorkedExamples">8.3.4. 
+      Worked Examples
+    </a></span></dt></dl></dd><dt><span class="section"><a href="Java-Broker-Security-Configuration-Encryption.html">8.4. Configuration Encryption</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-Security-Configuration-Encryption.html#Java-Broker-Security-Configuration-Encryption-Configuration">8.4.1. Configuration</a></span></dt><dt><span class="section"><a href="Java-Broker-Security-Configuration-Encryption.html#Java-Broker-Security-Configuration-Encryption-Alternate-Implementations">8.4.2. Alternate Implementations</a></span></dt></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="Java-Broker-Security-Authentication-Providers"></a>8.1.&#160;Authentication Providers</h2></div></div></div><p> In order to successfully establish a connection to the Broker, the connection must be
+    authenticated. The Broker supports a number of different authentication schemes, each with
+    its own "authentication provider". Any number of Authentication Providers can be configured on
+    the Broker at the same time. </p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Important</h3><p> Only unused Authentication Provider can be deleted. For delete requests attempting to
+      delete Authentication Provider associated with the Ports, the errors will be returned and
+      delete operations will be aborted. It is possible to change the Authentication Provider on
+      Port at runtime. However, the Broker restart is required for changes on Port to take effect.
+    </p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
+      Authentication Providers may choose to selectively disable certain authentication mechanisms
+      depending on whether an encrypted transport is being used or not. This is to avoid insecure
+      configurations. Notably, by default the PLAIN mechanism will be disabled on non-SSL
+      connections. This security feature can be overwritten by setting
+      </p><pre class="programlisting">secureOnlyMechanisms = []</pre><p> in the authentication provider
+      section of the config.json.
+      </p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>
+          Changing the secureOnlyMechanism is a breach of security and might cause passwords to be
+          transfered in the clear. Use at your own risk!
+        </p></div><p>
+    </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Security-LDAP-Provider"></a>8.1.1.&#160;Simple LDAP</h3></div></div></div><p> The Simple LDAP authenticates connections against a Directory (LDAP). </p><p> To create a SimpleLDAPAuthenticationProvider the following mandatory fields are required: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span class="emphasis"><em>LDAP server URL</em></span> is the URL of the server, for example,
+                <code class="literal">ldaps://example.com:636</code></p></li><li class="listitem"><p><span class="emphasis"><em>Search context</em></span> is the distinguished name of the search base
+                object. It defines the location from which the search for users begins, for example,
+                <code class="literal">dc=users,dc=example,dc=com</code></p></li><li class="listitem"><p><span class="emphasis"><em>Search filter</em></span> is a DN template to find an LDAP user entry by
+                provided user name, for example, <code class="literal">(uid={0})</code></p></li></ul></div><p> Additionally, the following optional fields can be specified: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span class="emphasis"><em>LDAP context factory</em></span> is a fully qualified class name for the
+                JNDI LDAP context factory. This class must implement the <a class="link" href="http://docs.oracle.com/javase/7/docs/api/javax/naming/spi/InitialContextFactory.html" target="_top">InitialContextFactory</a> interface and produce instances of <a class="link" href="http://docs.oracle.com/javase/7/docs/api/javax/naming/directory/DirContext.html" target="_top">DirContext</a>. If
+                not specified a default value of <code class="literal">com.sun.jndi.ldap.LdapCtxFactory</code> is
+                used.</p></li><li class="listitem"><p><span class="emphasis"><em>LDAP authentication URL</em></span> is the URL of LDAP server for
+                performing "ldap bind". If not specified, the <span class="emphasis"><em>LDAP server URL</em></span> will
+                be used for both searches and authentications.</p></li><li class="listitem"><p><span class="emphasis"><em>Truststore name</em></span> is a name of <a class="link" href="Java-Broker-Management-Managing-Truststores.html#Java-Broker-Management-Managing-Truststores-Attributes" title="7.12.2.&#160;Attributes">configured
+                truststore</a>. Use this if connecting to a Directory over SSL (i.e. ldaps://)
+                which is protected by a certificate signed by a private CA (or utilising a self-signed
+                certificate).</p></li><li class="listitem"><p>Additional group information can be obtained from LDAP.
+                There are two common ways of representing group membership in LDAP.
+                </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
+                        User entries can hold membership information as attribute.
+                        To use this the <span class="emphasis"><em>attribute name</em></span> that holds the group information must be specified.
+                    </li><li class="listitem">
+                        Group entries can hold a list of their members as attribute.
+                        This can be used by specifying a <span class="emphasis"><em>search context</em></span> and <span class="emphasis"><em>search filter</em></span> to find all groups that the user should be considered a member of.
+                        Typically this involves filtering groups by looking for the user's DN on a group attribute.
+                        The <span class="emphasis"><em>subtree search scope</em></span> determines whether the search should include the subtree extending from the <span class="emphasis"><em>search context</em></span>.
+                    </li></ul></div><p>
+            </p></li></ul></div><p>
+    </p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Important</h3><p>In order to protect the security of the user's password, when using LDAP authentication,
+            you must: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Use SSL on the broker's AMQP and HTTP ports to protect the password during
+                    transmission to the Broker. The Broker enforces this restriction automatically on AMQP
+                    and HTTP ports.</p></li><li class="listitem"><p>Authenticate to the Directory using SSL (i.e. ldaps://) to protect the password
+                    during transmission from the Broker to the Directory.</p></li></ul></div></div><p> The LDAP Authentication Provider works in the following manner. If not in <code class="literal">bind
+        without search</code> mode, it first connects to the Directory and searches for the ldap
+        entity which is identified by the username. The search begins at the distinguished name
+        identified by <code class="literal">Search Context</code> and uses the username as a filter. The search
+        scope is sub-tree meaning the search will include the base object and the subtree extending
+        beneath it. </p><p> If the search returns a match, or is configured in <code class="literal">bind without search</code>
+        mode, the Authentication Provider then attempts to bind to the LDAP server with the given name
+        and the password. Note that <a class="link" href="http://docs.oracle.com/javase/7/docs/api/javax/naming/Context.html#SECURITY_AUTHENTICATION" target="_top">simple security
+            authentication</a> is used so the Directory receives the password in the clear.
+    </p><p>
+        By default, this authentication provider caches the result of an authentication for a short period of time. This
+        reduces the load on the Directory service if the same credentials are presented frequently within a short
+        period of time.  The length of time a result will be cached is defined by context variable
+        <code class="literal">qpid.auth.cache.expiration_time</code> (default to 600 seconds).  The cache can be disabled by
+        setting the context variable <code class="literal">qpid.auth.cache.size</code> to 0.
+    </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Security-Kerberos-Provider"></a>8.1.2.&#160;Kerberos</h3></div></div></div><p> Kereberos Authentication Provider uses java GSS-API SASL mechanism to authenticate the
+        connections. </p><p> Configuration of kerberos is done through system properties (there doesn't seem to be a
+        way around this unfortunately). </p><pre class="programlisting">
+    export JAVA_OPTS=-Djavax.security.auth.useSubjectCredsOnly=false -Djava.security.auth.login.config=qpid.conf
+    ${QPID_HOME}/bin/qpid-server
+  </pre><p>Where qpid.conf would look something like this:</p><pre class="programlisting">
+com.sun.security.jgss.accept {
+    com.sun.security.auth.module.Krb5LoginModule required
+    useKeyTab=true
+    storeKey=true
+    doNotPrompt=true
+    realm="EXAMPLE.COM"
+    useSubjectCredsOnly=false
+    kdc="kerberos.example.com"
+    keyTab="/path/to/keytab-file"
+    principal="&lt;name&gt;/&lt;host&gt;";
+};</pre><p> Where realm, kdc, keyTab and principal should obviously be set correctly for the
+        environment where you are running (see the existing documentation for the C++ broker about
+        creating a keytab file). </p><p> Note: You may need to install the "Java Cryptography Extension (JCE) Unlimited Strength
+        Jurisdiction Policy Files" appropriate for your JDK in order to get Kerberos support working. </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Security-OAuth2-Provider"></a>8.1.3.&#160;OAuth2</h3></div></div></div><p> This authentication provider allows users to login to the broker using credentials from a different service supporting OAuth2.
+        Unfortunately, the <a class="link" href="https://www.rfc-editor.org/rfc/rfc6749.txt" target="_top">OAuth2 specification</a> does not define a standard why to get the identity of a subject from an access token.
+        However, most OAuth2 implementations provide such functionality, although in different ways. Qpid handles this by providing so called IdentityResolvers.
+        Currently the following services are supported:
+        </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>CloudFoundry</p></li><li class="listitem"><p>Facebook</p></li><li class="listitem"><p>GitHub</p></li><li class="listitem"><p>Google</p></li><li class="listitem"><p>Microsoft Live</p></li></ul></div><p>
+        Since all of these, with the exception of CloudFoundry, are tied to a specific service they come with defaults for the Scope, Authorization-, Token-, and IdentityResolverEndpoint.
+    </p><p>
+        By default, this authentication provider caches the result of an authentication for a short period of time. This
+        reduces the load on the OAuth2 service if the same token is presented frequently within a short
+        period of time.  The length of time a result will be cached is defined by context variable
+        <code class="literal">qpid.auth.cache.expiration_time</code> (default to 600 seconds).  The cache can be disabled by
+        setting the context variable <code class="literal">qpid.auth.cache.size</code> to 0.
+    </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Security-External-Provider"></a>8.1.4.&#160;External (SSL Client Certificates)</h3></div></div></div><p> When <a class="link" href="Java-Broker-Management-Managing-Truststores.html" title="7.12.&#160;Truststores"> requiring SSL Client
+        Certificates</a> be presented the External Authentication Provider can be used, such that
+        the user is authenticated based on trust of their certificate alone, and the X500Principal
+        from the SSL session is then used as the username for the connection, instead of also
+        requiring the user to present a valid username and password. </p><p>
+        <span class="bold"><strong>Note:</strong></span> The External Authentication Provider should typically
+        only be used on the AMQP/HTTP ports, in conjunction with <a class="link" href="Java-Broker-Management-Managing-Ports.html" title="7.9.&#160;Ports">SSL client certificate
+            authentication</a>. It is not intended for other uses and
+        will treat any non-sasl authentication processes on these ports as successful with the given
+        username.</p><p>On creation of External Provider the use of full DN or username CN as a principal name can
+        be configured. If attribute "Use the full DN as the Username" is set to "true" the full DN is
+        used as an authenticated principal name. If attribute "Use the full DN as the Username" is set
+        to "false" the user name CN part is used as the authenticated principal name. Setting the
+        field to "false" is particular useful when <a class="link" href="Java-Broker-Security-AccessControlProviders.html" title="8.3.&#160;Access Control Providers">ACL</a> is required, as at the moment, ACL does not support commas in the user name.
+    </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Security-Anonymous-Provider"></a>8.1.5.&#160;Anonymous</h3></div></div></div><p> The Anonymous Authentication Provider will allow users to connect with or without
+    credentials and result in their identification on the broker as the user ANONYMOUS. This
+    Provider does not require specification of any additional attributes on creation. </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Security-ScramSha-Providers"></a>8.1.6.&#160;SCRAM SHA</h3></div></div></div><p>The SCRAM SHA Providers uses the Broker configuration itself to store the database of
+        users. The users'
+        passwords are stored as salted SHA digested password. This can be further encrypted using the
+        facilities described in <a class="xref" href="Java-Broker-Security-Configuration-Encryption.html" title="8.4.&#160;Configuration Encryption">Section&#160;8.4, &#8220;Configuration Encryption&#8221;</a>.</p><p>There are two variants of this provider, SHA1 and SHA256. SHA256 is recommended whenever
+        possible. SHA1 is provided with compatibility with clients utilising JDK 1.6 (which does not
+        support SHA256).</p><p>For these providers user credentials can be added, removed or changed using
+        Management.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Security-Plain-Provider"></a>8.1.7.&#160;Plain</h3></div></div></div><p>The Plain Provider uses the Broker configuration itself to store the database of users
+        (unlike the <a class="link" href="Java-Broker-Security.html#Java-Broker-Security-PlainPasswordFile-Provider" title="8.1.8.&#160;Plain Password File (Deprecated)">PlainPasswordFile</a>, there is no separate password file). As the name suggests,
+        the user data (including password) is not hashed in any way. In order to provide encryption,
+        the facilities described in <a class="xref" href="Java-Broker-Security-Configuration-Encryption.html" title="8.4.&#160;Configuration Encryption">Section&#160;8.4, &#8220;Configuration Encryption&#8221;</a>
+        must be used.</p><p>For this provider user credentials can be added, removed or changed using
+        Management.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Security-PlainPasswordFile-Provider"></a>8.1.8.&#160;Plain Password File <span class="emphasis"><em>(Deprecated)</em></span></h3></div></div></div><p><span class="emphasis"><em>This provider is deprecated and will be removed in a future release. The <a class="link" href="Java-Broker-Security.html#Java-Broker-Security-Plain-Provider" title="8.1.7.&#160;Plain">Plain</a> provider should be used
+            instead.</em></span></p><p> The PlainPasswordFile Provider uses local file to store and manage user credentials. When
+        creating an authentication provider the path to the file needs to be specified. If specified
+        file does not exist an empty file is created automatically on Authentication Provider
+        creation. On Provider deletion the password file is deleted as well.</p><p>For this provider user credentials can be added, removed or changed using
+        Management.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="d0e4440"></a>8.1.8.1.&#160;Plain Password File Format</h4></div></div></div><p> The user credentials are stored on the single file line as user name and user
+            password pairs separated by colon character. This file must not be modified externally
+            whilst the Broker is running.</p><pre class="programlisting">
+# password file format
+# &lt;user name&gt;: &lt;user password&gt;
+guest:guest
+        </pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Security-MD5-Provider"></a>8.1.9.&#160;MD5 Provider</h3></div></div></div><p> MD5 Provider  uses the Broker configuration itself to store the database of
+        users (unlike the <a class="link" href="Java-Broker-Security.html#Java-Broker-Security-Base64MD5PasswordFile-Provider" title="8.1.10.&#160;Base64MD5 Password File (Deprecated)">Base64MD5 Password File</a>, there is no separate password file). Rather than store the
+        unencrypted user password (as the Plain provider does) it instead stores the MD5 password
+        digest.  This can be further encrypted using the
+        facilities described in <a class="xref" href="Java-Broker-Security-Configuration-Encryption.html" title="8.4.&#160;Configuration Encryption">Section&#160;8.4, &#8220;Configuration Encryption&#8221;</a>.</p><p>For this provider user credentials can be added, removed or changed using
+        Management.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Security-Base64MD5PasswordFile-Provider"></a>8.1.10.&#160;Base64MD5 Password File <span class="emphasis"><em>(Deprecated)</em></span></h3></div></div></div><p><span class="emphasis"><em>This provider is deprecated and will be removed in a future release.  The
+        <a class="link" href="Java-Broker-Security.html#Java-Broker-Security-MD5-Provider" title="8.1.9.&#160;MD5 Provider">MD5</a> provider should be used
+        instead.</em></span></p><p> Base64MD5PasswordFile Provider uses local file to store and manage user credentials
+        similar to PlainPasswordFile but instead of storing a password the MD5 password digest encoded
+        with Base64 encoding is stored in the file. When creating an authentication provider the path
+        to the file needs to be specified. If specified file does not exist an empty file is created
+        automatically on Authentication Provider creation. On Base64MD5PasswordFile Provider deletion
+        the password file is deleted as well.</p><p>For this provider user credentials can be added, removed or changed using
+        Management.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="d0e4476"></a>8.1.10.1.&#160;Base64MD5 File Format</h4></div></div></div><p> The user credentials are stored on the single file line as user name and user password
+            pairs separated by colon character. The password is stored MD5 digest/Base64 encoded. This
+            file must not be modified externally whilst the Broker is running.</p></div></div></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="Java-Broker-Management-Managing-Plugin-HTTP.html">Prev</a>&#160;</td><td align="center" width="20%">&#160;</td><td align="right" width="40%">&#160;<a accesskey="n" href="Java-Broker-Security-Group-Providers.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">7.15.&#160;HTTP Plugin&#160;</td><td align="center" width="20%"><a accesskey="h" href="Apache-Qpid-Broker-J-Book.html">Home</a></td><td align="right" valign="top" width="40%">&#160;8.2.&#160;Group Providers</td></tr></table></div></div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/082a5541/input/releases/qpid-broker-j-7.0.3/book/apds02.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-broker-j-7.0.3/book/apds02.html.in b/input/releases/qpid-broker-j-7.0.3/book/apds02.html.in
new file mode 100644
index 0000000..e816a2d
--- /dev/null
+++ b/input/releases/qpid-broker-j-7.0.3/book/apds02.html.in
@@ -0,0 +1,17 @@
+<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">D.2.&#160;Statistic Report Patterns</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-Appendix-Statistics-Reporting.html">Prev</a>&#160;</td><th align="center" width="60%">Appendix&#160;D.&#160;Statistics Reporting</th><td align="right" width="20%">&#160;<a accesskey="n" href="apds03.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="d0e9483"></a>D.2.&#160;Statistic Report Patterns</h2></div></div></div><p>The statistic report pattern defines the format of a statistic report written to the log.</p><p>Statistic report patterns are defined by <a class="link" href="Java-Broker-Management-Managing-Entities.html#Java-Broker-Management-Managing-Entities-General" title="7.1.&#160;General Description">
+      content variables</a>.  The place where the context variable is defined governs the scope i.e. the entities to
+      which the pattern will be applied.</p><p>For instance, to define a statistics reporting pattern for a single queue,
+      <a class="link" href="Java-Broker-Management-Channel-Web-Console.html#Java-Broker-Management-Channel-Web-Console-Managing-Context-Variables" title="6.2.3.4.&#160;Context Variables">set the contextvariable
+      </a> on the queue itself.  If you want the same statistics report pattern for apply to all queues, set the pattern on a
+       suitable ancestor of the queue.  For instance, if set on virtualhost, the pattern will applied to all queues defined
+       on that virtualhost.  If set on Broker, the pattern will be applied to all queues on the Broker.</p><p>The context variable name is formed as follows:
+      <code class="literal">qpid.&lt;category-name&gt;.statisticsReportPattern</code>.</p><p>For instance, for queue: <code class="literal">qpid.queue.statisticsReportPattern</code> and virtualhost:
+      <code class="literal">qpid.virtualhost.statisticsReportPattern</code></p><p>The value of the context variable is a free text string containing reference(s) to the statistic names that
+      are to appear in the report. References are made by surrounding the name of the statistic with '$' and curly braces,
+      thus <code class="literal">${&lt;statistic-name&gt;}</code>.</p><p>Statistics references allow an optional formatters. The supported formatters are: <code class="literal">:byteunit</code>
+      (produces a human readable byte value e.g. 3 MiB), <code class="literal">:duration</code> (produces a ISO-8601 duration)and
+      <code class="literal">:datetime</code> (produces a ISO-8601 date/time).</p><p>For example, a statistic report pattern for the <code class="literal">queue</code> category specifying two queue
+      statistic values: <code class="literal">queueDepthMessages=${queueDepthMessages},queueDepthBytes=${queueDepthBytes:byteunit}</code></p><p>Like all context variables, the statistic report pattern can also reference the attributes of the entity
+      or even its ancestors.  This feature can be exploited to include things like the name of the entity within the
+      report.</p><p>These points are illustrated in the examples in the next section.</p><p>A catalogue of statistics names and descriptions is available from the REST API documentation available
+      through the <a class="link" href="Java-Broker-Management-Channel-Web-Console.html" title="6.2.&#160;Web Management Console">Web Management Console</a>.</p></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="Java-Broker-Appendix-Statistics-Reporting.html">Prev</a>&#160;</td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-Appendix-Statistics-Reporting.html">Up</a></td><td align="right" width="40%">&#160;<a accesskey="n" href="apds03.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">Appendix&#160;D.&#160;Statistics Reporting&#160;</td><td align="center" width="20%"><a accesskey="h" href="Apache-Qpid-Broker-J-Book.html">Home</a></td><td align="right" valign="top" width="40%">&#160;D.3.&#160;Examples</td></tr></table></div></div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/082a5541/input/releases/qpid-broker-j-7.0.3/book/apds03.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-broker-j-7.0.3/book/apds03.html.in b/input/releases/qpid-broker-j-7.0.3/book/apds03.html.in
new file mode 100644
index 0000000..4c841f4
--- /dev/null
+++ b/input/releases/qpid-broker-j-7.0.3/book/apds03.html.in
@@ -0,0 +1,11 @@
+<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">D.3.&#160;Examples</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="apds02.html">Prev</a>&#160;</td><th align="center" width="60%">Appendix&#160;D.&#160;Statistics Reporting</th><td align="right" width="20%">&#160;<a accesskey="n" href="Java-Broker-Appendix-Queue-Alerts.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="d0e9542"></a>D.3.&#160;Examples</h2></div></div></div><p>Adding a statistic reporting pattern to a single queue, called <code class="literal">myqueue</code> using the REST API and
+      cURL.  This example uses <code class="literal">ancestor</code> references to include entity names:</p><div class="example"><a id="d0e9553"></a><p class="title"><strong>Example&#160;D.1.&#160;Enabling statistics for a single queue using the REST API and cURL</strong></p><div class="example-contents"><pre class="screen">curl --user admin --data '{"name" : "qpid.queue.statisticsReportPattern", "value" : "${ancestor:virtualhost:name}/${ancestor:queue:name}: queueDepthMessages=${queueDepthMessages}, queueDepthBytes=${queueDepthBytes:byteunit}"}' https://localhost:8080/api/latest/queue/default/default/myqueue/setContextVariable</pre></div></div><br class="example-break" /><p>
+      Once enabled, an example statistic report output written to the log might look like this:
+      </p><pre class="screen">2017-10-15 13:03:12,993 INFO  [virtualhost-default-pool-0] (q.s.Queue) - Statistics: default/myqueue: queueDepthMessages=0, queueDepthBytes=0 B
+2017-10-15 13:03:22,979 INFO  [virtualhost-default-pool-2] (q.s.Queue) - Statistics: default/myqueue: queueDepthMessages=3, queueDepthBytes=345 B
+2017-10-15 13:03:32,981 INFO  [virtualhost-default-pool-2] (q.s.Queue) - Statistics: default/myqueue: queueDepthMessages=3, queueDepthBytes=345 B</pre><p>
+    </p><p>Removing a statistic report pattern from the same queue:</p><div class="example"><a id="d0e9565"></a><p class="title"><strong>Example&#160;D.2.&#160;Disabling statistics for a single queue using the REST API and cURL</strong></p><div class="example-contents"><pre class="screen">curl --user admin --data '{"name" : "qpid.queue.statisticsReportPattern"}' https://localhost:8080/api/latest/queue/default/default/myqueue/setContextVariable</pre></div></div><br class="example-break" /><p>Adding a statistic reporting pattern to all queues:</p><div class="example"><a id="d0e9572"></a><p class="title"><strong>Example&#160;D.3.&#160;Enabling statistics for all queues using the REST API and cURL</strong></p><div class="example-contents"><pre class="screen">curl --user admin --data '{"name" : "qpid.queue.statisticsReportPattern", "value" : "${ancestor:virtualhost:name}/${ancestor:queue:name}: oldestMessageAge=${oldestMessageAge:duration}"}' https://localhost:8080/api/latest/virtualhost
 /default/default/setContextVariable</pre></div></div><br class="example-break" /><p>
+      Once enabled, an  example statistic report for a virtualhost with two queues might look like this:
+      </p><pre class="screen">2017-10-15 13:17:42,918 INFO  [virtualhost-default-pool-1] (q.s.Queue) - Statistics: default/myqueue1: oldestMessageAge=PT1M24S
+2017-10-15 13:17:42,918 INFO  [virtualhost-default-pool-1] (q.s.Queue) - Statistics: default/myqueue2: oldestMessageAge=PT0S</pre><p>
+    </p></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="apds02.html">Prev</a>&#160;</td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-Appendix-Statistics-Reporting.html">Up</a></td><td align="right" width="40%">&#160;<a accesskey="n" href="Java-Broker-Appendix-Queue-Alerts.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">D.2.&#160;Statistic Report Patterns&#160;</td><td align="center" width="20%"><a accesskey="h" href="Apache-Qpid-Broker-J-Book.html">Home</a></td><td align="right" valign="top" width="40%">&#160;Appendix&#160;E.&#160;Queue Alerts</td></tr></table></div></div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/082a5541/input/releases/qpid-broker-j-7.0.3/book/css/style.css
----------------------------------------------------------------------
diff --git a/input/releases/qpid-broker-j-7.0.3/book/css/style.css b/input/releases/qpid-broker-j-7.0.3/book/css/style.css
new file mode 100644
index 0000000..8179bf4
--- /dev/null
+++ b/input/releases/qpid-broker-j-7.0.3/book/css/style.css
@@ -0,0 +1,131 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+ul {
+    list-style-type:square;
+}
+
+th {
+    font-weight: bold;
+}
+
+.navfooter td {
+    font-size:10pt;
+}
+
+.navheader td {
+    font-size:10pt;
+}
+
+body {
+    margin:0;
+    background:#FFFFFF;
+    font-family:"Verdana", sans-serif;
+    font-size:10pt;
+}
+
+.container {
+    width:950px;
+    margin:0 auto;
+}
+
+body a {
+    color:#000000;
+}
+
+
+div.book {
+    margin-left:10pt;
+    margin-right:10pt;
+}
+
+div.preface {
+    margin-left:10pt;
+    margin-right:10pt;
+}
+
+div.chapter {
+    margin-left:10pt;
+    margin-right:10pt;
+}
+
+div.section {
+    margin-left:10pt;
+    margin-right:10pt;
+}
+
+div.titlepage {
+    margin-left:-10pt;
+    margin-right:-10pt;
+}
+
+.calloutlist td {
+    font-size:10pt;
+}
+
+.table-contents table {
+    border-spacing: 0px;
+}
+
+.table-contents td {
+    font-size:10pt;
+    padding-left:6px;
+    padding-right:6px;
+}
+
+.chapter h2.title {
+    font-size:20pt;
+    color:#0c3b82;
+}
+
+.chapter .section h2.title {
+    font-size:18pt;
+    color:#0c3b82;
+}
+
+.section h2.title {
+    font-size:16pt;
+    color:#0c3b82;
+}
+
+.section h3.title {
+    font-size:14pt;
+    color:#0c3b82;
+}
+
+.section h4.title {
+    font-size:12pt;
+    color:#0c3b82;
+}
+
+.section h5.title {
+    font-size:12pt;
+    color:#0c3b82;
+}
+
+.section h6.title {
+    font-size:12pt;
+    color:#0c3b82;
+}
+
+.toc a {
+    font-size:9pt;
+}
+

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/082a5541/input/releases/qpid-broker-j-7.0.3/book/images/Broker-MessageFlow.png
----------------------------------------------------------------------
diff --git a/input/releases/qpid-broker-j-7.0.3/book/images/Broker-MessageFlow.png b/input/releases/qpid-broker-j-7.0.3/book/images/Broker-MessageFlow.png
new file mode 100644
index 0000000..4902c46
Binary files /dev/null and b/input/releases/qpid-broker-j-7.0.3/book/images/Broker-MessageFlow.png differ

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/082a5541/input/releases/qpid-broker-j-7.0.3/book/images/Broker-Model.png
----------------------------------------------------------------------
diff --git a/input/releases/qpid-broker-j-7.0.3/book/images/Broker-Model.png b/input/releases/qpid-broker-j-7.0.3/book/images/Broker-Model.png
new file mode 100644
index 0000000..a254565
Binary files /dev/null and b/input/releases/qpid-broker-j-7.0.3/book/images/Broker-Model.png differ

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/082a5541/input/releases/qpid-broker-j-7.0.3/book/images/Broker-PortAuthFlow.png
----------------------------------------------------------------------
diff --git a/input/releases/qpid-broker-j-7.0.3/book/images/Broker-PortAuthFlow.png b/input/releases/qpid-broker-j-7.0.3/book/images/Broker-PortAuthFlow.png
new file mode 100644
index 0000000..4df2fa1
Binary files /dev/null and b/input/releases/qpid-broker-j-7.0.3/book/images/Broker-PortAuthFlow.png differ

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/082a5541/input/releases/qpid-broker-j-7.0.3/book/images/Exchange-Direct.png
----------------------------------------------------------------------
diff --git a/input/releases/qpid-broker-j-7.0.3/book/images/Exchange-Direct.png b/input/releases/qpid-broker-j-7.0.3/book/images/Exchange-Direct.png
new file mode 100644
index 0000000..184fb80
Binary files /dev/null and b/input/releases/qpid-broker-j-7.0.3/book/images/Exchange-Direct.png differ

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/082a5541/input/releases/qpid-broker-j-7.0.3/book/images/Exchange-Direct.svg
----------------------------------------------------------------------
diff --git a/input/releases/qpid-broker-j-7.0.3/book/images/Exchange-Direct.svg b/input/releases/qpid-broker-j-7.0.3/book/images/Exchange-Direct.svg
new file mode 100644
index 0000000..76d25fa
--- /dev/null
+++ b/input/releases/qpid-broker-j-7.0.3/book/images/Exchange-Direct.svg
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<!--
+ 
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+ 
+   http://www.apache.org/licenses/LICENSE-2.0
+ 
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ 
+-->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="17 70 436 355" width="436pt" height="355pt"><metadata xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:date>2013-10-01 22:37Z</dc:date><!-- Produced by OmniGraffle Professional 5.4.4 --></metadata><defs><filter id="Shadow" filterUnits="userSpaceOnUse"><feGaussianBlur in="SourceAlpha" result="blur" stdDeviation="3.488"/><feOffset in="blur" result="offset" dx="0" dy="4"/><feFlood flood-color="black" flood-opacity=".75" result="flood"/><feComposite in="flood" in2="offset" operator="in"/></filter><font-face font-family="Helvetica" font-size="12" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="532.22656" cap-height="719.72656" ascent="770.01953" descent="-229.98047" font-weight="bold"><font-face-src><font-face-name name="Helvetica-Bold"/></font-face-src></font-face><marker orient="auto" overflow="visible" markerUnits="strokeWidth" i
 d="FilledArrow_Marker" viewBox="-1 -3 6 6" markerWidth="6" markerHeight="6" color="black"><g><path d="M 3.2 0 L 0 -1.2 L 0 1.2 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/></g></marker><font-face font-family="Helvetica" font-size="9" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="522.94922" cap-height="717.28516" ascent="770.01953" descent="-229.98047" font-weight="500"><font-face-src><font-face-name name="Helvetica"/></font-face-src></font-face><font-face font-family="Helvetica" font-size="9" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="-1333.3334" x-height="539.55078" cap-height="719.72656" ascent="770.01953" descent="-229.98047" font-style="italic" font-weight="bold"><font-face-src><font-face-name name="Helvetica-BoldOblique"/></font-face-src></font-face></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><title>Canva
 s 1</title><g><title>Layer 1</title><g><use xl:href="#id4_Graphic" filter="url(#Shadow)"/><use xl:href="#id1902_Graphic" filter="url(#Shadow)"/><use xl:href="#id2284_Graphic" filter="url(#Shadow)"/></g><g id="id4_Graphic"><path d="M 66.296997 107.000005 L 160.297 107.000005 C 165.26756 107.000005 169.297 111.02944 169.297 116.000005 L 169.297 136.000005 C 169.297 140.97057 165.26756 145.000005 160.297 145.000005 L 66.296997 145.000005 C 61.326434 145.000005 57.296997 140.97057 57.296997 136.000005 L 57.296997 116.000005 C 57.296997 111.02944 61.326434 107.000005 66.296997 107.000005 Z" fill="#acffa2"/><path d="M 66.296997 107.000005 L 160.297 107.000005 C 165.26756 107.000005 169.297 111.02944 169.297 116.000005 L 169.297 136.000005 C 169.297 140.97057 165.26756 145.000005 160.297 145.000005 L 66.296997 145.000005 C 61.326434 145.000005 57.296997 140.97057 57.296997 136.000005 L 57.296997 116.000005 C 57.296997 111.02944 61.326434 107.000005 66.296997 107.000005 Z" stroke="black" st
 roke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(62.296997 112.000005)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="0" y="11" textLength="56.015625">Producer </tspan><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="55.576172" y="11" textLength="8.6660156">A</tspan></text></g><g id="id1902_Graphic"><path d="M 197.65201 107.500005 L 291.652 107.500005 C 296.62257 107.500005 300.652 111.52944 300.652 116.500005 L 300.652 136.500005 C 300.652 141.47057 296.62257 145.500005 291.652 145.500005 L 197.65201 145.500005 C 192.68144 145.500005 188.65201 141.47057 188.65201 136.500005 L 188.65201 116.500005 C 188.65201 111.52944 192.68144 107.500005 197.65201 107.500005 Z" fill="#acffa2"/><path d="M 197.65201 107.500005 L 291.652 107.500005 C 296.62257 107.500005 300.652 111.52944 300.652 116.500005 L 300.652 136.500005 C 300.652 141.47057 296.62257 145.500005 291.652 145.500005 L 197.65201 145.5000
 05 C 192.68144 145.500005 188.65201 141.47057 188.65201 136.500005 L 188.65201 116.500005 C 188.65201 111.52944 192.68144 107.500005 197.65201 107.500005 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(193.65201 112.500005)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="0" y="11" textLength="64.68164">Producer B</tspan></text></g><rect x="255.297" y="90.000006" width="31.222" height="16.5076" fill="#ff0b22"/><rect x="255.297" y="90.000006" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="256.716" y1="91.375606" x2="263.812" y2="91.375606" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="256.716" y1="92.750806" x2="263.812" y2="92.750806" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="256.716" y1="94.126806" x2="263.
 812" y2="94.126806" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="265.231" y1="98.253806" x2="276.585" y2="98.253806" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="265.231" y1="99.629806" x2="276.585" y2="99.629806" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="265.231" y1="101.004806" x2="276.585" y2="101.004806" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="282.261" y="91.375606" width="2.83837" height="2.75126" fill="none"/><rect x="282.261" y="91.375606" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="262.297" y="96.08351" width="31.222" height="16.5076" fill="#ff0b22"/><rect x="262.297" y="96.08351" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line 
 x1="263.716" y1="97.45851" x2="270.812" y2="97.45851" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="263.716" y1="98.83451" x2="270.812" y2="98.83451" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="263.716" y1="100.20951" x2="270.812" y2="100.20951" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="272.231" y1="104.33651" x2="283.584" y2="104.33651" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="272.231" y1="105.71251" x2="283.584" y2="105.71251" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="272.231" y1="107.08751" x2="283.584" y2="107.08751" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="289.261" y="97.45851" width="2.83837" height="2.75126" fill="none"/><rect x="289.261" y="97.45851" width="2.83837" h
 eight="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="124.296996" y="90.00001" width="31.222" height="16.5076" fill="#ff9"/><rect x="124.296996" y="90.00001" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="125.715996" y1="91.37501" x2="132.812" y2="91.37501" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="125.715996" y1="92.75101" x2="132.812" y2="92.75101" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="125.715996" y1="94.12701" x2="132.812" y2="94.12701" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="134.231" y1="98.25351" x2="145.585" y2="98.25351" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="134.231" y1="99.62951" x2="145.585" y2="99.62951" stroke="black" st
 roke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="134.231" y1="101.00551" x2="145.585" y2="101.00551" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="151.261" y="91.37501" width="2.83837" height="2.75126" fill="none"/><rect x="151.261" y="91.37501" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="129.084" y="96.08351" width="31.222" height="16.5076" fill="#ff9"/><rect x="129.084" y="96.08351" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="130.503" y1="97.45851" x2="137.599" y2="97.45851" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="130.503" y1="98.83451" x2="137.599" y2="98.83451" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="130.503" y1="100.21051" x2="137.599" y
 2="100.21051" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="139.018" y1="104.33651" x2="150.372" y2="104.33651" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="139.018" y1="105.71251" x2="150.372" y2="105.71251" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="139.018" y1="107.08851" x2="150.372" y2="107.08851" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="156.048" y="97.45851" width="2.83837" height="2.75126" fill="none"/><rect x="156.048" y="97.45851" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="134.002" y="103.58351" width="31.222" height="16.5076" fill="#ff9"/><rect x="134.002" y="103.58351" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="135.422
 " y1="104.95951" x2="142.518" y2="104.95951" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="135.422" y1="106.33451" x2="142.518" y2="106.33451" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="135.422" y1="107.71051" x2="142.518" y2="107.71051" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="143.937" y1="111.83751" x2="155.29" y2="111.83751" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="143.937" y1="113.21251" x2="155.29" y2="113.21251" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="143.937" y1="114.58851" x2="155.29" y2="114.58851" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="160.967" y="104.95951" width="2.83837" height="2.75126" fill="none"/><rect x="160.967" y="104.95951" width="2.83837" height="2
 .75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><path d="M 133.699005 163 L 355.605 163 C 360.57557 163 364.605 167.02944 364.605 172 L 364.605 391.274 C 364.605 396.24457 360.57557 400.274 355.605 400.274 L 133.699005 400.274 C 128.72844 400.274 124.699005 396.24457 124.699005 391.274 L 124.699005 172 C 124.699005 167.02944 128.72844 163 133.699005 163 Z" fill="#78caff"/><path d="M 133.699005 163 L 355.605 163 C 360.57557 163 364.605 167.02944 364.605 172 L 364.605 391.274 C 364.605 396.24457 360.57557 400.274 355.605 400.274 L 133.699005 400.274 C 128.72844 400.274 124.699005 396.24457 124.699005 391.274 L 124.699005 172 C 124.699005 167.02944 128.72844 163 133.699005 163 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(129.699005 168)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="0" y="11" textLength="69.345703">Qpid Broker</tspan></text><path
  d="M 148.554005 211.5 L 255.554 211.5 C 260.52457 211.5 264.554 215.52944 264.554 220.5 L 264.554 311.5 C 264.554 316.47057 260.52457 320.5 255.554 320.5 L 148.554005 320.5 C 143.58344 320.5 139.554005 316.47057 139.554005 311.5 L 139.554005 220.5 C 139.554005 215.52944 143.58344 211.5 148.554005 211.5 Z" fill="#a788ff"/><path d="M 148.554005 211.5 L 255.554 211.5 C 260.52457 211.5 264.554 215.52944 264.554 220.5 L 264.554 311.5 C 264.554 316.47057 260.52457 320.5 255.554 320.5 L 148.554005 320.5 C 143.58344 320.5 139.554005 316.47057 139.554005 311.5 L 139.554005 220.5 C 139.554005 215.52944 143.58344 211.5 148.554005 211.5 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(144.554005 216.5)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="0" y="11" textLength="60.685547">amq.direct</tspan></text><path d="M 282.554 211.5 L 341.554 211.5 C 346.52457 211.5 350.554 215.52944 350.554 220.5 L 35
 0.554 255.5 C 350.554 260.47057 346.52457 264.5 341.554 264.5 L 282.554 264.5 C 277.58344 264.5 273.554 260.47057 273.554 255.5 L 273.554 220.5 C 273.554 215.52944 277.58344 211.5 282.554 211.5 Z" fill="#93d9ff"/><path d="M 282.554 211.5 L 341.554 211.5 C 346.52457 211.5 350.554 215.52944 350.554 220.5 L 350.554 255.5 C 350.554 260.47057 346.52457 264.5 341.554 264.5 L 282.554 264.5 C 277.58344 264.5 273.554 260.47057 273.554 255.5 L 273.554 220.5 C 273.554 215.52944 277.58344 211.5 282.554 211.5 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(278.554 216.5)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="7.1591797" y="11" textLength="52.68164">myqueue</tspan></text><path d="M 250.19663 211.12414 C 257.98164 202.25032 264.9523 188.93692 273.554 184.5 C 282.1557 180.06309 296.25709 180.08229 301.812 184.5 C 303.83 186.10487 304.82832 188.87613 305.36258 192.17813" marker-end="url(#FilledAr
 row_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><path d="M 282.554 274.425 L 341.554 274.425 C 346.52457 274.425 350.554 278.45444 350.554 283.425 L 350.554 318.425 C 350.554 323.39557 346.52457 327.425 341.554 327.425 L 282.554 327.425 C 277.58344 327.425 273.554 323.39557 273.554 318.425 L 273.554 283.425 C 273.554 278.45444 277.58344 274.425 282.554 274.425 Z" fill="#93d9ff"/><path d="M 282.554 274.425 L 341.554 274.425 C 346.52457 274.425 350.554 278.45444 350.554 283.425 L 350.554 318.425 C 350.554 323.39557 346.52457 327.425 341.554 327.425 L 282.554 327.425 C 277.58344 327.425 273.554 323.39557 273.554 318.425 L 273.554 283.425 C 273.554 278.45444 277.58344 274.425 282.554 274.425 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(278.554 279.425)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="20.826172" y="11" textLength="25.347656">bar1<
 /tspan></text><rect x="210.054" y="291.18696" width="48" height="13.6119385" fill="white"/><rect x="210.054" y="291.18696" width="48" height="13.6119385" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(215.054 292.49293)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="13.249756" y="9" textLength="11.500488">….</tspan></text><rect x="146.05401" y="291.18696" width="63.999992" height="13.6119385" fill="white"/><rect x="146.05401" y="291.18696" width="63.999992" height="13.6119385" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(151.05401 292.49293)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="23.249264" y="9" textLength="7.501465">...</tspan></text><rect x="210.054" y="277.57496" width="48" height="13.6119995" fill="white"/><rect x="210.054" y="277.57496" width="48" height="13.6119995" stroke="black" 
 stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(215.054 278.88096)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="9.993408" y="9" textLength="18.013184">bar2</tspan></text><rect x="146.05401" y="277.57496" width="63.999992" height="13.6119995" fill="white"/><rect x="146.05401" y="277.57496" width="63.999992" height="13.6119995" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(151.05401 278.88096)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="20.744381" y="9" textLength="12.5112305">foo</tspan></text><rect x="210.054" y="263.96296" width="48" height="13.6119995" fill="white"/><rect x="210.054" y="263.96296" width="48" height="13.6119995" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(215.054 265.26896)" fill="black"><tspan font-family="Helvetica" font-size="9
 " font-weight="500" x="9.993408" y="9" textLength="18.013184">bar1</tspan></text><rect x="146.05401" y="263.96296" width="63.999992" height="13.6119995" fill="white"/><rect x="146.05401" y="263.96296" width="63.999992" height="13.6119995" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(151.05401 265.26896)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="20.744381" y="9" textLength="12.5112305">foo</tspan></text><rect x="210.054" y="250.35105" width="48" height="13.611908" fill="white"/><rect x="210.054" y="250.35105" width="48" height="13.611908" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(215.054 251.65701)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x=".4880371" y="9" textLength="37.023926">myqueue</tspan></text><rect x="146.05401" y="250.35105" width="63.999992" height="13.611908" fill="white"/><
 rect x="146.05401" y="250.35105" width="63.999992" height="13.611908" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(151.05401 251.65701)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="8.4880333" y="9" textLength="37.023926">myqueue</tspan></text><rect x="210.054" y="239.57501" width="48" height="10.776047" fill="white"/><rect x="210.054" y="239.57501" width="48" height="10.776047" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(215.054 239.46303)" fill="black"><tspan font-family="Helvetica" font-size="9" font-style="italic" font-weight="bold" x="5.748291" y="9" textLength="26.503418">queue</tspan></text><rect x="146.05401" y="239.57501" width="63.999992" height="10.776047" fill="white"/><rect x="146.05401" y="239.57501" width="63.999992" height="10.776047" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1
 "/><text transform="translate(151.05401 239.46303)" fill="black"><tspan font-family="Helvetica" font-size="9" font-style="italic" font-weight="bold" x=".74486923" y="9" textLength="52.510254">binding_key</tspan></text><path d="M 222.4567 320.96876 C 224.43994 326.31197 225.22727 333.49515 228.407 337 C 231.58674 340.50486 233.90403 344.3383 241.537 342 C 245.68743 340.72856 251.76463 337.0884 258.19681 333.01168" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><path d="M 282.554 337.349 L 341.554 337.349 C 346.52457 337.349 350.554 341.37844 350.554 346.349 L 350.554 381.349 C 350.554 386.31957 346.52457 390.349 341.554 390.349 L 282.554 390.349 C 277.58344 390.349 273.554 386.31957 273.554 381.349 L 273.554 346.349 C 273.554 341.37844 277.58344 337.349 282.554 337.349 Z" fill="#93d9ff"/><path d="M 282.554 337.349 L 341.554 337.349 C 346.52457 337.349 350.554 341.37844 350.554 346.349 L 350.554 381.349 C 350.554 3
 86.31957 346.52457 390.349 341.554 390.349 L 282.554 390.349 C 277.58344 390.349 273.554 386.31957 273.554 381.349 L 273.554 346.349 C 273.554 341.37844 277.58344 337.349 282.554 337.349 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(278.554 342.349)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="20.826172" y="11" textLength="25.347656">bar2</tspan></text><path d="M 217.1713 320.98211 C 219.37232 328.98728 220.64087 338.99762 223.775 345 C 226.90914 351.00239 227.76532 354.44391 235.978 357 C 240.33458 358.35593 247.02521 358.89955 254.1924 359.2772" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><rect x="307.659" y="230.333" width="31.222" height="16.5076" fill="#ff9"/><rect x="307.659" y="230.333" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line
  x1="309.078" y1="231.708" x2="316.174" y2="231.708" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="309.078" y1="233.084" x2="316.174" y2="233.084" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="309.078" y1="234.46" x2="316.174" y2="234.46" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="317.593" y1="238.587" x2="328.947" y2="238.587" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="317.593" y1="239.963" x2="328.947" y2="239.963" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="317.593" y1="241.339" x2="328.947" y2="241.339" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="334.623" y="231.708" width="2.83837" height="2.75126" fill="none"/><rect x="334.623" y="231.708" width="2.83837" height="2.75126" stroke=
 "black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="312.446" y="236.417" width="31.222" height="16.5076" fill="#ff9"/><rect x="312.446" y="236.417" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="313.865" y1="237.792" x2="320.961" y2="237.792" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="313.865" y1="239.168" x2="320.961" y2="239.168" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="313.865" y1="240.544" x2="320.961" y2="240.544" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="322.38" y1="244.67" x2="333.734" y2="244.67" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="322.38" y1="246.046" x2="333.734" y2="246.046" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-wi
 dth=".24"/><line x1="322.38" y1="247.422" x2="333.734" y2="247.422" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="339.41" y="237.792" width="2.83837" height="2.75126" fill="none"/><rect x="339.41" y="237.792" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="317.364" y="243.917" width="31.222" height="16.5076" fill="#ff9"/><rect x="317.364" y="243.917" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="318.783" y1="245.293" x2="325.879" y2="245.293" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="318.783" y1="246.668" x2="325.879" y2="246.668" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="318.783" y1="248.044" x2="325.879" y2="248.044" stroke="black" stroke-linecap="round" stroke-linejoin="roun
 d" stroke-width=".72000003"/><line x1="327.298" y1="252.171" x2="338.652" y2="252.171" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="327.298" y1="253.546" x2="338.652" y2="253.546" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="327.298" y1="254.922" x2="338.652" y2="254.922" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="344.328" y="245.293" width="2.83837" height="2.75126" fill="none"/><rect x="344.328" y="245.293" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="309.079" y="294.564" width="31.222" height="16.5076" fill="#ff0b22"/><rect x="309.079" y="294.564" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="310.498" y1="295.94" x2="317.594" y2="295.94" stroke="black" stroke-linecap="round" stroke-line
 join="round" stroke-width=".72000003"/><line x1="310.498" y1="297.316" x2="317.594" y2="297.316" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="310.498" y1="298.691" x2="317.594" y2="298.691" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="319.013" y1="302.818" x2="330.366" y2="302.818" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="319.013" y1="304.194" x2="330.366" y2="304.194" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="319.013" y1="305.569" x2="330.366" y2="305.569" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="336.043" y="295.94" width="2.83837" height="2.75126" fill="none"/><rect x="336.043" y="295.94" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="312.873" y="300.98
 4" width="31.222" height="16.5076" fill="#ff0b22"/><rect x="312.873" y="300.984" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="314.292" y1="302.359" x2="321.388" y2="302.359" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="314.292" y1="303.736" x2="321.388" y2="303.736" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="314.292" y1="305.111" x2="321.388" y2="305.111" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="322.807" y1="309.238" x2="334.16" y2="309.238" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="322.807" y1="310.614" x2="334.16" y2="310.614" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="322.807" y1="311.989" x2="334.16" y2="311.989" stroke="black" stroke-linecap
 ="round" stroke-linejoin="round" stroke-width=".24"/><rect x="339.837" y="302.359" width="2.83837" height="2.75126" fill="none"/><rect x="339.837" y="302.359" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="308.652" y="359.347" width="31.222" height="16.5076" fill="#ff0b22"/><rect x="308.652" y="359.347" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="310.071" y1="360.723" x2="317.167" y2="360.723" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="310.071" y1="362.099" x2="317.167" y2="362.099" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="310.071" y1="363.474" x2="317.167" y2="363.474" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="318.586" y1="367.601" x2="329.939" y2="367.601" strok
 e="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="318.586" y1="368.977" x2="329.939" y2="368.977" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="318.586" y1="370.352" x2="329.939" y2="370.352" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="335.616" y="360.723" width="2.83837" height="2.75126" fill="none"/><rect x="335.616" y="360.723" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="312.446" y="365.767" width="31.222" height="16.5076" fill="#ff0b22"/><rect x="312.446" y="365.767" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="313.865" y1="367.142" x2="320.961" y2="367.142" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="313.865" y1="368.519" x2="320.961" y2="36
 8.519" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="313.865" y1="369.894" x2="320.961" y2="369.894" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="322.38" y1="374.021" x2="333.733" y2="374.021" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="322.38" y1="375.397" x2="333.733" y2="375.397" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="322.38" y1="376.772" x2="333.733" y2="376.772" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="339.41" y="367.142" width="2.83837" height="2.75126" fill="none"/><rect x="339.41" y="367.142" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><text transform="translate(26.796997 79.00001)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="5
 00" x="42.09546" y="9" textLength="88.80908">routing_key=myqueue</tspan></text><text transform="translate(202.031 79.00001)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="10.472812" y="9" textLength="64.296387">routing_key=foo</tspan></text><g id="id2284_Graphic"><path d="M 329.00702 107.000005 L 423.00702 107.000005 C 427.97758 107.000005 432.00702 111.02944 432.00702 116.000005 L 432.00702 136.000005 C 432.00702 140.97057 427.97758 145.000005 423.00702 145.000005 L 329.00702 145.000005 C 324.03645 145.000005 320.00702 140.97057 320.00702 136.000005 L 320.00702 116.000005 C 320.00702 111.02944 324.03645 107.000005 329.00702 107.000005 Z" fill="#acffa2"/><path d="M 329.00702 107.000005 L 423.00702 107.000005 C 427.97758 107.000005 432.00702 111.02944 432.00702 116.000005 L 432.00702 136.000005 C 432.00702 140.97057 427.97758 145.000005 423.00702 145.000005 L 329.00702 145.000005 C 324.03645 145.000005 320.00702 140.97057 320.00702 136.000005 L 320.00
 702 116.000005 C 320.00702 111.02944 324.03645 107.000005 329.00702 107.000005 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(325.00702 112.000005)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="0" y="11" textLength="64.68164">Producer C</tspan></text></g><text transform="translate(333.38602 79.00001)" fill="black"><tspan font-family="Helvetica" font-size="9" font-weight="500" x="9.473056" y="9" textLength="66.2959">routing_key=qux</tspan></text><path d="M 348.5369 145.28732 C 342.97682 149.191155 347.46709 154.21483 331.855 157 C 316.24291 159.78517 271.83745 152.99187 254.855 162 C 243.4814 168.03298 239.89471 180.65409 236.27266 193.24423" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><path d="M 147.98082 145.24257 C 161.65251 152.82762 181.23191 161.374425 189 168 C 196.76809 174.62558 193.26267 177.8337 194.594
  185 C 194.99444 187.15549 195.29843 189.58266 195.54949 192.1589" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><path d="M 240.89769 145.99098 C 240.38351 148.66039 243.08474 149.24897 239.355 154 C 235.62526 158.75103 223.08431 164.99963 218.517 174.5 C 216.17447 179.37265 215.08286 185.64978 214.27983 192.25062" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><rect x="393" y="96.08351" width="31.222" height="16.5076" fill="#0d46ff"/><rect x="393" y="96.08351" width="31.222" height="16.5076" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="394.419" y1="97.45851" x2="401.515" y2="97.45851" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="394.419" y1="98.83451" x2="401.515" y2="98.83451" stroke="black" stroke-linecap="round" stroke-linejoin="round" stro
 ke-width=".72000003"/><line x1="394.419" y1="100.20951" x2="401.515" y2="100.20951" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".72000003"/><line x1="402.934" y1="104.33651" x2="414.287" y2="104.33651" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="402.934" y1="105.71251" x2="414.287" y2="105.71251" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><line x1="402.934" y1="107.08751" x2="414.287" y2="107.08751" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/><rect x="419.964" y="97.45851" width="2.83837" height="2.75126" fill="none"/><rect x="419.964" y="97.45851" width="2.83837" height="2.75126" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width=".24"/></g></g></svg>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/082a5541/input/releases/qpid-broker-j-7.0.3/book/images/Exchange-Fanout.png
----------------------------------------------------------------------
diff --git a/input/releases/qpid-broker-j-7.0.3/book/images/Exchange-Fanout.png b/input/releases/qpid-broker-j-7.0.3/book/images/Exchange-Fanout.png
new file mode 100644
index 0000000..1e7f8ca
Binary files /dev/null and b/input/releases/qpid-broker-j-7.0.3/book/images/Exchange-Fanout.png differ


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org


Mime
View raw message