diff --git a/amqp/pom.xml b/amqp/pom.xml
index 865acfdc5..d21c9f56b 100644
--- a/amqp/pom.xml
+++ b/amqp/pom.xml
@@ -6,7 +6,7 @@
io.cloudevents
cloudevents-parent
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
cloudevents-amqp-proton
diff --git a/api/pom.xml b/api/pom.xml
index adb849480..0137bca79 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -24,7 +24,7 @@
io.cloudevents
cloudevents-parent
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
cloudevents-api
diff --git a/benchmarks/pom.xml b/benchmarks/pom.xml
index a9c18fd14..b3ed99e1c 100644
--- a/benchmarks/pom.xml
+++ b/benchmarks/pom.xml
@@ -21,7 +21,7 @@
io.cloudevents
cloudevents-parent
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
cloudevents-benchmarks
diff --git a/bom/pom.xml b/bom/pom.xml
index 8343f7644..e46d97ecc 100644
--- a/bom/pom.xml
+++ b/bom/pom.xml
@@ -22,7 +22,7 @@
io.cloudevents
cloudevents-parent
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
cloudevents-bom
diff --git a/core/pom.xml b/core/pom.xml
index 2e777d559..7c01b1623 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -22,7 +22,7 @@
io.cloudevents
cloudevents-parent
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
cloudevents-core
diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock
index d9152b675..bd372c130 100644
--- a/docs/Gemfile.lock
+++ b/docs/Gemfile.lock
@@ -207,14 +207,14 @@ GEM
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.3.6)
- mini_portile2 (2.8.5)
+ mini_portile2 (2.8.6)
minima (2.5.1)
jekyll (>= 3.5, < 5.0)
jekyll-feed (~> 0.9)
jekyll-seo-tag (~> 2.1)
minitest (5.17.0)
multipart-post (2.1.1)
- nokogiri (1.16.3)
+ nokogiri (1.16.5)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
octokit (4.19.0)
@@ -228,7 +228,8 @@ GEM
rb-fsevent (0.10.4)
rb-inotify (0.10.1)
ffi (~> 1.0)
- rexml (3.2.5)
+ rexml (3.2.8)
+ strscan (>= 3.0.9)
rouge (3.23.0)
ruby-enum (0.8.0)
i18n
@@ -245,6 +246,7 @@ GEM
faraday (> 0.8, < 2.0)
simpleidn (0.1.1)
unf (~> 0.1.4)
+ strscan (3.1.0)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
thread_safe (0.3.6)
diff --git a/docs/amqp-proton.md b/docs/amqp-proton.md
index 0612a59db..7f56f9d8e 100644
--- a/docs/amqp-proton.md
+++ b/docs/amqp-proton.md
@@ -18,7 +18,7 @@ binding for CloudEvents:
io.cloudevents
cloudevents-amqp-proton
- 2.3.0
+ 4.0.0
```
diff --git a/docs/api.md b/docs/api.md
index 1de08596f..9e27c2b40 100644
--- a/docs/api.md
+++ b/docs/api.md
@@ -17,7 +17,7 @@ For Maven based projects, use the following dependency:
io.cloudevents
cloudevents-api
- 2.3.0
+ 4.0.0
```
diff --git a/docs/avro.md b/docs/avro.md
index 0b98fa8f0..6d91058f7 100644
--- a/docs/avro.md
+++ b/docs/avro.md
@@ -16,7 +16,7 @@ For Maven based projects, use the following dependency:
io.cloudevents
cloudevents-avro-compact
- x.y.z
+ 4.0.0
```
diff --git a/docs/core.md b/docs/core.md
index 17c9c539a..2af5b3c12 100644
--- a/docs/core.md
+++ b/docs/core.md
@@ -16,7 +16,7 @@ For Maven based projects, use the following dependency:
io.cloudevents
cloudevents-core
- 2.3.0
+ 4.0.0
```
diff --git a/docs/http-basic.md b/docs/http-basic.md
index 273feb9ae..42308fd6b 100644
--- a/docs/http-basic.md
+++ b/docs/http-basic.md
@@ -27,7 +27,7 @@ HTTP Transport:
io.cloudevents
cloudevents-http-basic
- 2.3.0
+ 4.0.0
```
diff --git a/docs/http-jakarta-restful-ws-jakarta.md b/docs/http-jakarta-restful-ws-jakarta.md
index 9b22e1cd8..ff078ad93 100644
--- a/docs/http-jakarta-restful-ws-jakarta.md
+++ b/docs/http-jakarta-restful-ws-jakarta.md
@@ -14,7 +14,7 @@ RESTful Web Services Binding for Jakarta EE 9+:
io.cloudevents
cloudevents-http-restful-ws-jakarta
- 2.5.0-SNAPSHOT
+ 4.0.0
```
diff --git a/docs/http-jakarta-restful-ws.md b/docs/http-jakarta-restful-ws.md
index 5e560f8cd..1d1785750 100644
--- a/docs/http-jakarta-restful-ws.md
+++ b/docs/http-jakarta-restful-ws.md
@@ -14,7 +14,7 @@ RESTful Web Services Binding for Jakarta EE 8:
io.cloudevents
cloudevents-http-restful-ws
- 2.3.0
+ 4.0.0
```
diff --git a/docs/http-vertx.md b/docs/http-vertx.md
index 7d36b5652..d0184269a 100644
--- a/docs/http-vertx.md
+++ b/docs/http-vertx.md
@@ -14,7 +14,7 @@ HTTP Transport:
io.cloudevents
cloudevents-http-vertx
- 2.3.0
+ 4.0.0
```
diff --git a/docs/json-jackson.md b/docs/json-jackson.md
index 823436f02..f3e93083e 100644
--- a/docs/json-jackson.md
+++ b/docs/json-jackson.md
@@ -17,7 +17,7 @@ For Maven based projects, use the following dependency:
io.cloudevents
cloudevents-json-jackson
- 2.3.0
+ 4.0.0
```
diff --git a/docs/kafka.md b/docs/kafka.md
index 5b49840bb..33d3dd1ce 100644
--- a/docs/kafka.md
+++ b/docs/kafka.md
@@ -17,7 +17,7 @@ For Maven based projects, use the following to configure the
io.cloudevents
cloudevents-kafka
- 2.3.0
+ 4.0.0
```
diff --git a/docs/protobuf.md b/docs/protobuf.md
index 6a49ec86b..37007472f 100644
--- a/docs/protobuf.md
+++ b/docs/protobuf.md
@@ -18,7 +18,7 @@ For Maven based projects, use the following dependency:
io.cloudevents
cloudevents-protobuf
- x.y.z
+ 4.0.0
```
diff --git a/docs/spring.md b/docs/spring.md
index fa652d19d..7b6589389 100644
--- a/docs/spring.md
+++ b/docs/spring.md
@@ -17,7 +17,7 @@ For Maven based projects, use the following dependency:
io.cloudevents
cloudevents-spring
- 2.3.0
+ 4.0.0
```
diff --git a/docs/xml.md b/docs/xml.md
index 8e365ac1f..c906ea735 100644
--- a/docs/xml.md
+++ b/docs/xml.md
@@ -18,7 +18,7 @@ For Maven based projects, use the following dependency:
io.cloudevents
cloudevents-xml
- 2.4.0
+ 4.0.0
```
diff --git a/examples/amqp-proton/pom.xml b/examples/amqp-proton/pom.xml
index 4ef09c5ce..7cbd68f85 100644
--- a/examples/amqp-proton/pom.xml
+++ b/examples/amqp-proton/pom.xml
@@ -3,14 +3,15 @@
cloudevents-examples
io.cloudevents
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
4.0.0
cloudevents-amqp-proton-example
- 4.0.0.Beta1
+ cloudevents.example.amqp.proton
+ 4.0.0.Beta1
diff --git a/examples/basic-http/pom.xml b/examples/basic-http/pom.xml
index 156b727e9..845f2836e 100644
--- a/examples/basic-http/pom.xml
+++ b/examples/basic-http/pom.xml
@@ -21,11 +21,14 @@
cloudevents-examples
io.cloudevents
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
4.0.0
cloudevents-basic-http-example
+
+ cloudevents.example.basic.http
+
diff --git a/examples/kafka/pom.xml b/examples/kafka/pom.xml
index 018384e61..510679d8c 100644
--- a/examples/kafka/pom.xml
+++ b/examples/kafka/pom.xml
@@ -5,11 +5,14 @@
cloudevents-examples
io.cloudevents
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
4.0.0
cloudevents-kafka-example
+
+ cloudevents.example.kafka
+
diff --git a/examples/pom.xml b/examples/pom.xml
index de74f57fd..d7b02fdcf 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -5,7 +5,7 @@
cloudevents-parent
io.cloudevents
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
4.0.0
diff --git a/examples/restful-ws-microprofile-liberty/pom.xml b/examples/restful-ws-microprofile-liberty/pom.xml
index 86680c0b9..d17145bcd 100644
--- a/examples/restful-ws-microprofile-liberty/pom.xml
+++ b/examples/restful-ws-microprofile-liberty/pom.xml
@@ -3,7 +3,7 @@
cloudevents-examples
io.cloudevents
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
../
4.0.0
@@ -13,6 +13,7 @@
3.5.1
cloudevents-microprofile
+ cloudevents.example.restful.ws.microprofile.liberty
cloudeventsServer
diff --git a/examples/restful-ws-quarkus/pom.xml b/examples/restful-ws-quarkus/pom.xml
index 68b11715d..8c0ef06d3 100644
--- a/examples/restful-ws-quarkus/pom.xml
+++ b/examples/restful-ws-quarkus/pom.xml
@@ -5,11 +5,12 @@
cloudevents-examples
io.cloudevents
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
4.0.0
cloudevents-restful-ws-quarkus-example
+ cloudevents.example.restful.ws.quarkus
1.10.3.Final
quarkus-universe-bom
io.quarkus
diff --git a/examples/restful-ws-spring-boot/pom.xml b/examples/restful-ws-spring-boot/pom.xml
index 2475adc0f..c3ac7a031 100644
--- a/examples/restful-ws-spring-boot/pom.xml
+++ b/examples/restful-ws-spring-boot/pom.xml
@@ -5,13 +5,14 @@
cloudevents-examples
io.cloudevents
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
4.0.0
cloudevents-spring-boot-example
+ cloudevents.example.spring.boot
2.3.2.RELEASE
5.2.9.RELEASE
diff --git a/examples/rocketmq/pom.xml b/examples/rocketmq/pom.xml
index 022ac49cc..a36ff1294 100644
--- a/examples/rocketmq/pom.xml
+++ b/examples/rocketmq/pom.xml
@@ -5,11 +5,14 @@
cloudevents-examples
io.cloudevents
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
4.0.0
cloudevents-rocketmq-example
+
+ cloudevents.example.rocketmq
+
diff --git a/examples/spring-function/pom.xml b/examples/spring-function/pom.xml
index 5a0047f1a..5506ce93a 100644
--- a/examples/spring-function/pom.xml
+++ b/examples/spring-function/pom.xml
@@ -5,13 +5,14 @@
cloudevents-examples
io.cloudevents
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
4.0.0
cloudevents-spring-function-example
+ cloudevents.example.spring.function
2.4.3
diff --git a/examples/spring-reactive/pom.xml b/examples/spring-reactive/pom.xml
index 2a4489f04..0c689f454 100644
--- a/examples/spring-reactive/pom.xml
+++ b/examples/spring-reactive/pom.xml
@@ -5,13 +5,14 @@
cloudevents-examples
io.cloudevents
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
4.0.0
cloudevents-spring-reactive-example
+ cloudevents.example.spring.reactive
2.4.3
diff --git a/examples/spring-rsocket/pom.xml b/examples/spring-rsocket/pom.xml
index 151a7fe84..c86e3e0cb 100644
--- a/examples/spring-rsocket/pom.xml
+++ b/examples/spring-rsocket/pom.xml
@@ -5,13 +5,14 @@
cloudevents-examples
io.cloudevents
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
4.0.0
cloudevents-spring-rsocket-example
+ cloudevents.example.spring.rsocket
2.4.3
diff --git a/examples/vertx/pom.xml b/examples/vertx/pom.xml
index 7fccab33e..5cb27b975 100644
--- a/examples/vertx/pom.xml
+++ b/examples/vertx/pom.xml
@@ -5,11 +5,14 @@
cloudevents-examples
io.cloudevents
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
4.0.0
cloudevents-vertx-example
+
+ cloudevents.example.vertx
+
diff --git a/formats/avro-compact/pom.xml b/formats/avro-compact/pom.xml
index a9c8ff582..1e14a9370 100644
--- a/formats/avro-compact/pom.xml
+++ b/formats/avro-compact/pom.xml
@@ -23,7 +23,7 @@
io.cloudevents
cloudevents-parent
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
../../pom.xml
diff --git a/formats/json-jackson/pom.xml b/formats/json-jackson/pom.xml
index c6671dd5d..e084b6809 100644
--- a/formats/json-jackson/pom.xml
+++ b/formats/json-jackson/pom.xml
@@ -22,7 +22,7 @@
io.cloudevents
cloudevents-parent
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
../../pom.xml
diff --git a/formats/protobuf/pom.xml b/formats/protobuf/pom.xml
index e965c6954..07c841f92 100644
--- a/formats/protobuf/pom.xml
+++ b/formats/protobuf/pom.xml
@@ -23,7 +23,7 @@
io.cloudevents
cloudevents-parent
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
../../pom.xml
diff --git a/formats/xml/pom.xml b/formats/xml/pom.xml
index 9c0bf6319..b48de4144 100644
--- a/formats/xml/pom.xml
+++ b/formats/xml/pom.xml
@@ -23,7 +23,7 @@
io.cloudevents
cloudevents-parent
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
../../pom.xml
@@ -33,7 +33,7 @@
io.cloudevents.formats.xml
- 2.9.0
+ 2.10.0
2.3.1
diff --git a/http/basic/pom.xml b/http/basic/pom.xml
index b473c81b0..e2a973946 100644
--- a/http/basic/pom.xml
+++ b/http/basic/pom.xml
@@ -21,7 +21,7 @@
io.cloudevents
cloudevents-parent
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
../../pom.xml
diff --git a/http/restful-ws-integration-tests/pom.xml b/http/restful-ws-integration-tests/pom.xml
index fa0b5b307..bc777d0df 100644
--- a/http/restful-ws-integration-tests/pom.xml
+++ b/http/restful-ws-integration-tests/pom.xml
@@ -22,7 +22,7 @@
cloudevents-parent
io.cloudevents
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
../../pom.xml
4.0.0
diff --git a/http/restful-ws-integration-tests/restful-ws-common/pom.xml b/http/restful-ws-integration-tests/restful-ws-common/pom.xml
index ad95ba0e5..81341442b 100644
--- a/http/restful-ws-integration-tests/restful-ws-common/pom.xml
+++ b/http/restful-ws-integration-tests/restful-ws-common/pom.xml
@@ -22,7 +22,7 @@
cloudevents-http-restful-ws-integration-tests
io.cloudevents
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
../
4.0.0
@@ -30,7 +30,9 @@
cloudevents-http-restful-ws-integration-tests-common
CloudEvents - JAX-RS Integration Tests - Common
jar
-
+
+ io.cloudevents.jaxrs.integration.tests.common
+
diff --git a/http/restful-ws-integration-tests/restful-ws-jersey/pom.xml b/http/restful-ws-integration-tests/restful-ws-jersey/pom.xml
index f7fa625ae..dd635fa75 100644
--- a/http/restful-ws-integration-tests/restful-ws-jersey/pom.xml
+++ b/http/restful-ws-integration-tests/restful-ws-jersey/pom.xml
@@ -22,7 +22,7 @@
cloudevents-http-restful-ws-integration-tests
io.cloudevents
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
../
4.0.0
@@ -33,6 +33,7 @@
2.30.1
+ io.cloudevents.jaxrs.integration.tests.jersey
diff --git a/http/restful-ws-integration-tests/restful-ws-resteasy/pom.xml b/http/restful-ws-integration-tests/restful-ws-resteasy/pom.xml
index 0ed365e9b..31a4a4f15 100644
--- a/http/restful-ws-integration-tests/restful-ws-resteasy/pom.xml
+++ b/http/restful-ws-integration-tests/restful-ws-resteasy/pom.xml
@@ -22,7 +22,7 @@
cloudevents-http-restful-ws-integration-tests
io.cloudevents
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
../
4.0.0
@@ -32,6 +32,7 @@
jar
+ io.cloudevents.jaxrs.integration.tests.resteasy
3.9.2
4.5.6.Final
diff --git a/http/restful-ws-integration-tests/restful-ws-spring/pom.xml b/http/restful-ws-integration-tests/restful-ws-spring/pom.xml
index a4d0c15f3..ee606645a 100644
--- a/http/restful-ws-integration-tests/restful-ws-spring/pom.xml
+++ b/http/restful-ws-integration-tests/restful-ws-spring/pom.xml
@@ -22,7 +22,7 @@
cloudevents-http-restful-ws-integration-tests
io.cloudevents
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
../
4.0.0
@@ -32,6 +32,7 @@
jar
+ io.cloudevents.jaxrs.integration.tests.spring
2.3.2.RELEASE
5.2.9.RELEASE
diff --git a/http/restful-ws-jakarta-integration-tests/pom.xml b/http/restful-ws-jakarta-integration-tests/pom.xml
index 683c25981..203026beb 100644
--- a/http/restful-ws-jakarta-integration-tests/pom.xml
+++ b/http/restful-ws-jakarta-integration-tests/pom.xml
@@ -5,7 +5,7 @@
cloudevents-parent
io.cloudevents
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
../../pom.xml
4.0.0
diff --git a/http/restful-ws-jakarta-integration-tests/restful-ws-jakarta-common/pom.xml b/http/restful-ws-jakarta-integration-tests/restful-ws-jakarta-common/pom.xml
index 1a010d5b2..81ff32aef 100644
--- a/http/restful-ws-jakarta-integration-tests/restful-ws-jakarta-common/pom.xml
+++ b/http/restful-ws-jakarta-integration-tests/restful-ws-jakarta-common/pom.xml
@@ -3,7 +3,7 @@
cloudevents-http-restful-ws-jakarta-integration-tests
io.cloudevents
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
../
4.0.0
@@ -11,6 +11,10 @@
CloudEvents - JAX-RS Jakarta EE9+ Integration Tests - Common
jar
+
+ cloudevents.http.restful.ws.jakarta.integration.tests.common
+
+
io.cloudevents
diff --git a/http/restful-ws-jakarta-integration-tests/restful-ws-jersey/pom.xml b/http/restful-ws-jakarta-integration-tests/restful-ws-jersey/pom.xml
index fdf8bd9f5..d032e3af3 100644
--- a/http/restful-ws-jakarta-integration-tests/restful-ws-jersey/pom.xml
+++ b/http/restful-ws-jakarta-integration-tests/restful-ws-jersey/pom.xml
@@ -32,6 +32,7 @@
jar
+ cloudevents.http.restful.ws.jakarta.integration.tests.jersey
3.0.8
3.0.0
diff --git a/http/restful-ws-jakarta-integration-tests/restful-ws-liberty/pom.xml b/http/restful-ws-jakarta-integration-tests/restful-ws-liberty/pom.xml
index ac516979c..2c2032d57 100644
--- a/http/restful-ws-jakarta-integration-tests/restful-ws-liberty/pom.xml
+++ b/http/restful-ws-jakarta-integration-tests/restful-ws-liberty/pom.xml
@@ -5,7 +5,7 @@
cloudevents-http-restful-ws-jakarta-integration-tests
io.cloudevents
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
../
4.0.0
@@ -15,6 +15,8 @@
war
+ cloudevents.http.restful.ws.jakarta.integration.tests.microprofile
+
9080
9443
diff --git a/http/restful-ws-jakarta-integration-tests/restful-ws-resteasy/pom.xml b/http/restful-ws-jakarta-integration-tests/restful-ws-resteasy/pom.xml
index 95fa033e9..a9f6b1d4c 100644
--- a/http/restful-ws-jakarta-integration-tests/restful-ws-resteasy/pom.xml
+++ b/http/restful-ws-jakarta-integration-tests/restful-ws-resteasy/pom.xml
@@ -3,7 +3,7 @@
cloudevents-http-restful-ws-jakarta-integration-tests
io.cloudevents
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
../
4.0.0
@@ -14,6 +14,7 @@
+ cloudevents.http.restful.ws.jakarta.integration.tests.resteasy
4.3.3
6.0.3.Final
diff --git a/http/restful-ws-jakarta/pom.xml b/http/restful-ws-jakarta/pom.xml
index 5f6367f3d..01e9ba47d 100644
--- a/http/restful-ws-jakarta/pom.xml
+++ b/http/restful-ws-jakarta/pom.xml
@@ -21,7 +21,7 @@
io.cloudevents
cloudevents-parent
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
../../pom.xml
diff --git a/http/restful-ws/pom.xml b/http/restful-ws/pom.xml
index d9ab6ad73..9e6037dad 100644
--- a/http/restful-ws/pom.xml
+++ b/http/restful-ws/pom.xml
@@ -21,7 +21,7 @@
io.cloudevents
cloudevents-parent
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
../../pom.xml
diff --git a/http/vertx/pom.xml b/http/vertx/pom.xml
index 123a41d37..652f17ed4 100644
--- a/http/vertx/pom.xml
+++ b/http/vertx/pom.xml
@@ -22,7 +22,7 @@
io.cloudevents
cloudevents-parent
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
../../pom.xml
@@ -31,7 +31,7 @@
jar
- 4.3.7
+ 4.5.3
io.cloudevents.http.vertx
diff --git a/kafka/pom.xml b/kafka/pom.xml
index 787062c40..c2d914f80 100644
--- a/kafka/pom.xml
+++ b/kafka/pom.xml
@@ -23,7 +23,7 @@
io.cloudevents
cloudevents-parent
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
cloudevents-kafka
diff --git a/pom.xml b/pom.xml
index 766d77045..8e16fa241 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,7 +21,7 @@
io.cloudevents
cloudevents-parent
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
pom
CloudEvents
@@ -169,7 +169,6 @@
https://docs.spring.io/spring-framework/docs/current/javadoc-api/
https://jakarta.ee/specifications/platform/8/apidocs/
https://kafka.apache.org/30/javadoc/
- https://qpid.apache.org/releases/qpid-proton-j-0.33.7/api/
https://fasterxml.github.io/jackson-databind/javadoc/2.10/
8
diff --git a/rocketmq/pom.xml b/rocketmq/pom.xml
index e7d2bad2c..311c8587a 100644
--- a/rocketmq/pom.xml
+++ b/rocketmq/pom.xml
@@ -23,7 +23,7 @@
cloudevents-parent
io.cloudevents
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
cloudevents-rocketmq
diff --git a/spring/pom.xml b/spring/pom.xml
index 038fecb8d..4da3298f6 100644
--- a/spring/pom.xml
+++ b/spring/pom.xml
@@ -23,7 +23,7 @@
io.cloudevents
cloudevents-parent
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
cloudevents-spring
diff --git a/sql/pom.xml b/sql/pom.xml
index fd595dda1..c999f0736 100644
--- a/sql/pom.xml
+++ b/sql/pom.xml
@@ -5,7 +5,7 @@
cloudevents-parent
io.cloudevents
- 3.0.0-SNAPSHOT
+ 4.0.1-SNAPSHOT
4.0.0
diff --git a/sql/src/main/antlr4/imports/CESQLLexer.g4 b/sql/src/main/antlr4/imports/CESQLLexer.g4
index a889c058a..d83124abd 100644
--- a/sql/src/main/antlr4/imports/CESQLLexer.g4
+++ b/sql/src/main/antlr4/imports/CESQLLexer.g4
@@ -70,7 +70,7 @@ FALSE: 'FALSE';
DQUOTED_STRING_LITERAL: DQUOTA_STRING;
SQUOTED_STRING_LITERAL: SQUOTA_STRING;
-INTEGER_LITERAL: INT_DIGIT+;
+INTEGER_LITERAL: ('+' | '-')? INT_DIGIT+;
// Identifiers
diff --git a/sql/src/main/java/io/cloudevents/sql/EvaluationContext.java b/sql/src/main/java/io/cloudevents/sql/EvaluationContext.java
index e1853836f..144d183fb 100644
--- a/sql/src/main/java/io/cloudevents/sql/EvaluationContext.java
+++ b/sql/src/main/java/io/cloudevents/sql/EvaluationContext.java
@@ -18,19 +18,5 @@ public interface EvaluationContext {
*/
String expressionText();
- /**
- * Append a new exception to the evaluation context.
- * This exception will be propagated back in the evaluation result.
- *
- * @param exception exception to append
- */
- void appendException(EvaluationException exception);
-
- /**
- * Append a new exception to the evaluation context.
- * This exception will be propagated back in the evaluation result.
- *
- * @param exceptionFactory exception factory, which will automatically include expression interval and text
- */
- void appendException(EvaluationException.EvaluationExceptionFactory exceptionFactory);
+ ExceptionFactory exceptionFactory();
}
diff --git a/sql/src/main/java/io/cloudevents/sql/EvaluationException.java b/sql/src/main/java/io/cloudevents/sql/EvaluationException.java
index e5ea1f663..fff1d627d 100644
--- a/sql/src/main/java/io/cloudevents/sql/EvaluationException.java
+++ b/sql/src/main/java/io/cloudevents/sql/EvaluationException.java
@@ -20,7 +20,7 @@ public enum ErrorKind {
/**
* An implicit or an explicit casting failed.
*/
- INVALID_CAST,
+ CAST,
/**
* An event attribute was addressed, but missing.
*/
@@ -28,15 +28,19 @@ public enum ErrorKind {
/**
* Error happened while dispatching a function invocation. Reasons may be invalid function name or invalid arguments number.
*/
- FUNCTION_DISPATCH,
+ MISSING_FUNCTION,
/**
* Error happened while executing a function. This usually contains a non null cause.
*/
- FUNCTION_EXECUTION,
+ FUNCTION_EVALUATION,
/**
* Error happened while executing a math operation. Reason may be a division by zero.
*/
- MATH
+ MATH,
+ /**
+ * Any error that does not fall into the other error kinds
+ */
+ GENERIC,
}
private final ErrorKind errorKind;
diff --git a/sql/src/main/java/io/cloudevents/sql/EvaluationRuntime.java b/sql/src/main/java/io/cloudevents/sql/EvaluationRuntime.java
index 296b4f433..d4bdae48b 100644
--- a/sql/src/main/java/io/cloudevents/sql/EvaluationRuntime.java
+++ b/sql/src/main/java/io/cloudevents/sql/EvaluationRuntime.java
@@ -7,35 +7,6 @@
* The evaluation runtime takes care of the function resolution, casting and other core functionalities to execute an expression.
*/
public interface EvaluationRuntime {
-
- /**
- * Check if the cast can be executed from {@code value} to the {@code target} type.
- *
- * @param value the value to cast
- * @param target the type cast target
- * @return false if the cast trigger an error, true otherwise.
- */
- boolean canCast(Object value, Type target);
-
- /**
- * Return the {@code value} casted to the {@code target} type.
- *
- * @param ctx the evaluation context
- * @param value the value to cast
- * @param target the type cast target
- * @return the casted value, if the cast succeeds, otherwise the default value of the target type
- */
- Object cast(EvaluationContext ctx, Object value, Type target);
-
- /**
- * Return the {@code value} casted to the {@code target} type. If fails, this is going to throw an exception without the evaluation context.
- *
- * @param value the value to cast
- * @param target the type cast target
- * @return the casted value, if the cast succeeds, otherwise the default value of the target type
- */
- Object cast(Object value, Type target) throws EvaluationException;
-
/**
* Resolve a {@link Function} starting from its name and the concrete number of arguments.
*
diff --git a/sql/src/main/java/io/cloudevents/sql/ExceptionFactory.java b/sql/src/main/java/io/cloudevents/sql/ExceptionFactory.java
new file mode 100644
index 000000000..e194be836
--- /dev/null
+++ b/sql/src/main/java/io/cloudevents/sql/ExceptionFactory.java
@@ -0,0 +1,51 @@
+package io.cloudevents.sql;
+
+import org.antlr.v4.runtime.RecognitionException;
+import org.antlr.v4.runtime.misc.Interval;
+import org.antlr.v4.runtime.tree.ParseTree;
+
+public interface ExceptionFactory {
+ EvaluationException.EvaluationExceptionFactory invalidCastTarget(Class> from, Class> to);
+
+ EvaluationException.EvaluationExceptionFactory castError(Class> from, Class> to, Throwable cause);
+
+ EvaluationException missingAttribute(Interval interval, String expression, String key);
+
+ EvaluationException cannotDispatchFunction(Interval interval, String expression, String functionName, Throwable cause);
+
+ EvaluationException.EvaluationExceptionFactory functionExecutionError(String functionName, Throwable cause);
+
+ EvaluationException divisionByZero(Interval interval, String expression, Integer dividend);
+
+ EvaluationException mathError(Interval interval, String expression, String errorMessage);
+
+ static ParseException cannotParseValue(ParseTree node, Type target, Throwable cause) {
+ return new ParseException(
+ ParseException.ErrorKind.PARSE_VALUE,
+ node.getSourceInterval(),
+ node.getText(),
+ "Cannot parse to " + target.name() + ": " + cause.getMessage(),
+ cause
+ );
+ }
+
+ static ParseException recognitionError(RecognitionException e, String msg) {
+ return new ParseException(
+ ParseException.ErrorKind.RECOGNITION,
+ new Interval(e.getOffendingToken().getStartIndex(), e.getOffendingToken().getStopIndex()),
+ e.getOffendingToken().getText(),
+ "Cannot parse: " + msg,
+ e
+ );
+ }
+
+ static ParseException cannotEvaluateConstantExpression(EvaluationException exception) {
+ return new ParseException(
+ ParseException.ErrorKind.CONSTANT_EXPRESSION_EVALUATION,
+ exception.getExpressionInterval(),
+ exception.getExpressionText(),
+ "Cannot evaluate the constant expression: " + exception.getExpressionText(),
+ exception
+ );
+ }
+}
diff --git a/sql/src/main/java/io/cloudevents/sql/Function.java b/sql/src/main/java/io/cloudevents/sql/Function.java
index b0f6c6f12..314c5b89e 100644
--- a/sql/src/main/java/io/cloudevents/sql/Function.java
+++ b/sql/src/main/java/io/cloudevents/sql/Function.java
@@ -1,6 +1,7 @@
package io.cloudevents.sql;
import io.cloudevents.CloudEvent;
+import io.cloudevents.sql.impl.runtime.EvaluationResult;
import java.util.List;
@@ -15,9 +16,9 @@ public interface Function extends FunctionSignature {
* @param ctx the evaluation context
* @param evaluationRuntime the evaluation runtime
* @param event the expression input event
- * @param arguments the arguments passed to this function. Note: the arguments are already casted to the appropriate type declared in the signature
+ * @param arguments the arguments passed to this function. Note: the arguments are already cast to the appropriate type declared in the signature
* @return the return value of the function
*/
- Object invoke(EvaluationContext ctx, EvaluationRuntime evaluationRuntime, CloudEvent event, List