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

jkevan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/unomi.git


The following commit(s) were added to refs/heads/master by this push:
     new 9a771321a UNOMI-789: upgrade json schema validator to 1.0.86 (#639)
9a771321a is described below

commit 9a771321a6c077a94769f9776b43f4993f0b9b9c
Author: kevan Jahanshahi <[email protected]>
AuthorDate: Fri Aug 11 09:34:51 2023 +0200

    UNOMI-789: upgrade json schema validator to 1.0.86 (#639)
    
    * UNOMI-789: upgrade json schema validator to 1.0.86
    
    * Revert "UNOMI-778 : remove useless unevaluatedProperties on sub schema 
(#620)"
    
    This reverts commit bbb1584b67596757c4d8f1ddd720c745d5d0278d.
    
    * UNOMI-789: add new test for referringURL and allow empty value
    
    * DMF-5976: fix GraphQL calculation of types due to usage of anyOf as type 
in a Schema
---
 extensions/json-schema/services/pom.xml            |  2 +-
 .../form/form.flattenedProperties.fields.json      |  3 +-
 .../events/form/form.flattenedProperties.json      |  3 +-
 .../cxs/schemas/events/form/form.source.json       |  3 +-
 .../modifyConsent/modifyConsent.properties.json    |  5 ++--
 .../cxs/schemas/events/video/video.target.json     |  3 +-
 .../events/video/video.target.properties.json      |  3 +-
 .../events/view/view.flattenProperties.json        |  5 ++--
 .../META-INF/cxs/schemas/events/view/view.json     |  2 +-
 .../cxs/schemas/events/view/view.properties.json   |  5 ++--
 .../schemas/items/URLParameters/URLParameters.json |  5 ++--
 .../cxs/schemas/items/consent/consent.json         |  3 +-
 .../cxs/schemas/items/consent/consentType.json     |  5 ++--
 .../cxs/schemas/items/interests/interests.json     |  5 ++--
 .../META-INF/cxs/schemas/items/page/page.json      |  5 ++--
 .../items/page/page.properties.attributes.json     |  6 ++--
 .../cxs/schemas/items/page/page.properties.json    |  5 ++--
 .../items/page/page.properties.pageInfo.json       | 15 ++++++++--
 .../META-INF/cxs/schemas/items/site/site.json      |  5 ++--
 .../unomi/graphql/schema/json/JSONTypeFactory.java |  8 ++++++
 .../java/org/apache/unomi/itests/JSONSchemaIT.java | 23 +++++++++++++++
 itests/src/test/resources/schemas/event-view.json  | 33 ++++++++++++++++++++++
 .../schemas/schema-dummy-properties-updated.json   |  3 +-
 .../resources/schemas/schema-dummy-properties.json |  3 +-
 ...ma-flattened-flattenedProperties-interests.json |  5 ++--
 .../schema-flattened-flattenedProperties.json      |  5 ++--
 .../schemas/schema-flattened-properties.json       |  3 +-
 .../src/main/asciidoc/jsonSchema/introduction.adoc |  1 -
 28 files changed, 133 insertions(+), 39 deletions(-)

diff --git a/extensions/json-schema/services/pom.xml 
b/extensions/json-schema/services/pom.xml
index 337ea8c42..827168e6d 100644
--- a/extensions/json-schema/services/pom.xml
+++ b/extensions/json-schema/services/pom.xml
@@ -31,7 +31,7 @@
     <packaging>bundle</packaging>
 
     <properties>
-        <version.schema>1.0.81</version.schema>
+        <version.schema>1.0.86</version.schema>
         <version.schema.jackson>2.14.2</version.schema.jackson>
         <version.schema.itu>1.7.0</version.schema.itu>
     </properties>
diff --git 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/form/form.flattenedProperties.fields.json
 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/form/form.flattenedProperties.fields.json
index ef06189b2..1bc5dd8a1 100644
--- 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/form/form.flattenedProperties.fields.json
+++ 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/form/form.flattenedProperties.fields.json
@@ -16,5 +16,6 @@
         "type": "string"
       }
     }
-  }
+  },
+  "unevaluatedProperties": false
 }
diff --git 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/form/form.flattenedProperties.json
 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/form/form.flattenedProperties.json
index 5bf1f739f..fe8fc7a2c 100644
--- 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/form/form.flattenedProperties.json
+++ 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/form/form.flattenedProperties.json
@@ -13,5 +13,6 @@
     "fields": {
       "$ref" : 
"https://unomi.apache.org/schemas/json/events/form/flattenedProperties/fields/1-0-0";
     }
-  }
+  },
+  "unevaluatedProperties" : false
 }
diff --git 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/form/form.source.json
 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/form/form.source.json
index cb3b72b25..04a1b3273 100644
--- 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/form/form.source.json
+++ 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/form/form.source.json
@@ -9,5 +9,6 @@
   },
   "title": "FormSource",
   "type": "object",
-  "allOf": [{ "$ref": "https://unomi.apache.org/schemas/json/item/1-0-0"; }]
+  "allOf": [{ "$ref": "https://unomi.apache.org/schemas/json/item/1-0-0"; }],
+  "unevaluatedProperties" : false
 }
diff --git 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/modifyConsent/modifyConsent.properties.json
 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/modifyConsent/modifyConsent.properties.json
index 6527e29b7..dec05c560 100644
--- 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/modifyConsent/modifyConsent.properties.json
+++ 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/modifyConsent/modifyConsent.properties.json
@@ -13,5 +13,6 @@
       "consent" : {
         "$ref" : "https://unomi.apache.org/schemas/json/consent/1-0-0";
       }
-  }
-}
+  },
+  "unevaluatedProperties": false
+}
\ No newline at end of file
diff --git 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/video/video.target.json
 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/video/video.target.json
index 234591a89..62645a914 100644
--- 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/video/video.target.json
+++ 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/video/video.target.json
@@ -14,5 +14,6 @@
     "properties": {
       "$ref": 
"https://unomi.apache.org/schemas/json/events/video/target/properties/1-0-0";
     }
-  }
+  },
+  "unevaluatedProperties": false
 }
diff --git 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/video/video.target.properties.json
 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/video/video.target.properties.json
index 345961c55..f358d6174 100644
--- 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/video/video.target.properties.json
+++ 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/video/video.target.properties.json
@@ -13,5 +13,6 @@
     "action": {
       "type": "string"
     }
-  }
+  },
+  "unevaluatedProperties": false
 }
diff --git 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/view/view.flattenProperties.json
 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/view/view.flattenProperties.json
index a78b9ebe7..957761d71 100644
--- 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/view/view.flattenProperties.json
+++ 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/view/view.flattenProperties.json
@@ -16,5 +16,6 @@
     "URLParameters": {
       "$ref": "https://unomi.apache.org/schemas/json/URLParameters/1-0-0";
     }
-  }
-}
+  },
+  "unevaluatedProperties" : false
+}
\ No newline at end of file
diff --git 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/view/view.json
 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/view/view.json
index 921ae52b1..e77576476 100644
--- 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/view/view.json
+++ 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/view/view.json
@@ -26,4 +26,4 @@
     }
   },
   "unevaluatedProperties": false
-}
+}
\ No newline at end of file
diff --git 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/view/view.properties.json
 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/view/view.properties.json
index 8fee44e29..13c69694c 100644
--- 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/view/view.properties.json
+++ 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/events/view/view.properties.json
@@ -9,5 +9,6 @@
   },
   "title": "ViewProperties",
   "type": "object",
-  "properties" : {}
-}
+  "properties" : {},
+  "unevaluatedProperties" : false
+}
\ No newline at end of file
diff --git 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/URLParameters/URLParameters.json
 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/URLParameters/URLParameters.json
index 1d883d60d..3d7e3a6d0 100644
--- 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/URLParameters/URLParameters.json
+++ 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/URLParameters/URLParameters.json
@@ -16,5 +16,6 @@
         "type": "string"
       }
     }
-  }
-}
+  },
+  "unevaluatedProperties": false
+}
\ No newline at end of file
diff --git 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/consent/consent.json
 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/consent/consent.json
index 8da47562d..40b09d64d 100644
--- 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/consent/consent.json
+++ 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/consent/consent.json
@@ -28,5 +28,6 @@
       "type" : "string",
       "format" : "date-time"
     }
-  }
+  },
+  "unevaluatedProperties": false
 }
diff --git 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/consent/consentType.json
 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/consent/consentType.json
index 23189416d..995f77f9a 100644
--- 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/consent/consentType.json
+++ 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/consent/consentType.json
@@ -22,5 +22,6 @@
     "description" : {
       "type" : ["null", "string"]
     }
-  }
-}
+  },
+  "unevaluatedProperties": false
+}
\ No newline at end of file
diff --git 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/interests/interests.json
 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/interests/interests.json
index 0681e32c1..74bc6c84d 100644
--- 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/interests/interests.json
+++ 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/interests/interests.json
@@ -13,5 +13,6 @@
     "^.*$": {
       "type": "number"
     }
-  }
-}
+  },
+  "unevaluatedProperties": false
+}
\ No newline at end of file
diff --git 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/page/page.json
 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/page/page.json
index 18d13e002..ec52e5871 100644
--- 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/page/page.json
+++ 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/page/page.json
@@ -14,5 +14,6 @@
     "properties" : {
       "$ref" : 
"https://unomi.apache.org/schemas/json/items/page/properties/1-0-0";
     }
-  }
-}
+  },
+  "unevaluatedProperties" : false
+}
\ No newline at end of file
diff --git 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/page/page.properties.attributes.json
 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/page/page.properties.attributes.json
index cece7608e..cb54c2a93 100644
--- 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/page/page.properties.attributes.json
+++ 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/page/page.properties.attributes.json
@@ -9,5 +9,7 @@
   },
   "title": "Page Attributes",
   "type": ["null", "object"],
-  "properties": {}
-}
+  "properties": {
+  },
+  "unevaluatedProperties" : false
+}
\ No newline at end of file
diff --git 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/page/page.properties.json
 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/page/page.properties.json
index 8ef3f29be..3abfd4d0e 100644
--- 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/page/page.properties.json
+++ 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/page/page.properties.json
@@ -22,5 +22,6 @@
         "$ref" : "https://unomi.apache.org/schemas/json/consentType/1-0-0";
       }
     }
-  }
-}
+  },
+  "unevaluatedProperties" : false
+}
\ No newline at end of file
diff --git 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/page/page.properties.pageInfo.json
 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/page/page.properties.pageInfo.json
index ded8b0a0c..bfafcb1a5 100644
--- 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/page/page.properties.pageInfo.json
+++ 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/page/page.properties.pageInfo.json
@@ -43,8 +43,16 @@
       "type": ["null", "string"]
     },
     "referringURL": {
-      "type": ["null", "string"],
-      "format": "uri"
+      "anyOf": [
+        {
+          "type": ["null", "string"],
+          "format": "uri"
+        },
+        {
+          "type": ["string"],
+          "maxLength": 0
+        }
+      ]
     },
     "referrerQuery": {
       "type": ["null", "string"]
@@ -64,5 +72,6 @@
     "sameDomainReferrer": {
       "type": ["null", "boolean"]
     }
-  }
+  },
+  "unevaluatedProperties" : false
 }
diff --git 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/site/site.json
 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/site/site.json
index 777dc4a81..c73afaf17 100644
--- 
a/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/site/site.json
+++ 
b/extensions/json-schema/services/src/main/resources/META-INF/cxs/schemas/items/site/site.json
@@ -9,5 +9,6 @@
   },
   "title": "SiteItem",
   "type": "object",
-  "allOf": [{ "$ref": "https://unomi.apache.org/schemas/json/item/1-0-0"; }]
-}
+  "allOf": [{ "$ref": "https://unomi.apache.org/schemas/json/item/1-0-0"; }],
+  "unevaluatedProperties" : false
+}
\ No newline at end of file
diff --git 
a/graphql/cxs-impl/src/main/java/org/apache/unomi/graphql/schema/json/JSONTypeFactory.java
 
b/graphql/cxs-impl/src/main/java/org/apache/unomi/graphql/schema/json/JSONTypeFactory.java
index 6b1ab8255..04c5bb255 100644
--- 
a/graphql/cxs-impl/src/main/java/org/apache/unomi/graphql/schema/json/JSONTypeFactory.java
+++ 
b/graphql/cxs-impl/src/main/java/org/apache/unomi/graphql/schema/json/JSONTypeFactory.java
@@ -49,6 +49,14 @@ public class JSONTypeFactory {
     }
 
     List<JSONType> getTypes(Map<String, Object> schemaTree) {
+        if (schemaTree.containsKey("anyOf")) {
+            List<JSONType> result = new ArrayList<>();
+            List<Map<String, Object>> anyOf = (List<Map<String, Object>>) 
schemaTree.get("anyOf");
+            for (Map<String, Object> any : anyOf) {
+                result.addAll(getTypes(any));
+            }
+            return result;
+        }
         if (schemaTree.containsKey("$ref")) {
             String schemaId = (String) schemaTree.get("$ref");
             JsonSchemaWrapper refSchema = schemaService.getSchema(schemaId);
diff --git a/itests/src/test/java/org/apache/unomi/itests/JSONSchemaIT.java 
b/itests/src/test/java/org/apache/unomi/itests/JSONSchemaIT.java
index 034c2eb3c..13550dda7 100644
--- a/itests/src/test/java/org/apache/unomi/itests/JSONSchemaIT.java
+++ b/itests/src/test/java/org/apache/unomi/itests/JSONSchemaIT.java
@@ -291,6 +291,29 @@ public class JSONSchemaIT extends BaseIT {
         assertEquals(1, 
errors.get("flattened").stream().filter(validationError -> 
validationError.getError().startsWith("$.flattenedProperties.interests.football")).collect(Collectors.toList()).size());
     }
 
+    @Test
+    public void testValidateEvents_referringURL() throws Exception {
+        Map<String, Boolean> URIs = new HashMap<>();
+        URIs.put("null", true);
+        URIs.put("\"\"", true);
+        URIs.put("\"http://example.com:8080/path/to/resource\"";, true);
+        URIs.put("\"http://helloworld.com/\"";, true);
+        
URIs.put("\"file:///private/var/containers/Bundle/Application/8F7EE2C0-7167-4AB3-8090-7A4D34E49668/stable.app/restore_session.html#targetUrl=https%3A%2F%2Fwww.ducks.org%2Fillinois%2Fillinois-du-calendar-gun-giveaway\"",
 true);
+        URIs.put("\"://helloworld.com/\"", false);
+        URIs.put("\"nullsrcdoc\"", false);
+
+        for (Map.Entry<String, Boolean> uri : URIs.entrySet()) {
+            HashMap<String, String> replacements = new HashMap<>();
+            replacements.put("REFERRING_URL", uri.getKey());
+            String events = "[" + 
getValidatedBundleJSON("schemas/event-view.json", replacements) + "]";
+            Map<String, Set<ValidationError>> errors = 
schemaService.validateEvents(events);
+            if (uri.getValue()) {
+                assertTrue("URI: " + uri.getKey() + " as referringURL should 
be allowed", errors.isEmpty());
+            } else {
+                assertEquals("URI: " + uri.getKey() + " as referringURL should 
not be allowed",1,  errors.size());
+            }
+        }
+    }
 
     @Test
     public void testFlattenedProperties() throws Exception {
diff --git a/itests/src/test/resources/schemas/event-view.json 
b/itests/src/test/resources/schemas/event-view.json
new file mode 100644
index 000000000..85763ecd1
--- /dev/null
+++ b/itests/src/test/resources/schemas/event-view.json
@@ -0,0 +1,33 @@
+{
+  "eventType": "view",
+  "scope": "dummy_scope",
+  "target": {
+    "scope": "dummy_scope",
+    "itemId": "829a9d87-acd3-46a3-98e1-951f3cdfbd03",
+    "itemType": "page",
+    "properties": {
+      "pageInfo": {
+        "pageID": "829a9d87-acd3-46a3-98e1-951f3cdfbd03",
+        "nodeType": "jnt:page",
+        "pageName": "Accueil",
+        "pagePath": "/sites/digitall/home",
+        "templateName": "home",
+        "destinationURL": "http://localhost:8080/fr/sites/digitall/home.html";,
+        "destinationSearch": "",
+        "referringURL": ###REFERRING_URL###,
+        "language": "fr",
+        "categories": [],
+        "tags": [],
+        "sameDomainReferrer": false
+      },
+      "attributes": {},
+      "consentTypes": []
+    }
+  },
+  "source": {
+    "scope": "dummy_scope",
+    "itemId": "36ed9435-638a-4076-9e4e-1445a886a2f2",
+    "itemType": "site"
+  },
+  "flattenedProperties": {}
+}
\ No newline at end of file
diff --git 
a/itests/src/test/resources/schemas/schema-dummy-properties-updated.json 
b/itests/src/test/resources/schemas/schema-dummy-properties-updated.json
index 83f5cabf2..d1482be34 100644
--- a/itests/src/test/resources/schemas/schema-dummy-properties-updated.json
+++ b/itests/src/test/resources/schemas/schema-dummy-properties-updated.json
@@ -19,5 +19,6 @@
     "invalidPropName": {
       "type": "string"
     }
-  }
+  },
+  "unevaluatedProperties": false
 }
diff --git a/itests/src/test/resources/schemas/schema-dummy-properties.json 
b/itests/src/test/resources/schemas/schema-dummy-properties.json
index 5ead897a5..e497791ee 100644
--- a/itests/src/test/resources/schemas/schema-dummy-properties.json
+++ b/itests/src/test/resources/schemas/schema-dummy-properties.json
@@ -21,5 +21,6 @@
       "type": "string",
       "maxLength": 20000
     }
-  }
+  },
+  "unevaluatedProperties": false
 }
diff --git 
a/itests/src/test/resources/schemas/schema-flattened-flattenedProperties-interests.json
 
b/itests/src/test/resources/schemas/schema-flattened-flattenedProperties-interests.json
index c42c0fae9..a5fde38fc 100644
--- 
a/itests/src/test/resources/schemas/schema-flattened-flattenedProperties-interests.json
+++ 
b/itests/src/test/resources/schemas/schema-flattened-flattenedProperties-interests.json
@@ -14,5 +14,6 @@
       "type": "number"
     }
   },
-  "maxProperties": 4
-}
+  "maxProperties": 4,
+  "unevaluatedProperties": false
+}
\ No newline at end of file
diff --git 
a/itests/src/test/resources/schemas/schema-flattened-flattenedProperties.json 
b/itests/src/test/resources/schemas/schema-flattened-flattenedProperties.json
index 067c66220..e50e883f2 100644
--- 
a/itests/src/test/resources/schemas/schema-flattened-flattenedProperties.json
+++ 
b/itests/src/test/resources/schemas/schema-flattened-flattenedProperties.json
@@ -13,5 +13,6 @@
     "interests": {
       "$ref": 
"https://vendor.test.com/schemas/json/events/flattened/flattenedProperties/interests/1-0-0";
     }
-  }
-}
+  },
+  "unevaluatedProperties": false
+}
\ No newline at end of file
diff --git a/itests/src/test/resources/schemas/schema-flattened-properties.json 
b/itests/src/test/resources/schemas/schema-flattened-properties.json
index b0f71bcd0..7d7fd7c0d 100644
--- a/itests/src/test/resources/schemas/schema-flattened-properties.json
+++ b/itests/src/test/resources/schemas/schema-flattened-properties.json
@@ -13,5 +13,6 @@
     "marker": {
       "type": "string"
     }
-  }
+  },
+  "unevaluatedProperties": false
 }
diff --git a/manual/src/main/asciidoc/jsonSchema/introduction.adoc 
b/manual/src/main/asciidoc/jsonSchema/introduction.adoc
index d9755b12f..e77d5ed4d 100644
--- a/manual/src/main/asciidoc/jsonSchema/introduction.adoc
+++ b/manual/src/main/asciidoc/jsonSchema/introduction.adoc
@@ -184,7 +184,6 @@ The *unevaluatedProperties* keyword is useful for schema 
composition as well as
 This keyword is similar to *additionalProperties* except that it can recognize 
properties declared in sub schemas.
 When setting the *unevaluatedProperties* value to *false*, the properties 
which are not present in the properties part and are not present in the sub 
schemas will be considered as invalid.
 
-The *unevaluatedProperties* keyword should only be set on the root schema. 
Otherwise it could leads to less readable messages when validating events.
 Example with the following schema:
 
 [source]

Reply via email to