You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2025/02/05 06:07:17 UTC

(camel) branch main updated: CAMEL-21541: Ceate Neo4j and introduce vector database support

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 bb100bace1f CAMEL-21541: Ceate Neo4j and introduce vector database support
bb100bace1f is described below

commit bb100bace1fd729144f3ffe77530b2f70ef48da0
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Feb 5 07:07:07 2025 +0100

    CAMEL-21541: Ceate Neo4j and introduce vector database support
---
 .../org/apache/camel/catalog/components.properties |   1 +
 .../org/apache/camel/catalog/components/neo4j.json |  81 +++
 .../apache/camel/catalog/main/sensitive-keys.json  |   4 +
 .../apache/camel/catalog/transformers.properties   |   1 +
 .../catalog/transformers/neo4j-embeddings.json     |  14 +
 ...j-neo4j-component.adoc => neo4j-component.adoc} |   9 +-
 .../org/apache/camel/main/components.properties    |   1 +
 .../java/org/apache/camel/util/SensitiveUtils.java |  10 +-
 docs/components/modules/ROOT/nav.adoc              |   2 +-
 .../ROOT/pages/langchain4j-neo4j-component.adoc    |   1 -
 .../modules/ROOT/pages/neo4j-component.adoc        |   1 +
 .../component/ComponentsBuilderFactory.java        |  13 +
 .../dsl/Neo4jComponentBuilderFactory.java          | 408 +++++++++++++
 .../builder/endpoint/EndpointBuilderFactory.java   |   1 +
 .../camel/builder/endpoint/EndpointBuilders.java   |   1 +
 .../builder/endpoint/StaticEndpointBuilders.java   |  40 ++
 .../endpoint/dsl/Neo4jEndpointBuilderFactory.java  | 655 +++++++++++++++++++++
 .../apache/camel/maven/packaging/MojoHelper.java   |   2 +-
 18 files changed, 1234 insertions(+), 11 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 faf25dd6e75..7eb00e2a86d 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
@@ -235,6 +235,7 @@ mvel
 mybatis
 mybatis-bean
 nats
+neo4j
 netty
 netty-http
 nitrite
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/neo4j.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/neo4j.json
new file mode 100644
index 00000000000..cc02a06d871
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/neo4j.json
@@ -0,0 +1,81 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "neo4j",
+    "title": "Neo4j",
+    "description": "Perform operations on the Neo4j Graph Database",
+    "deprecated": false,
+    "firstVersion": "4.10.0",
+    "label": "database,ai",
+    "javaType": "org.apache.camel.component.neo4j.Neo4jComponent",
+    "supportLevel": "Preview",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-neo4j",
+    "version": "4.10.0-SNAPSHOT",
+    "scheme": "neo4j",
+    "extendsScheme": "",
+    "syntax": "neo4j:name",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false,
+    "browsable": false,
+    "remote": true
+  },
+  "componentProperties": {
+    "alias": { "index": 0, "kind": "property", "displayName": "Alias", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "Node alias" },
+    "base64": { "index": 1, "kind": "property", "displayName": "Encoded base64 ticket", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "Kerberos Authentication encoded base64 ticket" },
+    "configuration": { "index": 2, "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.neo4j.Neo4jConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "The configuration;" },
+    "dbPassword": { "index": 3, "kind": "property", "displayName": "Database password", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "Basic authentication database password" },
+    "dbUri": { "index": 4, "kind": "property", "displayName": "Db Uri", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "URI of the Neo4j server - used for Authentication" },
+    "dbUser": { "index": 5, "kind": "property", "displayName": "Database user", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "Basic authentication database user" },
+    "detachRelationship": { "index": 6, "kind": "property", "displayName": "Detach Relationship", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "Detach a relationship - set true if want to delete a node and detach its relationships [...]
+    "dimension": { "index": 7, "kind": "property", "displayName": "Dimension", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "Dimension of Vector Index" },
+    "label": { "index": 8, "kind": "property", "displayName": "Label", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "Node Label" },
+    "lazyStartProducer": { "index": 9, "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "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 [...]
+    "maxResults": { "index": 10, "kind": "property", "displayName": "Max Results", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 3, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "Maximum results for Vector Similarity search" },
+    "minScore": { "index": 11, "kind": "property", "displayName": "Min Score", "group": "producer", "label": "", "required": false, "type": "number", "javaType": "double", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0.0, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "Minimum score for Vector Similarity search" },
+    "query": { "index": 12, "kind": "property", "displayName": "Query", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "Cypher Query" },
+    "realm": { "index": 13, "kind": "property", "displayName": "Database user", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "Basic authentication database realm" },
+    "similarityFunction": { "index": 14, "kind": "property", "displayName": "Similarity Function", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.neo4j.Neo4jSimilarityFunction", "enum": [ "cosine", "euclidean" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "cosine", "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description":  [...]
+    "token": { "index": 15, "kind": "property", "displayName": "Realm", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "Bearer authentication database realm" },
+    "vectorIndexName": { "index": 16, "kind": "property", "displayName": "Vector Index Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "Vector Index Name" },
+    "autowiredEnabled": { "index": 17, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "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  [...]
+    "driver": { "index": 18, "kind": "property", "displayName": "Driver", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.neo4j.driver.Driver", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "Advanced - Driver" }
+  },
+  "headers": {
+    "CamelNeo4jAction": { "index": 0, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "enum": [ "CREATE_NODE", "DELETE_NODE", "RETRIEVE_NODES", "RETRIEVE_NODES_AND_UPDATE_WITH_CYPHER_QUERY", "ADD_OR_DELETE_NODE_WITH_CYPHER_QUERY", "CREATE_VECTOR_INDEX", "DROP_VECTOR_INDEX", "CREATE_VECTOR", "VECTOR_SIMILARITY_SEARCH" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The opera [...]
+    "CamelNeo4jMatchProperties": { "index": 1, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "MATCH properties for the generated MATCH query. Needed only if we are matching properties and values. Example: {name: 'Alice'}", "constantName": "org.apache.camel.component.neo4j.Neo4j$Headers#MATCH_PROPERTIES" },
+    "CamelNeo4jQueryResult": { "index": 2, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Query excetuded", "constantName": "org.apache.camel.component.neo4j.Neo4j$Headers#QUERY_RESULT" },
+    "CamelNeo4jQueryResultNodesCreated": { "index": 3, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Query Number of nodes created", "constantName": "org.apache.camel.component.neo4j.Neo4j$Headers#QUERY_RESULT_NODES_CREATED" },
+    "CamelNeo4jQueryResultNodesDeleted": { "index": 4, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Query Number of nodes deleted", "constantName": "org.apache.camel.component.neo4j.Neo4j$Headers#QUERY_RESULT_NODES_DELETED" },
+    "CamelNeo4jQueryResultContainsUpdates": { "index": 5, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Booleab", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Query executed contains update", "constantName": "org.apache.camel.component.neo4j.Neo4j$Headers#QUERY_RESULT_CONTAINS_UPDATES" },
+    "CamelNeo4jQueryResultRelationshipsCreated": { "index": 6, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Query executed number of relationships created", "constantName": "org.apache.camel.component.neo4j.Neo4j$Headers#QUERY_RESULT_RELATIONSHIPS_CREATED" },
+    "CamelNeo4jQueryResultRelationshipsDeleted": { "index": 7, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Query executed number of relationships deleted", "constantName": "org.apache.camel.component.neo4j.Neo4j$Headers#QUERY_RESULT_RELATIONSHIPS_DELETED" },
+    "CamelNeo4jQueryResultRetrieveSize": { "index": 8, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Number of nodes retrieved", "constantName": "org.apache.camel.component.neo4j.Neo4j$Headers#QUERY_RETRIEVE_SIZE" },
+    "CamelNeo4jQueryResultListNeo4jNodes": { "index": 9, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Query execution time in Milliseconfs", "constantName": "org.apache.camel.component.neo4j.Neo4j$Headers#QUERY_RETRIEVE_LIST_NEO4J_NODES" },
+    "CamelNeo4jVectorEmbeddingId": { "index": 10, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Vector Id for the embedding", "constantName": "org.apache.camel.component.neo4j.Neo4j$Headers#VECTOR_ID" },
+    "CamelNeo4jLabel": { "index": 11, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Label for the Node - used when inserting from Embeddings", "constantName": "org.apache.camel.component.neo4j.Neo4j$Headers#LABEL" }
+  },
+  "properties": {
+    "name": { "index": 0, "kind": "path", "displayName": "Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The database Name" },
+    "alias": { "index": 1, "kind": "parameter", "displayName": "Alias", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "Node alias" },
+    "base64": { "index": 2, "kind": "parameter", "displayName": "Encoded base64 ticket", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "Kerberos Authentication encoded base64 ticket" },
+    "dbPassword": { "index": 3, "kind": "parameter", "displayName": "Database password", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "Basic authentication database password" },
+    "dbUri": { "index": 4, "kind": "parameter", "displayName": "Db Uri", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "URI of the Neo4j server - used for Authentication" },
+    "dbUser": { "index": 5, "kind": "parameter", "displayName": "Database user", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "Basic authentication database user" },
+    "detachRelationship": { "index": 6, "kind": "parameter", "displayName": "Detach Relationship", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "Detach a relationship - set true if want to delete a node and detach its relationship [...]
+    "dimension": { "index": 7, "kind": "parameter", "displayName": "Dimension", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "Dimension of Vector Index" },
+    "label": { "index": 8, "kind": "parameter", "displayName": "Label", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "Node Label" },
+    "maxResults": { "index": 9, "kind": "parameter", "displayName": "Max Results", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 3, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "Maximum results for Vector Similarity search" },
+    "minScore": { "index": 10, "kind": "parameter", "displayName": "Min Score", "group": "producer", "label": "", "required": false, "type": "number", "javaType": "double", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0.0, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "Minimum score for Vector Similarity search" },
+    "query": { "index": 11, "kind": "parameter", "displayName": "Query", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "Cypher Query" },
+    "realm": { "index": 12, "kind": "parameter", "displayName": "Database user", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "Basic authentication database realm" },
+    "similarityFunction": { "index": 13, "kind": "parameter", "displayName": "Similarity Function", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.neo4j.Neo4jSimilarityFunction", "enum": [ "cosine", "euclidean" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "cosine", "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": [...]
+    "token": { "index": 14, "kind": "parameter", "displayName": "Realm", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "Bearer authentication database realm" },
+    "vectorIndexName": { "index": 15, "kind": "parameter", "displayName": "Vector Index Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "Vector Index Name" },
+    "lazyStartProducer": { "index": 16, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "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 produ [...]
+    "driver": { "index": 17, "kind": "parameter", "displayName": "Driver", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.neo4j.driver.Driver", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.neo4j.Neo4jConfiguration", "configurationField": "configuration", "description": "Advanced - Driver" }
+  }
+}
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/main/sensitive-keys.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/main/sensitive-keys.json
index 167f9d6a91d..37a4566362d 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/main/sensitive-keys.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/main/sensitive-keys.json
@@ -13,6 +13,7 @@
   "apiusername",
   "authkey",
   "authorizationtoken",
+  "base64",
   "blobaccesskey",
   "blobstoragesharedkeycredential",
   "certresourcepassword",
@@ -22,6 +23,8 @@
   "connectionstring",
   "consumerkey",
   "consumersecret",
+  "dbpassword",
+  "dbuser",
   "emailaddress",
   "httpproxypassword",
   "keystorePassword",
@@ -47,6 +50,7 @@
   "publickeyid",
   "publishkey",
   "queueownerawsaccountid",
+  "realm",
   "refreshtoken",
   "sascredential",
   "sasljaasconfig",
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/transformers.properties b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/transformers.properties
index b740fa67e2c..87f08bc689e 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/transformers.properties
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/transformers.properties
@@ -28,6 +28,7 @@ google-sheets-stream-application-cloudevents
 google-storage-application-cloudevents
 http-application-cloudevents
 milvus-embeddings
+neo4j-embeddings
 pinecone-embeddings
 protobuf-binary
 protobuf-x-java-object
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/transformers/neo4j-embeddings.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/transformers/neo4j-embeddings.json
new file mode 100644
index 00000000000..e1230e5e5ed
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/transformers/neo4j-embeddings.json
@@ -0,0 +1,14 @@
+{
+  "transformer": {
+    "kind": "transformer",
+    "name": "neo4j:embeddings",
+    "title": "Neo4j (Embeddings)",
+    "description": "Prepares the message to become an object writable by Neo4j component",
+    "deprecated": false,
+    "javaType": "org.apache.camel.component.neo4j.transformer.Neo4jEmbeddingDataTypeTransformer",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-neo4j",
+    "version": "4.10.0-SNAPSHOT"
+  }
+}
+
diff --git a/components/camel-ai/camel-neo4j/src/main/docs/langchain4j-neo4j-component.adoc b/components/camel-ai/camel-neo4j/src/main/docs/neo4j-component.adoc
similarity index 99%
rename from components/camel-ai/camel-neo4j/src/main/docs/langchain4j-neo4j-component.adoc
rename to components/camel-ai/camel-neo4j/src/main/docs/neo4j-component.adoc
index afd37e3fa25..5fc4b0a8960 100644
--- a/components/camel-ai/camel-neo4j/src/main/docs/langchain4j-neo4j-component.adoc
+++ b/components/camel-ai/camel-neo4j/src/main/docs/neo4j-component.adoc
@@ -2,9 +2,9 @@
 :doctitle: Neo4j
 :shortname: neo4j
 :artifactid: camel-neo4j
-:description: Neo4j
+:description: Perform operations on the Neo4j Graph Database
 :since: 4.10
-:supportlevel: Stable
+:supportlevel: Preview
 :tabs-sync-option:
 :component-header: Only producer is supported
 //Manually maintained attributes
@@ -264,8 +264,3 @@ You can generate embeddings with an Embedding Models using the camel Lancghain4j
             .transform(new DataType("neo4j:embeddings"))
             .to("neo4j:test");
 ----
-
-
-
-
-
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 faf25dd6e75..7eb00e2a86d 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
@@ -235,6 +235,7 @@ mvel
 mybatis
 mybatis-bean
 nats
+neo4j
 netty
 netty-http
 nitrite
diff --git a/core/camel-util/src/main/java/org/apache/camel/util/SensitiveUtils.java b/core/camel-util/src/main/java/org/apache/camel/util/SensitiveUtils.java
index adcdc338cd9..ab6fbc55640 100644
--- a/core/camel-util/src/main/java/org/apache/camel/util/SensitiveUtils.java
+++ b/core/camel-util/src/main/java/org/apache/camel/util/SensitiveUtils.java
@@ -42,6 +42,7 @@ public final class SensitiveUtils {
                     "apiusername",
                     "authkey",
                     "authorizationtoken",
+                    "base64",
                     "blobaccesskey",
                     "blobstoragesharedkeycredential",
                     "certresourcepassword",
@@ -51,6 +52,8 @@ public final class SensitiveUtils {
                     "connectionstring",
                     "consumerkey",
                     "consumersecret",
+                    "dbpassword",
+                    "dbuser",
                     "emailaddress",
                     "httpproxypassword",
                     "keystorePassword",
@@ -76,6 +79,7 @@ public final class SensitiveUtils {
                     "publickeyid",
                     "publishkey",
                     "queueownerawsaccountid",
+                    "realm",
                     "refreshtoken",
                     "sascredential",
                     "sasljaasconfig",
@@ -121,6 +125,7 @@ public final class SensitiveUtils {
                                                     + "|\\Qapiusername\\E"
                                                     + "|\\Qauthkey\\E"
                                                     + "|\\Qauthorizationtoken\\E"
+                                                    + "|\\Qbase64\\E"
                                                     + "|\\Qblobaccesskey\\E"
                                                     + "|\\Qblobstoragesharedkeycredential\\E"
                                                     + "|\\Qcertresourcepassword\\E"
@@ -130,6 +135,8 @@ public final class SensitiveUtils {
                                                     + "|\\Qconnectionstring\\E"
                                                     + "|\\Qconsumerkey\\E"
                                                     + "|\\Qconsumersecret\\E"
+                                                    + "|\\Qdbpassword\\E"
+                                                    + "|\\Qdbuser\\E"
                                                     + "|\\Qemailaddress\\E"
                                                     + "|\\Qhttpproxypassword\\E"
                                                     + "|\\QkeystorePassword\\E"
@@ -155,6 +162,7 @@ public final class SensitiveUtils {
                                                     + "|\\Qpublickeyid\\E"
                                                     + "|\\Qpublishkey\\E"
                                                     + "|\\Qqueueownerawsaccountid\\E"
+                                                    + "|\\Qrealm\\E"
                                                     + "|\\Qrefreshtoken\\E"
                                                     + "|\\Qsascredential\\E"
                                                     + "|\\Qsasljaasconfig\\E"
@@ -180,7 +188,7 @@ public final class SensitiveUtils {
                                                     + "|\\Qverificationcode\\E"
                                                     + "|\\Qwebhookverifytoken\\E"
                                                     + "|\\Qzookeeperpassword\\E"
-    // SENSITIVE-PATTERN: END
+                                                    // SENSITIVE-PATTERN: END
     ;
 
     private SensitiveUtils() {
diff --git a/docs/components/modules/ROOT/nav.adoc b/docs/components/modules/ROOT/nav.adoc
index be049492970..8b490118595 100644
--- a/docs/components/modules/ROOT/nav.adoc
+++ b/docs/components/modules/ROOT/nav.adoc
@@ -13,7 +13,7 @@
 *** xref:langchain4j-tools-component.adoc[LangChain4j Tools]
 *** xref:langchain4j-web-search-component.adoc[LangChain4j Web Search]
 *** xref:milvus-component.adoc[Milvus]
-*** xref:langchain4j-neo4j-component.adoc[Neo4j]
+*** xref:neo4j-component.adoc[Neo4j]
 *** xref:pinecone-component.adoc[Pinecone]
 *** xref:qdrant-component.adoc[Qdrant]
 *** xref:tensorflow-serving-component.adoc[TensorFlow Serving]
diff --git a/docs/components/modules/ROOT/pages/langchain4j-neo4j-component.adoc b/docs/components/modules/ROOT/pages/langchain4j-neo4j-component.adoc
deleted file mode 120000
index bcea3e20765..00000000000
--- a/docs/components/modules/ROOT/pages/langchain4j-neo4j-component.adoc
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../components/camel-ai/camel-neo4j/src/main/docs/langchain4j-neo4j-component.adoc
\ No newline at end of file
diff --git a/docs/components/modules/ROOT/pages/neo4j-component.adoc b/docs/components/modules/ROOT/pages/neo4j-component.adoc
new file mode 120000
index 00000000000..86165bd962d
--- /dev/null
+++ b/docs/components/modules/ROOT/pages/neo4j-component.adoc
@@ -0,0 +1 @@
+../../../../../components/camel-ai/camel-neo4j/src/main/docs/neo4j-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 e2ef5cfd89c..2169f180806 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
@@ -3196,6 +3196,19 @@ public interface ComponentsBuilderFactory {
     static NatsComponentBuilderFactory.NatsComponentBuilder nats() {
         return NatsComponentBuilderFactory.nats();
     }
+    /**
+     * Neo4j (camel-neo4j)
+     * Perform operations on the Neo4j Graph Database
+     * 
+     * Category: database,ai
+     * Since: 4.10
+     * Maven coordinates: org.apache.camel:camel-neo4j
+     * 
+     * @return the dsl builder
+     */
+    static Neo4jComponentBuilderFactory.Neo4jComponentBuilder neo4j() {
+        return Neo4jComponentBuilderFactory.neo4j();
+    }
     /**
      * Netty (camel-netty)
      * Socket level networking using TCP or UDP with Netty 4.x.
diff --git a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Neo4jComponentBuilderFactory.java b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Neo4jComponentBuilderFactory.java
new file mode 100644
index 00000000000..dfab976d544
--- /dev/null
+++ b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Neo4jComponentBuilderFactory.java
@@ -0,0 +1,408 @@
+/* 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.neo4j.Neo4jComponent;
+
+/**
+ * Perform operations on the Neo4j Graph Database
+ * 
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.ComponentDslMojo")
+public interface Neo4jComponentBuilderFactory {
+
+    /**
+     * Neo4j (camel-neo4j)
+     * Perform operations on the Neo4j Graph Database
+     * 
+     * Category: database,ai
+     * Since: 4.10
+     * Maven coordinates: org.apache.camel:camel-neo4j
+     * 
+     * @return the dsl builder
+     */
+    static Neo4jComponentBuilder neo4j() {
+        return new Neo4jComponentBuilderImpl();
+    }
+
+    /**
+     * Builder for the Neo4j component.
+     */
+    interface Neo4jComponentBuilder extends ComponentBuilder<Neo4jComponent> {
+    
+        /**
+         * Node alias.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: producer
+         * 
+         * @param alias the value to set
+         * @return the dsl builder
+         */
+        default Neo4jComponentBuilder alias(java.lang.String alias) {
+            doSetProperty("alias", alias);
+            return this;
+        }
+    
+        /**
+         * Kerberos Authentication encoded base64 ticket.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: producer
+         * 
+         * @param base64 the value to set
+         * @return the dsl builder
+         */
+        default Neo4jComponentBuilder base64(java.lang.String base64) {
+            doSetProperty("base64", base64);
+            return this;
+        }
+    
+        /**
+         * The configuration;.
+         * 
+         * The option is a:
+         * &lt;code&gt;org.apache.camel.component.neo4j.Neo4jConfiguration&lt;/code&gt; type.
+         * 
+         * Group: producer
+         * 
+         * @param configuration the value to set
+         * @return the dsl builder
+         */
+        default Neo4jComponentBuilder configuration(org.apache.camel.component.neo4j.Neo4jConfiguration configuration) {
+            doSetProperty("configuration", configuration);
+            return this;
+        }
+    
+        /**
+         * Basic authentication database password.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: producer
+         * 
+         * @param dbPassword the value to set
+         * @return the dsl builder
+         */
+        default Neo4jComponentBuilder dbPassword(java.lang.String dbPassword) {
+            doSetProperty("dbPassword", dbPassword);
+            return this;
+        }
+    
+        /**
+         * URI of the Neo4j server - used for Authentication.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: producer
+         * 
+         * @param dbUri the value to set
+         * @return the dsl builder
+         */
+        default Neo4jComponentBuilder dbUri(java.lang.String dbUri) {
+            doSetProperty("dbUri", dbUri);
+            return this;
+        }
+    
+        /**
+         * Basic authentication database user.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: producer
+         * 
+         * @param dbUser the value to set
+         * @return the dsl builder
+         */
+        default Neo4jComponentBuilder dbUser(java.lang.String dbUser) {
+            doSetProperty("dbUser", dbUser);
+            return this;
+        }
+    
+        
+        /**
+         * Detach a relationship - set true if want to delete a node and detach
+         * its relationships to other nodes at same time.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: producer
+         * 
+         * @param detachRelationship the value to set
+         * @return the dsl builder
+         */
+        default Neo4jComponentBuilder detachRelationship(boolean detachRelationship) {
+            doSetProperty("detachRelationship", detachRelationship);
+            return this;
+        }
+    
+        /**
+         * Dimension of Vector Index.
+         * 
+         * The option is a: &lt;code&gt;java.lang.Integer&lt;/code&gt; type.
+         * 
+         * Group: producer
+         * 
+         * @param dimension the value to set
+         * @return the dsl builder
+         */
+        default Neo4jComponentBuilder dimension(java.lang.Integer dimension) {
+            doSetProperty("dimension", dimension);
+            return this;
+        }
+    
+        /**
+         * Node Label.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: producer
+         * 
+         * @param label the value to set
+         * @return the dsl builder
+         */
+        default Neo4jComponentBuilder label(java.lang.String label) {
+            doSetProperty("label", label);
+            return this;
+        }
+    
+        
+        /**
+         * 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 Neo4jComponentBuilder lazyStartProducer(boolean lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+    
+        
+        /**
+         * Maximum results for Vector Similarity search.
+         * 
+         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Default: 3
+         * Group: producer
+         * 
+         * @param maxResults the value to set
+         * @return the dsl builder
+         */
+        default Neo4jComponentBuilder maxResults(int maxResults) {
+            doSetProperty("maxResults", maxResults);
+            return this;
+        }
+    
+        /**
+         * Minimum score for Vector Similarity search.
+         * 
+         * The option is a: &lt;code&gt;double&lt;/code&gt; type.
+         * 
+         * Group: producer
+         * 
+         * @param minScore the value to set
+         * @return the dsl builder
+         */
+        default Neo4jComponentBuilder minScore(double minScore) {
+            doSetProperty("minScore", minScore);
+            return this;
+        }
+    
+        /**
+         * Cypher Query.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: producer
+         * 
+         * @param query the value to set
+         * @return the dsl builder
+         */
+        default Neo4jComponentBuilder query(java.lang.String query) {
+            doSetProperty("query", query);
+            return this;
+        }
+    
+        /**
+         * Basic authentication database realm.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: producer
+         * 
+         * @param realm the value to set
+         * @return the dsl builder
+         */
+        default Neo4jComponentBuilder realm(java.lang.String realm) {
+            doSetProperty("realm", realm);
+            return this;
+        }
+    
+        
+        /**
+         * Similarity Function of Vector Index.
+         * 
+         * The option is a:
+         * &lt;code&gt;org.apache.camel.component.neo4j.Neo4jSimilarityFunction&lt;/code&gt; type.
+         * 
+         * Default: cosine
+         * Group: producer
+         * 
+         * @param similarityFunction the value to set
+         * @return the dsl builder
+         */
+        default Neo4jComponentBuilder similarityFunction(org.apache.camel.component.neo4j.Neo4jSimilarityFunction similarityFunction) {
+            doSetProperty("similarityFunction", similarityFunction);
+            return this;
+        }
+    
+        /**
+         * Bearer authentication database realm.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: producer
+         * 
+         * @param token the value to set
+         * @return the dsl builder
+         */
+        default Neo4jComponentBuilder token(java.lang.String token) {
+            doSetProperty("token", token);
+            return this;
+        }
+    
+        /**
+         * Vector Index Name.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: producer
+         * 
+         * @param vectorIndexName the value to set
+         * @return the dsl builder
+         */
+        default Neo4jComponentBuilder vectorIndexName(java.lang.String vectorIndexName) {
+            doSetProperty("vectorIndexName", vectorIndexName);
+            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 Neo4jComponentBuilder autowiredEnabled(boolean autowiredEnabled) {
+            doSetProperty("autowiredEnabled", autowiredEnabled);
+            return this;
+        }
+    
+        /**
+         * Advanced - Driver.
+         * 
+         * The option is a: &lt;code&gt;org.neo4j.driver.Driver&lt;/code&gt;
+         * type.
+         * 
+         * Group: advanced
+         * 
+         * @param driver the value to set
+         * @return the dsl builder
+         */
+        default Neo4jComponentBuilder driver(org.neo4j.driver.Driver driver) {
+            doSetProperty("driver", driver);
+            return this;
+        }
+    }
+
+    class Neo4jComponentBuilderImpl
+            extends AbstractComponentBuilder<Neo4jComponent>
+            implements Neo4jComponentBuilder {
+        @Override
+        protected Neo4jComponent buildConcreteComponent() {
+            return new Neo4jComponent();
+        }
+        private org.apache.camel.component.neo4j.Neo4jConfiguration getOrCreateConfiguration(Neo4jComponent component) {
+            if (component.getConfiguration() == null) {
+                component.setConfiguration(new org.apache.camel.component.neo4j.Neo4jConfiguration());
+            }
+            return component.getConfiguration();
+        }
+        @Override
+        protected boolean setPropertyOnComponent(
+                Component component,
+                String name,
+                Object value) {
+            switch (name) {
+            case "alias": getOrCreateConfiguration((Neo4jComponent) component).setAlias((java.lang.String) value); return true;
+            case "base64": getOrCreateConfiguration((Neo4jComponent) component).setBase64((java.lang.String) value); return true;
+            case "configuration": ((Neo4jComponent) component).setConfiguration((org.apache.camel.component.neo4j.Neo4jConfiguration) value); return true;
+            case "dbPassword": getOrCreateConfiguration((Neo4jComponent) component).setDbPassword((java.lang.String) value); return true;
+            case "dbUri": getOrCreateConfiguration((Neo4jComponent) component).setDbUri((java.lang.String) value); return true;
+            case "dbUser": getOrCreateConfiguration((Neo4jComponent) component).setDbUser((java.lang.String) value); return true;
+            case "detachRelationship": getOrCreateConfiguration((Neo4jComponent) component).setDetachRelationship((boolean) value); return true;
+            case "dimension": getOrCreateConfiguration((Neo4jComponent) component).setDimension((java.lang.Integer) value); return true;
+            case "label": getOrCreateConfiguration((Neo4jComponent) component).setLabel((java.lang.String) value); return true;
+            case "lazyStartProducer": ((Neo4jComponent) component).setLazyStartProducer((boolean) value); return true;
+            case "maxResults": getOrCreateConfiguration((Neo4jComponent) component).setMaxResults((int) value); return true;
+            case "minScore": getOrCreateConfiguration((Neo4jComponent) component).setMinScore((double) value); return true;
+            case "query": getOrCreateConfiguration((Neo4jComponent) component).setQuery((java.lang.String) value); return true;
+            case "realm": getOrCreateConfiguration((Neo4jComponent) component).setRealm((java.lang.String) value); return true;
+            case "similarityFunction": getOrCreateConfiguration((Neo4jComponent) component).setSimilarityFunction((org.apache.camel.component.neo4j.Neo4jSimilarityFunction) value); return true;
+            case "token": getOrCreateConfiguration((Neo4jComponent) component).setToken((java.lang.String) value); return true;
+            case "vectorIndexName": getOrCreateConfiguration((Neo4jComponent) component).setVectorIndexName((java.lang.String) value); return true;
+            case "autowiredEnabled": ((Neo4jComponent) component).setAutowiredEnabled((boolean) value); return true;
+            case "driver": getOrCreateConfiguration((Neo4jComponent) component).setDriver((org.neo4j.driver.Driver) 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 16573623537..86c5f2d1022 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
@@ -248,6 +248,7 @@ public interface EndpointBuilderFactory
             org.apache.camel.builder.endpoint.dsl.MyBatisBeanEndpointBuilderFactory.MyBatisBeanBuilders,
             org.apache.camel.builder.endpoint.dsl.MyBatisEndpointBuilderFactory.MyBatisBuilders,
             org.apache.camel.builder.endpoint.dsl.NatsEndpointBuilderFactory.NatsBuilders,
+            org.apache.camel.builder.endpoint.dsl.Neo4jEndpointBuilderFactory.Neo4jBuilders,
             org.apache.camel.builder.endpoint.dsl.NetWeaverEndpointBuilderFactory.NetWeaverBuilders,
             org.apache.camel.builder.endpoint.dsl.NettyEndpointBuilderFactory.NettyBuilders,
             org.apache.camel.builder.endpoint.dsl.NettyHttpEndpointBuilderFactory.NettyHttpBuilders,
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 1d7ebc08024..c0f0f4061a6 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
@@ -245,6 +245,7 @@ public interface EndpointBuilders
             org.apache.camel.builder.endpoint.dsl.MyBatisBeanEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.MyBatisEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.NatsEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.Neo4jEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.NetWeaverEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.NettyEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.NettyHttpEndpointBuilderFactory,
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 94082e203ca..ea98aa75f69 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
@@ -10682,6 +10682,46 @@ public class StaticEndpointBuilders {
     public static NatsEndpointBuilderFactory.NatsEndpointBuilder nats(String componentName, String path) {
         return NatsEndpointBuilderFactory.endpointBuilder(componentName, path);
     }
+    /**
+     * Neo4j (camel-neo4j)
+     * Perform operations on the Neo4j Graph Database
+     * 
+     * Category: database,ai
+     * Since: 4.10
+     * Maven coordinates: org.apache.camel:camel-neo4j
+     * 
+     * Syntax: <code>neo4j:name</code>
+     * 
+     * Path parameter: name (required)
+     * The database Name
+     * 
+     * @param path name
+     * @return the dsl builder
+     */
+    public static Neo4jEndpointBuilderFactory.Neo4jEndpointBuilder neo4j(String path) {
+        return neo4j("neo4j", path);
+    }
+    /**
+     * Neo4j (camel-neo4j)
+     * Perform operations on the Neo4j Graph Database
+     * 
+     * Category: database,ai
+     * Since: 4.10
+     * Maven coordinates: org.apache.camel:camel-neo4j
+     * 
+     * Syntax: <code>neo4j:name</code>
+     * 
+     * Path parameter: name (required)
+     * The database Name
+     * 
+     * @param componentName to use a custom component name for the endpoint
+     * instead of the default name
+     * @param path name
+     * @return the dsl builder
+     */
+    public static Neo4jEndpointBuilderFactory.Neo4jEndpointBuilder neo4j(String componentName, String path) {
+        return Neo4jEndpointBuilderFactory.endpointBuilder(componentName, path);
+    }
     /**
      * Netty (camel-netty)
      * Socket level networking using TCP or UDP with Netty 4.x.
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Neo4jEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Neo4jEndpointBuilderFactory.java
new file mode 100644
index 00000000000..621989628ce
--- /dev/null
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Neo4jEndpointBuilderFactory.java
@@ -0,0 +1,655 @@
+/* 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.endpoint.dsl;
+
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.function.*;
+import java.util.stream.*;
+import javax.annotation.processing.Generated;
+import org.apache.camel.builder.EndpointConsumerBuilder;
+import org.apache.camel.builder.EndpointProducerBuilder;
+import org.apache.camel.builder.endpoint.AbstractEndpointBuilder;
+
+/**
+ * Perform operations on the Neo4j Graph Database
+ * 
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.EndpointDslMojo")
+public interface Neo4jEndpointBuilderFactory {
+
+    /**
+     * Builder for endpoint for the Neo4j component.
+     */
+    public interface Neo4jEndpointBuilder
+            extends
+                EndpointProducerBuilder {
+        default AdvancedNeo4jEndpointBuilder advanced() {
+            return (AdvancedNeo4jEndpointBuilder) this;
+        }
+
+        /**
+         * Node alias.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: producer
+         * 
+         * @param alias the value to set
+         * @return the dsl builder
+         */
+        default Neo4jEndpointBuilder alias(String alias) {
+            doSetProperty("alias", alias);
+            return this;
+        }
+        /**
+         * Kerberos Authentication encoded base64 ticket.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: producer
+         * 
+         * @param base64 the value to set
+         * @return the dsl builder
+         */
+        default Neo4jEndpointBuilder base64(String base64) {
+            doSetProperty("base64", base64);
+            return this;
+        }
+        /**
+         * Basic authentication database password.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: producer
+         * 
+         * @param dbPassword the value to set
+         * @return the dsl builder
+         */
+        default Neo4jEndpointBuilder dbPassword(String dbPassword) {
+            doSetProperty("dbPassword", dbPassword);
+            return this;
+        }
+        /**
+         * URI of the Neo4j server - used for Authentication.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: producer
+         * 
+         * @param dbUri the value to set
+         * @return the dsl builder
+         */
+        default Neo4jEndpointBuilder dbUri(String dbUri) {
+            doSetProperty("dbUri", dbUri);
+            return this;
+        }
+        /**
+         * Basic authentication database user.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: producer
+         * 
+         * @param dbUser the value to set
+         * @return the dsl builder
+         */
+        default Neo4jEndpointBuilder dbUser(String dbUser) {
+            doSetProperty("dbUser", dbUser);
+            return this;
+        }
+        /**
+         * Detach a relationship - set true if want to delete a node and detach
+         * its relationships to other nodes at same time.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer
+         * 
+         * @param detachRelationship the value to set
+         * @return the dsl builder
+         */
+        default Neo4jEndpointBuilder detachRelationship(boolean detachRelationship) {
+            doSetProperty("detachRelationship", detachRelationship);
+            return this;
+        }
+        /**
+         * Detach a relationship - set true if want to delete a node and detach
+         * its relationships to other nodes at same time.
+         * 
+         * The option will be converted to a <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer
+         * 
+         * @param detachRelationship the value to set
+         * @return the dsl builder
+         */
+        default Neo4jEndpointBuilder detachRelationship(String detachRelationship) {
+            doSetProperty("detachRelationship", detachRelationship);
+            return this;
+        }
+        /**
+         * Dimension of Vector Index.
+         * 
+         * The option is a: <code>java.lang.Integer</code> type.
+         * 
+         * Group: producer
+         * 
+         * @param dimension the value to set
+         * @return the dsl builder
+         */
+        default Neo4jEndpointBuilder dimension(Integer dimension) {
+            doSetProperty("dimension", dimension);
+            return this;
+        }
+        /**
+         * Dimension of Vector Index.
+         * 
+         * The option will be converted to a <code>java.lang.Integer</code>
+         * type.
+         * 
+         * Group: producer
+         * 
+         * @param dimension the value to set
+         * @return the dsl builder
+         */
+        default Neo4jEndpointBuilder dimension(String dimension) {
+            doSetProperty("dimension", dimension);
+            return this;
+        }
+        /**
+         * Node Label.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: producer
+         * 
+         * @param label the value to set
+         * @return the dsl builder
+         */
+        default Neo4jEndpointBuilder label(String label) {
+            doSetProperty("label", label);
+            return this;
+        }
+        /**
+         * Maximum results for Vector Similarity search.
+         * 
+         * The option is a: <code>int</code> type.
+         * 
+         * Default: 3
+         * Group: producer
+         * 
+         * @param maxResults the value to set
+         * @return the dsl builder
+         */
+        default Neo4jEndpointBuilder maxResults(int maxResults) {
+            doSetProperty("maxResults", maxResults);
+            return this;
+        }
+        /**
+         * Maximum results for Vector Similarity search.
+         * 
+         * The option will be converted to a <code>int</code> type.
+         * 
+         * Default: 3
+         * Group: producer
+         * 
+         * @param maxResults the value to set
+         * @return the dsl builder
+         */
+        default Neo4jEndpointBuilder maxResults(String maxResults) {
+            doSetProperty("maxResults", maxResults);
+            return this;
+        }
+        /**
+         * Minimum score for Vector Similarity search.
+         * 
+         * The option is a: <code>double</code> type.
+         * 
+         * Default: 0.0
+         * Group: producer
+         * 
+         * @param minScore the value to set
+         * @return the dsl builder
+         */
+        default Neo4jEndpointBuilder minScore(double minScore) {
+            doSetProperty("minScore", minScore);
+            return this;
+        }
+        /**
+         * Minimum score for Vector Similarity search.
+         * 
+         * The option will be converted to a <code>double</code> type.
+         * 
+         * Default: 0.0
+         * Group: producer
+         * 
+         * @param minScore the value to set
+         * @return the dsl builder
+         */
+        default Neo4jEndpointBuilder minScore(String minScore) {
+            doSetProperty("minScore", minScore);
+            return this;
+        }
+        /**
+         * Cypher Query.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: producer
+         * 
+         * @param query the value to set
+         * @return the dsl builder
+         */
+        default Neo4jEndpointBuilder query(String query) {
+            doSetProperty("query", query);
+            return this;
+        }
+        /**
+         * Basic authentication database realm.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: producer
+         * 
+         * @param realm the value to set
+         * @return the dsl builder
+         */
+        default Neo4jEndpointBuilder realm(String realm) {
+            doSetProperty("realm", realm);
+            return this;
+        }
+        /**
+         * Similarity Function of Vector Index.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.component.neo4j.Neo4jSimilarityFunction</code>
+         * type.
+         * 
+         * Default: cosine
+         * Group: producer
+         * 
+         * @param similarityFunction the value to set
+         * @return the dsl builder
+         */
+        default Neo4jEndpointBuilder similarityFunction(org.apache.camel.component.neo4j.Neo4jSimilarityFunction similarityFunction) {
+            doSetProperty("similarityFunction", similarityFunction);
+            return this;
+        }
+        /**
+         * Similarity Function of Vector Index.
+         * 
+         * The option will be converted to a
+         * <code>org.apache.camel.component.neo4j.Neo4jSimilarityFunction</code>
+         * type.
+         * 
+         * Default: cosine
+         * Group: producer
+         * 
+         * @param similarityFunction the value to set
+         * @return the dsl builder
+         */
+        default Neo4jEndpointBuilder similarityFunction(String similarityFunction) {
+            doSetProperty("similarityFunction", similarityFunction);
+            return this;
+        }
+        /**
+         * Bearer authentication database realm.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: producer
+         * 
+         * @param token the value to set
+         * @return the dsl builder
+         */
+        default Neo4jEndpointBuilder token(String token) {
+            doSetProperty("token", token);
+            return this;
+        }
+        /**
+         * Vector Index Name.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: producer
+         * 
+         * @param vectorIndexName the value to set
+         * @return the dsl builder
+         */
+        default Neo4jEndpointBuilder vectorIndexName(String vectorIndexName) {
+            doSetProperty("vectorIndexName", vectorIndexName);
+            return this;
+        }
+    }
+
+    /**
+     * Advanced builder for endpoint for the Neo4j component.
+     */
+    public interface AdvancedNeo4jEndpointBuilder
+            extends
+                EndpointProducerBuilder {
+        default Neo4jEndpointBuilder basic() {
+            return (Neo4jEndpointBuilder) this;
+        }
+
+        /**
+         * 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: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer (advanced)
+         * 
+         * @param lazyStartProducer the value to set
+         * @return the dsl builder
+         */
+        default AdvancedNeo4jEndpointBuilder lazyStartProducer(boolean lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
+         * 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 will be converted to a <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer (advanced)
+         * 
+         * @param lazyStartProducer the value to set
+         * @return the dsl builder
+         */
+        default AdvancedNeo4jEndpointBuilder lazyStartProducer(String lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
+         * Advanced - Driver.
+         * 
+         * The option is a: <code>org.neo4j.driver.Driver</code> type.
+         * 
+         * Group: advanced
+         * 
+         * @param driver the value to set
+         * @return the dsl builder
+         */
+        default AdvancedNeo4jEndpointBuilder driver(org.neo4j.driver.Driver driver) {
+            doSetProperty("driver", driver);
+            return this;
+        }
+        /**
+         * Advanced - Driver.
+         * 
+         * The option will be converted to a
+         * <code>org.neo4j.driver.Driver</code> type.
+         * 
+         * Group: advanced
+         * 
+         * @param driver the value to set
+         * @return the dsl builder
+         */
+        default AdvancedNeo4jEndpointBuilder driver(String driver) {
+            doSetProperty("driver", driver);
+            return this;
+        }
+    }
+
+    public interface Neo4jBuilders {
+        /**
+         * Neo4j (camel-neo4j)
+         * Perform operations on the Neo4j Graph Database
+         * 
+         * Category: database,ai
+         * Since: 4.10
+         * Maven coordinates: org.apache.camel:camel-neo4j
+         * 
+         * @return the dsl builder for the headers' name.
+         */
+        default Neo4jHeaderNameBuilder neo4j() {
+            return Neo4jHeaderNameBuilder.INSTANCE;
+        }
+        /**
+         * Neo4j (camel-neo4j)
+         * Perform operations on the Neo4j Graph Database
+         * 
+         * Category: database,ai
+         * Since: 4.10
+         * Maven coordinates: org.apache.camel:camel-neo4j
+         * 
+         * Syntax: <code>neo4j:name</code>
+         * 
+         * Path parameter: name (required)
+         * The database Name
+         * 
+         * @param path name
+         * @return the dsl builder
+         */
+        default Neo4jEndpointBuilder neo4j(String path) {
+            return Neo4jEndpointBuilderFactory.endpointBuilder("neo4j", path);
+        }
+        /**
+         * Neo4j (camel-neo4j)
+         * Perform operations on the Neo4j Graph Database
+         * 
+         * Category: database,ai
+         * Since: 4.10
+         * Maven coordinates: org.apache.camel:camel-neo4j
+         * 
+         * Syntax: <code>neo4j:name</code>
+         * 
+         * Path parameter: name (required)
+         * The database Name
+         * 
+         * @param componentName to use a custom component name for the endpoint
+         * instead of the default name
+         * @param path name
+         * @return the dsl builder
+         */
+        default Neo4jEndpointBuilder neo4j(String componentName, String path) {
+            return Neo4jEndpointBuilderFactory.endpointBuilder(componentName, path);
+        }
+
+    }
+    /**
+     * The builder of headers' name for the Neo4j component.
+     */
+    public static class Neo4jHeaderNameBuilder {
+        /**
+         * The internal instance of the builder used to access to all the
+         * methods representing the name of headers.
+         */
+        private static final Neo4jHeaderNameBuilder INSTANCE = new Neo4jHeaderNameBuilder();
+
+        /**
+         * The operation to be performed.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code Neo4jAction}.
+         */
+        public String neo4jAction() {
+            return "CamelNeo4jAction";
+        }
+        /**
+         * MATCH properties for the generated MATCH query. Needed only if we are
+         * matching properties and values. Example: {name: 'Alice'}.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code Neo4jMatchProperties}.
+         */
+        public String neo4jMatchProperties() {
+            return "CamelNeo4jMatchProperties";
+        }
+        /**
+         * Query excetuded.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code Neo4jQueryResult}.
+         */
+        public String neo4jQueryResult() {
+            return "CamelNeo4jQueryResult";
+        }
+        /**
+         * Query Number of nodes created.
+         * 
+         * The option is a: {@code Long} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code Neo4jQueryResultNodesCreated}.
+         */
+        public String neo4jQueryResultNodesCreated() {
+            return "CamelNeo4jQueryResultNodesCreated";
+        }
+        /**
+         * Query Number of nodes deleted.
+         * 
+         * The option is a: {@code Long} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code Neo4jQueryResultNodesDeleted}.
+         */
+        public String neo4jQueryResultNodesDeleted() {
+            return "CamelNeo4jQueryResultNodesDeleted";
+        }
+        /**
+         * Query executed contains update.
+         * 
+         * The option is a: {@code Booleab} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code
+         * Neo4jQueryResultContainsUpdates}.
+         */
+        public String neo4jQueryResultContainsUpdates() {
+            return "CamelNeo4jQueryResultContainsUpdates";
+        }
+        /**
+         * Query executed number of relationships created.
+         * 
+         * The option is a: {@code Long} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code
+         * Neo4jQueryResultRelationshipsCreated}.
+         */
+        public String neo4jQueryResultRelationshipsCreated() {
+            return "CamelNeo4jQueryResultRelationshipsCreated";
+        }
+        /**
+         * Query executed number of relationships deleted.
+         * 
+         * The option is a: {@code Long} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code
+         * Neo4jQueryResultRelationshipsDeleted}.
+         */
+        public String neo4jQueryResultRelationshipsDeleted() {
+            return "CamelNeo4jQueryResultRelationshipsDeleted";
+        }
+        /**
+         * Number of nodes retrieved.
+         * 
+         * The option is a: {@code Long} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code Neo4jQueryResultRetrieveSize}.
+         */
+        public String neo4jQueryResultRetrieveSize() {
+            return "CamelNeo4jQueryResultRetrieveSize";
+        }
+        /**
+         * Query execution time in Milliseconfs.
+         * 
+         * The option is a: {@code Long} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code
+         * Neo4jQueryResultListNeo4jNodes}.
+         */
+        public String neo4jQueryResultListNeo4jNodes() {
+            return "CamelNeo4jQueryResultListNeo4jNodes";
+        }
+        /**
+         * Vector Id for the embedding.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code Neo4jVectorEmbeddingId}.
+         */
+        public String neo4jVectorEmbeddingId() {
+            return "CamelNeo4jVectorEmbeddingId";
+        }
+        /**
+         * Label for the Node - used when inserting from Embeddings.
+         * 
+         * The option is a: {@code String} type.
+         * 
+         * Group: producer
+         * 
+         * @return the name of the header {@code Neo4jLabel}.
+         */
+        public String neo4jLabel() {
+            return "CamelNeo4jLabel";
+        }
+    }
+    static Neo4jEndpointBuilder endpointBuilder(String componentName, String path) {
+        class Neo4jEndpointBuilderImpl extends AbstractEndpointBuilder implements Neo4jEndpointBuilder, AdvancedNeo4jEndpointBuilder {
+            public Neo4jEndpointBuilderImpl(String path) {
+                super(componentName, path);
+            }
+        }
+        return new Neo4jEndpointBuilderImpl(path);
+    }
+}
\ No newline at end of file
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MojoHelper.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MojoHelper.java
index 9a31c02f27e..4682e4d1bfd 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MojoHelper.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/MojoHelper.java
@@ -41,7 +41,7 @@ public final class MojoHelper {
                         dir.resolve("camel-langchain4j-core"), dir.resolve("camel-langchain4j-chat"),
                         dir.resolve("camel-langchain4j-embeddings"), dir.resolve("camel-langchain4j-tokenizer"),
                         dir.resolve("camel-langchain4j-tools"), dir.resolve("camel-langchain4j-web-search"),
-                        dir.resolve("camel-qdrant"), dir.resolve("camel-milvus"),
+                        dir.resolve("camel-qdrant"), dir.resolve("camel-milvus"), dir.resolve("camel-neo4j"),
                         dir.resolve("camel-pinecone"), dir.resolve("camel-kserve"),
                         dir.resolve("camel-torchserve"), dir.resolve("camel-tensorflow-serving"));
             case "camel-as2":