Ho un motivo ripetuto nei miei percorsi - una certa processore ha bisogno degli stessi 3 intestazioni stabilite ogni volta lo chiamo io, quindi ho il seguente codice nel miei percorsi circa 10+ volte:Camel: estendere Java DSL?
.whatever()
.setHeader("foo1", "bar1")
.setHeader("foo2", "bar2")
.setHeader("foo3", "bar3")
.processRef("processorBazThatNeedsHeaders")
.whatever()
Le intestazioni sono popolate in modo diverso ogni volta, quindi estrapolarlo in una sub-tratta non mi compra davvero nulla.
Quello che mi piace essere in grado di fare è sottoclasse RouteDefinition di avere un altro metodo nel mio DSL che mi permettesse di fare questo:
.whatever()
.bazProcessor("bar1", "bar2", "bar3")
.whatever()
e 'bazProcessor', impostare le intestazioni e chiamare il processore .
Ho provato a farlo ma sembra che sia possibile solo con un serio intervento chirurgico probabilmente non a prova di futuro, e sembra che sia others have had similar luck.
Ho bisogno che siano impostati come intestazioni anziché passarli come parametri direttamente al processore perché i valori vengono anche utilizzati dopo il processore per il routing.
C'è qualche struttura nascosta per ottenere qualcosa di simile?
Questa è una buona idea. Quello di cui ho bisogno è * leggermente * diverso, ma penso che questo sia un buon inizio. Farò un tentativo e rispondere. –
Puoi per favore dettagliare la tua risposta? Non l'ho capito :( – Edmondo1984