Apache camel 3.9.0 Release

New and Noteworthy

This release is the new Camel 3.9.0 minor release.

Supported Java version

This version supports Java 8 and 11.

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>3.9.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>3.9.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

Download Signature and checksum
apache-camel-3.9.0-src.zip (Sources) PGP Signature, SHA512 Checksum

Git tag checkout

Release is tagged with camel-3.9.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-3.9.0

Resolved issues

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

Bug (46)

CAMEL-16699
HttpProducer skip request headers for query params on bridge endpoint broken for common types
CAMEL-16538
java.lang.IllegalArgumentException: Data format 'jacksonxml' could not be created
CAMEL-16382
Unable to disable autowiring on Infinispan component
CAMEL-16356
custom LdapEndpoint: inconsistent type for pageSize leads to NPE
CAMEL-16345
camel-main fails to load component properties from Enviroment variables
CAMEL-16344
camel-spring-ws - Skip Content-Type as SOAP:ENV response header
CAMEL-16343
[camel-kafka] Avoid committing offsets onPartitionsRevoked if the user is manually committing the offsets
CAMEL-16340
SalesforceProducer.doStart() is called before SalesforceComponent.doStart()
CAMEL-16327
Kafka Consumer Component always commits latest offset on shutdown even if autoCommitOnStop == none
CAMEL-16324
camel-core - Spring Transactions does not work due recent optimization
CAMEL-16318
camel-kafka - LoginCallbackHandler causes ClassNotFoudException on OSGi
CAMEL-16317
NPE on SFTP component query parameter for options that are duration
CAMEL-16309
The Rest Openapi schema generator has a typo; "sting" instead of "string"
CAMEL-16307
azure-storage-datalake:...?operation=getFile appends newline to the file content
CAMEL-16305
camel-servicenow-maven-plugin generated model classes wont compile
CAMEL-16298
camel-core - pollEnrich with endpoint-dsl should use EndpointConsumerBuilder
CAMEL-16297
camel-core - Splitter does not call aggregation strategy when transacted is enabled
CAMEL-16296
camel-as2 - Restarting bundle on karaf causes PortNumberInUse error
CAMEL-16295
split with AggregationStrategy is ignored when using transacted
CAMEL-16291
camel-cxfrs producer shouldn't try to read Entity from javax.ws.rs.core.Response
CAMEL-16284
camel-couchbase: Incorrect Endpoint URI breaks CKC's couchbase connector
CAMEL-16283
camel-jetty - NPE in binding for query parsing
CAMEL-16282
VertxBufferConverter does not handle encoding correctly
CAMEL-16280
NettyEndpointUriFactory#buildUri() not compatible with Netty endpoint URL
CAMEL-16276
WireTap does not work with NoErrorHandler
CAMEL-16258
camel-spring-boot - @ExcludeRoutes not working anymore
CAMEL-16252
[camel-azure-storage-blob] Stream caching bug due to unsupported InputStream mark operation
CAMEL-16244
Multiple consumers for the same endpoint using camel-restdsl-openapi-plugin
CAMEL-16241
Endpoint DSL (http component) Properties are not correctly set for Basic Authentications
CAMEL-16235
camel-servlet-starter does not ServletComponent
CAMEL-16233
camel-jetty - type converter error after last optimization
CAMEL-16227
Netty with reuseChannel=true invokes wrong callback
CAMEL-16226
camel-cbor: Unexpected character ('¿' (code 191)): expected a valid value
CAMEL-16225
camel-karaf - route-list command fail with NPE
CAMEL-16210
camel-core - Choice EIP exception from predicate may trigger otherwise
CAMEL-16206
camel-sql: Message body is not preserved when CamelSqlRetrieveGeneratedKeys == true
CAMEL-16196
camel-main - Configure using Java only does not configure for some types
CAMEL-16189
AWS2S3Producer not setting serverside encryption values
CAMEL-16179
NPE during MongoDB initialization
CAMEL-16178
Enrich with REST+netty hangs when connection is closed without response
CAMEL-16177
File stream cache problem with multicast parallel processing and encrypted stream
CAMEL-16176
camel-kafka - Bug in header filter strategy regexp pattern
CAMEL-16173
Camel Resilience4j Bulkhead seems to not limit concurrent requests
CAMEL-16079
aws-sn2 does not recognise FIFO queue configured though arn
CAMEL-16063
should consider multiple ApplicationContext instances when specifying another management.server.port
CAMEL-14980
camel-kafka - SerializationException - consumer keeps leaving and rejoining the group

Dependency upgrade (1)

CAMEL-16376
camel-spring-boot - Upgrade to Spring Boot 2.4.4

Improvement (67)

CAMEL-16522
Apache Camel Jars for latest versions
CAMEL-16359
Camel-spring-rabbitmq - Allow null body
CAMEL-16358
camel-spring-rabbitmq - Configure consumer retry strategies more easily
CAMEL-16357
Camel-splunk: tcp mode can not work with port/host mapping (e.g. in docker environment)
CAMEL-16355
camel-core - Optimize Filter and Choice EIP
CAMEL-16351
camel-core - Camel JARs OSGi MANIFEST.MF has unwanted include-resources
CAMEL-16349
camel-core - MainHelper load list from file in classpath to reduce memory
CAMEL-16348
camel-core - Optimize shutdown strategy forceShutdown check
CAMEL-16342
Upgrade common-compression to 1.20 and fix camel-tarfile accordingly
CAMEL-16339
camel-seda - Optimize to avoid unnesssary exchange copy
CAMEL-16337
camel-core - pooled exchanges - Can we optimize exchangeId
CAMEL-16336
Make CustomSlackHttpClient compatible with okhttp 3.x
CAMEL-16331
camel-core - DefaultConsumer used as PolllingConsumer EIP should not be pooled exchanges
CAMEL-16328
Restore support for Slack custom server URL
CAMEL-16326
camel-core - Optimize EIP storing information in exchange properties
CAMEL-16322
Have a middle folder for google components
CAMEL-16321
Have a middle folder for azure components
CAMEL-16319
camel-core - Optimize consumer done callback
CAMEL-16315
Camel-Netty: Support Hostname verification even though we are on Netty 4.1.x
CAMEL-16314
camel-core - Some components does not work well with pooled exchanges
CAMEL-16313
camel-splunk: can not use component without credentials (to be able to communicate with free splunk server)
CAMEL-16311
camel-freemarker - Localized lookup should be disabled
CAMEL-16294
camel-core - PollingConsumer - add option to handover the UoW
CAMEL-16292
Upgrade to spring boot 2.4.3
CAMEL-16288
camel-core - Endpoint should have getMaskedEndpointUri
CAMEL-16286
camel-core - Services should invoke doBuild on child services
CAMEL-16279
camel-core - Optimize routing engine to reuse internal state objects for GC reduction
CAMEL-16272
camel-core - Optimize routing engine to reduce object allocation in redelivery error handler
CAMEL-16271
camel-core - ReactiveExecutor add option to turn on|off statistics
CAMEL-16270
Vertx Buffer converter should sharable among vertx components and not tied with vertx-web.
CAMEL-16265
camel-microprofile-metrics - Mask sensitive data in endpoint URLs
CAMEL-16264
camel-http - Add option to ignore response headers
CAMEL-16262
camel-http - Add disable options on component to turn features off
CAMEL-16253
Improve the way that the LRA client determines the new LRA URL
CAMEL-16250
Support text finishing with a dash in StringHelper.dashToCamelCase
CAMEL-16245
Improvement camel-google-storage guava dependency
CAMEL-16238
Registry is not released after camelcontext calls the shutdown method
CAMEL-16232
Camel-http: component doesn't use system properties `javax.net.ssl.keyStorePassword` and `javax.net.ssl.keyStore` if parameter `useSystemPr0perties` is set to true
CAMEL-16231
camel-core - Optimize HeaderFilterStrategy to not include header value
CAMEL-16222
camel-core - ExchangeFactory SPI
CAMEL-16220
camel-http - optimize producer when sending to uri without any change
CAMEL-16219
camel-core - Kamelet - Add support for optional template parameters
CAMEL-16218
Mark use of java.util.Random with NOSONAR to not have false flags in code analysis reports
CAMEL-16217
camel-core - FluentProducerTemplate - optimize to uri when its the same endpoint
CAMEL-16215
camel-http - Optimize isStatusCodeOk
CAMEL-16207
camel-core - Optimize HeaderFilterStrategy with startsWith pattern
CAMEL-16205
camel-http - Optimize extract response body for small payloads
CAMEL-16203
camel-core - Optimize removeHeaders all
CAMEL-16202
camel-core - Optimize DefaultHeaderFilterStrategy filtering
CAMEL-16201
camel-jfr - Save camel-recording in current dir by default
CAMEL-16199
camel-http - Optimize headers added as request headers in producer
CAMEL-16194
Optaplanner : upgrade to optaplanner 8.x
CAMEL-16192
camel-spring-boot-engine-starter
CAMEL-16183
camel-spring - XML DSL remove remoting/proxy
CAMEL-16182
test-infra modules don't support testcontainers hub.image.name.prefix configuration
CAMEL-16175
camel javascript routes loader
CAMEL-16174
camel-zookeeper - Upgrade to latest 3.5.x
CAMEL-16172
Upgrade to version 0.15.0 of OpenTelemetry
CAMEL-16170
camel-spring-core - spring module with XML
CAMEL-16169
camel-core - context.addComponent(name, instance) should auto start if needed
CAMEL-16162
camel-core - OnCompletion EIP - Only 1 allowed
CAMEL-16155
camel-zookeeper-master: add option to set a custom ManagedGroupFactory
CAMEL-16105
camel-kafka - AllowManualCommit does not ensure full control of the commit flows
CAMEL-15924
[camel-vertx-kafka] Add the ability to commit the offsets manually
CAMEL-15741
camel-joor - Add function for header and exchange property with default value
CAMEL-14490
Have a middle folder for aws and aws2 components
CAMEL-10956
camel-core: more flexible route loader

New Feature (12)

CAMEL-16323
Create a Camel-AWS-Secret-Manager component
CAMEL-16310
Allow to configure type of MessageListenerContainer in camel-spring-rabbitmq
CAMEL-16302
camel-core - Optional property placeholders
CAMEL-16301
Allow endpoint to override prefetchCount from component
CAMEL-16285
Extensible ResourceHelper
CAMEL-16255
Use of the slack-api-model to create rich content
CAMEL-16213
camel-core - Exchange pooling
CAMEL-16153
camel-report-maven-plugin: overallCoverageThreshold
CAMEL-15964
Create a Google Cloud Storage component
CAMEL-15963
Create a Google Cloud Functions component
CAMEL-14053
Routes Loader SPI
CAMEL-12545
create a yaml based route loader

Sub-task (1)

CAMEL-16012
Remove camel-example- prefix in folder names in camel-examples

Task (33)

CAMEL-16363
Create Camel-aws-secrets-manager starter
CAMEL-16362
camel-spring-boot - BOM generator JAR alignments error
CAMEL-16347
Camel test-infra: Create a module for AWS Secrets manager
CAMEL-16334
Having a middle folder for test (unit + testcontainers) components
CAMEL-16333
Having a middle folder for debezium components
CAMEL-16332
Have a middle folder for microprofile components
CAMEL-16329
Camel-Google-Mail-Stream: Set markAsRead as true by default
CAMEL-16308
Camel-Google-bigquery-sql: Rename query parameter in bigquery sql component
CAMEL-16303
URI generation: if a part of the component name is equal to a path parameter the URI generation will fail
CAMEL-16300
Camel-Examples: Add a google pubsub example
CAMEL-16299
Test infra: allow greater service configuration
CAMEL-16293
Camel-AWS2-Components: Autocreation of entities should be false by default
CAMEL-16278
Use azure-sdk-bom instead of individual azure artifact versions
CAMEL-16277
Camel-File: Use appendChar for the first message too
CAMEL-16275
Move the RouteBuilderLoader from camel-joor, camel-xml-io and camel-xml-jaxb to a dedicated artifact in the dsl folder
CAMEL-16274
Camel-google-storage: serviceAccountKey should be supported as file, classpath, remote etc.
CAMEL-16268
camel-xstream - Test dependency of junit-vintage-engine not set to scope test
CAMEL-16267
camel-examples - Add yaml-dsl example
CAMEL-16261
Github PR Template: Make it optional
CAMEL-16254
[camel-debezium-common] Support nested Structs
CAMEL-16251
Move Performance and jmh itests in a separated repository
CAMEL-16246
Remove deprecated Camel-Azure component
CAMEL-16229
Mocking Existing Endpoints Doc Not Updated
CAMEL-16224
Create Spring Boot starter for camel-google-storage
CAMEL-16211
Revisit RoutesDefinition::route(RouteDefinition route)
CAMEL-16195
Remove camel-optaplanner Karaf feature
CAMEL-16193
Use SecureRandom instead of Random
CAMEL-16190
Sensitive configuration values not redacted in Auto-configuration summary
CAMEL-16186
Camel-AWS2-SQS: Support String as body for batch message
CAMEL-16171
Add uri-endpoint-override options to all AWS2 components
CAMEL-16156
Improve the usage of org.apache.camel.jmx.disabled
CAMEL-16137
Investigate the usage of java.awt.headless system property in tests
CAMEL-16115
Remove Camel-AWS-* components

Test (2)

CAMEL-16369
camel-endpointdsl and camel-componentdsl - Test without JMX enabled
CAMEL-15635
Some Kudu tests are failing in JDK >= 12 builds

Keys

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