I'm uncomfortable with the use of inheritance to avoid the extra field declarations in `StreamDeploymentListener` and `JobDeploymentListener`. It appears that the only purpose of `DeploymentHandler` is to provide a place to declare the fields that both deployment listeners have in common.

Just my opinion - I believe inheritance should be used sparingly; only in cases where there is a strict "is a" relationship and the behavior (as opposed to the data) in the base class is defined to where the [Liskov Substitution principal](http://stackoverflow.com/questions/56860/what-is-the-liskov-substitution-principle) can be applied.