You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Andrea Cosentino (Jira)" <ji...@apache.org> on 2026/08/22 17:40:00 UTC
[jira] [Updated] (CAMEL-24420) camel-hazelcast: Apply the default JavaSerializationFilterConfig to Camel-built client configurations
[ https://issues.apache.org/jira/browse/CAMEL-24420?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrea Cosentino updated CAMEL-24420:
-------------------------------------
Description:
CAMEL-23414 added {{HazelcastSerializationFilterHelper.applyDefault(Config)}} and applied it to the Hazelcast configurations that Camel builds itself, i.e. when the user supplies neither a {{Config}} nor a {{HazelcastInstance}}. CAMEL-24413 then covered {{ReplicatedHazelcastAggregationRepository#doStart()}}, which had been missed because it overrides {{doStart()}} without calling {{super.doStart()}}.
One Camel-built configuration path is still not covered.
h4. HazelcastDefaultComponent#getOrCreateHzClientInstance()
With {{hazelcastMode=client}}, and when neither a referenced {{ClientConfig}} nor {{hazelcastConfigUri}} is supplied, Camel builds {{new XmlClientConfigBuilder().build()}} and creates the client without applying a default filter. The node-mode counterpart {{getOrCreateHzInstance()}} does apply it on the equivalent branch, so the two modes behave differently for an otherwise identical endpoint configuration.
{{ClientConfig}} exposes the same {{SerializationConfig}} as {{Config}}, so the helper needs a {{ClientConfig}} overload.
h4. Proposed change
* Add an {{applyDefault(ClientConfig)}} overload to {{HazelcastSerializationFilterHelper}}, sharing the existing logic.
* Call it on the Camel-built branch of {{getOrCreateHzClientInstance()}}, mirroring {{getOrCreateHzInstance()}}.
* Extend {{HazelcastSerializationFilterHelperTest}} to cover the new overload.
* Update the upgrade guide.
As established by CAMEL-23414, a user-supplied {{Config}}/{{ClientConfig}} or a pre-built {{HazelcastInstance}} is left untouched.
was:
CAMEL-23414 added {{HazelcastSerializationFilterHelper.applyDefault(Config)}} and applied it to the Hazelcast configurations that Camel builds itself, i.e. when the user supplies neither a {{Config}} nor a {{HazelcastInstance}}. Two Camel-built configuration paths were not covered and are therefore inconsistent with the behaviour documented in the 4.21 upgrade guide.
h4. 1. ReplicatedHazelcastAggregationRepository#doStart()
The class extends {{HazelcastAggregationRepository}} but overrides {{doStart()}} with its own copy of the bootstrap block rather than delegating to the parent, so it did not pick up the parent's change. It builds {{new XmlConfigBuilder().build()}} and calls {{Hazelcast.newHazelcastInstance(cfg)}} without {{applyDefault(cfg)}}, while {{HazelcastAggregationRepository#doStart()}} does call it.
h4. 2. HazelcastDefaultComponent#getOrCreateHzClientInstance()
With {{hazelcastMode=client}}, and when neither a referenced {{ClientConfig}} nor {{hazelcastConfigUri}} is supplied, Camel builds {{new XmlClientConfigBuilder().build()}} and creates the client without applying a default filter. {{ClientConfig}} exposes the same {{SerializationConfig}}, so the helper needs a {{ClientConfig}} overload.
h4. Proposed change
* Call {{HazelcastSerializationFilterHelper.applyDefault(cfg)}} in {{ReplicatedHazelcastAggregationRepository#doStart()}} before {{Hazelcast.newHazelcastInstance(cfg)}}, matching the parent class.
* Add an {{applyDefault(ClientConfig)}} overload and call it on the Camel-built branch of {{getOrCreateHzClientInstance()}}.
* Extend {{HazelcastSerializationFilterHelperTest}} to cover both.
* Update the upgrade guide, which currently lists only the paths covered by CAMEL-23414.
As established by CAMEL-23414, a user-supplied {{Config}}/{{ClientConfig}} or a pre-built {{HazelcastInstance}} is left untouched.
Applies to main and the camel-4.22.x, camel-4.18.x and camel-4.14.x branches.
Summary: camel-hazelcast: Apply the default JavaSerializationFilterConfig to Camel-built client configurations (was: camel-hazelcast: Apply the default JavaSerializationFilterConfig to the remaining Camel-built configurations)
> camel-hazelcast: Apply the default JavaSerializationFilterConfig to Camel-built client configurations
> -----------------------------------------------------------------------------------------------------
>
> Key: CAMEL-24420
> URL: https://issues.apache.org/jira/browse/CAMEL-24420
> Project: Camel
> Issue Type: Task
> Components: camel-hazelcast
> Reporter: Andrea Cosentino
> Assignee: Andrea Cosentino
> Priority: Major
>
> CAMEL-23414 added {{HazelcastSerializationFilterHelper.applyDefault(Config)}} and applied it to the Hazelcast configurations that Camel builds itself, i.e. when the user supplies neither a {{Config}} nor a {{HazelcastInstance}}. CAMEL-24413 then covered {{ReplicatedHazelcastAggregationRepository#doStart()}}, which had been missed because it overrides {{doStart()}} without calling {{super.doStart()}}.
> One Camel-built configuration path is still not covered.
> h4. HazelcastDefaultComponent#getOrCreateHzClientInstance()
> With {{hazelcastMode=client}}, and when neither a referenced {{ClientConfig}} nor {{hazelcastConfigUri}} is supplied, Camel builds {{new XmlClientConfigBuilder().build()}} and creates the client without applying a default filter. The node-mode counterpart {{getOrCreateHzInstance()}} does apply it on the equivalent branch, so the two modes behave differently for an otherwise identical endpoint configuration.
> {{ClientConfig}} exposes the same {{SerializationConfig}} as {{Config}}, so the helper needs a {{ClientConfig}} overload.
> h4. Proposed change
> * Add an {{applyDefault(ClientConfig)}} overload to {{HazelcastSerializationFilterHelper}}, sharing the existing logic.
> * Call it on the Camel-built branch of {{getOrCreateHzClientInstance()}}, mirroring {{getOrCreateHzInstance()}}.
> * Extend {{HazelcastSerializationFilterHelperTest}} to cover the new overload.
> * Update the upgrade guide.
> As established by CAMEL-23414, a user-supplied {{Config}}/{{ClientConfig}} or a pre-built {{HazelcastInstance}} is left untouched.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)