Apache camel 4.18.5 Release
New and Noteworthy
This release is the new Camel 4.18.5 LTS 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.18.5</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.18.5</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-4.18.5-src.zip (Sources) | PGP Signature, SHA512 Checksum |
| apache-camel-4.18.5-sbom.xml (SBOM, CycloneDX XML) | PGP Signature, SHA512 Checksum |
| apache-camel-4.18.5-sbom.json (SBOM, CycloneDX JSON) | PGP Signature, SHA512 Checksum |
Git tag checkout
Release is tagged with camel-4.18.5 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.18.5
Resolved issues
Here is a list of all the issues that have been resolved for this release
Bug (75)
- CAMEL-25437
- camel-jbang - camel run --prop key=value with a space is silently ignored
- CAMEL-25227
- camel-azure-eventhubs: partition header conflict and no default header filter
- CAMEL-25164
- camel-infinispan - the aggregation repositories recover a completed exchange without the message that completed the group
- CAMEL-25103
- camel-vertx - Client authentication, cipher suites and protocols of SSLContextParameters are not applied
- CAMEL-25085
- Rest DSL: under json/xml binding a response without Content-Type ignores the verb's produces
- CAMEL-25023
- camel-util - IOHelper.copy counts copied bytes in an int, so zipFile/tarFile maxDecompressedSize values of 2 GiB or more are not enforced
- CAMEL-24973
- camel-util - URISupport.sanitizeUri does not follow the endpoint URI parser for RAW values, userinfo, dash-case option names and additional keywords
- CAMEL-24935
- camel-pulsar - the producer replaces the message body with the MessageId
- CAMEL-24932
- camel-pulsar - the polling loop dies on a NullPointerException when a receive fails
- CAMEL-24811
- camel-servlet - async=true without executorRef completes the AsyncContext before a truly-asynchronous route finishes
- CAMEL-24691
- camel-saxon - align XQueryBuilder with secure XML parsing defaults
- CAMEL-24668
- Camel MLLP consumer discards pipelined HL7 messages that arrive in a single TCP read
- CAMEL-24651
- Regression on Camel 4.x NPE on evaluation of a Simple expression ${exception.stacktrace}
- CAMEL-24632
- SSLException when GET/POST to https endpoint with proxy setting using camel-http component
- CAMEL-24630
- camel-kamelet: supervised route reload creates duplicate internal routes and causes context console NPE
- CAMEL-24626
- camel-master: follow-ups to CAMEL-24583 - leadership lock, cancelled task registry entries, backoff documentation
- CAMEL-24623
- camel-infinispan: the QUERY operation silently returns the input when no query builder is set
- CAMEL-24622
- camel-infinispan: the aggregation repository implements RecoverableAggregationRepository without a recovery store
- CAMEL-24594
- RestBindingAdvice response marshalling failure is silently swallowed
- CAMEL-24593
- camel-platform-http-starter - accepted multipart uploads are copied to the servlet temp directory and never deleted
- CAMEL-24591
- camel-seda - Send fails with "No queue available" after producer route restart (regression from CAMEL-24408)
- CAMEL-24573
- CXF REST: UnsupportedOperationException when copying factory bean with fixed-size features list
- CAMEL-24545
- Camel Shutdown Locked State With ZookeeprCluster Service
- CAMEL-24535
- camel-tensorflow-serving: the Target and Credentials headers are declared but never read
- CAMEL-24534
- camel-qdrant: the embeddings data-type transformer casts every metadata value to String
- CAMEL-24530
- camel-djl: DJLConverter leaks the InputStream opened from File/Path bodies
- CAMEL-24529
- camel-djl: the loaded ZooModel is never closed (native-memory leak on restart)
- CAMEL-24526
- camel-djl: the zoo linear/softmax regression predictors are unimplemented no-ops
- CAMEL-24495
- Authentication-type detection is not triggered via camel-salesforce-maven-plugin. It still uses grant-type USERNAME_PASSWORD
- CAMEL-24493
- camel-ibm-cos: the producer ignores multiPartUpload, partSize, storageClass and deleteAfterWrite options
- CAMEL-24491
- camel-ibm-cos: consumer in-progress deduplication is inert, causing duplicate delivery
- CAMEL-24490
- camel-ibm-watsonx-ai: the timeout option is never applied to the watsonx.ai service clients
- CAMEL-24488
- camel-ibm-watson-speech-to-text: WatsonSpeechToTextProducer leaks the audio FileInputStream
- CAMEL-24475
- camel-xpath - documentType=InputSource evaluates the payload with an unhardened XML parser
- CAMEL-24470
- camel-ibm-secrets-manager: IBMEventStreamReloadTriggerTask rejects Event Stream credentials provided via environment variables
- CAMEL-24468
- camel-ibm-secrets-manager - fix defects in IBMSecretsManagerPropertiesFunction (env-var credentials rejected, secret version pin ignored, missing KV field returns "null")
- CAMEL-24457
- Camel Zookeeper Cluster Split brain issue when leader is isolated
- CAMEL-24456
- camel-http - OAuth2 token cache key omits tokenEndpoint, scope and resourceIndicator
- CAMEL-24455
- camel-platform-http - any path starting with "proxy" selects HTTP proxy mode
- CAMEL-24454
- camel-mllp - logPhi defaults to true, so message content is written to the log at INFO/WARN
- CAMEL-24453
- camel-platform-http - request-header echo suppression compares header names case-sensitively
- CAMEL-24452
- camel-http - credentials are sent to redirect targets on a different host
- CAMEL-24450
- camel-jetty - enableCORS installs Jetty's CrossOriginFilter with its allow-all defaults
- CAMEL-24449
- camel-core - saga coordinator is selected from the unprefixed Long-Running-Action message header
- CAMEL-24448
- camel-keycloak - introspection issuer validation is skipped when the iss claim is absent
- CAMEL-24447
- camel-pqc - FileBasedKeyLifecycleManager writes private keys with default file permissions
- CAMEL-24445
- camel-pqc - producer shares one Signature instance across concurrent exchanges without synchronization
- CAMEL-24443
- camel-knative-http - enabling SSL without a truststore falls back to trusting all certificates
- CAMEL-24442
- camel-thrift - unmarshal deserializes into and returns a single shared instance
- CAMEL-24441
- camel-crypto-pgp - unmarshal accepts unsigned and non-integrity-protected messages by default
- CAMEL-24439
- camel-shiro - presented password is not verified when the thread subject already matches the username
- CAMEL-24436
- camel-platform-http-vertx - CORS handler allows any origin and always sends Access-Control-Allow-Credentials
- CAMEL-24429
- camel-as2 - ResponseMDN keeps per-request signing keys in shared mutable instance fields
- CAMEL-24427
- camel-servlet, camel-jetty - fileNameExtWhitelist is checked against the wrong value in one binding and absent in the other
- CAMEL-24425
- camel-azure-storage-blob - sasToken is not marked as a secret
- CAMEL-24424
- camel-vertx-http - REST header filter strategy applies the inbound rules on the outbound direction
- CAMEL-24423
- camel-tika - parsed document metadata is copied to exchange headers without filtering
- CAMEL-24419
- camel-mail - MimeMultipartDataFormat unmarshal does not filter the mail.smtp/mail.smtps header namespace
- CAMEL-24417
- camel-as2 - asynchronous MDN delivery address is used without scheme validation and always over a plain socket
- CAMEL-24413
- camel-hazelcast - ReplicatedHazelcastAggregationRepository does not apply the default serialization filter
- CAMEL-24412
- camel-netty-http - security constraint lookup must use the same case-insensitive path matching as dispatch
- CAMEL-24411
- camel-oauth - stop the route when the OAuth processors do not authenticate the request
- CAMEL-24409
- rest-dsl - Binary data corrupted by rest client request validator
- CAMEL-24408
- SEDA discardIfNoConsumers breaks after consumer removal when sharing the same URI
- CAMEL-24407
- simple predicate fails for long digital strings
- CAMEL-24392
- BacklogTracerRouteAdvice drains non-re-readable InputStream body before stream caching
- CAMEL-24382
- camel-azure-cosmosdb: change-feed consumer checkpoints the lease before the exchange is processed, losing events on failure
- CAMEL-24380
- camel-spring-boot - Regression in platform-http/platform-http-starter timeout handling
- CAMEL-24350
- camel-google-pubsub: producer NPEs on non-convertible headers and drops non-Exchange list elements
- CAMEL-24349
- camel-google-functions: createFunction fails with an opaque NPE when required headers are missing
- CAMEL-24348
- camel-google-bigquery: NPEs on a null body or unknown job id, and insertId is ignored for List bodies
- CAMEL-24346
- camel-google-sheets: splitResults always reports range index 1 and NPEs on an empty range
- CAMEL-24345
- camel-google-vertexai: streamOutputMode and jsonMode options are never applied
- CAMEL-24344
- camel-google-mail: raw option always returns a null body and non-multipart messages produce no body
- CAMEL-24342
- camel-google-storage: producer sets wrong blob metadata and NPEs on missing objects
Improvement (33)
- CAMEL-25225
- camel-spring-ws: apply the HeaderFilterStrategy to producer response headers
- CAMEL-25197
- camel-cli-connector - add a WebSocket transport so developer tools can drive running integrations
- CAMEL-25162
- camel-oauth - confine the reconstructed post-login URL to the configured redirect URI origin
- CAMEL-25087
- camel-coap - add a muteException consumer option
- CAMEL-24936
- camel-netty: NettyConverter.toByteArray should copy only the readable bytes of the ByteBuf
- CAMEL-24902
- camel-keycloak: honor token expiry (exp) when caching introspection results
- CAMEL-24901
- camel-aws2-s3: restrict Simple expression evaluation of key/bucket to configured values
- CAMEL-24894
- camel-docling: make output path handling consistent with input path and custom-argument handling
- CAMEL-24893
- camel-docling: also constrain absolute paths in custom-argument path validation
- CAMEL-24677
- camel-smooks: align XML reader configuration with the other XML components
- CAMEL-24676
- camel-jgroups: add a configurable deserialization filter and document serialization hardening for the consumer
- CAMEL-24653
- SSLCertTrustTest: replace external badssl.com dependency with local self-signed HTTPS endpoint
- CAMEL-24652
- camel-servlet, camel-jetty, camel-platform-http-vertx - consolidate the fileNameExtWhitelist check and tighten the extension match
- CAMEL-24650
- camel-http-common: lift the multipart fileNameExtWhitelist check into DefaultHttpBinding
- CAMEL-24627
- camel-file: resolve symlinks when containing local work directory downloads (parity with camel-azure/google-storage)
- CAMEL-24605
- camel-fop: align FopProducer XML transformation with Camel's standard secure XML processing configuration
- CAMEL-24577
- camel-platform-http-starter - path variable headers are derived from the undecoded request URI
- CAMEL-24576
- camel-dynamic-router: align control endpoint parameter handling with the allowTemplateFromHeader convention
- CAMEL-24574
- camel-google-bigquery - clarify that ${name} is literal substitution and steer value parameters to @name
- CAMEL-24504
- camel-spring-boot - extend the SpringTypeConverter String guard beyond InputStream targets
- CAMEL-24502
- Build and CI hardening - workflow token scope, job separation and Maven wrapper checksums
- CAMEL-24501
- camel-spring-boot-generator-maven-plugin - generated configuration binding drops values silently in three places
- CAMEL-24499
- camel-spring-boot - route detail view bypasses the route.start.exception serialization filter
- CAMEL-24497
- camel-undertow-spring-security-starter - JWT decoder is built without an issuer or audience validator
- CAMEL-24496
- camel-platform-http-starter - align SpringBootPlatformHttpBinding multipart and path handling with the other HTTP bindings
- CAMEL-24487
- camel-ftp/sftp/mina-sftp/azure-files/smb: contain remote consumer operations within the configured directory
- CAMEL-24478
- camel-grpc - add a muteException consumer option
- CAMEL-24477
- camel-cxf - add a muteException consumer option
- CAMEL-24476
- camel-mina - add a muteException consumer option
- CAMEL-24437
- camel-oauth - authorization code flow sends no state, nonce or PKCE parameter
- CAMEL-24428
- camel-knative - add a muteException consumer option
- CAMEL-24422
- camel-docling: make message body input-source interpretation explicit and configurable
- CAMEL-24421
- camel-spring-redis: apply a configurable ObjectInputFilter to the default JDK serializer
Task (5)
- CAMEL-24900
- camel-jcr - apply header filtering when mapping JCR node properties to Exchange headers
- CAMEL-24895
- camel-mustache, camel-chunk - align Exchange header constant names with Camel naming convention
- CAMEL-24549
- camel-google-storage: Use symlink-aware containment for local downloads
- CAMEL-24548
- camel-azure-storage: Use symlink-aware containment for local downloads
- CAMEL-24420
- camel-hazelcast: Apply the default JavaSerializationFilterConfig to Camel-built client configurations
Test (1)
- CAMEL-24480
- CliConfigITCase.setLocalMavenRepoTest is broken on 4.18.x
Keys
You can verify your download by following these procedures and using these KEYS.