7 - Development & Automation
We host a Nexus Repository (https://nexus.thepluginpeople.com/#browse/browse:ppl-public) containing API builds. If you don't see one you need, please ask support@thepluginpeople.com and we'll make historic ones available.
Summary
This page explains how additional development can be done by customers to further customise JEMH and also test your configurations.
Developing for JEMH
JEMH has been designed to be as versatile as possible, enabling customers to implement custom behaviour as needed through Extension Points. While the ability to develop extensions to JEMH is awesome, there are drawbacks when add-on inter-dependencies exist. It is quite hard to get every install/upgrade scenario covered. If needed, custom development of extensions by us for inclusion within JEMH can be done through sponsorship, where the solution is generic enough to warrant it.
Customer Acceptance Testing / Integration Testing
With JEMH 2.4.1 we finally make a release with full round trip integration testing. Thanks to our friends at Adaptavist and their atlassian-arquillian-containers project, we are able to write deep integration tests in Java, deploy Profiles, run Test Cases and make assertions over created issues and even of the actual content of notifications!
Integration testing for product quality and regression testing is one thing, but we thought that some of our Java-savvy customers might like the ability to define concrete JEMH acceptance tests for their business. End-users can validate expected outcome on a Test instance, which can then be re-validated when upgrading JEMH. This then enables any discrepancies to be caught before any production release occurs. What's even more awesome is that customers could then provide not only the usual Profile and Test Case files, but also Java Integration Test source, enabling us to get a lot closer to resolving what changed.
Care must be taken when running tests against a production instance, it is customer responsibility to understand the impact of running tests in a Production environment (tests routinely delete things, throw away notifications in the Jira mail queue etc.).
Learn more about Customer Acceptance Testing
Test Harness capabilities
Auditing
enable
Blacklisting
create bySubject, (image) byURL, bySize, byFingerpint
initDefaults
deleteAll
EventListener
enable
setEmailCustomFields (enables auto provision via testing)
create EventListener Project Mapping
update Project Mapping (event template selection)
getCustomEvent
DirectiveSets
createDirectiveSetEntry, removeAllDirectiveSets, removeAllDirectiveSetLinks, getAllDirectiveSets
SMTP MailServer
createMailServer, pushMailQueue, sendTestEmail, clearMailQueue
Mail
getContent(message), get specific (text/html) content from message
getLinkHref(message), get a link url from within html payload (uses jsoup to manipulate html doc)
Profiles
installProfile, installProfileGroup
getProfileById, getProfileByKey, getProfileGroupByKey
deleteProfileById
updateProfile NOTE: Profile update is very limited, and will be expanded as time permits, requests for updates should be made through https://thepluginpeople.atlassian.net
TemplateSets
installTemplateSet, installTemplateSet(eventId)
deleteAllTemplateSets
countDirectiveSetLinks
updateTemplate
Test Cases
installTestCase, runMessage, runTestCase
Web
getUrlResponse(href)
Automation
Customers have expressed a desire to monitor JEMH properties in various ways. JMX seems appropriate for this, and will be part of an upcoming release.