tree b8acc6643db7cf30f867e27281815c9359f968e6
parent e114e60b578fe27fe9ec4a01dfe48be5868cc8ae
author Christian Aistleitner <christian@quelltextlich.at> 1370014303 +0200
committer Christian Aistleitner <christian@quelltextlich.at> 1371476158 +0200

Add skeleton action controller unifying event handling

The approach to handling events comes with several short-comings:

* Event handling is currently separated over several listeners. Some
  allow to freely formulate preconditions (e.g.: changing an issue's
  state), other listeners had again and again introduced further
  configuration settings to allow setting fine controlled verbosity
  (linking to change/patch set), other listeners can only be turned
  on/off (e.g.: linking to gitweb). However, for all of those actions
  could benefit from freely formulated preconditions.

* The current transition format does not allow to different sets of
  conditions to fire the same action.

* The current approach to associating an issue to a patch set does not
  allow disambiguate between an issue being referenced in a commit
  message's subject line, its body, or its footer. Let alone add
  comments based on that.

* The current approach does not allow easily modify the text of the
  added its comments.

As addressing all those needs goes beyond the current event handling
design, we add an action controller and work towards replacing the old
design.

The action controller will be backed by a single, common rule base. It
will allow for different rules to fire the same action, provide was to
disambiguate between where the issue has been referenced, and allow to
modify standard text for its comments using Velocity templates.

Change-Id: I8c722f9957f1e44133a93332e71bf56deb56d6ba
