This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new 1e0d2a4d2fc3 CAMEL-22041 In hazelcast 5.5+, the CP subsystem is only 
available in the enterprise edition of hazelcast.  In order to prepare for an 
upgrade to hazelcast 5.5 or hazelcast 5.6, Deprecate hazelcast-atomicvalue, add 
hazelcast-pncounter as a partial replacement, replace use of 
java.util.concurrent.locks.Lock. (#21551)
1e0d2a4d2fc3 is described below

commit 1e0d2a4d2fc3c11e9639e6dba9f100c4add04097
Author: Tom Cunningham <[email protected]>
AuthorDate: Mon Feb 23 01:12:05 2026 -0500

    CAMEL-22041 In hazelcast 5.5+, the CP subsystem is only available in the 
enterprise edition of hazelcast.  In order to prepare for an upgrade to 
hazelcast 5.5 or hazelcast 5.6, Deprecate hazelcast-atomicvalue, add 
hazelcast-pncounter as a partial replacement, replace use of 
java.util.concurrent.locks.Lock. (#21551)
---
 .../org/apache/camel/catalog/components.properties |   1 +
 .../catalog/components/hazelcast-atomicvalue.json  |   2 +-
 ...t-atomicvalue.json => hazelcast-pncounter.json} |  19 +--
 .../HazelcastPNCounterComponentConfigurer.java     |  69 +++++++++
 .../HazelcastPNCounterEndpointConfigurer.java      |  75 ++++++++++
 .../HazelcastPNCounterEndpointUriFactory.java      |  75 ++++++++++
 .../atomicnumber/hazelcast-atomicvalue.json        |   2 +-
 .../hazelcast/pncounter/hazelcast-pncounter.json   |  19 +--
 .../services/org/apache/camel/component.properties |   2 +-
 .../org/apache/camel/component/hazelcast-pncounter |   2 +
 .../camel/configurer/hazelcast-pncounter-component |   2 +
 .../camel/configurer/hazelcast-pncounter-endpoint  |   2 +
 .../camel/urifactory/hazelcast-pncounter-endpoint  |   2 +
 .../main/docs/hazelcast-atomicvalue-component.adoc |  13 +-
 ...ent.adoc => hazelcast-pncounter-component.adoc} | 130 +++++++++--------
 .../component/hazelcast/HazelcastCommand.java      |   3 +-
 .../component/hazelcast/HazelcastConstants.java    |   2 +
 .../HazelcastAtomicnumberComponent.java            |   6 +
 .../HazelcastAtomicnumberEndpoint.java             |   5 +
 .../HazelcastAtomicnumberProducer.java             |   6 +
 .../HazelcastPNCounterComponent.java}              |  12 +-
 .../HazelcastPNCounterEndpoint.java}               |  20 +--
 .../HazelcastPNCounterProducer.java}               |  61 ++------
 .../hazelcast/HazelcastAggregationRepository.java  |   7 +-
 .../ReplicatedHazelcastAggregationRepository.java  |  12 +-
 .../hazelcast/HazelcastCamelTestHelper.java        |   4 +
 .../hazelcast/HazelcastErrorMessagesTest.java      |  15 ++
 .../HazelcastPNCounterProducerForSpringTest.java   |  94 ++++++++++++
 .../hazelcast/HazelcastPNCounterProducerTest.java  | 126 ++++++++++++++++
 .../spring/test-camel-context-pncounter.xml        |  70 +++++++++
 .../org/apache/camel/main/components.properties    |   1 +
 .../ROOT/examples/json/hazelcast-pncounter.json    |   1 +
 docs/components/modules/ROOT/nav.adoc              |   1 +
 .../ROOT/pages/hazelcast-pncounter-component.adoc  |   1 +
 .../component/ComponentsBuilderFactory.java        |  14 ++
 .../HazelcastPncounterComponentBuilderFactory.java | 161 +++++++++++++++++++++
 .../builder/endpoint/EndpointBuilderFactory.java   |   1 +
 .../camel/builder/endpoint/EndpointBuilders.java   |   1 +
 .../builder/endpoint/StaticEndpointBuilders.java   |  44 ++++++
 ...azelcastAtomicnumberEndpointBuilderFactory.java |   3 +
 ... HazelcastPNCounterEndpointBuilderFactory.java} | 112 +++++---------
 .../camel-component-known-dependencies.properties  |   1 +
 42 files changed, 963 insertions(+), 236 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
index 0bedb28dab1d..bd2c8b1365d2 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
@@ -150,6 +150,7 @@ hazelcast-instance
 hazelcast-list
 hazelcast-map
 hazelcast-multimap
+hazelcast-pncounter
 hazelcast-queue
 hazelcast-replicatedmap
 hazelcast-ringbuffer
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/hazelcast-atomicvalue.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/hazelcast-atomicvalue.json
index 9989ea1526ff..86a9f41c33e0 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/hazelcast-atomicvalue.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/hazelcast-atomicvalue.json
@@ -4,7 +4,7 @@
     "name": "hazelcast-atomicvalue",
     "title": "Hazelcast Atomic Number",
     "description": "Increment, decrement, set, etc. Hazelcast atomic number (a 
grid wide number).",
-    "deprecated": false,
+    "deprecated": true,
     "firstVersion": "2.7.0",
     "label": "cache,clustering",
     "javaType": 
"org.apache.camel.component.hazelcast.atomicnumber.HazelcastAtomicnumberComponent",
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/hazelcast-atomicvalue.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/hazelcast-pncounter.json
similarity index 88%
copy from 
catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/hazelcast-atomicvalue.json
copy to 
catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/hazelcast-pncounter.json
index 9989ea1526ff..b525c1d57882 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/hazelcast-atomicvalue.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/hazelcast-pncounter.json
@@ -1,20 +1,20 @@
 {
   "component": {
     "kind": "component",
-    "name": "hazelcast-atomicvalue",
-    "title": "Hazelcast Atomic Number",
-    "description": "Increment, decrement, set, etc. Hazelcast atomic number (a 
grid wide number).",
+    "name": "hazelcast-pncounter",
+    "title": "Hazelcast PN Counter",
+    "description": "Increment, decrement, get, etc. operations on a Hazelcast 
PN Counter (CRDT counter).",
     "deprecated": false,
-    "firstVersion": "2.7.0",
+    "firstVersion": "4.19.0",
     "label": "cache,clustering",
-    "javaType": 
"org.apache.camel.component.hazelcast.atomicnumber.HazelcastAtomicnumberComponent",
-    "supportLevel": "Stable",
+    "javaType": 
"org.apache.camel.component.hazelcast.pncounter.HazelcastPNCounterComponent",
+    "supportLevel": "Preview",
     "groupId": "org.apache.camel",
     "artifactId": "camel-hazelcast",
     "version": "4.19.0-SNAPSHOT",
-    "scheme": "hazelcast-atomicvalue",
+    "scheme": "hazelcast-pncounter",
     "extendsScheme": "",
-    "syntax": "hazelcast-atomicvalue:cacheName",
+    "syntax": "hazelcast-pncounter:cacheName",
     "async": false,
     "api": false,
     "consumerOnly": false,
@@ -29,9 +29,6 @@
     "hazelcastInstance": { "index": 2, "kind": "property", "displayName": 
"Hazelcast Instance", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": "com.hazelcast.core.HazelcastInstance", 
"deprecated": false, "autowired": false, "secret": false, "description": "The 
hazelcast instance reference which can be used for hazelcast endpoint. If you 
don't specify the instance reference, camel use the default hazelcast instance 
from the camel-hazelcast insta [...]
     "hazelcastMode": { "index": 3, "kind": "property", "displayName": 
"Hazelcast Mode", "group": "advanced", "label": "advanced", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "node", "description": 
"The hazelcast mode reference which kind of instance should be used. If you 
don't specify the mode, then the node mode will be the default." }
   },
-  "headers": {
-    "CamelHazelcastOperationType": { "index": 0, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The operation to perform", 
"constantName": 
"org.apache.camel.component.hazelcast.HazelcastConstants#OPERATION" }
-  },
   "properties": {
     "cacheName": { "index": 0, "kind": "path", "displayName": "Cache Name", 
"group": "producer", "label": "", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The name of the cache" },
     "defaultOperation": { "index": 1, "kind": "parameter", "displayName": 
"Default Operation", "group": "producer", "label": "", "required": false, 
"type": "enum", "javaType": 
"org.apache.camel.component.hazelcast.HazelcastOperation", "enum": [ "put", 
"delete", "get", "update", "query", "getAll", "clear", "putIfAbsent", "addAll", 
"removeAll", "retainAll", "evict", "evictAll", "valueCount", "containsKey", 
"containsValue", "getKeys", "removeValue", "increment", "decrement", 
"setValue", "de [...]
diff --git 
a/components/camel-hazelcast/src/generated/java/org/apache/camel/component/hazelcast/pncounter/HazelcastPNCounterComponentConfigurer.java
 
b/components/camel-hazelcast/src/generated/java/org/apache/camel/component/hazelcast/pncounter/HazelcastPNCounterComponentConfigurer.java
new file mode 100644
index 000000000000..b5eb5ea13e06
--- /dev/null
+++ 
b/components/camel-hazelcast/src/generated/java/org/apache/camel/component/hazelcast/pncounter/HazelcastPNCounterComponentConfigurer.java
@@ -0,0 +1,69 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.hazelcast.pncounter;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.EndpointSchemaGeneratorMojo")
+@SuppressWarnings("unchecked")
+public class HazelcastPNCounterComponentConfigurer extends 
PropertyConfigurerSupport implements GeneratedPropertyConfigurer, 
PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        HazelcastPNCounterComponent target = (HazelcastPNCounterComponent) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "autowiredenabled":
+        case "autowiredEnabled": 
target.setAutowiredEnabled(property(camelContext, boolean.class, value)); 
return true;
+        case "hazelcastinstance":
+        case "hazelcastInstance": 
target.setHazelcastInstance(property(camelContext, 
com.hazelcast.core.HazelcastInstance.class, value)); return true;
+        case "hazelcastmode":
+        case "hazelcastMode": target.setHazelcastMode(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "lazystartproducer":
+        case "lazyStartProducer": 
target.setLazyStartProducer(property(camelContext, boolean.class, value)); 
return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "autowiredenabled":
+        case "autowiredEnabled": return boolean.class;
+        case "hazelcastinstance":
+        case "hazelcastInstance": return 
com.hazelcast.core.HazelcastInstance.class;
+        case "hazelcastmode":
+        case "hazelcastMode": return java.lang.String.class;
+        case "lazystartproducer":
+        case "lazyStartProducer": return boolean.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        HazelcastPNCounterComponent target = (HazelcastPNCounterComponent) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "autowiredenabled":
+        case "autowiredEnabled": return target.isAutowiredEnabled();
+        case "hazelcastinstance":
+        case "hazelcastInstance": return target.getHazelcastInstance();
+        case "hazelcastmode":
+        case "hazelcastMode": return target.getHazelcastMode();
+        case "lazystartproducer":
+        case "lazyStartProducer": return target.isLazyStartProducer();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-hazelcast/src/generated/java/org/apache/camel/component/hazelcast/pncounter/HazelcastPNCounterEndpointConfigurer.java
 
b/components/camel-hazelcast/src/generated/java/org/apache/camel/component/hazelcast/pncounter/HazelcastPNCounterEndpointConfigurer.java
new file mode 100644
index 000000000000..9821d418e844
--- /dev/null
+++ 
b/components/camel-hazelcast/src/generated/java/org/apache/camel/component/hazelcast/pncounter/HazelcastPNCounterEndpointConfigurer.java
@@ -0,0 +1,75 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.hazelcast.pncounter;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.EndpointSchemaGeneratorMojo")
+@SuppressWarnings("unchecked")
+public class HazelcastPNCounterEndpointConfigurer extends 
PropertyConfigurerSupport implements GeneratedPropertyConfigurer, 
PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        HazelcastPNCounterEndpoint target = (HazelcastPNCounterEndpoint) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "defaultoperation":
+        case "defaultOperation": 
target.setDefaultOperation(property(camelContext, 
org.apache.camel.component.hazelcast.HazelcastOperation.class, value)); return 
true;
+        case "hazelcastconfiguri":
+        case "hazelcastConfigUri": 
target.setHazelcastConfigUri(property(camelContext, java.lang.String.class, 
value)); return true;
+        case "hazelcastinstance":
+        case "hazelcastInstance": 
target.setHazelcastInstance(property(camelContext, 
com.hazelcast.core.HazelcastInstance.class, value)); return true;
+        case "hazelcastinstancename":
+        case "hazelcastInstanceName": 
target.setHazelcastInstanceName(property(camelContext, java.lang.String.class, 
value)); return true;
+        case "lazystartproducer":
+        case "lazyStartProducer": 
target.setLazyStartProducer(property(camelContext, boolean.class, value)); 
return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "defaultoperation":
+        case "defaultOperation": return 
org.apache.camel.component.hazelcast.HazelcastOperation.class;
+        case "hazelcastconfiguri":
+        case "hazelcastConfigUri": return java.lang.String.class;
+        case "hazelcastinstance":
+        case "hazelcastInstance": return 
com.hazelcast.core.HazelcastInstance.class;
+        case "hazelcastinstancename":
+        case "hazelcastInstanceName": return java.lang.String.class;
+        case "lazystartproducer":
+        case "lazyStartProducer": return boolean.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        HazelcastPNCounterEndpoint target = (HazelcastPNCounterEndpoint) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "defaultoperation":
+        case "defaultOperation": return target.getDefaultOperation();
+        case "hazelcastconfiguri":
+        case "hazelcastConfigUri": return target.getHazelcastConfigUri();
+        case "hazelcastinstance":
+        case "hazelcastInstance": return target.getHazelcastInstance();
+        case "hazelcastinstancename":
+        case "hazelcastInstanceName": return target.getHazelcastInstanceName();
+        case "lazystartproducer":
+        case "lazyStartProducer": return target.isLazyStartProducer();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-hazelcast/src/generated/java/org/apache/camel/component/hazelcast/pncounter/HazelcastPNCounterEndpointUriFactory.java
 
b/components/camel-hazelcast/src/generated/java/org/apache/camel/component/hazelcast/pncounter/HazelcastPNCounterEndpointUriFactory.java
new file mode 100644
index 000000000000..2b6b14e72ea4
--- /dev/null
+++ 
b/components/camel-hazelcast/src/generated/java/org/apache/camel/component/hazelcast/pncounter/HazelcastPNCounterEndpointUriFactory.java
@@ -0,0 +1,75 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.hazelcast.pncounter;
+
+import javax.annotation.processing.Generated;
+import java.net.URISyntaxException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.camel.spi.EndpointUriFactory;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.GenerateEndpointUriFactoryMojo")
+public class HazelcastPNCounterEndpointUriFactory extends 
org.apache.camel.support.component.EndpointUriFactorySupport implements 
EndpointUriFactory {
+
+    private static final String BASE = ":cacheName";
+
+    private static final Set<String> PROPERTY_NAMES;
+    private static final Set<String> SECRET_PROPERTY_NAMES;
+    private static final Map<String, String> MULTI_VALUE_PREFIXES;
+    static {
+        Set<String> props = new HashSet<>(6);
+        props.add("cacheName");
+        props.add("defaultOperation");
+        props.add("hazelcastConfigUri");
+        props.add("hazelcastInstance");
+        props.add("hazelcastInstanceName");
+        props.add("lazyStartProducer");
+        PROPERTY_NAMES = Collections.unmodifiableSet(props);
+        SECRET_PROPERTY_NAMES = Collections.emptySet();
+        MULTI_VALUE_PREFIXES = Collections.emptyMap();
+    }
+
+    @Override
+    public boolean isEnabled(String scheme) {
+        return "hazelcast-pncounter".equals(scheme);
+    }
+
+    @Override
+    public String buildUri(String scheme, Map<String, Object> properties, 
boolean encode) throws URISyntaxException {
+        String syntax = scheme + BASE;
+        String uri = syntax;
+
+        Map<String, Object> copy = new HashMap<>(properties);
+
+        uri = buildPathParameter(syntax, uri, "cacheName", null, true, copy);
+        uri = buildQueryParameters(uri, copy, encode);
+        return uri;
+    }
+
+    @Override
+    public Set<String> propertyNames() {
+        return PROPERTY_NAMES;
+    }
+
+    @Override
+    public Set<String> secretPropertyNames() {
+        return SECRET_PROPERTY_NAMES;
+    }
+
+    @Override
+    public Map<String, String> multiValuePrefixes() {
+        return MULTI_VALUE_PREFIXES;
+    }
+
+    @Override
+    public boolean isLenientProperties() {
+        return false;
+    }
+}
+
diff --git 
a/components/camel-hazelcast/src/generated/resources/META-INF/org/apache/camel/component/hazelcast/atomicnumber/hazelcast-atomicvalue.json
 
b/components/camel-hazelcast/src/generated/resources/META-INF/org/apache/camel/component/hazelcast/atomicnumber/hazelcast-atomicvalue.json
index 9989ea1526ff..86a9f41c33e0 100644
--- 
a/components/camel-hazelcast/src/generated/resources/META-INF/org/apache/camel/component/hazelcast/atomicnumber/hazelcast-atomicvalue.json
+++ 
b/components/camel-hazelcast/src/generated/resources/META-INF/org/apache/camel/component/hazelcast/atomicnumber/hazelcast-atomicvalue.json
@@ -4,7 +4,7 @@
     "name": "hazelcast-atomicvalue",
     "title": "Hazelcast Atomic Number",
     "description": "Increment, decrement, set, etc. Hazelcast atomic number (a 
grid wide number).",
-    "deprecated": false,
+    "deprecated": true,
     "firstVersion": "2.7.0",
     "label": "cache,clustering",
     "javaType": 
"org.apache.camel.component.hazelcast.atomicnumber.HazelcastAtomicnumberComponent",
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/hazelcast-atomicvalue.json
 
b/components/camel-hazelcast/src/generated/resources/META-INF/org/apache/camel/component/hazelcast/pncounter/hazelcast-pncounter.json
similarity index 88%
copy from 
catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/hazelcast-atomicvalue.json
copy to 
components/camel-hazelcast/src/generated/resources/META-INF/org/apache/camel/component/hazelcast/pncounter/hazelcast-pncounter.json
index 9989ea1526ff..b525c1d57882 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/hazelcast-atomicvalue.json
+++ 
b/components/camel-hazelcast/src/generated/resources/META-INF/org/apache/camel/component/hazelcast/pncounter/hazelcast-pncounter.json
@@ -1,20 +1,20 @@
 {
   "component": {
     "kind": "component",
-    "name": "hazelcast-atomicvalue",
-    "title": "Hazelcast Atomic Number",
-    "description": "Increment, decrement, set, etc. Hazelcast atomic number (a 
grid wide number).",
+    "name": "hazelcast-pncounter",
+    "title": "Hazelcast PN Counter",
+    "description": "Increment, decrement, get, etc. operations on a Hazelcast 
PN Counter (CRDT counter).",
     "deprecated": false,
-    "firstVersion": "2.7.0",
+    "firstVersion": "4.19.0",
     "label": "cache,clustering",
-    "javaType": 
"org.apache.camel.component.hazelcast.atomicnumber.HazelcastAtomicnumberComponent",
-    "supportLevel": "Stable",
+    "javaType": 
"org.apache.camel.component.hazelcast.pncounter.HazelcastPNCounterComponent",
+    "supportLevel": "Preview",
     "groupId": "org.apache.camel",
     "artifactId": "camel-hazelcast",
     "version": "4.19.0-SNAPSHOT",
-    "scheme": "hazelcast-atomicvalue",
+    "scheme": "hazelcast-pncounter",
     "extendsScheme": "",
-    "syntax": "hazelcast-atomicvalue:cacheName",
+    "syntax": "hazelcast-pncounter:cacheName",
     "async": false,
     "api": false,
     "consumerOnly": false,
@@ -29,9 +29,6 @@
     "hazelcastInstance": { "index": 2, "kind": "property", "displayName": 
"Hazelcast Instance", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": "com.hazelcast.core.HazelcastInstance", 
"deprecated": false, "autowired": false, "secret": false, "description": "The 
hazelcast instance reference which can be used for hazelcast endpoint. If you 
don't specify the instance reference, camel use the default hazelcast instance 
from the camel-hazelcast insta [...]
     "hazelcastMode": { "index": 3, "kind": "property", "displayName": 
"Hazelcast Mode", "group": "advanced", "label": "advanced", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "node", "description": 
"The hazelcast mode reference which kind of instance should be used. If you 
don't specify the mode, then the node mode will be the default." }
   },
-  "headers": {
-    "CamelHazelcastOperationType": { "index": 0, "kind": "header", 
"displayName": "", "group": "producer", "label": "producer", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The operation to perform", 
"constantName": 
"org.apache.camel.component.hazelcast.HazelcastConstants#OPERATION" }
-  },
   "properties": {
     "cacheName": { "index": 0, "kind": "path", "displayName": "Cache Name", 
"group": "producer", "label": "", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The name of the cache" },
     "defaultOperation": { "index": 1, "kind": "parameter", "displayName": 
"Default Operation", "group": "producer", "label": "", "required": false, 
"type": "enum", "javaType": 
"org.apache.camel.component.hazelcast.HazelcastOperation", "enum": [ "put", 
"delete", "get", "update", "query", "getAll", "clear", "putIfAbsent", "addAll", 
"removeAll", "retainAll", "evict", "evictAll", "valueCount", "containsKey", 
"containsValue", "getKeys", "removeValue", "increment", "decrement", 
"setValue", "de [...]
diff --git 
a/components/camel-hazelcast/src/generated/resources/META-INF/services/org/apache/camel/component.properties
 
b/components/camel-hazelcast/src/generated/resources/META-INF/services/org/apache/camel/component.properties
index 91c3cdcd33cb..8051f6c13e8a 100644
--- 
a/components/camel-hazelcast/src/generated/resources/META-INF/services/org/apache/camel/component.properties
+++ 
b/components/camel-hazelcast/src/generated/resources/META-INF/services/org/apache/camel/component.properties
@@ -1,5 +1,5 @@
 # Generated by camel build tools - do NOT edit this file!
-components=hazelcast-atomicvalue hazelcast-instance hazelcast-list 
hazelcast-map hazelcast-multimap hazelcast-queue hazelcast-replicatedmap 
hazelcast-ringbuffer hazelcast-seda hazelcast-set hazelcast-topic
+components=hazelcast-atomicvalue hazelcast-instance hazelcast-list 
hazelcast-map hazelcast-multimap hazelcast-pncounter hazelcast-queue 
hazelcast-replicatedmap hazelcast-ringbuffer hazelcast-seda hazelcast-set 
hazelcast-topic
 groupId=org.apache.camel
 artifactId=camel-hazelcast
 version=4.19.0-SNAPSHOT
diff --git 
a/components/camel-hazelcast/src/generated/resources/META-INF/services/org/apache/camel/component/hazelcast-pncounter
 
b/components/camel-hazelcast/src/generated/resources/META-INF/services/org/apache/camel/component/hazelcast-pncounter
new file mode 100644
index 000000000000..81eaf0d56555
--- /dev/null
+++ 
b/components/camel-hazelcast/src/generated/resources/META-INF/services/org/apache/camel/component/hazelcast-pncounter
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.hazelcast.pncounter.HazelcastPNCounterComponent
diff --git 
a/components/camel-hazelcast/src/generated/resources/META-INF/services/org/apache/camel/configurer/hazelcast-pncounter-component
 
b/components/camel-hazelcast/src/generated/resources/META-INF/services/org/apache/camel/configurer/hazelcast-pncounter-component
new file mode 100644
index 000000000000..4914da7ccb52
--- /dev/null
+++ 
b/components/camel-hazelcast/src/generated/resources/META-INF/services/org/apache/camel/configurer/hazelcast-pncounter-component
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.hazelcast.pncounter.HazelcastPNCounterComponentConfigurer
diff --git 
a/components/camel-hazelcast/src/generated/resources/META-INF/services/org/apache/camel/configurer/hazelcast-pncounter-endpoint
 
b/components/camel-hazelcast/src/generated/resources/META-INF/services/org/apache/camel/configurer/hazelcast-pncounter-endpoint
new file mode 100644
index 000000000000..9eb6c28589f1
--- /dev/null
+++ 
b/components/camel-hazelcast/src/generated/resources/META-INF/services/org/apache/camel/configurer/hazelcast-pncounter-endpoint
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.hazelcast.pncounter.HazelcastPNCounterEndpointConfigurer
diff --git 
a/components/camel-hazelcast/src/generated/resources/META-INF/services/org/apache/camel/urifactory/hazelcast-pncounter-endpoint
 
b/components/camel-hazelcast/src/generated/resources/META-INF/services/org/apache/camel/urifactory/hazelcast-pncounter-endpoint
new file mode 100644
index 000000000000..8eb9683b96ac
--- /dev/null
+++ 
b/components/camel-hazelcast/src/generated/resources/META-INF/services/org/apache/camel/urifactory/hazelcast-pncounter-endpoint
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.hazelcast.pncounter.HazelcastPNCounterEndpointUriFactory
diff --git 
a/components/camel-hazelcast/src/main/docs/hazelcast-atomicvalue-component.adoc 
b/components/camel-hazelcast/src/main/docs/hazelcast-atomicvalue-component.adoc
index 30a3d55413cc..d5d45c1faa03 100644
--- 
a/components/camel-hazelcast/src/main/docs/hazelcast-atomicvalue-component.adoc
+++ 
b/components/camel-hazelcast/src/main/docs/hazelcast-atomicvalue-component.adoc
@@ -1,10 +1,11 @@
-= Hazelcast Atomic Number Component
+= Hazelcast Atomic Number Component (deprecated)
 :doctitle: Hazelcast Atomic Number
 :shortname: hazelcast-atomicvalue
 :artifactid: camel-hazelcast
 :description: Increment, decrement, set, etc. Hazelcast atomic number (a grid 
wide number).
 :since: 2.7
-:supportlevel: Stable
+:supportlevel: Stable-deprecated
+:deprecated: *deprecated*
 :tabs-sync-option:
 :component-header: Only producer is supported
 //Manually maintained attributes
@@ -15,6 +16,14 @@
 
 *{component-header}*
 
+[WARNING]
+====
+*Deprecated*: This component is deprecated as of Camel 4.19.0 and will be 
removed in a future release.
+
+Since Hazelcast 5.5, IAtomicLong requires the CP Subsystem which is only 
available in Hazelcast Enterprise Edition.
+This component will throw `UnsupportedOperationException` at runtime when used 
with Hazelcast Community Edition 5.5+.
+====
+
 The http://www.hazelcast.com/[Hazelcast] atomic number component is one of 
Camel Hazelcast Components which allows you to access Hazelcast atomic number.
 An atomic number is an object that simply provides a grid wide number (long). 
 
diff --git 
a/components/camel-hazelcast/src/main/docs/hazelcast-atomicvalue-component.adoc 
b/components/camel-hazelcast/src/main/docs/hazelcast-pncounter-component.adoc
similarity index 65%
copy from 
components/camel-hazelcast/src/main/docs/hazelcast-atomicvalue-component.adoc
copy to 
components/camel-hazelcast/src/main/docs/hazelcast-pncounter-component.adoc
index 30a3d55413cc..47e9401f0d93 100644
--- 
a/components/camel-hazelcast/src/main/docs/hazelcast-atomicvalue-component.adoc
+++ 
b/components/camel-hazelcast/src/main/docs/hazelcast-pncounter-component.adoc
@@ -1,10 +1,10 @@
-= Hazelcast Atomic Number Component
-:doctitle: Hazelcast Atomic Number
-:shortname: hazelcast-atomicvalue
+= Hazelcast PN Counter Component
+:doctitle: Hazelcast PN Counter
+:shortname: hazelcast-pncounter
 :artifactid: camel-hazelcast
-:description: Increment, decrement, set, etc. Hazelcast atomic number (a grid 
wide number).
-:since: 2.7
-:supportlevel: Stable
+:description: Increment, decrement, get, etc. operations on a Hazelcast PN 
Counter (CRDT counter).
+:since: 4.19
+:supportlevel: Preview
 :tabs-sync-option:
 :component-header: Only producer is supported
 //Manually maintained attributes
@@ -15,8 +15,10 @@
 
 *{component-header}*
 
-The http://www.hazelcast.com/[Hazelcast] atomic number component is one of 
Camel Hazelcast Components which allows you to access Hazelcast atomic number.
-An atomic number is an object that simply provides a grid wide number (long). 
+The http://www.hazelcast.com/[Hazelcast] PN Counter component is one of Camel 
Hazelcast Components which allows you to access a Hazelcast PN Counter (CRDT 
counter).
+A PN Counter is a Conflict-free Replicated Data Type (CRDT) that provides a 
distributed counter with eventual consistency guarantees.    
+
+This component is not a direct replacement for the hazelcast-atomicvalue 
component that is availble in Camel 2.7 -> 4.19, but it does replicates most of 
the functionality (get / increment / decrement / getAndAdd / destroy) apart 
from the compare method.
 
 
 // component options: START
@@ -26,19 +28,19 @@ include::partial$component-endpoint-headers.adoc[]
 // component options: END
 
 
-== atomic number producer - to("hazelcast-atomicvalue:foo")
+== PN Counter producer - to("hazelcast-pncounter:foo")
 
 The operations for this producer are:
 
-* setvalue (set the number with a given value)
 * get
 * increment (+1)
 * decrement (-1)
-* destroy
-* compareAndSet
 * getAndAdd
+* destroy
+
+NOTE: PNCounter is a CRDT (Conflict-free Replicated Data Type) that provides 
eventual consistency. Operations are local and fast but do not support strong 
consistency operations like `compareAndSet` or `set`.
 
-=== Example for *set*:
+=== Example for *increment*:
 
 [tabs]
 ====
@@ -46,31 +48,30 @@ The operations for this producer are:
 Java DSL::
 +
 [source,java]
------------------------------------------------------------------------------------------
-from("direct:set")
-.setHeader(HazelcastConstants.OPERATION, 
constant(HazelcastOperation.SET_VALUE))
-.toF("hazelcast-%sfoo", HazelcastConstants.ATOMICNUMBER_PREFIX);
------------------------------------------------------------------------------------------
+------------------------------------------------------------------------------------------
+from("direct:increment")
+.setHeader(HazelcastConstants.OPERATION, 
constant(HazelcastOperation.INCREMENT))
+.toF("hazelcast-%sfoo", HazelcastConstants.PNCOUNTER_PREFIX);
+------------------------------------------------------------------------------------------
 
 Spring XML::
 +
 [source,xml]
 
-----------------------------------------------------------------------------------------------
 <route>
-    <from uri="direct:set" />
+    <from uri="direct:increment" />
     <setHeader name="hazelcast.operation.type">
-        <constant>setvalue</constant>
+        <constant>increment</constant>
     </setHeader>
-    <to uri="hazelcast-atomicvalue:foo" />
+    <to uri="hazelcast-pncounter:foo" />
 </route>
 
-----------------------------------------------------------------------------------------------
 
 ====
 
-Provide the value to set inside the message body (here the value is 10):
-`template.sendBody("direct:set", 10);`
+The actual value (after increment) will be provided inside the message body.
 
-=== Example for *get*:
+=== Example for *decrement*:
 
 [tabs]
 ====
@@ -78,110 +79,108 @@ Provide the value to set inside the message body (here 
the value is 10):
 Java DSL::
 +
 [source,java]
-------------------------------------------------------------------------------------
-from("direct:get")
-.setHeader(HazelcastConstants.OPERATION, constant(HazelcastOperation.GET))
-.toF("hazelcast-%sfoo", HazelcastConstants.ATOMICNUMBER_PREFIX);
-------------------------------------------------------------------------------------
+------------------------------------------------------------------------------------------
+from("direct:decrement")
+.setHeader(HazelcastConstants.OPERATION, 
constant(HazelcastOperation.DECREMENT))
+.toF("hazelcast-%sfoo", HazelcastConstants.PNCOUNTER_PREFIX);
+------------------------------------------------------------------------------------------
 
 Spring XML::
 +
 [source,xml]
 
-----------------------------------------------------------------------------------------------
 <route>
-    <from uri="direct:get" />
+    <from uri="direct:decrement" />
     <setHeader name="hazelcast.operation.type">
-        <constant>get</constant>
+        <constant>decrement</constant>
     </setHeader>
-    <to uri="hazelcast-atomicvalue:foo" />
+    <to uri="hazelcast-pncounter:foo" />
 </route>
 
-----------------------------------------------------------------------------------------------
 
 ====
 
-You can get the number with
-`long body = template.requestBody("direct:get", null, Long.class);`.
+The actual value (after decrement) will be provided inside the message body.
 
-=== Example for *increment*:
+=== Example for *get*:
 
 [tabs]
 ====
 
 Java DSL::
 +
-
 [source,java]
-------------------------------------------------------------------------------------------
-from("direct:increment")
-.setHeader(HazelcastConstants.OPERATION, 
constant(HazelcastOperation.INCREMENT))
-.toF("hazelcast-%sfoo", HazelcastConstants.ATOMICNUMBER_PREFIX);
-------------------------------------------------------------------------------------------
+------------------------------------------------------------------------------------
+from("direct:get")
+.setHeader(HazelcastConstants.OPERATION, constant(HazelcastOperation.GET))
+.toF("hazelcast-%sfoo", HazelcastConstants.PNCOUNTER_PREFIX);
+------------------------------------------------------------------------------------
 
 Spring XML::
 +
 [source,xml]
 
-----------------------------------------------------------------------------------------------
 <route>
-    <from uri="direct:increment" />
+    <from uri="direct:get" />
     <setHeader name="hazelcast.operation.type">
-        <constant>increment</constant>
+        <constant>get</constant>
     </setHeader>
-    <to uri="hazelcast-atomicvalue:foo" />
+    <to uri="hazelcast-pncounter:foo" />
 </route>
 
-----------------------------------------------------------------------------------------------
 
 ====
 
-The actual value (after increment) will be provided inside the message
-body.
+You can get the counter value with
+`long body = template.requestBody("direct:get", null, Long.class);`.
 
-=== Example for *decrement*:
+=== Example for *getAndAdd*:
 
 [tabs]
 ====
 
 Java DSL::
 +
-
 [source,java]
-------------------------------------------------------------------------------------------
-from("direct:decrement")
-.setHeader(HazelcastConstants.OPERATION, 
constant(HazelcastOperation.DECREMENT))
-.toF("hazelcast-%sfoo", HazelcastConstants.ATOMICNUMBER_PREFIX);
-------------------------------------------------------------------------------------------
+------------------------------------------------------------------------------------
+from("direct:getAndAdd")
+.setHeader(HazelcastConstants.OPERATION, 
constant(HazelcastOperation.GET_AND_ADD))
+.toF("hazelcast-%sfoo", HazelcastConstants.PNCOUNTER_PREFIX);
+------------------------------------------------------------------------------------
 
 Spring XML::
 +
 [source,xml]
 
-----------------------------------------------------------------------------------------------
 <route>
-    <from uri="direct:decrement" />
+    <from uri="direct:getAndAdd" />
     <setHeader name="hazelcast.operation.type">
-        <constant>decrement</constant>
+        <constant>getAndAdd</constant>
     </setHeader>
-    <to uri="hazelcast-atomicvalue:foo" />
+    <to uri="hazelcast-pncounter:foo" />
 </route>
 
-----------------------------------------------------------------------------------------------
 
 ====
 
-The actual value (after decrement) will be provided inside the message
-body.
+Provide the delta value in the message body (e.g., 5 to add 5 to the counter):
+`long previousValue = template.requestBody("direct:getAndAdd", 5L, 
Long.class);`
 
-=== Example for *destroy*
+The previous value (before the add) will be returned in the message body.
+
+=== Example for *destroy*:
 
 [tabs]
 ====
 
 Java DSL::
 +
-
 [source,java]
-----------------------------------------------------------------------------------------
+------------------------------------------------------------------------------------
 from("direct:destroy")
 .setHeader(HazelcastConstants.OPERATION, constant(HazelcastOperation.DESTROY))
-.toF("hazelcast-%sfoo", HazelcastConstants.ATOMICNUMBER_PREFIX);
-----------------------------------------------------------------------------------------
+.toF("hazelcast-%sfoo", HazelcastConstants.PNCOUNTER_PREFIX);
+------------------------------------------------------------------------------------
 
 Spring XML::
 +
@@ -192,10 +191,13 @@ Spring XML::
     <setHeader name="hazelcast.operation.type">
         <constant>destroy</constant>
     </setHeader>
-    <to uri="hazelcast-atomicvalue:foo" />
+    <to uri="hazelcast-pncounter:foo" />
 </route>
 
-----------------------------------------------------------------------------------------------
 
 ====
 
+Destroys the PN Counter instance:
+`template.sendBody("direct:destroy", null);`
+
 include::spring-boot:partial$starter.adoc[]
diff --git 
a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastCommand.java
 
b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastCommand.java
index 4a57e8e680ad..a7ffe344edc4 100644
--- 
a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastCommand.java
+++ 
b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastCommand.java
@@ -28,6 +28,7 @@ public enum HazelcastCommand {
     instance,
     list,
     replicatedmap,
-    ringbuffer
+    ringbuffer,
+    pncounter
 
 }
diff --git 
a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastConstants.java
 
b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastConstants.java
index 0217c4778c8f..3ed1c2a2e14f 100644
--- 
a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastConstants.java
+++ 
b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastConstants.java
@@ -28,6 +28,7 @@ public final class HazelcastConstants {
     public static final String SCHEME_LIST = "hazelcast-list";
     public static final String SCHEME_MAP = "hazelcast-map";
     public static final String SCHEME_MULTIMAP = "hazelcast-multimap";
+    public static final String SCHEME_PNCOUNTER = "hazelcast-pncounter";
     public static final String SCHEME_QUEUE = "hazelcast-queue";
     public static final String SCHEME_REPLICATED_MAP = 
"hazelcast-replicatedmap";
     public static final String SCHEME_RING_BUFFER = "hazelcast-ringbuffer";
@@ -43,6 +44,7 @@ public final class HazelcastConstants {
     public static final String REPLICATEDMAP_PREFIX = "replicatedmap:";
     public static final String ATOMICNUMBER_PREFIX = "atomicvalue:";
     public static final String INSTANCE_PREFIX = "instance:";
+    public static final String PNCOUNTER_PREFIX = "pncounter:";
     public static final String QUEUE_PREFIX = "queue:";
     public static final String TOPIC_PREFIX = "topic:";
     public static final String SEDA_PREFIX = "seda:";
diff --git 
a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/atomicnumber/HazelcastAtomicnumberComponent.java
 
b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/atomicnumber/HazelcastAtomicnumberComponent.java
index 8691ef7df60c..e66e3726b15d 100644
--- 
a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/atomicnumber/HazelcastAtomicnumberComponent.java
+++ 
b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/atomicnumber/HazelcastAtomicnumberComponent.java
@@ -24,6 +24,12 @@ import 
org.apache.camel.component.hazelcast.HazelcastDefaultComponent;
 import org.apache.camel.component.hazelcast.HazelcastDefaultEndpoint;
 import org.apache.camel.spi.annotations.Component;
 
+/**
+ * @deprecated Since Hazelcast 5.5, IAtomicLong requires the CP Subsystem 
which is only available in Hazelcast
+ *             Enterprise Edition. This component will throw 
UnsupportedOperationException at runtime when used with
+ *             Hazelcast Community Edition 5.5+.
+ */
+@Deprecated(since = "4.19.0", forRemoval = true)
 @Component("hazelcast-atomicvalue")
 public class HazelcastAtomicnumberComponent extends HazelcastDefaultComponent {
 
diff --git 
a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/atomicnumber/HazelcastAtomicnumberEndpoint.java
 
b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/atomicnumber/HazelcastAtomicnumberEndpoint.java
index 65594e142e8a..9567d519a425 100644
--- 
a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/atomicnumber/HazelcastAtomicnumberEndpoint.java
+++ 
b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/atomicnumber/HazelcastAtomicnumberEndpoint.java
@@ -31,7 +31,12 @@ import static 
org.apache.camel.component.hazelcast.HazelcastConstants.SCHEME_ATO
 
 /**
  * Increment, decrement, set, etc. Hazelcast atomic number (a grid wide 
number).
+ *
+ * @deprecated Since Hazelcast 5.5, IAtomicLong requires the CP Subsystem 
which is only available in Hazelcast
+ *             Enterprise Edition. This component will throw 
UnsupportedOperationException at runtime when used with
+ *             Hazelcast Community Edition 5.5+.
  */
+@Deprecated(since = "4.19.0", forRemoval = true)
 @UriEndpoint(firstVersion = "2.7.0", scheme = SCHEME_ATOMIC_VALUE, title = 
"Hazelcast Atomic Number",
              syntax = "hazelcast-atomicvalue:cacheName", producerOnly = true,
              category = { Category.CACHE, Category.CLUSTERING },
diff --git 
a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/atomicnumber/HazelcastAtomicnumberProducer.java
 
b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/atomicnumber/HazelcastAtomicnumberProducer.java
index 5761f39b6bd2..ed5862720078 100644
--- 
a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/atomicnumber/HazelcastAtomicnumberProducer.java
+++ 
b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/atomicnumber/HazelcastAtomicnumberProducer.java
@@ -28,6 +28,12 @@ import 
org.apache.camel.component.hazelcast.HazelcastDefaultProducer;
 import org.apache.camel.component.hazelcast.HazelcastOperation;
 import org.apache.camel.util.ObjectHelper;
 
+/**
+ * @deprecated Since Hazelcast 5.5, IAtomicLong requires the CP Subsystem 
which is only available in Hazelcast
+ *             Enterprise Edition. This component will throw 
UnsupportedOperationException at runtime when used with
+ *             Hazelcast Community Edition 5.5+.
+ */
+@Deprecated(since = "4.19.0", forRemoval = true)
 public class HazelcastAtomicnumberProducer extends HazelcastDefaultProducer {
 
     private final IAtomicLong atomicnumber;
diff --git 
a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/atomicnumber/HazelcastAtomicnumberComponent.java
 
b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/pncounter/HazelcastPNCounterComponent.java
similarity index 78%
copy from 
components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/atomicnumber/HazelcastAtomicnumberComponent.java
copy to 
components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/pncounter/HazelcastPNCounterComponent.java
index 8691ef7df60c..31152ad70e39 100644
--- 
a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/atomicnumber/HazelcastAtomicnumberComponent.java
+++ 
b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/pncounter/HazelcastPNCounterComponent.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.component.hazelcast.atomicnumber;
+package org.apache.camel.component.hazelcast.pncounter;
 
 import java.util.Map;
 
@@ -24,13 +24,13 @@ import 
org.apache.camel.component.hazelcast.HazelcastDefaultComponent;
 import org.apache.camel.component.hazelcast.HazelcastDefaultEndpoint;
 import org.apache.camel.spi.annotations.Component;
 
-@Component("hazelcast-atomicvalue")
-public class HazelcastAtomicnumberComponent extends HazelcastDefaultComponent {
+@Component("hazelcast-pncounter")
+public class HazelcastPNCounterComponent extends HazelcastDefaultComponent {
 
-    public HazelcastAtomicnumberComponent() {
+    public HazelcastPNCounterComponent() {
     }
 
-    public HazelcastAtomicnumberComponent(final CamelContext context) {
+    public HazelcastPNCounterComponent(final CamelContext context) {
         super(context);
     }
 
@@ -38,7 +38,7 @@ public class HazelcastAtomicnumberComponent extends 
HazelcastDefaultComponent {
     protected HazelcastDefaultEndpoint doCreateEndpoint(
             String uri, String remaining, Map<String, Object> parameters, 
HazelcastInstance hzInstance)
             throws Exception {
-        return new HazelcastAtomicnumberEndpoint(hzInstance, uri, this, 
remaining);
+        return new HazelcastPNCounterEndpoint(hzInstance, uri, this, 
remaining);
     }
 
 }
diff --git 
a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/atomicnumber/HazelcastAtomicnumberEndpoint.java
 
b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/pncounter/HazelcastPNCounterEndpoint.java
similarity index 71%
copy from 
components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/atomicnumber/HazelcastAtomicnumberEndpoint.java
copy to 
components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/pncounter/HazelcastPNCounterEndpoint.java
index 65594e142e8a..8d6f8fec75de 100644
--- 
a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/atomicnumber/HazelcastAtomicnumberEndpoint.java
+++ 
b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/pncounter/HazelcastPNCounterEndpoint.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.component.hazelcast.atomicnumber;
+package org.apache.camel.component.hazelcast.pncounter;
 
 import com.hazelcast.core.HazelcastInstance;
 import org.apache.camel.Category;
@@ -27,21 +27,21 @@ import 
org.apache.camel.component.hazelcast.HazelcastConstants;
 import org.apache.camel.component.hazelcast.HazelcastDefaultEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 
-import static 
org.apache.camel.component.hazelcast.HazelcastConstants.SCHEME_ATOMIC_VALUE;
+import static 
org.apache.camel.component.hazelcast.HazelcastConstants.SCHEME_PNCOUNTER;
 
 /**
- * Increment, decrement, set, etc. Hazelcast atomic number (a grid wide 
number).
+ * Increment, decrement, get, etc. operations on a Hazelcast PN Counter (CRDT 
counter).
  */
-@UriEndpoint(firstVersion = "2.7.0", scheme = SCHEME_ATOMIC_VALUE, title = 
"Hazelcast Atomic Number",
-             syntax = "hazelcast-atomicvalue:cacheName", producerOnly = true,
+@UriEndpoint(firstVersion = "4.19.0", scheme = SCHEME_PNCOUNTER, title = 
"Hazelcast PN Counter",
+             syntax = "hazelcast-pncounter:cacheName", producerOnly = true,
              category = { Category.CACHE, Category.CLUSTERING },
              headersClass = HazelcastConstants.class)
-public class HazelcastAtomicnumberEndpoint extends HazelcastDefaultEndpoint {
+public class HazelcastPNCounterEndpoint extends HazelcastDefaultEndpoint {
 
-    public HazelcastAtomicnumberEndpoint(HazelcastInstance hazelcastInstance, 
String uri, Component component,
-                                         final String cacheName) {
+    public HazelcastPNCounterEndpoint(HazelcastInstance hazelcastInstance, 
String uri, Component component,
+                                      final String cacheName) {
         super(hazelcastInstance, uri, component, cacheName);
-        setCommand(HazelcastCommand.atomicvalue);
+        setCommand(HazelcastCommand.pncounter);
     }
 
     @Override
@@ -51,7 +51,7 @@ public class HazelcastAtomicnumberEndpoint extends 
HazelcastDefaultEndpoint {
 
     @Override
     public Producer createProducer() throws Exception {
-        return new HazelcastAtomicnumberProducer(hazelcastInstance, this, 
cacheName);
+        return new HazelcastPNCounterProducer(hazelcastInstance, this, 
cacheName);
     }
 
 }
diff --git 
a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/atomicnumber/HazelcastAtomicnumberProducer.java
 
b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/pncounter/HazelcastPNCounterProducer.java
similarity index 55%
copy from 
components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/atomicnumber/HazelcastAtomicnumberProducer.java
copy to 
components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/pncounter/HazelcastPNCounterProducer.java
index 5761f39b6bd2..9840218f054d 100644
--- 
a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/atomicnumber/HazelcastAtomicnumberProducer.java
+++ 
b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/pncounter/HazelcastPNCounterProducer.java
@@ -14,41 +14,30 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.component.hazelcast.atomicnumber;
-
-import java.util.Map;
+package org.apache.camel.component.hazelcast.pncounter;
 
 import com.hazelcast.core.HazelcastInstance;
-import com.hazelcast.cp.IAtomicLong;
+import com.hazelcast.crdt.pncounter.PNCounter;
 import org.apache.camel.Exchange;
 import org.apache.camel.component.hazelcast.HazelcastComponentHelper;
 import org.apache.camel.component.hazelcast.HazelcastConstants;
 import org.apache.camel.component.hazelcast.HazelcastDefaultEndpoint;
 import org.apache.camel.component.hazelcast.HazelcastDefaultProducer;
 import org.apache.camel.component.hazelcast.HazelcastOperation;
-import org.apache.camel.util.ObjectHelper;
 
-public class HazelcastAtomicnumberProducer extends HazelcastDefaultProducer {
+public class HazelcastPNCounterProducer extends HazelcastDefaultProducer {
 
-    private final IAtomicLong atomicnumber;
+    private final PNCounter pnCounter;
 
-    public HazelcastAtomicnumberProducer(HazelcastInstance hazelcastInstance, 
HazelcastDefaultEndpoint endpoint,
-                                         String cacheName) {
+    public HazelcastPNCounterProducer(HazelcastInstance hazelcastInstance, 
HazelcastDefaultEndpoint endpoint,
+                                      String cacheName) {
         super(endpoint);
-        this.atomicnumber = 
hazelcastInstance.getCPSubsystem().getAtomicLong(cacheName);
+        this.pnCounter = hazelcastInstance.getPNCounter(cacheName);
     }
 
     @Override
     public void process(Exchange exchange) throws Exception {
 
-        Map<String, Object> headers = exchange.getIn().getHeaders();
-
-        long expectedValue = 0L;
-
-        if (headers.containsKey(HazelcastConstants.EXPECTED_VALUE)) {
-            expectedValue = (long) 
headers.get(HazelcastConstants.EXPECTED_VALUE);
-        }
-
         HazelcastOperation operation = lookupOperation(exchange);
 
         switch (operation) {
@@ -61,29 +50,21 @@ public class HazelcastAtomicnumberProducer extends 
HazelcastDefaultProducer {
                 this.decrement(exchange);
                 break;
 
-            case COMPARE_AND_SET:
-                this.compare(expectedValue, exchange);
-                break;
-
             case GET_AND_ADD:
                 this.getAndAdd(exchange);
                 break;
 
-            case SET_VALUE:
-                this.set(exchange);
-                break;
-
             case GET:
                 this.get(exchange);
                 break;
 
             case DESTROY:
-                this.destroy();
+                this.destroy(exchange);
                 break;
 
             default:
                 throw new IllegalArgumentException(
-                        String.format("The value '%s' is not allowed for 
parameter '%s' on the ATOMICNUMBER.", operation,
+                        String.format("The value '%s' is not allowed for 
parameter '%s' on the PNCOUNTER.", operation,
                                 HazelcastConstants.OPERATION));
         }
 
@@ -92,36 +73,24 @@ public class HazelcastAtomicnumberProducer extends 
HazelcastDefaultProducer {
     }
 
     private void get(Exchange exchange) {
-        exchange.getMessage().setBody(this.atomicnumber.get());
+        exchange.getMessage().setBody(this.pnCounter.get());
     }
 
     private void increment(Exchange exchange) {
-        exchange.getMessage().setBody(this.atomicnumber.incrementAndGet());
+        exchange.getMessage().setBody(this.pnCounter.incrementAndGet());
     }
 
     private void decrement(Exchange exchange) {
-        exchange.getMessage().setBody(this.atomicnumber.decrementAndGet());
-    }
-
-    private void compare(long expected, Exchange exchange) {
-        long update = exchange.getIn().getBody(Long.class);
-        if (ObjectHelper.isEmpty(expected)) {
-            throw new IllegalArgumentException("Expected value must be 
specified");
-        }
-        
exchange.getMessage().setBody(this.atomicnumber.compareAndSet(expected, 
update));
+        exchange.getMessage().setBody(this.pnCounter.decrementAndGet());
     }
 
     private void getAndAdd(Exchange exchange) {
         long delta = exchange.getIn().getBody(Long.class);
-        exchange.getMessage().setBody(this.atomicnumber.getAndAdd(delta));
-    }
-
-    private void set(Exchange exchange) {
-        this.atomicnumber.set(exchange.getIn().getBody(Long.class));
+        exchange.getMessage().setBody(this.pnCounter.getAndAdd(delta));
     }
 
-    private void destroy() {
-        this.atomicnumber.destroy();
+    private void destroy(Exchange exchange) {
+        this.pnCounter.destroy();
     }
 
 }
diff --git 
a/components/camel-hazelcast/src/main/java/org/apache/camel/processor/aggregate/hazelcast/HazelcastAggregationRepository.java
 
b/components/camel-hazelcast/src/main/java/org/apache/camel/processor/aggregate/hazelcast/HazelcastAggregationRepository.java
index 544b01a9bdca..f76d68f843f3 100644
--- 
a/components/camel-hazelcast/src/main/java/org/apache/camel/processor/aggregate/hazelcast/HazelcastAggregationRepository.java
+++ 
b/components/camel-hazelcast/src/main/java/org/apache/camel/processor/aggregate/hazelcast/HazelcastAggregationRepository.java
@@ -19,7 +19,6 @@ package org.apache.camel.processor.aggregate.hazelcast;
 import java.util.Collections;
 import java.util.Set;
 import java.util.concurrent.TimeUnit;
-import java.util.concurrent.locks.Lock;
 
 import com.hazelcast.config.Config;
 import com.hazelcast.config.XmlConfigBuilder;
@@ -233,15 +232,15 @@ public class HazelcastAggregationRepository extends 
ServiceSupport
             throw new UnsupportedOperationException();
         }
         LOG.trace("Adding an Exchange with ID {} for key {} in a thread-safe 
manner.", exchange.getExchangeId(), key);
-        Lock l = hazelcastInstance.getCPSubsystem().getLock(mapName);
+        // Use IMap-based locking (community edition compatible)
+        cache.lock(key);
         try {
-            l.lock();
             DefaultExchangeHolder newHolder = 
DefaultExchangeHolder.marshal(exchange, true, allowSerializedHeaders);
             DefaultExchangeHolder oldHolder = cache.put(key, newHolder);
             return unmarshallExchange(camelContext, oldHolder);
         } finally {
             LOG.trace("Added an Exchange with ID {} for key {} in a 
thread-safe manner.", exchange.getExchangeId(), key);
-            l.unlock();
+            cache.unlock(key);
         }
     }
 
diff --git 
a/components/camel-hazelcast/src/main/java/org/apache/camel/processor/aggregate/hazelcast/ReplicatedHazelcastAggregationRepository.java
 
b/components/camel-hazelcast/src/main/java/org/apache/camel/processor/aggregate/hazelcast/ReplicatedHazelcastAggregationRepository.java
index fc83d30c9c9b..bd2de42595c0 100644
--- 
a/components/camel-hazelcast/src/main/java/org/apache/camel/processor/aggregate/hazelcast/ReplicatedHazelcastAggregationRepository.java
+++ 
b/components/camel-hazelcast/src/main/java/org/apache/camel/processor/aggregate/hazelcast/ReplicatedHazelcastAggregationRepository.java
@@ -19,7 +19,6 @@ package org.apache.camel.processor.aggregate.hazelcast;
 import java.util.Collections;
 import java.util.Map;
 import java.util.Set;
-import java.util.concurrent.locks.Lock;
 
 import com.hazelcast.config.Config;
 import com.hazelcast.config.XmlConfigBuilder;
@@ -55,6 +54,8 @@ public class ReplicatedHazelcastAggregationRepository extends 
HazelcastAggregati
     private static final Logger LOG = 
LoggerFactory.getLogger(ReplicatedHazelcastAggregationRepository.class.getName());
     protected Map<String, DefaultExchangeHolder> replicatedCache;
     protected Map<String, DefaultExchangeHolder> replicatedPersistedCache;
+    // IMap for distributed locking since ReplicatedMap doesn't support lock 
operations
+    protected IMap<String, Boolean> lockMap;
 
     public ReplicatedHazelcastAggregationRepository() {
     }
@@ -192,15 +193,16 @@ public class ReplicatedHazelcastAggregationRepository 
extends HazelcastAggregati
             throw new UnsupportedOperationException();
         }
         LOG.trace("Adding an Exchange with ID {} for key {} in a thread-safe 
manner.", exchange.getExchangeId(), key);
-        Lock l = hazelcastInstance.getCPSubsystem().getLock(mapName);
+        // Use IMap-based distributed locking (community edition compatible)
+        // ReplicatedMap doesn't support lock operations, so we use a separate 
IMap for locking
+        lockMap.lock(key);
         try {
-            l.lock();
             DefaultExchangeHolder newHolder = 
DefaultExchangeHolder.marshal(exchange, true, allowSerializedHeaders);
             DefaultExchangeHolder oldHolder = replicatedCache.put(key, 
newHolder);
             return unmarshallExchange(camelContext, oldHolder);
         } finally {
             LOG.trace("Added an Exchange with ID {} for key {} in a 
thread-safe manner.", exchange.getExchangeId(), key);
-            l.unlock();
+            lockMap.unlock(key);
         }
     }
 
@@ -345,6 +347,8 @@ public class ReplicatedHazelcastAggregationRepository 
extends HazelcastAggregati
             ObjectHelper.notNull(hazelcastInstance, "hazelcastInstance");
         }
         replicatedCache = hazelcastInstance.getReplicatedMap(mapName);
+        // Create IMap for distributed locking (ReplicatedMap doesn't support 
lock operations)
+        lockMap = hazelcastInstance.getMap(mapName + "-locks");
         if (useRecovery) {
             replicatedPersistedCache = 
hazelcastInstance.getReplicatedMap(persistenceMapName);
         }
diff --git 
a/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastCamelTestHelper.java
 
b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastCamelTestHelper.java
index f13b51a09f4d..1e721b51549d 100644
--- 
a/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastCamelTestHelper.java
+++ 
b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastCamelTestHelper.java
@@ -23,6 +23,7 @@ import 
org.apache.camel.component.hazelcast.instance.HazelcastInstanceComponent;
 import org.apache.camel.component.hazelcast.list.HazelcastListComponent;
 import org.apache.camel.component.hazelcast.map.HazelcastMapComponent;
 import 
org.apache.camel.component.hazelcast.multimap.HazelcastMultimapComponent;
+import 
org.apache.camel.component.hazelcast.pncounter.HazelcastPNCounterComponent;
 import org.apache.camel.component.hazelcast.queue.HazelcastQueueComponent;
 import 
org.apache.camel.component.hazelcast.replicatedmap.HazelcastReplicatedmapComponent;
 import 
org.apache.camel.component.hazelcast.ringbuffer.HazelcastRingbufferComponent;
@@ -51,6 +52,9 @@ public final class HazelcastCamelTestHelper {
         HazelcastMultimapComponent multimap = new 
HazelcastMultimapComponent(context);
         multimap.setHazelcastInstance(hazelcastInstance);
         context.addComponent("hazelcast-multimap", multimap);
+        HazelcastPNCounterComponent pncounter = new 
HazelcastPNCounterComponent(context);
+        pncounter.setHazelcastInstance(hazelcastInstance);
+        context.addComponent("hazelcast-pncounter", pncounter);
         HazelcastQueueComponent queue = new HazelcastQueueComponent(context);
         queue.setHazelcastInstance(hazelcastInstance);
         context.addComponent("hazelcast-queue", queue);
diff --git 
a/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastErrorMessagesTest.java
 
b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastErrorMessagesTest.java
index 0eaa19609fdd..0b39792782f9 100644
--- 
a/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastErrorMessagesTest.java
+++ 
b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastErrorMessagesTest.java
@@ -39,6 +39,21 @@ public class HazelcastErrorMessagesTest extends 
HazelcastCamelTestSupport {
                 .contains("You cannot send messages to this endpoint: 
hazelcast-atomicvalue://foo"));
     }
 
+    @Test
+    public void testPNCounterConsumer() {
+        RouteBuilder builder = new RouteBuilder() {
+            public void configure() throws Exception {
+                from("hazelcast-pncounter:foo").to("seda:out");
+            }
+        };
+        Exception e = assertThrows(Exception.class, () -> {
+            context.addRoutes(builder);
+            context.start();
+        });
+        assertTrue(e.getCause().getMessage()
+                .contains("You cannot send messages to this endpoint: 
hazelcast-pncounter://foo"));
+    }
+
     @Test
     public void testInstanceProducer() {
         RouteBuilder builder = new RouteBuilder() {
diff --git 
a/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastPNCounterProducerForSpringTest.java
 
b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastPNCounterProducerForSpringTest.java
new file mode 100644
index 000000000000..b0ab15223763
--- /dev/null
+++ 
b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastPNCounterProducerForSpringTest.java
@@ -0,0 +1,94 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.hazelcast;
+
+import com.hazelcast.core.HazelcastInstance;
+import com.hazelcast.crdt.pncounter.PNCounter;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mock;
+import org.springframework.context.support.AbstractApplicationContext;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
+
+public class HazelcastPNCounterProducerForSpringTest extends 
HazelcastCamelSpringTestSupport {
+
+    @Mock
+    private PNCounter pnCounter;
+
+    @Override
+    protected void trainHazelcastInstance(HazelcastInstance hazelcastInstance) 
{
+        when(hazelcastInstance.getPNCounter("foo")).thenReturn(pnCounter);
+    }
+
+    @Override
+    protected void verifyHazelcastInstance(HazelcastInstance 
hazelcastInstance) {
+        verify(hazelcastInstance, times(5)).getPNCounter("foo");
+    }
+
+    @AfterEach
+    public void verifyPNCounterMock() {
+        verifyNoMoreInteractions(pnCounter);
+    }
+
+    @Override
+    protected AbstractApplicationContext createApplicationContext() {
+        return 
newAppContext("/META-INF/spring/test-camel-context-pncounter.xml");
+    }
+
+    @Test
+    public void testGet() {
+        when(pnCounter.get()).thenReturn(1234L);
+        long body = template.requestBody("direct:get", null, Long.class);
+        verify(pnCounter).get();
+        assertEquals(1234, body);
+    }
+
+    @Test
+    public void testIncrement() {
+        when(pnCounter.incrementAndGet()).thenReturn(11L);
+        long body = template.requestBody("direct:increment", null, Long.class);
+        verify(pnCounter).incrementAndGet();
+        assertEquals(11, body);
+    }
+
+    @Test
+    public void testDecrement() {
+        when(pnCounter.decrementAndGet()).thenReturn(9L);
+        long body = template.requestBody("direct:decrement", null, Long.class);
+        verify(pnCounter).decrementAndGet();
+        assertEquals(9, body);
+    }
+
+    @Test
+    public void testGetAndAdd() {
+        when(pnCounter.getAndAdd(12L)).thenReturn(13L);
+        long result = template.requestBody("direct:getAndAdd", 12L, 
Long.class);
+        verify(pnCounter).getAndAdd(12L);
+        assertEquals(13L, result);
+    }
+
+    @Test
+    public void testDestroy() throws InterruptedException {
+        template.sendBody("direct:destroy", null);
+        verify(pnCounter).destroy();
+    }
+}
diff --git 
a/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastPNCounterProducerTest.java
 
b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastPNCounterProducerTest.java
new file mode 100644
index 000000000000..19ba9b08cda2
--- /dev/null
+++ 
b/components/camel-hazelcast/src/test/java/org/apache/camel/component/hazelcast/HazelcastPNCounterProducerTest.java
@@ -0,0 +1,126 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.hazelcast;
+
+import com.hazelcast.core.HazelcastInstance;
+import com.hazelcast.crdt.pncounter.PNCounter;
+import org.apache.camel.CamelExecutionException;
+import org.apache.camel.builder.RouteBuilder;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mock;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
+
+public class HazelcastPNCounterProducerTest extends HazelcastCamelTestSupport {
+
+    @Mock
+    private PNCounter pnCounter;
+
+    @Override
+    protected void trainHazelcastInstance(HazelcastInstance hazelcastInstance) 
{
+        when(hazelcastInstance.getPNCounter("foo")).thenReturn(pnCounter);
+    }
+
+    @Override
+    protected void verifyHazelcastInstance(HazelcastInstance 
hazelcastInstance) {
+        verify(hazelcastInstance, times(6)).getPNCounter("foo");
+    }
+
+    @AfterEach
+    public void verifyPNCounterMock() {
+        verifyNoMoreInteractions(pnCounter);
+    }
+
+    @Test
+    public void testWithInvalidOperationName() {
+        assertThrows(CamelExecutionException.class,
+                () -> template.sendBody("direct:setInvalid", 4711));
+    }
+
+    @Test
+    public void testGet() {
+        when(pnCounter.get()).thenReturn(1234L);
+        long body = template.requestBody("direct:get", null, Long.class);
+        verify(pnCounter).get();
+        assertEquals(1234, body);
+    }
+
+    @Test
+    public void testIncrement() {
+        when(pnCounter.incrementAndGet()).thenReturn(11L);
+        long body = template.requestBody("direct:increment", null, Long.class);
+        verify(pnCounter).incrementAndGet();
+        assertEquals(11, body);
+    }
+
+    @Test
+    public void testDecrement() {
+        when(pnCounter.decrementAndGet()).thenReturn(9L);
+        long body = template.requestBody("direct:decrement", null, Long.class);
+        verify(pnCounter).decrementAndGet();
+        assertEquals(9, body);
+    }
+
+    @Test
+    public void testGetAndAdd() {
+        when(pnCounter.getAndAdd(12L)).thenReturn(13L);
+        long result = template.requestBody("direct:getAndAdd", 12L, 
Long.class);
+        verify(pnCounter).getAndAdd(12L);
+        assertEquals(13L, result);
+    }
+
+    @Test
+    public void testDestroy() throws InterruptedException {
+        template.sendBody("direct:destroy", null);
+        verify(pnCounter).destroy();
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+
+                
from("direct:setInvalid").setHeader(HazelcastConstants.OPERATION, 
constant("invalid"))
+                        .to(String.format("hazelcast-%sfoo", 
HazelcastConstants.PNCOUNTER_PREFIX));
+
+                from("direct:get").setHeader(HazelcastConstants.OPERATION, 
constant(HazelcastOperation.GET))
+                        .to(String.format("hazelcast-%sfoo", 
HazelcastConstants.PNCOUNTER_PREFIX));
+
+                
from("direct:increment").setHeader(HazelcastConstants.OPERATION, 
constant(HazelcastOperation.INCREMENT)).to(
+                        String.format("hazelcast-%sfoo", 
HazelcastConstants.PNCOUNTER_PREFIX));
+
+                
from("direct:decrement").setHeader(HazelcastConstants.OPERATION, 
constant(HazelcastOperation.DECREMENT)).to(
+                        String.format("hazelcast-%sfoo", 
HazelcastConstants.PNCOUNTER_PREFIX));
+
+                
from("direct:getAndAdd").setHeader(HazelcastConstants.OPERATION, 
constant(HazelcastOperation.GET_AND_ADD)).to(
+                        String.format("hazelcast-%sfoo", 
HazelcastConstants.PNCOUNTER_PREFIX));
+
+                from("direct:destroy").setHeader(HazelcastConstants.OPERATION, 
constant(HazelcastOperation.DESTROY)).to(
+                        String.format("hazelcast-%sfoo", 
HazelcastConstants.PNCOUNTER_PREFIX));
+
+            }
+        };
+    }
+
+}
diff --git 
a/components/camel-hazelcast/src/test/resources/META-INF/spring/test-camel-context-pncounter.xml
 
b/components/camel-hazelcast/src/test/resources/META-INF/spring/test-camel-context-pncounter.xml
new file mode 100644
index 000000000000..af656128477d
--- /dev/null
+++ 
b/components/camel-hazelcast/src/test/resources/META-INF/spring/test-camel-context-pncounter.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<beans xmlns="http://www.springframework.org/schema/beans";
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:camel="http://camel.apache.org/schema/spring";
+       xsi:schemaLocation="
+          http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd
+       http://camel.apache.org/schema/spring 
http://camel.apache.org/schema/spring/camel-spring.xsd";>
+
+       <camelContext xmlns="http://camel.apache.org/schema/spring";>
+
+               <route>
+                       <from uri="direct:get" />
+                       <setHeader name="CamelHazelcastOperationType">
+                               <constant>get</constant>
+                       </setHeader>
+                       <to uri="hazelcast-pncounter:foo" />
+               </route>
+
+               <route>
+                       <from uri="direct:increment" />
+                       <setHeader name="CamelHazelcastOperationType">
+                               <constant>increment</constant>
+                       </setHeader>
+                       <to uri="hazelcast-pncounter:foo" />
+               </route>
+
+               <route>
+                       <from uri="direct:decrement" />
+                       <setHeader name="CamelHazelcastOperationType">
+                               <constant>decrement</constant>
+                       </setHeader>
+                       <to uri="hazelcast-pncounter:foo" />
+               </route>
+
+               <route>
+                       <from uri="direct:getAndAdd" />
+                       <setHeader name="CamelHazelcastOperationType">
+                               <constant>getAndAdd</constant>
+                       </setHeader>
+                       <to uri="hazelcast-pncounter:foo" />
+               </route>
+
+               <route>
+                       <from uri="direct:destroy" />
+                       <setHeader name="CamelHazelcastOperationType">
+                               <constant>destroy</constant>
+                       </setHeader>
+                       <to uri="hazelcast-pncounter:foo" />
+               </route>
+
+       </camelContext>
+
+</beans>
diff --git 
a/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
 
b/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
index 0bedb28dab1d..bd2c8b1365d2 100644
--- 
a/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
+++ 
b/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
@@ -150,6 +150,7 @@ hazelcast-instance
 hazelcast-list
 hazelcast-map
 hazelcast-multimap
+hazelcast-pncounter
 hazelcast-queue
 hazelcast-replicatedmap
 hazelcast-ringbuffer
diff --git 
a/docs/components/modules/ROOT/examples/json/hazelcast-pncounter.json 
b/docs/components/modules/ROOT/examples/json/hazelcast-pncounter.json
new file mode 120000
index 000000000000..b9f8a2c5a7fa
--- /dev/null
+++ b/docs/components/modules/ROOT/examples/json/hazelcast-pncounter.json
@@ -0,0 +1 @@
+../../../../../../components/camel-hazelcast/src/generated/resources/META-INF/org/apache/camel/component/hazelcast/pncounter/hazelcast-pncounter.json
\ No newline at end of file
diff --git a/docs/components/modules/ROOT/nav.adoc 
b/docs/components/modules/ROOT/nav.adoc
index 5b7887b650c4..746f29a60f1a 100644
--- a/docs/components/modules/ROOT/nav.adoc
+++ b/docs/components/modules/ROOT/nav.adoc
@@ -177,6 +177,7 @@
 *** xref:hazelcast-list-component.adoc[Hazelcast List]
 *** xref:hazelcast-map-component.adoc[Hazelcast Map]
 *** xref:hazelcast-multimap-component.adoc[Hazelcast Multimap]
+*** xref:hazelcast-pncounter-component.adoc[Hazelcast PN Counter]
 *** xref:hazelcast-queue-component.adoc[Hazelcast Queue]
 *** xref:hazelcast-replicatedmap-component.adoc[Hazelcast Replicated Map]
 *** xref:hazelcast-ringbuffer-component.adoc[Hazelcast Ringbuffer]
diff --git 
a/docs/components/modules/ROOT/pages/hazelcast-pncounter-component.adoc 
b/docs/components/modules/ROOT/pages/hazelcast-pncounter-component.adoc
new file mode 120000
index 000000000000..eb92ceb483e4
--- /dev/null
+++ b/docs/components/modules/ROOT/pages/hazelcast-pncounter-component.adoc
@@ -0,0 +1 @@
+../../../../../components/camel-hazelcast/src/main/docs/hazelcast-pncounter-component.adoc
\ No newline at end of file
diff --git 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
index e02ec586e7ed..26972a01d792 100644
--- 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
+++ 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
@@ -2062,6 +2062,20 @@ public interface ComponentsBuilderFactory {
     static 
HazelcastMultimapComponentBuilderFactory.HazelcastMultimapComponentBuilder 
hazelcastMultimap() {
         return HazelcastMultimapComponentBuilderFactory.hazelcastMultimap();
     }
+    /**
+     * Hazelcast PN Counter (camel-hazelcast)
+     * Increment, decrement, get, etc. operations on a Hazelcast PN Counter
+     * (CRDT counter).
+     * 
+     * Category: cache,clustering
+     * Since: 4.19
+     * Maven coordinates: org.apache.camel:camel-hazelcast
+     * 
+     * @return the dsl builder
+     */
+    static 
HazelcastPncounterComponentBuilderFactory.HazelcastPncounterComponentBuilder 
hazelcastPncounter() {
+        return HazelcastPncounterComponentBuilderFactory.hazelcastPncounter();
+    }
     /**
      * Hazelcast Queue (camel-hazelcast)
      * Perform operations on Hazelcast distributed queue.
diff --git 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/HazelcastPncounterComponentBuilderFactory.java
 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/HazelcastPncounterComponentBuilderFactory.java
new file mode 100644
index 000000000000..0d7c1f5f5adc
--- /dev/null
+++ 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/HazelcastPncounterComponentBuilderFactory.java
@@ -0,0 +1,161 @@
+/* Generated by camel build tools - do NOT edit this file! */
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.builder.component.dsl;
+
+import javax.annotation.processing.Generated;
+import org.apache.camel.Component;
+import org.apache.camel.builder.component.AbstractComponentBuilder;
+import org.apache.camel.builder.component.ComponentBuilder;
+import 
org.apache.camel.component.hazelcast.pncounter.HazelcastPNCounterComponent;
+
+/**
+ * Increment, decrement, get, etc. operations on a Hazelcast PN Counter (CRDT
+ * counter).
+ * 
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.ComponentDslMojo")
+public interface HazelcastPncounterComponentBuilderFactory {
+
+    /**
+     * Hazelcast PN Counter (camel-hazelcast)
+     * Increment, decrement, get, etc. operations on a Hazelcast PN Counter
+     * (CRDT counter).
+     * 
+     * Category: cache,clustering
+     * Since: 4.19
+     * Maven coordinates: org.apache.camel:camel-hazelcast
+     * 
+     * @return the dsl builder
+     */
+    static HazelcastPncounterComponentBuilder hazelcastPncounter() {
+        return new HazelcastPncounterComponentBuilderImpl();
+    }
+
+    /**
+     * Builder for the Hazelcast PN Counter component.
+     */
+    interface HazelcastPncounterComponentBuilder extends 
ComponentBuilder<HazelcastPNCounterComponent> {
+    
+        
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes 
to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring 
this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that 
when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing 
time
+         * of the processing.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: producer
+         * 
+         * @param lazyStartProducer the value to set
+         * @return the dsl builder
+         */
+        default HazelcastPncounterComponentBuilder lazyStartProducer(boolean 
lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+    
+        
+        /**
+         * Whether autowiring is enabled. This is used for automatic autowiring
+         * options (the option must be marked as autowired) by looking up in 
the
+         * registry to find if there is a single instance of matching type,
+         * which then gets configured on the component. This can be used for
+         * automatic configuring JDBC data sources, JMS connection factories,
+         * AWS Clients, etc.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: true
+         * Group: advanced
+         * 
+         * @param autowiredEnabled the value to set
+         * @return the dsl builder
+         */
+        default HazelcastPncounterComponentBuilder autowiredEnabled(boolean 
autowiredEnabled) {
+            doSetProperty("autowiredEnabled", autowiredEnabled);
+            return this;
+        }
+    
+        /**
+         * The hazelcast instance reference which can be used for hazelcast
+         * endpoint. If you don't specify the instance reference, camel use the
+         * default hazelcast instance from the camel-hazelcast instance.
+         * 
+         * The option is a:
+         * &lt;code&gt;com.hazelcast.core.HazelcastInstance&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param hazelcastInstance the value to set
+         * @return the dsl builder
+         */
+        default HazelcastPncounterComponentBuilder 
hazelcastInstance(com.hazelcast.core.HazelcastInstance hazelcastInstance) {
+            doSetProperty("hazelcastInstance", hazelcastInstance);
+            return this;
+        }
+    
+        
+        /**
+         * The hazelcast mode reference which kind of instance should be used.
+         * If you don't specify the mode, then the node mode will be the
+         * default.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Default: node
+         * Group: advanced
+         * 
+         * @param hazelcastMode the value to set
+         * @return the dsl builder
+         */
+        default HazelcastPncounterComponentBuilder 
hazelcastMode(java.lang.String hazelcastMode) {
+            doSetProperty("hazelcastMode", hazelcastMode);
+            return this;
+        }
+    }
+
+    class HazelcastPncounterComponentBuilderImpl
+            extends AbstractComponentBuilder<HazelcastPNCounterComponent>
+            implements HazelcastPncounterComponentBuilder {
+        @Override
+        protected HazelcastPNCounterComponent buildConcreteComponent() {
+            return new HazelcastPNCounterComponent();
+        }
+        @Override
+        protected boolean setPropertyOnComponent(
+                Component component,
+                String name,
+                Object value) {
+            switch (name) {
+            case "lazyStartProducer": ((HazelcastPNCounterComponent) 
component).setLazyStartProducer((boolean) value); return true;
+            case "autowiredEnabled": ((HazelcastPNCounterComponent) 
component).setAutowiredEnabled((boolean) value); return true;
+            case "hazelcastInstance": ((HazelcastPNCounterComponent) 
component).setHazelcastInstance((com.hazelcast.core.HazelcastInstance) value); 
return true;
+            case "hazelcastMode": ((HazelcastPNCounterComponent) 
component).setHazelcastMode((java.lang.String) value); return true;
+            default: return false;
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
index 98435404e317..17af69f485d7 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
@@ -160,6 +160,7 @@ public interface EndpointBuilderFactory
             
org.apache.camel.builder.endpoint.dsl.HazelcastListEndpointBuilderFactory.HazelcastListBuilders,
             
org.apache.camel.builder.endpoint.dsl.HazelcastMapEndpointBuilderFactory.HazelcastMapBuilders,
             
org.apache.camel.builder.endpoint.dsl.HazelcastMultimapEndpointBuilderFactory.HazelcastMultimapBuilders,
+            
org.apache.camel.builder.endpoint.dsl.HazelcastPNCounterEndpointBuilderFactory.HazelcastPNCounterBuilders,
             
org.apache.camel.builder.endpoint.dsl.HazelcastQueueEndpointBuilderFactory.HazelcastQueueBuilders,
             
org.apache.camel.builder.endpoint.dsl.HazelcastReplicatedmapEndpointBuilderFactory.HazelcastReplicatedmapBuilders,
             
org.apache.camel.builder.endpoint.dsl.HazelcastRingbufferEndpointBuilderFactory.HazelcastRingbufferBuilders,
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
index 167a8119ae81..037df2923106 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
@@ -157,6 +157,7 @@ public interface EndpointBuilders
             
org.apache.camel.builder.endpoint.dsl.HazelcastListEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.HazelcastMapEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.HazelcastMultimapEndpointBuilderFactory,
+            
org.apache.camel.builder.endpoint.dsl.HazelcastPNCounterEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.HazelcastQueueEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.HazelcastReplicatedmapEndpointBuilderFactory,
             
org.apache.camel.builder.endpoint.dsl.HazelcastRingbufferEndpointBuilderFactory,
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
index 5c160cacd5b5..ae99274f4b01 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
@@ -6582,6 +6582,7 @@ public class StaticEndpointBuilders {
      * @param path cacheName
      * @return the dsl builder
      */
+    @Deprecated
     public static 
HazelcastAtomicnumberEndpointBuilderFactory.HazelcastAtomicnumberEndpointBuilder
 hazelcastAtomicvalue(String path) {
         return hazelcastAtomicvalue("hazelcast-atomicvalue", path);
     }
@@ -6604,6 +6605,7 @@ public class StaticEndpointBuilders {
      * @param path cacheName
      * @return the dsl builder
      */
+    @Deprecated
     public static 
HazelcastAtomicnumberEndpointBuilderFactory.HazelcastAtomicnumberEndpointBuilder
 hazelcastAtomicvalue(String componentName, String path) {
         return 
HazelcastAtomicnumberEndpointBuilderFactory.endpointBuilder(componentName, 
path);
     }
@@ -6767,6 +6769,48 @@ public class StaticEndpointBuilders {
     public static 
HazelcastMultimapEndpointBuilderFactory.HazelcastMultimapEndpointBuilder 
hazelcastMultimap(String componentName, String path) {
         return 
HazelcastMultimapEndpointBuilderFactory.endpointBuilder(componentName, path);
     }
+    /**
+     * Hazelcast PN Counter (camel-hazelcast)
+     * Increment, decrement, get, etc. operations on a Hazelcast PN Counter
+     * (CRDT counter).
+     * 
+     * Category: cache,clustering
+     * Since: 4.19
+     * Maven coordinates: org.apache.camel:camel-hazelcast
+     * 
+     * Syntax: <code>hazelcast-pncounter:cacheName</code>
+     * 
+     * Path parameter: cacheName (required)
+     * The name of the cache
+     * 
+     * @param path cacheName
+     * @return the dsl builder
+     */
+    public static 
HazelcastPNCounterEndpointBuilderFactory.HazelcastPNCounterEndpointBuilder 
hazelcastPncounter(String path) {
+        return hazelcastPncounter("hazelcast-pncounter", path);
+    }
+    /**
+     * Hazelcast PN Counter (camel-hazelcast)
+     * Increment, decrement, get, etc. operations on a Hazelcast PN Counter
+     * (CRDT counter).
+     * 
+     * Category: cache,clustering
+     * Since: 4.19
+     * Maven coordinates: org.apache.camel:camel-hazelcast
+     * 
+     * Syntax: <code>hazelcast-pncounter:cacheName</code>
+     * 
+     * Path parameter: cacheName (required)
+     * The name of the cache
+     * 
+     * @param componentName to use a custom component name for the endpoint
+     * instead of the default name
+     * @param path cacheName
+     * @return the dsl builder
+     */
+    public static 
HazelcastPNCounterEndpointBuilderFactory.HazelcastPNCounterEndpointBuilder 
hazelcastPncounter(String componentName, String path) {
+        return 
HazelcastPNCounterEndpointBuilderFactory.endpointBuilder(componentName, path);
+    }
     /**
      * Hazelcast Queue (camel-hazelcast)
      * Perform operations on Hazelcast distributed queue.
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/HazelcastAtomicnumberEndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/HazelcastAtomicnumberEndpointBuilderFactory.java
index 817bbdc4fa2f..faa71ad3c4dd 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/HazelcastAtomicnumberEndpointBuilderFactory.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/HazelcastAtomicnumberEndpointBuilderFactory.java
@@ -215,6 +215,7 @@ public interface 
HazelcastAtomicnumberEndpointBuilderFactory {
          * 
          * @return the dsl builder for the headers' name.
          */
+        @Deprecated
         default HazelcastAtomicnumberHeaderNameBuilder hazelcastAtomicvalue() {
             return HazelcastAtomicnumberHeaderNameBuilder.INSTANCE;
         }
@@ -235,6 +236,7 @@ public interface 
HazelcastAtomicnumberEndpointBuilderFactory {
          * @param path cacheName
          * @return the dsl builder
          */
+        @Deprecated
         default HazelcastAtomicnumberEndpointBuilder 
hazelcastAtomicvalue(String path) {
             return 
HazelcastAtomicnumberEndpointBuilderFactory.endpointBuilder("hazelcast-atomicvalue",
 path);
         }
@@ -257,6 +259,7 @@ public interface 
HazelcastAtomicnumberEndpointBuilderFactory {
          * @param path cacheName
          * @return the dsl builder
          */
+        @Deprecated
         default HazelcastAtomicnumberEndpointBuilder 
hazelcastAtomicvalue(String componentName, String path) {
             return 
HazelcastAtomicnumberEndpointBuilderFactory.endpointBuilder(componentName, 
path);
         }
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/HazelcastAtomicnumberEndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/HazelcastPNCounterEndpointBuilderFactory.java
similarity index 63%
copy from 
dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/HazelcastAtomicnumberEndpointBuilderFactory.java
copy to 
dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/HazelcastPNCounterEndpointBuilderFactory.java
index 817bbdc4fa2f..36778575e38d 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/HazelcastAtomicnumberEndpointBuilderFactory.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/HazelcastPNCounterEndpointBuilderFactory.java
@@ -27,21 +27,22 @@ import org.apache.camel.builder.EndpointProducerBuilder;
 import org.apache.camel.builder.endpoint.AbstractEndpointBuilder;
 
 /**
- * Increment, decrement, set, etc. Hazelcast atomic number (a grid wide 
number).
+ * Increment, decrement, get, etc. operations on a Hazelcast PN Counter (CRDT
+ * counter).
  * 
  * Generated by camel build tools - do NOT edit this file!
  */
 @Generated("org.apache.camel.maven.packaging.EndpointDslMojo")
-public interface HazelcastAtomicnumberEndpointBuilderFactory {
+public interface HazelcastPNCounterEndpointBuilderFactory {
 
     /**
-     * Builder for endpoint for the Hazelcast Atomic Number component.
+     * Builder for endpoint for the Hazelcast PN Counter component.
      */
-    public interface HazelcastAtomicnumberEndpointBuilder
+    public interface HazelcastPNCounterEndpointBuilder
             extends
                 EndpointProducerBuilder {
-        default AdvancedHazelcastAtomicnumberEndpointBuilder advanced() {
-            return (AdvancedHazelcastAtomicnumberEndpointBuilder) this;
+        default AdvancedHazelcastPNCounterEndpointBuilder advanced() {
+            return (AdvancedHazelcastPNCounterEndpointBuilder) this;
         }
 
         /**
@@ -57,7 +58,7 @@ public interface HazelcastAtomicnumberEndpointBuilderFactory {
          * @param defaultOperation the value to set
          * @return the dsl builder
          */
-        default HazelcastAtomicnumberEndpointBuilder 
defaultOperation(org.apache.camel.component.hazelcast.HazelcastOperation 
defaultOperation) {
+        default HazelcastPNCounterEndpointBuilder 
defaultOperation(org.apache.camel.component.hazelcast.HazelcastOperation 
defaultOperation) {
             doSetProperty("defaultOperation", defaultOperation);
             return this;
         }
@@ -74,7 +75,7 @@ public interface HazelcastAtomicnumberEndpointBuilderFactory {
          * @param defaultOperation the value to set
          * @return the dsl builder
          */
-        default HazelcastAtomicnumberEndpointBuilder defaultOperation(String 
defaultOperation) {
+        default HazelcastPNCounterEndpointBuilder defaultOperation(String 
defaultOperation) {
             doSetProperty("defaultOperation", defaultOperation);
             return this;
         }
@@ -91,7 +92,7 @@ public interface HazelcastAtomicnumberEndpointBuilderFactory {
          * @param hazelcastConfigUri the value to set
          * @return the dsl builder
          */
-        default HazelcastAtomicnumberEndpointBuilder hazelcastConfigUri(String 
hazelcastConfigUri) {
+        default HazelcastPNCounterEndpointBuilder hazelcastConfigUri(String 
hazelcastConfigUri) {
             doSetProperty("hazelcastConfigUri", hazelcastConfigUri);
             return this;
         }
@@ -107,7 +108,7 @@ public interface 
HazelcastAtomicnumberEndpointBuilderFactory {
          * @param hazelcastInstance the value to set
          * @return the dsl builder
          */
-        default HazelcastAtomicnumberEndpointBuilder 
hazelcastInstance(com.hazelcast.core.HazelcastInstance hazelcastInstance) {
+        default HazelcastPNCounterEndpointBuilder 
hazelcastInstance(com.hazelcast.core.HazelcastInstance hazelcastInstance) {
             doSetProperty("hazelcastInstance", hazelcastInstance);
             return this;
         }
@@ -123,7 +124,7 @@ public interface 
HazelcastAtomicnumberEndpointBuilderFactory {
          * @param hazelcastInstance the value to set
          * @return the dsl builder
          */
-        default HazelcastAtomicnumberEndpointBuilder hazelcastInstance(String 
hazelcastInstance) {
+        default HazelcastPNCounterEndpointBuilder hazelcastInstance(String 
hazelcastInstance) {
             doSetProperty("hazelcastInstance", hazelcastInstance);
             return this;
         }
@@ -139,20 +140,20 @@ public interface 
HazelcastAtomicnumberEndpointBuilderFactory {
          * @param hazelcastInstanceName the value to set
          * @return the dsl builder
          */
-        default HazelcastAtomicnumberEndpointBuilder 
hazelcastInstanceName(String hazelcastInstanceName) {
+        default HazelcastPNCounterEndpointBuilder hazelcastInstanceName(String 
hazelcastInstanceName) {
             doSetProperty("hazelcastInstanceName", hazelcastInstanceName);
             return this;
         }
     }
 
     /**
-     * Advanced builder for endpoint for the Hazelcast Atomic Number component.
+     * Advanced builder for endpoint for the Hazelcast PN Counter component.
      */
-    public interface AdvancedHazelcastAtomicnumberEndpointBuilder
+    public interface AdvancedHazelcastPNCounterEndpointBuilder
             extends
                 EndpointProducerBuilder {
-        default HazelcastAtomicnumberEndpointBuilder basic() {
-            return (HazelcastAtomicnumberEndpointBuilder) this;
+        default HazelcastPNCounterEndpointBuilder basic() {
+            return (HazelcastPNCounterEndpointBuilder) this;
         }
 
         /**
@@ -174,7 +175,7 @@ public interface 
HazelcastAtomicnumberEndpointBuilderFactory {
          * @param lazyStartProducer the value to set
          * @return the dsl builder
          */
-        default AdvancedHazelcastAtomicnumberEndpointBuilder 
lazyStartProducer(boolean lazyStartProducer) {
+        default AdvancedHazelcastPNCounterEndpointBuilder 
lazyStartProducer(boolean lazyStartProducer) {
             doSetProperty("lazyStartProducer", lazyStartProducer);
             return this;
         }
@@ -197,37 +198,23 @@ public interface 
HazelcastAtomicnumberEndpointBuilderFactory {
          * @param lazyStartProducer the value to set
          * @return the dsl builder
          */
-        default AdvancedHazelcastAtomicnumberEndpointBuilder 
lazyStartProducer(String lazyStartProducer) {
+        default AdvancedHazelcastPNCounterEndpointBuilder 
lazyStartProducer(String lazyStartProducer) {
             doSetProperty("lazyStartProducer", lazyStartProducer);
             return this;
         }
     }
 
-    public interface HazelcastAtomicnumberBuilders {
+    public interface HazelcastPNCounterBuilders {
         /**
-         * Hazelcast Atomic Number (camel-hazelcast)
-         * Increment, decrement, set, etc. Hazelcast atomic number (a grid wide
-         * number).
+         * Hazelcast PN Counter (camel-hazelcast)
+         * Increment, decrement, get, etc. operations on a Hazelcast PN Counter
+         * (CRDT counter).
          * 
          * Category: cache,clustering
-         * Since: 2.7
+         * Since: 4.19
          * Maven coordinates: org.apache.camel:camel-hazelcast
          * 
-         * @return the dsl builder for the headers' name.
-         */
-        default HazelcastAtomicnumberHeaderNameBuilder hazelcastAtomicvalue() {
-            return HazelcastAtomicnumberHeaderNameBuilder.INSTANCE;
-        }
-        /**
-         * Hazelcast Atomic Number (camel-hazelcast)
-         * Increment, decrement, set, etc. Hazelcast atomic number (a grid wide
-         * number).
-         * 
-         * Category: cache,clustering
-         * Since: 2.7
-         * Maven coordinates: org.apache.camel:camel-hazelcast
-         * 
-         * Syntax: <code>hazelcast-atomicvalue:cacheName</code>
+         * Syntax: <code>hazelcast-pncounter:cacheName</code>
          * 
          * Path parameter: cacheName (required)
          * The name of the cache
@@ -235,19 +222,19 @@ public interface 
HazelcastAtomicnumberEndpointBuilderFactory {
          * @param path cacheName
          * @return the dsl builder
          */
-        default HazelcastAtomicnumberEndpointBuilder 
hazelcastAtomicvalue(String path) {
-            return 
HazelcastAtomicnumberEndpointBuilderFactory.endpointBuilder("hazelcast-atomicvalue",
 path);
+        default HazelcastPNCounterEndpointBuilder hazelcastPncounter(String 
path) {
+            return 
HazelcastPNCounterEndpointBuilderFactory.endpointBuilder("hazelcast-pncounter", 
path);
         }
         /**
-         * Hazelcast Atomic Number (camel-hazelcast)
-         * Increment, decrement, set, etc. Hazelcast atomic number (a grid wide
-         * number).
+         * Hazelcast PN Counter (camel-hazelcast)
+         * Increment, decrement, get, etc. operations on a Hazelcast PN Counter
+         * (CRDT counter).
          * 
          * Category: cache,clustering
-         * Since: 2.7
+         * Since: 4.19
          * Maven coordinates: org.apache.camel:camel-hazelcast
          * 
-         * Syntax: <code>hazelcast-atomicvalue:cacheName</code>
+         * Syntax: <code>hazelcast-pncounter:cacheName</code>
          * 
          * Path parameter: cacheName (required)
          * The name of the cache
@@ -257,40 +244,17 @@ public interface 
HazelcastAtomicnumberEndpointBuilderFactory {
          * @param path cacheName
          * @return the dsl builder
          */
-        default HazelcastAtomicnumberEndpointBuilder 
hazelcastAtomicvalue(String componentName, String path) {
-            return 
HazelcastAtomicnumberEndpointBuilderFactory.endpointBuilder(componentName, 
path);
+        default HazelcastPNCounterEndpointBuilder hazelcastPncounter(String 
componentName, String path) {
+            return 
HazelcastPNCounterEndpointBuilderFactory.endpointBuilder(componentName, path);
         }
 
     }
-    /**
-     * The builder of headers' name for the Hazelcast Atomic Number component.
-     */
-    public static class HazelcastAtomicnumberHeaderNameBuilder {
-        /**
-         * The internal instance of the builder used to access to all the
-         * methods representing the name of headers.
-         */
-        private static final HazelcastAtomicnumberHeaderNameBuilder INSTANCE = 
new HazelcastAtomicnumberHeaderNameBuilder();
-
-        /**
-         * The operation to perform.
-         * 
-         * The option is a: {@code String} type.
-         * 
-         * Group: producer
-         * 
-         * @return the name of the header {@code HazelcastOperationType}.
-         */
-        public String hazelcastOperationType() {
-            return "CamelHazelcastOperationType";
-        }
-    }
-    static HazelcastAtomicnumberEndpointBuilder endpointBuilder(String 
componentName, String path) {
-        class HazelcastAtomicnumberEndpointBuilderImpl extends 
AbstractEndpointBuilder implements HazelcastAtomicnumberEndpointBuilder, 
AdvancedHazelcastAtomicnumberEndpointBuilder {
-            public HazelcastAtomicnumberEndpointBuilderImpl(String path) {
+    static HazelcastPNCounterEndpointBuilder endpointBuilder(String 
componentName, String path) {
+        class HazelcastPNCounterEndpointBuilderImpl extends 
AbstractEndpointBuilder implements HazelcastPNCounterEndpointBuilder, 
AdvancedHazelcastPNCounterEndpointBuilder {
+            public HazelcastPNCounterEndpointBuilderImpl(String path) {
                 super(componentName, path);
             }
         }
-        return new HazelcastAtomicnumberEndpointBuilderImpl(path);
+        return new HazelcastPNCounterEndpointBuilderImpl(path);
     }
 }
\ No newline at end of file
diff --git 
a/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
 
b/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
index e43336848887..f95e9e4cd06a 100644
--- 
a/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
+++ 
b/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
@@ -167,6 +167,7 @@ 
org.apache.camel.component.hazelcast.instance.HazelcastInstanceComponent=camel:h
 
org.apache.camel.component.hazelcast.list.HazelcastListComponent=camel:hazelcast
 org.apache.camel.component.hazelcast.map.HazelcastMapComponent=camel:hazelcast
 
org.apache.camel.component.hazelcast.multimap.HazelcastMultimapComponent=camel:hazelcast
+org.apache.camel.component.hazelcast.pncounter.HazelcastPNCounterComponent=camel:hazelcast
 
org.apache.camel.component.hazelcast.queue.HazelcastQueueComponent=camel:hazelcast
 
org.apache.camel.component.hazelcast.replicatedmap.HazelcastReplicatedmapComponent=camel:hazelcast
 
org.apache.camel.component.hazelcast.ringbuffer.HazelcastRingbufferComponent=camel:hazelcast

Reply via email to