OK, So I will revert the latest patch then try to keep singleton.

Perhaps the below issues would be left.

* Now the number of sending queue threads can be initialized at instance creation only. On current implementation, its instance cannot be removed until Jenkins is down. It means that Jenkins must be restarted in order to update actual number of threads.

* It is difficult to pass new config instance to proper instance. Because some implementation of some interface classes are needed. Plugin level settings doesn't have almost ones which is needed to implement interface functions.

So I would create a patch which copies some of plugin level settings into all server settings.