Apache camel 3.12.0 Release

New and Noteworthy

This release is the new Camel 3.12.0 minor release.

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 the camel-spring-boot-dependencies Bill of Materials (BOM):

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.apache.camel.springboot</groupId>
      <artifactId>camel-spring-boot-dependencies</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 (30)

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-16855
camel-karaf - Remove <repository></repository> from camel karaf features repo
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.