<?xml version="1.0"?>
<!--

 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.

-->

<chapter xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="JMS-Client-0-8-Introduction">
  <title>Introduction</title>
  <para>Apache Qpid JMS AMQP 0-8/0-9-1/0-10 is an implementation of <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="${oracleJmsSpec}">JMS specification
      1.1</link>. It utilises an <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="${amqpSrc}">AMQP</link> transport layer for the performing of messaging operations.
    The client is intended to be used for writing of JMS compatible messaging applications. Such
    applications can send and receive messages via any AMQP-compatible brokers like RabbitMQ,
    Apache Qpid Broker-J which supports AMQP protocols 0-8, 0-9, or 0-9-1.</para>
  <para>The Client hides the details of AMQP transport implementation behind the JMS API.
    Thus, the developers need only to be familiar with JMS API in order to use the client. However,
    the knowledge of the basic concepts of AMQP protocols can help developers in writing reliable
    and high-performant messaging application. </para>
  <important>
    <title>Using the Client with 0-10</title>
    <para>This book documents the behaviour of the Apache Qpid JMS client for AMQP 0-9-1/0-10 when used with the AMQP
      protocols <emphasis>0-8, 0-9, and 0-9-1</emphasis> only. For behaviour when using the Client
      with AMQP 0-10 protocol, please refer to <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="${qpidJmsClient010Book}">Using AMQP 0-10 with the Apache Qpid JMS client for AMQP 0-9-1/0-10</link>.</para>
  </important>

</chapter>
