Okay, a bit more discussion on the team, and this is looking like the new direction. You would have several options, including some shorthand:
<listeners>
<camel-gateway name="..." from="foo://bar" />
</listeners>
<listeners>
<camel-gateway name="...">
<from uri="foo://bar" />
<from uri="foo://bar" />
</camel-gateway>
</listeners>
<listeners>
<camel-gateway name="..." from="foo://bar">
<from uri="foo://bar" />
<from uri="foo://bar" />
</camel-gateway>
</listeners>
<providers>
<camel-provider name="...">
<camel-bus busid="xxx" from="foo://bar">
</camel-provider>
</providers>
<services>
<listeners>
<camel-gateway name="..." busidref="xxx" />
</listeners>
<actions>...</actions>
</services>
<providers>
<camel-provider name="...">
<camel-bus busid="xxx">
<from uri="foo://bar" />
<from uri="foo://bar" />
</camel-bus>
</camel-provider>
</providers>
<services>
<listeners>
<camel-gateway name="..." busidref="xxx" />
</listeners>
<actions>...</actions>
</services>
You get the idea. ;) Basically, all "from's" associated with a gateway would be combined into a single CamelContext. If you specify multiple camel-gateways in the listeners section that refer to the same bus, then the routes defined in the <camel-bus> section are created separately in each CamelContext - again, one per gateway.