Tengo un patrón que se repite en mis rutas - un cierto procesador necesita los mismos 3 cabeceras configuradas cada vez que llamo, por lo que tengo el siguiente código en mis rutas sobre 10+ veces:Camel - extender Java DSL?
.whatever()
.setHeader("foo1", "bar1")
.setHeader("foo2", "bar2")
.setHeader("foo3", "bar3")
.processRef("processorBazThatNeedsHeaders")
.whatever()
Los encabezados están ocupados de manera diferente cada vez, por lo que abstraer esto en una subroute realmente no me compra nada.
Lo que me gusta ser capaz de hacer es RouteDefinition subclase tener otro método en mi DSL que permita que haga esto:
.whatever()
.bazProcessor("bar1", "bar2", "bar3")
.whatever()
y en 'bazProcessor', establezca las cabeceras y llamar al procesador .
He intentado hacer esto pero parece que solo es posible con una cirugía seria que probablemente no sea a prueba de futuro, y parece que others have had similar luck.
Necesito que se establezcan como encabezados en lugar de pasarlos como parámetros directamente al procesador porque los valores también se usan después del procesador para el enrutamiento.
¿Hay alguna facilidad oculta para lograr algo como esto?
Esta es una buena idea. Lo que necesito es * un poco * diferente pero creo que este es un buen comienzo. Le daré una oportunidad y responderé. –
¿Puede por favor detallar su respuesta? No lo entendí :( – Edmondo1984