Apache Qpid Broker-J
|Travis CI Build|
|Apache Jenkins CI Build|
The Apache Qpid Broker-J is a powerful open-source message broker.
- Supports Advanced Message Queuing Protocol (AMQP) versions 0-8, 0-9, 0-91, 0-10 and 1.0
- 100% Java implementation
- Authentication options include for LDAP, Kerberos, O-AUTH2, TLS client-authentication and more
- Message storage options include Apache Derby, Oracle BDB JE, and Generic JDBC
- REST and AMQP 1.0 management API
- Web-management console
- Plug-able architecture
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
Running the tests
Maven profiles are used to run tests for the supported protocols and storage options. Profile names follow the form java-store.n-n, where store signifies the storage module and n-n the AMQP protocol version number.
For store, the options include:
- bdb - Oracle BDB JE
- dby - Apache Derby
- mms - an in-memory store principally used for testing.
If no profile is explicitly selected, java-mms-1.0 is activated by default.
To activate a BDB with AMQP 1.0 protocol use:
mvn verify -P java-bdb.1-0
To see all the available profiles.
When activating AMQP 0-8..0-10 profiles, it is also necessary to pass the system property -DenableAmqp0-x
mvn verify -P java-dby.0-9-1 -DenableAmqp0-x
Perform a subset of tests on the packaged release artifacts without installing:
mvn verify -Dtest=TestNamePattern* -DfailIfNoTests=false
Integration tests except for protocol tests are disabled by default. In order to run all integration tests, they need to be enabled with a flag -DskipITs=false, for example
mvn verify -DskipITs=false
Execute the tests and produce code coverage report:
mvn clean test jacoco:report
To produce broker assemblies, use:
mvn clean package -DskipTests
The broker distribution assemblies will then be found beneath:
Running the Broker
For full details, see the Getting Started documentation in the docbook documentation mentioned below. For convenience brief instructions are repeated here.
Start the Broker
From an assembly on the command line
Expand the assembly produced by the Maven package lifecycle stage, and the execute the qpid-server script or batch file.
tar xvfz apache-qpid-broker-j/target/apache-qpid-broker-j-x.x.x-SNAPSHOT-bin.tar.gz ./java-broker/x.x.x/qpid-server
Expand zip apache-qpid-broker-j/target/apache-qpid-broker-j-x.x.x-SNAPSHOT-bin.zip .\java-broker\x.x.x\qpid-server.bat
From an IDE
These instructions assume Intellij.
- Within the IDE import the top level pom.xml file as a project.
- Create a new Application run configuration called "Qpid Broker"
- Classname org.apache.qpid.server.Main
- Classpath of module: qpid-broker
- Save the new run configuration.
- Go into the module settings of qpid-broker and add an additional classpath entry pointing to the dojo-x.x.x-distribution.zip. It is easiest to point to a location in the local maven repo e.g. ~/.m2/repository/org/dojotoolkit/dojo/x.x.x/dojo-x.x.x-distribution.zip. (This manual step is required to workaround https://issues.apache.org/jira/browse/MNG-5567).
Connecting to the Broker
By default, the Broker listens on port 5672 for AMQP and 8080 for http management. The default username 'guest' and password 'guest'.
To get to the management console, point a browser to http://localhost:8080
Documentation (in docbook format) is found beneath the doc module.