Details

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

      Description

      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)

      Structure/Architecture:

      • 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.

      Deployment:

      • 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.

        Activity

        Daniel Koller created issue -
        Dick Hirsch made changes -
        Field Original Value New Value
        Fix Version/s Release 1.1 [ 12314285 ]
        Ethan Jewett made changes -
        Component/s Server [ 12312635 ]

          People

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

            Dates

            • Created:
              Updated:

              Development