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.