This is an automated email from the ASF dual-hosted git repository.
acosentino 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 8f49f8dee948 CAMEL-23075 - Camel-ocsf: Fix broken inheritance in
generated model classes (#21597)
8f49f8dee948 is described below
commit 8f49f8dee9489959dfd18d3fefbe362296244423
Author: Andrea Cosentino <[email protected]>
AuthorDate: Wed Feb 25 11:40:17 2026 +0100
CAMEL-23075 - Camel-ocsf: Fix broken inheritance in generated model classes
(#21597)
Signed-off-by: Andrea Cosentino <[email protected]>
---
.../src/main/resources/schema/AccountChange.json | 11 +++----
.../src/main/resources/schema/ApiActivity.json | 11 +++----
.../src/main/resources/schema/Authentication.json | 11 +++----
.../main/resources/schema/AuthorizeSession.json | 11 +++----
.../main/resources/schema/ComplianceFinding.json | 11 +++----
.../main/resources/schema/DatastoreActivity.json | 11 +++----
.../main/resources/schema/DetectionFinding.json | 9 ++----
.../src/main/resources/schema/DhcpActivity.json | 11 +++----
.../src/main/resources/schema/DnsActivity.json | 11 +++----
.../src/main/resources/schema/EmailActivity.json | 11 +++----
.../main/resources/schema/EntityManagement.json | 11 +++----
.../src/main/resources/schema/FileActivity.json | 11 +++----
.../src/main/resources/schema/FtpActivity.json | 11 +++----
.../src/main/resources/schema/GroupManagement.json | 11 +++----
.../src/main/resources/schema/HttpActivity.json | 11 +++----
.../src/main/resources/schema/IncidentFinding.json | 11 +++----
.../src/main/resources/schema/KernelActivity.json | 11 +++----
.../resources/schema/KernelExtensionActivity.json | 11 +++----
.../src/main/resources/schema/MemoryActivity.json | 11 +++----
.../src/main/resources/schema/ModuleActivity.json | 11 +++----
.../src/main/resources/schema/NetworkActivity.json | 11 +++----
.../main/resources/schema/NetworkFileActivity.json | 11 +++----
.../src/main/resources/schema/NtpActivity.json | 11 +++----
.../src/main/resources/schema/ProcessActivity.json | 11 +++----
.../src/main/resources/schema/RdpActivity.json | 11 +++----
.../main/resources/schema/RemediationActivity.json | 11 +++----
.../src/main/resources/schema/ScanActivity.json | 11 +++----
.../resources/schema/ScheduledJobActivity.json | 11 +++----
.../src/main/resources/schema/SecurityFinding.json | 11 +++----
.../src/main/resources/schema/SmbActivity.json | 11 +++----
.../src/main/resources/schema/SshActivity.json | 11 +++----
.../src/main/resources/schema/UserAccess.json | 11 +++----
.../resources/schema/VulnerabilityFinding.json | 11 +++----
.../resources/schema/WebResourcesActivity.json | 11 +++----
.../src/main/script/generate-ocsf-schemas.py | 8 +++--
.../camel/dataformat/ocsf/OcsfDataFormatTest.java | 17 +++++------
.../dataformat/ocsf/OcsfEventExampleTest.java | 34 +++++++++++-----------
37 files changed, 166 insertions(+), 265 deletions(-)
diff --git a/components/camel-ocsf/src/main/resources/schema/AccountChange.json
b/components/camel-ocsf/src/main/resources/schema/AccountChange.json
index 98833cb41864..0c6b2ef0d45e 100644
--- a/components/camel-ocsf/src/main/resources/schema/AccountChange.json
+++ b/components/camel-ocsf/src/main/resources/schema/AccountChange.json
@@ -4,13 +4,10 @@
"title": "AccountChange",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.AccountChange",
- "additionalProperties": true,
"description": "AccountChange event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"actor": {
"$ref": "Actor.json"
@@ -62,4 +59,4 @@
"$ref": "Policy.json"
}
}
-}
\ No newline at end of file
+}
diff --git a/components/camel-ocsf/src/main/resources/schema/ApiActivity.json
b/components/camel-ocsf/src/main/resources/schema/ApiActivity.json
index 4a270707fba0..b21c9ff6678c 100644
--- a/components/camel-ocsf/src/main/resources/schema/ApiActivity.json
+++ b/components/camel-ocsf/src/main/resources/schema/ApiActivity.json
@@ -4,13 +4,10 @@
"title": "ApiActivity",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.ApiActivity",
- "additionalProperties": true,
"description": "ApiActivity event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"actor": {
"$ref": "Actor.json"
@@ -52,4 +49,4 @@
"$ref": "Fingerprint.json"
}
}
-}
\ No newline at end of file
+}
diff --git
a/components/camel-ocsf/src/main/resources/schema/Authentication.json
b/components/camel-ocsf/src/main/resources/schema/Authentication.json
index e73fb6773219..eebb6fab6346 100644
--- a/components/camel-ocsf/src/main/resources/schema/Authentication.json
+++ b/components/camel-ocsf/src/main/resources/schema/Authentication.json
@@ -4,13 +4,10 @@
"title": "Authentication",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.Authentication",
- "additionalProperties": true,
"description": "Authentication event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"account_switch_type_id": {
"type": "integer",
@@ -108,4 +105,4 @@
"title": "Cleartext Credentials"
}
}
-}
\ No newline at end of file
+}
diff --git
a/components/camel-ocsf/src/main/resources/schema/AuthorizeSession.json
b/components/camel-ocsf/src/main/resources/schema/AuthorizeSession.json
index 0d9959f31ac9..b8437c27d63c 100644
--- a/components/camel-ocsf/src/main/resources/schema/AuthorizeSession.json
+++ b/components/camel-ocsf/src/main/resources/schema/AuthorizeSession.json
@@ -4,13 +4,10 @@
"title": "AuthorizeSession",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.AuthorizeSession",
- "additionalProperties": true,
"description": "AuthorizeSession event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"privileges": {
"type": "array",
@@ -58,4 +55,4 @@
"$ref": "Fingerprint.json"
}
}
-}
\ No newline at end of file
+}
diff --git
a/components/camel-ocsf/src/main/resources/schema/ComplianceFinding.json
b/components/camel-ocsf/src/main/resources/schema/ComplianceFinding.json
index 673020b34c98..85d1372b6883 100644
--- a/components/camel-ocsf/src/main/resources/schema/ComplianceFinding.json
+++ b/components/camel-ocsf/src/main/resources/schema/ComplianceFinding.json
@@ -4,13 +4,10 @@
"title": "ComplianceFinding",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.ComplianceFinding",
- "additionalProperties": true,
"description": "ComplianceFinding event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"resources": {
"type": "array",
@@ -76,4 +73,4 @@
"title": "Confidence"
}
}
-}
\ No newline at end of file
+}
diff --git
a/components/camel-ocsf/src/main/resources/schema/DatastoreActivity.json
b/components/camel-ocsf/src/main/resources/schema/DatastoreActivity.json
index 272afe14d8e7..3f327a3c8e05 100644
--- a/components/camel-ocsf/src/main/resources/schema/DatastoreActivity.json
+++ b/components/camel-ocsf/src/main/resources/schema/DatastoreActivity.json
@@ -4,13 +4,10 @@
"title": "DatastoreActivity",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.DatastoreActivity",
- "additionalProperties": true,
"description": "DatastoreActivity event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"actor": {
"$ref": "Actor.json"
@@ -66,4 +63,4 @@
"additionalProperties": true
}
}
-}
\ No newline at end of file
+}
diff --git
a/components/camel-ocsf/src/main/resources/schema/DetectionFinding.json
b/components/camel-ocsf/src/main/resources/schema/DetectionFinding.json
index 9853fdf4b53e..7723db2e01ec 100644
--- a/components/camel-ocsf/src/main/resources/schema/DetectionFinding.json
+++ b/components/camel-ocsf/src/main/resources/schema/DetectionFinding.json
@@ -4,13 +4,10 @@
"title": "DetectionFinding",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.DetectionFinding",
- "additionalProperties": true,
"description": "DetectionFinding event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"impact": {
"type": "string",
diff --git a/components/camel-ocsf/src/main/resources/schema/DhcpActivity.json
b/components/camel-ocsf/src/main/resources/schema/DhcpActivity.json
index 0f20bdefe3f9..ec37324d7df4 100644
--- a/components/camel-ocsf/src/main/resources/schema/DhcpActivity.json
+++ b/components/camel-ocsf/src/main/resources/schema/DhcpActivity.json
@@ -4,13 +4,10 @@
"title": "DhcpActivity",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.DhcpActivity",
- "additionalProperties": true,
"description": "DhcpActivity event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"cumulative_traffic": {
"type": "object",
@@ -86,4 +83,4 @@
"$ref": "Tls.json"
}
}
-}
\ No newline at end of file
+}
diff --git a/components/camel-ocsf/src/main/resources/schema/DnsActivity.json
b/components/camel-ocsf/src/main/resources/schema/DnsActivity.json
index 7fa54da8703f..ac0e48d0698d 100644
--- a/components/camel-ocsf/src/main/resources/schema/DnsActivity.json
+++ b/components/camel-ocsf/src/main/resources/schema/DnsActivity.json
@@ -4,13 +4,10 @@
"title": "DnsActivity",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.DnsActivity",
- "additionalProperties": true,
"description": "DnsActivity event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"cumulative_traffic": {
"type": "object",
@@ -100,4 +97,4 @@
"$ref": "Tls.json"
}
}
-}
\ No newline at end of file
+}
diff --git a/components/camel-ocsf/src/main/resources/schema/EmailActivity.json
b/components/camel-ocsf/src/main/resources/schema/EmailActivity.json
index 4159a7572275..3905daec35d1 100644
--- a/components/camel-ocsf/src/main/resources/schema/EmailActivity.json
+++ b/components/camel-ocsf/src/main/resources/schema/EmailActivity.json
@@ -4,13 +4,10 @@
"title": "EmailActivity",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.EmailActivity",
- "additionalProperties": true,
"description": "EmailActivity event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"email": {
"type": "object",
@@ -86,4 +83,4 @@
"additionalProperties": true
}
}
-}
\ No newline at end of file
+}
diff --git
a/components/camel-ocsf/src/main/resources/schema/EntityManagement.json
b/components/camel-ocsf/src/main/resources/schema/EntityManagement.json
index 4b6220a9f573..d03e0a28c6d1 100644
--- a/components/camel-ocsf/src/main/resources/schema/EntityManagement.json
+++ b/components/camel-ocsf/src/main/resources/schema/EntityManagement.json
@@ -4,13 +4,10 @@
"title": "EntityManagement",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.EntityManagement",
- "additionalProperties": true,
"description": "EntityManagement event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"actor": {
"$ref": "Actor.json"
@@ -62,4 +59,4 @@
"additionalProperties": true
}
}
-}
\ No newline at end of file
+}
diff --git a/components/camel-ocsf/src/main/resources/schema/FileActivity.json
b/components/camel-ocsf/src/main/resources/schema/FileActivity.json
index 4b4000e3fa94..e61964f95164 100644
--- a/components/camel-ocsf/src/main/resources/schema/FileActivity.json
+++ b/components/camel-ocsf/src/main/resources/schema/FileActivity.json
@@ -4,13 +4,10 @@
"title": "FileActivity",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.FileActivity",
- "additionalProperties": true,
"description": "FileActivity event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"actor": {
"$ref": "Actor.json"
@@ -59,4 +56,4 @@
"title": "Component"
}
}
-}
\ No newline at end of file
+}
diff --git a/components/camel-ocsf/src/main/resources/schema/FtpActivity.json
b/components/camel-ocsf/src/main/resources/schema/FtpActivity.json
index 301820a0106a..02cc1d4c4d32 100644
--- a/components/camel-ocsf/src/main/resources/schema/FtpActivity.json
+++ b/components/camel-ocsf/src/main/resources/schema/FtpActivity.json
@@ -4,13 +4,10 @@
"title": "FtpActivity",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.FtpActivity",
- "additionalProperties": true,
"description": "FtpActivity event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"cumulative_traffic": {
"type": "object",
@@ -106,4 +103,4 @@
"$ref": "Tls.json"
}
}
-}
\ No newline at end of file
+}
diff --git
a/components/camel-ocsf/src/main/resources/schema/GroupManagement.json
b/components/camel-ocsf/src/main/resources/schema/GroupManagement.json
index 5af2461dd5d7..12f9a44f783e 100644
--- a/components/camel-ocsf/src/main/resources/schema/GroupManagement.json
+++ b/components/camel-ocsf/src/main/resources/schema/GroupManagement.json
@@ -4,13 +4,10 @@
"title": "GroupManagement",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.GroupManagement",
- "additionalProperties": true,
"description": "GroupManagement event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"privileges": {
"type": "array",
@@ -58,4 +55,4 @@
"$ref": "Fingerprint.json"
}
}
-}
\ No newline at end of file
+}
diff --git a/components/camel-ocsf/src/main/resources/schema/HttpActivity.json
b/components/camel-ocsf/src/main/resources/schema/HttpActivity.json
index e2cc82c1b4bf..32851859bf76 100644
--- a/components/camel-ocsf/src/main/resources/schema/HttpActivity.json
+++ b/components/camel-ocsf/src/main/resources/schema/HttpActivity.json
@@ -4,13 +4,10 @@
"title": "HttpActivity",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.HttpActivity",
- "additionalProperties": true,
"description": "HttpActivity event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"cumulative_traffic": {
"type": "object",
@@ -92,4 +89,4 @@
"$ref": "Tls.json"
}
}
-}
\ No newline at end of file
+}
diff --git
a/components/camel-ocsf/src/main/resources/schema/IncidentFinding.json
b/components/camel-ocsf/src/main/resources/schema/IncidentFinding.json
index 208cb2013f0d..dd682203f6ac 100644
--- a/components/camel-ocsf/src/main/resources/schema/IncidentFinding.json
+++ b/components/camel-ocsf/src/main/resources/schema/IncidentFinding.json
@@ -4,13 +4,10 @@
"title": "IncidentFinding",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.IncidentFinding",
- "additionalProperties": true,
"description": "IncidentFinding event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"verdict_id": {
"type": "integer",
@@ -116,4 +113,4 @@
"title": "Confidence"
}
}
-}
\ No newline at end of file
+}
diff --git
a/components/camel-ocsf/src/main/resources/schema/KernelActivity.json
b/components/camel-ocsf/src/main/resources/schema/KernelActivity.json
index 6eb63cb9f70b..12cd6507f62a 100644
--- a/components/camel-ocsf/src/main/resources/schema/KernelActivity.json
+++ b/components/camel-ocsf/src/main/resources/schema/KernelActivity.json
@@ -4,13 +4,10 @@
"title": "KernelActivity",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.KernelActivity",
- "additionalProperties": true,
"description": "KernelActivity event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"actor": {
"$ref": "Actor.json"
@@ -37,4 +34,4 @@
"additionalProperties": true
}
}
-}
\ No newline at end of file
+}
diff --git
a/components/camel-ocsf/src/main/resources/schema/KernelExtensionActivity.json
b/components/camel-ocsf/src/main/resources/schema/KernelExtensionActivity.json
index 0920c11c048c..58b5d6deb3b7 100644
---
a/components/camel-ocsf/src/main/resources/schema/KernelExtensionActivity.json
+++
b/components/camel-ocsf/src/main/resources/schema/KernelExtensionActivity.json
@@ -4,13 +4,10 @@
"title": "KernelExtensionActivity",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.KernelExtensionActivity",
- "additionalProperties": true,
"description": "KernelExtensionActivity event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"actor": {
"$ref": "Actor.json"
@@ -37,4 +34,4 @@
"$ref": "Fingerprint.json"
}
}
-}
\ No newline at end of file
+}
diff --git
a/components/camel-ocsf/src/main/resources/schema/MemoryActivity.json
b/components/camel-ocsf/src/main/resources/schema/MemoryActivity.json
index 7fa58c0800c3..506e6de4de29 100644
--- a/components/camel-ocsf/src/main/resources/schema/MemoryActivity.json
+++ b/components/camel-ocsf/src/main/resources/schema/MemoryActivity.json
@@ -4,13 +4,10 @@
"title": "MemoryActivity",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.MemoryActivity",
- "additionalProperties": true,
"description": "MemoryActivity event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"actor": {
"$ref": "Actor.json"
@@ -52,4 +49,4 @@
"title": "Requested Permissions"
}
}
-}
\ No newline at end of file
+}
diff --git
a/components/camel-ocsf/src/main/resources/schema/ModuleActivity.json
b/components/camel-ocsf/src/main/resources/schema/ModuleActivity.json
index 868b2f50ee42..3aecd29b2065 100644
--- a/components/camel-ocsf/src/main/resources/schema/ModuleActivity.json
+++ b/components/camel-ocsf/src/main/resources/schema/ModuleActivity.json
@@ -4,13 +4,10 @@
"title": "ModuleActivity",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.ModuleActivity",
- "additionalProperties": true,
"description": "ModuleActivity event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"actor": {
"$ref": "Actor.json"
@@ -36,4 +33,4 @@
"$ref": "Fingerprint.json"
}
}
-}
\ No newline at end of file
+}
diff --git
a/components/camel-ocsf/src/main/resources/schema/NetworkActivity.json
b/components/camel-ocsf/src/main/resources/schema/NetworkActivity.json
index 79553916ec9d..4e8ac427656d 100644
--- a/components/camel-ocsf/src/main/resources/schema/NetworkActivity.json
+++ b/components/camel-ocsf/src/main/resources/schema/NetworkActivity.json
@@ -4,13 +4,10 @@
"title": "NetworkActivity",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.NetworkActivity",
- "additionalProperties": true,
"description": "NetworkActivity event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"cumulative_traffic": {
"type": "object",
@@ -78,4 +75,4 @@
"$ref": "Tls.json"
}
}
-}
\ No newline at end of file
+}
diff --git
a/components/camel-ocsf/src/main/resources/schema/NetworkFileActivity.json
b/components/camel-ocsf/src/main/resources/schema/NetworkFileActivity.json
index e2ff3d1535f7..148076a93c3a 100644
--- a/components/camel-ocsf/src/main/resources/schema/NetworkFileActivity.json
+++ b/components/camel-ocsf/src/main/resources/schema/NetworkFileActivity.json
@@ -4,13 +4,10 @@
"title": "NetworkFileActivity",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.NetworkFileActivity",
- "additionalProperties": true,
"description": "NetworkFileActivity event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"cumulative_traffic": {
"type": "object",
@@ -82,4 +79,4 @@
"$ref": "Tls.json"
}
}
-}
\ No newline at end of file
+}
diff --git a/components/camel-ocsf/src/main/resources/schema/NtpActivity.json
b/components/camel-ocsf/src/main/resources/schema/NtpActivity.json
index 8cd44affa93a..3271103dd705 100644
--- a/components/camel-ocsf/src/main/resources/schema/NtpActivity.json
+++ b/components/camel-ocsf/src/main/resources/schema/NtpActivity.json
@@ -4,13 +4,10 @@
"title": "NtpActivity",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.NtpActivity",
- "additionalProperties": true,
"description": "NtpActivity event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"cumulative_traffic": {
"type": "object",
@@ -91,4 +88,4 @@
"title": "Stratum ID"
}
}
-}
\ No newline at end of file
+}
diff --git
a/components/camel-ocsf/src/main/resources/schema/ProcessActivity.json
b/components/camel-ocsf/src/main/resources/schema/ProcessActivity.json
index a0f48e8d48cc..28b10a641317 100644
--- a/components/camel-ocsf/src/main/resources/schema/ProcessActivity.json
+++ b/components/camel-ocsf/src/main/resources/schema/ProcessActivity.json
@@ -4,13 +4,10 @@
"title": "ProcessActivity",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.ProcessActivity",
- "additionalProperties": true,
"description": "ProcessActivity event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"actor": {
"$ref": "Actor.json"
@@ -67,4 +64,4 @@
"title": "Launch Type"
}
}
-}
\ No newline at end of file
+}
diff --git a/components/camel-ocsf/src/main/resources/schema/RdpActivity.json
b/components/camel-ocsf/src/main/resources/schema/RdpActivity.json
index f661679db350..363ee0b4ed87 100644
--- a/components/camel-ocsf/src/main/resources/schema/RdpActivity.json
+++ b/components/camel-ocsf/src/main/resources/schema/RdpActivity.json
@@ -4,13 +4,10 @@
"title": "RdpActivity",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.RdpActivity",
- "additionalProperties": true,
"description": "RdpActivity event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"cumulative_traffic": {
"type": "object",
@@ -115,4 +112,4 @@
"$ref": "Tls.json"
}
}
-}
\ No newline at end of file
+}
diff --git
a/components/camel-ocsf/src/main/resources/schema/RemediationActivity.json
b/components/camel-ocsf/src/main/resources/schema/RemediationActivity.json
index d695116bfdac..76fb7c6988d4 100644
--- a/components/camel-ocsf/src/main/resources/schema/RemediationActivity.json
+++ b/components/camel-ocsf/src/main/resources/schema/RemediationActivity.json
@@ -4,13 +4,10 @@
"title": "RemediationActivity",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.RemediationActivity",
- "additionalProperties": true,
"description": "RemediationActivity event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"raw_data_size": {
"type": "integer",
@@ -45,4 +42,4 @@
"$ref": "Fingerprint.json"
}
}
-}
\ No newline at end of file
+}
diff --git a/components/camel-ocsf/src/main/resources/schema/ScanActivity.json
b/components/camel-ocsf/src/main/resources/schema/ScanActivity.json
index 25fd7122991b..e4bf6b8f1bdb 100644
--- a/components/camel-ocsf/src/main/resources/schema/ScanActivity.json
+++ b/components/camel-ocsf/src/main/resources/schema/ScanActivity.json
@@ -4,13 +4,10 @@
"title": "ScanActivity",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.ScanActivity",
- "additionalProperties": true,
"description": "ScanActivity event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"schedule_uid": {
"type": "string",
@@ -81,4 +78,4 @@
"title": "Scanned Folders"
}
}
-}
\ No newline at end of file
+}
diff --git
a/components/camel-ocsf/src/main/resources/schema/ScheduledJobActivity.json
b/components/camel-ocsf/src/main/resources/schema/ScheduledJobActivity.json
index 7bc5c5b65199..00f9f475e4ef 100644
--- a/components/camel-ocsf/src/main/resources/schema/ScheduledJobActivity.json
+++ b/components/camel-ocsf/src/main/resources/schema/ScheduledJobActivity.json
@@ -4,13 +4,10 @@
"title": "ScheduledJobActivity",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.ScheduledJobActivity",
- "additionalProperties": true,
"description": "ScheduledJobActivity event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"actor": {
"$ref": "Actor.json"
@@ -37,4 +34,4 @@
"additionalProperties": true
}
}
-}
\ No newline at end of file
+}
diff --git
a/components/camel-ocsf/src/main/resources/schema/SecurityFinding.json
b/components/camel-ocsf/src/main/resources/schema/SecurityFinding.json
index abedb0763ded..7ef0eea41f69 100644
--- a/components/camel-ocsf/src/main/resources/schema/SecurityFinding.json
+++ b/components/camel-ocsf/src/main/resources/schema/SecurityFinding.json
@@ -4,13 +4,10 @@
"title": "SecurityFinding",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.SecurityFinding",
- "additionalProperties": true,
"description": "SecurityFinding event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"impact": {
"type": "string",
@@ -153,4 +150,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/components/camel-ocsf/src/main/resources/schema/SmbActivity.json
b/components/camel-ocsf/src/main/resources/schema/SmbActivity.json
index f0cb8b8d94d3..d04b8841c33a 100644
--- a/components/camel-ocsf/src/main/resources/schema/SmbActivity.json
+++ b/components/camel-ocsf/src/main/resources/schema/SmbActivity.json
@@ -4,13 +4,10 @@
"title": "SmbActivity",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.SmbActivity",
- "additionalProperties": true,
"description": "SmbActivity event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"client_dialects": {
"type": "array",
@@ -116,4 +113,4 @@
"$ref": "Tls.json"
}
}
-}
\ No newline at end of file
+}
diff --git a/components/camel-ocsf/src/main/resources/schema/SshActivity.json
b/components/camel-ocsf/src/main/resources/schema/SshActivity.json
index c571065349fc..1d39dfb48219 100644
--- a/components/camel-ocsf/src/main/resources/schema/SshActivity.json
+++ b/components/camel-ocsf/src/main/resources/schema/SshActivity.json
@@ -4,13 +4,10 @@
"title": "SshActivity",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.SshActivity",
- "additionalProperties": true,
"description": "SshActivity event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"cumulative_traffic": {
"type": "object",
@@ -94,4 +91,4 @@
"$ref": "Tls.json"
}
}
-}
\ No newline at end of file
+}
diff --git a/components/camel-ocsf/src/main/resources/schema/UserAccess.json
b/components/camel-ocsf/src/main/resources/schema/UserAccess.json
index 3a3bcd1abe17..2238a2501fe4 100644
--- a/components/camel-ocsf/src/main/resources/schema/UserAccess.json
+++ b/components/camel-ocsf/src/main/resources/schema/UserAccess.json
@@ -4,13 +4,10 @@
"title": "UserAccess",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.UserAccess",
- "additionalProperties": true,
"description": "UserAccess event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"privileges": {
"type": "array",
@@ -59,4 +56,4 @@
"$ref": "Fingerprint.json"
}
}
-}
\ No newline at end of file
+}
diff --git
a/components/camel-ocsf/src/main/resources/schema/VulnerabilityFinding.json
b/components/camel-ocsf/src/main/resources/schema/VulnerabilityFinding.json
index 63f27baa8148..77d6bf9f95a8 100644
--- a/components/camel-ocsf/src/main/resources/schema/VulnerabilityFinding.json
+++ b/components/camel-ocsf/src/main/resources/schema/VulnerabilityFinding.json
@@ -4,13 +4,10 @@
"title": "VulnerabilityFinding",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.VulnerabilityFinding",
- "additionalProperties": true,
"description": "VulnerabilityFinding event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"resources": {
"type": "array",
@@ -69,4 +66,4 @@
"title": "Confidence"
}
}
-}
\ No newline at end of file
+}
diff --git
a/components/camel-ocsf/src/main/resources/schema/WebResourcesActivity.json
b/components/camel-ocsf/src/main/resources/schema/WebResourcesActivity.json
index 75f681766f03..8dbbb3920b86 100644
--- a/components/camel-ocsf/src/main/resources/schema/WebResourcesActivity.json
+++ b/components/camel-ocsf/src/main/resources/schema/WebResourcesActivity.json
@@ -4,13 +4,10 @@
"title": "WebResourcesActivity",
"type": "object",
"javaType": "org.apache.camel.dataformat.ocsf.model.WebResourcesActivity",
- "additionalProperties": true,
"description": "WebResourcesActivity event class.",
- "allOf": [
- {
- "$ref": "OcsfEvent.json"
- }
- ],
+ "extends": {
+ "$ref": "OcsfEvent.json"
+ },
"properties": {
"raw_data_size": {
"type": "integer",
@@ -58,4 +55,4 @@
"$ref": "Tls.json"
}
}
-}
\ No newline at end of file
+}
diff --git a/components/camel-ocsf/src/main/script/generate-ocsf-schemas.py
b/components/camel-ocsf/src/main/script/generate-ocsf-schemas.py
index dc0029ef8120..ad1005d41517 100644
--- a/components/camel-ocsf/src/main/script/generate-ocsf-schemas.py
+++ b/components/camel-ocsf/src/main/script/generate-ocsf-schemas.py
@@ -446,9 +446,13 @@ def generate_class_schema(ocsf: OcsfJsonSchemaEmbedded,
class_name: str,
"title": pascal_name,
"type": "object",
"javaType": f"{JAVA_PACKAGE}.{pascal_name}",
- "additionalProperties": True,
}
+ # Only set additionalProperties on classes that don't extend OcsfEvent
+ # (the parent OcsfEvent already has it, and duplicates cause
@JsonAnySetter conflicts)
+ if not extends_base:
+ result["additionalProperties"] = True
+
# Add description
if 'description' in schema:
result['description'] = schema['description']
@@ -457,7 +461,7 @@ def generate_class_schema(ocsf: OcsfJsonSchemaEmbedded,
class_name: str,
# Extend base event
if extends_base:
- result['allOf'] = [{"$ref": "OcsfEvent.json"}]
+ result['extends'] = {"$ref": "OcsfEvent.json"}
# Process properties (excluding base event properties)
result['properties'] = {}
diff --git
a/components/camel-ocsf/src/test/java/org/apache/camel/dataformat/ocsf/OcsfDataFormatTest.java
b/components/camel-ocsf/src/test/java/org/apache/camel/dataformat/ocsf/OcsfDataFormatTest.java
index af161beb6f70..ade617826004 100644
---
a/components/camel-ocsf/src/test/java/org/apache/camel/dataformat/ocsf/OcsfDataFormatTest.java
+++
b/components/camel-ocsf/src/test/java/org/apache/camel/dataformat/ocsf/OcsfDataFormatTest.java
@@ -88,12 +88,11 @@ public class OcsfDataFormatTest extends CamelTestSupport {
mock.expectedMessageCount(1);
DetectionFinding finding = new DetectionFinding();
- // DetectionFinding contains finding-specific attributes
- // Base event fields like activity_id, severity_id are captured via
additionalProperties
- finding.setAdditionalProperty("activity_id",
OcsfConstants.ACTIVITY_CREATE);
- finding.setAdditionalProperty("severity_id",
OcsfConstants.SEVERITY_CRITICAL);
- finding.setAdditionalProperty("time", (int)
(System.currentTimeMillis() / 1000));
- finding.setAdditionalProperty("class_uid",
OcsfConstants.CLASS_DETECTION_FINDING);
+ // DetectionFinding extends OcsfEvent, so base event fields have typed
accessors
+ finding.setActivityId(OcsfConstants.ACTIVITY_CREATE);
+ finding.setSeverityId(OcsfConstants.SEVERITY_CRITICAL);
+ finding.setTime(System.currentTimeMillis() / 1000);
+ finding.setClassUid(OcsfConstants.CLASS_DETECTION_FINDING);
finding.setIsAlert(true);
finding.setRiskLevelId(Integer.valueOf(4));
finding.setRiskLevel("High");
@@ -144,9 +143,9 @@ public class OcsfDataFormatTest extends CamelTestSupport {
mock.assertIsSatisfied();
DetectionFinding finding =
mock.getExchanges().get(0).getIn().getBody(DetectionFinding.class);
- // Base event fields are captured in additionalProperties
-
assertThat(finding.getAdditionalProperties().get("class_uid")).isEqualTo(2004);
-
assertThat(finding.getAdditionalProperties().get("severity_id")).isEqualTo(5);
+ // Base event fields are now accessible via typed getters (inherited
from OcsfEvent)
+ assertThat(finding.getClassUid()).isEqualTo(2004);
+ assertThat(finding.getSeverityId()).isEqualTo(5);
assertThat(finding.getIsAlert()).isTrue();
assertThat(finding.getRiskLevel()).isEqualTo("Critical");
assertThat(finding.getFindingInfo()).isNotNull();
diff --git
a/components/camel-ocsf/src/test/java/org/apache/camel/dataformat/ocsf/OcsfEventExampleTest.java
b/components/camel-ocsf/src/test/java/org/apache/camel/dataformat/ocsf/OcsfEventExampleTest.java
index 31d60518ccc1..815ef53f4f1c 100644
---
a/components/camel-ocsf/src/test/java/org/apache/camel/dataformat/ocsf/OcsfEventExampleTest.java
+++
b/components/camel-ocsf/src/test/java/org/apache/camel/dataformat/ocsf/OcsfEventExampleTest.java
@@ -91,12 +91,12 @@ public class OcsfEventExampleTest extends CamelTestSupport {
assertThat(finding.getRemediation()).isNotNull();
assertThat(finding.getRemediation().getDesc()).contains("Investigate
the EC2 instance");
- // Base event fields are in additionalProperties
-
assertThat(finding.getAdditionalProperties().get("class_uid")).isEqualTo(2004);
-
assertThat(finding.getAdditionalProperties().get("severity_id")).isEqualTo(4);
-
assertThat(finding.getAdditionalProperties().get("severity")).isEqualTo("High");
+ // Base event fields are now accessible via typed getters (inherited
from OcsfEvent)
+ assertThat(finding.getClassUid()).isEqualTo(2004);
+ assertThat(finding.getSeverityId()).isEqualTo(4);
+ assertThat(finding.getSeverity()).isEqualTo("High");
- // Verify cloud info in additionalProperties
+ // Verify cloud info in additionalProperties (cloud is not a base
event field)
@SuppressWarnings("unchecked")
java.util.Map<String, Object> cloud = (java.util.Map<String, Object>)
finding.getAdditionalProperties().get("cloud");
assertThat(cloud.get("provider")).isEqualTo("AWS");
@@ -114,17 +114,17 @@ public class OcsfEventExampleTest extends
CamelTestSupport {
// Create a Detection Finding for a SQL Injection attempt
DetectionFinding finding = new DetectionFinding();
- // Set base event fields via additionalProperties
- finding.setAdditionalProperty("class_uid",
OcsfConstants.CLASS_DETECTION_FINDING);
- finding.setAdditionalProperty("class_name", "Detection Finding");
- finding.setAdditionalProperty("category_uid",
OcsfConstants.CATEGORY_FINDINGS);
- finding.setAdditionalProperty("category_name", "Findings");
- finding.setAdditionalProperty("activity_id",
OcsfConstants.ACTIVITY_CREATE);
- finding.setAdditionalProperty("activity_name", "Create");
- finding.setAdditionalProperty("severity_id",
OcsfConstants.SEVERITY_HIGH);
- finding.setAdditionalProperty("severity", "High");
- finding.setAdditionalProperty("time", 1706198400);
- finding.setAdditionalProperty("message", "SQL Injection attempt
detected in web application");
+ // Set base event fields via typed setters (inherited from OcsfEvent)
+ finding.setClassUid(OcsfConstants.CLASS_DETECTION_FINDING);
+ finding.setClassName("Detection Finding");
+ finding.setCategoryUid(OcsfConstants.CATEGORY_FINDINGS);
+ finding.setCategoryName("Findings");
+ finding.setActivityId(OcsfConstants.ACTIVITY_CREATE);
+ finding.setActivityName("Create");
+ finding.setSeverityId(OcsfConstants.SEVERITY_HIGH);
+ finding.setSeverity("High");
+ finding.setTime(1706198400L);
+ finding.setMessage("SQL Injection attempt detected in web
application");
// Set finding-specific fields
finding.setIsAlert(true);
@@ -196,7 +196,7 @@ public class OcsfEventExampleTest extends CamelTestSupport {
product.setVendorName("MyCompany");
product.setVersion("2.5.0");
metadata.setProduct(product);
- finding.setAdditionalProperty("metadata", metadata);
+ finding.setMetadata(metadata);
// Send to marshal
template.sendBody("direct:build-finding", finding);