Skip to end of metadata
Go to start of metadata
This page is referring to agent plugins only. This page does not provide information about server plugins.

Better Plugin Development Tooling

Despite the detailed documentation of the many aspects of agent plugin development there are a lot of places that the novice RHQ plugin developer can still go astray. To address these barriers to robust plugin development and maintenance, enhancements in the following focus areas will help:

  • Plugin Development
    • More graphical tooling around plugin development specifically to
      • lower the barrier to entry for new management products
      • shorten the feedback loop during plugin development
  • Plugin Testing
    • documenting some best practices and a reference implementation for testing plugins
  • Plugin Versioning(Development/Runtime)
    • Documenting best practices for Deployment/Runtime versioning of plugins

Target Audience

Typically plugin development documentation has focused on java and maven generated plugins. While this still describes the bulk of current RHQ plugins, this tooling efforts need to take into account jar less and non-java type less plugins, both of which are now possible. In both cases the java and maven environment assumptions may no longer be valid for all new plugin developers. New tooling artifacts should strive to abstractly describe the plugin goals and to automate plugin artifact generation without necessarily requiring a java operating environment.

Plugin Development - Graphical Tooling

Specifically around graphical plugin development tooling, the following seem like good enhancement areas to start in:

  • graphical plugin descriptor creation. This can be a standalone or integrated part of a Swing|Eclipse plugin|Forge application.
  • graphical maven plugin generator. The current command line version works to create an initial setup but a graphical wizard would be vastly more helpful.
  • graphical integration with both standalone plugin container AND lightweight configuration editor for faster plugin development/testing. Such a graphical tool would likely have an RHQ/JON installation as a dependency to ease dependency/setup/requirements.
  • Additionally you'd want to support the ability of the developer to insert sample/mock values to simulate how the plugin code will respond.
  • a few short videos/wink demos showing how to develop i)java plugin ii)java plugins utilizing scripting iii)non-java plugin

Current Tasks

Legend

  • Done -
  • In Progress -
  • Not Started -

The source with the following enhancements is available in git remote branch for now.

  • Graphical plugin descriptor generation -
  • Graphical maven plugin generator -
    • Swing wizard as front end to basic plugin generator supporting more options. -
  • Graphical standalone management application to be used as backbone of several java and non-java RHQ plugins.
    • Creation of graphical standalone management application that demonstrates configuration, monitoring and operations.
      • Create Swing standalone application to
        • Display/configure several management configuration details in real time - .
        • Display/configure management server metric details in real time - .
        • Display/configure management server operation details in real time - .
        • Expose management server configuration|metrics|operation details via json - .
        • Expose management server configuration|metrics|operation details via http+json - .
        • Document standalone management behavior, assumptions, expected usage, limitations of RHQ snapshot 30s monitoring window, etc. -
        • Build simple rhq plugin using json interface
          • Document steps to discovery, identification of plugin details, etc.
        • Build simple rhq plugin using http+json interface
      • Build java based plugin for Swing application -
        • Build wink demo -
      • Build json based plugin for Swing application -
          • Build wink demo -
      • Build eclipse plugin to coordinate - **** plugin descriptor generation
        • maven project generation(java based)
        • configure eclipse plugin dependencies i)development build or ii)release build
        • startup standalone plugin container for quick deployment
        • startup modified configuration editor+resource view pages for quick viewing of plugin state
      • TODO

Plugin Testing - Best Practices

  • TODO

Plugin Versioning - Best Practices

  • TODO
Labels:
None
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.