An application to manage dead lettered messages across multiple brokers
To configure the project for IntelliJ run:
./gradlew idea
To create the relevant Mongo Roles and Users execute the following (this assumes Mongo is running locally on port 27017 and an admin
user exists with password Passw0rd
. These values can be overridden using environment variables, see mongo-queue-triage-roles.sh or mongo-queue-triage-users.sh):
./gradlew createUsersAndRoles
To test all the modules run the following commands:
./gradlew test
The web component-test will run against a local firefox. There are a number of options that can be configuration by adding passing in parameters to the build.
browser
Execute the selenium tests against a given browser
./gradlew test -Pbrowser=firefox|phantomjs
remote_url
Can be used to execute the selenium tests against a remote selenium instance
./gradlew test -Pselenium.remote_url=http://localhost:4444/wd/hub
To run the queue-triage-core-server
from the command line run:
./start.sh core
To run the queue-triage-web-server
from the command line run:
./start.sh ldap
./start.sh web
Your organisation may not allow direct access to the Central Maven repository (https://repo1.maven.org/maven2), if this is the case you will need to create a second "local"
configuration file (filename: ~/.gradle/init.gradle
) in the project's root directory and the following snippet to the init.gradle
file:
allprojects {
repositories {
maven {
url "https://repo.internal.com/maven2"
}
}
}
where https://repo.internal.com/maven2 is your internal local repo location.
NOTE: This file should not be under version-control.
The axion-release plugin is used to apply semantic versioning to the project after successful builds. You can view more detailed documentation on their website but here is the TL;DR
To inspect what version your current codebase is running against:
./gradlew currentVersion
To release a new version of the committed and pushed code, then execute:
./gradlew release
If you'd like to test these options out, then you can run in dry-run mode:
./gradlew release -Prelease.dryRun
Message Classification is really the core of the queue-triage application.
Once a messages has been Dead-Lettered by an Application, queue triage:
For more information see README.md in core/message-classification