¿Cuáles son las ventajas y desventajas de definir rutas de camello en la primavera XML? -- java campo con xml campo con spring campo con routes campo con apache-camel camp Relacionados El problema

What are the advantages and disadvantages of defining Camel routes in spring xml?


5
vote

problema

Español

Actualmente intento profundizar en Apache Camel. Como sabe, hay al menos dos formas de describir las rutas: el DSL de Java y la configuración XML.

Los desarrolladores de Camel recomiendan usar el DSL de Java porque, es decir, tiene el beneficio que mejor se integra en el IDE. Otro beneficio es que puede enriquecer el DSL de Java con su propio código sin escribir estructuras de clase complejas. Esto parece necesario si se toma la configuración XML.

¿Qué crees que son las ventajas y desventajas de las rutas definidas en un archivo XML? ¿Cuándo usar archivos XML para la definición de rutas y cuándo usar Java DSL?

Original en ingles

Currently I try to get deeper into Apache Camel. As you know there are at least two ways to describe the routes: the Java DSL and the XML-configuration.

The developers of Camel recommend to use the Java DSL because i.e. it has the benefit that it better integrates into the IDE. Another benefit is, that you can enrich the Java DSL with your own code without writing complex class structures. This seems necessary if XML-configuration is taken.

What do you think are the advantages and disadvantages of routes defined in an xml-file? When to use xml-files for definition of routes and when to use Java DSL?

              

Lista de respuestas

6
 
vote
vote
La mejor respuesta
 

Depende de sus requisitos un poco, pero en casi todos los casos, prefiero el DSL de Java por las siguientes razones:

  • más eficiente y flexible que xml
  • Menos voltear entre archivos XML / JAVA
  • más fácil de visualizar, administrar, mantener, depuración , prueba (a través de simulada , etc.)
  • Soporte para en línea procesadores
  • mejor integración con IDE (Finalización de código y validación)
  • limpiador, más fácil de seguir ejemplos
 

It depends on your requirements a bit, but in almost every case, I prefer the Java DSL for the following reasons:

  • more efficient and flexible than XML
  • less flipping between XML/Java files
  • easier to visualize, manage, maintain, debug, test (via mock, etc.)
  • support for inline Processors
  • better integration with IDE (code completion and validation)
  • cleaner, easier to follow examples
 
 
5
 
vote

Si usa el DSL de Java, puede aprovechar las herramientas de refactorización de sus IDE y compilar los cheques de tiempo.

Por otro lado, si usa archivos XML, puede externalizar todas las cosas de enrutamiento y re-route de camello sin redistribuir la aplicación.

 

If you use the Java DSL you can leverage your IDE's refactoring tools and compile time checks.

On the other hand if you use xml files you can externalize the entire camel routing and re-route stuff without redeploying the application.

 
 
2
 
vote

Si comienza a usar Spring, lo más probable es que llegue a un punto en el que necesite implementar un procesador o algo más. Necesitará un código personalizado en algún momento. Después de esto, tiene una combinación de Java y XML en su código - Mantenimiento Horror.

al lado de este java es:

  • tipo seguro
  • compilado

Para aprovechar al máximo, también sugeriría minimizar la configuración de puntos finales con cadenas. Así que en lugar de crear y configurar puntos finales de esta manera:

  from("file:/someFolder?delete=true")   

Sugiero que cree / configure el punto final por separado:

  Endpoint fileEndpoint= context.getEndpoint("file:" + folder.getPath(), FileEndpoint.class); fileEndpoint.setDelete(true);   

Esto es menos propenso a un error que la violación alrededor de las cuerdas.

 

If you start using spring you will most likely come to a point where you need to implement an Processor or something else. You will need custom code at some point. After this you have a mix of java and xml in your code - maintenance horror.

beside this java is:

  • type safe
  • compiled

to get the most out of it i would also suggest to minimize configuration of endpoints with strings. So instead of creating and configuring endpoints this way:

from("file:/someFolder?delete=true") 

i suggest do create/configure the endpoint separately:

Endpoint fileEndpoint= context.getEndpoint("file:" + folder.getPath(), FileEndpoint.class); fileEndpoint.setDelete(true); 

This is less error prone than fiddling around strings.

 
 

Relacionados problema

0  ¿Cómo recuperar un contenido específico del cuerpo de camello para pasar a un método de frijol en la ruta de camello?  ( How to retrieve a specific content from camel body to pass to a bean method in c ) 
Tengo una ruta de camello simple definida que consumirá un mensaje XML. La ruta es la siguiente: from("from-endpoint").bean(myBean, "method1").log("$body...

1  APACHE CAMEL CAPTING CAPTING INTENTOS ANTES DE OTROS PUNTOS DE FACINTES DE FACINABLE  ( Apache camel capturing failover attempts before another failover does round robi ) 
Estoy usando Apache Camel Failover Componente con la siguiente configuración de ruta: <route id="jettyRouter" errorHandlerRef="defaultErrorHandler"> <f...

4  Apache Camel: SFTP Endpoint - TUBO CERRADO EDICION  ( Apache camel sftp endpoint pipe closed issue ) 
Estoy trabajando con una ruta que descarga archivos de un servidor remoto al directorio local usando SFTP. Versión de Apache Camel: 2.15.2 Desde el punto fi...

1  Apache Camel Multidifast Conversing Mensaje de texto al mensaje de byte  ( Apache camel multicast converting text message to byte message ) 
Estoy tratando de publicar un mensaje de texto al tema con Apache Camel con ActiveMQ. El siguiente código funciona bien y mi programa de cliente es capaz de c...

2  Sirviendo archivos estáticos con rutas de camello  ( Serving static files with camel routes ) 
Estoy tratando de servir un archivo estático en las rutas de camello. Las rutas en mi clase principal contienen esta pieza de código: public final void c...

0  Camel JMS: consume un mensaje (es un XML) del tema e invoca un frijol Java y pasa el objeto XML a él  ( Camel jms consume a messageis an xml from topic and invoke a java bean and p ) 
Tengo una ruta de camello que se supone que consume un mensaje JMS de un tema e invoca un frijol de primavera. Definición de ruta from("jms:topic:testQueue...

1  ClasspathxMlapplicationContext problema en Apache-ServiceMix-4.3.0-fusible-00-00  ( Classpathxmlapplicationcontext problem in apache servicemix 4 3 0 fuse 00 00 ) 
Seguí el ejemplo en el Capítulo 14 del Libro, "Camel en acción". Deseo ocultar el middleware de la lógica de negocios. Mientras se desarrolla utilizando "Cam...

0  Alcance de Mensaje de Apache Camel  ( Apache camel message scope ) 
He escrito un componente (EHCOMPONENT) para hacer un manejo de errores para otros componentes (Acomponente). Acomponent Lee de una cola, encuentra un error,...

1  Componente de archivo (Camel Apache) Eliminar = Parámetro verdadero no funciona en Windows  ( File componentapache camel delete true parameter not working in windows ) 
El componente de archivo de Apache Camel no funciona correctamente en Windows7, donde está trabajando en Linux sin ningún problema. My requisito: Despué...

0  Re-ruta dinámicamente para las rutas de camello  ( Re route dynamically for camel routes ) 
Estoy tratando de averiguar cómo volver a rutas dinámicamente para una ruta de camello. Actualmente calculo la ruta en un procesador basado en algunas entrada...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos