Yummy... I just found that using a bit of E4X it's possible to adjust the channel definitions that are defined in the services-config.xml file dynamically after your SWF has been compiled. This way you can easily switch endpoints on the fly during development :)
What happens behind the scenes when you compile your SWF using the compiler flag -services=services-config.xml is that parts of the service-config.xml (and the linked *.xml files e.g. data-management-config.xml) get compiled into the application SWF as native XML. This chunk of data is stored in the static xml property of the (undocumented) mx.messaging.config.ServerConfig class. Modifying the data before any service call is made ensures that your modifications will be respected :)
Here's a little snippet how to modify the endpoint URI of the channel "my-rtmp" for example:
XML(ServerConfig.xml.channels.channel.(@id==
"my-rtmp")[0]).endpoint.@uri =
"rtmp://dev:2048";
Dirk.
The following is a non XML equivilent.
mx.messaging.config.ServerConfig.getChannel("my-rtmp", false).uri)