Apache camel 3.12.0 Release

New and Noteworthy

This release is the new Camel 3.12.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.12.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.12.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.12.0-src.zip (Sources) PGP Signature, SHA512 Checksum

Git tag checkout

Release is tagged with camel-3.12.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.12.0

Resolved issues

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

Bug (66)

CAMEL-17008
okStatusCodeRange does not permit single status code
CAMEL-17007
camel-aws2-lambda: GetAlias is not working
CAMEL-17004
camel-servlet - Should not close HttpServletInputStream when reading body into stream caching
CAMEL-16990
camel-core - Stream caching checking for caused exception can lead to converter problem
CAMEL-16957
NettyHttpHelper appends slash to an URI in case of empty CamelHttpPath
CAMEL-16936
camel-aws2-s3: Not setting CONTENT-MD5 header which breaks putObject with object locks
CAMEL-16932
Configuration properties (AS2Configuration) of an AS2 client endpoint are ignored
CAMEL-16927
camel-spring - Using Spring XML can create multiple SpringCamelContext instances causing a deadlock when multiple camel proxies involved
CAMEL-16925
Integration tests on REST services broken since 3.5.0 with camel-spring-boot
CAMEL-16924
After upgrade to Camel 3.11.0. Cannot write to HttpServletResponse when aggregator is used.
CAMEL-16923
Specifying OpenAPI license & contact info causes a NullPointerException
CAMEL-16922
StringHelper.removeLeadingAndEndingQuotes() may cause IndexOutOfBoundsException
CAMEL-16921
KafkaSpanDecorator sometimes sets the wrong message_bus.destination tag value
CAMEL-16920
Dump routes does not show uri with endpointdsl
CAMEL-16918
Datasonnet expression fails on first runs in a route called in multicast
CAMEL-16917
more general way to determine if a Spring ApplicationContext is self management ApplicationContext
CAMEL-16904
Camel Swagger API response message headers of type string generate an empty enum even when allowableValues are not specified.
CAMEL-16903
JdbcAggregationRepository not storing properties interfers with AggregateProcessor to restore completiontimeouts
CAMEL-16902
camel-core - WireTap should preserve OUT message when copying
CAMEL-16895
Log masking results in stackoverflow for large inputs
CAMEL-16893
Potential NPE in GrpcStreamingExchangeForwarder
CAMEL-16892
Camel-InfluxDB: Don't check database existence each time we perform a producer operation
CAMEL-16878
using breadcrumbs can cause ClassCastException in MailBinding
CAMEL-16877
camel-salesforce: any salesforce operation inside transaction times out
CAMEL-16874
PollEnrich with file and option sendEmptyMessageWhenIdle keeps sending empty messages
CAMEL-16865
Xtokenize does not track a level up again once it detects a non matching namespace
CAMEL-16863
camel-spring-ws - use wiretap eip will lost the original message body for InOptionalOut MEP
CAMEL-16857
breakOnFirstError causes thread and memory leaks in camel-kafka
CAMEL-16853
camel-xslt: setting resultHandlerFactory via URI is broken
CAMEL-16850
camel-main - Unable to reference properties after bootstrap
CAMEL-16846
camel-kubernetes: missing operation parameter may lead to a NPE
CAMEL-16843
camel-kubernetes: NULL watcher is causing a NPE when stopping the sub-component consumers
CAMEL-16841
camel-kubernetes: NULL watcher is causing a NPE when stopping the configmaps component
CAMEL-16832
camel-kafka - file descriptor leak
CAMEL-16821
camel-bean - BeanProcessor with Process bean does not handle Throwable
CAMEL-16820
camel-core - CircuitBreaker - java.lang.UnsupportedOperationException: Is this really correct
CAMEL-16818
camel-core - route dump dose not print correct route with kamelet eip
CAMEL-16815
OpenTracing with Avro keys causes warning
CAMEL-16811
Cannot consume messages from sjms2 endpoint with deliveryMode set
CAMEL-16807
camel-kafka - problem using two kafka connections in the same application
CAMEL-16806
AWS2 S3 Documentation contains references to obsolete AWS 1 API
CAMEL-16804
NullPointerException when using try-with-resources and MainConfigurationProperties
CAMEL-16802
camel-core - Split / Aggregate with parallelprocessing aggregates in random order
CAMEL-16796
camel-cxf - Problem with inflight message count being -1
CAMEL-16795
camel-file - read-lock fails for minimum length files
CAMEL-16794
camel-core - race condition in LoopProcessor
CAMEL-16793
apiHost option in REST DSL is ignored
CAMEL-16788
camel-kamelet - Local parameters get overridden by environment variable
CAMEL-16782
Getting FailedToCreateProducerException with reason java.util.ConcurrentModificationException randomly when using huge split
CAMEL-16776
camel-test - Dependency injected Endpoint via @EndpointInject should have components autowired eager
CAMEL-16775
camel-core - simple("${body} starts with /startsWith 'xyz'") fails
CAMEL-16772
camel-sjms - Messages not filing to amq if using onCompletion() and transacted=true.
CAMEL-16767
camel-core - Stoping route failed with NPE when route contains loopDoWhile
CAMEL-16764
Box component does not reuse BoxAPIConnection when configured at the component level
CAMEL-16763
camel-sjms - Null JMS Correlation ID using Camel-SJMS Request/Reply with Artemis JMS Client
CAMEL-16762
camel-jms - Only the first payload chunk will be read when using jmsMessageType=Stream
CAMEL-16761
camel-sql - auto-generated primary keys are not retuned for Postgres when using loop iteration
CAMEL-16755
camel-jackson: cannot resolve unmarshal type
CAMEL-16725
camel-jira - Jira newIssues endpoint can fail if an issue was deleted
CAMEL-16704
camel-ahc - Requests getting timed out because the threads assigned to channels are busy
CAMEL-16692
SFTP sometimes doesn't receive all files
CAMEL-16688
HttpComponent : Connection pool shut down
CAMEL-16594
DynamoDB stream updates are missed when there are more than one active shards
CAMEL-16581
quartz - jobs are not interrupted even if requested
CAMEL-16555
JIRA Source Component -- Oauth 401 after time
CAMEL-14823
Support to disable the stream caching in camel-servlet from the camel context - once more

Dependency upgrade (14)

CAMEL-17002
upgrade to vertx 4.1.4
CAMEL-16999
camel-spring-boot - Update to 2.5.5
CAMEL-16980
Add commons dependency to camel-huaweicloud-smn pom
CAMEL-16910
Update Commons Compress to 1.21
CAMEL-16890
upgrade to kotlin 1.5.30
CAMEL-16880
Upgrade thrift to 0.14.1
CAMEL-16872
Upgrade xchange to 5.0.11
CAMEL-16856
camel-karaf - Add azure-blob-changefeed bundle to the camel-azure-blob-storage feature
CAMEL-16845
Upgrade to test containers 1.16.0
CAMEL-16799
camel-microprofile - Update to newer releases
CAMEL-16778
upgrade to vertx 4.1.1
CAMEL-16774
camel-debezium - Upgrade to 1.6
CAMEL-16771
camel-spring-boot - Upgrade to 2.5.2
CAMEL-15650
Upgrade to apache spark 3.x

Improvement (64)

CAMEL-17006
rest-dsl - clientRequestValidation should report error 400 if json/xml binding and invalid payload
CAMEL-17005
xml dsl - Avoid having <whenSkipSendToEndpoint> in the XSD
CAMEL-16995
[camel-karaf] Support multiple CamelContexts in CamelBlueprintTestSupport
CAMEL-16991
Thread safety with ClientConfigurations object in Huaweicloud components
CAMEL-16988
camel-dataformat - Do not use reflection when configuring dataformats
CAMEL-16987
camel-csv - Allow to configurer header in endpoint uri via dataformat component
CAMEL-16986
camel-openapi-java - Add support for description and example in @Schema annotation
CAMEL-16981
camel-kafka: improve the documentation about consumer streams vs consumers count
CAMEL-16974
camel-kafka: make the resume strategy configurable
CAMEL-16955
camel-huaweicloud-components: rename authenticationKey to accessKey
CAMEL-16953
camel-zip-deflater - Use Commons Compress to be able to un-zip large payloads
CAMEL-16951
yaml dsl - Cannot use expression language options
CAMEL-16950
camel-servlet-starter doesn't support multipart requests
CAMEL-16947
camel-core - Constant language to allow setting result type
CAMEL-16937
SessionExpiryInterval in Mqtt5-Paho-Camel not configurable
CAMEL-16933
Remove jackson-dataformat-xml from camel-openapi-java
CAMEL-16931
Preserve quotes in log mask formatter
CAMEL-16930
Sns2Producer does not handle headers containing numbers
CAMEL-16915
Log masking - Make it easier to add custom key words
CAMEL-16913
camel-core - ConvertBodyTo EIP - Add option to turn off mandatory
CAMEL-16908
camel-core - Log Mask should use the known sensitive keys
CAMEL-16907
camel-jt400 - Program Call usability concerns
CAMEL-16905
camel-mock - Remove old code that checks for header values as Expression/Predicate
CAMEL-16900
camel-core - ExchangeFactory should create exchange with default MEP from its endpoint
CAMEL-16899
camel-jt400 - Documentation or ability to handle parameters returned from RPG program
CAMEL-16898
camel-core - weaveByToUri should match toD EIP
CAMEL-16897
camel-google-sheets - The stream component is not API component
CAMEL-16891
camel-jaxb: avoid using the reflection for SunJaxb21NamespacePrefixMapper
CAMEL-16889
camel-jms - Artemis streaming mode should be supported on producer when using pooled CF
CAMEL-16883
camel-google-pubsub - Support GKE's workload identity
CAMEL-16882
camel-debezium - Add ddl sql output in exchange header to the camel-debezium
CAMEL-16873
Route template parameter are not replaced when dumpRoutesAsXML
CAMEL-16864
camel-core - Mis configuring endpoints should report error if reference lookup is wrongly configured
CAMEL-16858
Enhance SjmsPollingConsumer to take messageSelector option into consideration
CAMEL-16852
Common package for HuaweiCloud components
CAMEL-16851
camel-salesforce: JWT audience value is wrong in some cases
CAMEL-16844
component docs - Tables for component vs endpoint options should have more clear titles
CAMEL-16830
Use GrpcSslContexts.configure for gRPC producer sslContext configuration
CAMEL-16828
Subclasses of ServiceCallConfiguration should not need to be registered for reflection
CAMEL-16824
camel-jpa - Do not lose headers
CAMEL-16823
camel-kamelet - Kamelet EIP should support dynamic endpoints from toD or recipientList
CAMEL-16822
camel-core - CamelContext - getComponentNames should return Set and not List
CAMEL-16816
Change log component throughput counters to long
CAMEL-16813
[Doc] RAW function - escape ) character
CAMEL-16792
camel-core - OGNL `properties` variable should use `allProperties`
CAMEL-16790
camel-pulsar is prone to uneven message distribution with large backlog
CAMEL-16781
camel-json-validator defaults to an old JSON schema version
CAMEL-16780
camel-json-validator does not work with local referenced schema
CAMEL-16777
camel-core - Add constant() overload that adds a trim parameter
CAMEL-16760
camel-core - Dataformat models with Class<?> should use the loaded class directly
CAMEL-16759
camel-core - Kamelet add support for factory method in #class local bean
CAMEL-16756
Improve handling of Vert.x Buffer payloads in platform-http-vertx
CAMEL-16753
camel-main - Split main documentation into categories
CAMEL-16750
Do not propagate exception when concurrent FILE component consumers try to acquire lock in JdbcMessageIdRepository
CAMEL-16748
camel-main - Setting thread pool configuration uses reflection for custom pools
CAMEL-16747
camel-core - Log should show all properties
CAMEL-16739
camel-websocket - Provide connection relative path for routing
CAMEL-16605
camel-zipkin custom tags should be attached to exchange automatically
CAMEL-16392
Camel-Pulsar: Make the client configurable from component parameters
CAMEL-16374
camel-core - OnCompletion - Allow to define onFailure and onComplete on the same onCompletion
CAMEL-16237
camel-http - Allow to easily set user-agent on component level
CAMEL-16122
camel-graphql - Add support for query via body or header
CAMEL-15864
Need way to dynamically set graphql variables
CAMEL-15663
camel-json-validator should return full error message by default

New Feature (20)

CAMEL-16983
camel-spring-main - Add option to allow multiple camelContext when migrating from legacy Spring XML files
CAMEL-16979
Camel component // Huawei Cloud Image Recognition Service
CAMEL-16944
Camel component // Huawei Cloud Image Recognition Component
CAMEL-16876
Camel Component // Huawei Cloud DMS Component
CAMEL-16833
camel-core - LambdaEndpointRouteBuilder
CAMEL-16819
camel-core - Add support for configurable ExceptionPolicyStrategy in error handler
CAMEL-16773
camel-quartz - ScheduledPollConsumer should support quartz trigger and job parameters
CAMEL-16770
Add support for caching JDBC Idempotent Repository
CAMEL-16768
camel-core - Allow to use BiFunction as AggregationStrategy
CAMEL-16758
Camel Component // Huawei Cloud OBS Component
CAMEL-16738
camel-websocket - Support for websocket subprotocols
CAMEL-16630
camel-core - Route model to allow inlined local beans for XML and other DSLs
CAMEL-16589
[camel-azure-servicebus] Create Azure ServiceBus component
CAMEL-16588
[camel-azure-storage-blob] Add ChangeFeed support to camel-azure-storage-blob in order to capture blob events
CAMEL-16379
Support for JDK 16
CAMEL-16088
camel-karaf - Create camel-azure-storage-datalake Karaf feature
CAMEL-15955
camel-core - API and SPI for Camel components to resume from offset
CAMEL-13768
camel-kafka: seek to specific offset and KafkaConsumer access
CAMEL-13590
creation of JSON-Patch component
CAMEL-12879
Implement MDC Logging Integration for camel-opentracing Similar to CAMEL-12721

Sub-task (3)

CAMEL-16968
tests in camel-salesforce failed with JDK17
CAMEL-16961
NettySSLClientCertHeadersTest in camel-netty failed with JDK17
CAMEL-16959
tests in camel-crypto failed with JDK17

Task (29)

CAMEL-17003
camel-core - doc changes and website build error
CAMEL-16993
camel-kafka: update migration guide
CAMEL-16989
Spring-redis: Add header constans to the doc
CAMEL-16949
camel-kafka: investigate alternatives to remove Thread.sleep from the record fetcher
CAMEL-16935
camel-main and camel-base-engine both exports org.apache.camel.main package
CAMEL-16928
camel-kafka: usage of deprecated method may cause Camel to block indefinitely
CAMEL-16914
camel-kafka: possible corruption of idempotency messages when using KafkaIdempotentRepository
CAMEL-16885
Camel-Json-Patch: Create SB Starter
CAMEL-16884
Camel-Json-Patch: Create Karaf feature
CAMEL-16881
camel-catalog - Remove the documentation files (adoc) as they are not in use
CAMEL-16869
camel-dozer - deprecate the dozer type converter
CAMEL-16867
upgrade to maven wrapper 3.8.2
CAMEL-16854
Component docs -- generate tables from json during website build
CAMEL-16847
camel-kubernetes: upgrade client version
CAMEL-16842
camel-jbang - Cannot build on JDK8
CAMEL-16840
camel-cloud - The generated configurer for kubernetes, consul etc jumps between List and String
CAMEL-16838
camel-kubernetes: configmap documentation refers to invalid query parameters
CAMEL-16831
Upgrade to apache 24 parent in pon.xml
CAMEL-16817
camel-karaf - Error building with maven 3.8.1
CAMEL-16803
remove unnecessary dependency from JDK9+ profile
CAMEL-16798
JdbcCachedMessageIdempotentRepository broken on case changing SQL implementations
CAMEL-16786
JARs with missing label
CAMEL-16765
Update Camel K Serverless api examples to not use --property-file
CAMEL-16752
camel-spring feature should install camel-spring-xml bundle
CAMEL-16421
component summary doc - Move the camel-xxx-summary.adoc to parent folder
CAMEL-16184
camel-test - Deprecate junit 4.x test modules
CAMEL-15939
camel-website - Remove old FAQs
CAMEL-13215
camel-kafka -consumerCount vs consumerStreams problem with pool size
CAMEL-12671
camel-iec60870 - Add documentation for missing field

Test (8)

CAMEL-16954
Some camel-spring-cloud tests fail with ClassNotFoundException
CAMEL-16939
XPathTransformTest only check JDK ea version when it's 16-ea
CAMEL-16911
The test case SpringJacksonJsonDataFormatTest fails
CAMEL-16886
NewCommentsConsumerTest#singleIssueCommentsTest fails intermitently
CAMEL-16839
camel-kubernetes: some tests are failing
CAMEL-16814
camel-jms - a testcase to demonstrate that Messages filing to amq if using onCompletion() and transacted=true.
CAMEL-16784
camel-ftp - Disable some FTP tests
CAMEL-15696
Spark tests fail with CAMEL_SPARK_HIVE_TESTS=true

Wish (1)

CAMEL-16388
camel-salesforce: drop support for XML as a serialization format

Keys

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