Hi Jason
I'm looking to dynamically change the configuration of Synapse while it is running
How exactly are you planning to do this? Could you elaborate on the proposed approach?
The "Extending Synapse" article on the Synapse main page notes that it is recommended that custom mediator implementations do not modify the SynapseConfiguration as it is shared system wide, but this also seems to imply that it could be changed.
Well it "could" - but a mediator should *not* try to update the configuration - as it is just a part of that configuration itself, and should only be worried about how it performs its message mediation, against the current message that was passed into it
I also had a quick peek at the WSO2 ESB, since it is built on Synapse, and it seems to make changes by calling into the SynapseConfiguration.
Yes, we do this via a set of "Admin" web services that we deploy to the parent Axis2 engine, that has access to the Synapse configuation. Usually, I do not try to promote the WSO2 ESB on any Apache mailing list - but since you have directly asked about it - you may view, study or re use the code - or just use it as it is as the WSO2 ESB, without trying to reinvent it all over again. Its under the ASL v2 license and the code, JIRA and mailing lists public too.
However, digging into the implementation, I see no indication of any form of thread synchronization in SynapseConfiguration, nor anywhere it is referenced. This seems to imply that changing the configuration while running would not be thread safe. Am I missing the synchronization mechanism?
Right now we have a single user model for administration from that implementation. We will address any such issue soon as we integrate with user management functionality in the near future

asankha

Reply via email to