activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From build...@apache.org
Subject svn commit: r996885 - in /websites/production/activemq/content: activemq-message-properties.html cache/main.pageCache timestampplugin.html
Date Wed, 07 Sep 2016 18:22:39 GMT
Author: buildbot
Date: Wed Sep  7 18:22:39 2016
New Revision: 996885

Log:
Production update by buildbot for activemq

Modified:
    websites/production/activemq/content/activemq-message-properties.html
    websites/production/activemq/content/cache/main.pageCache
    websites/production/activemq/content/timestampplugin.html

Modified: websites/production/activemq/content/activemq-message-properties.html
==============================================================================
--- websites/production/activemq/content/activemq-message-properties.html (original)
+++ websites/production/activemq/content/activemq-message-properties.html Wed Sep  7 18:22:39
2016
@@ -72,7 +72,7 @@
   <tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><p><strong>ActiveMQ Messages support
the following default message properties:</strong></p><h2 id="ActiveMQMessageProperties-Messageattributesaccessedasproperties:">Message
attributes accessed as properties:</h2><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p>Property Name</p></th><th
colspan="1" rowspan="1" class="confluenceTh"><p>type</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>default value</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>description</p></th></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>JMSDestination</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>javax.jms.Destination</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>set by the producer</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Destination used by the producer</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"
 ><p>JMSReplyTo</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>javax.jms.Destination</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>null</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>user defined</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>JMSType</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>empty</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>user defined</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>JMSDeliveryMode</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>int</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>DeliveryMode.PERSISTENT</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>indicator if messages should be persisted</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>JMSPriority</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>int
 </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>4</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>value from 0-9</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>JMSMessageID</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>unique</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>unique identifier for the message</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>JMSTimestamp</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>long</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>time the message was sent</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>time in milliseconds</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>JMSCorrelationID</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>null</p></td><td colsp
 an="1" rowspan="1" class="confluenceTd"><p>user defined</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>JMSExpiration</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>long</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>0</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>time in milliseconds to expire the message - 0 means never
expire</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>JMSRedelivered</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>boolean</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>true if the message is being resent
to the consumer, persisted via <u><a shape="rect" href="per-destination-policies.html">persistJMSRedelivered</a></u></p></td></tr></tbody></table></div><h2
id="ActiveMQMessageProperties-JMSDefined:">JMS Defined:</h2><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colsp
 an="1" rowspan="1" class="confluenceTh"><p>Property Name</p></th><th
colspan="1" rowspan="1" class="confluenceTh"><p>type</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>default value</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>description</p></th></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>JMSXDeliveryCount</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>int</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>0</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>number of attempts to send the message</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>JMSXGroupID</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>null</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>identity of the message group</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>JMSXGroupSeq</p></td><td
colspan="1" rowspan=
 "1" class="confluenceTd"><p>int</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>0</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>sequence
number of the message</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>JMSXProducerTXID</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>null</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>transaction
identifier</p></td></tr></tbody></table></div><h2 id="ActiveMQMessageProperties-ActiveMQDefined:">ActiveMQ
Defined:</h2><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p>Property Name</p></th><th
colspan="1" rowspan="1" class="confluenceTh"><p>type</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>default value</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>description</p></th></tr><tr><td
colspan="1" rowspan="1" class="conflue
 nceTd"><p>JMSActiveMQBrokerInTime</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>long</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>timestamp (milliseconds) for when
the message arrived at the broker</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>JMSActiveMQBrokerOutTime</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>long</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>0</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>timestamp (milliseconds) for when the message left the broker</p></td></tr></tbody></table></div></div>
+<div class="wiki-content maincontent"><p><strong>ActiveMQ Messages support
the following default message properties:</strong></p><h2 id="ActiveMQMessageProperties-MessageAttributesAccessedasProperties:">Message
Attributes Accessed as Properties:</h2><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p>Property Name</p></th><th
colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSDestination</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>javax.jms.Destination</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><em>Set by the producer</em></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Destination used by the producer.</p></td></tr><tr><td
colspan=
 "1" rowspan="1" class="confluenceTd"><p><code>JMSReplyTo</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>javax.jms.Destination</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>User defined.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSType</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><code>""</code></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>User defined.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSDeliveryMode</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>int</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>DeliveryMode.PERSISTENT</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Indicator if messages should be persisted
 .</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSPriority</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>int</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>4</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Value from <code>0-9</code>.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSMessageID</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>unique</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Unique identifier for the message.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSTimestamp</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>long</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><em>Time the message was sent</em></p></td><td
colspan="1" rowspan="1" class=
 "confluenceTd"><p>Time in milliseconds.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSCorrelationID</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>User defined.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSExpiration</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>long</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Time in milliseconds to expire the
message. A value of <code>0</code> means never expire.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSRedelivered</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>boolean</code></p></td><td
colspan="1" rowspan="1" class="conflu
 enceTd"><p><code>false</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>true</code> if the message
is being resent to the consumer, persisted via <u><a shape="rect" href="per-destination-policies.html">persistJMSRedelivered</a></u></p></td></tr></tbody></table></div><h2
id="ActiveMQMessageProperties-JMSDefined:">JMS Defined:</h2><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Property
Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th
colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th
colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSXDeliveryCount</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>int</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td
colspan="1" rowspan="1" class="conf
 luenceTd"><p>Number of attempts to send the message.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSXGroupID</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Identity of the message group.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSXGroupSeq</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>int</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Sequence number of the message.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSXProducerTXID</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></
 td><td colspan="1" rowspan="1" class="confluenceTd"><p>Transaction identifier.</p></td></tr></tbody></table></div><h2
id="ActiveMQMessageProperties-ActiveMQDefined:">ActiveMQ Defined:</h2><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Property
Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th
colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th
colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>JMSActiveMQBrokerInTime</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>long</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Time stamp (in milliseconds) for
when the message arrived at the broker.</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code
 >JMSActiveMQBrokerOutTime</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>long</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Time stamp (in milliseconds) for
when the message left the broker.</p></td></tr></tbody></table></div></div>
         </td>
         <td valign="top">
           <div class="navigation">

Modified: websites/production/activemq/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.

Modified: websites/production/activemq/content/timestampplugin.html
==============================================================================
--- websites/production/activemq/content/timestampplugin.html (original)
+++ websites/production/activemq/content/timestampplugin.html Wed Sep  7 18:22:39 2016
@@ -35,7 +35,7 @@
           <link href='http://activemq.apache.org/styles/highlighter/styles/shCore.css'
rel='stylesheet' type='text/css' /> 
       <link href='http://activemq.apache.org/styles/highlighter/styles/shThemeEclipse.css'
rel='stylesheet' type='text/css' /> 
       <script src='http://activemq.apache.org/styles/highlighter/scripts/shCore.js' type='text/javascript'></script>

-              <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushJava.js'
type='text/javascript'></script> 
+              <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushXml.js'
type='text/javascript'></script> 
          
       <script type="text/javascript"> 
         SyntaxHighlighter.defaults['toolbar'] = false; 
@@ -81,31 +81,12 @@
   <tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><p>The TimeStampPlugin is a Broker interceptor
which updates a JMS Client's timestamp on the message with a broker timestamp. <br clear="none">
-This can be useful when the clocks on client machines are known to not be correct and you
can only trust the time set on the broker machines.</p>
-
-<p>Enabling this plugin will break JMS compliance since the timestamp that the producer
sees on the messages after as send() will be different from the<br clear="none">
-timestamp the consumer will observe when he receives the message. This plugin is not enabled
in the default ActiveMQ configuration.</p>
-
-<p>Configuration:</p>
-
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p><strong>Attribute</strong></p></th><th
colspan="1" rowspan="1" class="confluenceTh"><p><strong>Description</strong></p></th><th
colspan="1" rowspan="1" class="confluenceTh"><p><strong>Default Value</strong></p></th></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>zeroExpirationOverride</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>When not zero will override the expiration
date for messages that currently do not have an expiration set</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>0</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>ttlCeiling </p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> When not zero will limit the expiration
time</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>futureOnly </p></td><td
colspan="1
 " rowspan="1" class="confluenceTd"><p> If set to true will never set the message
time stamp and expiration time to a lower value than the original values. If set to false,
they will always be updated.</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td></tr></tbody></table></div>
-
-
-
-<p>You can include the TimeStampPlugin by adding the following to your ActiveMQ Broker
configuration:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent
pdl">
-<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
-&lt;plugins&gt;
-        &lt;timeStampingBrokerPlugin/&gt;
+<div class="wiki-content maincontent"><p>The TimeStampPlugin is a Broker interceptor
which updates a JMS Client's timestamp on the message with a broker timestamp. This can be
useful when the clocks on client machines are known to not be correct and you can only trust
the time set on the broker machines.</p><p>Enabling this plugin will break JMS
compliance since the timestamp that the producer sees on the messages after as&#160;<strong><code>send()</code></strong>
will be different from the timestamp the consumer will observe when he receives the message.
This plugin is not enabled in the default ActiveMQ configuration.</p><h4 id="TimeStampPlugin-Options">Options</h4><div
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p><strong>Attribute</strong></p></th><th
colspan="1" rowspan="1" class="confluenceTh"><p><strong>Default Value</strong></p></th><th
colspan="1" rowspan="1" class="confluenceTh"><p><strong>Description</stro
 ng></p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>zeroExpirationOverride</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>When not zero will override the expiration
date for messages that currently do not have an expiration set.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>ttlCeiling</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>When not zero will limit the expiration
time.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>futureOnly</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>If set to true will never set the
message time stamp and expiration time to a lower value than the original values. If set to
false, they wi
 ll always be updated.</p></td></tr></tbody></table></div><p>You
can include the TimeStampPlugin by adding the following to your ActiveMQ Broker configuration:</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent
pdl">
+<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;plugins&gt;
+    &lt;timeStampingBrokerPlugin/&gt;
 &lt;/plugins&gt;
 </pre>
-</div></div>
-
-
-<p>Note: In case the consumer&#8217;s local clock is running ahead of the broker&#8217;s
local clock, messages might not be consumed by your consumer when this plug-in is loaded with
default configuration. The consumer could perceive the messages as already expired. <br
clear="none">
-If the clock difference between broker and consumer is greater than the message expiration
time and if the consumer&#8217;s clock is running ahead, then make use of futureOnly=&#8221;true&#8221;.
The following <a shape="rect" class="external-link" href="http://tmielke.blogspot.com/2011/01/sync-your-machine-clocks.html"
rel="nofollow">blog post</a> has more details.</p></div>
+</div></div><p>Note: In case the consumer&#8217;s local clock is running
ahead of the broker&#8217;s local clock, messages might not be consumed by your consumer
when this plug-in is loaded with default configuration. The consumer could perceive the messages
as already expired. <br clear="none"> If the clock difference between broker and consumer
is greater than the message expiration time and if the consumer&#8217;s clock is running
ahead, then make use of <strong><code>futureOnly="true"</code></strong>.
The following <a shape="rect" class="external-link" href="http://tmielke.blogspot.com/2011/01/sync-your-machine-clocks.html"
rel="nofollow">blog post</a> has more details.</p></div>
         </td>
         <td valign="top">
           <div class="navigation">



Mime
View raw message