Apache camel 4.7.0 Release

New and Noteworthy

This release is the new Camel 4.7.0 release.

Supported Java version

This version supports Java 17 and 21.

Getting the Binaries using Maven

To use this release in your Apache Maven pom.xml, import the Camel Bill of Materials (BOM) and then include the camel-core and any other components needed without specifying the version.

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-bom</artifactId>
      <version>4.7.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

<dependencies>
  <dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-core</artifactId>
  </dependency>
  <dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-COMPONENT</artifactId>
  </dependency>
</dependencies>

To use this release in a Spring Boot application, use Spring Boot spring-boot-dependencies and Camel camel-spring-boot-bom Bill of Materials (BOM):

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-dependencies</artifactId>
      <version> SPRING BOOT VERSION HERE </version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.camel.springboot</groupId>
      <artifactId>camel-spring-boot-bom</artifactId>
      <version>4.7.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

<dependencies>
  <dependency>
    <groupId>org.apache.camel.springboot</groupId>
    <artifactId>camel-COMPONENT-starter</artifactId>
  </dependency>
</dependencies>

Apache Camel

Git tag checkout

Release is tagged with camel-4.7.0 in the Git, to fetch it use:

git clone https://git-wip-us.apache.org/repos/asf/camel.git
cd camel
git checkout camel-4.7.0

Resolved issues

Here is a list of all the issues that have been resolved for this release

Bug (58)

CAMEL-20965
InputStreamCache is not thread-safe
CAMEL-20949
camel-bean - Method parameters with both type and property placeholder does not work
CAMEL-20946
Generated Quarkus project from JBang is not working with Camel Debug
CAMEL-20939
camel-jbang - unable to load profile
CAMEL-20938
camel-http - Using disableStreamCache=true cannot read body later due to stream closed
CAMEL-20932
camel-core - Error handler redelivery options should support template parameters for route templates
CAMEL-20929
camel-core - Properties component with ignore missing property should also ignore from functions
CAMEL-20921
Route configuration is not loaded on a Camel application XML file
CAMEL-20920
RouteLoader: Can't load a valid route with the same location after a previous load error
CAMEL-20911
Maven build failure for Camel JBang exported Quarkus app
CAMEL-20906
NPE in RouteWatcherReloadStrategy.onRouteReload(RouteWatcherReloadStrategy.java:300)
CAMEL-20890
Use Step ID's in routeTemplate
CAMEL-20889
camel-core: Stream is not reset when Message.getBody(class) is invoked ans stream caching is enabled
CAMEL-20887
generated PojoBeanModel is missing the artifact
CAMEL-20877
camel-jbang ignores jib-maven-plugin-version
CAMEL-20873
camel-platform-http-vertx: Responses may not complete if exceptions are thrown in VertxPlatformHttpSupport.writeResponse
CAMEL-20866
SEDA with exchangepattern InOnly gives sometimes multiple responses
CAMEL-20864
camel-kafka - With confluent schema registry does not work properly.
CAMEL-20863
camel-langchain4j-chat: NPE if only producer is used
CAMEL-20859
camel-jbang - Transforming a yaml route to xml specifying a folder is generating a yaml file
CAMEL-20853
Rest DSL - Rest routes can not be grouped anymore
CAMEL-20850
LRUCache evicts entries unexpectedly
CAMEL-20847
camel-jbang - Run with jolokia enabled does not work
CAMEL-20841
DataSonnet expressions are removed under memory load
CAMEL-20840
Cannot cast ResumeActionAwareAdapter to KinesisResumeAdapter
CAMEL-20839
camel-jbang - Run with openapi in sub folder does not work
CAMEL-20835
OOM using RecipientList
CAMEL-20834
camel-salesforce - A NullPointException in SubscriptionHelper.subscribe() interrupts platform-event subscription
CAMEL-20823
camel-smb component polling doesn't account for directories
CAMEL-20820
camel-core - Duplicate JMX MBean operation for resource endpoints
CAMEL-20819
camel-jbang - Reload mode with supervising route controller does not reload routes
CAMEL-20818
camel-yaml-dsl - errorHandler does not have id field as all other YAML elements
CAMEL-20816
Camel-JBang: Export to quarkus does not honor quarkusGroupId setting
CAMEL-20815
exchange.getVariable does not get Global variables in custom processor
CAMEL-20812
camel-netty-http: hostnameVerification option not used
CAMEL-20799
camel-catalog - Model schema for setHeaders and setVariables does not include array of element
CAMEL-20790
kafka batching consumer polls randomly failing with NPE under load
CAMEL-20783
camel export --runtime=quarkus does not work with custom camel.jbang.quarkusVersion
CAMEL-20778
Intercept created using AdviceWithRouteBuilder causes issues with error handling (regression)
CAMEL-20771
camel-jbang - Does not hot-reload java source changes
CAMEL-20769
camel-jms: TemporaryReplyQueueExceptionListener may be causing an endless lock
CAMEL-20768
camel-spring-redis - SpringRedisIdempotentRepository flushes DB on start
CAMEL-20767
camel-spring-redis - Creating SpringRedisIdempotentRepository via SB should be possible
CAMEL-20763
Rest template with underscore fails after Camel 4.2.0
CAMEL-20761
camel-debug - Message history must be enabled
CAMEL-20758
camel-spring-boot - Debugger is created twice
CAMEL-20752
camel-saga - NPE in compesating
CAMEL-20750
camel-yaml-dsl - Rest DSL with enableCORS does not work
CAMEL-20746
Bean deserialisation from YAML displays message displays wrong nodeType
CAMEL-20738
camel-jasypt-starter - PropertiesParser cannot be redefined
CAMEL-20660
camel-azure-servicebus: Consumer fails to acknowledge messages
CAMEL-20493
camel-core: concurrency issue copying headers
CAMEL-18821
camel-core - Thread hangs on transacted routes after aggregation and multiplex (possibly more)
CAMEL-18384
Split/Aggregation parallelProcessing+parallelAggregate is sequential
CAMEL-17829
camel-as2 - issue in MDN response condition
CAMEL-17110
Camel-Kamelets: While using AWS S3 source noticed files were deleted before being consumed at all
CAMEL-16829
camel-core - Stuck processing with nested parallel splits and custom thread pool
CAMEL-15903
Master component do not retry endpoint startup on failure

Dependency upgrade (7)

CAMEL-20941
camel-parquest-avro - Should include needed hadoop JARs
CAMEL-20830
camel-jetty - Upgrading causes SSL tests to fail
CAMEL-20800
camel-couchdb: gson upgrade to 2.11.0 breaks the component
CAMEL-20788
Use another protobuf-maven-plugin
CAMEL-20779
camel-spring-boot - Upgrade to SB 3.3.0
CAMEL-20600
camel-activemq - Upgrade to ActiveMQ classic 6.x or create camel-activemq6
CAMEL-20304
Upgrade dizitart nitrite to 4+

Improvement (81)

CAMEL-20948
camel-util-json doesn't handle streaming correctly
CAMEL-20945
camel-jbang - Run java route without need for class wrapper
CAMEL-20944
camel-jbang - Generate plugin should validate file exists
CAMEL-20934
camel-seda - Sending to consumers should use callback for completion work
CAMEL-20933
rest-dsl - Add option to configure stream cache per route
CAMEL-20931
camel-core - Add substring function to simple languge
CAMEL-20930
camel-core - Bean DSL dev console
CAMEL-20928
camel-jbang - Export beans with ENV variable properties should silent ignore ENV missing
CAMEL-20926
camel-core - Add fromRouteId function to simple language
CAMEL-20924
camel-http - Add oauth2scope parameter
CAMEL-20922
Camel-crypto: Extract PGPdataFormat to another component
CAMEL-20903
camel-jbang - Only load custom plugin if in use
CAMEL-20902
camel-jbang - Running with older version causes plugin download problems
CAMEL-20901
camel-arangodb: Add the option to provide a custom Vertx instance
CAMEL-20900
camel-jbang-plugin-k add --integration-profile flag on run command
CAMEL-20898
camel-core - Deep copy of route templates
CAMEL-20897
camel-core - Allow to use $simple{xxx} inside RAW(xxx) for more power
CAMEL-20895
camel-djl - The image classification predictors should not round the resulted probabilities
CAMEL-20892
Misleading error message when Kamelet misses mandatory field value
CAMEL-20891
Improve the catalog documentation for Processor's Ref attribute.
CAMEL-20881
camel-core - Log should not need to create DefaultPollingConsumerPollStrategy
CAMEL-20879
camel-core - Unique exchange counter
CAMEL-20868
camel-aws-xray-starter
CAMEL-20865
camel-elasticsearch-rest-client: Add usage details to component documentation
CAMEL-20861
Add endpoint service location to default tracing
CAMEL-20860
camel-core - Endpoint should have isRemote method
CAMEL-20857
Keep all extensions of filename when transforming routes from folder with Camel Jbang
CAMEL-20856
camel-jbang - Do not write pid file if PID_IS_UNDEFINED
CAMEL-20852
Allow empty files within ZipAggregationStrategy
CAMEL-20851
camel-elasticsearch-rest-client: Sniffer should be closed on producer stop
CAMEL-20849
Move TransformerKey and ValidatorKey to the SPI
CAMEL-20848
camel-jbang - Export should only jib if no jkube is in use
CAMEL-20846
camel-elasticsearch-rest-client: Add component options
CAMEL-20845
camel-core - Simple language to make it easy to replace texts
CAMEL-20842
Add endpoint service location to backlog tracing
CAMEL-20836
camel-qdrant: Add support for deleting a collection
CAMEL-20833
Add recursive option to camel-smb
CAMEL-20832
camel-openapi-java - Validate message body for json using a json schema valdaitor
CAMEL-20829
Streamline ServicePool synchronization
CAMEL-20828
camel-platform-http - Allow to known if platform engine is in use or not without triggering creation
CAMEL-20824
camel-core - Backlog tracer should include internal exchange properties
CAMEL-20821
camel-opentelemetry - Add traceProcessors boolean option
CAMEL-20810
camel-jbang - Add camel get platform-http command
CAMEL-20808
camel-etcd - Setting endpoint should be tooling friendly
CAMEL-20804
camel-cloud - Deprecate camel-cloud
CAMEL-20803
camel-spring-rabbitmq - Configuring maximumRetryAttempts should accept 0
CAMEL-20798
camel-tracing - Add servername to more decorators
CAMEL-20795
camel-nats - NATS Credential file support
CAMEL-20794
Camel-kinesis: Kinesis producer has a very low throughtput
CAMEL-20789
camel-kubernetes - Secrets and Config Maps with binay content should be saved as binary file, instead of String in property resolver
CAMEL-20787
Camel-kinesis: Kinesis consumer set body type InputStream, which is not a common record type
CAMEL-20776
Camel-kinesis: Listing shard before every record request will increase extra latency
CAMEL-20775
camel-hashicorp-vault - configure multiple engines
CAMEL-20773
camel-health - Consumer health checks should be skipped for non autoStartup routes
CAMEL-20766
camel-core - Running in dev mode should turn on JMX updateRouteEnabled
CAMEL-20762
camel-core - Move detection of camel-debug JAR to camel-main
CAMEL-20760
camel-core - Allow to turn on|off RMI connector for tooling based debuggers
CAMEL-20759
camel-as2 update client to support compression before signing
CAMEL-20757
camel-debug - Use the lightweight xml-io for route dumper
CAMEL-20755
camel-kamelet - Default location should be without leading slash for classpath
CAMEL-20749
camel-core - ThrottlingExceptionRoutePolicy should have default values
CAMEL-20748
camel-core - Route policy should have Route injected if RouteAware
CAMEL-20747
Remove usage of deprecated Spring Security classes for route policies
CAMEL-20745
camel-core-dsl - Add support for constructors to lookup beans
CAMEL-20743
camel-model - Load Balancer EIPs to be named with LoadBalancer to be consistent in naming style
CAMEL-20645
camel-jbang-plugin-k run command telemetry trait parameters ignored
CAMEL-20608
camel-jbang - Improve the docker image
CAMEL-20586
camel-jbang - Export to CSB can use camel.main.xxx properties
CAMEL-20547
camel-openapi-rest-dsl-generator - Migrate from apicurio models to openapi3 models
CAMEL-20500
camel-jbang - Move generate commands to its own plugin
CAMEL-20439
camel-cloudevents - Move API to camel-api
CAMEL-20407
camel-datasonnet - Add support for variables
CAMEL-20244
camel-core - Supervising route controller should default be DOWN during restarting and exhaust phase
CAMEL-19915
Camel AS2 doesn't support compressed before signed
CAMEL-19897
camel-core: remove isStatisticsEnabled from type converter statistics
CAMEL-19398
camel-core: type converter performs slowly due to exception-based flow control
CAMEL-19010
file component: confirm not called on idempotentRepository
CAMEL-18962
camel-as2 - AS2Consumer always accepts unencrpted/unsigned data
CAMEL-18186
camel-saga: tracing information is not propagate on compensation/completion
CAMEL-17502
add documentation about event notifier
CAMEL-17111
Camel-AWS2-S3: Supporting Consumer idempotency in some way

New Feature (17)

CAMEL-20909
Camel-Aws-Kinesis: Support KCL Consumers
CAMEL-20905
camel-djl - Support more model applications
CAMEL-20878
camel-jbang - get rest
CAMEL-20827
Add endpoint service location to aws, azure and google components
CAMEL-20825
camel-rest - Contract first for api-doc should include the spec
CAMEL-20822
camel-langchain4j-chat - implement tool capabilities
CAMEL-20754
Support MQTT5 Publish Properties in Paho-MQTT5 component
CAMEL-20739
Camel-Pinecone: Add a datatype for transforming langchain embeddings in Pinecone objects
CAMEL-20728
camel-aws2s3 Stream Producer should support multipart loading
CAMEL-20725
Camel-Pinecone: Add more producer operations
CAMEL-20679
camel-smb: create a producer for the component
CAMEL-20617
camel-rest - Add RestRegistryConsole
CAMEL-20573
Camel-Milvus: Evaluating if creating a converter like qdrant component makes sense
CAMEL-20217
Provide option to create a Pipe file through Camel Jbang init
CAMEL-20216
Provide documentation on option to create a kamelet file through Camel Jbang init
CAMEL-19985
camel-smooks - Add component for Smooks for EDI data mapping
CAMEL-18546
camel-core - HostedService - To mark a consumer as a Camel hosted service

Sub-task (7)

CAMEL-20916
Camel-AWS-Kinesis: KCL Consumers, add documentation
CAMEL-20914
Camel-AWS-Kinesis: KCL Consumers add an example
CAMEL-20913
Camel-AWS-Kinesis: KCL Consumers, add support for profile/default/session credentials for Cloudwatch and DynamoDB clients
CAMEL-20912
Camel-AWS-Kinesis: KCL Consumers add parameters for passing Cloudwatch and DynamoDB Clients
CAMEL-20764
Camel-AWS-Bedrock: Support Amazon Titan Text G1 Premier model
CAMEL-20222
Provide documentation on option to create kamelet on Camel website
CAMEL-20221
Provide documentation on option to create kamelet in CLI help

Task (25)

CAMEL-20917
camel-jbang: Camel Jbang is unable to load external plugins
CAMEL-20893
camel-jms: simplify JmsRouteRequestReplyTest
CAMEL-20885
Deprecate kotlin
CAMEL-20884
Improve performance of Camel Package Maven plugin
CAMEL-20880
Move AI related component to camel-ai middle folder
CAMEL-20843
camel-test: extract interface and common parts from CamelTestSupport
CAMEL-20826
The camel-package-maven-plugin:generate mvn goal does not produce reproducible jandex.idx files
CAMEL-20813
camel-infinispan: tests should use singleton containers
CAMEL-20792
camel-jpa: upgrade to OpenJPA 4 breaks the tests
CAMEL-20785
camel-test: CamelTestSupport has become inadequatedly designed
CAMEL-20777
Intercept Java DSL is not supported on the route scope
CAMEL-20751
camel-spring-xml - Add back <camel> to XSD
CAMEL-20722
camel-kafka: reduce KafkaBreakOnFirstError tests are too unreliable for CIs
CAMEL-20680
camel-kafka: reduce KafkaBreakOnFirstErrorSeekIssueIT test duration
CAMEL-20648
Example for spring-boot-infinispan should update infinispan
CAMEL-20634
Create a centralized variable for the header name CamelLangChain4jEmbeddingsVector
CAMEL-20585
Camel-package-maven-plugin: generates test configurers in non-tests artifacts
CAMEL-20414
Add CloudEvent Transformers to cloud oriented component
CAMEL-20309
olingo2 build error using `/component-test` on CI
CAMEL-19659
camel-fhir: slow tests
CAMEL-19546
camel-tarfile: replace Thread.sleep in tests
CAMEL-19544
camel-sql: replace Thread.sleep in tests
CAMEL-19523
camel-iec60870: replace Thread.sleep in tests
CAMEL-19228
camel-couchbase: Integration tests are unstable with Couchbase 7
CAMEL-16364
Camel-tracing: Add more decorators

Test (3)

CAMEL-20943
camel-jbang - Add openapi generate integration test
CAMEL-20215
camel-mllp - MllpTcpServerConsumerOptionalEndOfDataWithValidationTest.testMessageWithoutEndOfDataByte is failing on JDK21
CAMEL-19639
camel-etc3 - Etcd3RoutePolicyIT is failing

Wish (1)

CAMEL-20894
EventNotifier: Not all steps are triggered as events

Keys

You can verify your download by following these procedures and using these KEYS.