• Type: New Feature New Feature
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: Backlog
    • Component/s: Server
    • Labels:
    • Environment:
      Std. ESME environment


      I see the following requirements for the plugin support:

      Plugins enable process and collaboration specific additional functions on top of the ESME kernel. They are implemented in Java, located on the server and are to be provided as jar-files to ease packaging and deployment handling.
      (--> Not sure how packaging for Scala works)


      • Plugins are listeners to events coming from the ESME kernel, such as MESSAGE_SENT, MESSAGE_RECEIVED, TAG_CREATED, USER_CREATED, USER_LOGGED_ON, USER_LOGGED_OFF. (more to be added)
      • A plugin can be registered to multiple events.
      • Plugins can not rely on assumptions in which order which plugin processes the incoming events. (this would require a prioritization handling for plugins)
      • Plugins performs activity initiated on the ESME server, they communicate with endusers via messages.
      • By default, plugins use the same database as ESME, they can link with database entries from the kernel tables, but do not modify or delete them.


      • Plugins are to be placed for deployment in a specific directory in the ESME directory structure (to be defined).
      • Plugins get registered and subscribed to the defined events during ESME startup,
      • Deployment should be supported by the plugin through special methods (e.g. "initializePlugin", "removePlugin")

      Settings of properties:

      • Plugins can have general (=not user-specific) and user-specific settings.
      • The plugin settings are collected in a specific database table in the ESME kernel during ESME runtime.
      • Initial plugin settings are transported to ESME via specific files holding the property values.
      • Plugin settings are set either through an admin/user profile interface or through the REST interface.



          • Assignee:
            Daniel Koller
          • Votes:
            0 Vote for this issue
            0 Start watching this issue


            • Created: