[JAVA] Quoi de neuf dans Apache Camel 2.19.0
Maintenant qu'Apache Camel 2.19.0 est sorti, résumons les fonctionnalités qui vous intéressent.
http://camel.apache.org/camel-2190-release.html
Qu'est-ce qu'Apache Camel?
Apache Camel est un framework d'intégration léger et hautement fonctionnel. Il est écrit en Java, mais devrait fonctionner sur d'autres langages JVM tels que Scala, Kotlin et Clojure.
- Vous pouvez vous connecter à divers services et interfaces externes en utilisant plus de 200 composants fournis par défaut.
- Java / XML DSL avec Enterprise Integration Patterns (EIP) (http://www.enterpriseintegrationpatterns.com/patterns/messaging/toc.html) entièrement implémenté pour acheminer proprement les messages d'E / S externes ça peut.
- À utiliser comme moteur de routage principal pour les serveurs ESB à pile complète tels que JBoss Fuse pour l'incorporation dans un programme en tant que bibliothèque JAR unique Peut être largement utilisé.
- Prend en charge Spring Boot et peut être utilisé comme un micro service sur le cloud.
Fonctionnalités présentées dans la version 2.19.0
Le point culminant est le Camel Connector Introduction. Comme de nombreuses autres fonctions ont été ajoutées, les détails sont omis et seuls les plus importants sont répertoriés ci-dessous. (Pour ceux qui veulent tout voir, voir ici.)
--Camel Connector est nouvellement introduit. Le connecteur est celui qui réduit les cas d'utilisation plutôt que le composant afin qu'il puisse être immédiatement lié à un système externe. Les intégrateurs citoyens (ou utilisateurs iPaaS) qui ne sont pas des ingénieurs d'intégration à part entière visent à former facilement une coopération intersystème.
- Spring Boot
- Mise à niveau vers Spring Boot 1.5.x.
- Tous les composants de démarrage de Camel Spring Boot ont désormais des valeurs de métadonnées par défaut qui peuvent être visualisées à partir de divers outils de développement.
- Le composant de démarrage de Camel Spring Boot dépend désormais de ʻorg.apache.camel.springboot.CamelAutoConfiguration
pour la configuration automatique. Cela vous permet de désactiver la configuration automatique de Camel Spring Boot en excluant ʻorg.apache.camel.springboot.CamelAutoConfiguration
dans le test unitaire.
--Système d'outils
- Ajout de l'objectif
camel: validate
au plugin Camel Maven. La validation DSL racine Java / XML est possible au moment de la compilation.
--Camel Main, Spring Boot et Camel Maven Plugin arrêtent désormais automatiquement la JVM. La condition d'arrêt peut être définie pour s'écouler une certaine période de temps, mettre fin à tout traitement de message et un certain temps d'inactivité.
- Le plugin Camel Maven peut maintenant effectuer un rechargement en direct à partir de XML DSL. Le rechargement en direct peut également être défini à partir de la classe Main.
- Prise en charge du plug-in Maven de vérification des dépendances OWASP.
- Les composants dépréciés et l'API camel-core dans Camel 3.0 ont été dépréciés.
- Le code source de Chameau peut maintenant être construit sur Java 9.
- Introduction du SPI
ReloadStrategy
. Cela permet au fournisseur personnalisé de lancer un rechargement en direct de l'itinéraire.
--Camel Catalog prend en charge les fournisseurs d'exécution personnalisés qui ne prennent en charge que certains composants, langages et formats de données. Voir camel-catalog-provider-karaf
(Karaf) et camel-catalog-provider-springboot
(Spring Boot) pour des exemples.
- Si l'équilibreur de charge de basculement est défini sur ʻinheritErrorHandler = false`, le gestionnaire d'erreurs de Camel sera maintenant exécuté après que l'équilibreur de charge soit épuisé.
- Le vidage XML de la racine de Chameau inclut désormais des espaces de noms personnalisés dans la notation
xpath
. De même, l'édition d'une racine XML Camel ajoute un espace de noms dans la notation xpath
.
--Ajout de RouteIdFactory
. Vous pouvez utiliser RouteIdFactory
pour définir automatiquement l'ID de route sur un nom plus significatif que route1
, route2
.
- Ajout de la fonction «skip» au langage simple.
--Mise à niveau vers Jetty 9.3. (Jetty 9.2 est toujours pris en charge pour les utilisateurs de Karaf 4.0.x.)
- Puisque l'exemple de résumé est généré à partir du code source, vous pouvez toujours vérifier le dernier état. https://github.com/apache/camel/tree/master/examples#examples
- Introduction d'un transformateur déclaratif et d'un validateur en fonction du type de données. Voir
camel-example-transformer-blueprint
, camel-example-transformer-cdi
, camel-example-transformer-demo
, camel-example-validator-spring-boot
pour des exemples d'utilisation.
Nouvelles fonctionnalités par composant
- Composant haricot
- Lors de l'appel d'une méthode qui retourne une instance
Callable
, la méthode de cette Callable
est également appelée. En conséquence, les fonctions / fermetures Groovy peuvent être appelées.
- Composant de vente
- Prise en charge des API
limites
, articles récents
, approvals
et composite
.
- Composant NATS
-Support pour TLS et flash de connexion automatique.
--Composant métrique
- Prise en charge du type "Jauge".
--Composant de fichier
- Prise en charge de la stratégie de verrouillage en lecture de clustering avec ʻidempotent-changed
ou ʻidempotent-rename
.
--Composant CDI
- RouteBuilder auto-configuration can now be disabled from Camel CDI configuration
- Camel contexts automatic start can now be disabled from Camel CDI configuration
- Camel CDI now provides support for TransactionErrorHandler and TransactionPolicy via JTA
--Composant Kafka
--Savé l'état de décalage hors ligne (
stateRepository
) afin que vous puissiez reprendre à partir de l'offset précédent.
- Amélioré pour faciliter la configuration / l'utilisation des composants.
--Introduction du référentiel de puissance basé sur des sujets par Kafka pour Idempotent Consumer EIP.
--Changé pour convertir automatiquement le type de corps du message lors de l'envoi d'un message (le sérialiseur par défaut est
String
). De plus, key
et partitionKey
peuvent maintenant être spécifiés dans l'URI du point de terminaison.
--Kafka Consumer peut désormais s'engager automatiquement lorsqu'il est arrêté. Les valeurs de l'option ʻautoCommitOnStopsont:
sync, ʻasync
, none
--Composant de la boîte
--Migré vers l'API Java v2.
- Composant JPA
- Ajout de la prise en charge des requêtes pour JPA Producer.
Blog sur les nouvelles fonctionnalités de la 2.19.0