Is there a standard pattern for defining Camel endpoints so that commonly used endpoint settings do not need to be repeated in every endpoint definition? For example, every RabbitMQ endpoint I declare always repeats the same connection settings like the following:
rabbitmq://{{rabbitmq.host}}:{{rabbitmq.port}}/exchange?username=... I'm thinking of having an (immutable) endpoint URL builder that can be reused by all route builders. Then I would only need to set the common connection settings once (say, in my Spring configuration): @Bean UrlBuilder rmqEndpointUrlBuilder() { return new UrlBuilder() .setScheme("rabbitmq") .setHost("{{rabbitmq.host}}") .setPort("{{rabbitmq.port}}"); } That URL builder would be injected into my Camel route builder and can be used like so: from(rmqEndpointUrlBuilder.setPath("/exchange").toString()) Does this sound reasonable? Is there a simpler way to achieve this? Taking the endpoint builder idea further may be interesting. If there were endpoint builders specific to each component type then it would be a lot easier to define endpoint URL parameters. Has this sort of thing been considered before? - Nathan