Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,66 @@ Note that manual migration is still required.
See the xref:camel-upgrade-recipes-tool.adoc[documentation] page for details.
====

== Upgrading from 4.14.3 to 4.18.8
== Upgrading from 4.14.3 to 4.14.8

=== camel-core

The `org.apache.camel.support.DefaultHeaderFilterStrategy` changed default setting for lowercase from `false` to `true`.

=== camel-jms

JMS `ObjectMessage` support is now disabled by default. Java object serialization is a recurring source
of security issues, and Camel JMS routes rarely use `ObjectMessage` in practice. The component will now
refuse to create or read `jakarta.jms.ObjectMessage` instances unless the new `objectMessageEnabled`
option is explicitly set to `true`.

This affects the following endpoint/component options that rely on `ObjectMessage` internally:

* `jmsMessageType=Object` (or sending a `Serializable` body that is auto-detected as `Object`)
* `transferExchange=true`
* `transferException=true`
* receiving a JMS `ObjectMessage` produced by an external sender

To restore the previous behavior, enable the option at the component or endpoint level:

[source,properties]
----
camel.component.jms.objectMessageEnabled=true
----

Or, on a single endpoint:

[source,text]
----
jms:queue:foo?objectMessageEnabled=true
----

=== camel-hazelcast

Hazelcast instances created and managed by Camel (when no user-supplied
`Config` or `HazelcastInstance` is provided) now apply a default
`JavaSerializationFilterConfig` on the `SerializationConfig` of the
`Config` built by Camel. The default whitelists the class name prefixes
`java.`, `javax.`, `org.apache.camel.` and blacklists `java.net.`.

This affects:

* `camel-hazelcast` component endpoints when neither `hazelcastInstance`,
`hazelcastConfigUri`, nor a referenced `Config` is supplied
* `HazelcastAggregationRepository` and `HazelcastIdempotentRepository`
when no `hazelcastInstance` is supplied
* `HazelcastUtil#newInstance()` (no-arg)

A user-supplied `JavaSerializationFilterConfig` (set on the
`SerializationConfig` of a `Config` provided via `hazelcastConfigUri`, a
referenced `Config` bean, or already wired into a pre-built
`HazelcastInstance`) is respected and is not overwritten.

Applications that store classes outside the default whitelist on a
Hazelcast topic, queue, map, list, set, or in one of the repositories
above must provide their own `Config` with a
`JavaSerializationFilterConfig` configured for their class names.

== Upgrading from 4.14.2 to 4.14.3

=== camel-tika
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,60 @@ See the xref:camel-upgrade-recipes-tool.adoc[documentation] page for details.

The `org.apache.camel.support.DefaultHeaderFilterStrategy` changed default setting for lowercase from `false` to `true`.

=== camel-jms

JMS `ObjectMessage` support is now disabled by default. Java object serialization is a recurring source
of security issues, and Camel JMS routes rarely use `ObjectMessage` in practice. The component will now
refuse to create or read `jakarta.jms.ObjectMessage` instances unless the new `objectMessageEnabled`
option is explicitly set to `true`.

This affects the following endpoint/component options that rely on `ObjectMessage` internally:

* `jmsMessageType=Object` (or sending a `Serializable` body that is auto-detected as `Object`)
* `transferExchange=true`
* `transferException=true`
* receiving a JMS `ObjectMessage` produced by an external sender

To restore the previous behavior, enable the option at the component or endpoint level:

[source,properties]
----
camel.component.jms.objectMessageEnabled=true
----

Or, on a single endpoint:

[source,text]
----
jms:queue:foo?objectMessageEnabled=true
----

=== camel-hazelcast

Hazelcast instances created and managed by Camel (when no user-supplied
`Config` or `HazelcastInstance` is provided) now apply a default
`JavaSerializationFilterConfig` on the `SerializationConfig` of the
`Config` built by Camel. The default whitelists the class name prefixes
`java.`, `javax.`, `org.apache.camel.` and blacklists `java.net.`.

This affects:

* `camel-hazelcast` component endpoints when neither `hazelcastInstance`,
`hazelcastConfigUri`, nor a referenced `Config` is supplied
* `HazelcastAggregationRepository` and `HazelcastIdempotentRepository`
when no `hazelcastInstance` is supplied
* `HazelcastUtil#newInstance()` (no-arg)

A user-supplied `JavaSerializationFilterConfig` (set on the
`SerializationConfig` of a `Config` provided via `hazelcastConfigUri`, a
referenced `Config` bean, or already wired into a pre-built
`HazelcastInstance`) is respected and is not overwritten.

Applications that store classes outside the default whitelist on a
Hazelcast topic, queue, map, list, set, or in one of the repositories
above must provide their own `Config` with a
`JavaSerializationFilterConfig` configured for their class names.

== Upgrading from 4.18.0 to 4.18.1

=== camel-bom
Expand Down
Loading