You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2018/03/02 17:57:25 UTC

[1/2] qpid-site git commit: update site content for qpid-jms 0.30.0

Repository: qpid-site
Updated Branches:
  refs/heads/asf-site 5b55c5665 -> 85243e152


http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/releases/qpid-jms-0.5.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-0.5.0/index.html b/content/releases/qpid-jms-0.5.0/index.html
index edfe2b8..0ecf5e4 100644
--- a/content/releases/qpid-jms-0.5.0/index.html
+++ b/content/releases/qpid-jms-0.5.0/index.html
@@ -116,7 +116,7 @@ https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
         <div id="-middle-content">
           <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.5.0" === "0.29.0") {
+      if ("0.5.0" === "0.30.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/releases/qpid-jms-0.6.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-0.6.0/index.html b/content/releases/qpid-jms-0.6.0/index.html
index aad68c7..ee5d26d 100644
--- a/content/releases/qpid-jms-0.6.0/index.html
+++ b/content/releases/qpid-jms-0.6.0/index.html
@@ -175,7 +175,7 @@ files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.6.0" === "0.29.0") {
+      if ("0.6.0" === "0.30.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/releases/qpid-jms-0.7.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-0.7.0/index.html b/content/releases/qpid-jms-0.7.0/index.html
index 80f1cf7..986c1ab 100644
--- a/content/releases/qpid-jms-0.7.0/index.html
+++ b/content/releases/qpid-jms-0.7.0/index.html
@@ -175,7 +175,7 @@ files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.7.0" === "0.29.0") {
+      if ("0.7.0" === "0.30.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/releases/qpid-jms-0.8.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-0.8.0/index.html b/content/releases/qpid-jms-0.8.0/index.html
index 4ee7586..7fdeeba 100644
--- a/content/releases/qpid-jms-0.8.0/index.html
+++ b/content/releases/qpid-jms-0.8.0/index.html
@@ -175,7 +175,7 @@ files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.8.0" === "0.29.0") {
+      if ("0.8.0" === "0.30.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/releases/qpid-jms-0.9.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-0.9.0/index.html b/content/releases/qpid-jms-0.9.0/index.html
index 27e0093..25b47cf 100644
--- a/content/releases/qpid-jms-0.9.0/index.html
+++ b/content/releases/qpid-jms-0.9.0/index.html
@@ -175,7 +175,7 @@ files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.9.0" === "0.29.0") {
+      if ("0.9.0" === "0.30.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/releases/qpid-jms-master/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-master/index.html b/content/releases/qpid-jms-master/index.html
index 66350e4..be298fd 100644
--- a/content/releases/qpid-jms-master/index.html
+++ b/content/releases/qpid-jms-master/index.html
@@ -121,7 +121,7 @@ https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
 <h2 id="warning-this-is-a-snapshot-of-work-in-progress">Warning! This is a snapshot of work in progress</h2>
 
 <p>Documentation found here may be incorrect or incomplete.  For a
-smoother experience, see the <a href="/releases/qpid-jms-0.29.0/index.html">current stable
+smoother experience, see the <a href="/releases/qpid-jms-0.30.0/index.html">current stable
 release</a>.</p>
 
 <p>This content was generated at 15:07  on Friday, 22 September 2017.</p>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/input/_transom_config.py
----------------------------------------------------------------------
diff --git a/input/_transom_config.py b/input/_transom_config.py
index 9a1bb1d..12d183a 100644
--- a/input/_transom_config.py
+++ b/input/_transom_config.py
@@ -27,7 +27,7 @@ cpp_release = _Release(site_url, "Qpid C++", "qpid-cpp", "1.37.0")
 dispatch_release = _Release(site_url, "Qpid Dispatch", "qpid-dispatch", "1.0.1")
 interop_test_release = _Release(site_url, "Qpid Interop Test", "qpid-interop-test", "0.1.0")
 java_release = _Release(site_url, "Qpid for Java", "qpid-java", "6.1.5")
-jms_release = _Release(site_url, "Qpid JMS", "qpid-jms", "0.29.0")
+jms_release = _Release(site_url, "Qpid JMS", "qpid-jms", "0.30.0")
 jms_amqp_0_x_release = _Release(site_url, "Qpid JMS for AMQP 0-x", "qpid-jms-amqp-0-x", "6.3.0")
 proton_release = _Release(site_url, "Qpid Proton", "qpid-proton", "0.20.0")
 proton_j_release = _Release(site_url, "Qpid Proton-J", "qpid-proton-j", "0.26.0")

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/input/releases/index.md
----------------------------------------------------------------------
diff --git a/input/releases/index.md b/input/releases/index.md
index ae474da..f1fe651 100644
--- a/input/releases/index.md
+++ b/input/releases/index.md
@@ -27,11 +27,11 @@ the
 ## Current releases
 
 <div class="two-column" markdown="1">
+ - [Qpid JMS 0.30.0](qpid-jms-0.30.0/index.html), March 2018
  - [Qpid Proton-J 0.26.0](qpid-proton-j-0.26.0/index.html), February 2018
  - [Qpid Dispatch 1.0.1](qpid-dispatch-1.0.1/index.html), February 2018
  - [Qpid Broker-J 7.0.1](qpid-broker-j-7.0.1/index.html), February 2018
  - [Qpid Proton 0.20.0](qpid-proton-0.20.0/index.html), January 2018
- - [Qpid JMS 0.29.0](qpid-jms-0.29.0/index.html), January 2018
  - [Qpid Python 1.37.0](qpid-python-1.37.0/index.html), November 2017
  - [Qpid C++ 1.37.0](qpid-cpp-1.37.0/index.html), November 2017
  - [Qpid JMS AMQP 0-x 6.3.0](qpid-jms-amqp-0-x-6.3.0/index.html), November 2017
@@ -44,6 +44,7 @@ the
 
 <div class="two-column" markdown="1">
  - [Qpid Dispatch 0.8.1](qpid-dispatch-0.8.1/index.html), February 2018
+ - [Qpid JMS 0.29.0](qpid-jms-0.29.0/index.html), January 2018
  - [Qpid Proton-J 0.25.0](qpid-proton-j-0.25.0/index.html), January 2018
  - [Qpid Broker-J 7.0.0](qpid-broker-j-7.0.0/index.html), November 2017
  - [Qpid Dispatch 1.0.0](qpid-dispatch-1.0.0/index.html), November 2017

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/input/releases/qpid-jms-0.30.0/building.md
----------------------------------------------------------------------
diff --git a/input/releases/qpid-jms-0.30.0/building.md b/input/releases/qpid-jms-0.30.0/building.md
new file mode 100644
index 0000000..2077ec7
--- /dev/null
+++ b/input/releases/qpid-jms-0.30.0/building.md
@@ -0,0 +1,44 @@
+# QpidJMS
+
+The QpidJMS project provides a JMS based client that uses the AMQP v1.0 protocol.
+
+Below are some quick pointers you might find useful.
+
+## Building the code
+
+The project requires Maven 3. Some example commands follow.
+
+Clean previous builds output and install all modules to local repository without
+running the tests:
+
+    mvn clean install -DskipTests
+
+Install all modules to the local repository after running all the tests:
+
+    mvn clean install
+
+Perform a subset tests on the packaged release artifacts without
+installing:
+
+    mvn clean verify -Dtest=TestNamePattern*
+
+Execute the tests and produce code coverage report:
+
+    mvn clean test jacoco:report
+
+## Examples
+
+First build and install all the modules as detailed above (if running against
+a source checkout/release, rather than against released binaries) and then
+consult the README in the qpid-jms-examples module itself.
+
+## Documentation
+
+There is some basic documentation in the qpid-jms-docs module.
+
+## Distribution assemblies
+
+After building the modules, src and binary distribution assemblies can be found at:
+
+    apache-qpid-jms/target
+

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/input/releases/qpid-jms-0.30.0/docs/index.md
----------------------------------------------------------------------
diff --git a/input/releases/qpid-jms-0.30.0/docs/index.md b/input/releases/qpid-jms-0.30.0/docs/index.md
new file mode 100644
index 0000000..4a04e01
--- /dev/null
+++ b/input/releases/qpid-jms-0.30.0/docs/index.md
@@ -0,0 +1,326 @@
+# Client configuration
+
+This file details various configuration options for the client, such as how to configure and create a JNDI InitialContext, the syntax for its related configuration, and various URI options that can be set when defining a ConnectionFactory.
+
+## Configuring a JNDI InitialContext
+
+Applications use a JNDI InitialContext, itself obtained from an InitialContextFactory, to look up JMS objects such as ConnectionFactory. The Qpid JMS client provides an implementation of the InitialContextFactory in class *org.apache.qpid.jms.jndi.JmsInitialContextFactory*. This may be configured and used in three main ways:
+
+1.  Via jndi.properties file on the Java Classpath.
+
+    By including a file named jndi.properties on the Classpath and setting the *java.naming.factory.initial* property
+    to value *org.apache.qpid.jms.jndi.JmsInitialContextFactory*, the Qpid InitialContextFactory implementation will
+    be discovered when instantiating InitialContext object.
+
+        javax.naming.Context ctx = new javax.naming.InitialContext();
+
+    The particular ConnectionFactory, Queue and Topic objects you wish the context to contain are configured using
+    properties (the syntax for which is detailed below) either directly within the jndi.properties file,
+    or in a separate file which is referenced in jndi.properties using the *java.naming.provider.url* property.
+
+2.  Via system properties.
+
+    By setting the *java.naming.factory.initial* system property to value *org.apache.qpid.jms.jndi.JmsInitialContextFactory*,
+    the Qpid InitialContextFactory implementation will be discovered when instantiating InitialContext object.
+
+         javax.naming.Context ctx = new javax.naming.InitialContext();
+
+    The particular ConnectionFactory, Queue and Topic objects you wish the context to contain are configured as properties in
+    a file, which is passed using the *java.naming.provider.url* system property. The syntax for these properties is detailed
+    below.
+
+3.  Programmatically using an environment Hashtable.
+
+    The InitialContext may also be configured directly by passing an environment during creation:
+
+        Hashtable<Object, Object> env = new Hashtable<Object, Object>();
+        env.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.qpid.jms.jndi.JmsInitialContextFactory");
+        javax.naming.Context context = new javax.naming.InitialContext(env);
+
+    The particular ConnectionFactory, Queue and Topic objects you wish the context to contain are configured as properties
+    (the syntax for which is detailed below), either directly within the environment Hashtable, or in a
+    separate file which is referenced using the *java.naming.provider.url* property within the environment Hashtable.
+
+The property syntax used in the properties file or environment Hashtable is as follows:
+
++   To define a ConnectionFactory, use format: *connectionfactory.lookupName = URI*
++   To define a Queue, use format: *queue.lookupName = queueName*
++   To define a Topic use format: *topic.lookupName = topicName*
+
+For more details of the Connection URI, see the next section.
+
+As an example, consider the following properties used to define a ConnectionFactory, Queue, and Topic:
+
+    connectionfactory.myFactoryLookup = amqp://localhost:5672
+    queue.myQueueLookup = queueA
+    topic.myTopicLookup = topicA
+
+These objects could then be looked up from a Context as follows:
+
+    ConnectionFactory factory = (ConnectionFactory) context.lookup("myFactoryLookup");
+    Queue queue = (Queue) context.lookup("myQueueLookup");
+    Topic topic = (Topic) context.lookup("myTopicLookup");
+
+## Connection URI
+
+The basic format of the clients Connection URI is as follows:
+
+      amqp[s]://hostname:port[?option=value[&option2=value...]]
+
+or for WebSocket connections:
+
+     amqpws[s]://hostname:port[/path][?option=value[&option2=value...]]
+
+Where the *amqps* and *amqpwss* scheme is specified to use SSL/TLS, the hostname segment from the URI can be used by the JVM for the
+TLS SNI (Server Name Indication) extension in order to communicate the desired server hostname during a TLS handshake.
+The SNI extension will be automatically included if a Fully Qualified name (e.g myhost.mydomain) is specified, but not
+when an unqualified name (e.g myhost) or bare IP address are used.
+
+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.
+
+### JMS Configuration options
+
+The options apply to the behaviour of the JMS objects such as Connection, Session, MessageConsumer and MessageProducer.
+
++ **jms.username** User name value used to authenticate the connection
++ **jms.password** The password value used to authenticate the connection
++ **jms.clientID** The ClientID value that is applied to the connection.
++ **jms.forceAsyncSend** Configures whether all Messages sent from a MessageProducer are sent asynchronously or only those Message that qualify such as Messages inside a transaction or non-persistent messages.
++ **jms.forceSyncSend** Override all asynchronous send conditions and always sends every Message from a MessageProducer synchronously.
++ **jms.forceAsyncAcks** Causes all Message acknowledgments to be sent asynchronously.
++ **jms.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.
++ **jms.localMessagePriority** If enabled prefetched messages are reordered locally based on their given Message priority value. Default is false.
++ **jms.validatePropertyNames** If message property names should be validated as valid Java identifiers. Default is true.
++ **jms.receiveLocalOnly** If enabled receive calls with a timeout will only check a consumers local message buffer, otherwise the remote peer is checked to ensure there are really no messages available if the local timeout expires before a message arrives. Default is false, the remote is checked.
++ **jms.receiveNoWaitLocalOnly** If enabled receiveNoWait calls will only check a consumers local message buffer, otherwise the remote peer is checked to ensure there are really no messages available. Default is false, the remote is checked.
++ **jms.queuePrefix** Optional prefix value added to the name of any Queue created from a JMS Session.
++ **jms.topicPrefix** Optional prefix value added to the name of any Topic created from a JMS Session.
++ **jms.closeTimeout** Timeout value that controls how long the client waits on resource closure before returning. By default the client waits 60 seconds for a normal close completion event.
++ **jms.connectTimeout** Timeout value that controls how long the client waits on Connection establishment before returning with an error. By default the client waits 15 seconds for a connection to be established before failing.
++ **jms.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.
++ **jms.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.
++ **jms.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:'.
++ **jms.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:'.
++ **jms.populateJMSXUserID** Controls whether a MessageProducer will populate the JMSXUserID value for each sent message using the authenticated username from the connection.  This value defaults to false and the JMSXUserID for all sent message will not be populated.
++ **jms.awaitClientID** Controls whether a Connection with no ClientID configured in the URI will wait for a ClientID being set programatically (or the connection being used otherwise to signal none can be set) before sending the AMQP connection Open. Defaults to true.
++ **jms.useDaemonThread** Controls whether a Connection will use a daemon thread for its executor. Defaults to false to ensure a non-daemon thread is present by default.
+
+The Prefetch Policy controls how many messages the remote peer can send to the client and be held in a prefetch buffer for each consumer instance.
+
++ **jms.prefetchPolicy.queuePrefetch** defaults to 1000
++ **jms.prefetchPolicy.topicPrefetch** defaults to 1000
++ **jms.prefetchPolicy.queueBrowserPrefetch** defaults to 1000
++ **jms.prefetchPolicy.durableTopicPrefetch** defaults to 1000
++ **jms.prefetchPolicy.all** used to set all prefetch values at once.
+
+The Redelivery Policy controls how redelivered messages are handled on the client.
+
++ **jms.redeliveryPolicy.maxRedeliveries** controls when an incoming message is rejected based on the number of times it has been redelivered, the default value is (-1) disabled.  A value of zero would indicate no message redeliveries are accepted, a value of five would allow a message to be redelivered five times, etc.
++ **jms.redeliveryPolicy.outcome** controls the outcome that is applied to a message that is being rejected due to it having exceeded the configured maxRedeliveries value.  This option is configured on the URI using the following set of outcome options:  ACCEPTED, REJECTED, RELEASED, MODIFIED_FAILED and MODIFIED_FAILED_UNDELIVERABLE. The default outcome value is MODIFIED_FAILED_UNDELIVERABLE.
+
+The MessageID Policy controls the type of the Message ID assigned to messages sent from the client.
+
++ **jms.messageIDPolicy.messageIDType** By default a generated String value is used for the MessageID on outgoing messages. Other available types are UUID, UUID_STRING, and PREFIXED_UUID_STRING.
+
+The Presettle Policy controls when a producer or consumer instance will be configured to use AMQP presettled messaging semantics.
+
++ **jms.presettlePolicy.presettleAll** when true all producers and non-transacted consumers created operate in presettled mode, defaults to false.
++ **jms.presettlePolicy.presettleProducers** when true all producers operate in presettled mode, defaults to false.
++ **jms.presettlePolicy.presettleTopicProducers** when true any producer that is sending to a Topic or Temporary Topic destination will operate in presettled mode, defaults to false.
++ **jms.presettlePolicy.presettleQueueProducers** when true any producer that is sending to a Queue or Temporary Queue destination will operate in presettled mode, defaults to false.
++ **jms.presettlePolicy.presettleTransactedProducers** when true any producer that is created in a transacted Session will operate in presettled mode, defaults to false.
++ **jms.presettlePolicy.presettleConsumers** when true all consumers operate in presettled mode, defaults to false.
++ **jms.presettlePolicy.presettleTopicConsumers** when true any consumer that is receiving from a Topic or Temporary Topic destination will operate in presettled mode, defaults to false.
++ **jms.presettlePolicy.presettleQueueConsumers** when true any consumer that is receiving from a Queue or Temporary Queue destination will operate in presettled mode, defaults to false.
+
+The Deserialization Policy provides a means of controlling which types are trusted to be deserialized from the object stream while retrieving the body from an incoming JMS ObjectMessage composed of serialized Java Object content. By default all types are trusted during attempt to deserialize the body. The default Deserialization Policy object provides URI options that allow specifying a whitelist and a blacklist of Java class or package names.
+
+**jms.deserializationPolicy.whiteList** A comma separated list of class/package names that should be allowed when deserializing the contents of a JMS ObjectMessage, unless overridden by the blackList. The names in this list are not pattern values, the exact class or package name must be configured, e.g "java.util.Map" or "java.util". Package matches include sub-packages. Default is to allow all.
+**jms.deserializationPolicy.blackList** A comma separated list of class/package names that should be rejected when deserializing the contents of a JMS ObjectMessage. The names in this list are not pattern values, the exact class or package name must be configured, e.g "java.util.Map" or "java.util". Package matches include sub-packages. Default is to prevent none.
+
+### 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?jms.clientID=foo&transport.connectTimeout=30000
+
+The complete set of TCP Transport options is listed below:
+
++ **transport.sendBufferSize** default is 64k
++ **transport.receiveBufferSize** default is 64k
++ **transport.trafficClass** default is 0
++ **transport.connectTimeout** default is 60 seconds
++ **transport.soTimeout** default is -1
++ **transport.soLinger** default is -1
++ **transport.tcpKeepAlive** default is false
++ **transport.tcpNoDelay** default is true
++ **transport.useEpoll** When true the transport will use the native Epoll layer when available instead of the NIO layer, which can improve performance. Defaults to true.
++ **transport.useKQueue** When true the transport will use the native KQueue layer when available instead of the NIO layer, which can improve performance. Defaults to false.
+
+### SSL Transport Configuration options
+
+The SSL Transport extends the TCP Transport and is enabled using the *amqps* URI scheme.  Because the SSL Transport extends the functionality of the TCP based Transport all the TCP Transport options are valid on an SSL Transport URI.
+
+A simple SSL/TLS based client URI is shown below:
+
+    amqps://myhost.mydomain:5671
+
+
+The complete set of SSL Transport options is listed below:
+
++ **transport.keyStoreLocation**  default is to read from the system property "javax.net.ssl.keyStore"
++ **transport.keyStorePassword**  default is to read from the system property "javax.net.ssl.keyStorePassword"
++ **transport.trustStoreLocation**  default is to read from the system property "javax.net.ssl.trustStore"
++ **transport.trustStorePassword**  default is to read from the system property "javax.net.ssl.trustStorePassword"
++ **transport.keyStoreType** The type of keyStore being used. Default is to read from the system property "javax.net.ssl.keyStoreType" If not set then default is "JKS".
++ **transport.trustStoreType** The type of trustStore being used. Default is to read from the system property "javax.net.ssl.trustStoreType" If not set then default is "JKS".
++ **transport.storeType** This will set both the keystoreType and trustStoreType to the same value. If not set then the keyStoreType and trustStoreType will default to the values specified above.
++ **transport.contextProtocol** The protocol argument used when getting an SSLContext. Default is "TLS".
++ **transport.enabledCipherSuites** The cipher suites to enable, comma separated. No default, meaning the context default ciphers are used. Any disabled ciphers are removed from this.
++ **transport.disabledCipherSuites** The cipher suites to disable, comma separated. Ciphers listed here are removed from the enabled ciphers. No default.
++ **transport.enabledProtocols** The protocols to enable, comma separated. No default, meaning the context default protocols are used. Any disabled protocols are removed from this.
++ **transport.disabledProtocols** The protocols to disable, comma separated. Protocols listed here are removed from the enabled protocols. Default is "SSLv2Hello,SSLv3".
++ **transport.trustAll** Whether to trust the provided server certificate implicitly, regardless of any configured trust store. Defaults to false.
++ **transport.verifyHost** Whether to verify that the hostname being connected to matches with the provided server certificate. Defaults to true.
++ **transport.keyAlias** The alias to use when selecting a keypair from the keystore if required to send a client certificate to the server. No default.
+
+### Websocket Transport Configuration options
+
+The WebSocket (WS) Transport extends the TCP and SSL Transports to provide both unsecured and secured Websocket connectivity and is enabled using the *amqpws* and *amqpwss* URI schemes.  The unsecured WS Transport extends the basic TCP transport which means all the normal TCP Transport configuration options also apply to the WS Transport. Similarly the WSS Transport extends the SSL Transport which means both the TCP and SSL Transport options can be applied to configure it.
+
+A simple WS[S] based client URI is shown below:
+
+    amqpws[s]://myhost.mydomain:5671/[optional-path]
+
+
+### AMQP Configuration options
+
+These options apply to the behaviour of certain AMQP functionality.
+
++ **amqp.idleTimeout** The idle timeout in milliseconds after which the connection will be failed if the peer sends no AMQP frames. Default is 60000.
++ **amqp.vhost** The vhost to connect to. Used to populate the Sasl and Open hostname fields. Default is the main hostname from the Connection URI.
++ **amqp.saslLayer** Controls whether connections should use a SASL layer or not. Default is true.
++ **amqp.saslMechanisms** Which SASL mechanism(s) the client should allow selection of, if offered by the server and usable with the configured credentials. Comma separated if specifying more than 1 mechanism. The clients supported mechanisms are currently EXTERNAL, SCRAM-SHA-256, SCRAM-SHA-1, CRAM-MD5, PLAIN, ANONYMOUS, and GSSAPI for Kerberos.  Default is to allow selection from all mechanisms except GSSAPI, which must be specified here to enable.
++ **amqp.maxFrameSize** The max-frame-size value in bytes that is advertised to the peer. Default is 1048576.
++ **amqp.drainTimeout** The time in milliseconds that the client will wait for a response from the remote when a consumer drain request is made. If no response is seen in the allotted timeout period the link will be considered failed and the associated consumer will be closed. Default is 60000.
++ **amqp.allowNonSecureRedirects** Controls whether an AMQP connection will allow for a redirect to an alternative host over a connection that is not secure when the existing connection is secure, e.g. redirecting an SSL connection to a raw TCP connection.  This value defaults to false.
+
+### 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 "jms." options are applied to the overall failover URI, outside the parentheses, and affect the JMS Connection object for its lifetime.
+
+The URI for failover looks something like the following:
+
+    failover:(amqp://host1:5672,amqp://host2:5672)?jms.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)?jms.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.
++ **failover.warnAfterReconnectAttempts** Controls how often the client will log a message indicating that failover reconnection is being attempted.  The default is to log every 10 connection attempts.
++ **failover.randomize** When true the set of failover URIs is randomly shuffled prior to attempting to connect to one of them.  This can help to distribute client connections more evenly across multiple remote peers.  The default value is false.
++ **failover.amqpOpenServerListAction** Controls how the failover transport behaves when the connection Open frame from the remote peer provides a list of failover hosts to the client.  This option accepts one of three values; REPLACE, ADD, or IGNORE (default is REPLACE).  If REPLACE is configured then all failover URIs other than the one for the current server are replaced with those provided by the remote peer.  If ADD is configured then the URIs provided by the remote are added to the existing set of failover URIs, with de-duplication.  If IGNORE is configured then any updates from the remote are dropped and no changes are made to the set of failover URIs in use.
+
+The failover URI also supports defining 'nested' options as a means of specifying AMQP and transport option values applicable to all the individual nested broker URI's, which can be useful to avoid repetition. This is accomplished using the same "transport." and "amqp." URI options outlined earlier for a non-failover broker URI but prefixed with *failover.nested.*. For example, to apply the same value for the *amqp.vhost* option to every broker connected to you might have a URI like:
+
+    failover:(amqp://host1:5672,amqp://host2:5672)?jms.clientID=foo&failover.nested.amqp.vhost=myhost
+
+
+
+### Discovery Configuration options
+
+The client has an optional Discovery module, which provides a customised failover layer where the broker URIs to connect to are not given in the initial URI, but discovered as the client operates via associated discovery agents. There are currently two discovery agent implementations, a file watcher that loads URIs from a file, and a multicast listener that works with ActiveMQ 5 brokers which have been configured to broadcast their broker addresses for listening clients.
+
+The general set of failover related options when using discovery are the same as those detailed earlier, with the main prefix updated from *failover.* to *discovery.*, and with the 'nested' options prefix used to supply URI options common to all the discovered broker URIs bring updated from *failover.nested.* to *discovery.discovered*. For example, without the agent URI details, a general discovery URI might look like:
+
+    discovery:(<agent-uri>)?discovery.maxReconnectAttempts=20&discovery.discovered.jms.clientID=foo
+
+To use the file watcher discovery agent, utilise an agent URI of the form:
+
+    discovery:(file:///path/to/monitored-file?updateInterval=60000)
+
+The URI options for the file watcher discovery agent are listed below:
+
++ **updateInterval** Controls the frequency in milliseconds which the file is inspected for change. The default value is 30000.
+
+
+To use the multicast discovery agent with an ActiveMQ 5 broker, utilise an agent URI of the form:
+
+    discovery:(multicast://default?group=default)
+
+Note that the use of *default* as the host in the multicast agent URI above is a special value (that is substituted by the agent with the default "239.255.2.3:6155"). You may change this to specify the actual IP and port in use with your multicast configuration.
+
+The URI options for the multicast discovery agent are listed below:
+
++ **group** Controls which multicast group messages are listened for on. The default value is "default".
+
+
+## Logging
+
+The client makes use of the SLF4J API, allowing users to select a particular logging implementation based on their needs by supplying a SLF4J 'binding', such as *slf4j-log4j* in order to use Log4J. More details on SLF4J are available from http://www.slf4j.org/.
+
+The client uses Logger names residing within the *org.apache.qpid.jms* hierarchy, which you can use to configure a logging implementation based on your needs.
+
+When debugging some issues, it may sometimes be useful to enable additional protocol trace logging from the Qpid Proton AMQP 1.0 library. There are two options to achieve this:
+
++ Set the environment variable (not Java system property) *PN_TRACE_FRM* to *true*, which will cause Proton to emit frame logging to stdout.
++ Add the option *amqp.traceFrames=true* to your connection URI to have the client add a protocol tracer to Proton, and configure the *org.apache.qpid.jms.provider.amqp.FRAMES* Logger to *TRACE* level to include the output in your logs.
+
+## Extended Session Acknowledgement modes
+
+The client supports two additional session acknowledgement modes beyond the standard JMS specification modes.
+
+### Individual Acknowledge
+
+In this mode messages must be acknowledged individually by the application via the Message#acknowledge() method used when the Session is in CLIENT_ACKNOWLEDGE mode.  Unlike with CLIENT_ACKNOWLEDGE mode only the target message will be acknowledged, all other delivered messages remain un-acknowledged.  The integer value used to activate this mode is *101*.
+
+        connection.createSession(false, 101);
+
+### No Acknowledge
+
+In this mode messages are accepted at the server before being dispatched to the client, and no acknowledgement is performed by the client.  The client supports two integer values to activate this mode, *100* and *257*.
+
+        connection.createSession(false, 100);
+
+## Authenticating using Kerberos
+
+The client can be configured to authenticate using Kerberos when used with an appropriately configured server. To do so, you must:
+
+1.  Configure the client to use the GSSAPI mechanism for SASL authentication using the *amqp.saslMechanisms* URI option, e.g:
+
+        amqp://myhost:5672?amqp.saslMechanisms=GSSAPI
+        failover:(amqp://myhost:5672?amqp.saslMechanisms=GSSAPI)
+
+2.  Set the *java.security.auth.login.config* system property to the path of a JAAS Login Configuration file containing appropriate configuration for a Kerberos LoginModule, e.g:
+
+        -Djava.security.auth.login.config=/path/to/login.config
+
+    An example login.config configuration file might look like the following:
+
+        amqp-jms-client {
+            com.sun.security.auth.module.Krb5LoginModule required
+            useTicketCache=true;
+        };
+
+The precise configuration used will depend on how you wish the credentials to be established for the connection, and the particular LoginModule in use. For details of the Sun/Oracle Krb5LoginModule, see [https://docs.oracle.com/javase/8/docs/jre/api/security/jaas/spec/com/sun/security/auth/module/Krb5LoginModule.html](https://docs.oracle.com/javase/8/docs/jre/api/security/jaas/spec/com/sun/security/auth/module/Krb5LoginModule.html). For details of the IBM Java 8 Krb5LoginModule, see [https://www.ibm.com/support/knowledgecenter/en/SSYKE2_8.0.0/com.ibm.java.security.api.doc/jgss/com/ibm/security/auth/module/Krb5LoginModule.html](https://www.ibm.com/support/knowledgecenter/en/SSYKE2_8.0.0/com.ibm.java.security.api.doc/jgss/com/ibm/security/auth/module/Krb5LoginModule.html).
+
+It is possible to configure the LoginModule to establish the credentials to use for the Kerberos process, such as specifying a Principal and whether to use an existing ticket cache or keytab. If however the LoginModule configuration does not provide means to establish all necessary credentials, it may then request and be passed the username and/or password values from the client Connection object if they were either supplied when creating the Connection using the ConnectionFactory or previously configured via its URI options.
+
+Note that Kerberos is only only supported for authentication purposes. Use SSL/TLS connections for encryption.
+
+The following URI options can be used to influence the Kerberos authentication process:
+
++ **sasl.options.configScope** The Login Configuration entry name to use when authenticating. Default is "amqp-jms-client".
++ **sasl.options.protocol** The protocol value used during the GSSAPI SASL process. Default is "amqp".
++ **sasl.options.serverName** The serverName value used during the GSSAPI SASL process. Default is the server hostname from the connection URI.
+
+Similar to the "amqp." and "transport." options detailed previously, these options must be specified on a per-host basis or as all-host nested options in a failover URI.

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/input/releases/qpid-jms-0.30.0/index.md
----------------------------------------------------------------------
diff --git a/input/releases/qpid-jms-0.30.0/index.md b/input/releases/qpid-jms-0.30.0/index.md
new file mode 100644
index 0000000..6031e14
--- /dev/null
+++ b/input/releases/qpid-jms-0.30.0/index.md
@@ -0,0 +1,68 @@
+;;
+;; 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.
+;;
+
+# Qpid JMS 0.30.0
+
+Qpid JMS is a complete [Java Message Service][jms] 2.0 client built
+using the [Qpid Proton]({{site_url}}/proton/index.html) protocol engine.
+
+For a detailed list of the changes in this release, see the [release
+notes](release-notes.html).
+
+[jms]: http://en.wikipedia.org/wiki/Java_Message_Service
+
+## Download
+
+It's important to [verify the
+integrity]({{site_url}}/download.html#verify-what-you-download) of the
+files you download.
+
+| Content | Download | Verify |
+|---------|----------|--------|
+| Qpid JMS binaries | [apache-qpid-jms-0.30.0-bin.tar.gz](http://archive.apache.org/dist/qpid/jms/0.30.0/apache-qpid-jms-0.30.0-bin.tar.gz) | [ASC](https://archive.apache.org/dist/qpid/jms/0.30.0/apache-qpid-jms-0.30.0-bin.tar.gz.asc), [MD5](https://archive.apache.org/dist/qpid/jms/0.30.0/apache-qpid-jms-0.30.0-bin.tar.gz.md5), [SHA512](https://archive.apache.org/dist/qpid/jms/0.30.0/apache-qpid-jms-0.30.0-bin.tar.gz.sha512) |
+| Qpid JMS source code | [apache-qpid-jms-0.30.0-src.tar.gz](http://archive.apache.org/dist/qpid/jms/0.30.0/apache-qpid-jms-0.30.0-src.tar.gz) | [ASC](https://archive.apache.org/dist/qpid/jms/0.30.0/apache-qpid-jms-0.30.0-src.tar.gz.asc), [MD5](https://archive.apache.org/dist/qpid/jms/0.30.0/apache-qpid-jms-0.30.0-src.tar.gz.md5), [SHA512](https://archive.apache.org/dist/qpid/jms/0.30.0/apache-qpid-jms-0.30.0-src.tar.gz.sha512) |
+
+The client is also available [via Maven]({{site_url}}/maven.html).
+
+## Documentation
+
+
+<div class="two-column" markdown="1">
+
+ - [API reference](http://docs.oracle.com/javaee/7/api/javax/jms/package-summary.html)
+ - [Examples](https://github.com/apache/qpid-jms/tree/0.30.0/qpid-jms-examples)
+ - [Configuration](docs/index.html)
+ - [Building Qpid JMS](building.html)
+
+</div>
+
+
+## More information
+
+ - [All release artefacts](http://archive.apache.org/dist/qpid/jms/0.30.0)
+ - [Resolved issues in JIRA](https://issues.apache.org/jira/issues/?jql=project+%3D+QPIDJMS+AND+fixVersion+%3D+%270.30.0%27+AND+resolution+%3D+%27fixed%27+ORDER+BY+priority+DESC)
+ - [Source repository tag](https://git-wip-us.apache.org/repos/asf/qpid-jms.git/tree/refs/tags/0.30.0)
+
+<script type="text/javascript">
+  _deferredFunctions.push(function() {
+      if ("0.30.0" === "{{current_jms_release}}") {
+          _modifyCurrentReleaseLinks();
+      }
+  });
+</script>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/input/releases/qpid-jms-0.30.0/release-notes.md
----------------------------------------------------------------------
diff --git a/input/releases/qpid-jms-0.30.0/release-notes.md b/input/releases/qpid-jms-0.30.0/release-notes.md
new file mode 100644
index 0000000..7d41901
--- /dev/null
+++ b/input/releases/qpid-jms-0.30.0/release-notes.md
@@ -0,0 +1,43 @@
+;;
+;; 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.
+;;
+
+# Qpid JMS 0.30.0 Release Notes
+
+Qpid JMS is a complete [Java Message Service][jms] 2.0 client built
+using the [Qpid Proton]({{site_url}}/proton/index.html) protocol
+engine.
+
+For more information about this release, including download links and
+documentation, see the [release overview](index.html).
+
+[jms]: http://en.wikipedia.org/wiki/Java_Message_Service
+
+
+## New features and improvements
+
+ - [QPIDJMS-361](https://issues.apache.org/jira/browse/QPIDJMS-361) - request mutual auth for GSSAPI/Kerberos SASL
+ - [QPIDJMS-363](https://issues.apache.org/jira/browse/QPIDJMS-363) - update to proton-j 0.26.0
+
+## Bugs fixed
+
+ - [QPIDJMS-360](https://issues.apache.org/jira/browse/QPIDJMS-360) - empty SASL challenges should get processed
+
+## Tasks
+
+ - [QPIDJMS-362](https://issues.apache.org/jira/browse/QPIDJMS-362) - update Netty to 4.1.22
\ No newline at end of file


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


[2/2] qpid-site git commit: update site content for qpid-jms 0.30.0

Posted by ro...@apache.org.
update site content for qpid-jms 0.30.0


Project: http://git-wip-us.apache.org/repos/asf/qpid-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-site/commit/85243e15
Tree: http://git-wip-us.apache.org/repos/asf/qpid-site/tree/85243e15
Diff: http://git-wip-us.apache.org/repos/asf/qpid-site/diff/85243e15

Branch: refs/heads/asf-site
Commit: 85243e1523aa5b39c94eb749039f93a5b52767a0
Parents: 5b55c56
Author: Robbie Gemmell <ro...@apache.org>
Authored: Fri Mar 2 17:56:53 2018 +0000
Committer: Robbie Gemmell <ro...@apache.org>
Committed: Fri Mar 2 17:56:53 2018 +0000

----------------------------------------------------------------------
 content/components/jms/index.html               |   8 +-
 content/dashboard.html                          |   2 +-
 content/documentation.html                      |   4 +-
 content/download.html                           |  12 +-
 content/maven.html                              |   2 +-
 content/releases/index.html                     |   3 +-
 content/releases/qpid-jms-0.1.0/index.html      |   2 +-
 content/releases/qpid-jms-0.10.0/index.html     |   2 +-
 content/releases/qpid-jms-0.11.0/index.html     |   2 +-
 content/releases/qpid-jms-0.11.1/index.html     |   2 +-
 content/releases/qpid-jms-0.2.0/index.html      |   2 +-
 content/releases/qpid-jms-0.20.0/index.html     |   2 +-
 content/releases/qpid-jms-0.21.0/index.html     |   2 +-
 content/releases/qpid-jms-0.22.0/index.html     |   2 +-
 content/releases/qpid-jms-0.23.0/index.html     |   2 +-
 content/releases/qpid-jms-0.24.0/index.html     |   2 +-
 content/releases/qpid-jms-0.25.0/index.html     |   2 +-
 content/releases/qpid-jms-0.26.0/index.html     |   2 +-
 content/releases/qpid-jms-0.27.0/index.html     |   2 +-
 content/releases/qpid-jms-0.28.0/index.html     |   2 +-
 content/releases/qpid-jms-0.29.0/index.html     |   2 +-
 content/releases/qpid-jms-0.3.0/index.html      |   2 +-
 content/releases/qpid-jms-0.30.0/building.html  | 192 +++++++
 .../releases/qpid-jms-0.30.0/docs/index.html    | 514 +++++++++++++++++++
 content/releases/qpid-jms-0.30.0/index.html     | 210 ++++++++
 .../releases/qpid-jms-0.30.0/release-notes.html | 171 ++++++
 content/releases/qpid-jms-0.4.0/index.html      |   2 +-
 content/releases/qpid-jms-0.5.0/index.html      |   2 +-
 content/releases/qpid-jms-0.6.0/index.html      |   2 +-
 content/releases/qpid-jms-0.7.0/index.html      |   2 +-
 content/releases/qpid-jms-0.8.0/index.html      |   2 +-
 content/releases/qpid-jms-0.9.0/index.html      |   2 +-
 content/releases/qpid-jms-master/index.html     |   2 +-
 input/_transom_config.py                        |   2 +-
 input/releases/index.md                         |   3 +-
 input/releases/qpid-jms-0.30.0/building.md      |  44 ++
 input/releases/qpid-jms-0.30.0/docs/index.md    | 326 ++++++++++++
 input/releases/qpid-jms-0.30.0/index.md         |  68 +++
 input/releases/qpid-jms-0.30.0/release-notes.md |  43 ++
 39 files changed, 1610 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/components/jms/index.html
----------------------------------------------------------------------
diff --git a/content/components/jms/index.html b/content/components/jms/index.html
index 3cf0790..a086708 100644
--- a/content/components/jms/index.html
+++ b/content/components/jms/index.html
@@ -147,9 +147,9 @@ API</li>
 
 <ul>
 <li><a href="http://docs.oracle.com/javaee/7/api/javax/jms/package-summary.html">API reference</a></li>
-<li><a href="https://github.com/apache/qpid-jms/tree/0.29.0/qpid-jms-examples">Examples</a></li>
-<li><a href="/releases/qpid-jms-0.29.0/docs/index.html">Configuration</a></li>
-<li><a href="/releases/qpid-jms-0.29.0/building.html">Building Qpid JMS</a></li>
+<li><a href="https://github.com/apache/qpid-jms/tree/0.30.0/qpid-jms-examples">Examples</a></li>
+<li><a href="/releases/qpid-jms-0.30.0/docs/index.html">Configuration</a></li>
+<li><a href="/releases/qpid-jms-0.30.0/building.html">Building Qpid JMS</a></li>
 </ul>
 
 </div>
@@ -163,7 +163,7 @@ API</li>
 <h2 id="releases">Releases</h2>
 
 <ul>
-<li><a href="/releases/qpid-jms-0.29.0">Qpid JMS 0.29.0</a></li>
+<li><a href="/releases/qpid-jms-0.30.0">Qpid JMS 0.30.0</a></li>
 <li><a href="/releases/index.html#past-releases">Past releases</a></li>
 </ul>
 

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/dashboard.html
----------------------------------------------------------------------
diff --git a/content/dashboard.html b/content/dashboard.html
index e604181..33d67ca 100644
--- a/content/dashboard.html
+++ b/content/dashboard.html
@@ -169,7 +169,7 @@ https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
 </tr>
 <tr>
   <td><a href="/components/jms/index.html">Qpid JMS</a></td>
-  <td><a href="/releases/qpid-jms-0.29.0">0.29.0</a></td>
+  <td><a href="/releases/qpid-jms-0.30.0">0.30.0</a></td>
   <td><a href="https://issues.apache.org/jira/projects/QPIDJMS">Summary</a> &#x2022; <a href="https://issues.apache.org/jira/issues/?jql=project+%3D+QPIDJMS+and+resolution+is+null">Open issues</a> &#x2022; <a href="https://issues.apache.org/jira/issues/?jql=project+%3D+QPIDJMS">All issues</a> &#x2022; <a href="https://issues.apache.org/jira/secure/CreateIssue!default.jspa?pid=12314524">Create issue</a></td>
   <td><a href="https://builds.apache.org/blue/organizations/jenkins/Qpid-JMS-Test-JDK8/activity"><img src="https://builds.apache.org/buildStatus/icon?job=Qpid-JMS-Test-JDK8" height="20"/></a> <a href="https://travis-ci.org/apache/qpid-jms"><img src="https://travis-ci.org/apache/qpid-jms.svg?branch=master" height="20"/></a> <a href="https://builds.apache.org/blue/organizations/jenkins/Qpid-JMS-Test-JDK8-Windows/activity"><img src="https://builds.apache.org/buildStatus/icon?job=Qpid-JMS-Test-JDK8-Windows" height="20"/></a></td>
   <td><a href="https://git-wip-us.apache.org/repos/asf/qpid-jms.git">Git</a> &#x2022; <a href="https://github.com/apache/qpid-jms">GitHub</a></td>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/documentation.html
----------------------------------------------------------------------
diff --git a/content/documentation.html b/content/documentation.html
index 7fd52b1..7a0d89e 100644
--- a/content/documentation.html
+++ b/content/documentation.html
@@ -147,9 +147,9 @@ You can find older versions with our
 
 <ul>
 <li><a href="/components/jms/index.html">Overview</a></li>
-<li><a href="/releases/qpid-jms-0.29.0/docs/index.html">Configuration</a></li>
+<li><a href="/releases/qpid-jms-0.30.0/docs/index.html">Configuration</a></li>
 <li><a href="http://docs.oracle.com/javaee/7/api/javax/jms/package-summary.html">API reference</a></li>
-<li><a href="https://github.com/apache/qpid-jms/tree/0.29.0/qpid-jms-examples">Examples</a></li>
+<li><a href="https://github.com/apache/qpid-jms/tree/0.30.0/qpid-jms-examples">Examples</a></li>
 </ul>
 
 </section>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/download.html
----------------------------------------------------------------------
diff --git a/content/download.html b/content/download.html
index 7075ff8..881ab07 100644
--- a/content/download.html
+++ b/content/download.html
@@ -148,8 +148,8 @@ process. The downloads on this page are from our
 </tr>
 <tr>
   <td><a href="/components/jms/index.html">Qpid JMS</a> (AMQP 1.0)</td>
-  <td><a href="http://www.apache.org/dyn/closer.lua/qpid/jms/0.29.0/apache-qpid-jms-0.29.0-bin.tar.gz">apache-qpid-jms-0.29.0-bin.tar.gz</a>*</td>
-  <td><a href="https://www.apache.org/dist/qpid/jms/0.29.0/apache-qpid-jms-0.29.0-bin.tar.gz.asc">ASC</a>, <a href="https://www.apache.org/dist/qpid/jms/0.29.0/apache-qpid-jms-0.29.0-bin.tar.gz.md5">MD5</a>, <a href="https://www.apache.org/dist/qpid/jms/0.29.0/apache-qpid-jms-0.29.0-bin.tar.gz.sha512">SHA512</a></td>
+  <td><a href="http://www.apache.org/dyn/closer.lua/qpid/jms/0.30.0/apache-qpid-jms-0.30.0-bin.tar.gz">apache-qpid-jms-0.30.0-bin.tar.gz</a>*</td>
+  <td><a href="https://www.apache.org/dist/qpid/jms/0.30.0/apache-qpid-jms-0.30.0-bin.tar.gz.asc">ASC</a>, <a href="https://www.apache.org/dist/qpid/jms/0.30.0/apache-qpid-jms-0.30.0-bin.tar.gz.md5">MD5</a>, <a href="https://www.apache.org/dist/qpid/jms/0.30.0/apache-qpid-jms-0.30.0-bin.tar.gz.sha512">SHA512</a></td>
 </tr>
 <tr>
   <td><a href="/components/jms/amqp-0-x.html">Qpid JMS AMQP 0-x</a></td>
@@ -205,10 +205,10 @@ offer the source releases of
 <a href="https://www.apache.org/dist/qpid/proton-j/0.26.0/apache-qpid-proton-j-0.26.0-src.tar.gz.md5">MD5</a>,
 <a href="https://www.apache.org/dist/qpid/proton-j/0.26.0/apache-qpid-proton-j-0.26.0-src.tar.gz.sha512">SHA512</a>]
 and
-<a href="http://www.apache.org/dyn/closer.lua/qpid/jms/0.29.0/apache-qpid-jms-0.29.0-src.tar.gz">Qpid JMS</a>
-[<a href="https://www.apache.org/dist/qpid/jms/0.29.0/apache-qpid-jms-0.29.0-src.tar.gz.asc">ASC</a>,
-<a href="https://www.apache.org/dist/qpid/jms/0.29.0/apache-qpid-jms-0.29.0-src.tar.gz.md5">MD5</a>,
-<a href="https://www.apache.org/dist/qpid/jms/0.29.0/apache-qpid-jms-0.29.0-src.tar.gz.sha512">SHA512</a>]
+<a href="http://www.apache.org/dyn/closer.lua/qpid/jms/0.30.0/apache-qpid-jms-0.30.0-src.tar.gz">Qpid JMS</a>
+[<a href="https://www.apache.org/dist/qpid/jms/0.30.0/apache-qpid-jms-0.30.0-src.tar.gz.asc">ASC</a>,
+<a href="https://www.apache.org/dist/qpid/jms/0.30.0/apache-qpid-jms-0.30.0-src.tar.gz.md5">MD5</a>,
+<a href="https://www.apache.org/dist/qpid/jms/0.30.0/apache-qpid-jms-0.30.0-src.tar.gz.sha512">SHA512</a>]
 and
 <a href="http://www.apache.org/dyn/closer.lua/qpid/jms-amqp-0-x/6.3.0/apache-qpid-jms-amqp-0-x-6.3.0-src.tar.gz">Qpid JMS AMQP 0-x</a>
 [<a href="https://www.apache.org/dist/qpid/jms-amqp-0-x/6.3.0/apache-qpid-jms-amqp-0-x-6.3.0-src.tar.gz.asc">ASC</a>,

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/maven.html
----------------------------------------------------------------------
diff --git a/content/maven.html b/content/maven.html
index fb4101d..1712353 100644
--- a/content/maven.html
+++ b/content/maven.html
@@ -124,7 +124,7 @@ https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
 <span class="nt">&lt;dependency&gt;</span>
   <span class="nt">&lt;groupId&gt;</span>org.apache.qpid<span class="nt">&lt;/groupId&gt;</span>
   <span class="nt">&lt;artifactId&gt;</span>qpid-jms-client<span class="nt">&lt;/artifactId&gt;</span>
-  <span class="nt">&lt;version&gt;</span>0.29.0<span class="nt">&lt;/version&gt;</span>
+  <span class="nt">&lt;version&gt;</span>0.30.0<span class="nt">&lt;/version&gt;</span>
 <span class="nt">&lt;/dependency&gt;</span>
 </pre></div>
 

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/releases/index.html
----------------------------------------------------------------------
diff --git a/content/releases/index.html b/content/releases/index.html
index a6f6594..457b0b8 100644
--- a/content/releases/index.html
+++ b/content/releases/index.html
@@ -126,11 +126,11 @@ the
 <div class="two-column">
 
 <ul>
+<li><a href="qpid-jms-0.30.0/index.html">Qpid JMS 0.30.0</a>, March 2018</li>
 <li><a href="qpid-proton-j-0.26.0/index.html">Qpid Proton-J 0.26.0</a>, February 2018</li>
 <li><a href="qpid-dispatch-1.0.1/index.html">Qpid Dispatch 1.0.1</a>, February 2018</li>
 <li><a href="qpid-broker-j-7.0.1/index.html">Qpid Broker-J 7.0.1</a>, February 2018</li>
 <li><a href="qpid-proton-0.20.0/index.html">Qpid Proton 0.20.0</a>, January 2018</li>
-<li><a href="qpid-jms-0.29.0/index.html">Qpid JMS 0.29.0</a>, January 2018</li>
 <li><a href="qpid-python-1.37.0/index.html">Qpid Python 1.37.0</a>, November 2017</li>
 <li><a href="qpid-cpp-1.37.0/index.html">Qpid C++ 1.37.0</a>, November 2017</li>
 <li><a href="qpid-jms-amqp-0-x-6.3.0/index.html">Qpid JMS AMQP 0-x 6.3.0</a>, November 2017</li>
@@ -146,6 +146,7 @@ the
 
 <ul>
 <li><a href="qpid-dispatch-0.8.1/index.html">Qpid Dispatch 0.8.1</a>, February 2018</li>
+<li><a href="qpid-jms-0.29.0/index.html">Qpid JMS 0.29.0</a>, January 2018</li>
 <li><a href="qpid-proton-j-0.25.0/index.html">Qpid Proton-J 0.25.0</a>, January 2018</li>
 <li><a href="qpid-broker-j-7.0.0/index.html">Qpid Broker-J 7.0.0</a>, November 2017</li>
 <li><a href="qpid-dispatch-1.0.0/index.html">Qpid Dispatch 1.0.0</a>, November 2017</li>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/releases/qpid-jms-0.1.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-0.1.0/index.html b/content/releases/qpid-jms-0.1.0/index.html
index b33c516..7e8d066 100644
--- a/content/releases/qpid-jms-0.1.0/index.html
+++ b/content/releases/qpid-jms-0.1.0/index.html
@@ -116,7 +116,7 @@ https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
         <div id="-middle-content">
           <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.1.0" === "0.29.0") {
+      if ("0.1.0" === "0.30.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/releases/qpid-jms-0.10.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-0.10.0/index.html b/content/releases/qpid-jms-0.10.0/index.html
index 1e0d000..3278a51 100644
--- a/content/releases/qpid-jms-0.10.0/index.html
+++ b/content/releases/qpid-jms-0.10.0/index.html
@@ -175,7 +175,7 @@ files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.10.0" === "0.29.0") {
+      if ("0.10.0" === "0.30.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/releases/qpid-jms-0.11.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-0.11.0/index.html b/content/releases/qpid-jms-0.11.0/index.html
index f6329a6..06c629c 100644
--- a/content/releases/qpid-jms-0.11.0/index.html
+++ b/content/releases/qpid-jms-0.11.0/index.html
@@ -175,7 +175,7 @@ files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.11.0" === "0.29.0") {
+      if ("0.11.0" === "0.30.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/releases/qpid-jms-0.11.1/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-0.11.1/index.html b/content/releases/qpid-jms-0.11.1/index.html
index 8b1fe43..935ef04 100644
--- a/content/releases/qpid-jms-0.11.1/index.html
+++ b/content/releases/qpid-jms-0.11.1/index.html
@@ -175,7 +175,7 @@ files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.11.1" === "0.29.0") {
+      if ("0.11.1" === "0.30.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/releases/qpid-jms-0.2.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-0.2.0/index.html b/content/releases/qpid-jms-0.2.0/index.html
index 3be8ee6..3e55f88 100644
--- a/content/releases/qpid-jms-0.2.0/index.html
+++ b/content/releases/qpid-jms-0.2.0/index.html
@@ -116,7 +116,7 @@ https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
         <div id="-middle-content">
           <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.2.0" === "0.29.0") {
+      if ("0.2.0" === "0.30.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/releases/qpid-jms-0.20.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-0.20.0/index.html b/content/releases/qpid-jms-0.20.0/index.html
index 684407f..50d3d2e 100644
--- a/content/releases/qpid-jms-0.20.0/index.html
+++ b/content/releases/qpid-jms-0.20.0/index.html
@@ -175,7 +175,7 @@ files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.20.0" === "0.29.0") {
+      if ("0.20.0" === "0.30.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/releases/qpid-jms-0.21.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-0.21.0/index.html b/content/releases/qpid-jms-0.21.0/index.html
index 0e1da4f..7d00b75 100644
--- a/content/releases/qpid-jms-0.21.0/index.html
+++ b/content/releases/qpid-jms-0.21.0/index.html
@@ -175,7 +175,7 @@ files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.21.0" === "0.29.0") {
+      if ("0.21.0" === "0.30.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/releases/qpid-jms-0.22.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-0.22.0/index.html b/content/releases/qpid-jms-0.22.0/index.html
index 6f83501..aa2b85b 100644
--- a/content/releases/qpid-jms-0.22.0/index.html
+++ b/content/releases/qpid-jms-0.22.0/index.html
@@ -175,7 +175,7 @@ files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.22.0" === "0.29.0") {
+      if ("0.22.0" === "0.30.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/releases/qpid-jms-0.23.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-0.23.0/index.html b/content/releases/qpid-jms-0.23.0/index.html
index a5263c3..af7a4ac 100644
--- a/content/releases/qpid-jms-0.23.0/index.html
+++ b/content/releases/qpid-jms-0.23.0/index.html
@@ -175,7 +175,7 @@ files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.23.0" === "0.29.0") {
+      if ("0.23.0" === "0.30.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/releases/qpid-jms-0.24.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-0.24.0/index.html b/content/releases/qpid-jms-0.24.0/index.html
index 2da2dc2..71ffa90 100644
--- a/content/releases/qpid-jms-0.24.0/index.html
+++ b/content/releases/qpid-jms-0.24.0/index.html
@@ -175,7 +175,7 @@ files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.24.0" === "0.29.0") {
+      if ("0.24.0" === "0.30.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/releases/qpid-jms-0.25.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-0.25.0/index.html b/content/releases/qpid-jms-0.25.0/index.html
index 4f09d0b..9522ea6 100644
--- a/content/releases/qpid-jms-0.25.0/index.html
+++ b/content/releases/qpid-jms-0.25.0/index.html
@@ -175,7 +175,7 @@ files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.25.0" === "0.29.0") {
+      if ("0.25.0" === "0.30.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/releases/qpid-jms-0.26.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-0.26.0/index.html b/content/releases/qpid-jms-0.26.0/index.html
index 287cc7e..85b1382 100644
--- a/content/releases/qpid-jms-0.26.0/index.html
+++ b/content/releases/qpid-jms-0.26.0/index.html
@@ -175,7 +175,7 @@ files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.26.0" === "0.29.0") {
+      if ("0.26.0" === "0.30.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/releases/qpid-jms-0.27.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-0.27.0/index.html b/content/releases/qpid-jms-0.27.0/index.html
index 1b9e206..f6e3b34 100644
--- a/content/releases/qpid-jms-0.27.0/index.html
+++ b/content/releases/qpid-jms-0.27.0/index.html
@@ -175,7 +175,7 @@ files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.27.0" === "0.29.0") {
+      if ("0.27.0" === "0.30.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/releases/qpid-jms-0.28.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-0.28.0/index.html b/content/releases/qpid-jms-0.28.0/index.html
index 650ed06..52e3218 100644
--- a/content/releases/qpid-jms-0.28.0/index.html
+++ b/content/releases/qpid-jms-0.28.0/index.html
@@ -175,7 +175,7 @@ files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.28.0" === "0.29.0") {
+      if ("0.28.0" === "0.30.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/releases/qpid-jms-0.29.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-0.29.0/index.html b/content/releases/qpid-jms-0.29.0/index.html
index 811938b..eacab8d 100644
--- a/content/releases/qpid-jms-0.29.0/index.html
+++ b/content/releases/qpid-jms-0.29.0/index.html
@@ -175,7 +175,7 @@ files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.29.0" === "0.29.0") {
+      if ("0.29.0" === "0.30.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/releases/qpid-jms-0.3.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-0.3.0/index.html b/content/releases/qpid-jms-0.3.0/index.html
index b65d7d2..f141b3d 100644
--- a/content/releases/qpid-jms-0.3.0/index.html
+++ b/content/releases/qpid-jms-0.3.0/index.html
@@ -116,7 +116,7 @@ https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
         <div id="-middle-content">
           <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.3.0" === "0.29.0") {
+      if ("0.3.0" === "0.30.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/releases/qpid-jms-0.30.0/building.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-0.30.0/building.html b/content/releases/qpid-jms-0.30.0/building.html
new file mode 100644
index 0000000..82fc792
--- /dev/null
+++ b/content/releases/qpid-jms-0.30.0/building.html
@@ -0,0 +1,192 @@
+<!DOCTYPE html>
+<!--
+ -
+ - 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.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+  <head>
+    <title>QpidJMS - Apache Qpid&#8482;</title>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+    <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+    <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+    <script type="text/javascript">var _deferredFunctions = [];</script>
+    <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+    <!--[if lte IE 8]>
+      <link rel="stylesheet" href="/ie.css" type="text/css"/>
+      <script type="text/javascript" src="/html5shiv.js"></script>
+    <![endif]-->
+
+    <!-- Redirects for `go get` and godoc.org -->
+    <meta name="go-import"
+          content="qpid.apache.org git https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
+    <meta name="go-source"
+          content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+  </head>
+  <body>
+    <div id="-content">
+      <div id="-top" class="panel">
+        <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+        <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a>
+
+        <ul id="-global-navigation">
+          <li><a id="-logotype" href="/index.html">Apache Qpid<sup>&#8482;</sup></a></li>
+          <li><a href="/documentation.html">Documentation</a></li>
+          <li><a href="/download.html">Download</a></li>
+          <li><a href="/discussion.html">Discussion</a></li>
+        </ul>
+      </div>
+
+      <div id="-menu" class="panel" style="display: none;">
+        <div class="flex">
+          <section>
+            <h3>Project</h3>
+
+            <ul>
+              <li><a href="/overview.html">Overview</a></li>
+              <li><a href="/components/index.html">Components</a></li>
+              <li><a href="/releases/index.html">Releases</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Messaging APIs</h3>
+
+            <ul>
+              <li><a href="/proton/index.html">Qpid Proton</a></li>
+              <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+              <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Servers and tools</h3>
+
+            <ul>
+              <li><a href="/components/broker-j/index.html">Broker-J</a></li>
+              <li><a href="/components/cpp-broker/index.html">C++ broker</a></li>
+              <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Resources</h3>
+
+            <ul>
+              <li><a href="/dashboard.html">Dashboard</a></li>
+              <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li>
+              <li><a href="/resources.html">More resources</a></li>
+            </ul>
+          </section>
+        </div>
+      </div>
+
+      <div id="-search" class="panel" style="display: none;">
+        <form action="http://www.google.com/search" method="get">
+          <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+          <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/>
+          <button type="submit">Search</button>
+          <a href="/search.html">More ways to search</a>
+        </form>
+      </div>
+
+      <div id="-middle" class="panel">
+        <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-jms-0.30.0/index.html">Qpid JMS 0.30.0</a></li><li>QpidJMS</li></ul>
+
+        <div id="-middle-content">
+          <h1 id="qpidjms">QpidJMS</h1>
+
+<p>The QpidJMS project provides a JMS based client that uses the AMQP v1.0 protocol.</p>
+
+<p>Below are some quick pointers you might find useful.</p>
+
+<h2 id="building-the-code">Building the code</h2>
+
+<p>The project requires Maven 3. Some example commands follow.</p>
+
+<p>Clean previous builds output and install all modules to local repository without
+running the tests:</p>
+
+<pre><code>mvn clean install -DskipTests
+</code></pre>
+
+<p>Install all modules to the local repository after running all the tests:</p>
+
+<pre><code>mvn clean install
+</code></pre>
+
+<p>Perform a subset tests on the packaged release artifacts without
+installing:</p>
+
+<pre><code>mvn clean verify -Dtest=TestNamePattern*
+</code></pre>
+
+<p>Execute the tests and produce code coverage report:</p>
+
+<pre><code>mvn clean test jacoco:report
+</code></pre>
+
+<h2 id="examples">Examples</h2>
+
+<p>First build and install all the modules as detailed above (if running against
+a source checkout/release, rather than against released binaries) and then
+consult the README in the qpid-jms-examples module itself.</p>
+
+<h2 id="documentation">Documentation</h2>
+
+<p>There is some basic documentation in the qpid-jms-docs module.</p>
+
+<h2 id="distribution-assemblies">Distribution assemblies</h2>
+
+<p>After building the modules, src and binary distribution assemblies can be found at:</p>
+
+<pre><code>apache-qpid-jms/target
+</code></pre>
+
+
+          <hr/>
+
+          <ul id="-apache-navigation">
+            <li><a href="http://www.apache.org/">Apache</a></li>
+            <li><a href="http://www.apache.org/licenses/">License</a></li>
+            <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+            <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li>
+            <li><a href="/security.html">Security</a></li>
+            <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li>
+          </ul>
+
+          <p id="-legal">
+            Apache Qpid, Messaging built on AMQP; Copyright &#169; 2015
+            The Apache Software Foundation; Licensed under
+            the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
+            License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+            Proton, Apache, the Apache feather logo, and the Apache Qpid
+            project logo are trademarks of The Apache Software
+            Foundation; All other marks mentioned may be trademarks or
+            registered trademarks of their respective owners
+          </p>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/releases/qpid-jms-0.30.0/docs/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-0.30.0/docs/index.html b/content/releases/qpid-jms-0.30.0/docs/index.html
new file mode 100644
index 0000000..76f2a68
--- /dev/null
+++ b/content/releases/qpid-jms-0.30.0/docs/index.html
@@ -0,0 +1,514 @@
+<!DOCTYPE html>
+<!--
+ -
+ - 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.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+  <head>
+    <title>Client configuration - Apache Qpid&#8482;</title>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+    <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+    <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+    <script type="text/javascript">var _deferredFunctions = [];</script>
+    <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+    <!--[if lte IE 8]>
+      <link rel="stylesheet" href="/ie.css" type="text/css"/>
+      <script type="text/javascript" src="/html5shiv.js"></script>
+    <![endif]-->
+
+    <!-- Redirects for `go get` and godoc.org -->
+    <meta name="go-import"
+          content="qpid.apache.org git https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
+    <meta name="go-source"
+          content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+  </head>
+  <body>
+    <div id="-content">
+      <div id="-top" class="panel">
+        <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+        <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a>
+
+        <ul id="-global-navigation">
+          <li><a id="-logotype" href="/index.html">Apache Qpid<sup>&#8482;</sup></a></li>
+          <li><a href="/documentation.html">Documentation</a></li>
+          <li><a href="/download.html">Download</a></li>
+          <li><a href="/discussion.html">Discussion</a></li>
+        </ul>
+      </div>
+
+      <div id="-menu" class="panel" style="display: none;">
+        <div class="flex">
+          <section>
+            <h3>Project</h3>
+
+            <ul>
+              <li><a href="/overview.html">Overview</a></li>
+              <li><a href="/components/index.html">Components</a></li>
+              <li><a href="/releases/index.html">Releases</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Messaging APIs</h3>
+
+            <ul>
+              <li><a href="/proton/index.html">Qpid Proton</a></li>
+              <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+              <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Servers and tools</h3>
+
+            <ul>
+              <li><a href="/components/broker-j/index.html">Broker-J</a></li>
+              <li><a href="/components/cpp-broker/index.html">C++ broker</a></li>
+              <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Resources</h3>
+
+            <ul>
+              <li><a href="/dashboard.html">Dashboard</a></li>
+              <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li>
+              <li><a href="/resources.html">More resources</a></li>
+            </ul>
+          </section>
+        </div>
+      </div>
+
+      <div id="-search" class="panel" style="display: none;">
+        <form action="http://www.google.com/search" method="get">
+          <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+          <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/>
+          <button type="submit">Search</button>
+          <a href="/search.html">More ways to search</a>
+        </form>
+      </div>
+
+      <div id="-middle" class="panel">
+        <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-jms-0.30.0/index.html">Qpid JMS 0.30.0</a></li><li>Client configuration</li></ul>
+
+        <div id="-middle-content">
+          <h1 id="client-configuration">Client configuration</h1>
+
+<p>This file details various configuration options for the client, such as how to configure and create a JNDI InitialContext, the syntax for its related configuration, and various URI options that can be set when defining a ConnectionFactory.</p>
+
+<h2 id="configuring-a-jndi-initialcontext">Configuring a JNDI InitialContext</h2>
+
+<p>Applications use a JNDI InitialContext, itself obtained from an InitialContextFactory, to look up JMS objects such as ConnectionFactory. The Qpid JMS client provides an implementation of the InitialContextFactory in class <em>org.apache.qpid.jms.jndi.JmsInitialContextFactory</em>. This may be configured and used in three main ways:</p>
+
+<ol>
+<li><p>Via jndi.properties file on the Java Classpath.</p>
+
+<p>By including a file named jndi.properties on the Classpath and setting the <em>java.naming.factory.initial</em> property
+to value <em>org.apache.qpid.jms.jndi.JmsInitialContextFactory</em>, the Qpid InitialContextFactory implementation will
+be discovered when instantiating InitialContext object.</p>
+
+<pre><code>javax.naming.Context ctx = new javax.naming.InitialContext();
+</code></pre>
+
+<p>The particular ConnectionFactory, Queue and Topic objects you wish the context to contain are configured using
+properties (the syntax for which is detailed below) either directly within the jndi.properties file,
+or in a separate file which is referenced in jndi.properties using the <em>java.naming.provider.url</em> property.</p></li>
+<li><p>Via system properties.</p>
+
+<p>By setting the <em>java.naming.factory.initial</em> system property to value <em>org.apache.qpid.jms.jndi.JmsInitialContextFactory</em>,
+the Qpid InitialContextFactory implementation will be discovered when instantiating InitialContext object.</p>
+
+<pre><code> javax.naming.Context ctx = new javax.naming.InitialContext();
+</code></pre>
+
+<p>The particular ConnectionFactory, Queue and Topic objects you wish the context to contain are configured as properties in
+a file, which is passed using the <em>java.naming.provider.url</em> system property. The syntax for these properties is detailed
+below.</p></li>
+<li><p>Programmatically using an environment Hashtable.</p>
+
+<p>The InitialContext may also be configured directly by passing an environment during creation:</p>
+
+<pre><code>Hashtable&lt;Object, Object&gt; env = new Hashtable&lt;Object, Object&gt;();
+env.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.qpid.jms.jndi.JmsInitialContextFactory");
+javax.naming.Context context = new javax.naming.InitialContext(env);
+</code></pre>
+
+<p>The particular ConnectionFactory, Queue and Topic objects you wish the context to contain are configured as properties
+(the syntax for which is detailed below), either directly within the environment Hashtable, or in a
+separate file which is referenced using the <em>java.naming.provider.url</em> property within the environment Hashtable.</p></li>
+</ol>
+
+<p>The property syntax used in the properties file or environment Hashtable is as follows:</p>
+
+<ul>
+<li>To define a ConnectionFactory, use format: <em>connectionfactory.lookupName = URI</em></li>
+<li>To define a Queue, use format: <em>queue.lookupName = queueName</em></li>
+<li>To define a Topic use format: <em>topic.lookupName = topicName</em></li>
+</ul>
+
+<p>For more details of the Connection URI, see the next section.</p>
+
+<p>As an example, consider the following properties used to define a ConnectionFactory, Queue, and Topic:</p>
+
+<pre><code>connectionfactory.myFactoryLookup = amqp://localhost:5672
+queue.myQueueLookup = queueA
+topic.myTopicLookup = topicA
+</code></pre>
+
+<p>These objects could then be looked up from a Context as follows:</p>
+
+<pre><code>ConnectionFactory factory = (ConnectionFactory) context.lookup("myFactoryLookup");
+Queue queue = (Queue) context.lookup("myQueueLookup");
+Topic topic = (Topic) context.lookup("myTopicLookup");
+</code></pre>
+
+<h2 id="connection-uri">Connection URI</h2>
+
+<p>The basic format of the clients Connection URI is as follows:</p>
+
+<pre><code>  amqp[s]://hostname:port[?option=value[&amp;option2=value...]]
+</code></pre>
+
+<p>or for WebSocket connections:</p>
+
+<pre><code> amqpws[s]://hostname:port[/path][?option=value[&amp;option2=value...]]
+</code></pre>
+
+<p>Where the <em>amqps</em> and <em>amqpwss</em> scheme is specified to use SSL/TLS, the hostname segment from the URI can be used by the JVM for the
+TLS SNI (Server Name Indication) extension in order to communicate the desired server hostname during a TLS handshake.
+The SNI extension will be automatically included if a Fully Qualified name (e.g myhost.mydomain) is specified, but not
+when an unqualified name (e.g myhost) or bare IP address are used.</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="jms-configuration-options">JMS Configuration options</h3>
+
+<p>The options apply to the behaviour of the JMS objects such as Connection, Session, MessageConsumer and MessageProducer.</p>
+
+<ul>
+<li><strong>jms.username</strong> User name value used to authenticate the connection</li>
+<li><strong>jms.password</strong> The password value used to authenticate the connection</li>
+<li><strong>jms.clientID</strong> The ClientID value that is applied to the connection.</li>
+<li><strong>jms.forceAsyncSend</strong> Configures whether all Messages sent from a MessageProducer are sent asynchronously or only those Message that qualify such as Messages inside a transaction or non-persistent messages.</li>
+<li><strong>jms.forceSyncSend</strong> Override all asynchronous send conditions and always sends every Message from a MessageProducer synchronously.</li>
+<li><strong>jms.forceAsyncAcks</strong> Causes all Message acknowledgments to be sent asynchronously.</li>
+<li><strong>jms.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>jms.localMessagePriority</strong> If enabled prefetched messages are reordered locally based on their given Message priority value. Default is false.</li>
+<li><strong>jms.validatePropertyNames</strong> If message property names should be validated as valid Java identifiers. Default is true.</li>
+<li><strong>jms.receiveLocalOnly</strong> If enabled receive calls with a timeout will only check a consumers local message buffer, otherwise the remote peer is checked to ensure there are really no messages available if the local timeout expires before a message arrives. Default is false, the remote is checked.</li>
+<li><strong>jms.receiveNoWaitLocalOnly</strong> If enabled receiveNoWait calls will only check a consumers local message buffer, otherwise the remote peer is checked to ensure there are really no messages available. Default is false, the remote is checked.</li>
+<li><strong>jms.queuePrefix</strong> Optional prefix value added to the name of any Queue created from a JMS Session.</li>
+<li><strong>jms.topicPrefix</strong> Optional prefix value added to the name of any Topic created from a JMS Session.</li>
+<li><strong>jms.closeTimeout</strong> Timeout value that controls how long the client waits on resource closure before returning. By default the client waits 60 seconds for a normal close completion event.</li>
+<li><strong>jms.connectTimeout</strong> Timeout value that controls how long the client waits on Connection establishment before returning with an error. By default the client waits 15 seconds for a connection to be established before failing.</li>
+<li><strong>jms.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>jms.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>jms.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>jms.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>
+<li><strong>jms.populateJMSXUserID</strong> Controls whether a MessageProducer will populate the JMSXUserID value for each sent message using the authenticated username from the connection.  This value defaults to false and the JMSXUserID for all sent message will not be populated.</li>
+<li><strong>jms.awaitClientID</strong> Controls whether a Connection with no ClientID configured in the URI will wait for a ClientID being set programatically (or the connection being used otherwise to signal none can be set) before sending the AMQP connection Open. Defaults to true.</li>
+<li><strong>jms.useDaemonThread</strong> Controls whether a Connection will use a daemon thread for its executor. Defaults to false to ensure a non-daemon thread is present by default.</li>
+</ul>
+
+<p>The Prefetch Policy controls how many messages the remote peer can send to the client and be held in a prefetch buffer for each consumer instance.</p>
+
+<ul>
+<li><strong>jms.prefetchPolicy.queuePrefetch</strong> defaults to 1000</li>
+<li><strong>jms.prefetchPolicy.topicPrefetch</strong> defaults to 1000</li>
+<li><strong>jms.prefetchPolicy.queueBrowserPrefetch</strong> defaults to 1000</li>
+<li><strong>jms.prefetchPolicy.durableTopicPrefetch</strong> defaults to 1000</li>
+<li><strong>jms.prefetchPolicy.all</strong> used to set all prefetch values at once.</li>
+</ul>
+
+<p>The Redelivery Policy controls how redelivered messages are handled on the client.</p>
+
+<ul>
+<li><strong>jms.redeliveryPolicy.maxRedeliveries</strong> controls when an incoming message is rejected based on the number of times it has been redelivered, the default value is (-1) disabled.  A value of zero would indicate no message redeliveries are accepted, a value of five would allow a message to be redelivered five times, etc.</li>
+<li><strong>jms.redeliveryPolicy.outcome</strong> controls the outcome that is applied to a message that is being rejected due to it having exceeded the configured maxRedeliveries value.  This option is configured on the URI using the following set of outcome options:  ACCEPTED, REJECTED, RELEASED, MODIFIED_FAILED and MODIFIED_FAILED_UNDELIVERABLE. The default outcome value is MODIFIED_FAILED_UNDELIVERABLE.</li>
+</ul>
+
+<p>The MessageID Policy controls the type of the Message ID assigned to messages sent from the client.</p>
+
+<ul>
+<li><strong>jms.messageIDPolicy.messageIDType</strong> By default a generated String value is used for the MessageID on outgoing messages. Other available types are UUID, UUID_STRING, and PREFIXED_UUID_STRING.</li>
+</ul>
+
+<p>The Presettle Policy controls when a producer or consumer instance will be configured to use AMQP presettled messaging semantics.</p>
+
+<ul>
+<li><strong>jms.presettlePolicy.presettleAll</strong> when true all producers and non-transacted consumers created operate in presettled mode, defaults to false.</li>
+<li><strong>jms.presettlePolicy.presettleProducers</strong> when true all producers operate in presettled mode, defaults to false.</li>
+<li><strong>jms.presettlePolicy.presettleTopicProducers</strong> when true any producer that is sending to a Topic or Temporary Topic destination will operate in presettled mode, defaults to false.</li>
+<li><strong>jms.presettlePolicy.presettleQueueProducers</strong> when true any producer that is sending to a Queue or Temporary Queue destination will operate in presettled mode, defaults to false.</li>
+<li><strong>jms.presettlePolicy.presettleTransactedProducers</strong> when true any producer that is created in a transacted Session will operate in presettled mode, defaults to false.</li>
+<li><strong>jms.presettlePolicy.presettleConsumers</strong> when true all consumers operate in presettled mode, defaults to false.</li>
+<li><strong>jms.presettlePolicy.presettleTopicConsumers</strong> when true any consumer that is receiving from a Topic or Temporary Topic destination will operate in presettled mode, defaults to false.</li>
+<li><strong>jms.presettlePolicy.presettleQueueConsumers</strong> when true any consumer that is receiving from a Queue or Temporary Queue destination will operate in presettled mode, defaults to false.</li>
+</ul>
+
+<p>The Deserialization Policy provides a means of controlling which types are trusted to be deserialized from the object stream while retrieving the body from an incoming JMS ObjectMessage composed of serialized Java Object content. By default all types are trusted during attempt to deserialize the body. The default Deserialization Policy object provides URI options that allow specifying a whitelist and a blacklist of Java class or package names.</p>
+
+<p><strong>jms.deserializationPolicy.whiteList</strong> A comma separated list of class/package names that should be allowed when deserializing the contents of a JMS ObjectMessage, unless overridden by the blackList. The names in this list are not pattern values, the exact class or package name must be configured, e.g "java.util.Map" or "java.util". Package matches include sub-packages. Default is to allow all.
+<strong>jms.deserializationPolicy.blackList</strong> A comma separated list of class/package names that should be rejected when deserializing the contents of a JMS ObjectMessage. The names in this list are not pattern values, the exact class or package name must be configured, e.g "java.util.Map" or "java.util". Package matches include sub-packages. Default is to prevent none.</p>
+
+<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>
+
+<pre><code>  amqp://localhost:5672?jms.clientID=foo&amp;transport.connectTimeout=30000
+</code></pre>
+
+<p>The complete set of TCP Transport options is listed below:</p>
+
+<ul>
+<li><strong>transport.sendBufferSize</strong> default is 64k</li>
+<li><strong>transport.receiveBufferSize</strong> default is 64k</li>
+<li><strong>transport.trafficClass</strong> default is 0</li>
+<li><strong>transport.connectTimeout</strong> default is 60 seconds</li>
+<li><strong>transport.soTimeout</strong> default is -1</li>
+<li><strong>transport.soLinger</strong> default is -1</li>
+<li><strong>transport.tcpKeepAlive</strong> default is false</li>
+<li><strong>transport.tcpNoDelay</strong> default is true</li>
+<li><strong>transport.useEpoll</strong> When true the transport will use the native Epoll layer when available instead of the NIO layer, which can improve performance. Defaults to true.</li>
+<li><strong>transport.useKQueue</strong> When true the transport will use the native KQueue layer when available instead of the NIO layer, which can improve performance. Defaults to false.</li>
+</ul>
+
+<h3 id="ssl-transport-configuration-options">SSL Transport Configuration options</h3>
+
+<p>The SSL Transport extends the TCP Transport and is enabled using the <em>amqps</em> URI scheme.  Because the SSL Transport extends the functionality of the TCP based Transport all the TCP Transport options are valid on an SSL Transport URI.</p>
+
+<p>A simple SSL/TLS based client URI is shown below:</p>
+
+<pre><code>amqps://myhost.mydomain:5671
+</code></pre>
+
+<p>The complete set of SSL Transport options is listed below:</p>
+
+<ul>
+<li><strong>transport.keyStoreLocation</strong>  default is to read from the system property "javax.net.ssl.keyStore"</li>
+<li><strong>transport.keyStorePassword</strong>  default is to read from the system property "javax.net.ssl.keyStorePassword"</li>
+<li><strong>transport.trustStoreLocation</strong>  default is to read from the system property "javax.net.ssl.trustStore"</li>
+<li><strong>transport.trustStorePassword</strong>  default is to read from the system property "javax.net.ssl.trustStorePassword"</li>
+<li><strong>transport.keyStoreType</strong> The type of keyStore being used. Default is to read from the system property "javax.net.ssl.keyStoreType" If not set then default is "JKS".</li>
+<li><strong>transport.trustStoreType</strong> The type of trustStore being used. Default is to read from the system property "javax.net.ssl.trustStoreType" If not set then default is "JKS".</li>
+<li><strong>transport.storeType</strong> This will set both the keystoreType and trustStoreType to the same value. If not set then the keyStoreType and trustStoreType will default to the values specified above.</li>
+<li><strong>transport.contextProtocol</strong> The protocol argument used when getting an SSLContext. Default is "TLS".</li>
+<li><strong>transport.enabledCipherSuites</strong> The cipher suites to enable, comma separated. No default, meaning the context default ciphers are used. Any disabled ciphers are removed from this.</li>
+<li><strong>transport.disabledCipherSuites</strong> The cipher suites to disable, comma separated. Ciphers listed here are removed from the enabled ciphers. No default.</li>
+<li><strong>transport.enabledProtocols</strong> The protocols to enable, comma separated. No default, meaning the context default protocols are used. Any disabled protocols are removed from this.</li>
+<li><strong>transport.disabledProtocols</strong> The protocols to disable, comma separated. Protocols listed here are removed from the enabled protocols. Default is "SSLv2Hello,SSLv3".</li>
+<li><strong>transport.trustAll</strong> Whether to trust the provided server certificate implicitly, regardless of any configured trust store. Defaults to false.</li>
+<li><strong>transport.verifyHost</strong> Whether to verify that the hostname being connected to matches with the provided server certificate. Defaults to true.</li>
+<li><strong>transport.keyAlias</strong> The alias to use when selecting a keypair from the keystore if required to send a client certificate to the server. No default.</li>
+</ul>
+
+<h3 id="websocket-transport-configuration-options">Websocket Transport Configuration options</h3>
+
+<p>The WebSocket (WS) Transport extends the TCP and SSL Transports to provide both unsecured and secured Websocket connectivity and is enabled using the <em>amqpws</em> and <em>amqpwss</em> URI schemes.  The unsecured WS Transport extends the basic TCP transport which means all the normal TCP Transport configuration options also apply to the WS Transport. Similarly the WSS Transport extends the SSL Transport which means both the TCP and SSL Transport options can be applied to configure it.</p>
+
+<p>A simple WS[S] based client URI is shown below:</p>
+
+<pre><code>amqpws[s]://myhost.mydomain:5671/[optional-path]
+</code></pre>
+
+<h3 id="amqp-configuration-options">AMQP Configuration options</h3>
+
+<p>These options apply to the behaviour of certain AMQP functionality.</p>
+
+<ul>
+<li><strong>amqp.idleTimeout</strong> The idle timeout in milliseconds after which the connection will be failed if the peer sends no AMQP frames. Default is 60000.</li>
+<li><strong>amqp.vhost</strong> The vhost to connect to. Used to populate the Sasl and Open hostname fields. Default is the main hostname from the Connection URI.</li>
+<li><strong>amqp.saslLayer</strong> Controls whether connections should use a SASL layer or not. Default is true.</li>
+<li><strong>amqp.saslMechanisms</strong> Which SASL mechanism(s) the client should allow selection of, if offered by the server and usable with the configured credentials. Comma separated if specifying more than 1 mechanism. The clients supported mechanisms are currently EXTERNAL, SCRAM-SHA-256, SCRAM-SHA-1, CRAM-MD5, PLAIN, ANONYMOUS, and GSSAPI for Kerberos.  Default is to allow selection from all mechanisms except GSSAPI, which must be specified here to enable.</li>
+<li><strong>amqp.maxFrameSize</strong> The max-frame-size value in bytes that is advertised to the peer. Default is 1048576.</li>
+<li><strong>amqp.drainTimeout</strong> The time in milliseconds that the client will wait for a response from the remote when a consumer drain request is made. If no response is seen in the allotted timeout period the link will be considered failed and the associated consumer will be closed. Default is 60000.</li>
+<li><strong>amqp.allowNonSecureRedirects</strong> Controls whether an AMQP connection will allow for a redirect to an alternative host over a connection that is not secure when the existing connection is secure, e.g. redirecting an SSL connection to a raw TCP connection.  This value defaults to false.</li>
+</ul>
+
+<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 <em>failover</em> prefix and a list of URIs for the server(s) is contained inside a set of parentheses. The "jms." options are applied to the overall failover URI, outside the parentheses, and affect the JMS Connection object for its lifetime.</p>
+
+<p>The URI for failover looks something like the following:</p>
+
+<pre><code>failover:(amqp://host1:5672,amqp://host2:5672)?jms.clientID=foo&amp;failover.maxReconnectAttempts=20
+</code></pre>
+
+<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>
+
+<pre><code>failover:(amqp://host1:5672?amqp.option=value,amqp://host2:5672?transport.option=value)?jms.clientID=foo
+</code></pre>
+
+<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>
+<li><strong>failover.warnAfterReconnectAttempts</strong> Controls how often the client will log a message indicating that failover reconnection is being attempted.  The default is to log every 10 connection attempts.</li>
+<li><strong>failover.randomize</strong> When true the set of failover URIs is randomly shuffled prior to attempting to connect to one of them.  This can help to distribute client connections more evenly across multiple remote peers.  The default value is false.</li>
+<li><strong>failover.amqpOpenServerListAction</strong> Controls how the failover transport behaves when the connection Open frame from the remote peer provides a list of failover hosts to the client.  This option accepts one of three values; REPLACE, ADD, or IGNORE (default is REPLACE).  If REPLACE is configured then all failover URIs other than the one for the current server are replaced with those provided by the remote peer.  If ADD is configured then the URIs provided by the remote are added to the existing set of failover URIs, with de-duplication.  If IGNORE is configured then any updates from the remote are dropped and no changes are made to the set of failover URIs in use.</li>
+</ul>
+
+<p>The failover URI also supports defining 'nested' options as a means of specifying AMQP and transport option values applicable to all the individual nested broker URI's, which can be useful to avoid repetition. This is accomplished using the same "transport." and "amqp." URI options outlined earlier for a non-failover broker URI but prefixed with <em>failover.nested.</em>. For example, to apply the same value for the <em>amqp.vhost</em> option to every broker connected to you might have a URI like:</p>
+
+<pre><code>failover:(amqp://host1:5672,amqp://host2:5672)?jms.clientID=foo&amp;failover.nested.amqp.vhost=myhost
+</code></pre>
+
+<h3 id="discovery-configuration-options">Discovery Configuration options</h3>
+
+<p>The client has an optional Discovery module, which provides a customised failover layer where the broker URIs to connect to are not given in the initial URI, but discovered as the client operates via associated discovery agents. There are currently two discovery agent implementations, a file watcher that loads URIs from a file, and a multicast listener that works with ActiveMQ 5 brokers which have been configured to broadcast their broker addresses for listening clients.</p>
+
+<p>The general set of failover related options when using discovery are the same as those detailed earlier, with the main prefix updated from <em>failover.</em> to <em>discovery.</em>, and with the 'nested' options prefix used to supply URI options common to all the discovered broker URIs bring updated from <em>failover.nested.</em> to <em>discovery.discovered</em>. For example, without the agent URI details, a general discovery URI might look like:</p>
+
+<pre><code>discovery:(&lt;agent-uri&gt;)?discovery.maxReconnectAttempts=20&amp;discovery.discovered.jms.clientID=foo
+</code></pre>
+
+<p>To use the file watcher discovery agent, utilise an agent URI of the form:</p>
+
+<pre><code>discovery:(file:///path/to/monitored-file?updateInterval=60000)
+</code></pre>
+
+<p>The URI options for the file watcher discovery agent are listed below:</p>
+
+<ul>
+<li><strong>updateInterval</strong> Controls the frequency in milliseconds which the file is inspected for change. The default value is 30000.</li>
+</ul>
+
+<p>To use the multicast discovery agent with an ActiveMQ 5 broker, utilise an agent URI of the form:</p>
+
+<pre><code>discovery:(multicast://default?group=default)
+</code></pre>
+
+<p>Note that the use of <em>default</em> as the host in the multicast agent URI above is a special value (that is substituted by the agent with the default "239.255.2.3:6155"). You may change this to specify the actual IP and port in use with your multicast configuration.</p>
+
+<p>The URI options for the multicast discovery agent are listed below:</p>
+
+<ul>
+<li><strong>group</strong> Controls which multicast group messages are listened for on. The default value is "default".</li>
+</ul>
+
+<h2 id="logging">Logging</h2>
+
+<p>The client makes use of the SLF4J API, allowing users to select a particular logging implementation based on their needs by supplying a SLF4J 'binding', such as <em>slf4j-log4j</em> in order to use Log4J. More details on SLF4J are available from http://www.slf4j.org/.</p>
+
+<p>The client uses Logger names residing within the <em>org.apache.qpid.jms</em> hierarchy, which you can use to configure a logging implementation based on your needs.</p>
+
+<p>When debugging some issues, it may sometimes be useful to enable additional protocol trace logging from the Qpid Proton AMQP 1.0 library. There are two options to achieve this:</p>
+
+<ul>
+<li>Set the environment variable (not Java system property) <em>PN_TRACE_FRM</em> to <em>true</em>, which will cause Proton to emit frame logging to stdout.</li>
+<li>Add the option <em>amqp.traceFrames=true</em> to your connection URI to have the client add a protocol tracer to Proton, and configure the <em>org.apache.qpid.jms.provider.amqp.FRAMES</em> Logger to <em>TRACE</em> level to include the output in your logs.</li>
+</ul>
+
+<h2 id="extended-session-acknowledgement-modes">Extended Session Acknowledgement modes</h2>
+
+<p>The client supports two additional session acknowledgement modes beyond the standard JMS specification modes.</p>
+
+<h3 id="individual-acknowledge">Individual Acknowledge</h3>
+
+<p>In this mode messages must be acknowledged individually by the application via the Message#acknowledge() method used when the Session is in CLIENT_ACKNOWLEDGE mode.  Unlike with CLIENT_ACKNOWLEDGE mode only the target message will be acknowledged, all other delivered messages remain un-acknowledged.  The integer value used to activate this mode is <em>101</em>.</p>
+
+<pre><code>    connection.createSession(false, 101);
+</code></pre>
+
+<h3 id="no-acknowledge">No Acknowledge</h3>
+
+<p>In this mode messages are accepted at the server before being dispatched to the client, and no acknowledgement is performed by the client.  The client supports two integer values to activate this mode, <em>100</em> and <em>257</em>.</p>
+
+<pre><code>    connection.createSession(false, 100);
+</code></pre>
+
+<h2 id="authenticating-using-kerberos">Authenticating using Kerberos</h2>
+
+<p>The client can be configured to authenticate using Kerberos when used with an appropriately configured server. To do so, you must:</p>
+
+<ol>
+<li><p>Configure the client to use the GSSAPI mechanism for SASL authentication using the <em>amqp.saslMechanisms</em> URI option, e.g:</p>
+
+<pre><code>amqp://myhost:5672?amqp.saslMechanisms=GSSAPI
+failover:(amqp://myhost:5672?amqp.saslMechanisms=GSSAPI)
+</code></pre></li>
+<li><p>Set the <em>java.security.auth.login.config</em> system property to the path of a JAAS Login Configuration file containing appropriate configuration for a Kerberos LoginModule, e.g:</p>
+
+<pre><code>-Djava.security.auth.login.config=/path/to/login.config
+</code></pre>
+
+<p>An example login.config configuration file might look like the following:</p>
+
+<pre><code>amqp-jms-client {
+    com.sun.security.auth.module.Krb5LoginModule required
+    useTicketCache=true;
+};
+</code></pre></li>
+</ol>
+
+<p>The precise configuration used will depend on how you wish the credentials to be established for the connection, and the particular LoginModule in use. For details of the Sun/Oracle Krb5LoginModule, see <a href="https://docs.oracle.com/javase/8/docs/jre/api/security/jaas/spec/com/sun/security/auth/module/Krb5LoginModule.html">https://docs.oracle.com/javase/8/docs/jre/api/security/jaas/spec/com/sun/security/auth/module/Krb5LoginModule.html</a>. For details of the IBM Java 8 Krb5LoginModule, see <a href="https://www.ibm.com/support/knowledgecenter/en/SSYKE2_8.0.0/com.ibm.java.security.api.doc/jgss/com/ibm/security/auth/module/Krb5LoginModule.html">https://www.ibm.com/support/knowledgecenter/en/SSYKE2_8.0.0/com.ibm.java.security.api.doc/jgss/com/ibm/security/auth/module/Krb5LoginModule.html</a>.</p>
+
+<p>It is possible to configure the LoginModule to establish the credentials to use for the Kerberos process, such as specifying a Principal and whether to use an existing ticket cache or keytab. If however the LoginModule configuration does not provide means to establish all necessary credentials, it may then request and be passed the username and/or password values from the client Connection object if they were either supplied when creating the Connection using the ConnectionFactory or previously configured via its URI options.</p>
+
+<p>Note that Kerberos is only only supported for authentication purposes. Use SSL/TLS connections for encryption.</p>
+
+<p>The following URI options can be used to influence the Kerberos authentication process:</p>
+
+<ul>
+<li><strong>sasl.options.configScope</strong> The Login Configuration entry name to use when authenticating. Default is "amqp-jms-client".</li>
+<li><strong>sasl.options.protocol</strong> The protocol value used during the GSSAPI SASL process. Default is "amqp".</li>
+<li><strong>sasl.options.serverName</strong> The serverName value used during the GSSAPI SASL process. Default is the server hostname from the connection URI.</li>
+</ul>
+
+<p>Similar to the "amqp." and "transport." options detailed previously, these options must be specified on a per-host basis or as all-host nested options in a failover URI.</p>
+
+
+          <hr/>
+
+          <ul id="-apache-navigation">
+            <li><a href="http://www.apache.org/">Apache</a></li>
+            <li><a href="http://www.apache.org/licenses/">License</a></li>
+            <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+            <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li>
+            <li><a href="/security.html">Security</a></li>
+            <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li>
+          </ul>
+
+          <p id="-legal">
+            Apache Qpid, Messaging built on AMQP; Copyright &#169; 2015
+            The Apache Software Foundation; Licensed under
+            the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
+            License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+            Proton, Apache, the Apache feather logo, and the Apache Qpid
+            project logo are trademarks of The Apache Software
+            Foundation; All other marks mentioned may be trademarks or
+            registered trademarks of their respective owners
+          </p>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/releases/qpid-jms-0.30.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-0.30.0/index.html b/content/releases/qpid-jms-0.30.0/index.html
new file mode 100644
index 0000000..8f27020
--- /dev/null
+++ b/content/releases/qpid-jms-0.30.0/index.html
@@ -0,0 +1,210 @@
+<!DOCTYPE html>
+<!--
+ -
+ - 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.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+  <head>
+    <title>Qpid JMS 0.30.0 - Apache Qpid&#8482;</title>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+    <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+    <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+    <script type="text/javascript">var _deferredFunctions = [];</script>
+    <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+    <!--[if lte IE 8]>
+      <link rel="stylesheet" href="/ie.css" type="text/css"/>
+      <script type="text/javascript" src="/html5shiv.js"></script>
+    <![endif]-->
+
+    <!-- Redirects for `go get` and godoc.org -->
+    <meta name="go-import"
+          content="qpid.apache.org git https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
+    <meta name="go-source"
+          content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+  </head>
+  <body>
+    <div id="-content">
+      <div id="-top" class="panel">
+        <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+        <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a>
+
+        <ul id="-global-navigation">
+          <li><a id="-logotype" href="/index.html">Apache Qpid<sup>&#8482;</sup></a></li>
+          <li><a href="/documentation.html">Documentation</a></li>
+          <li><a href="/download.html">Download</a></li>
+          <li><a href="/discussion.html">Discussion</a></li>
+        </ul>
+      </div>
+
+      <div id="-menu" class="panel" style="display: none;">
+        <div class="flex">
+          <section>
+            <h3>Project</h3>
+
+            <ul>
+              <li><a href="/overview.html">Overview</a></li>
+              <li><a href="/components/index.html">Components</a></li>
+              <li><a href="/releases/index.html">Releases</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Messaging APIs</h3>
+
+            <ul>
+              <li><a href="/proton/index.html">Qpid Proton</a></li>
+              <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+              <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Servers and tools</h3>
+
+            <ul>
+              <li><a href="/components/broker-j/index.html">Broker-J</a></li>
+              <li><a href="/components/cpp-broker/index.html">C++ broker</a></li>
+              <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Resources</h3>
+
+            <ul>
+              <li><a href="/dashboard.html">Dashboard</a></li>
+              <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li>
+              <li><a href="/resources.html">More resources</a></li>
+            </ul>
+          </section>
+        </div>
+      </div>
+
+      <div id="-search" class="panel" style="display: none;">
+        <form action="http://www.google.com/search" method="get">
+          <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+          <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/>
+          <button type="submit">Search</button>
+          <a href="/search.html">More ways to search</a>
+        </form>
+      </div>
+
+      <div id="-middle" class="panel">
+        <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li>Qpid JMS 0.30.0</li></ul>
+
+        <div id="-middle-content">
+          <h1 id="qpid-jms-0300">Qpid JMS 0.30.0</h1>
+
+<p>Qpid JMS is a complete <a href="http://en.wikipedia.org/wiki/Java_Message_Service">Java Message Service</a> 2.0 client built
+using the <a href="/proton/index.html">Qpid Proton</a> protocol engine.</p>
+
+<p>For a detailed list of the changes in this release, see the <a href="release-notes.html">release
+notes</a>.</p>
+
+<h2 id="download">Download</h2>
+
+<p>It's important to <a href="/download.html#verify-what-you-download">verify the
+integrity</a> of the
+files you download.</p>
+
+<table>
+<thead>
+<tr>
+  <th>Content</th>
+  <th>Download</th>
+  <th>Verify</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+  <td>Qpid JMS binaries</td>
+  <td><a href="http://archive.apache.org/dist/qpid/jms/0.30.0/apache-qpid-jms-0.30.0-bin.tar.gz">apache-qpid-jms-0.30.0-bin.tar.gz</a></td>
+  <td><a href="https://archive.apache.org/dist/qpid/jms/0.30.0/apache-qpid-jms-0.30.0-bin.tar.gz.asc">ASC</a>, <a href="https://archive.apache.org/dist/qpid/jms/0.30.0/apache-qpid-jms-0.30.0-bin.tar.gz.md5">MD5</a>, <a href="https://archive.apache.org/dist/qpid/jms/0.30.0/apache-qpid-jms-0.30.0-bin.tar.gz.sha512">SHA512</a></td>
+</tr>
+<tr>
+  <td>Qpid JMS source code</td>
+  <td><a href="http://archive.apache.org/dist/qpid/jms/0.30.0/apache-qpid-jms-0.30.0-src.tar.gz">apache-qpid-jms-0.30.0-src.tar.gz</a></td>
+  <td><a href="https://archive.apache.org/dist/qpid/jms/0.30.0/apache-qpid-jms-0.30.0-src.tar.gz.asc">ASC</a>, <a href="https://archive.apache.org/dist/qpid/jms/0.30.0/apache-qpid-jms-0.30.0-src.tar.gz.md5">MD5</a>, <a href="https://archive.apache.org/dist/qpid/jms/0.30.0/apache-qpid-jms-0.30.0-src.tar.gz.sha512">SHA512</a></td>
+</tr>
+</tbody>
+</table>
+
+<p>The client is also available <a href="/maven.html">via Maven</a>.</p>
+
+<h2 id="documentation">Documentation</h2>
+
+<div class="two-column">
+
+<ul>
+<li><a href="http://docs.oracle.com/javaee/7/api/javax/jms/package-summary.html">API reference</a></li>
+<li><a href="https://github.com/apache/qpid-jms/tree/0.30.0/qpid-jms-examples">Examples</a></li>
+<li><a href="docs/index.html">Configuration</a></li>
+<li><a href="building.html">Building Qpid JMS</a></li>
+</ul>
+
+</div>
+
+<h2 id="more-information">More information</h2>
+
+<ul>
+<li><a href="http://archive.apache.org/dist/qpid/jms/0.30.0">All release artefacts</a></li>
+<li><a href="https://issues.apache.org/jira/issues/?jql=project+%3D+QPIDJMS+AND+fixVersion+%3D+%270.30.0%27+AND+resolution+%3D+%27fixed%27+ORDER+BY+priority+DESC">Resolved issues in JIRA</a></li>
+<li><a href="https://git-wip-us.apache.org/repos/asf/qpid-jms.git/tree/refs/tags/0.30.0">Source repository tag</a></li>
+</ul>
+
+<script type="text/javascript">
+  _deferredFunctions.push(function() {
+      if ("0.30.0" === "0.30.0") {
+          _modifyCurrentReleaseLinks();
+      }
+  });
+</script>
+
+
+          <hr/>
+
+          <ul id="-apache-navigation">
+            <li><a href="http://www.apache.org/">Apache</a></li>
+            <li><a href="http://www.apache.org/licenses/">License</a></li>
+            <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+            <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li>
+            <li><a href="/security.html">Security</a></li>
+            <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li>
+          </ul>
+
+          <p id="-legal">
+            Apache Qpid, Messaging built on AMQP; Copyright &#169; 2015
+            The Apache Software Foundation; Licensed under
+            the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
+            License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+            Proton, Apache, the Apache feather logo, and the Apache Qpid
+            project logo are trademarks of The Apache Software
+            Foundation; All other marks mentioned may be trademarks or
+            registered trademarks of their respective owners
+          </p>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/releases/qpid-jms-0.30.0/release-notes.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-0.30.0/release-notes.html b/content/releases/qpid-jms-0.30.0/release-notes.html
new file mode 100644
index 0000000..d6b7cc9
--- /dev/null
+++ b/content/releases/qpid-jms-0.30.0/release-notes.html
@@ -0,0 +1,171 @@
+<!DOCTYPE html>
+<!--
+ -
+ - 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.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+  <head>
+    <title>Qpid JMS 0.30.0 Release Notes - Apache Qpid&#8482;</title>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+    <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+    <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+    <script type="text/javascript">var _deferredFunctions = [];</script>
+    <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+    <!--[if lte IE 8]>
+      <link rel="stylesheet" href="/ie.css" type="text/css"/>
+      <script type="text/javascript" src="/html5shiv.js"></script>
+    <![endif]-->
+
+    <!-- Redirects for `go get` and godoc.org -->
+    <meta name="go-import"
+          content="qpid.apache.org git https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
+    <meta name="go-source"
+          content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+  </head>
+  <body>
+    <div id="-content">
+      <div id="-top" class="panel">
+        <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+        <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a>
+
+        <ul id="-global-navigation">
+          <li><a id="-logotype" href="/index.html">Apache Qpid<sup>&#8482;</sup></a></li>
+          <li><a href="/documentation.html">Documentation</a></li>
+          <li><a href="/download.html">Download</a></li>
+          <li><a href="/discussion.html">Discussion</a></li>
+        </ul>
+      </div>
+
+      <div id="-menu" class="panel" style="display: none;">
+        <div class="flex">
+          <section>
+            <h3>Project</h3>
+
+            <ul>
+              <li><a href="/overview.html">Overview</a></li>
+              <li><a href="/components/index.html">Components</a></li>
+              <li><a href="/releases/index.html">Releases</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Messaging APIs</h3>
+
+            <ul>
+              <li><a href="/proton/index.html">Qpid Proton</a></li>
+              <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+              <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Servers and tools</h3>
+
+            <ul>
+              <li><a href="/components/broker-j/index.html">Broker-J</a></li>
+              <li><a href="/components/cpp-broker/index.html">C++ broker</a></li>
+              <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Resources</h3>
+
+            <ul>
+              <li><a href="/dashboard.html">Dashboard</a></li>
+              <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li>
+              <li><a href="/resources.html">More resources</a></li>
+            </ul>
+          </section>
+        </div>
+      </div>
+
+      <div id="-search" class="panel" style="display: none;">
+        <form action="http://www.google.com/search" method="get">
+          <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+          <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/>
+          <button type="submit">Search</button>
+          <a href="/search.html">More ways to search</a>
+        </form>
+      </div>
+
+      <div id="-middle" class="panel">
+        <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-jms-0.30.0/index.html">Qpid JMS 0.30.0</a></li><li>Qpid JMS 0.30.0 Release Notes</li></ul>
+
+        <div id="-middle-content">
+          <h1 id="qpid-jms-0300-release-notes">Qpid JMS 0.30.0 Release Notes</h1>
+
+<p>Qpid JMS is a complete <a href="http://en.wikipedia.org/wiki/Java_Message_Service">Java Message Service</a> 2.0 client built
+using the <a href="/proton/index.html">Qpid Proton</a> protocol
+engine.</p>
+
+<p>For more information about this release, including download links and
+documentation, see the <a href="index.html">release overview</a>.</p>
+
+<h2 id="new-features-and-improvements">New features and improvements</h2>
+
+<ul>
+<li><a href="https://issues.apache.org/jira/browse/QPIDJMS-361">QPIDJMS-361</a> - request mutual auth for GSSAPI/Kerberos SASL</li>
+<li><a href="https://issues.apache.org/jira/browse/QPIDJMS-363">QPIDJMS-363</a> - update to proton-j 0.26.0</li>
+</ul>
+
+<h2 id="bugs-fixed">Bugs fixed</h2>
+
+<ul>
+<li><a href="https://issues.apache.org/jira/browse/QPIDJMS-360">QPIDJMS-360</a> - empty SASL challenges should get processed</li>
+</ul>
+
+<h2 id="tasks">Tasks</h2>
+
+<ul>
+<li><a href="https://issues.apache.org/jira/browse/QPIDJMS-362">QPIDJMS-362</a> - update Netty to 4.1.22</li>
+</ul>
+
+
+          <hr/>
+
+          <ul id="-apache-navigation">
+            <li><a href="http://www.apache.org/">Apache</a></li>
+            <li><a href="http://www.apache.org/licenses/">License</a></li>
+            <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+            <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li>
+            <li><a href="/security.html">Security</a></li>
+            <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li>
+          </ul>
+
+          <p id="-legal">
+            Apache Qpid, Messaging built on AMQP; Copyright &#169; 2015
+            The Apache Software Foundation; Licensed under
+            the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
+            License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+            Proton, Apache, the Apache feather logo, and the Apache Qpid
+            project logo are trademarks of The Apache Software
+            Foundation; All other marks mentioned may be trademarks or
+            registered trademarks of their respective owners
+          </p>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/85243e15/content/releases/qpid-jms-0.4.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-0.4.0/index.html b/content/releases/qpid-jms-0.4.0/index.html
index 3e8059e..12c7411 100644
--- a/content/releases/qpid-jms-0.4.0/index.html
+++ b/content/releases/qpid-jms-0.4.0/index.html
@@ -116,7 +116,7 @@ https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
         <div id="-middle-content">
           <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.4.0" === "0.29.0") {
+      if ("0.4.0" === "0.30.0") {
           _modifyCurrentReleaseLinks();
       }
   });


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