Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Add details about configuring the annotation processor.

Table of Contents

Source

Firstly, check out the source from the subversion reporsitory or the git mirror.

...

Profile NameDescription
java-mms.0-10Test profile to use AMQP 0-10, the Memory Message Store and the Java Broker for system testing
java-mms.0-9-1Test profile to use AMQP 0-9-1, the Memory Message Store and the Java Broker for system testing
java-mms.0-9Test profile to use AMQP 0-9, the Memory Message Store and the Java Broker for system testing
java-bdb.0-10Test profile to use AMQP 0-10, the BDB Message Store and the Java Broker for system testing
java-bdb.0-9-1Test profile to use AMQP 0-9-1, the BDB Message Store and the Java Broker for system testing
java-bdb.0-9Test profile to use AMQP 0-9, the BDB Message Store and the Java Broker for system testing
java-dby-mem.0-10Test profile to use AMQP 0-10, the Derby In-Memory Message Store and the Java Broker for system testing
java-dby-mem.0-9-1Test profile to use AMQP 0-9-1, the Derby In-Memory Message Store and the Java Broker for system testing
java-dby-mem.0-9Test profile to use AMQP 0-9, the Derby In-Memory Message Store and the Java Broker for system testing
java-dby.0-10Test profile to use AMQP 0-10, the Derby Message Store and the Java Broker for system testing
java-dby.0-9-1Test profile to use AMQP 0-9-1, the Derby Message Store and the Java Broker for system testing
java-dby.0-9Test profile to use AMQP 0-9, the Derby Message Store and the Java Broker for system testing
java-json.0-9-1Test profile to use AMQP 0-9-1, the Json Configuration Store Derby Message Store and the Java Broker for system testing
java-json.0-10Test profile to use AMQP 0-10, the Json Configuration Store Derby Message Store and the Java Broker for system testing
cppTest profile to use AMQP 0-10 and the C++ for system testing
apache-releaseRelease profile for performing Apache software releases
dependency-checkDependency check to validate project licensing ahead of release
joramtestsProfile used to execute the Joram JMS test suite (more below).
tckProfile used to execute the JMS TCK (more below)

IDE setup

Nowadays, most of the team chose IntelliJ.

...

Maven Build Output

By default the build output for a maven module will appear in the modules "target" directory:

...

Todo.  Describe the running of the AMQP 1.0 test suite using the swigged binding/proton-c.  See the https://builds.apache.org/view/M-R/view/Qpid/job/Qpid-Python-Java-Test/.

IDE integration

Nowadays, most of the team chose IntelliJ.

IntelliJ 

To setup the project, simply import the POM that resides at the top level.

Configuring the Annotation Processor

The build uses Java Annotation Processors to automatically generate code for things such as factories.  Intellij's annotation processor defaults don't play nicely with Maven.  A symptom of this is missing implementation classes when you try and start the Broker.

Go into "Preferences" -> "Annotation Processors"

  • Ensure that the default profile includes all modules.
  • Ensure that Enable Annotation Processing is ticked.
  • Ensure that the Production Source Directory and Test Source Directory match that used by Maven
    • target/generated-sources/annotations
    • target/generated-test-sources/test-annotations
  • The option Obtain processors from project classpath does not seem to work.  As a workaround, you may use Processor Path specify the path to the codegen's JAR
    • /path/to/home/.m2/repository/org/apache/qpid/qpid-broker-codegen/6.2.0-SNAPSHOT/qpid-broker-codegen-6.2.0-SNAPSHOT.jar

This workaround does mean that you need to remember to mvn install each time the codegen project is changed, and update the version number each time the version number bumps.

Running the Broker within Intellij

TODO

Running System Tests within Intellij

TODO