This is an automated email from the ASF dual-hosted git repository.
michaelpearce pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/activemq-website.git
The following commit(s) were added to refs/heads/master by this push:
new d62caf6 Apache.NMS.AMQP 1.8.0 release
d62caf6 is described below
commit d62caf6b8d6b4ea40b8515583c3438d1622657c3
Author: Mike <[email protected]>
AuthorDate: Mon Nov 11 23:09:44 2019 +0000
Apache.NMS.AMQP 1.8.0 release
Also update of NMS component section
---
content/components/nms/documentation.html | 4 +-
content/components/nms/download.html | 3 +-
content/components/nms/index.html | 106 +++++++++++++++-----
content/components/nms/nms-uri-configuration.html | 8 +-
.../amqp/downloads/apachenmsamqp-v180.html} | 74 +++++++++-----
.../amqp/downloads/index.html} | 31 +++---
content/components/nms/providers/amqp/index.html | 14 ++-
.../amqp/uri-configuration.html} | 111 +++++++++++++--------
src/components/nms/documentation.md | 4 +-
src/components/nms/download.md | 3 +-
src/components/nms/index.md | 85 +++++++++++++++-
src/components/nms/nms-uri-configuration.md | 3 +-
.../providers/amqp/downloads/apachenmsamqp-v180.md | 50 ++++++++++
.../nms/providers/amqp/downloads/index.md | 12 +++
src/components/nms/providers/amqp/index.md | 13 ++-
.../nms/providers/amqp/uri-configuration.md | 76 ++++++++++++++
16 files changed, 474 insertions(+), 123 deletions(-)
diff --git a/content/components/nms/documentation.html
b/content/components/nms/documentation.html
index 0149f59..7ca89ba 100644
--- a/content/components/nms/documentation.html
+++ b/content/components/nms/documentation.html
@@ -130,12 +130,12 @@
<p>An NMS Provider is a .NET Assembly that provides an implementation of the
NMS API that provides connectivity with a particular Messaging Service or an
implementation of a standard Messaging Protocol. Currently, the following
providers are available:</p>
<ul>
- <li><a href="providers/activemq">ActiveMQ</a> client which communicates with
ActiveMQ using its own native wire protocol and provides many <a
href="providers/activemq/advanced-features">advanced features</a> beyond the
standard NMS API.</li>
+ <li><a href="providers/amqp">AMQP</a> provides support for AMQP 1.0
protocol. Compatible with ActiveMQ 5.x, ActiveMQ Artemis and any other AMQP 1.0
compliant broker.</li>
+ <li><a href="providers/activemq">ActiveMQ (OpenWire)</a> client which
communicates with ActiveMQ 5.x using its own native wire protocol and provides
many <a href="providers/activemq/advanced-features">advanced features</a>
beyond the standard NMS API.</li>
<li><a href="providers/stomp">STOMP</a> which connects to any <a
href="https://stomp.github.io/implementations.html">STOMP Broker</a>. Also,
when coupled with StompConnect, NMS can be used to communicate with pretty much
any existing MOM provider! (Or at least those that support JMS which most MOM
providers do).</li>
<li><a href="providers/msmq">MSMQ</a> is an implementation of NMS using
Microsoft’s MSMQ API.</li>
<li><a href="providers/ems">EMS</a> provider for talking to TIBCO’s EMS
message broker. To use this, you will need to following TIBCO’s licensing
requirements to acquire the TIBCO client assembly DLL. NMS does not ship with
the TIBCO client assembly.</li>
<li><a href="providers/wcf">WCF</a> provides support of Windows
Communications Framework.</li>
- <li><a href="providers/amqp">AMQP</a> provides support for AMQP 1.0.</li>
</ul>
<hr />
diff --git a/content/components/nms/download.html
b/content/components/nms/download.html
index a8896c5..6b3cd59 100644
--- a/content/components/nms/download.html
+++ b/content/components/nms/download.html
@@ -96,7 +96,8 @@
<li><a href="nms-api-downloads">NMS API Downloads</a></li>
<li>Providers
<ul>
- <li><a href="providers/activemq/downloads">ActiveMQ</a></li>
+ <li><a href="providers/amqp/downloads">AMQP</a></li>
+ <li><a href="providers/activemq/downloads">ActiveMQ (OpenWire)</a></li>
<li><a href="providers/stomp/downloads">STOMP</a></li>
<li><a href="providers/msmq/downloads">MSMQ</a></li>
<li><a href="providers/ems/downloads">EMS</a></li>
diff --git a/content/components/nms/index.html
b/content/components/nms/index.html
index 050938c..d6b9ebb 100644
--- a/content/components/nms/index.html
+++ b/content/components/nms/index.html
@@ -102,32 +102,88 @@
</div>
</div>
- <div class="row project-narative">
- <div class="col-12">
- <div class="container nms">
- <!-- Narative 2 -->
- <div class="row">
- <div class="col-12">
- <div class="card card-orange">
- <div class="card-body">
- <div class="row">
- <div class="col-sm-12 col-md-10">
- <div class="card">
- <div class="card-body">
- <p>The NMS API allows you to
build .NET applications in C#, VB, or any other .NET language, using a single
API to connect to multiple different providers using a JMS style API.</p>
-
+ <div class="row project-narative">
+ <div class="col-12">
+ <div class="container">
+ <!-- Narative 2 -->
+ <div class="row">
+ <div class="col-12">
+ <div class="card card-orange">
+ <div class="card-body">
+ <div class="row">
+ <div class="col-sm-12 col-md-8">
+ <div class="card">
+ <div class="card-body">
+ <h5 class="card-title text-orange">Messaging for
.NET</h5>
+ <h6>Simple Messaging API for .NET</h6>
+ <p>The NMS API allows you to build .NET applications in
C#, VB, or any other .NET language, using a single API to connect to multiple
different providers using a JMS style API.</p>
+ <!--a style="margin-top: 10px" href="documentation.html"
class="btn btn-warning">Find out more<i class="fa-info-circle fa
btn-icon"></i></a-->
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row project-narative-alt">
+ <div class="col-12">
+ <div class="container">
+ <!-- Narative 2 -->
+ <div class="row">
+ <div class="col-12">
+ <div class="card card-orange project-narative-alt">
+ <div class="card-body">
+ <div class="row">
+ <div class="col-sm-12 col-md-8">
+ <div class="card">
+ <div class="card-body project-narative-alt">
+ <h5 class="card-title text-orange">Apache.NMS.AMQP</h5>
+ <h6>AMQP 1.0 the ISO and OASIS Standard Messaging
Protocol</h6>
+ <p>Apache.NMS.AMQP provides AMQP 1.0 connectivity with
.NET Standard 2.0 support, enabling connectivity to ActiveMQ 5.x, ActiveMQ
Artemis and any other AMQP 1.0 compatible broker.</p>
+ <a style="margin-top: 10px" href="providers/amqp"
class="btn btn-success">Find out more<i class="fa-info-circle fa
btn-icon"></i></a>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row project-narative">
+ <div class="col-12">
+ <div class="container">
+ <!-- Narative 2 -->
+ <div class="row">
+ <div class="col-12">
+ <div class="card card-orange">
+ <div class="card-body">
+ <div class="row">
+ <div class="col-sm-12 col-md-8">
+ <div class="card">
+ <div class="card-body">
+ <h5 class="card-title
text-orange">Apache.NMS.ActiveMQ</h5>
+ <h6>ActiveMQ 5.x's native OpenWire protocol</h6>
+ <p>Apache.NMS.ActiveMQ provides OpenWire connectivity
using ActiveMQ's native protocol, with .NET Framework support.</p>
+ <a style="margin-top: 10px" href="providers/activemq"
class="btn btn-success">Find out more<i class="fa-info-circle fa
btn-icon"></i></a>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
</div>
<div class="row sitemap">
<div class="col-sm-12">
diff --git a/content/components/nms/nms-uri-configuration.html
b/content/components/nms/nms-uri-configuration.html
index fd29348..007ca6e 100644
--- a/content/components/nms/nms-uri-configuration.html
+++ b/content/components/nms/nms-uri-configuration.html
@@ -112,8 +112,12 @@
</thead>
<tbody>
<tr>
- <td><a href="providers/activemq/uri-configuration">activemq</a></td>
- <td>Use the NMS.ActiveMQ Provider to talk to an ActiveMQ Broker.</td>
+ <td><a href="providers/aqmp/uri-configuration">amqp</a></td>
+ <td>Use the Apache.NMS.AMQP Provider to talk to ActiveMQ 5.x, ActiveMQ
Artemis or any other AMQP 1.0 compliant Broker.</td>
+ </tr>
+ <tr>
+ <td><a href="providers/activemq/uri-configuration">activemq
(openwire)</a></td>
+ <td>Use the NMS.ActiveMQ Provider to talk to an ActiveMQ Broker that
supports openwire.</td>
</tr>
<tr>
<td><a href="providers/stomp/uri-configuration">stomp</a></td>
diff --git a/content/components/nms/nms-uri-configuration.html
b/content/components/nms/providers/amqp/downloads/apachenmsamqp-v180.html
similarity index 75%
copy from content/components/nms/nms-uri-configuration.html
copy to content/components/nms/providers/amqp/downloads/apachenmsamqp-v180.html
index fd29348..0d04dcc 100644
--- a/content/components/nms/nms-uri-configuration.html
+++ b/content/components/nms/providers/amqp/downloads/apachenmsamqp-v180.html
@@ -86,58 +86,86 @@
<div class="content">
<div class="page-title-nms">
<div class="container">
- <h1>NMS URI Configuration</h1>
+ <h1>Apache.NMS.AMQP v1.8.0</h1>
</div>
</div>
<div class="container" >
<div class="row" style="margin-top: 30px">
<div class="col-12 nms">
- <p>When working with the generic NMS API NMSConnectionFactory class
you must choose via the URI which NMS provider you actually wish to use. This
page documents the uri syntax and available options for the NMS providers.</p>
+ <h2 id="new-and-noteworthy">New and Noteworthy</h2>
-<h3 id="connection-uri-parameters">Connection URI Parameters</h3>
+<p>This is the first release of the Apache NMS AMQP client provider.</p>
-<h5 id="example-configuration"> Example Configuration</h5>
-<div class="highlighter-rouge"><div class="highlight"><pre
class="highlight"><code>cf = new
NMSConnectionFactory("activemq:tcp://localhost:61616");
-</code></pre></div></div>
-<h3 id="nms-provider-options">NMS Provider Options</h3>
+<p>It is also the first provider impl which adds .net standard 2.0 support, as
well provides nuget packages.</p>
+
+<p>This NMS provider can be used against both ActiveMQ 5.x as well as ActiveMQ
Artemis and any other AMQP 1.0 compliant broker.</p>
+
+<h2 id="api-documentation">API Documentation</h2>
-<p>Click on the provider name to visit the URI configuration documentation for
your chosen NMS provider.</p>
+<p>Refer to the API <a href="../../../nms-api">here</a></p>
<table>
<thead>
<tr>
- <th>Option Name</th>
<th>Description</th>
+ <th>Download Link</th>
+ <th>PGP Signature File</th>
+ <th>Version</th>
</tr>
</thead>
<tbody>
<tr>
- <td><a href="providers/activemq/uri-configuration">activemq</a></td>
- <td>Use the NMS.ActiveMQ Provider to talk to an ActiveMQ Broker.</td>
- </tr>
- <tr>
- <td><a href="providers/stomp/uri-configuration">stomp</a></td>
- <td>Use the NMS.Stomp Provider to talk to an Stomp Broker ActivemMQ
Broker supports the Stomp protocol natively.</td>
+ <td>Apache.NMS Documentation</td>
+ <td><a
href="http://www.apache.org/dyn/closer.lua/activemq/apache-nms-api/1.8.0/Apache.NMS-1.8.0-docs.zip">Apache.NMS-1.8.0-docs.zip</a></td>
+ <td><a
href="http://www.apache.org/dist/activemq/apache-nms-api/1.8.0/Apache.NMS-1.8.0-docs.zip.asc">Apache.NMS-1.8.0-docs.zip.asc</a></td>
+ <td>1.8.0</td>
</tr>
+ </tbody>
+</table>
+
+<h2 id="download-here">Download Here</h2>
+
+<table>
+ <thead>
<tr>
- <td>ems</td>
- <td>Use the NMS.EMS Provider to talk to a TIBCO Broker.</td>
+ <th>Description</th>
+ <th>Download Link</th>
+ <th>PGP Signature File</th>
+ <th>Version</th>
</tr>
+ </thead>
+ <tbody>
<tr>
- <td>msmq</td>
- <td>Use the NMS.MSMQ Provider to talk to a Microsoft Messaging (MSMQ)
Broker.</td>
+ <td>Apache.NMS.AMQP Source code</td>
+ <td><a
href="http://www.apache.org/dyn/closer.lua/activemq/apache-nms-amqp/1.8.0/Apache.NMS.AMQP-1.8.0-src.zip">Apache.NMS.AMQP-1.8.0-src.zip</a></td>
+ <td><a
href="http://www.apache.org/dist/activemq/apache-nms-amqp/1.8.0/Apache.NMS.AMQP-1.8.0-src.zip.asc">Apache.NMS.AMQP-1.8.0-src.zip.asc</a></td>
+ <td>1.8.0</td>
</tr>
<tr>
- <td>wcf</td>
- <td>Use the NMS.WCF Provider to support a Windows Communication
Foundation (WCF) endpoint connection for connecting to a back-end broker.</td>
+ <td>Apache.NMS.AMQP Binary Assemblies</td>
+ <td><a
href="http://www.apache.org/dyn/closer.lua/activemq/apache-nms-amqp/1.8.0/Apache.NMS.AMQP-1.8.0-bin.zip">Apache.NMS.AMQP-1.8.0-bin.zip</a></td>
+ <td><a
href="http://www.apache.org/dist/activemq/apache-nms-amqp/1.8.0/Apache.NMS.AMQP-1.8.0-bin.zip.asc">Apache.NMS.AMQP-1.8.0-bin.zip.asc</a></td>
+ <td>1.8.0</td>
</tr>
<tr>
- <td>xms</td>
- <td>Use the NMS.XMS Provider to talk to an IBM MQSerios Broker. This
provider is currently not implemented.</td>
+ <td>Apache.NMS.AMQP Nuget Package</td>
+ <td><a
href="http://www.apache.org/dyn/closer.lua/activemq/apache-nms-amqp/1.8.0/Apache.NMS.AMQP.1.8.0.nupkg">Apache.NMS.AMQP.1.8.0.nupkg</a></td>
+ <td><a
href="http://www.apache.org/dist/activemq/apache-nms-amqp/1.8.0/Apache.NMS.AMQP.1.8.0.nupkg.asc">Apache.NMS.AMQP.1.8.0.nupkg.asc</a></td>
+ <td>1.8.0</td>
</tr>
</tbody>
</table>
+<h2 id="git-tag-checkout">Git Tag Checkout</h2>
+
+<div class="highlighter-rouge"><div class="highlight"><pre
class="highlight"><code>git clone
https://gitbox.apache.org/repos/asf/activemq-nms-amqp.git
+git checkout tags/1.8.0
+</code></pre></div></div>
+
+<h2 id="changelog">Changelog</h2>
+
+<p>For a more detailed view of new features and bug fixes, see the <a
href="https://issues.apache.org/jira/issues/?filter=12347539">issue
filter</a></p>
+
</div>
</div>
diff --git a/content/components/nms/download.html
b/content/components/nms/providers/amqp/downloads/index.html
similarity index 94%
copy from content/components/nms/download.html
copy to content/components/nms/providers/amqp/downloads/index.html
index a8896c5..667f834 100644
--- a/content/components/nms/download.html
+++ b/content/components/nms/providers/amqp/downloads/index.html
@@ -86,24 +86,29 @@
<div class="content">
<div class="page-title-nms">
<div class="container">
- <h1>NMS Downloads</h1>
+ <h1>Apache.NMS.AMQP Downloads</h1>
</div>
</div>
<div class="container" >
<div class="row" style="margin-top: 30px">
<div class="col-12 nms">
- <ul>
- <li><a href="nms-api-downloads">NMS API Downloads</a></li>
- <li>Providers
- <ul>
- <li><a href="providers/activemq/downloads">ActiveMQ</a></li>
- <li><a href="providers/stomp/downloads">STOMP</a></li>
- <li><a href="providers/msmq/downloads">MSMQ</a></li>
- <li><a href="providers/ems/downloads">EMS</a></li>
- <li><a href="providers/wcf/downloads">WCF</a></li>
- </ul>
- </li>
-</ul>
+ <table>
+ <thead>
+ <tr>
+ <th>Description</th>
+ <th>Release Date</th>
+ <th>NMS API Rev</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><a href="apachenmsamqp-v180">Apache.NMS.AMQP v1.8.0</a></td>
+ <td>08/11/2019</td>
+ <td>v1.8.0</td>
+ </tr>
+ </tbody>
+</table>
+
</div>
</div>
diff --git a/content/components/nms/providers/amqp/index.html
b/content/components/nms/providers/amqp/index.html
index 9c294db..8ef1e3f 100644
--- a/content/components/nms/providers/amqp/index.html
+++ b/content/components/nms/providers/amqp/index.html
@@ -92,9 +92,7 @@
<div class="container" >
<div class="row" style="margin-top: 30px">
<div class="col-12 nms">
- <p><strong>NOTE:</strong> <em>This component is currently a work in
progress. This is info and developer docs, user docs such as downloads etc will
be added upon release.</em></p>
-
-<h3 id="overview">Overview</h3>
+ <h3 id="overview">Overview</h3>
<p>The goal of this project is to combine the <a href="../..">.NET Message
Service API</a> (NMS) with
the <a href="https://www.amqp.org/">Advanced Message Queuing Protocol
(AMQP)</a> 1.0 standard wireline protocol. Historically, the Apache community
created the NMS API which provided a vendor agnostic .NET interface to a
variety of messaging systems.</p>
@@ -109,11 +107,19 @@ the <a href="https://www.amqp.org/">Advanced Message
Queuing Protocol (AMQP)</a>
<li><strong>Innovation:</strong> Competition is a key component of
technology innovation. Directly competitive messaging implementations, with
seamless pluggability, forces vendors to innovate and differentiate.</li>
</ul>
+<h3 id="download">Download</h3>
+
+<p>See here for <a href="downloads">downloads</a></p>
+
+<h3 id="configuration">Configuration</h3>
+
+<p>See here for <a href="uri-configuration">configuration</a> details</p>
+
<h3 id="contributing">Contributing</h3>
<p>If you are a .NET developer that doesn’t want to be locked into a messaging
implementation then get engaged with this project. Here you will find the open
source code base and please provide comments and make your own enhancements.</p>
<p>Grab the Source from git
-https://github.com/apache/activemq-nms-amqp</p>
+<a
href="https://github.com/apache/activemq-nms-amqp">https://github.com/apache/activemq-nms-amqp</a></p>
<h4 id="overall-architecture">Overall Architecture</h4>
<p>Apache-NMS-AMQP should bridge the familiar NMS concepts to AMQP protocol
concepts as described in the document <a
href="https://www.oasis-open.org/committees/download.php/60574/amqp-bindmap-jms-v1.0-wd09.pdf">amqp-bindmap-jms-v1.0-wd09.pdf</a>.
diff --git a/content/components/nms/nms-uri-configuration.html
b/content/components/nms/providers/amqp/uri-configuration.html
similarity index 53%
copy from content/components/nms/nms-uri-configuration.html
copy to content/components/nms/providers/amqp/uri-configuration.html
index fd29348..1f1d3cc 100644
--- a/content/components/nms/nms-uri-configuration.html
+++ b/content/components/nms/providers/amqp/uri-configuration.html
@@ -86,58 +86,83 @@
<div class="content">
<div class="page-title-nms">
<div class="container">
- <h1>NMS URI Configuration</h1>
+ <h1>Apache.NMS.AMQP Configuration</h1>
</div>
</div>
<div class="container" >
<div class="row" style="margin-top: 30px">
<div class="col-12 nms">
- <p>When working with the generic NMS API NMSConnectionFactory class
you must choose via the URI which NMS provider you actually wish to use. This
page documents the uri syntax and available options for the NMS providers.</p>
+ <h1 id="client-configuration">Client configuration</h1>
+<p>This file details various configuration options for the client, the syntax
for its related configuration, and various uri options that can be set when
defining a ConnectionFactory.</p>
-<h3 id="connection-uri-parameters">Connection URI Parameters</h3>
+<h2 id="connection-uri">Connection Uri</h2>
+<p>The basic format of the clients Connection URI is as follows:</p>
-<h5 id="example-configuration"> Example Configuration</h5>
-<div class="highlighter-rouge"><div class="highlight"><pre
class="highlight"><code>cf = new
NMSConnectionFactory("activemq:tcp://localhost:61616");
+<div class="highlighter-rouge"><div class="highlight"><pre
class="highlight"><code>amqp[s]://hostname:port[?option=value[&option2=value...]]
</code></pre></div></div>
-<h3 id="nms-provider-options">NMS Provider Options</h3>
-
-<p>Click on the provider name to visit the URI configuration documentation for
your chosen NMS provider.</p>
-
-<table>
- <thead>
- <tr>
- <th>Option Name</th>
- <th>Description</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><a href="providers/activemq/uri-configuration">activemq</a></td>
- <td>Use the NMS.ActiveMQ Provider to talk to an ActiveMQ Broker.</td>
- </tr>
- <tr>
- <td><a href="providers/stomp/uri-configuration">stomp</a></td>
- <td>Use the NMS.Stomp Provider to talk to an Stomp Broker ActivemMQ
Broker supports the Stomp protocol natively.</td>
- </tr>
- <tr>
- <td>ems</td>
- <td>Use the NMS.EMS Provider to talk to a TIBCO Broker.</td>
- </tr>
- <tr>
- <td>msmq</td>
- <td>Use the NMS.MSMQ Provider to talk to a Microsoft Messaging (MSMQ)
Broker.</td>
- </tr>
- <tr>
- <td>wcf</td>
- <td>Use the NMS.WCF Provider to support a Windows Communication
Foundation (WCF) endpoint connection for connecting to a back-end broker.</td>
- </tr>
- <tr>
- <td>xms</td>
- <td>Use the NMS.XMS Provider to talk to an IBM MQSerios Broker. This
provider is currently not implemented.</td>
- </tr>
- </tbody>
-</table>
+<p>Where the amqps and scheme is specified to use SSL/TLS.</p>
+
+<p>The client can be configured with a number of different settings using the
uri while defining the ConnectionFactory, these are detailed in the following
sections.</p>
+
+<h3 id="nms-configuration-options">NMS Configuration options</h3>
+<p>The options apply to the behavior of the NMS objects such as Connection,
Session, MessageConsumer and MessageProducer.</p>
+
+<ul>
+ <li><strong>nms.username</strong> User name value used to authenticate the
connection.</li>
+ <li><strong>nms.password</strong> The password value used to authenticate
the connection.</li>
+ <li><strong>nms.clientId</strong> The ClientId value that is applied to the
connection.</li>
+ <li><strong>nms.localMessageExpiry</strong> Controls whether MessageConsumer
instances will locally filter expired Messages or deliver them. By default this
value is set to true and expired messages will be filtered.</li>
+ <li><strong>nms.sendTimeout</strong> Timeout value that controls how long
the client waits on completion of a synchronous message send before returning
an error. By default the client will wait indefinitely for a send to
complete.</li>
+ <li><strong>nms.requestTimeout</strong> Timeout value that controls how long
the client waits on completion of various synchronous interactions, such as
opening a producer or consumer, before returning an error. Does not affect
synchronous message sends. By default the client will wait indefinitely for a
request to complete.</li>
+ <li><strong>nms.clientIdPrefix</strong> Optional prefix value that is used
for generated Client ID values when a new Connection is created for the JMS
ConnectionFactory. The default prefix is ‘ID:’.</li>
+ <li><strong>nms.connectionIdPrefix</strong> Optional prefix value that is
used for generated Connection ID values when a new Connection is created for
the JMS ConnectionFactory. This connection ID is used when logging some
information from the JMS Connection object so a configurable prefix can make
breadcrumbing the logs easier. The default prefix is ‘ID:’.</li>
+</ul>
+
+<h3 id="tcp-transport-configuration-options">TCP Transport Configuration
options</h3>
+<p>When connected to a remote using plain TCP these options configure the
behaviour of the underlying socket. These options are appended to the
connection URI along with the other configuration options, for example:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre
class="highlight"><code>amqp://localhost:5672?nms.clientId=foo&transport.receiveBufferSize=30000
+</code></pre></div></div>
+
+<p>The complete set of TCP Transport options is listed below:</p>
+
+<ul>
+ <li><strong>transport.sendBufferSize</strong> Specifies the
ReceiveBufferSize option of the TCP socket.</li>
+ <li><strong>transport.receiveBufferSize</strong> Specifies the
SendBufferSize option of the TCP socket.</li>
+ <li><strong>transport.receiveTimeout</strong> Specifies the ReceiveTimeout
option of the TCP socket.</li>
+ <li><strong>transport.sendTimeout</strong> Specifies the SendTimeout option
of the TCP socket.</li>
+ <li><strong>transport.tcpKeepAliveTime</strong> Specifies how often a
keep-alive transmission is sent to an idle connection.</li>
+ <li><strong>transport.tcpKeepAliveInterval</strong> Specifies how often a
keep-alive transmission is sent when no response is received from previous
keep-alive transmissions.</li>
+ <li><strong>transport.tcpNoDelay</strong> Specifies the NoDelay option of
the TCP socket.</li>
+</ul>
+
+<p>If <em>tcpKeepAliveTime</em> or <em>tcpKeepAliveInterval</em> it set, TCP
Keep-Alive is enabled.</p>
+
+<h3 id="failover-configuration-options">Failover Configuration options</h3>
+<p>With failover enabled the client can reconnect to another server
automatically when connection to the current server is lost for some reason.
The failover URI is always initiated with the failover prefix and a list of
URIs for the server(s) is contained inside a set of parentheses. The “nms.”
options are applied to the overall failover URI, outside the parentheses, and
affect the NMS Connection object for its lifetime.</p>
+
+<p>The URI for failover looks something like the following:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre
class="highlight"><code>failover:(amqp://host1:5672,amqp://host2:5672)?nms.clientId=foo&failover.maxReconnectAttempts=20
+</code></pre></div></div>
+
+<p>The individual broker details within the parentheses can use the
“transport.” or “amqp.” options defined earlier, with these being applied as
each host is connected to:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre
class="highlight"><code>failover:(amqp://host1:5672?amqp.option=value,amqp://host2:5672?transport.option=value)?nms.clientId=foo
+</code></pre></div></div>
+
+<p>The complete set of configuration options for failover is listed below:</p>
+
+<ul>
+ <li><strong>failover.initialReconnectDelay</strong> The amount of time the
client will wait before the first attempt to reconnect to a remote peer. The
default value is zero, meaning the first attempt happens immediately.</li>
+ <li><strong>failover.reconnectDelay</strong> Controls the delay between
successive reconnection attempts, defaults to 10 milliseconds. If the backoff
option is not enabled this value remains constant.</li>
+ <li><strong>failover.maxReconnectDelay</strong> The maximum time that the
client will wait before attempting a reconnect. This value is only used when
the backoff feature is enabled to ensure that the delay doesn’t not grow too
large. Defaults to 30 seconds as the max time between connect attempts.</li>
+ <li><strong>failover.useReconnectBackOff</strong> Controls whether the time
between reconnection attempts should grow based on a configured multiplier.
This option defaults to true.</li>
+ <li><strong>failover.reconnectBackOffMultiplier</strong> The multiplier used
to grow the reconnection delay value, defaults to 2.0d.</li>
+ <li><strong>failover.maxReconnectAttempts</strong> The number of
reconnection attempts allowed before reporting the connection as failed to the
client. The default is no limit or (-1).</li>
+ <li><strong>failover.startupMaxReconnectAttempts</strong> For a client that
has never connected to a remote peer before this option control how many
attempts are made to connect before reporting the connection as failed. The
default is to use the value of maxReconnectAttempts.</li>
+</ul>
</div>
</div>
diff --git a/src/components/nms/documentation.md
b/src/components/nms/documentation.md
index 1a40210..4fd6aef 100644
--- a/src/components/nms/documentation.md
+++ b/src/components/nms/documentation.md
@@ -38,12 +38,12 @@ If you are curious you can browse the [source code and
tests](https://svn.apache
An NMS Provider is a .NET Assembly that provides an implementation of the NMS
API that provides connectivity with a particular Messaging Service or an
implementation of a standard Messaging Protocol. Currently, the following
providers are available:
-* [ActiveMQ](providers/activemq) client which communicates with ActiveMQ
using its own native wire protocol and provides many [advanced
features](providers/activemq/advanced-features) beyond the standard NMS API.
+* [AMQP](providers/amqp) provides support for AMQP 1.0 protocol. Compatible
with ActiveMQ 5.x, ActiveMQ Artemis and any other AMQP 1.0 compliant broker.
+* [ActiveMQ (OpenWire)](providers/activemq) client which communicates with
ActiveMQ 5.x using its own native wire protocol and provides many [advanced
features](providers/activemq/advanced-features) beyond the standard NMS API.
* [STOMP](providers/stomp) which connects to any [STOMP
Broker](https://stomp.github.io/implementations.html). Also, when coupled with
StompConnect, NMS can be used to communicate with pretty much any existing MOM
provider! (Or at least those that support JMS which most MOM providers do).
* [MSMQ](providers/msmq) is an implementation of NMS using Microsoft's MSMQ
API.
* [EMS](providers/ems) provider for talking to TIBCO's EMS message broker.
To use this, you will need to following TIBCO's licensing requirements to
acquire the TIBCO client assembly DLL. NMS does not ship with the TIBCO client
assembly.
* [WCF](providers/wcf) provides support of Windows Communications Framework.
-* [AMQP](providers/amqp) provides support for AMQP 1.0.
---
diff --git a/src/components/nms/download.md b/src/components/nms/download.md
index 8010b89..80207e3 100644
--- a/src/components/nms/download.md
+++ b/src/components/nms/download.md
@@ -7,7 +7,8 @@ type: nms
* [NMS API Downloads](nms-api-downloads)
* Providers
- * [ActiveMQ](providers/activemq/downloads)
+ * [AMQP](providers/amqp/downloads)
+ * [ActiveMQ (OpenWire)](providers/activemq/downloads)
* [STOMP](providers/stomp/downloads)
* [MSMQ](providers/msmq/downloads)
* [EMS](providers/ems/downloads)
diff --git a/src/components/nms/index.md b/src/components/nms/index.md
index 98d74e1..10958ec 100644
--- a/src/components/nms/index.md
+++ b/src/components/nms/index.md
@@ -1,10 +1,89 @@
---
-layout: project_default_md
+layout: project_default
project_name: NMS Clients
project_info: .NET Messaging API
project_class: nms
project_color: orange
---
-The NMS API allows you to build .NET applications in C#, VB, or any other .NET
language, using a single API to connect to multiple different providers using a
JMS style API.
-
+<div class="row project-narative">
+ <div class="col-12">
+ <div class="container">
+ <!-- Narative 2 -->
+ <div class="row">
+ <div class="col-12">
+ <div class="card card-orange">
+ <div class="card-body">
+ <div class="row">
+ <div class="col-sm-12 col-md-8">
+ <div class="card">
+ <div class="card-body">
+ <h5 class="card-title text-orange">Messaging for
.NET</h5>
+ <h6>Simple Messaging API for .NET</h6>
+ <p>The NMS API allows you to build .NET applications in
C#, VB, or any other .NET language, using a single API to connect to multiple
different providers using a JMS style API.</p>
+ <!--a style="margin-top: 10px" href="documentation.html"
class="btn btn-warning">Find out more<i class="fa-info-circle fa
btn-icon"></i></a-->
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row project-narative-alt">
+ <div class="col-12">
+ <div class="container">
+ <!-- Narative 2 -->
+ <div class="row">
+ <div class="col-12">
+ <div class="card card-orange project-narative-alt">
+ <div class="card-body">
+ <div class="row">
+ <div class="col-sm-12 col-md-8">
+ <div class="card">
+ <div class="card-body project-narative-alt">
+ <h5 class="card-title text-orange">Apache.NMS.AMQP</h5>
+ <h6>AMQP 1.0 the ISO and OASIS Standard Messaging
Protocol</h6>
+ <p>Apache.NMS.AMQP provides AMQP 1.0 connectivity with
.NET Standard 2.0 support, enabling connectivity to ActiveMQ 5.x, ActiveMQ
Artemis and any other AMQP 1.0 compatible broker.</p>
+ <a style="margin-top: 10px" href="providers/amqp"
class="btn btn-success">Find out more<i class="fa-info-circle fa
btn-icon"></i></a>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row project-narative">
+ <div class="col-12">
+ <div class="container">
+ <!-- Narative 2 -->
+ <div class="row">
+ <div class="col-12">
+ <div class="card card-orange">
+ <div class="card-body">
+ <div class="row">
+ <div class="col-sm-12 col-md-8">
+ <div class="card">
+ <div class="card-body">
+ <h5 class="card-title
text-orange">Apache.NMS.ActiveMQ</h5>
+ <h6>ActiveMQ 5.x's native OpenWire protocol</h6>
+ <p>Apache.NMS.ActiveMQ provides OpenWire connectivity
using ActiveMQ's native protocol, with .NET Framework support.</p>
+ <a style="margin-top: 10px" href="providers/activemq"
class="btn btn-success">Find out more<i class="fa-info-circle fa
btn-icon"></i></a>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
\ No newline at end of file
diff --git a/src/components/nms/nms-uri-configuration.md
b/src/components/nms/nms-uri-configuration.md
index f26d5ae..b46ef15 100644
--- a/src/components/nms/nms-uri-configuration.md
+++ b/src/components/nms/nms-uri-configuration.md
@@ -19,7 +19,8 @@ Click on the provider name to visit the URI configuration
documentation for your
|Option Name|Description|
|---|---|
-|[activemq](providers/activemq/uri-configuration)|Use the NMS.ActiveMQ
Provider to talk to an ActiveMQ Broker.|
+|[amqp](providers/aqmp/uri-configuration)|Use the Apache.NMS.AMQP Provider to
talk to ActiveMQ 5.x, ActiveMQ Artemis or any other AMQP 1.0 compliant Broker.|
+|[activemq (openwire)](providers/activemq/uri-configuration)|Use the
NMS.ActiveMQ Provider to talk to an ActiveMQ Broker that supports openwire.|
|[stomp](providers/stomp/uri-configuration)|Use the NMS.Stomp Provider to talk
to an Stomp Broker ActivemMQ Broker supports the Stomp protocol natively.|
|ems|Use the NMS.EMS Provider to talk to a TIBCO Broker.|
|msmq|Use the NMS.MSMQ Provider to talk to a Microsoft Messaging (MSMQ)
Broker.|
diff --git a/src/components/nms/providers/amqp/downloads/apachenmsamqp-v180.md
b/src/components/nms/providers/amqp/downloads/apachenmsamqp-v180.md
new file mode 100644
index 0000000..043334b
--- /dev/null
+++ b/src/components/nms/providers/amqp/downloads/apachenmsamqp-v180.md
@@ -0,0 +1,50 @@
+---
+layout: default_md
+title: Apache.NMS.AMQP v1.8.0
+title-class: page-title-nms
+type: nms
+---
+
+New and Noteworthy
+------------------
+
+This is the first release of the Apache NMS AMQP client provider.
+
+It is also the first provider impl which adds .net standard 2.0 support, as
well provides nuget packages.
+
+This NMS provider can be used against both ActiveMQ 5.x as well as ActiveMQ
Artemis and any other AMQP 1.0 compliant broker.
+
+API Documentation
+-----------------
+
+Refer to the API [here](../../../nms-api)
+
+|Description|Download Link|PGP Signature File|Version|
+|---|---|---|---|
+|Apache.NMS Documentation
|[Apache.NMS-1.8.0-docs.zip](http://www.apache.org/dyn/closer.lua/activemq/apache-nms-api/1.8.0/Apache.NMS-1.8.0-docs.zip)|[Apache.NMS-1.8.0-docs.zip.asc](http://www.apache.org/dist/activemq/apache-nms-api/1.8.0/Apache.NMS-1.8.0-docs.zip.asc)|1.8.0|
+
+
+Download Here
+-------------
+
+|Description|Download Link|PGP Signature File|Version|
+|---|---|---|---|
+|Apache.NMS.AMQP Source
code|[Apache.NMS.AMQP-1.8.0-src.zip](http://www.apache.org/dyn/closer.lua/activemq/apache-nms-amqp/1.8.0/Apache.NMS.AMQP-1.8.0-src.zip)|[Apache.NMS.AMQP-1.8.0-src.zip.asc](http://www.apache.org/dist/activemq/apache-nms-amqp/1.8.0/Apache.NMS.AMQP-1.8.0-src.zip.asc)|1.8.0|
+|Apache.NMS.AMQP Binary
Assemblies|[Apache.NMS.AMQP-1.8.0-bin.zip](http://www.apache.org/dyn/closer.lua/activemq/apache-nms-amqp/1.8.0/Apache.NMS.AMQP-1.8.0-bin.zip)|[Apache.NMS.AMQP-1.8.0-bin.zip.asc](http://www.apache.org/dist/activemq/apache-nms-amqp/1.8.0/Apache.NMS.AMQP-1.8.0-bin.zip.asc)|1.8.0|
+|Apache.NMS.AMQP Nuget
Package|[Apache.NMS.AMQP.1.8.0.nupkg](http://www.apache.org/dyn/closer.lua/activemq/apache-nms-amqp/1.8.0/Apache.NMS.AMQP.1.8.0.nupkg)|[Apache.NMS.AMQP.1.8.0.nupkg.asc](http://www.apache.org/dist/activemq/apache-nms-amqp/1.8.0/Apache.NMS.AMQP.1.8.0.nupkg.asc)|1.8.0|
+
+
+Git Tag Checkout
+----------------
+
+```
+git clone https://gitbox.apache.org/repos/asf/activemq-nms-amqp.git
+git checkout tags/1.8.0
+```
+
+Changelog
+---------
+
+For a more detailed view of new features and bug fixes, see the [issue
filter](https://issues.apache.org/jira/issues/?filter=12347539)
+
+
diff --git a/src/components/nms/providers/amqp/downloads/index.md
b/src/components/nms/providers/amqp/downloads/index.md
new file mode 100644
index 0000000..8f69c8b
--- /dev/null
+++ b/src/components/nms/providers/amqp/downloads/index.md
@@ -0,0 +1,12 @@
+---
+layout: default_md
+title: Apache.NMS.AMQP Downloads
+title-class: page-title-nms
+type: nms
+---
+
+Description|Release Date|NMS API Rev
+---|---|---
+[Apache.NMS.AMQP v1.8.0](apachenmsamqp-v180)|08/11/2019|v1.8.0
+
+
diff --git a/src/components/nms/providers/amqp/index.md
b/src/components/nms/providers/amqp/index.md
index 54b872a..2b10409 100644
--- a/src/components/nms/providers/amqp/index.md
+++ b/src/components/nms/providers/amqp/index.md
@@ -5,8 +5,6 @@ title-class: page-title-nms
type: nms
---
-**NOTE:** *This component is currently a work in progress. This is info and
developer docs, user docs such as downloads etc will be added upon release.*
-
### Overview
The goal of this project is to combine the [.NET Message Service API](../..)
(NMS) with
the [Advanced Message Queuing Protocol (AMQP)](https://www.amqp.org/) 1.0
standard wireline protocol. Historically, the Apache community created the NMS
API which provided a vendor agnostic .NET interface to a variety of messaging
systems.
@@ -20,11 +18,20 @@ The key to enabling vendor independence and mass adoption
of technology is to co
- __No Migration Risk:__ Since AMQP 1.0 is a wireline standard, you won't run
into the problems that used to happen when switching between implementations.
- __Innovation:__ Competition is a key component of technology innovation.
Directly competitive messaging implementations, with seamless pluggability,
forces vendors to innovate and differentiate.
+### Download
+
+See here for [downloads](downloads)
+
+### Configuration
+
+See here for [configuration](uri-configuration) details
+
+
### Contributing
If you are a .NET developer that doesn't want to be locked into a messaging
implementation then get engaged with this project. Here you will find the open
source code base and please provide comments and make your own enhancements.
Grab the Source from git
-https://github.com/apache/activemq-nms-amqp
+[https://github.com/apache/activemq-nms-amqp](https://github.com/apache/activemq-nms-amqp)
#### Overall Architecture
Apache-NMS-AMQP should bridge the familiar NMS concepts to AMQP protocol
concepts as described in the document
[amqp-bindmap-jms-v1.0-wd09.pdf](https://www.oasis-open.org/committees/download.php/60574/amqp-bindmap-jms-v1.0-wd09.pdf).
diff --git a/src/components/nms/providers/amqp/uri-configuration.md
b/src/components/nms/providers/amqp/uri-configuration.md
new file mode 100644
index 0000000..25d8ba9
--- /dev/null
+++ b/src/components/nms/providers/amqp/uri-configuration.md
@@ -0,0 +1,76 @@
+---
+layout: default_md
+title: Apache.NMS.AMQP Configuration
+title-class: page-title-nms
+type: nms
+---
+
+# Client configuration
+This file details various configuration options for the client, the syntax for
its related configuration, and various uri options that can be set when
defining a ConnectionFactory.
+
+## Connection Uri
+The basic format of the clients Connection URI is as follows:
+
+```
+amqp[s]://hostname:port[?option=value[&option2=value...]]
+```
+
+Where the amqps and scheme is specified to use SSL/TLS.
+
+The client can be configured with a number of different settings using the uri
while defining the ConnectionFactory, these are detailed in the following
sections.
+
+### NMS Configuration options
+The options apply to the behavior of the NMS objects such as Connection,
Session, MessageConsumer and MessageProducer.
+
+- **nms.username** User name value used to authenticate the connection.
+- **nms.password** The password value used to authenticate the connection.
+- **nms.clientId** The ClientId value that is applied to the connection.
+- **nms.localMessageExpiry** Controls whether MessageConsumer instances will
locally filter expired Messages or deliver them. By default this value is set
to true and expired messages will be filtered.
+- **nms.sendTimeout** Timeout value that controls how long the client waits on
completion of a synchronous message send before returning an error. By default
the client will wait indefinitely for a send to complete.
+- **nms.requestTimeout** Timeout value that controls how long the client waits
on completion of various synchronous interactions, such as opening a producer
or consumer, before returning an error. Does not affect synchronous message
sends. By default the client will wait indefinitely for a request to complete.
+- **nms.clientIdPrefix** Optional prefix value that is used for generated
Client ID values when a new Connection is created for the JMS
ConnectionFactory. The default prefix is 'ID:'.
+- **nms.connectionIdPrefix** Optional prefix value that is used for generated
Connection ID values when a new Connection is created for the JMS
ConnectionFactory. This connection ID is used when logging some information
from the JMS Connection object so a configurable prefix can make breadcrumbing
the logs easier. The default prefix is 'ID:'.
+
+### TCP Transport Configuration options
+When connected to a remote using plain TCP these options configure the
behaviour of the underlying socket. These options are appended to the
connection URI along with the other configuration options, for example:
+
+```
+amqp://localhost:5672?nms.clientId=foo&transport.receiveBufferSize=30000
+```
+
+The complete set of TCP Transport options is listed below:
+
+- **transport.sendBufferSize** Specifies the ReceiveBufferSize option of the
TCP socket.
+- **transport.receiveBufferSize** Specifies the SendBufferSize option of the
TCP socket.
+- **transport.receiveTimeout** Specifies the ReceiveTimeout option of the TCP
socket.
+- **transport.sendTimeout** Specifies the SendTimeout option of the TCP socket.
+- **transport.tcpKeepAliveTime** Specifies how often a keep-alive transmission
is sent to an idle connection.
+- **transport.tcpKeepAliveInterval** Specifies how often a keep-alive
transmission is sent when no response is received from previous keep-alive
transmissions.
+- **transport.tcpNoDelay** Specifies the NoDelay option of the TCP socket.
+
+If *tcpKeepAliveTime* or *tcpKeepAliveInterval* it set, TCP Keep-Alive is
enabled.
+
+### Failover Configuration options
+With failover enabled the client can reconnect to another server automatically
when connection to the current server is lost for some reason. The failover URI
is always initiated with the failover prefix and a list of URIs for the
server(s) is contained inside a set of parentheses. The "nms." options are
applied to the overall failover URI, outside the parentheses, and affect the
NMS Connection object for its lifetime.
+
+The URI for failover looks something like the following:
+
+```
+failover:(amqp://host1:5672,amqp://host2:5672)?nms.clientId=foo&failover.maxReconnectAttempts=20
+```
+
+The individual broker details within the parentheses can use the "transport."
or "amqp." options defined earlier, with these being applied as each host is
connected to:
+
+```
+failover:(amqp://host1:5672?amqp.option=value,amqp://host2:5672?transport.option=value)?nms.clientId=foo
+```
+
+The complete set of configuration options for failover is listed below:
+
+- **failover.initialReconnectDelay** The amount of time the client will wait
before the first attempt to reconnect to a remote peer. The default value is
zero, meaning the first attempt happens immediately.
+- **failover.reconnectDelay** Controls the delay between successive
reconnection attempts, defaults to 10 milliseconds. If the backoff option is
not enabled this value remains constant.
+- **failover.maxReconnectDelay** The maximum time that the client will wait
before attempting a reconnect. This value is only used when the backoff feature
is enabled to ensure that the delay doesn't not grow too large. Defaults to 30
seconds as the max time between connect attempts.
+- **failover.useReconnectBackOff** Controls whether the time between
reconnection attempts should grow based on a configured multiplier. This option
defaults to true.
+- **failover.reconnectBackOffMultiplier** The multiplier used to grow the
reconnection delay value, defaults to 2.0d.
+- **failover.maxReconnectAttempts** The number of reconnection attempts
allowed before reporting the connection as failed to the client. The default is
no limit or (-1).
+- **failover.startupMaxReconnectAttempts** For a client that has never
connected to a remote peer before this option control how many attempts are
made to connect before reporting the connection as failed. The default is to
use the value of maxReconnectAttempts.
\ No newline at end of file