J'ai un motif répétitif dans mes voies - un certain processeur a besoin des mêmes 3 têtes fixés chaque fois que je l'appelle, j'ai le code suivant dans mes itinéraires sur les 10+ fois:Camel - étendre Java DSL?
.whatever()
.setHeader("foo1", "bar1")
.setHeader("foo2", "bar2")
.setHeader("foo3", "bar3")
.processRef("processorBazThatNeedsHeaders")
.whatever()
Les en-têtes sont peuplés différemment à chaque fois, donc l'abstraction dans un sous-programme ne m'achète rien.
Ce que j'aime être en mesure de faire est la sous-classe RouteDefinition d'avoir une autre méthode dans mon DSL qui me permettrait de le faire:
.whatever()
.bazProcessor("bar1", "bar2", "bar3")
.whatever()
et « bazProcessor », définissez les en-têtes et appeler le processeur .
J'ai essayé de le faire mais il semble que ce n'est possible qu'avec une chirurgie sérieuse probablement sans avenir, et il semble que others have had similar luck.
J'ai besoin qu'ils soient définis comme en-têtes plutôt que de les transmettre directement au processeur car les valeurs sont également utilisées après le processeur pour le routage.
Y a-t-il des possibilités cachées pour réaliser quelque chose comme ça?
Ceci est une bonne idée. Ce dont j'ai besoin est * légèrement * différent mais je pense que c'est un bon début. Je vais essayer et répondre. –
Pouvez-vous s'il vous plaît détailler votre réponse? Je ne l'ai pas compris :( – Edmondo1984