diff --git a/cloud/docker-image/pom.xml b/cloud/docker-image/pom.xml
index 47e0d218d3..c8d692ae85 100644
--- a/cloud/docker-image/pom.xml
+++ b/cloud/docker-image/pom.xml
@@ -344,25 +344,25 @@
${project.groupId}
- validator-avro
+ types-avro
${project.version}
runtime
${project.groupId}
- validator-core
+ types-core
${project.version}
runtime
${project.groupId}
- validator-json
+ types-json
${project.version}
runtime
${project.groupId}
- validator-protobuf
+ types-protobuf
${project.version}
runtime
diff --git a/cloud/docker-image/src/main/docker/assembly.xml b/cloud/docker-image/src/main/docker/assembly.xml
index 793a868b4e..f27e5855c0 100644
--- a/cloud/docker-image/src/main/docker/assembly.xml
+++ b/cloud/docker-image/src/main/docker/assembly.xml
@@ -31,7 +31,7 @@
io/aklivity/zilla/exporter-*/**
io/aklivity/zilla/guard-*/**
io/aklivity/zilla/metrics-*/**
- io/aklivity/zilla/validator-*/**
+ io/aklivity/zilla/types-*/**
io/aklivity/zilla/vault-*/**
io/aklivity/zilla/command/**
io/aklivity/zilla/command-*/**
diff --git a/cloud/docker-image/src/main/docker/incubator/zpm.json.template b/cloud/docker-image/src/main/docker/incubator/zpm.json.template
index 79c3395b3d..2b06b1dbdc 100644
--- a/cloud/docker-image/src/main/docker/incubator/zpm.json.template
+++ b/cloud/docker-image/src/main/docker/incubator/zpm.json.template
@@ -48,10 +48,10 @@
"io.aklivity.zilla:metrics-stream",
"io.aklivity.zilla:metrics-http",
"io.aklivity.zilla:metrics-grpc",
- "io.aklivity.zilla:validator-avro",
- "io.aklivity.zilla:validator-core",
- "io.aklivity.zilla:validator-json",
- "io.aklivity.zilla:validator-protobuf",
+ "io.aklivity.zilla:types-avro",
+ "io.aklivity.zilla:types-core",
+ "io.aklivity.zilla:types-json",
+ "io.aklivity.zilla:types-protobuf",
"io.aklivity.zilla:vault-filesystem",
"org.slf4j:slf4j-simple",
"org.antlr:antlr4-runtime"
diff --git a/incubator/catalog-inline/src/test/java/io/aklivity/zilla/runtime/catalog/inline/internal/InlineIT.java b/incubator/catalog-inline/src/test/java/io/aklivity/zilla/runtime/catalog/inline/internal/InlineIT.java
index 9dd8030026..0a3e4f29a8 100644
--- a/incubator/catalog-inline/src/test/java/io/aklivity/zilla/runtime/catalog/inline/internal/InlineIT.java
+++ b/incubator/catalog-inline/src/test/java/io/aklivity/zilla/runtime/catalog/inline/internal/InlineIT.java
@@ -28,7 +28,7 @@
import io.aklivity.zilla.runtime.catalog.inline.config.InlineOptionsConfig;
import io.aklivity.zilla.runtime.catalog.inline.config.InlineSchemaConfig;
import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
-import io.aklivity.zilla.runtime.engine.validator.function.ValueConsumer;
+import io.aklivity.zilla.runtime.engine.converter.function.ValueConsumer;
public class InlineIT
{
diff --git a/incubator/catalog-schema-registry/src/main/java/io/aklivity/zilla/runtime/catalog/schema/registry/internal/SchemaRegistryCatalogHandler.java b/incubator/catalog-schema-registry/src/main/java/io/aklivity/zilla/runtime/catalog/schema/registry/internal/SchemaRegistryCatalogHandler.java
index e7235a7d29..577fb1565e 100644
--- a/incubator/catalog-schema-registry/src/main/java/io/aklivity/zilla/runtime/catalog/schema/registry/internal/SchemaRegistryCatalogHandler.java
+++ b/incubator/catalog-schema-registry/src/main/java/io/aklivity/zilla/runtime/catalog/schema/registry/internal/SchemaRegistryCatalogHandler.java
@@ -31,7 +31,7 @@
import io.aklivity.zilla.runtime.catalog.schema.registry.internal.serializer.RegisterSchemaRequest;
import io.aklivity.zilla.runtime.catalog.schema.registry.internal.types.SchemaRegistryPrefixFW;
import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
-import io.aklivity.zilla.runtime.engine.validator.function.ValueConsumer;
+import io.aklivity.zilla.runtime.engine.converter.function.ValueConsumer;
public class SchemaRegistryCatalogHandler implements CatalogHandler
{
diff --git a/incubator/catalog-schema-registry/src/test/java/io/aklivity/zilla/runtime/catalog/schema/registry/internal/SchemaRegistryIT.java b/incubator/catalog-schema-registry/src/test/java/io/aklivity/zilla/runtime/catalog/schema/registry/internal/SchemaRegistryIT.java
index 5f29430080..62d9390439 100644
--- a/incubator/catalog-schema-registry/src/test/java/io/aklivity/zilla/runtime/catalog/schema/registry/internal/SchemaRegistryIT.java
+++ b/incubator/catalog-schema-registry/src/test/java/io/aklivity/zilla/runtime/catalog/schema/registry/internal/SchemaRegistryIT.java
@@ -36,7 +36,7 @@
import io.aklivity.zilla.runtime.catalog.schema.registry.internal.config.SchemaRegistryOptionsConfig;
import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
-import io.aklivity.zilla.runtime.engine.validator.function.ValueConsumer;
+import io.aklivity.zilla.runtime.engine.converter.function.ValueConsumer;
public class SchemaRegistryIT
{
diff --git a/incubator/command-generate/pom.xml b/incubator/command-generate/pom.xml
index 24b216abdd..56eaf71660 100644
--- a/incubator/command-generate/pom.xml
+++ b/incubator/command-generate/pom.xml
@@ -87,25 +87,25 @@
io.aklivity.zilla
- validator-avro
+ types-avro
${project.version}
provided
io.aklivity.zilla
- validator-core
+ types-core
${project.version}
provided
io.aklivity.zilla
- validator-json
+ types-json
${project.version}
provided
io.aklivity.zilla
- validator-protobuf
+ types-protobuf
${project.version}
provided
diff --git a/incubator/command-generate/src/main/java/io/aklivity/zilla/runtime/command/generate/internal/airline/ConfigGenerator.java b/incubator/command-generate/src/main/java/io/aklivity/zilla/runtime/command/generate/internal/airline/ConfigGenerator.java
index ea664debf1..71a3e19ca2 100644
--- a/incubator/command-generate/src/main/java/io/aklivity/zilla/runtime/command/generate/internal/airline/ConfigGenerator.java
+++ b/incubator/command-generate/src/main/java/io/aklivity/zilla/runtime/command/generate/internal/airline/ConfigGenerator.java
@@ -28,9 +28,9 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLMapper;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
-import io.aklivity.zilla.runtime.validator.core.config.IntegerValidatorConfig;
-import io.aklivity.zilla.runtime.validator.core.config.StringValidatorConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
+import io.aklivity.zilla.runtime.types.core.config.IntegerConverterConfig;
+import io.aklivity.zilla.runtime.types.core.config.StringConverterConfig;
public abstract class ConfigGenerator
{
@@ -40,9 +40,9 @@ public abstract class ConfigGenerator
protected static final String VERSION_LATEST = "latest";
protected static final Pattern JSON_CONTENT_TYPE = Pattern.compile("^application/(?:.+\\+)?json$");
- protected final Map validators = Map.of(
- "string", StringValidatorConfig.builder().build(),
- "integer", IntegerValidatorConfig.builder().build()
+ protected final Map converters = Map.of(
+ "string", StringConverterConfig.builder().build(),
+ "integer", IntegerConverterConfig.builder().build()
);
protected final Matcher jsonContentType = JSON_CONTENT_TYPE.matcher("");
diff --git a/incubator/command-generate/src/main/java/io/aklivity/zilla/runtime/command/generate/internal/asyncapi/http/proxy/AsyncApiHttpProxyConfigGenerator.java b/incubator/command-generate/src/main/java/io/aklivity/zilla/runtime/command/generate/internal/asyncapi/http/proxy/AsyncApiHttpProxyConfigGenerator.java
index b5056a0896..19052d75b0 100644
--- a/incubator/command-generate/src/main/java/io/aklivity/zilla/runtime/command/generate/internal/asyncapi/http/proxy/AsyncApiHttpProxyConfigGenerator.java
+++ b/incubator/command-generate/src/main/java/io/aklivity/zilla/runtime/command/generate/internal/asyncapi/http/proxy/AsyncApiHttpProxyConfigGenerator.java
@@ -53,13 +53,13 @@
import io.aklivity.zilla.runtime.engine.config.BindingConfigBuilder;
import io.aklivity.zilla.runtime.engine.config.CatalogedConfigBuilder;
import io.aklivity.zilla.runtime.engine.config.ConfigWriter;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
import io.aklivity.zilla.runtime.engine.config.GuardedConfigBuilder;
import io.aklivity.zilla.runtime.engine.config.NamespaceConfig;
import io.aklivity.zilla.runtime.engine.config.NamespaceConfigBuilder;
import io.aklivity.zilla.runtime.engine.config.RouteConfigBuilder;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
import io.aklivity.zilla.runtime.guard.jwt.config.JwtOptionsConfig;
-import io.aklivity.zilla.runtime.validator.json.config.JsonValidatorConfig;
+import io.aklivity.zilla.runtime.types.json.config.JsonConverterConfig;
import io.aklivity.zilla.runtime.vault.filesystem.config.FileSystemOptionsConfig;
public class AsyncApiHttpProxyConfigGenerator extends AsyncApiConfigGenerator
@@ -355,7 +355,7 @@ private HttpRequestConfigBuilder injectContent(
if (hasJsonContentType())
{
request.
- content(JsonValidatorConfig::builder)
+ content(JsonConverterConfig::builder)
.catalog()
.name(INLINE_CATALOG_NAME)
.inject(catalog -> injectSchemas(catalog, messages))
@@ -394,13 +394,13 @@ private HttpRequestConfigBuilder injectPathParams(
Parameter parameter = parameters.get(name);
if (parameter.schema != null && parameter.schema.type != null)
{
- ValidatorConfig validator = validators.get(parameter.schema.type);
- if (validator != null)
+ ConverterConfig converter = converters.get(parameter.schema.type);
+ if (converter != null)
{
request
.pathParam()
.name(name)
- .validator(validator)
+ .converter(converter)
.build();
}
}
diff --git a/incubator/command-generate/src/main/java/io/aklivity/zilla/runtime/command/generate/internal/asyncapi/mqtt/proxy/AsyncApiMqttProxyConfigGenerator.java b/incubator/command-generate/src/main/java/io/aklivity/zilla/runtime/command/generate/internal/asyncapi/mqtt/proxy/AsyncApiMqttProxyConfigGenerator.java
index 9ae966d666..d058ddf3a7 100644
--- a/incubator/command-generate/src/main/java/io/aklivity/zilla/runtime/command/generate/internal/asyncapi/mqtt/proxy/AsyncApiMqttProxyConfigGenerator.java
+++ b/incubator/command-generate/src/main/java/io/aklivity/zilla/runtime/command/generate/internal/asyncapi/mqtt/proxy/AsyncApiMqttProxyConfigGenerator.java
@@ -46,7 +46,7 @@
import io.aklivity.zilla.runtime.engine.config.ConfigWriter;
import io.aklivity.zilla.runtime.engine.config.NamespaceConfig;
import io.aklivity.zilla.runtime.engine.config.NamespaceConfigBuilder;
-import io.aklivity.zilla.runtime.validator.json.config.JsonValidatorConfig;
+import io.aklivity.zilla.runtime.types.json.config.JsonConverterConfig;
import io.aklivity.zilla.runtime.vault.filesystem.config.FileSystemOptionsConfig;
public class AsyncApiMqttProxyConfigGenerator extends AsyncApiConfigGenerator
@@ -248,7 +248,7 @@ private BindingConfigBuilder> injectMqtt
.options(MqttOptionsConfig::builder)
.topic()
.name(topic)
- .content(JsonValidatorConfig::builder)
+ .content(JsonConverterConfig::builder)
.catalog()
.name(INLINE_CATALOG_NAME)
.inject(cataloged -> injectJsonSchemas(cataloged, messages, APPLICATION_JSON))
diff --git a/incubator/command-generate/src/main/java/io/aklivity/zilla/runtime/command/generate/internal/openapi/http/proxy/OpenApiHttpProxyConfigGenerator.java b/incubator/command-generate/src/main/java/io/aklivity/zilla/runtime/command/generate/internal/openapi/http/proxy/OpenApiHttpProxyConfigGenerator.java
index 37a988b29c..f49521d7cc 100644
--- a/incubator/command-generate/src/main/java/io/aklivity/zilla/runtime/command/generate/internal/openapi/http/proxy/OpenApiHttpProxyConfigGenerator.java
+++ b/incubator/command-generate/src/main/java/io/aklivity/zilla/runtime/command/generate/internal/openapi/http/proxy/OpenApiHttpProxyConfigGenerator.java
@@ -50,13 +50,13 @@
import io.aklivity.zilla.runtime.command.generate.internal.openapi.view.ServerView;
import io.aklivity.zilla.runtime.engine.config.BindingConfigBuilder;
import io.aklivity.zilla.runtime.engine.config.ConfigWriter;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
import io.aklivity.zilla.runtime.engine.config.GuardedConfigBuilder;
import io.aklivity.zilla.runtime.engine.config.NamespaceConfig;
import io.aklivity.zilla.runtime.engine.config.NamespaceConfigBuilder;
import io.aklivity.zilla.runtime.engine.config.RouteConfigBuilder;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
import io.aklivity.zilla.runtime.guard.jwt.config.JwtOptionsConfig;
-import io.aklivity.zilla.runtime.validator.json.config.JsonValidatorConfig;
+import io.aklivity.zilla.runtime.types.json.config.JsonConverterConfig;
import io.aklivity.zilla.runtime.vault.filesystem.config.FileSystemOptionsConfig;
public class OpenApiHttpProxyConfigGenerator extends OpenApiConfigGenerator
@@ -326,7 +326,7 @@ private HttpRequestConfigBuilder injectContent(
if (schema != null)
{
request.
- content(JsonValidatorConfig::builder)
+ content(JsonConverterConfig::builder)
.catalog()
.name(INLINE_CATALOG_NAME)
.schema()
@@ -349,8 +349,8 @@ private HttpRequestConfigBuilder injectParams(
{
if (parameter.schema != null && parameter.schema.type != null)
{
- ValidatorConfig validator = validators.get(parameter.schema.type);
- if (validator != null)
+ ConverterConfig converter = converters.get(parameter.schema.type);
+ if (converter != null)
{
switch (parameter.in)
{
@@ -358,21 +358,21 @@ private HttpRequestConfigBuilder injectParams(
request.
pathParam()
.name(parameter.name)
- .validator(validator)
+ .converter(converter)
.build();
break;
case "query":
request.
queryParam()
.name(parameter.name)
- .validator(validator)
+ .converter(converter)
.build();
break;
case "header":
request.
header()
.name(parameter.name)
- .validator(validator)
+ .converter(converter)
.build();
break;
}
diff --git a/incubator/command-generate/src/main/moditect/module-info.java b/incubator/command-generate/src/main/moditect/module-info.java
index 734ccaa7d5..b10ec9f543 100644
--- a/incubator/command-generate/src/main/moditect/module-info.java
+++ b/incubator/command-generate/src/main/moditect/module-info.java
@@ -23,10 +23,10 @@
requires io.aklivity.zilla.runtime.catalog.inline;
requires io.aklivity.zilla.runtime.guard.jwt;
requires io.aklivity.zilla.runtime.vault.filesystem;
- requires io.aklivity.zilla.runtime.validator.avro;
- requires io.aklivity.zilla.runtime.validator.core;
- requires io.aklivity.zilla.runtime.validator.json;
- requires io.aklivity.zilla.runtime.validator.protobuf;
+ requires io.aklivity.zilla.runtime.types.avro;
+ requires io.aklivity.zilla.runtime.types.core;
+ requires io.aklivity.zilla.runtime.types.json;
+ requires io.aklivity.zilla.runtime.types.protobuf;
requires com.fasterxml.jackson.dataformat.yaml;
requires com.fasterxml.jackson.databind;
diff --git a/incubator/pom.xml b/incubator/pom.xml
index 825da641f8..1e5132139b 100644
--- a/incubator/pom.xml
+++ b/incubator/pom.xml
@@ -21,10 +21,10 @@
catalog-inline.spec
catalog-schema-registry.spec
exporter-otlp.spec
- validator-avro.spec
- validator-core.spec
- validator-json.spec
- validator-protobuf.spec
+ types-avro.spec
+ types-core.spec
+ types-json.spec
+ types-protobuf.spec
binding-amqp
@@ -38,10 +38,10 @@
exporter-otlp
- validator-avro
- validator-core
- validator-json
- validator-protobuf
+ types-avro
+ types-core
+ types-json
+ types-protobuf
@@ -88,22 +88,22 @@
${project.groupId}
- validator-avro
+ types-avro
${project.version}
${project.groupId}
- validator-core
+ types-core
${project.version}
${project.groupId}
- validator-json
+ types-json
${project.version}
${project.groupId}
- validator-protobuf
+ types-protobuf
${project.version}
diff --git a/incubator/validator-avro.spec/COPYRIGHT b/incubator/types-avro.spec/COPYRIGHT
similarity index 100%
rename from incubator/validator-avro.spec/COPYRIGHT
rename to incubator/types-avro.spec/COPYRIGHT
diff --git a/incubator/validator-avro.spec/LICENSE b/incubator/types-avro.spec/LICENSE
similarity index 100%
rename from incubator/validator-avro.spec/LICENSE
rename to incubator/types-avro.spec/LICENSE
diff --git a/incubator/validator-avro.spec/NOTICE b/incubator/types-avro.spec/NOTICE
similarity index 100%
rename from incubator/validator-avro.spec/NOTICE
rename to incubator/types-avro.spec/NOTICE
diff --git a/incubator/validator-avro.spec/NOTICE.template b/incubator/types-avro.spec/NOTICE.template
similarity index 100%
rename from incubator/validator-avro.spec/NOTICE.template
rename to incubator/types-avro.spec/NOTICE.template
diff --git a/incubator/validator-avro.spec/mvnw b/incubator/types-avro.spec/mvnw
similarity index 100%
rename from incubator/validator-avro.spec/mvnw
rename to incubator/types-avro.spec/mvnw
diff --git a/incubator/validator-avro.spec/mvnw.cmd b/incubator/types-avro.spec/mvnw.cmd
similarity index 100%
rename from incubator/validator-avro.spec/mvnw.cmd
rename to incubator/types-avro.spec/mvnw.cmd
diff --git a/incubator/validator-avro.spec/pom.xml b/incubator/types-avro.spec/pom.xml
similarity index 94%
rename from incubator/validator-avro.spec/pom.xml
rename to incubator/types-avro.spec/pom.xml
index 3511201d78..d0e2b068bb 100644
--- a/incubator/validator-avro.spec/pom.xml
+++ b/incubator/types-avro.spec/pom.xml
@@ -12,8 +12,8 @@
../pom.xml
- validator-avro.spec
- zilla::incubator::validator-avro.spec
+ types-avro.spec
+ zilla::incubator::types-avro.spec
@@ -79,7 +79,7 @@
${project.version}
core
- io.aklivity.zilla.specs.validator.avro.internal.types
+ io.aklivity.zilla.specs.types.avro.internal.types
@@ -135,7 +135,7 @@
jacoco-maven-plugin
- io/aklivity/zilla/specs/validator/avro/internal/types/**/*.class
+ io/aklivity/zilla/specs/types/avro/internal/types/**/*.class
diff --git a/incubator/validator-avro.spec/src/main/moditect/module-info.java b/incubator/types-avro.spec/src/main/moditect/module-info.java
similarity index 92%
rename from incubator/validator-avro.spec/src/main/moditect/module-info.java
rename to incubator/types-avro.spec/src/main/moditect/module-info.java
index b289801500..f5af323186 100644
--- a/incubator/validator-avro.spec/src/main/moditect/module-info.java
+++ b/incubator/types-avro.spec/src/main/moditect/module-info.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-open module io.aklivity.zilla.specs.validator.avro
+open module io.aklivity.zilla.specs.types.avro
{
requires transitive io.aklivity.zilla.specs.engine;
}
diff --git a/incubator/validator-avro.spec/src/main/scripts/io/aklivity/zilla/specs/validator/avro/config/validator.yaml b/incubator/types-avro.spec/src/main/scripts/io/aklivity/zilla/specs/types/avro/config/converter.yaml
similarity index 100%
rename from incubator/validator-avro.spec/src/main/scripts/io/aklivity/zilla/specs/validator/avro/config/validator.yaml
rename to incubator/types-avro.spec/src/main/scripts/io/aklivity/zilla/specs/types/avro/config/converter.yaml
diff --git a/incubator/validator-avro.spec/src/main/scripts/io/aklivity/zilla/specs/validator/avro/schema/avro.schema.patch.json b/incubator/types-avro.spec/src/main/scripts/io/aklivity/zilla/specs/types/avro/schema/avro.schema.patch.json
similarity index 98%
rename from incubator/validator-avro.spec/src/main/scripts/io/aklivity/zilla/specs/validator/avro/schema/avro.schema.patch.json
rename to incubator/types-avro.spec/src/main/scripts/io/aklivity/zilla/specs/types/avro/schema/avro.schema.patch.json
index ffa3ce0b28..e9a6c3be00 100644
--- a/incubator/validator-avro.spec/src/main/scripts/io/aklivity/zilla/specs/validator/avro/schema/avro.schema.patch.json
+++ b/incubator/types-avro.spec/src/main/scripts/io/aklivity/zilla/specs/types/avro/schema/avro.schema.patch.json
@@ -1,12 +1,12 @@
[
{
"op": "add",
- "path": "/$defs/validator/types/enum/-",
+ "path": "/$defs/converter/types/enum/-",
"value": "avro"
},
{
"op": "add",
- "path": "/$defs/validator/allOf/-",
+ "path": "/$defs/converter/allOf/-",
"value":
{
"if":
diff --git a/incubator/validator-json.spec/src/test/java/io/aklivity/zilla/specs/validator/json/config/SchemaTest.java b/incubator/types-avro.spec/src/test/java/io/aklivity/zilla/specs/types/avro/config/SchemaTest.java
similarity index 81%
rename from incubator/validator-json.spec/src/test/java/io/aklivity/zilla/specs/validator/json/config/SchemaTest.java
rename to incubator/types-avro.spec/src/test/java/io/aklivity/zilla/specs/types/avro/config/SchemaTest.java
index 34c0bcdfc4..f58f583cdd 100644
--- a/incubator/validator-json.spec/src/test/java/io/aklivity/zilla/specs/validator/json/config/SchemaTest.java
+++ b/incubator/types-avro.spec/src/test/java/io/aklivity/zilla/specs/types/avro/config/SchemaTest.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.specs.validator.json.config;
+package io.aklivity.zilla.specs.types.avro.config;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.not;
@@ -31,13 +31,13 @@ public class SchemaTest
public final ConfigSchemaRule schema = new ConfigSchemaRule()
.schemaPatch("io/aklivity/zilla/specs/engine/schema/binding/test.schema.patch.json")
.schemaPatch("io/aklivity/zilla/specs/engine/schema/catalog/test.schema.patch.json")
- .schemaPatch("io/aklivity/zilla/specs/validator/json/schema/json.schema.patch.json")
- .configurationRoot("io/aklivity/zilla/specs/validator/json/config");
+ .schemaPatch("io/aklivity/zilla/specs/types/avro/schema/avro.schema.patch.json")
+ .configurationRoot("io/aklivity/zilla/specs/types/avro/config");
@Test
public void shouldValidateCatalog()
{
- JsonObject config = schema.validate("validator.yaml");
+ JsonObject config = schema.validate("converter.yaml");
assertThat(config, not(nullValue()));
}
diff --git a/incubator/validator-avro/COPYRIGHT b/incubator/types-avro/COPYRIGHT
similarity index 100%
rename from incubator/validator-avro/COPYRIGHT
rename to incubator/types-avro/COPYRIGHT
diff --git a/incubator/validator-avro/LICENSE b/incubator/types-avro/LICENSE
similarity index 100%
rename from incubator/validator-avro/LICENSE
rename to incubator/types-avro/LICENSE
diff --git a/incubator/validator-avro/NOTICE b/incubator/types-avro/NOTICE
similarity index 100%
rename from incubator/validator-avro/NOTICE
rename to incubator/types-avro/NOTICE
diff --git a/incubator/validator-avro/NOTICE.template b/incubator/types-avro/NOTICE.template
similarity index 100%
rename from incubator/validator-avro/NOTICE.template
rename to incubator/types-avro/NOTICE.template
diff --git a/incubator/validator-avro/mvnw b/incubator/types-avro/mvnw
similarity index 100%
rename from incubator/validator-avro/mvnw
rename to incubator/types-avro/mvnw
diff --git a/incubator/validator-avro/mvnw.cmd b/incubator/types-avro/mvnw.cmd
similarity index 100%
rename from incubator/validator-avro/mvnw.cmd
rename to incubator/types-avro/mvnw.cmd
diff --git a/incubator/validator-avro/pom.xml b/incubator/types-avro/pom.xml
similarity index 89%
rename from incubator/validator-avro/pom.xml
rename to incubator/types-avro/pom.xml
index 171f5bdd8c..ec8ee387ef 100644
--- a/incubator/validator-avro/pom.xml
+++ b/incubator/types-avro/pom.xml
@@ -12,8 +12,8 @@
../pom.xml
- validator-avro
- zilla::incubator::validator-avro
+ types-avro
+ zilla::incubator::types-avro
@@ -33,7 +33,7 @@
${project.groupId}
- validator-avro.spec
+ types-avro.spec
${project.version}
provided
@@ -83,7 +83,7 @@
${project.version}
core
- io.aklivity.zilla.runtime.validator.avro.internal.types
+ io.aklivity.zilla.runtime.types.avro.internal.types
@@ -120,16 +120,16 @@
${project.groupId}
- validator-avro.spec
+ types-avro.spec
- ^\Qio/aklivity/zilla/specs/validator/avro/\E
- io/aklivity/zilla/runtime/validator/avro/
+ ^\Qio/aklivity/zilla/specs/types/avro/\E
+ io/aklivity/zilla/runtime/types/avro/
- io/aklivity/zilla/specs/validator/avro/schema/avro.schema.patch.json
+ io/aklivity/zilla/specs/types/avro/schema/avro.schema.patch.json
${project.build.directory}/classes
@@ -153,7 +153,7 @@
org.apache.avro
- io.aklivity.zilla.runtime.validator.avro.internal.avro
+ io.aklivity.zilla.runtime.types.avro.internal.avro
true
@@ -187,7 +187,7 @@
jacoco-maven-plugin
- io/aklivity/zilla/runtime/validator/avro/internal/types/**/*.class
+ io/aklivity/zilla/runtime/types/avro/internal/types/**/*.class
diff --git a/incubator/validator-avro/src/main/java/io/aklivity/zilla/runtime/validator/avro/AvroValidator.java b/incubator/types-avro/src/main/java/io/aklivity/zilla/runtime/types/avro/AvroConverter.java
similarity index 96%
rename from incubator/validator-avro/src/main/java/io/aklivity/zilla/runtime/validator/avro/AvroValidator.java
rename to incubator/types-avro/src/main/java/io/aklivity/zilla/runtime/types/avro/AvroConverter.java
index 153ed8418b..9368ccb8e6 100644
--- a/incubator/validator-avro/src/main/java/io/aklivity/zilla/runtime/validator/avro/AvroValidator.java
+++ b/incubator/types-avro/src/main/java/io/aklivity/zilla/runtime/types/avro/AvroConverter.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.avro;
+package io.aklivity.zilla.runtime.types.avro;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -41,9 +41,9 @@
import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
import io.aklivity.zilla.runtime.engine.config.CatalogedConfig;
import io.aklivity.zilla.runtime.engine.config.SchemaConfig;
-import io.aklivity.zilla.runtime.validator.avro.config.AvroValidatorConfig;
+import io.aklivity.zilla.runtime.types.avro.config.AvroConverterConfig;
-public abstract class AvroValidator
+public abstract class AvroConverter
{
protected static final String FORMAT_JSON = "json";
@@ -68,8 +68,8 @@ public abstract class AvroValidator
private final Int2ObjectCache records;
private final Int2IntHashMap paddings;
- protected AvroValidator(
- AvroValidatorConfig config,
+ protected AvroConverter(
+ AvroConverterConfig config,
LongFunction supplyCatalog)
{
this.decoderFactory = DecoderFactory.get();
diff --git a/incubator/types-avro/src/main/java/io/aklivity/zilla/runtime/types/avro/AvroConverterFactory.java b/incubator/types-avro/src/main/java/io/aklivity/zilla/runtime/types/avro/AvroConverterFactory.java
new file mode 100644
index 0000000000..f0fd78ecfb
--- /dev/null
+++ b/incubator/types-avro/src/main/java/io/aklivity/zilla/runtime/types/avro/AvroConverterFactory.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2021-2023 Aklivity Inc
+ *
+ * Licensed under the Aklivity Community License (the "License"); you may not use
+ * this file except in compliance with the License. You may obtain a copy of the
+ * License at
+ *
+ * https://www.aklivity.io/aklivity-community-license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package io.aklivity.zilla.runtime.types.avro;
+
+import java.net.URL;
+import java.util.function.LongFunction;
+
+import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
+import io.aklivity.zilla.runtime.engine.converter.Converter;
+import io.aklivity.zilla.runtime.engine.converter.ConverterFactorySpi;
+import io.aklivity.zilla.runtime.types.avro.config.AvroConverterConfig;
+
+public final class AvroConverterFactory implements ConverterFactorySpi
+{
+ @Override
+ public String type()
+ {
+ return "avro";
+ }
+
+ public URL schema()
+ {
+ return getClass().getResource("schema/avro.schema.patch.json");
+ }
+
+ @Override
+ public Converter createReader(
+ ConverterConfig config,
+ LongFunction supplyCatalog)
+ {
+ return new AvroReadConverter(AvroConverterConfig.class.cast(config), supplyCatalog);
+ }
+
+ @Override
+ public Converter createWriter(
+ ConverterConfig config,
+ LongFunction supplyCatalog)
+ {
+ return new AvroWriteConverter(AvroConverterConfig.class.cast(config), supplyCatalog);
+ }
+}
diff --git a/incubator/validator-avro/src/main/java/io/aklivity/zilla/runtime/validator/avro/AvroReadValidator.java b/incubator/types-avro/src/main/java/io/aklivity/zilla/runtime/types/avro/AvroReadConverter.java
similarity index 78%
rename from incubator/validator-avro/src/main/java/io/aklivity/zilla/runtime/validator/avro/AvroReadValidator.java
rename to incubator/types-avro/src/main/java/io/aklivity/zilla/runtime/types/avro/AvroReadConverter.java
index 1b00ca9bb8..55a2eaa80c 100644
--- a/incubator/validator-avro/src/main/java/io/aklivity/zilla/runtime/validator/avro/AvroReadValidator.java
+++ b/incubator/types-avro/src/main/java/io/aklivity/zilla/runtime/types/avro/AvroReadConverter.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.avro;
+package io.aklivity.zilla.runtime.types.avro;
import static io.aklivity.zilla.runtime.engine.catalog.CatalogHandler.NO_SCHEMA_ID;
@@ -28,16 +28,14 @@
import org.apache.avro.io.JsonEncoder;
import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
-import io.aklivity.zilla.runtime.engine.validator.FragmentValidator;
-import io.aklivity.zilla.runtime.engine.validator.ValueValidator;
-import io.aklivity.zilla.runtime.engine.validator.function.FragmentConsumer;
-import io.aklivity.zilla.runtime.engine.validator.function.ValueConsumer;
-import io.aklivity.zilla.runtime.validator.avro.config.AvroValidatorConfig;
+import io.aklivity.zilla.runtime.engine.converter.Converter;
+import io.aklivity.zilla.runtime.engine.converter.function.ValueConsumer;
+import io.aklivity.zilla.runtime.types.avro.config.AvroConverterConfig;
-public class AvroReadValidator extends AvroValidator implements ValueValidator, FragmentValidator
+public class AvroReadConverter extends AvroConverter implements Converter
{
- public AvroReadValidator(
- AvroValidatorConfig config,
+ public AvroReadConverter(
+ AvroConverterConfig config,
LongFunction supplyCatalog)
{
super(config, supplyCatalog);
@@ -71,29 +69,7 @@ public int padding(
}
@Override
- public int validate(
- DirectBuffer data,
- int index,
- int length,
- ValueConsumer next)
- {
- return validateComplete(data, index, length, next);
- }
-
- @Override
- public int validate(
- int flags,
- DirectBuffer data,
- int index,
- int length,
- FragmentConsumer next)
- {
- return (flags & FLAGS_FIN) != 0x00
- ? validateComplete(data, index, length, (b, i, l) -> next.accept(FLAGS_COMPLETE, b, i, l))
- : 0;
- }
-
- private int validateComplete(
+ public int convert(
DirectBuffer data,
int index,
int length,
diff --git a/incubator/validator-avro/src/main/java/io/aklivity/zilla/runtime/validator/avro/AvroWriteValidator.java b/incubator/types-avro/src/main/java/io/aklivity/zilla/runtime/types/avro/AvroWriteConverter.java
similarity index 72%
rename from incubator/validator-avro/src/main/java/io/aklivity/zilla/runtime/validator/avro/AvroWriteValidator.java
rename to incubator/types-avro/src/main/java/io/aklivity/zilla/runtime/types/avro/AvroWriteConverter.java
index 810552942a..a2b72a94ce 100644
--- a/incubator/validator-avro/src/main/java/io/aklivity/zilla/runtime/validator/avro/AvroWriteValidator.java
+++ b/incubator/types-avro/src/main/java/io/aklivity/zilla/runtime/types/avro/AvroWriteConverter.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.avro;
+package io.aklivity.zilla.runtime.types.avro;
import java.io.IOException;
import java.util.function.LongFunction;
@@ -25,16 +25,14 @@
import org.apache.avro.generic.GenericRecord;
import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
-import io.aklivity.zilla.runtime.engine.validator.FragmentValidator;
-import io.aklivity.zilla.runtime.engine.validator.ValueValidator;
-import io.aklivity.zilla.runtime.engine.validator.function.FragmentConsumer;
-import io.aklivity.zilla.runtime.engine.validator.function.ValueConsumer;
-import io.aklivity.zilla.runtime.validator.avro.config.AvroValidatorConfig;
+import io.aklivity.zilla.runtime.engine.converter.Converter;
+import io.aklivity.zilla.runtime.engine.converter.function.ValueConsumer;
+import io.aklivity.zilla.runtime.types.avro.config.AvroConverterConfig;
-public class AvroWriteValidator extends AvroValidator implements ValueValidator, FragmentValidator
+public class AvroWriteConverter extends AvroConverter implements Converter
{
- public AvroWriteValidator(
- AvroValidatorConfig config,
+ public AvroWriteConverter(
+ AvroConverterConfig config,
LongFunction supplyCatalog)
{
super(config, supplyCatalog);
@@ -50,29 +48,7 @@ public int padding(
}
@Override
- public int validate(
- DirectBuffer data,
- int index,
- int length,
- ValueConsumer next)
- {
- return validateComplete(data, index, length, next);
- }
-
- @Override
- public int validate(
- int flags,
- DirectBuffer data,
- int index,
- int length,
- FragmentConsumer next)
- {
- return (flags & FLAGS_FIN) != 0x00
- ? validateComplete(data, index, length, (b, i, l) -> next.accept(FLAGS_COMPLETE, b, i, l))
- : 0;
- }
-
- private int validateComplete(
+ public int convert(
DirectBuffer data,
int index,
int length,
diff --git a/incubator/validator-avro/src/main/java/io/aklivity/zilla/runtime/validator/avro/config/AvroValidatorConfig.java b/incubator/types-avro/src/main/java/io/aklivity/zilla/runtime/types/avro/config/AvroConverterConfig.java
similarity index 66%
rename from incubator/validator-avro/src/main/java/io/aklivity/zilla/runtime/validator/avro/config/AvroValidatorConfig.java
rename to incubator/types-avro/src/main/java/io/aklivity/zilla/runtime/types/avro/config/AvroConverterConfig.java
index d90ae8969b..90987da1a1 100644
--- a/incubator/validator-avro/src/main/java/io/aklivity/zilla/runtime/validator/avro/config/AvroValidatorConfig.java
+++ b/incubator/types-avro/src/main/java/io/aklivity/zilla/runtime/types/avro/config/AvroConverterConfig.java
@@ -12,20 +12,20 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.avro.config;
+package io.aklivity.zilla.runtime.types.avro.config;
import java.util.List;
import java.util.function.Function;
import io.aklivity.zilla.runtime.engine.config.CatalogedConfig;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
-public final class AvroValidatorConfig extends ValidatorConfig
+public final class AvroConverterConfig extends ConverterConfig
{
public final String subject;
public final String format;
- public AvroValidatorConfig(
+ public AvroConverterConfig(
List cataloged,
String subject,
String format)
@@ -35,14 +35,14 @@ public AvroValidatorConfig(
this.format = format;
}
- public static AvroValidatorConfigBuilder builder(
- Function mapper)
+ public static AvroConverterConfigBuilder builder(
+ Function mapper)
{
- return new AvroValidatorConfigBuilder<>(mapper::apply);
+ return new AvroConverterConfigBuilder<>(mapper::apply);
}
- public static AvroValidatorConfigBuilder builder()
+ public static AvroConverterConfigBuilder builder()
{
- return new AvroValidatorConfigBuilder<>(AvroValidatorConfig.class::cast);
+ return new AvroConverterConfigBuilder<>(AvroConverterConfig.class::cast);
}
}
diff --git a/incubator/validator-avro/src/main/java/io/aklivity/zilla/runtime/validator/avro/config/AvroValidatorConfigAdapter.java b/incubator/types-avro/src/main/java/io/aklivity/zilla/runtime/types/avro/config/AvroConverterConfigAdapter.java
similarity index 76%
rename from incubator/validator-avro/src/main/java/io/aklivity/zilla/runtime/validator/avro/config/AvroValidatorConfigAdapter.java
rename to incubator/types-avro/src/main/java/io/aklivity/zilla/runtime/types/avro/config/AvroConverterConfigAdapter.java
index 465c45813a..7eadb807d8 100644
--- a/incubator/validator-avro/src/main/java/io/aklivity/zilla/runtime/validator/avro/config/AvroValidatorConfigAdapter.java
+++ b/incubator/types-avro/src/main/java/io/aklivity/zilla/runtime/types/avro/config/AvroConverterConfigAdapter.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.avro.config;
+package io.aklivity.zilla.runtime.types.avro.config;
import java.util.LinkedList;
import java.util.List;
@@ -26,12 +26,12 @@
import jakarta.json.bind.adapter.JsonbAdapter;
import io.aklivity.zilla.runtime.engine.config.CatalogedConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfigAdapterSpi;
import io.aklivity.zilla.runtime.engine.config.SchemaConfig;
import io.aklivity.zilla.runtime.engine.config.SchemaConfigAdapter;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfigAdapterSpi;
-public final class AvroValidatorConfigAdapter implements ValidatorConfigAdapterSpi, JsonbAdapter
+public final class AvroConverterConfigAdapter implements ConverterConfigAdapterSpi, JsonbAdapter
{
private static final String AVRO = "avro";
private static final String TYPE_NAME = "type";
@@ -49,21 +49,21 @@ public String type()
@Override
public JsonValue adaptToJson(
- ValidatorConfig config)
+ ConverterConfig config)
{
- AvroValidatorConfig validatorConfig = (AvroValidatorConfig) config;
- JsonObjectBuilder validator = Json.createObjectBuilder();
+ AvroConverterConfig converterConfig = (AvroConverterConfig) config;
+ JsonObjectBuilder converter = Json.createObjectBuilder();
- if (validatorConfig.format != null)
+ if (converterConfig.format != null)
{
- validator.add(FORMAT, validatorConfig.format);
+ converter.add(FORMAT, converterConfig.format);
}
- validator.add(TYPE_NAME, AVRO);
- if (validatorConfig.cataloged != null && !validatorConfig.cataloged.isEmpty())
+ converter.add(TYPE_NAME, AVRO);
+ if (converterConfig.cataloged != null && !converterConfig.cataloged.isEmpty())
{
JsonObjectBuilder catalogs = Json.createObjectBuilder();
- for (CatalogedConfig catalog : validatorConfig.cataloged)
+ for (CatalogedConfig catalog : converterConfig.cataloged)
{
JsonArrayBuilder array = Json.createArrayBuilder();
for (SchemaConfig schemaItem: catalog.schemas)
@@ -72,13 +72,13 @@ public JsonValue adaptToJson(
}
catalogs.add(catalog.name, array);
}
- validator.add(CATALOG_NAME, catalogs);
+ converter.add(CATALOG_NAME, catalogs);
}
- return validator.build();
+ return converter.build();
}
@Override
- public ValidatorConfig adaptFromJson(
+ public ConverterConfig adaptFromJson(
JsonValue value)
{
JsonObject object = (JsonObject) value;
@@ -108,6 +108,6 @@ public ValidatorConfig adaptFromJson(
? object.getString(FORMAT)
: null;
- return new AvroValidatorConfig(catalogs, subject, expect);
+ return new AvroConverterConfig(catalogs, subject, expect);
}
}
diff --git a/incubator/validator-avro/src/main/java/io/aklivity/zilla/runtime/validator/avro/config/AvroValidatorConfigBuilder.java b/incubator/types-avro/src/main/java/io/aklivity/zilla/runtime/types/avro/config/AvroConverterConfigBuilder.java
similarity index 69%
rename from incubator/validator-avro/src/main/java/io/aklivity/zilla/runtime/validator/avro/config/AvroValidatorConfigBuilder.java
rename to incubator/types-avro/src/main/java/io/aklivity/zilla/runtime/types/avro/config/AvroConverterConfigBuilder.java
index bae0762c4e..51a5ff92f0 100644
--- a/incubator/validator-avro/src/main/java/io/aklivity/zilla/runtime/validator/avro/config/AvroValidatorConfigBuilder.java
+++ b/incubator/types-avro/src/main/java/io/aklivity/zilla/runtime/types/avro/config/AvroConverterConfigBuilder.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.avro.config;
+package io.aklivity.zilla.runtime.types.avro.config;
import java.util.LinkedList;
import java.util.List;
@@ -22,47 +22,47 @@
import io.aklivity.zilla.runtime.engine.config.CatalogedConfigBuilder;
import io.aklivity.zilla.runtime.engine.config.ConfigBuilder;
-public class AvroValidatorConfigBuilder extends ConfigBuilder>
+public class AvroConverterConfigBuilder extends ConfigBuilder>
{
- private final Function mapper;
+ private final Function mapper;
private List catalogs;
private String subject;
private String format;
- AvroValidatorConfigBuilder(
- Function mapper)
+ AvroConverterConfigBuilder(
+ Function mapper)
{
this.mapper = mapper;
}
@Override
@SuppressWarnings("unchecked")
- protected Class> thisType()
+ protected Class> thisType()
{
- return (Class>) getClass();
+ return (Class>) getClass();
}
- public AvroValidatorConfigBuilder subject(
+ public AvroConverterConfigBuilder subject(
String subject)
{
this.subject = subject;
return this;
}
- public AvroValidatorConfigBuilder format(
+ public AvroConverterConfigBuilder format(
String format)
{
this.format = format;
return this;
}
- public CatalogedConfigBuilder> catalog()
+ public CatalogedConfigBuilder> catalog()
{
return CatalogedConfig.builder(this::catalog);
}
- public AvroValidatorConfigBuilder catalog(
+ public AvroConverterConfigBuilder catalog(
CatalogedConfig catalog)
{
if (catalogs == null)
@@ -76,6 +76,6 @@ public AvroValidatorConfigBuilder catalog(
@Override
public T build()
{
- return mapper.apply(new AvroValidatorConfig(catalogs, subject, format));
+ return mapper.apply(new AvroConverterConfig(catalogs, subject, format));
}
}
diff --git a/incubator/validator-avro/src/main/moditect/module-info.java b/incubator/types-avro/src/main/moditect/module-info.java
similarity index 57%
rename from incubator/validator-avro/src/main/moditect/module-info.java
rename to incubator/types-avro/src/main/moditect/module-info.java
index 058ec63edf..8b5c2f61e7 100644
--- a/incubator/validator-avro/src/main/moditect/module-info.java
+++ b/incubator/types-avro/src/main/moditect/module-info.java
@@ -12,21 +12,21 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-module io.aklivity.zilla.runtime.validator.avro
+module io.aklivity.zilla.runtime.types.avro
{
requires com.fasterxml.jackson.core;
requires com.fasterxml.jackson.databind;
requires org.slf4j;
requires io.aklivity.zilla.runtime.engine;
- exports io.aklivity.zilla.runtime.validator.avro.config;
+ exports io.aklivity.zilla.runtime.types.avro.config;
- uses io.aklivity.zilla.runtime.validator.avro.internal.avro.Conversion;
- uses io.aklivity.zilla.runtime.validator.avro.internal.avro.LogicalTypes$LogicalTypeFactory;
+ uses io.aklivity.zilla.runtime.types.avro.internal.avro.Conversion;
+ uses io.aklivity.zilla.runtime.types.avro.internal.avro.LogicalTypes$LogicalTypeFactory;
- provides io.aklivity.zilla.runtime.engine.config.ValidatorConfigAdapterSpi
- with io.aklivity.zilla.runtime.validator.avro.config.AvroValidatorConfigAdapter;
+ provides io.aklivity.zilla.runtime.engine.config.ConverterConfigAdapterSpi
+ with io.aklivity.zilla.runtime.types.avro.config.AvroConverterConfigAdapter;
- provides io.aklivity.zilla.runtime.engine.validator.ValidatorFactorySpi
- with io.aklivity.zilla.runtime.validator.avro.AvroValidatorFactory;
+ provides io.aklivity.zilla.runtime.engine.converter.ConverterFactorySpi
+ with io.aklivity.zilla.runtime.types.avro.AvroConverterFactory;
}
diff --git a/incubator/types-avro/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.config.ConverterConfigAdapterSpi b/incubator/types-avro/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.config.ConverterConfigAdapterSpi
new file mode 100644
index 0000000000..8d64c14028
--- /dev/null
+++ b/incubator/types-avro/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.config.ConverterConfigAdapterSpi
@@ -0,0 +1 @@
+io.aklivity.zilla.runtime.types.avro.config.AvroConverterConfigAdapter
diff --git a/incubator/types-avro/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.converter.ConverterFactorySpi b/incubator/types-avro/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.converter.ConverterFactorySpi
new file mode 100644
index 0000000000..9e3f0db6b3
--- /dev/null
+++ b/incubator/types-avro/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.converter.ConverterFactorySpi
@@ -0,0 +1 @@
+io.aklivity.zilla.runtime.types.avro.AvroConverterFactory
diff --git a/incubator/validator-avro/src/test/java/io/aklivity/zilla/runtime/validator/avro/AvroValidatorFactoryTest.java b/incubator/types-avro/src/test/java/io/aklivity/zilla/runtime/types/avro/AvroConverterFactoryTest.java
similarity index 70%
rename from incubator/validator-avro/src/test/java/io/aklivity/zilla/runtime/validator/avro/AvroValidatorFactoryTest.java
rename to incubator/types-avro/src/test/java/io/aklivity/zilla/runtime/types/avro/AvroConverterFactoryTest.java
index b4133028c2..f68435d75d 100644
--- a/incubator/validator-avro/src/test/java/io/aklivity/zilla/runtime/validator/avro/AvroValidatorFactoryTest.java
+++ b/incubator/types-avro/src/test/java/io/aklivity/zilla/runtime/types/avro/AvroConverterFactoryTest.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.avro;
+package io.aklivity.zilla.runtime.types.avro;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -22,19 +22,19 @@
import org.junit.Test;
import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
+import io.aklivity.zilla.runtime.engine.converter.Converter;
import io.aklivity.zilla.runtime.engine.test.internal.catalog.TestCatalogHandler;
import io.aklivity.zilla.runtime.engine.test.internal.catalog.config.TestCatalogOptionsConfig;
-import io.aklivity.zilla.runtime.engine.validator.ValueValidator;
-import io.aklivity.zilla.runtime.validator.avro.config.AvroValidatorConfig;
+import io.aklivity.zilla.runtime.types.avro.config.AvroConverterConfig;
-public class AvroValidatorFactoryTest
+public class AvroConverterFactoryTest
{
@Test
- public void shouldCreateReadValidator()
+ public void shouldCreateReader()
{
// GIVEN
- ValidatorConfig validator = AvroValidatorConfig.builder()
+ ConverterConfig converter = AvroConverterConfig.builder()
.subject("test-value")
.catalog()
.name("test0")
@@ -49,20 +49,20 @@ public void shouldCreateReadValidator()
.id(1)
.schema("schema0")
.build());
- AvroValidatorFactory factory = new AvroValidatorFactory();
+ AvroConverterFactory factory = new AvroConverterFactory();
// WHEN
- ValueValidator reader = factory.createValueReader(validator, supplyCatalog);
+ Converter reader = factory.createReader(converter, supplyCatalog);
// THEN
- assertThat(reader, instanceOf(AvroReadValidator.class));
+ assertThat(reader, instanceOf(AvroReadConverter.class));
}
@Test
- public void shouldCreateWriteValidator()
+ public void shouldCreateWriter()
{
// GIVEN
- ValidatorConfig validator = AvroValidatorConfig.builder()
+ ConverterConfig converter = AvroConverterConfig.builder()
.subject("test-value")
.catalog()
.name("test0")
@@ -77,12 +77,12 @@ public void shouldCreateWriteValidator()
.id(1)
.schema("schema0")
.build());
- AvroValidatorFactory factory = new AvroValidatorFactory();
+ AvroConverterFactory factory = new AvroConverterFactory();
// WHEN
- ValueValidator writer = factory.createValueWriter(validator, supplyCatalog);
+ Converter writer = factory.createWriter(converter, supplyCatalog);
// THEN
- assertThat(writer, instanceOf(AvroWriteValidator.class));
+ assertThat(writer, instanceOf(AvroWriteConverter.class));
}
}
diff --git a/incubator/validator-avro/src/test/java/io/aklivity/zilla/runtime/validator/avro/AvroValidatorTest.java b/incubator/types-avro/src/test/java/io/aklivity/zilla/runtime/types/avro/AvroConverterTest.java
similarity index 68%
rename from incubator/validator-avro/src/test/java/io/aklivity/zilla/runtime/validator/avro/AvroValidatorTest.java
rename to incubator/types-avro/src/test/java/io/aklivity/zilla/runtime/types/avro/AvroConverterTest.java
index 211af63b3b..cd6359e440 100644
--- a/incubator/validator-avro/src/test/java/io/aklivity/zilla/runtime/validator/avro/AvroValidatorTest.java
+++ b/incubator/types-avro/src/test/java/io/aklivity/zilla/runtime/types/avro/AvroConverterTest.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.avro;
+package io.aklivity.zilla.runtime.types.avro;
import static io.aklivity.zilla.runtime.engine.EngineConfiguration.ENGINE_DIRECTORY;
import static org.junit.Assert.assertEquals;
@@ -32,19 +32,18 @@
import io.aklivity.zilla.runtime.engine.catalog.CatalogContext;
import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
import io.aklivity.zilla.runtime.engine.config.CatalogConfig;
+import io.aklivity.zilla.runtime.engine.converter.function.ValueConsumer;
import io.aklivity.zilla.runtime.engine.test.internal.catalog.TestCatalog;
import io.aklivity.zilla.runtime.engine.test.internal.catalog.config.TestCatalogOptionsConfig;
-import io.aklivity.zilla.runtime.engine.validator.function.FragmentConsumer;
-import io.aklivity.zilla.runtime.engine.validator.function.ValueConsumer;
-import io.aklivity.zilla.runtime.validator.avro.config.AvroValidatorConfig;
+import io.aklivity.zilla.runtime.types.avro.config.AvroConverterConfig;
-public class AvroValidatorTest
+public class AvroConverterTest
{
private static final String SCHEMA = "{\"fields\":[{\"name\":\"id\",\"type\":\"string\"}," +
"{\"name\":\"status\",\"type\":\"string\"}]," +
"\"name\":\"Event\",\"namespace\":\"io.aklivity.example\",\"type\":\"record\"}";
- private final AvroValidatorConfig avroConfig = AvroValidatorConfig.builder()
+ private final AvroConverterConfig avroConfig = AvroConverterConfig.builder()
.catalog()
.name("test0")
.schema()
@@ -75,14 +74,14 @@ public void shouldVerifyValidAvroEvent()
.schema(SCHEMA)
.build());
LongFunction handler = value -> context.attach(catalogConfig);
- AvroReadValidator validator = new AvroReadValidator(avroConfig, handler);
+ AvroReadConverter converter = new AvroReadConverter(avroConfig, handler);
DirectBuffer data = new UnsafeBuffer();
byte[] bytes = {0x06, 0x69, 0x64,
0x30, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65};
data.wrap(bytes, 0, bytes.length);
- assertEquals(data.capacity(), validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
+ assertEquals(data.capacity(), converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
}
@Test
@@ -94,14 +93,14 @@ public void shouldWriteValidAvroEvent()
.schema(SCHEMA)
.build());
LongFunction handler = value -> context.attach(catalogConfig);
- AvroWriteValidator validator = new AvroWriteValidator(avroConfig, handler);
+ AvroWriteConverter converter = new AvroWriteConverter(avroConfig, handler);
DirectBuffer data = new UnsafeBuffer();
byte[] bytes = {0x06, 0x69, 0x64, 0x30, 0x10, 0x70, 0x6f,
0x73, 0x69, 0x74, 0x69, 0x76, 0x65};
data.wrap(bytes, 0, bytes.length);
- assertEquals(data.capacity(), validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
+ assertEquals(data.capacity(), converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
}
@Test
@@ -113,13 +112,13 @@ public void shouldVerifyInvalidAvroEvent()
.schema(SCHEMA)
.build());
LongFunction handler = value -> context.attach(catalogConfig);
- AvroReadValidator validator = new AvroReadValidator(avroConfig, handler);
+ AvroReadConverter converter = new AvroReadConverter(avroConfig, handler);
DirectBuffer data = new UnsafeBuffer();
byte[] bytes = {0x06, 0x69, 0x64, 0x30, 0x10};
data.wrap(bytes, 0, bytes.length);
- assertEquals(-1, validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
+ assertEquals(-1, converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
}
@Test
@@ -131,7 +130,7 @@ public void shouldReadAvroEventExpectJson()
.schema(SCHEMA)
.build());
LongFunction handler = value -> context.attach(catalogConfig);
- AvroValidatorConfig config = AvroValidatorConfig.builder()
+ AvroConverterConfig config = AvroConverterConfig.builder()
.format("json")
.catalog()
.name("test0")
@@ -142,7 +141,7 @@ public void shouldReadAvroEventExpectJson()
.build()
.build()
.build();
- AvroReadValidator validator = new AvroReadValidator(config, handler);
+ AvroReadConverter converter = new AvroReadConverter(config, handler);
DirectBuffer data = new UnsafeBuffer();
@@ -159,10 +158,10 @@ public void shouldReadAvroEventExpectJson()
DirectBuffer expected = new UnsafeBuffer();
expected.wrap(json.getBytes(), 0, json.getBytes().length);
- int progress = validator.validate(data, 0, data.capacity(), ValueConsumer.NOP);
+ int progress = converter.convert(data, 0, data.capacity(), ValueConsumer.NOP);
assertEquals(expected.capacity(), progress);
- assertEquals(expected.capacity(), validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
+ assertEquals(expected.capacity(), converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
}
@Test
@@ -174,7 +173,7 @@ public void shouldWriteJsonEventExpectAvro()
.schema(SCHEMA)
.build());
LongFunction handler = value -> context.attach(catalogConfig);
- AvroValidatorConfig config = AvroValidatorConfig.builder()
+ AvroConverterConfig config = AvroConverterConfig.builder()
.format("json")
.catalog()
.name("test0")
@@ -185,7 +184,7 @@ public void shouldWriteJsonEventExpectAvro()
.build()
.build()
.build();
- AvroWriteValidator validator = new AvroWriteValidator(config, handler);
+ AvroWriteConverter converter = new AvroWriteConverter(config, handler);
DirectBuffer expected = new UnsafeBuffer();
@@ -201,54 +200,10 @@ public void shouldWriteJsonEventExpectAvro()
DirectBuffer data = new UnsafeBuffer();
data.wrap(payload.getBytes(), 0, payload.getBytes().length);
- int progress = validator.validate(data, 0, data.capacity(), ValueConsumer.NOP);
+ int progress = converter.convert(data, 0, data.capacity(), ValueConsumer.NOP);
assertEquals(expected.capacity(), progress);
- assertEquals(expected.capacity(), validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
- }
-
- @Test
- public void shouldWriteValidFragmentAvroEvent()
- {
- CatalogConfig catalogConfig = new CatalogConfig("test0", "test",
- TestCatalogOptionsConfig.builder()
- .id(9)
- .schema(SCHEMA)
- .build());
- LongFunction handler = value -> context.attach(catalogConfig);
- AvroWriteValidator validator = new AvroWriteValidator(avroConfig, handler);
-
- DirectBuffer data = new UnsafeBuffer();
-
- byte[] bytes = {0x06, 0x69, 0x64, 0x30, 0x10, 0x70, 0x6f,
- 0x73, 0x69, 0x74, 0x69, 0x76, 0x65};
- data.wrap(bytes, 0, bytes.length);
-
- assertEquals(0, validator.validate(0x00, data, 0, data.capacity(), FragmentConsumer.NOP));
-
- assertEquals(data.capacity(), validator.validate(0x01, data, 0, data.capacity(), FragmentConsumer.NOP));
- }
-
- @Test
- public void shouldVerifyValidFragmentAvroEvent()
- {
- CatalogConfig catalogConfig = new CatalogConfig("test0", "test",
- TestCatalogOptionsConfig.builder()
- .id(9)
- .schema(SCHEMA)
- .build());
- LongFunction handler = value -> context.attach(catalogConfig);
- AvroReadValidator validator = new AvroReadValidator(avroConfig, handler);
-
- DirectBuffer data = new UnsafeBuffer();
-
- byte[] bytes = {0x06, 0x69, 0x64,
- 0x30, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65};
- data.wrap(bytes, 0, bytes.length);
-
- assertEquals(0, validator.validate(0x00, data, 0, data.capacity(), FragmentConsumer.NOP));
-
- assertEquals(data.capacity(), validator.validate(0x01, data, 0, data.capacity(), FragmentConsumer.NOP));
+ assertEquals(expected.capacity(), converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
}
@Test
@@ -260,7 +215,7 @@ public void shouldVerifyPaddingLength()
.schema(SCHEMA)
.build());
LongFunction handler = value -> context.attach(catalogConfig);
- AvroValidatorConfig config = AvroValidatorConfig.builder()
+ AvroConverterConfig config = AvroConverterConfig.builder()
.format("json")
.catalog()
.name("test0")
@@ -271,7 +226,7 @@ public void shouldVerifyPaddingLength()
.build()
.build()
.build();
- AvroReadValidator validator = new AvroReadValidator(config, handler);
+ AvroReadConverter converter = new AvroReadConverter(config, handler);
DirectBuffer data = new UnsafeBuffer();
@@ -279,7 +234,7 @@ public void shouldVerifyPaddingLength()
0x30, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65};
data.wrap(bytes, 0, bytes.length);
- assertEquals(22, validator.padding(data, 0, data.capacity()));
+ assertEquals(22, converter.padding(data, 0, data.capacity()));
}
}
diff --git a/incubator/validator-avro/src/test/java/io/aklivity/zilla/runtime/validator/avro/config/AvroValidatorConfigAdapterTest.java b/incubator/types-avro/src/test/java/io/aklivity/zilla/runtime/types/avro/config/AvroConverterConfigAdapterTest.java
similarity index 72%
rename from incubator/validator-avro/src/test/java/io/aklivity/zilla/runtime/validator/avro/config/AvroValidatorConfigAdapterTest.java
rename to incubator/types-avro/src/test/java/io/aklivity/zilla/runtime/types/avro/config/AvroConverterConfigAdapterTest.java
index 0a063b7e17..fd91e8f400 100644
--- a/incubator/validator-avro/src/test/java/io/aklivity/zilla/runtime/validator/avro/config/AvroValidatorConfigAdapterTest.java
+++ b/incubator/types-avro/src/test/java/io/aklivity/zilla/runtime/types/avro/config/AvroConverterConfigAdapterTest.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.avro.config;
+package io.aklivity.zilla.runtime.types.avro.config;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
@@ -26,7 +26,7 @@
import org.junit.Before;
import org.junit.Test;
-public class AvroValidatorConfigAdapterTest
+public class AvroConverterConfigAdapterTest
{
private Jsonb jsonb;
@@ -34,12 +34,12 @@ public class AvroValidatorConfigAdapterTest
public void initJson()
{
JsonbConfig config = new JsonbConfig()
- .withAdapters(new AvroValidatorConfigAdapter());
+ .withAdapters(new AvroConverterConfigAdapter());
jsonb = JsonbBuilder.create(config);
}
@Test
- public void shouldReadAvroValidator()
+ public void shouldReadAvroconverter()
{
// GIVEN
String json =
@@ -66,28 +66,28 @@ public void shouldReadAvroValidator()
"}";
// WHEN
- AvroValidatorConfig validator = jsonb.fromJson(json, AvroValidatorConfig.class);
+ AvroConverterConfig converter = jsonb.fromJson(json, AvroConverterConfig.class);
// THEN
- assertThat(validator, not(nullValue()));
- assertThat(validator.format, equalTo("json"));
- assertThat(validator.type, equalTo("avro"));
- assertThat(validator.cataloged.size(), equalTo(1));
- assertThat(validator.cataloged.get(0).name, equalTo("test0"));
- assertThat(validator.cataloged.get(0).schemas.get(0).strategy, equalTo("topic"));
- assertThat(validator.cataloged.get(0).schemas.get(0).version, equalTo("latest"));
- assertThat(validator.cataloged.get(0).schemas.get(0).id, equalTo(0));
- assertThat(validator.cataloged.get(0).schemas.get(1).subject, equalTo("cat"));
- assertThat(validator.cataloged.get(0).schemas.get(1).strategy, nullValue());
- assertThat(validator.cataloged.get(0).schemas.get(1).version, equalTo("latest"));
- assertThat(validator.cataloged.get(0).schemas.get(1).id, equalTo(0));
- assertThat(validator.cataloged.get(0).schemas.get(2).strategy, nullValue());
- assertThat(validator.cataloged.get(0).schemas.get(2).version, nullValue());
- assertThat(validator.cataloged.get(0).schemas.get(2).id, equalTo(42));
+ assertThat(converter, not(nullValue()));
+ assertThat(converter.format, equalTo("json"));
+ assertThat(converter.type, equalTo("avro"));
+ assertThat(converter.cataloged.size(), equalTo(1));
+ assertThat(converter.cataloged.get(0).name, equalTo("test0"));
+ assertThat(converter.cataloged.get(0).schemas.get(0).strategy, equalTo("topic"));
+ assertThat(converter.cataloged.get(0).schemas.get(0).version, equalTo("latest"));
+ assertThat(converter.cataloged.get(0).schemas.get(0).id, equalTo(0));
+ assertThat(converter.cataloged.get(0).schemas.get(1).subject, equalTo("cat"));
+ assertThat(converter.cataloged.get(0).schemas.get(1).strategy, nullValue());
+ assertThat(converter.cataloged.get(0).schemas.get(1).version, equalTo("latest"));
+ assertThat(converter.cataloged.get(0).schemas.get(1).id, equalTo(0));
+ assertThat(converter.cataloged.get(0).schemas.get(2).strategy, nullValue());
+ assertThat(converter.cataloged.get(0).schemas.get(2).version, nullValue());
+ assertThat(converter.cataloged.get(0).schemas.get(2).id, equalTo(42));
}
@Test
- public void shouldWriteAvroValidator()
+ public void shouldWriteAvroconverter()
{
// GIVEN
String expectedJson =
@@ -112,7 +112,7 @@ public void shouldWriteAvroValidator()
"]" +
"}" +
"}";
- AvroValidatorConfig validator = AvroValidatorConfig.builder()
+ AvroConverterConfig converter = AvroConverterConfig.builder()
.format("json")
.catalog()
.name("test0")
@@ -131,7 +131,7 @@ public void shouldWriteAvroValidator()
.build();
// WHEN
- String json = jsonb.toJson(validator);
+ String json = jsonb.toJson(converter);
// THEN
assertThat(json, not(nullValue()));
diff --git a/incubator/validator-core.spec/COPYRIGHT b/incubator/types-core.spec/COPYRIGHT
similarity index 100%
rename from incubator/validator-core.spec/COPYRIGHT
rename to incubator/types-core.spec/COPYRIGHT
diff --git a/incubator/validator-core.spec/LICENSE b/incubator/types-core.spec/LICENSE
similarity index 100%
rename from incubator/validator-core.spec/LICENSE
rename to incubator/types-core.spec/LICENSE
diff --git a/incubator/validator-core.spec/NOTICE b/incubator/types-core.spec/NOTICE
similarity index 100%
rename from incubator/validator-core.spec/NOTICE
rename to incubator/types-core.spec/NOTICE
diff --git a/incubator/validator-core.spec/NOTICE.template b/incubator/types-core.spec/NOTICE.template
similarity index 100%
rename from incubator/validator-core.spec/NOTICE.template
rename to incubator/types-core.spec/NOTICE.template
diff --git a/incubator/validator-core.spec/mvnw b/incubator/types-core.spec/mvnw
similarity index 100%
rename from incubator/validator-core.spec/mvnw
rename to incubator/types-core.spec/mvnw
diff --git a/incubator/validator-core.spec/mvnw.cmd b/incubator/types-core.spec/mvnw.cmd
similarity index 100%
rename from incubator/validator-core.spec/mvnw.cmd
rename to incubator/types-core.spec/mvnw.cmd
diff --git a/incubator/validator-core.spec/pom.xml b/incubator/types-core.spec/pom.xml
similarity index 94%
rename from incubator/validator-core.spec/pom.xml
rename to incubator/types-core.spec/pom.xml
index 8f089c8d6e..3b7b0106cb 100644
--- a/incubator/validator-core.spec/pom.xml
+++ b/incubator/types-core.spec/pom.xml
@@ -12,8 +12,8 @@
../pom.xml
- validator-core.spec
- zilla::incubator::validator-core.spec
+ types-core.spec
+ zilla::incubator::types-core.spec
@@ -79,7 +79,7 @@
${project.version}
core
- io.aklivity.zilla.specs.validator.core.internal.types
+ io.aklivity.zilla.specs.types.core.internal.types
@@ -135,7 +135,7 @@
jacoco-maven-plugin
- io/aklivity/zilla/specs/validator/core/internal/types/**/*.class
+ io/aklivity/zilla/specs/types/core/internal/types/**/*.class
diff --git a/incubator/validator-core.spec/src/main/moditect/module-info.java b/incubator/types-core.spec/src/main/moditect/module-info.java
similarity index 92%
rename from incubator/validator-core.spec/src/main/moditect/module-info.java
rename to incubator/types-core.spec/src/main/moditect/module-info.java
index 89567c9647..5f04a35bed 100644
--- a/incubator/validator-core.spec/src/main/moditect/module-info.java
+++ b/incubator/types-core.spec/src/main/moditect/module-info.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-open module io.aklivity.zilla.specs.validator.core
+open module io.aklivity.zilla.specs.types.core
{
requires transitive io.aklivity.zilla.specs.engine;
}
diff --git a/incubator/validator-core.spec/src/main/scripts/io/aklivity/zilla/specs/validator/core/config/string.validator.yaml b/incubator/types-core.spec/src/main/scripts/io/aklivity/zilla/specs/types/core/config/string.converter.yaml
similarity index 100%
rename from incubator/validator-core.spec/src/main/scripts/io/aklivity/zilla/specs/validator/core/config/string.validator.yaml
rename to incubator/types-core.spec/src/main/scripts/io/aklivity/zilla/specs/types/core/config/string.converter.yaml
diff --git a/incubator/validator-core.spec/src/main/scripts/io/aklivity/zilla/specs/validator/core/schema/integer.schema.patch.json b/incubator/types-core.spec/src/main/scripts/io/aklivity/zilla/specs/types/core/schema/integer.schema.patch.json
similarity index 56%
rename from incubator/validator-core.spec/src/main/scripts/io/aklivity/zilla/specs/validator/core/schema/integer.schema.patch.json
rename to incubator/types-core.spec/src/main/scripts/io/aklivity/zilla/specs/types/core/schema/integer.schema.patch.json
index 4e671fa357..9c06f5fd4b 100644
--- a/incubator/validator-core.spec/src/main/scripts/io/aklivity/zilla/specs/validator/core/schema/integer.schema.patch.json
+++ b/incubator/types-core.spec/src/main/scripts/io/aklivity/zilla/specs/types/core/schema/integer.schema.patch.json
@@ -1,7 +1,7 @@
[
{
"op": "add",
- "path": "/$defs/validator/types/enum/-",
+ "path": "/$defs/converter/types/enum/-",
"value": "integer"
}
]
diff --git a/incubator/validator-core.spec/src/main/scripts/io/aklivity/zilla/specs/validator/core/schema/string.schema.patch.json b/incubator/types-core.spec/src/main/scripts/io/aklivity/zilla/specs/types/core/schema/string.schema.patch.json
similarity index 90%
rename from incubator/validator-core.spec/src/main/scripts/io/aklivity/zilla/specs/validator/core/schema/string.schema.patch.json
rename to incubator/types-core.spec/src/main/scripts/io/aklivity/zilla/specs/types/core/schema/string.schema.patch.json
index 566c74e1ff..d295f406e6 100644
--- a/incubator/validator-core.spec/src/main/scripts/io/aklivity/zilla/specs/validator/core/schema/string.schema.patch.json
+++ b/incubator/types-core.spec/src/main/scripts/io/aklivity/zilla/specs/types/core/schema/string.schema.patch.json
@@ -1,12 +1,12 @@
[
{
"op": "add",
- "path": "/$defs/validator/types/enum/-",
+ "path": "/$defs/converter/types/enum/-",
"value": "string"
},
{
"op": "add",
- "path": "/$defs/validator/allOf/-",
+ "path": "/$defs/converter/allOf/-",
"value":
{
"if":
diff --git a/incubator/validator-core.spec/src/test/java/io/aklivity/zilla/specs/validator/core/config/SchemaTest.java b/incubator/types-core.spec/src/test/java/io/aklivity/zilla/specs/types/core/config/SchemaTest.java
similarity index 80%
rename from incubator/validator-core.spec/src/test/java/io/aklivity/zilla/specs/validator/core/config/SchemaTest.java
rename to incubator/types-core.spec/src/test/java/io/aklivity/zilla/specs/types/core/config/SchemaTest.java
index 092a0d830a..2217f7560a 100644
--- a/incubator/validator-core.spec/src/test/java/io/aklivity/zilla/specs/validator/core/config/SchemaTest.java
+++ b/incubator/types-core.spec/src/test/java/io/aklivity/zilla/specs/types/core/config/SchemaTest.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.specs.validator.core.config;
+package io.aklivity.zilla.specs.types.core.config;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.not;
@@ -30,13 +30,13 @@ public class SchemaTest
@Rule
public final ConfigSchemaRule schema = new ConfigSchemaRule()
.schemaPatch("io/aklivity/zilla/specs/engine/schema/binding/test.schema.patch.json")
- .schemaPatch("io/aklivity/zilla/specs/validator/core/schema/string.schema.patch.json")
- .configurationRoot("io/aklivity/zilla/specs/validator/core/config");
+ .schemaPatch("io/aklivity/zilla/specs/types/core/schema/string.schema.patch.json")
+ .configurationRoot("io/aklivity/zilla/specs/types/core/config");
@Test
public void shouldValidateCatalog()
{
- JsonObject config = schema.validate("string.validator.yaml");
+ JsonObject config = schema.validate("string.converter.yaml");
assertThat(config, not(nullValue()));
}
diff --git a/incubator/validator-core/COPYRIGHT b/incubator/types-core/COPYRIGHT
similarity index 100%
rename from incubator/validator-core/COPYRIGHT
rename to incubator/types-core/COPYRIGHT
diff --git a/incubator/validator-core/LICENSE b/incubator/types-core/LICENSE
similarity index 100%
rename from incubator/validator-core/LICENSE
rename to incubator/types-core/LICENSE
diff --git a/incubator/validator-core/NOTICE b/incubator/types-core/NOTICE
similarity index 100%
rename from incubator/validator-core/NOTICE
rename to incubator/types-core/NOTICE
diff --git a/incubator/validator-core/NOTICE.template b/incubator/types-core/NOTICE.template
similarity index 100%
rename from incubator/validator-core/NOTICE.template
rename to incubator/types-core/NOTICE.template
diff --git a/incubator/validator-core/mvnw b/incubator/types-core/mvnw
similarity index 100%
rename from incubator/validator-core/mvnw
rename to incubator/types-core/mvnw
diff --git a/incubator/validator-core/mvnw.cmd b/incubator/types-core/mvnw.cmd
similarity index 100%
rename from incubator/validator-core/mvnw.cmd
rename to incubator/types-core/mvnw.cmd
diff --git a/incubator/validator-core/pom.xml b/incubator/types-core/pom.xml
similarity index 88%
rename from incubator/validator-core/pom.xml
rename to incubator/types-core/pom.xml
index 4c5ad82543..760f48abbd 100644
--- a/incubator/validator-core/pom.xml
+++ b/incubator/types-core/pom.xml
@@ -12,8 +12,8 @@
../pom.xml
- validator-core
- zilla::incubator::validator-core
+ types-core
+ zilla::incubator::types-core
@@ -33,7 +33,7 @@
${project.groupId}
- validator-core.spec
+ types-core.spec
${project.version}
provided
@@ -79,7 +79,7 @@
${project.version}
core
- io.aklivity.zilla.runtime.validator.core.internal.types
+ io.aklivity.zilla.runtime.types.core.internal.types
@@ -116,16 +116,16 @@
${project.groupId}
- validator-core.spec
+ types-core.spec
- ^\Qio/aklivity/zilla/specs/validator/core/\E
- io/aklivity/zilla/runtime/validator/core/
+ ^\Qio/aklivity/zilla/specs/types/core/\E
+ io/aklivity/zilla/runtime/types/core/
- io/aklivity/zilla/specs/validator/core/schema/*.schema.patch.json
+ io/aklivity/zilla/specs/types/core/schema/*.schema.patch.json
${project.build.directory}/classes
@@ -155,7 +155,7 @@
jacoco-maven-plugin
- io/aklivity/zilla/runtime/validator/core/internal/types/**/*.class
+ io/aklivity/zilla/runtime/types/core/internal/types/**/*.class
diff --git a/incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/IntegerConverter.java b/incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/IntegerConverter.java
new file mode 100644
index 0000000000..cae96e6e02
--- /dev/null
+++ b/incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/IntegerConverter.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2021-2023 Aklivity Inc
+ *
+ * Licensed under the Aklivity Community License (the "License"); you may not use
+ * this file except in compliance with the License. You may obtain a copy of the
+ * License at
+ *
+ * https://www.aklivity.io/aklivity-community-license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package io.aklivity.zilla.runtime.types.core;
+
+import org.agrona.DirectBuffer;
+
+import io.aklivity.zilla.runtime.engine.converter.Converter;
+import io.aklivity.zilla.runtime.engine.converter.function.ValueConsumer;
+import io.aklivity.zilla.runtime.types.core.config.IntegerConverterConfig;
+
+public class IntegerConverter implements Converter
+{
+ public IntegerConverter(
+ IntegerConverterConfig config)
+ {
+ }
+
+ @Override
+ public int convert(
+ DirectBuffer data,
+ int index,
+ int length,
+ ValueConsumer next)
+ {
+ boolean valid = length == 4;
+
+ if (valid)
+ {
+ next.accept(data, index, length);
+ }
+
+ return valid ? length : -1;
+ }
+}
diff --git a/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/IntegerValidatorFactory.java b/incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/IntegerConverterFactory.java
similarity index 51%
rename from incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/IntegerValidatorFactory.java
rename to incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/IntegerConverterFactory.java
index 6c330fdba0..f531598f08 100644
--- a/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/IntegerValidatorFactory.java
+++ b/incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/IntegerConverterFactory.java
@@ -12,19 +12,18 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.core;
+package io.aklivity.zilla.runtime.types.core;
import java.net.URL;
import java.util.function.LongFunction;
import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
-import io.aklivity.zilla.runtime.engine.validator.FragmentValidator;
-import io.aklivity.zilla.runtime.engine.validator.ValidatorFactorySpi;
-import io.aklivity.zilla.runtime.engine.validator.ValueValidator;
-import io.aklivity.zilla.runtime.validator.core.config.IntegerValidatorConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
+import io.aklivity.zilla.runtime.engine.converter.Converter;
+import io.aklivity.zilla.runtime.engine.converter.ConverterFactorySpi;
+import io.aklivity.zilla.runtime.types.core.config.IntegerConverterConfig;
-public class IntegerValidatorFactory implements ValidatorFactorySpi
+public class IntegerConverterFactory implements ConverterFactorySpi
{
@Override
public String type()
@@ -39,40 +38,24 @@ public URL schema()
}
@Override
- public ValueValidator createValueReader(
- ValidatorConfig config,
+ public Converter createReader(
+ ConverterConfig config,
LongFunction supplyCatalog)
{
return create(config);
}
@Override
- public ValueValidator createValueWriter(
- ValidatorConfig config,
+ public Converter createWriter(
+ ConverterConfig config,
LongFunction supplyCatalog)
{
return create(config);
}
- @Override
- public FragmentValidator createFragmentReader(
- ValidatorConfig config,
- LongFunction supplyCatalog)
- {
- return create(config);
- }
-
- @Override
- public FragmentValidator createFragmentWriter(
- ValidatorConfig config,
- LongFunction supplyCatalog)
- {
- return create(config);
- }
-
- private IntegerValidator create(
- ValidatorConfig config)
+ private IntegerConverter create(
+ ConverterConfig config)
{
- return new IntegerValidator(IntegerValidatorConfig.class.cast(config));
+ return new IntegerConverter(IntegerConverterConfig.class.cast(config));
}
}
diff --git a/incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/StringConverter.java b/incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/StringConverter.java
new file mode 100644
index 0000000000..60a29b33dd
--- /dev/null
+++ b/incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/StringConverter.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2021-2023 Aklivity Inc
+ *
+ * Licensed under the Aklivity Community License (the "License"); you may not use
+ * this file except in compliance with the License. You may obtain a copy of the
+ * License at
+ *
+ * https://www.aklivity.io/aklivity-community-license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package io.aklivity.zilla.runtime.types.core;
+
+import org.agrona.DirectBuffer;
+
+import io.aklivity.zilla.runtime.engine.converter.Converter;
+import io.aklivity.zilla.runtime.engine.converter.function.ValueConsumer;
+import io.aklivity.zilla.runtime.types.core.config.StringConverterConfig;
+
+public class StringConverter implements Converter
+{
+ private StringEncoding encoding;
+
+ public StringConverter(
+ StringConverterConfig config)
+ {
+ this.encoding = StringEncoding.of(config.encoding);
+ }
+
+ @Override
+ public int convert(
+ DirectBuffer data,
+ int index,
+ int length,
+ ValueConsumer next)
+ {
+ int valLength = -1;
+
+ if (encoding.validate(data, index, length))
+ {
+ next.accept(data, index, length);
+ valLength = length;
+ }
+
+ return valLength;
+ }
+}
diff --git a/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/StringValidatorFactory.java b/incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/StringConverterFactory.java
similarity index 51%
rename from incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/StringValidatorFactory.java
rename to incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/StringConverterFactory.java
index d4f84f85ee..c75902c5ec 100644
--- a/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/StringValidatorFactory.java
+++ b/incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/StringConverterFactory.java
@@ -12,19 +12,18 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.core;
+package io.aklivity.zilla.runtime.types.core;
import java.net.URL;
import java.util.function.LongFunction;
import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
-import io.aklivity.zilla.runtime.engine.validator.FragmentValidator;
-import io.aklivity.zilla.runtime.engine.validator.ValidatorFactorySpi;
-import io.aklivity.zilla.runtime.engine.validator.ValueValidator;
-import io.aklivity.zilla.runtime.validator.core.config.StringValidatorConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
+import io.aklivity.zilla.runtime.engine.converter.Converter;
+import io.aklivity.zilla.runtime.engine.converter.ConverterFactorySpi;
+import io.aklivity.zilla.runtime.types.core.config.StringConverterConfig;
-public final class StringValidatorFactory implements ValidatorFactorySpi
+public final class StringConverterFactory implements ConverterFactorySpi
{
@Override
public String type()
@@ -39,40 +38,24 @@ public URL schema()
}
@Override
- public ValueValidator createValueReader(
- ValidatorConfig config,
+ public Converter createReader(
+ ConverterConfig config,
LongFunction supplyCatalog)
{
return create(config);
}
@Override
- public ValueValidator createValueWriter(
- ValidatorConfig config,
+ public Converter createWriter(
+ ConverterConfig config,
LongFunction supplyCatalog)
{
return create(config);
}
- @Override
- public FragmentValidator createFragmentReader(
- ValidatorConfig config,
- LongFunction supplyCatalog)
- {
- return create(config);
- }
-
- @Override
- public FragmentValidator createFragmentWriter(
- ValidatorConfig config,
- LongFunction supplyCatalog)
- {
- return create(config);
- }
-
- private StringValidator create(
- ValidatorConfig config)
+ private StringConverter create(
+ ConverterConfig config)
{
- return new StringValidator(StringValidatorConfig.class.cast(config));
+ return new StringConverter(StringConverterConfig.class.cast(config));
}
}
diff --git a/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/StringEncoding.java b/incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/StringEncoding.java
similarity index 98%
rename from incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/StringEncoding.java
rename to incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/StringEncoding.java
index 3807690c7f..e0201673bb 100644
--- a/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/StringEncoding.java
+++ b/incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/StringEncoding.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.core;
+package io.aklivity.zilla.runtime.types.core;
import org.agrona.DirectBuffer;
diff --git a/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/config/IntegerValidatorConfig.java b/incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/config/IntegerConverterConfig.java
similarity index 57%
rename from incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/config/IntegerValidatorConfig.java
rename to incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/config/IntegerConverterConfig.java
index 27a4400fb4..5a178cac8c 100644
--- a/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/config/IntegerValidatorConfig.java
+++ b/incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/config/IntegerConverterConfig.java
@@ -12,27 +12,27 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.core.config;
+package io.aklivity.zilla.runtime.types.core.config;
import java.util.function.Function;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
-public class IntegerValidatorConfig extends ValidatorConfig
+public class IntegerConverterConfig extends ConverterConfig
{
- public IntegerValidatorConfig()
+ public IntegerConverterConfig()
{
super("integer");
}
- public static IntegerValidatorConfigBuilder builder(
- Function mapper)
+ public static IntegerConverterConfigBuilder builder(
+ Function mapper)
{
- return new IntegerValidatorConfigBuilder<>(mapper::apply);
+ return new IntegerConverterConfigBuilder<>(mapper::apply);
}
- public static IntegerValidatorConfigBuilder builder()
+ public static IntegerConverterConfigBuilder builder()
{
- return new IntegerValidatorConfigBuilder<>(IntegerValidatorConfig.class::cast);
+ return new IntegerConverterConfigBuilder<>(IntegerConverterConfig.class::cast);
}
}
diff --git a/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/config/IntegerValidatorConfigAdapter.java b/incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/config/IntegerConverterConfigAdapter.java
similarity index 68%
rename from incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/config/IntegerValidatorConfigAdapter.java
rename to incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/config/IntegerConverterConfigAdapter.java
index 6a7927ff67..4542df0094 100644
--- a/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/config/IntegerValidatorConfigAdapter.java
+++ b/incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/config/IntegerConverterConfigAdapter.java
@@ -12,16 +12,16 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.core.config;
+package io.aklivity.zilla.runtime.types.core.config;
import jakarta.json.Json;
import jakarta.json.JsonValue;
import jakarta.json.bind.adapter.JsonbAdapter;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfigAdapterSpi;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfigAdapterSpi;
-public class IntegerValidatorConfigAdapter implements ValidatorConfigAdapterSpi, JsonbAdapter
+public class IntegerConverterConfigAdapter implements ConverterConfigAdapterSpi, JsonbAdapter
{
@Override
public String type()
@@ -31,15 +31,15 @@ public String type()
@Override
public JsonValue adaptToJson(
- ValidatorConfig options)
+ ConverterConfig options)
{
return Json.createValue(type());
}
@Override
- public ValidatorConfig adaptFromJson(
+ public ConverterConfig adaptFromJson(
JsonValue object)
{
- return new IntegerValidatorConfig();
+ return new IntegerConverterConfig();
}
}
diff --git a/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/config/IntegerValidatorConfigBuilder.java b/incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/config/IntegerConverterConfigBuilder.java
similarity index 63%
rename from incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/config/IntegerValidatorConfigBuilder.java
rename to incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/config/IntegerConverterConfigBuilder.java
index 016551f448..ff6abcb5fb 100644
--- a/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/config/IntegerValidatorConfigBuilder.java
+++ b/incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/config/IntegerConverterConfigBuilder.java
@@ -12,32 +12,32 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.core.config;
+package io.aklivity.zilla.runtime.types.core.config;
import java.util.function.Function;
import io.aklivity.zilla.runtime.engine.config.ConfigBuilder;
-public class IntegerValidatorConfigBuilder extends ConfigBuilder>
+public class IntegerConverterConfigBuilder extends ConfigBuilder>
{
- private final Function mapper;
+ private final Function mapper;
- IntegerValidatorConfigBuilder(
- Function mapper)
+ IntegerConverterConfigBuilder(
+ Function mapper)
{
this.mapper = mapper;
}
@Override
@SuppressWarnings("unchecked")
- protected Class> thisType()
+ protected Class> thisType()
{
- return (Class>) getClass();
+ return (Class>) getClass();
}
@Override
public T build()
{
- return mapper.apply(new IntegerValidatorConfig());
+ return mapper.apply(new IntegerConverterConfig());
}
}
diff --git a/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/config/StringValidatorConfig.java b/incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/config/StringConverterConfig.java
similarity index 64%
rename from incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/config/StringValidatorConfig.java
rename to incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/config/StringConverterConfig.java
index 7d2af19e7b..dcb8c3eb3b 100644
--- a/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/config/StringValidatorConfig.java
+++ b/incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/config/StringConverterConfig.java
@@ -12,33 +12,33 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.core.config;
+package io.aklivity.zilla.runtime.types.core.config;
import java.util.function.Function;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
-public final class StringValidatorConfig extends ValidatorConfig
+public final class StringConverterConfig extends ConverterConfig
{
public static final String DEFAULT_ENCODING = "utf_8";
public final String encoding;
- public StringValidatorConfig(
+ public StringConverterConfig(
String encoding)
{
super("string");
this.encoding = encoding != null ? encoding : DEFAULT_ENCODING;
}
- public static StringValidatorConfigBuilder builder(
- Function mapper)
+ public static StringConverterConfigBuilder builder(
+ Function mapper)
{
- return new StringValidatorConfigBuilder<>(mapper::apply);
+ return new StringConverterConfigBuilder<>(mapper::apply);
}
- public static StringValidatorConfigBuilder builder()
+ public static StringConverterConfigBuilder builder()
{
- return new StringValidatorConfigBuilder<>(StringValidatorConfig.class::cast);
+ return new StringConverterConfigBuilder<>(StringConverterConfig.class::cast);
}
}
diff --git a/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/config/StringValidatorConfigAdapter.java b/incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/config/StringConverterConfigAdapter.java
similarity index 66%
rename from incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/config/StringValidatorConfigAdapter.java
rename to incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/config/StringConverterConfigAdapter.java
index 5536b28f2e..f141a0fa01 100644
--- a/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/config/StringValidatorConfigAdapter.java
+++ b/incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/config/StringConverterConfigAdapter.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.core.config;
+package io.aklivity.zilla.runtime.types.core.config;
import jakarta.json.Json;
import jakarta.json.JsonObject;
@@ -21,26 +21,26 @@
import jakarta.json.JsonValue;
import jakarta.json.bind.adapter.JsonbAdapter;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfigAdapterSpi;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfigAdapterSpi;
-public final class StringValidatorConfigAdapter implements ValidatorConfigAdapterSpi, JsonbAdapter
+public final class StringConverterConfigAdapter implements ConverterConfigAdapterSpi, JsonbAdapter
{
private static final String TYPE_NAME = "type";
private static final String ENCODING_NAME = "encoding";
@Override
public JsonValue adaptToJson(
- ValidatorConfig config)
+ ConverterConfig config)
{
JsonValue result;
- String encoding = ((StringValidatorConfig) config).encoding;
- if (encoding != null && !encoding.isEmpty() && !encoding.equals(StringValidatorConfig.DEFAULT_ENCODING))
+ String encoding = ((StringConverterConfig) config).encoding;
+ if (encoding != null && !encoding.isEmpty() && !encoding.equals(StringConverterConfig.DEFAULT_ENCODING))
{
- JsonObjectBuilder validator = Json.createObjectBuilder();
- validator.add(TYPE_NAME, type());
- validator.add(ENCODING_NAME, encoding);
- result = validator.build();
+ JsonObjectBuilder converter = Json.createObjectBuilder();
+ converter.add(TYPE_NAME, type());
+ converter.add(ENCODING_NAME, encoding);
+ result = converter.build();
}
else
{
@@ -50,13 +50,13 @@ public JsonValue adaptToJson(
}
@Override
- public StringValidatorConfig adaptFromJson(
+ public StringConverterConfig adaptFromJson(
JsonValue value)
{
- StringValidatorConfig result = null;
+ StringConverterConfig result = null;
if (value instanceof JsonString)
{
- result = StringValidatorConfig.builder().build();
+ result = StringConverterConfig.builder().build();
}
else if (value instanceof JsonObject)
{
@@ -64,7 +64,7 @@ else if (value instanceof JsonObject)
String encoding = object.containsKey(ENCODING_NAME)
? object.getString(ENCODING_NAME)
: null;
- result = new StringValidatorConfig(encoding);
+ result = new StringConverterConfig(encoding);
}
else
{
diff --git a/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/config/StringValidatorConfigBuilder.java b/incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/config/StringConverterConfigBuilder.java
similarity index 63%
rename from incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/config/StringValidatorConfigBuilder.java
rename to incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/config/StringConverterConfigBuilder.java
index ce700243eb..b2bde4368e 100644
--- a/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/config/StringValidatorConfigBuilder.java
+++ b/incubator/types-core/src/main/java/io/aklivity/zilla/runtime/types/core/config/StringConverterConfigBuilder.java
@@ -12,32 +12,32 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.core.config;
+package io.aklivity.zilla.runtime.types.core.config;
import java.util.function.Function;
import io.aklivity.zilla.runtime.engine.config.ConfigBuilder;
-public class StringValidatorConfigBuilder extends ConfigBuilder>
+public class StringConverterConfigBuilder extends ConfigBuilder>
{
- private final Function mapper;
+ private final Function mapper;
private String encoding;
- StringValidatorConfigBuilder(
- Function mapper)
+ StringConverterConfigBuilder(
+ Function mapper)
{
this.mapper = mapper;
}
@Override
@SuppressWarnings("unchecked")
- protected Class> thisType()
+ protected Class> thisType()
{
- return (Class>) getClass();
+ return (Class>) getClass();
}
- public StringValidatorConfigBuilder encoding(
+ public StringConverterConfigBuilder encoding(
String encoding)
{
this.encoding = encoding;
@@ -47,6 +47,6 @@ public StringValidatorConfigBuilder encoding(
@Override
public T build()
{
- return mapper.apply(new StringValidatorConfig(encoding));
+ return mapper.apply(new StringConverterConfig(encoding));
}
}
diff --git a/incubator/validator-core/src/main/moditect/module-info.java b/incubator/types-core/src/main/moditect/module-info.java
similarity index 53%
rename from incubator/validator-core/src/main/moditect/module-info.java
rename to incubator/types-core/src/main/moditect/module-info.java
index 5f4ad061d0..f016e1f449 100644
--- a/incubator/validator-core/src/main/moditect/module-info.java
+++ b/incubator/types-core/src/main/moditect/module-info.java
@@ -12,17 +12,17 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-module io.aklivity.zilla.runtime.validator.core
+module io.aklivity.zilla.runtime.types.core
{
requires io.aklivity.zilla.runtime.engine;
- exports io.aklivity.zilla.runtime.validator.core.config;
+ exports io.aklivity.zilla.runtime.types.core.config;
- provides io.aklivity.zilla.runtime.engine.config.ValidatorConfigAdapterSpi
- with io.aklivity.zilla.runtime.validator.core.config.StringValidatorConfigAdapter,
- io.aklivity.zilla.runtime.validator.core.config.IntegerValidatorConfigAdapter;
+ provides io.aklivity.zilla.runtime.engine.config.ConverterConfigAdapterSpi
+ with io.aklivity.zilla.runtime.types.core.config.StringConverterConfigAdapter,
+ io.aklivity.zilla.runtime.types.core.config.IntegerConverterConfigAdapter;
- provides io.aklivity.zilla.runtime.engine.validator.ValidatorFactorySpi
- with io.aklivity.zilla.runtime.validator.core.StringValidatorFactory,
- io.aklivity.zilla.runtime.validator.core.IntegerValidatorFactory;
+ provides io.aklivity.zilla.runtime.engine.converter.ConverterFactorySpi
+ with io.aklivity.zilla.runtime.types.core.StringConverterFactory,
+ io.aklivity.zilla.runtime.types.core.IntegerConverterFactory;
}
diff --git a/incubator/types-core/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.config.ConverterConfigAdapterSpi b/incubator/types-core/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.config.ConverterConfigAdapterSpi
new file mode 100644
index 0000000000..9b91029714
--- /dev/null
+++ b/incubator/types-core/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.config.ConverterConfigAdapterSpi
@@ -0,0 +1,2 @@
+io.aklivity.zilla.runtime.types.core.config.IntegerConverterConfigAdapter
+io.aklivity.zilla.runtime.types.core.config.StringConverterConfigAdapter
diff --git a/incubator/types-core/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.converter.ConverterFactorySpi b/incubator/types-core/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.converter.ConverterFactorySpi
new file mode 100644
index 0000000000..d6be8e6205
--- /dev/null
+++ b/incubator/types-core/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.converter.ConverterFactorySpi
@@ -0,0 +1,2 @@
+io.aklivity.zilla.runtime.types.core.IntegerConverterFactory
+io.aklivity.zilla.runtime.types.core.StringConverterFactory
diff --git a/incubator/types-core/src/test/java/io/aklivity/zilla/runtime/types/core/IntegerConverterFactoryTest.java b/incubator/types-core/src/test/java/io/aklivity/zilla/runtime/types/core/IntegerConverterFactoryTest.java
new file mode 100644
index 0000000000..a38e6178ec
--- /dev/null
+++ b/incubator/types-core/src/test/java/io/aklivity/zilla/runtime/types/core/IntegerConverterFactoryTest.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2021-2023 Aklivity Inc
+ *
+ * Licensed under the Aklivity Community License (the "License"); you may not use
+ * this file except in compliance with the License. You may obtain a copy of the
+ * License at
+ *
+ * https://www.aklivity.io/aklivity-community-license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package io.aklivity.zilla.runtime.types.core;
+
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.Mockito.mock;
+
+import java.util.function.LongFunction;
+
+import org.junit.Test;
+
+import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
+import io.aklivity.zilla.runtime.engine.converter.Converter;
+import io.aklivity.zilla.runtime.types.core.config.IntegerConverterConfig;
+
+public class IntegerConverterFactoryTest
+{
+ @Test
+ @SuppressWarnings("unchecked")
+ public void shouldCreateReader()
+ {
+ // GIVEN
+ ConverterConfig converter = new IntegerConverterConfig();
+ LongFunction supplyCatalog = mock(LongFunction.class);
+ IntegerConverterFactory factory = new IntegerConverterFactory();
+
+ // WHEN
+ Converter reader = factory.createReader(converter, supplyCatalog);
+
+ // THEN
+ assertThat(reader, instanceOf(IntegerConverter.class));
+ }
+
+ @Test
+ @SuppressWarnings("unchecked")
+ public void shouldCreateWriter()
+ {
+ // GIVEN
+ ConverterConfig converter = new IntegerConverterConfig();
+ LongFunction supplyCatalog = mock(LongFunction.class);
+ IntegerConverterFactory factory = new IntegerConverterFactory();
+
+ // WHEN
+ Converter writer = factory.createWriter(converter, supplyCatalog);
+
+ // THEN
+ assertThat(writer, instanceOf(IntegerConverter.class));
+ }
+}
diff --git a/incubator/validator-core/src/test/java/io/aklivity/zilla/runtime/validator/core/IntegerValidatorTest.java b/incubator/types-core/src/test/java/io/aklivity/zilla/runtime/types/core/IntegerConverterTest.java
similarity index 51%
rename from incubator/validator-core/src/test/java/io/aklivity/zilla/runtime/validator/core/IntegerValidatorTest.java
rename to incubator/types-core/src/test/java/io/aklivity/zilla/runtime/types/core/IntegerConverterTest.java
index 0541f57b67..852a916464 100644
--- a/incubator/validator-core/src/test/java/io/aklivity/zilla/runtime/validator/core/IntegerValidatorTest.java
+++ b/incubator/types-core/src/test/java/io/aklivity/zilla/runtime/types/core/IntegerConverterTest.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.core;
+package io.aklivity.zilla.runtime.types.core;
import static org.junit.Assert.assertEquals;
@@ -20,14 +20,13 @@
import org.agrona.concurrent.UnsafeBuffer;
import org.junit.Test;
-import io.aklivity.zilla.runtime.engine.validator.function.FragmentConsumer;
-import io.aklivity.zilla.runtime.engine.validator.function.ValueConsumer;
-import io.aklivity.zilla.runtime.validator.core.config.IntegerValidatorConfig;
+import io.aklivity.zilla.runtime.engine.converter.function.ValueConsumer;
+import io.aklivity.zilla.runtime.types.core.config.IntegerConverterConfig;
-public class IntegerValidatorTest
+public class IntegerConverterTest
{
- private final IntegerValidatorConfig config = new IntegerValidatorConfig();
- private final IntegerValidator validator = new IntegerValidator(config);
+ private final IntegerConverterConfig config = new IntegerConverterConfig();
+ private final IntegerConverter converter = new IntegerConverter(config);
@Test
public void shouldVerifyValidInteger()
@@ -36,7 +35,7 @@ public void shouldVerifyValidInteger()
byte[] bytes = {0, 0, 0, 42};
data.wrap(bytes, 0, bytes.length);
- assertEquals(data.capacity(), validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
+ assertEquals(data.capacity(), converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
}
@Test
@@ -46,19 +45,6 @@ public void shouldVerifyInvalidInteger()
byte[] bytes = "Not an Integer".getBytes();
data.wrap(bytes, 0, bytes.length);
- assertEquals(-1, validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
- }
-
- @Test
- public void shouldVerifyValidFragmentInteger()
- {
- DirectBuffer data = new UnsafeBuffer();
-
- byte[] bytes = {0, 0, 0, 42};
- data.wrap(bytes, 0, bytes.length);
-
- assertEquals(0, validator.validate(0x00, data, 0, data.capacity(), FragmentConsumer.NOP));
-
- assertEquals(data.capacity(), validator.validate(0x01, data, 0, data.capacity(), FragmentConsumer.NOP));
+ assertEquals(-1, converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
}
}
diff --git a/incubator/types-core/src/test/java/io/aklivity/zilla/runtime/types/core/StringConverterFactoryTest.java b/incubator/types-core/src/test/java/io/aklivity/zilla/runtime/types/core/StringConverterFactoryTest.java
new file mode 100644
index 0000000000..3a768640e4
--- /dev/null
+++ b/incubator/types-core/src/test/java/io/aklivity/zilla/runtime/types/core/StringConverterFactoryTest.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2021-2023 Aklivity Inc
+ *
+ * Licensed under the Aklivity Community License (the "License"); you may not use
+ * this file except in compliance with the License. You may obtain a copy of the
+ * License at
+ *
+ * https://www.aklivity.io/aklivity-community-license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package io.aklivity.zilla.runtime.types.core;
+
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.Mockito.mock;
+
+import java.util.function.LongFunction;
+
+import org.junit.Test;
+
+import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
+import io.aklivity.zilla.runtime.engine.converter.Converter;
+import io.aklivity.zilla.runtime.types.core.config.StringConverterConfig;
+
+public class StringConverterFactoryTest
+{
+ @Test
+ @SuppressWarnings("unchecked")
+ public void shouldCreateReader()
+ {
+ // GIVEN
+ ConverterConfig converter = new StringConverterConfig("utf_8");
+ LongFunction supplyCatalog = mock(LongFunction.class);
+ StringConverterFactory factory = new StringConverterFactory();
+
+ // WHEN
+ Converter reader = factory.createReader(converter, supplyCatalog);
+
+ // THEN
+ assertThat(reader, instanceOf(StringConverter.class));
+ }
+
+ @Test
+ @SuppressWarnings("unchecked")
+ public void shouldCreateWriter()
+ {
+ // GIVEN
+ ConverterConfig converter = new StringConverterConfig("utf_8");
+ LongFunction supplyCatalog = mock(LongFunction.class);
+ StringConverterFactory factory = new StringConverterFactory();
+
+ // WHEN
+ Converter writer = factory.createWriter(converter, supplyCatalog);
+
+ // THEN
+ assertThat(writer, instanceOf(StringConverter.class));
+ }
+}
diff --git a/incubator/types-core/src/test/java/io/aklivity/zilla/runtime/types/core/StringConverterTest.java b/incubator/types-core/src/test/java/io/aklivity/zilla/runtime/types/core/StringConverterTest.java
new file mode 100644
index 0000000000..43253ac244
--- /dev/null
+++ b/incubator/types-core/src/test/java/io/aklivity/zilla/runtime/types/core/StringConverterTest.java
@@ -0,0 +1,150 @@
+/*
+ * Copyright 2021-2023 Aklivity Inc
+ *
+ * Licensed under the Aklivity Community License (the "License"); you may not use
+ * this file except in compliance with the License. You may obtain a copy of the
+ * License at
+ *
+ * https://www.aklivity.io/aklivity-community-license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package io.aklivity.zilla.runtime.types.core;
+
+import static org.junit.Assert.assertEquals;
+
+import java.nio.charset.StandardCharsets;
+
+import org.agrona.DirectBuffer;
+import org.agrona.concurrent.UnsafeBuffer;
+import org.junit.Test;
+
+import io.aklivity.zilla.runtime.engine.converter.function.ValueConsumer;
+import io.aklivity.zilla.runtime.types.core.config.StringConverterConfig;
+
+public class StringConverterTest
+{
+ @Test
+ public void shouldVerifyValidUtf8()
+ {
+ StringConverterConfig config = StringConverterConfig.builder()
+ .encoding("utf_8")
+ .build();
+ StringConverter converter = new StringConverter(config);
+
+ DirectBuffer data = new UnsafeBuffer();
+
+ byte[] bytes = "Valid String".getBytes();
+ data.wrap(bytes, 0, bytes.length);
+ assertEquals(data.capacity(), converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
+ }
+
+ @Test
+ public void shouldVerifyInvalidUtf8()
+ {
+ StringConverterConfig config = StringConverterConfig.builder()
+ .encoding("utf_8")
+ .build();
+ StringConverter converter = new StringConverter(config);
+
+ DirectBuffer data = new UnsafeBuffer();
+
+ byte[] bytes = {(byte) 0xc0};
+ data.wrap(bytes, 0, bytes.length);
+ assertEquals(-1, converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
+ }
+
+ @Test
+ public void shouldVerifyValidUtf16()
+ {
+ StringConverterConfig config = StringConverterConfig.builder()
+ .encoding("utf_16")
+ .build();
+ StringConverter converter = new StringConverter(config);
+
+ DirectBuffer data = new UnsafeBuffer();
+
+ byte[] bytes = "Valid String".getBytes(StandardCharsets.UTF_16);
+ data.wrap(bytes, 0, bytes.length);
+
+ assertEquals(data.capacity(), converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
+ }
+
+ @Test
+ public void shouldVerifyIncompleteUtf16()
+ {
+ StringConverterConfig config = StringConverterConfig.builder()
+ .encoding("utf_16")
+ .build();
+ StringConverter converter = new StringConverter(config);
+
+ DirectBuffer data = new UnsafeBuffer();
+
+ byte[] bytes = {0x48};
+ data.wrap(bytes, 0, bytes.length);
+ assertEquals(-1, converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
+ }
+
+ @Test
+ public void shouldVerifyIncompleteSurrogatePairUtf16()
+ {
+ StringConverterConfig config = StringConverterConfig.builder()
+ .encoding("utf_16")
+ .build();
+ StringConverter converter = new StringConverter(config);
+
+ DirectBuffer data = new UnsafeBuffer();
+
+ byte[] bytes = {(byte) 0xD8, (byte) 0x00};
+ data.wrap(bytes, 0, bytes.length);
+ assertEquals(-1, converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
+ }
+
+ @Test
+ public void shouldVerifyInvalidSecondSurrogateUtf16()
+ {
+ StringConverterConfig config = StringConverterConfig.builder()
+ .encoding("utf_16")
+ .build();
+ StringConverter converter = new StringConverter(config);
+
+ DirectBuffer data = new UnsafeBuffer();
+
+ byte[] bytes = {(byte) 0xDC, (byte) 0x01};
+ data.wrap(bytes, 0, bytes.length);
+ assertEquals(-1, converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
+ }
+
+ @Test
+ public void shouldVerifyUnexpectedSecondSurrogateUtf16()
+ {
+ StringConverterConfig config = StringConverterConfig.builder()
+ .encoding("utf_16")
+ .build();
+ StringConverter converter = new StringConverter(config);
+
+ DirectBuffer data = new UnsafeBuffer();
+
+ byte[] bytes = {(byte) 0xDC, (byte) 0x80};
+ data.wrap(bytes, 0, bytes.length);
+ assertEquals(-1, converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
+ }
+
+ @Test
+ public void shouldVerifyValidMixedUtf16()
+ {
+ StringConverterConfig config = StringConverterConfig.builder()
+ .encoding("utf_16")
+ .build();
+ StringConverter converter = new StringConverter(config);
+
+ DirectBuffer data = new UnsafeBuffer();
+
+ byte[] bytes = {0, 72, 0, 101, 0, 108, 0, 108, 0, 111, 65, 66, 67};
+ data.wrap(bytes, 0, bytes.length);
+ assertEquals(-1, converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
+ }
+}
diff --git a/incubator/validator-core/src/test/java/io/aklivity/zilla/runtime/validator/core/StringEncodingTest.java b/incubator/types-core/src/test/java/io/aklivity/zilla/runtime/types/core/StringEncodingTest.java
similarity index 97%
rename from incubator/validator-core/src/test/java/io/aklivity/zilla/runtime/validator/core/StringEncodingTest.java
rename to incubator/types-core/src/test/java/io/aklivity/zilla/runtime/types/core/StringEncodingTest.java
index e0cdf0beff..223689b0e6 100644
--- a/incubator/validator-core/src/test/java/io/aklivity/zilla/runtime/validator/core/StringEncodingTest.java
+++ b/incubator/types-core/src/test/java/io/aklivity/zilla/runtime/types/core/StringEncodingTest.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.core;
+package io.aklivity.zilla.runtime.types.core;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
diff --git a/incubator/validator-core/src/test/java/io/aklivity/zilla/runtime/validator/core/config/IntegerValidatorConfigAdapterTest.java b/incubator/types-core/src/test/java/io/aklivity/zilla/runtime/types/core/config/IntegerConverterConfigAdapterTest.java
similarity index 72%
rename from incubator/validator-core/src/test/java/io/aklivity/zilla/runtime/validator/core/config/IntegerValidatorConfigAdapterTest.java
rename to incubator/types-core/src/test/java/io/aklivity/zilla/runtime/types/core/config/IntegerConverterConfigAdapterTest.java
index da6befc886..6a87275cd9 100644
--- a/incubator/validator-core/src/test/java/io/aklivity/zilla/runtime/validator/core/config/IntegerValidatorConfigAdapterTest.java
+++ b/incubator/types-core/src/test/java/io/aklivity/zilla/runtime/types/core/config/IntegerConverterConfigAdapterTest.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.core.config;
+package io.aklivity.zilla.runtime.types.core.config;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
@@ -26,7 +26,7 @@
import org.junit.Before;
import org.junit.Test;
-public class IntegerValidatorConfigAdapterTest
+public class IntegerConverterConfigAdapterTest
{
private Jsonb jsonb;
@@ -34,12 +34,12 @@ public class IntegerValidatorConfigAdapterTest
public void initJson()
{
JsonbConfig config = new JsonbConfig()
- .withAdapters(new IntegerValidatorConfigAdapter());
+ .withAdapters(new IntegerConverterConfigAdapter());
jsonb = JsonbBuilder.create(config);
}
@Test
- public void shouldReadIntegerValidator()
+ public void shouldReadIntegerconverter()
{
// GIVEN
String json =
@@ -48,22 +48,22 @@ public void shouldReadIntegerValidator()
"}";
// WHEN
- IntegerValidatorConfig validator = jsonb.fromJson(json, IntegerValidatorConfig.class);
+ IntegerConverterConfig converter = jsonb.fromJson(json, IntegerConverterConfig.class);
// THEN
- assertThat(validator, not(nullValue()));
- assertThat(validator.type, equalTo("integer"));
+ assertThat(converter, not(nullValue()));
+ assertThat(converter.type, equalTo("integer"));
}
@Test
- public void shouldWriteIntegerValidator()
+ public void shouldWriteIntegerconverter()
{
// GIVEN
String expectedJson = "\"integer\"";
- IntegerValidatorConfig validator = IntegerValidatorConfig.builder().build();
+ IntegerConverterConfig converter = IntegerConverterConfig.builder().build();
// WHEN
- String json = jsonb.toJson(validator);
+ String json = jsonb.toJson(converter);
// THEN
assertThat(json, not(nullValue()));
diff --git a/incubator/validator-core/src/test/java/io/aklivity/zilla/runtime/validator/core/config/StringValidatorConfigAdapterTest.java b/incubator/types-core/src/test/java/io/aklivity/zilla/runtime/types/core/config/StringConverterConfigAdapterTest.java
similarity index 71%
rename from incubator/validator-core/src/test/java/io/aklivity/zilla/runtime/validator/core/config/StringValidatorConfigAdapterTest.java
rename to incubator/types-core/src/test/java/io/aklivity/zilla/runtime/types/core/config/StringConverterConfigAdapterTest.java
index 89ab178016..44ec73278a 100644
--- a/incubator/validator-core/src/test/java/io/aklivity/zilla/runtime/validator/core/config/StringValidatorConfigAdapterTest.java
+++ b/incubator/types-core/src/test/java/io/aklivity/zilla/runtime/types/core/config/StringConverterConfigAdapterTest.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.core.config;
+package io.aklivity.zilla.runtime.types.core.config;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
@@ -26,7 +26,7 @@
import org.junit.Before;
import org.junit.Test;
-public class StringValidatorConfigAdapterTest
+public class StringConverterConfigAdapterTest
{
private Jsonb jsonb;
@@ -34,12 +34,12 @@ public class StringValidatorConfigAdapterTest
public void initJson()
{
JsonbConfig config = new JsonbConfig()
- .withAdapters(new StringValidatorConfigAdapter());
+ .withAdapters(new StringConverterConfigAdapter());
jsonb = JsonbBuilder.create(config);
}
@Test
- public void shouldReadStringValidator()
+ public void shouldReadStringconverter()
{
// GIVEN
String json =
@@ -49,23 +49,23 @@ public void shouldReadStringValidator()
"}";
// WHEN
- StringValidatorConfig validator = jsonb.fromJson(json, StringValidatorConfig.class);
+ StringConverterConfig converter = jsonb.fromJson(json, StringConverterConfig.class);
// THEN
- assertThat(validator, not(nullValue()));
- assertThat(validator.type, equalTo("string"));
- assertThat(validator.encoding, equalTo("utf_8"));
+ assertThat(converter, not(nullValue()));
+ assertThat(converter.type, equalTo("string"));
+ assertThat(converter.encoding, equalTo("utf_8"));
}
@Test
- public void shouldWriteDefaultEncodingStringValidator()
+ public void shouldWriteDefaultEncodingStringconverter()
{
// GIVEN
String expectedJson = "\"string\"";
- StringValidatorConfig validator = StringValidatorConfig.builder().build();
+ StringConverterConfig converter = StringConverterConfig.builder().build();
// WHEN
- String json = jsonb.toJson(validator);
+ String json = jsonb.toJson(converter);
// THEN
assertThat(json, not(nullValue()));
@@ -73,7 +73,7 @@ public void shouldWriteDefaultEncodingStringValidator()
}
@Test
- public void shouldWriteStringValidator()
+ public void shouldWriteStringconverter()
{
// GIVEN
String expectedJson =
@@ -81,12 +81,12 @@ public void shouldWriteStringValidator()
"\"type\":\"string\"," +
"\"encoding\":\"utf_16\"" +
"}";
- StringValidatorConfig validator = StringValidatorConfig.builder()
+ StringConverterConfig converter = StringConverterConfig.builder()
.encoding("utf_16")
.build();
// WHEN
- String json = jsonb.toJson(validator);
+ String json = jsonb.toJson(converter);
// THEN
assertThat(json, not(nullValue()));
diff --git a/incubator/validator-json.spec/COPYRIGHT b/incubator/types-json.spec/COPYRIGHT
similarity index 100%
rename from incubator/validator-json.spec/COPYRIGHT
rename to incubator/types-json.spec/COPYRIGHT
diff --git a/incubator/validator-json.spec/LICENSE b/incubator/types-json.spec/LICENSE
similarity index 100%
rename from incubator/validator-json.spec/LICENSE
rename to incubator/types-json.spec/LICENSE
diff --git a/incubator/validator-json.spec/NOTICE b/incubator/types-json.spec/NOTICE
similarity index 100%
rename from incubator/validator-json.spec/NOTICE
rename to incubator/types-json.spec/NOTICE
diff --git a/incubator/validator-json.spec/NOTICE.template b/incubator/types-json.spec/NOTICE.template
similarity index 100%
rename from incubator/validator-json.spec/NOTICE.template
rename to incubator/types-json.spec/NOTICE.template
diff --git a/incubator/validator-json.spec/mvnw b/incubator/types-json.spec/mvnw
similarity index 100%
rename from incubator/validator-json.spec/mvnw
rename to incubator/types-json.spec/mvnw
diff --git a/incubator/validator-json.spec/mvnw.cmd b/incubator/types-json.spec/mvnw.cmd
similarity index 100%
rename from incubator/validator-json.spec/mvnw.cmd
rename to incubator/types-json.spec/mvnw.cmd
diff --git a/incubator/validator-json.spec/pom.xml b/incubator/types-json.spec/pom.xml
similarity index 97%
rename from incubator/validator-json.spec/pom.xml
rename to incubator/types-json.spec/pom.xml
index 939483e174..40dbfc7248 100644
--- a/incubator/validator-json.spec/pom.xml
+++ b/incubator/types-json.spec/pom.xml
@@ -12,8 +12,8 @@
../pom.xml
-validator-json.spec
-zilla::incubator::validator-json.spec
+types-json.spec
+zilla::incubator::types-json.spec
diff --git a/incubator/validator-json.spec/src/main/moditect/module-info.java b/incubator/types-json.spec/src/main/moditect/module-info.java
similarity index 92%
rename from incubator/validator-json.spec/src/main/moditect/module-info.java
rename to incubator/types-json.spec/src/main/moditect/module-info.java
index 08a27de593..ffcdbe4fd1 100644
--- a/incubator/validator-json.spec/src/main/moditect/module-info.java
+++ b/incubator/types-json.spec/src/main/moditect/module-info.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-open module io.aklivity.zilla.specs.validator.json
+open module io.aklivity.zilla.specs.types.json
{
requires transitive io.aklivity.zilla.specs.engine;
}
diff --git a/incubator/validator-json.spec/src/main/scripts/io/aklivity/zilla/specs/validator/json/config/validator.yaml b/incubator/types-json.spec/src/main/scripts/io/aklivity/zilla/specs/types/json/config/converter.yaml
similarity index 100%
rename from incubator/validator-json.spec/src/main/scripts/io/aklivity/zilla/specs/validator/json/config/validator.yaml
rename to incubator/types-json.spec/src/main/scripts/io/aklivity/zilla/specs/types/json/config/converter.yaml
diff --git a/incubator/validator-json.spec/src/main/scripts/io/aklivity/zilla/specs/validator/json/schema/json.schema.patch.json b/incubator/types-json.spec/src/main/scripts/io/aklivity/zilla/specs/types/json/schema/json.schema.patch.json
similarity index 98%
rename from incubator/validator-json.spec/src/main/scripts/io/aklivity/zilla/specs/validator/json/schema/json.schema.patch.json
rename to incubator/types-json.spec/src/main/scripts/io/aklivity/zilla/specs/types/json/schema/json.schema.patch.json
index 25c0b507d2..f33bb24382 100644
--- a/incubator/validator-json.spec/src/main/scripts/io/aklivity/zilla/specs/validator/json/schema/json.schema.patch.json
+++ b/incubator/types-json.spec/src/main/scripts/io/aklivity/zilla/specs/types/json/schema/json.schema.patch.json
@@ -1,12 +1,12 @@
[
{
"op": "add",
- "path": "/$defs/validator/types/enum/-",
+ "path": "/$defs/converter/types/enum/-",
"value": "json"
},
{
"op": "add",
- "path": "/$defs/validator/allOf/-",
+ "path": "/$defs/converter/allOf/-",
"value":
{
"if":
diff --git a/incubator/validator-avro.spec/src/test/java/io/aklivity/zilla/specs/validator/avro/config/SchemaTest.java b/incubator/types-json.spec/src/test/java/io/aklivity/zilla/specs/types/json/config/SchemaTest.java
similarity index 81%
rename from incubator/validator-avro.spec/src/test/java/io/aklivity/zilla/specs/validator/avro/config/SchemaTest.java
rename to incubator/types-json.spec/src/test/java/io/aklivity/zilla/specs/types/json/config/SchemaTest.java
index 584ded5d99..94764e5d0e 100644
--- a/incubator/validator-avro.spec/src/test/java/io/aklivity/zilla/specs/validator/avro/config/SchemaTest.java
+++ b/incubator/types-json.spec/src/test/java/io/aklivity/zilla/specs/types/json/config/SchemaTest.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.specs.validator.avro.config;
+package io.aklivity.zilla.specs.types.json.config;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.not;
@@ -31,13 +31,13 @@ public class SchemaTest
public final ConfigSchemaRule schema = new ConfigSchemaRule()
.schemaPatch("io/aklivity/zilla/specs/engine/schema/binding/test.schema.patch.json")
.schemaPatch("io/aklivity/zilla/specs/engine/schema/catalog/test.schema.patch.json")
- .schemaPatch("io/aklivity/zilla/specs/validator/avro/schema/avro.schema.patch.json")
- .configurationRoot("io/aklivity/zilla/specs/validator/avro/config");
+ .schemaPatch("io/aklivity/zilla/specs/types/json/schema/json.schema.patch.json")
+ .configurationRoot("io/aklivity/zilla/specs/types/json/config");
@Test
public void shouldValidateCatalog()
{
- JsonObject config = schema.validate("validator.yaml");
+ JsonObject config = schema.validate("converter.yaml");
assertThat(config, not(nullValue()));
}
diff --git a/incubator/validator-json/COPYRIGHT b/incubator/types-json/COPYRIGHT
similarity index 100%
rename from incubator/validator-json/COPYRIGHT
rename to incubator/types-json/COPYRIGHT
diff --git a/incubator/validator-json/LICENSE b/incubator/types-json/LICENSE
similarity index 100%
rename from incubator/validator-json/LICENSE
rename to incubator/types-json/LICENSE
diff --git a/incubator/validator-json/NOTICE b/incubator/types-json/NOTICE
similarity index 100%
rename from incubator/validator-json/NOTICE
rename to incubator/types-json/NOTICE
diff --git a/incubator/validator-json/NOTICE.template b/incubator/types-json/NOTICE.template
similarity index 100%
rename from incubator/validator-json/NOTICE.template
rename to incubator/types-json/NOTICE.template
diff --git a/incubator/validator-json/mvnw b/incubator/types-json/mvnw
similarity index 100%
rename from incubator/validator-json/mvnw
rename to incubator/types-json/mvnw
diff --git a/incubator/validator-json/mvnw.cmd b/incubator/types-json/mvnw.cmd
similarity index 100%
rename from incubator/validator-json/mvnw.cmd
rename to incubator/types-json/mvnw.cmd
diff --git a/incubator/validator-json/pom.xml b/incubator/types-json/pom.xml
similarity index 93%
rename from incubator/validator-json/pom.xml
rename to incubator/types-json/pom.xml
index 2fa253de7f..0614fac44e 100644
--- a/incubator/validator-json/pom.xml
+++ b/incubator/types-json/pom.xml
@@ -10,8 +10,8 @@
../pom.xml
-validator-json
-zilla::incubator::validator-json
+types-json
+zilla::incubator::types-json
@@ -31,7 +31,7 @@
${project.groupId}
- validator-json.spec
+ types-json.spec
${project.version}
provided
@@ -98,16 +98,16 @@
${project.groupId}
- validator-json.spec
+ types-json.spec
- ^\Qio/aklivity/zilla/specs/validator/json/\E
- io/aklivity/zilla/runtime/validator/json/
+ ^\Qio/aklivity/zilla/specs/types/json/\E
+ io/aklivity/zilla/runtime/types/json/
- io/aklivity/zilla/specs/validator/json/schema/json.schema.patch.json
+ io/aklivity/zilla/specs/types/json/schema/json.schema.patch.json
${project.build.directory}/classes
diff --git a/incubator/validator-json/src/main/java/io/aklivity/zilla/runtime/validator/json/JsonValidator.java b/incubator/types-json/src/main/java/io/aklivity/zilla/runtime/types/json/JsonConverter.java
similarity index 94%
rename from incubator/validator-json/src/main/java/io/aklivity/zilla/runtime/validator/json/JsonValidator.java
rename to incubator/types-json/src/main/java/io/aklivity/zilla/runtime/types/json/JsonConverter.java
index 7c31a357cc..94a23c2d53 100644
--- a/incubator/validator-json/src/main/java/io/aklivity/zilla/runtime/validator/json/JsonValidator.java
+++ b/incubator/types-json/src/main/java/io/aklivity/zilla/runtime/types/json/JsonConverter.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.json;
+package io.aklivity.zilla.runtime.types.json;
import java.io.StringReader;
import java.util.function.LongFunction;
@@ -33,9 +33,9 @@
import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
import io.aklivity.zilla.runtime.engine.config.CatalogedConfig;
import io.aklivity.zilla.runtime.engine.config.SchemaConfig;
-import io.aklivity.zilla.runtime.validator.json.config.JsonValidatorConfig;
+import io.aklivity.zilla.runtime.types.json.config.JsonConverterConfig;
-public abstract class JsonValidator
+public abstract class JsonConverter
{
protected final SchemaConfig catalog;
protected final CatalogHandler handler;
@@ -48,8 +48,8 @@ public abstract class JsonValidator
private final JsonParserFactory factory;
private DirectBufferInputStream in;
- public JsonValidator(
- JsonValidatorConfig config,
+ public JsonConverter(
+ JsonConverterConfig config,
LongFunction supplyCatalog)
{
this.schemaProvider = JsonProvider.provider();
diff --git a/incubator/types-json/src/main/java/io/aklivity/zilla/runtime/types/json/JsonConverterFactory.java b/incubator/types-json/src/main/java/io/aklivity/zilla/runtime/types/json/JsonConverterFactory.java
new file mode 100644
index 0000000000..610eea6cf0
--- /dev/null
+++ b/incubator/types-json/src/main/java/io/aklivity/zilla/runtime/types/json/JsonConverterFactory.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2021-2023 Aklivity Inc
+ *
+ * Licensed under the Aklivity Community License (the "License"); you may not use
+ * this file except in compliance with the License. You may obtain a copy of the
+ * License at
+ *
+ * https://www.aklivity.io/aklivity-community-license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package io.aklivity.zilla.runtime.types.json;
+
+import java.net.URL;
+import java.util.function.LongFunction;
+
+import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
+import io.aklivity.zilla.runtime.engine.converter.Converter;
+import io.aklivity.zilla.runtime.engine.converter.ConverterFactorySpi;
+import io.aklivity.zilla.runtime.types.json.config.JsonConverterConfig;
+
+public final class JsonConverterFactory implements ConverterFactorySpi
+{
+ @Override
+ public String type()
+ {
+ return "json";
+ }
+
+ public URL schema()
+ {
+ return getClass().getResource("schema/json.schema.patch.json");
+ }
+
+ @Override
+ public Converter createReader(
+ ConverterConfig config,
+ LongFunction supplyCatalog)
+ {
+ return new JsonReadConverter(JsonConverterConfig.class.cast(config), supplyCatalog);
+ }
+
+ @Override
+ public Converter createWriter(
+ ConverterConfig config,
+ LongFunction supplyCatalog)
+ {
+ return new JsonWriteConverter(JsonConverterConfig.class.cast(config), supplyCatalog);
+ }
+}
diff --git a/incubator/validator-json/src/main/java/io/aklivity/zilla/runtime/validator/json/JsonReadValidator.java b/incubator/types-json/src/main/java/io/aklivity/zilla/runtime/types/json/JsonReadConverter.java
similarity index 61%
rename from incubator/validator-json/src/main/java/io/aklivity/zilla/runtime/validator/json/JsonReadValidator.java
rename to incubator/types-json/src/main/java/io/aklivity/zilla/runtime/types/json/JsonReadConverter.java
index 9cfec07e8a..a402762e18 100644
--- a/incubator/validator-json/src/main/java/io/aklivity/zilla/runtime/validator/json/JsonReadValidator.java
+++ b/incubator/types-json/src/main/java/io/aklivity/zilla/runtime/types/json/JsonReadConverter.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.json;
+package io.aklivity.zilla.runtime.types.json;
import static io.aklivity.zilla.runtime.engine.catalog.CatalogHandler.NO_SCHEMA_ID;
@@ -21,45 +21,21 @@
import org.agrona.DirectBuffer;
import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
-import io.aklivity.zilla.runtime.engine.validator.FragmentValidator;
-import io.aklivity.zilla.runtime.engine.validator.ValueValidator;
-import io.aklivity.zilla.runtime.engine.validator.function.FragmentConsumer;
-import io.aklivity.zilla.runtime.engine.validator.function.ValueConsumer;
-import io.aklivity.zilla.runtime.validator.json.config.JsonValidatorConfig;
+import io.aklivity.zilla.runtime.engine.converter.Converter;
+import io.aklivity.zilla.runtime.engine.converter.function.ValueConsumer;
+import io.aklivity.zilla.runtime.types.json.config.JsonConverterConfig;
-public class JsonReadValidator extends JsonValidator implements ValueValidator, FragmentValidator
+public class JsonReadConverter extends JsonConverter implements Converter
{
- public JsonReadValidator(
- JsonValidatorConfig config,
+ public JsonReadConverter(
+ JsonConverterConfig config,
LongFunction supplyCatalog)
{
super(config, supplyCatalog);
}
@Override
- public int validate(
- DirectBuffer data,
- int index,
- int length,
- ValueConsumer next)
- {
- return validateComplete(data, index, length, next);
- }
-
- @Override
- public int validate(
- int flags,
- DirectBuffer data,
- int index,
- int length,
- FragmentConsumer next)
- {
- return (flags & FLAGS_FIN) != 0x00
- ? validateComplete(data, index, length, (b, i, l) -> next.accept(FLAGS_COMPLETE, b, i, l))
- : 0;
- }
-
- private int validateComplete(
+ public int convert(
DirectBuffer data,
int index,
int length,
diff --git a/incubator/validator-json/src/main/java/io/aklivity/zilla/runtime/validator/json/JsonWriteValidator.java b/incubator/types-json/src/main/java/io/aklivity/zilla/runtime/types/json/JsonWriteConverter.java
similarity index 57%
rename from incubator/validator-json/src/main/java/io/aklivity/zilla/runtime/validator/json/JsonWriteValidator.java
rename to incubator/types-json/src/main/java/io/aklivity/zilla/runtime/types/json/JsonWriteConverter.java
index 2cf1b059d8..e5710f8a41 100644
--- a/incubator/validator-json/src/main/java/io/aklivity/zilla/runtime/validator/json/JsonWriteValidator.java
+++ b/incubator/types-json/src/main/java/io/aklivity/zilla/runtime/types/json/JsonWriteConverter.java
@@ -12,23 +12,21 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.json;
+package io.aklivity.zilla.runtime.types.json;
import java.util.function.LongFunction;
import org.agrona.DirectBuffer;
import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
-import io.aklivity.zilla.runtime.engine.validator.FragmentValidator;
-import io.aklivity.zilla.runtime.engine.validator.ValueValidator;
-import io.aklivity.zilla.runtime.engine.validator.function.FragmentConsumer;
-import io.aklivity.zilla.runtime.engine.validator.function.ValueConsumer;
-import io.aklivity.zilla.runtime.validator.json.config.JsonValidatorConfig;
+import io.aklivity.zilla.runtime.engine.converter.Converter;
+import io.aklivity.zilla.runtime.engine.converter.function.ValueConsumer;
+import io.aklivity.zilla.runtime.types.json.config.JsonConverterConfig;
-public class JsonWriteValidator extends JsonValidator implements ValueValidator, FragmentValidator
+public class JsonWriteConverter extends JsonConverter implements Converter
{
- public JsonWriteValidator(
- JsonValidatorConfig config,
+ public JsonWriteConverter(
+ JsonConverterConfig config,
LongFunction supplyCatalog)
{
super(config, supplyCatalog);
@@ -44,29 +42,7 @@ public int padding(
}
@Override
- public int validate(
- DirectBuffer data,
- int index,
- int length,
- ValueConsumer next)
- {
- return validateComplete(data, index, length, next);
- }
-
- @Override
- public int validate(
- int flags,
- DirectBuffer data,
- int index,
- int length,
- FragmentConsumer next)
- {
- return (flags & FLAGS_FIN) != 0x00
- ? validateComplete(data, index, length, (b, i, l) -> next.accept(FLAGS_COMPLETE, b, i, l))
- : 0;
- }
-
- private int validateComplete(
+ public int convert(
DirectBuffer data,
int index,
int length,
diff --git a/incubator/validator-json/src/main/java/io/aklivity/zilla/runtime/validator/json/config/JsonValidatorConfig.java b/incubator/types-json/src/main/java/io/aklivity/zilla/runtime/types/json/config/JsonConverterConfig.java
similarity index 65%
rename from incubator/validator-json/src/main/java/io/aklivity/zilla/runtime/validator/json/config/JsonValidatorConfig.java
rename to incubator/types-json/src/main/java/io/aklivity/zilla/runtime/types/json/config/JsonConverterConfig.java
index 339f2df03b..5b945e991d 100644
--- a/incubator/validator-json/src/main/java/io/aklivity/zilla/runtime/validator/json/config/JsonValidatorConfig.java
+++ b/incubator/types-json/src/main/java/io/aklivity/zilla/runtime/types/json/config/JsonConverterConfig.java
@@ -12,19 +12,19 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.json.config;
+package io.aklivity.zilla.runtime.types.json.config;
import java.util.List;
import java.util.function.Function;
import io.aklivity.zilla.runtime.engine.config.CatalogedConfig;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
-public final class JsonValidatorConfig extends ValidatorConfig
+public final class JsonConverterConfig extends ConverterConfig
{
public final String subject;
- JsonValidatorConfig(
+ JsonConverterConfig(
List cataloged,
String subject)
{
@@ -32,14 +32,14 @@ public final class JsonValidatorConfig extends ValidatorConfig
this.subject = subject;
}
- public static JsonValidatorConfigBuilder builder(
- Function mapper)
+ public static JsonConverterConfigBuilder builder(
+ Function mapper)
{
- return new JsonValidatorConfigBuilder<>(mapper::apply);
+ return new JsonConverterConfigBuilder<>(mapper::apply);
}
- public static JsonValidatorConfigBuilder builder()
+ public static JsonConverterConfigBuilder builder()
{
- return new JsonValidatorConfigBuilder<>(JsonValidatorConfig.class::cast);
+ return new JsonConverterConfigBuilder<>(JsonConverterConfig.class::cast);
}
}
diff --git a/incubator/validator-json/src/main/java/io/aklivity/zilla/runtime/validator/json/config/JsonValidatorConfigAdapter.java b/incubator/types-json/src/main/java/io/aklivity/zilla/runtime/types/json/config/JsonConverterConfigAdapter.java
similarity index 81%
rename from incubator/validator-json/src/main/java/io/aklivity/zilla/runtime/validator/json/config/JsonValidatorConfigAdapter.java
rename to incubator/types-json/src/main/java/io/aklivity/zilla/runtime/types/json/config/JsonConverterConfigAdapter.java
index d682640b69..a7437c50ea 100644
--- a/incubator/validator-json/src/main/java/io/aklivity/zilla/runtime/validator/json/config/JsonValidatorConfigAdapter.java
+++ b/incubator/types-json/src/main/java/io/aklivity/zilla/runtime/types/json/config/JsonConverterConfigAdapter.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.json.config;
+package io.aklivity.zilla.runtime.types.json.config;
import java.util.LinkedList;
import java.util.List;
@@ -26,12 +26,12 @@
import jakarta.json.bind.adapter.JsonbAdapter;
import io.aklivity.zilla.runtime.engine.config.CatalogedConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfigAdapterSpi;
import io.aklivity.zilla.runtime.engine.config.SchemaConfig;
import io.aklivity.zilla.runtime.engine.config.SchemaConfigAdapter;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfigAdapterSpi;
-public final class JsonValidatorConfigAdapter implements ValidatorConfigAdapterSpi, JsonbAdapter
+public final class JsonConverterConfigAdapter implements ConverterConfigAdapterSpi, JsonbAdapter
{
private static final String JSON = "json";
private static final String TYPE_NAME = "type";
@@ -48,11 +48,11 @@ public String type()
@Override
public JsonValue adaptToJson(
- ValidatorConfig config)
+ ConverterConfig config)
{
- JsonValidatorConfig jsonConfig = (JsonValidatorConfig) config;
- JsonObjectBuilder validator = Json.createObjectBuilder();
- validator.add(TYPE_NAME, JSON);
+ JsonConverterConfig jsonConfig = (JsonConverterConfig) config;
+ JsonObjectBuilder converter = Json.createObjectBuilder();
+ converter.add(TYPE_NAME, JSON);
if (jsonConfig.cataloged != null && !jsonConfig.cataloged.isEmpty())
{
JsonObjectBuilder catalogs = Json.createObjectBuilder();
@@ -65,13 +65,13 @@ public JsonValue adaptToJson(
}
catalogs.add(catalog.name, array);
}
- validator.add(CATALOG_NAME, catalogs);
+ converter.add(CATALOG_NAME, catalogs);
}
- return validator.build();
+ return converter.build();
}
@Override
- public ValidatorConfig adaptFromJson(
+ public ConverterConfig adaptFromJson(
JsonValue value)
{
JsonObject object = (JsonObject) value;
@@ -97,6 +97,6 @@ public ValidatorConfig adaptFromJson(
? object.getString(SUBJECT_NAME)
: null;
- return new JsonValidatorConfig(catalogs, subject);
+ return new JsonConverterConfig(catalogs, subject);
}
}
diff --git a/incubator/validator-json/src/main/java/io/aklivity/zilla/runtime/validator/json/config/JsonValidatorConfigBuilder.java b/incubator/types-json/src/main/java/io/aklivity/zilla/runtime/types/json/config/JsonConverterConfigBuilder.java
similarity index 69%
rename from incubator/validator-json/src/main/java/io/aklivity/zilla/runtime/validator/json/config/JsonValidatorConfigBuilder.java
rename to incubator/types-json/src/main/java/io/aklivity/zilla/runtime/types/json/config/JsonConverterConfigBuilder.java
index e98095fe7b..20c60278f3 100644
--- a/incubator/validator-json/src/main/java/io/aklivity/zilla/runtime/validator/json/config/JsonValidatorConfigBuilder.java
+++ b/incubator/types-json/src/main/java/io/aklivity/zilla/runtime/types/json/config/JsonConverterConfigBuilder.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.json.config;
+package io.aklivity.zilla.runtime.types.json.config;
import java.util.LinkedList;
import java.util.List;
@@ -22,39 +22,39 @@
import io.aklivity.zilla.runtime.engine.config.CatalogedConfigBuilder;
import io.aklivity.zilla.runtime.engine.config.ConfigBuilder;
-public class JsonValidatorConfigBuilder extends ConfigBuilder>
+public class JsonConverterConfigBuilder extends ConfigBuilder>
{
- private final Function mapper;
+ private final Function mapper;
private List catalogs;
private String subject;
- JsonValidatorConfigBuilder(
- Function mapper)
+ JsonConverterConfigBuilder(
+ Function mapper)
{
this.mapper = mapper;
}
@Override
@SuppressWarnings("unchecked")
- protected Class> thisType()
+ protected Class> thisType()
{
- return (Class>) getClass();
+ return (Class>) getClass();
}
- public CatalogedConfigBuilder> catalog()
+ public CatalogedConfigBuilder> catalog()
{
return CatalogedConfig.builder(this::catalog);
}
- public JsonValidatorConfigBuilder subject(
+ public JsonConverterConfigBuilder subject(
String subject)
{
this.subject = subject;
return this;
}
- public JsonValidatorConfigBuilder catalog(
+ public JsonConverterConfigBuilder catalog(
CatalogedConfig catalog)
{
if (catalogs == null)
@@ -68,6 +68,6 @@ public JsonValidatorConfigBuilder catalog(
@Override
public T build()
{
- return mapper.apply(new JsonValidatorConfig(catalogs, subject));
+ return mapper.apply(new JsonConverterConfig(catalogs, subject));
}
}
diff --git a/incubator/validator-json/src/main/moditect/module-info.java b/incubator/types-json/src/main/moditect/module-info.java
similarity index 63%
rename from incubator/validator-json/src/main/moditect/module-info.java
rename to incubator/types-json/src/main/moditect/module-info.java
index 3931d8cd17..e168ff3523 100644
--- a/incubator/validator-json/src/main/moditect/module-info.java
+++ b/incubator/types-json/src/main/moditect/module-info.java
@@ -12,17 +12,17 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-module io.aklivity.zilla.runtime.validator.json
+module io.aklivity.zilla.runtime.types.json
{
requires io.aklivity.zilla.runtime.engine;
requires org.leadpony.justify;
- exports io.aklivity.zilla.runtime.validator.json.config;
+ exports io.aklivity.zilla.runtime.types.json.config;
- provides io.aklivity.zilla.runtime.engine.config.ValidatorConfigAdapterSpi
- with io.aklivity.zilla.runtime.validator.json.config.JsonValidatorConfigAdapter;
+ provides io.aklivity.zilla.runtime.engine.config.ConverterConfigAdapterSpi
+ with io.aklivity.zilla.runtime.types.json.config.JsonConverterConfigAdapter;
- provides io.aklivity.zilla.runtime.engine.validator.ValidatorFactorySpi
- with io.aklivity.zilla.runtime.validator.json.JsonValidatorFactory;
+ provides io.aklivity.zilla.runtime.engine.converter.ConverterFactorySpi
+ with io.aklivity.zilla.runtime.types.json.JsonConverterFactory;
}
diff --git a/incubator/types-json/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.config.ConverterConfigAdapterSpi b/incubator/types-json/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.config.ConverterConfigAdapterSpi
new file mode 100644
index 0000000000..6f34e76cea
--- /dev/null
+++ b/incubator/types-json/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.config.ConverterConfigAdapterSpi
@@ -0,0 +1 @@
+io.aklivity.zilla.runtime.types.json.config.JsonConverterConfigAdapter
diff --git a/incubator/types-json/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.converter.ConverterFactorySpi b/incubator/types-json/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.converter.ConverterFactorySpi
new file mode 100644
index 0000000000..077b0fdcee
--- /dev/null
+++ b/incubator/types-json/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.converter.ConverterFactorySpi
@@ -0,0 +1 @@
+io.aklivity.zilla.runtime.types.json.JsonConverterFactory
diff --git a/incubator/validator-json/src/test/java/io/aklivity/zilla/runtime/validator/json/JsonValidatorFactoryTest.java b/incubator/types-json/src/test/java/io/aklivity/zilla/runtime/types/json/JsonConverterFactoryTest.java
similarity index 66%
rename from incubator/validator-json/src/test/java/io/aklivity/zilla/runtime/validator/json/JsonValidatorFactoryTest.java
rename to incubator/types-json/src/test/java/io/aklivity/zilla/runtime/types/json/JsonConverterFactoryTest.java
index 48a66f3eda..5ab13eaf6d 100644
--- a/incubator/validator-json/src/test/java/io/aklivity/zilla/runtime/validator/json/JsonValidatorFactoryTest.java
+++ b/incubator/types-json/src/test/java/io/aklivity/zilla/runtime/types/json/JsonConverterFactoryTest.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.json;
+package io.aklivity.zilla.runtime.types.json;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -22,19 +22,19 @@
import org.junit.Test;
import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
+import io.aklivity.zilla.runtime.engine.converter.Converter;
import io.aklivity.zilla.runtime.engine.test.internal.catalog.TestCatalogHandler;
import io.aklivity.zilla.runtime.engine.test.internal.catalog.config.TestCatalogOptionsConfig;
-import io.aklivity.zilla.runtime.engine.validator.ValueValidator;
-import io.aklivity.zilla.runtime.validator.json.config.JsonValidatorConfig;
+import io.aklivity.zilla.runtime.types.json.config.JsonConverterConfig;
-public class JsonValidatorFactoryTest
+public class JsonConverterFactoryTest
{
@Test
- public void shouldCreateReadValidator()
+ public void shouldCreateReader()
{
// GIVEN
- ValidatorConfig validator = JsonValidatorConfig.builder()
+ ConverterConfig converter = JsonConverterConfig.builder()
.catalog()
.name("test0")
.build()
@@ -44,20 +44,20 @@ public void shouldCreateReadValidator()
.id(1)
.schema("schema0")
.build());
- JsonValidatorFactory factory = new JsonValidatorFactory();
+ JsonConverterFactory factory = new JsonConverterFactory();
// WHEN
- ValueValidator reader = factory.createValueReader(validator, supplyCatalog);
+ Converter reader = factory.createReader(converter, supplyCatalog);
// THEN
- assertThat(reader, instanceOf(JsonReadValidator.class));
+ assertThat(reader, instanceOf(JsonReadConverter.class));
}
@Test
- public void shouldCreateWriteValidator()
+ public void shouldCreateWriter()
{
// GIVEN
- ValidatorConfig validator = JsonValidatorConfig.builder()
+ ConverterConfig converter = JsonConverterConfig.builder()
.catalog()
.name("test0")
.build()
@@ -67,12 +67,12 @@ public void shouldCreateWriteValidator()
.id(1)
.schema("schema0")
.build());
- JsonValidatorFactory factory = new JsonValidatorFactory();
+ JsonConverterFactory factory = new JsonConverterFactory();
// WHEN
- ValueValidator writer = factory.createValueWriter(validator, supplyCatalog);
+ Converter writer = factory.createWriter(converter, supplyCatalog);
// THEN
- assertThat(writer, instanceOf(JsonWriteValidator.class));
+ assertThat(writer, instanceOf(JsonWriteConverter.class));
}
}
diff --git a/incubator/validator-json/src/test/java/io/aklivity/zilla/runtime/validator/json/JsonValidatorTest.java b/incubator/types-json/src/test/java/io/aklivity/zilla/runtime/types/json/JsonConverterTest.java
similarity index 68%
rename from incubator/validator-json/src/test/java/io/aklivity/zilla/runtime/validator/json/JsonValidatorTest.java
rename to incubator/types-json/src/test/java/io/aklivity/zilla/runtime/types/json/JsonConverterTest.java
index 023ca989d6..1379cd2b3c 100644
--- a/incubator/validator-json/src/test/java/io/aklivity/zilla/runtime/validator/json/JsonValidatorTest.java
+++ b/incubator/types-json/src/test/java/io/aklivity/zilla/runtime/types/json/JsonConverterTest.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.json;
+package io.aklivity.zilla.runtime.types.json;
import static io.aklivity.zilla.runtime.engine.EngineConfiguration.ENGINE_DIRECTORY;
import static org.junit.Assert.assertEquals;
@@ -33,13 +33,12 @@
import io.aklivity.zilla.runtime.engine.catalog.CatalogContext;
import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
import io.aklivity.zilla.runtime.engine.config.CatalogConfig;
+import io.aklivity.zilla.runtime.engine.converter.function.ValueConsumer;
import io.aklivity.zilla.runtime.engine.test.internal.catalog.TestCatalog;
import io.aklivity.zilla.runtime.engine.test.internal.catalog.config.TestCatalogOptionsConfig;
-import io.aklivity.zilla.runtime.engine.validator.function.FragmentConsumer;
-import io.aklivity.zilla.runtime.engine.validator.function.ValueConsumer;
-import io.aklivity.zilla.runtime.validator.json.config.JsonValidatorConfig;
+import io.aklivity.zilla.runtime.types.json.config.JsonConverterConfig;
-public class JsonValidatorTest
+public class JsonConverterTest
{
private static final String OBJECT_SCHEMA = "{" +
"\"type\": \"object\"," +
@@ -64,7 +63,7 @@ public class JsonValidatorTest
OBJECT_SCHEMA +
"}";
- private final JsonValidatorConfig config = JsonValidatorConfig.builder()
+ private final JsonConverterConfig config = JsonConverterConfig.builder()
.catalog()
.name("test0")
.schema()
@@ -96,7 +95,7 @@ public void shouldVerifyValidJsonObject()
.schema(OBJECT_SCHEMA)
.build());
LongFunction handler = value -> context.attach(catalogConfig);
- JsonReadValidator validator = new JsonReadValidator(config, handler);
+ JsonReadConverter converter = new JsonReadConverter(config, handler);
DirectBuffer data = new UnsafeBuffer();
@@ -107,7 +106,7 @@ public void shouldVerifyValidJsonObject()
"}";
byte[] bytes = payload.getBytes();
data.wrap(bytes, 0, bytes.length);
- assertEquals(data.capacity(), validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
+ assertEquals(data.capacity(), converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
}
@Test
@@ -119,7 +118,7 @@ public void shouldVerifyValidJsonArray()
.schema(ARRAY_SCHEMA)
.build());
LongFunction handler = value -> context.attach(catalogConfig);
- JsonWriteValidator validator = new JsonWriteValidator(config, handler);
+ JsonWriteConverter converter = new JsonWriteConverter(config, handler);
DirectBuffer data = new UnsafeBuffer();
@@ -133,7 +132,7 @@ public void shouldVerifyValidJsonArray()
byte[] bytes = payload.getBytes();
data.wrap(bytes, 0, bytes.length);
- assertEquals(data.capacity(), validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
+ assertEquals(data.capacity(), converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
}
@Test
@@ -145,7 +144,7 @@ public void shouldVerifyInvalidJsonObject()
.schema(OBJECT_SCHEMA)
.build());
LongFunction handler = value -> context.attach(catalogConfig);
- JsonReadValidator validator = new JsonReadValidator(config, handler);
+ JsonReadConverter converter = new JsonReadConverter(config, handler);
DirectBuffer data = new UnsafeBuffer();
@@ -161,7 +160,7 @@ public void shouldVerifyInvalidJsonObject()
value.putBytes(0, new byte[]{0x00, 0x00, 0x00, 0x00, 0x01});
value.putBytes(5, bytes);
- assertEquals(-1, validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
+ assertEquals(-1, converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
}
@Test
@@ -173,7 +172,7 @@ public void shouldWriteValidJsonData()
.schema(OBJECT_SCHEMA)
.build());
LongFunction handler = value -> context.attach(catalogConfig);
- JsonWriteValidator validator = new JsonWriteValidator(config, handler);
+ JsonWriteConverter converter = new JsonWriteConverter(config, handler);
DirectBuffer data = new UnsafeBuffer();
@@ -185,59 +184,7 @@ public void shouldWriteValidJsonData()
byte[] bytes = payload.getBytes();
data.wrap(bytes, 0, bytes.length);
- assertEquals(data.capacity(), validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
- }
-
- @Test
- public void shouldWriteValidFragmentJsonData()
- {
- CatalogConfig catalogConfig = new CatalogConfig("test0", "test",
- TestCatalogOptionsConfig.builder()
- .id(9)
- .schema(OBJECT_SCHEMA)
- .build());
- LongFunction handler = value -> context.attach(catalogConfig);
- JsonWriteValidator validator = new JsonWriteValidator(config, handler);
-
- DirectBuffer data = new UnsafeBuffer();
-
- String payload =
- "{" +
- "\"id\": \"123\"," +
- "\"status\": \"OK\"" +
- "}";
- byte[] bytes = payload.getBytes();
- data.wrap(bytes, 0, bytes.length);
-
- assertEquals(0, validator.validate(0x00, data, 0, data.capacity(), FragmentConsumer.NOP));
-
- assertEquals(data.capacity(), validator.validate(0x01, data, 0, data.capacity(), FragmentConsumer.NOP));
- }
-
- @Test
- public void shouldVerifyValidFragmentJsonData()
- {
- CatalogConfig catalogConfig = new CatalogConfig("test0", "test",
- TestCatalogOptionsConfig.builder()
- .id(9)
- .schema(OBJECT_SCHEMA)
- .build());
- LongFunction handler = value -> context.attach(catalogConfig);
- JsonReadValidator validator = new JsonReadValidator(config, handler);
-
- DirectBuffer data = new UnsafeBuffer();
-
- String payload =
- "{" +
- "\"id\": \"123\"," +
- "\"status\": \"OK\"" +
- "}";
- byte[] bytes = payload.getBytes();
- data.wrap(bytes, 0, bytes.length);
-
- assertEquals(0, validator.validate(0x00, data, 0, data.capacity(), FragmentConsumer.NOP));
-
- assertEquals(data.capacity(), validator.validate(0x01, data, 0, data.capacity(), FragmentConsumer.NOP));
+ assertEquals(data.capacity(), converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
}
@Test
@@ -249,7 +196,7 @@ public void shouldVerifyInvalidJsonArray()
.schema(ARRAY_SCHEMA)
.build());
LongFunction handler = value -> context.attach(catalogConfig);
- JsonWriteValidator validator = new JsonWriteValidator(config, handler);
+ JsonWriteConverter converter = new JsonWriteConverter(config, handler);
DirectBuffer data = new UnsafeBuffer();
@@ -262,6 +209,6 @@ public void shouldVerifyInvalidJsonArray()
"]";
byte[] bytes = payload.getBytes();
data.wrap(bytes, 0, bytes.length);
- assertEquals(-1, validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
+ assertEquals(-1, converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
}
}
diff --git a/incubator/validator-json/src/test/java/io/aklivity/zilla/runtime/validator/json/config/JsonValidatorConfigAdapterTest.java b/incubator/types-json/src/test/java/io/aklivity/zilla/runtime/types/json/config/JsonConverterConfigAdapterTest.java
similarity index 69%
rename from incubator/validator-json/src/test/java/io/aklivity/zilla/runtime/validator/json/config/JsonValidatorConfigAdapterTest.java
rename to incubator/types-json/src/test/java/io/aklivity/zilla/runtime/types/json/config/JsonConverterConfigAdapterTest.java
index 53ebc16ba1..5113aa8614 100644
--- a/incubator/validator-json/src/test/java/io/aklivity/zilla/runtime/validator/json/config/JsonValidatorConfigAdapterTest.java
+++ b/incubator/types-json/src/test/java/io/aklivity/zilla/runtime/types/json/config/JsonConverterConfigAdapterTest.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.json.config;
+package io.aklivity.zilla.runtime.types.json.config;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
@@ -26,7 +26,7 @@
import org.junit.Before;
import org.junit.Test;
-public class JsonValidatorConfigAdapterTest
+public class JsonConverterConfigAdapterTest
{
private Jsonb jsonb;
@@ -34,12 +34,12 @@ public class JsonValidatorConfigAdapterTest
public void initJson()
{
JsonbConfig config = new JsonbConfig()
- .withAdapters(new JsonValidatorConfigAdapter());
+ .withAdapters(new JsonConverterConfigAdapter());
jsonb = JsonbBuilder.create(config);
}
@Test
- public void shouldReadJsonValidator()
+ public void shouldReadJsonConverter()
{
// GIVEN
String json =
@@ -65,26 +65,26 @@ public void shouldReadJsonValidator()
"}";
// WHEN
- JsonValidatorConfig validator = jsonb.fromJson(json, JsonValidatorConfig.class);
+ JsonConverterConfig config = jsonb.fromJson(json, JsonConverterConfig.class);
// THEN
- assertThat(validator, not(nullValue()));
- assertThat(validator.type, equalTo("json"));
- assertThat(validator.cataloged.size(), equalTo(1));
- assertThat(validator.cataloged.get(0).name, equalTo("test0"));
- assertThat(validator.cataloged.get(0).schemas.get(0).subject, equalTo("subject1"));
- assertThat(validator.cataloged.get(0).schemas.get(0).version, equalTo("latest"));
- assertThat(validator.cataloged.get(0).schemas.get(0).id, equalTo(0));
- assertThat(validator.cataloged.get(0).schemas.get(1).strategy, equalTo("topic"));
- assertThat(validator.cataloged.get(0).schemas.get(1).version, equalTo("latest"));
- assertThat(validator.cataloged.get(0).schemas.get(1).id, equalTo(0));
- assertThat(validator.cataloged.get(0).schemas.get(2).strategy, nullValue());
- assertThat(validator.cataloged.get(0).schemas.get(2).version, nullValue());
- assertThat(validator.cataloged.get(0).schemas.get(2).id, equalTo(42));
+ assertThat(config, not(nullValue()));
+ assertThat(config.type, equalTo("json"));
+ assertThat(config.cataloged.size(), equalTo(1));
+ assertThat(config.cataloged.get(0).name, equalTo("test0"));
+ assertThat(config.cataloged.get(0).schemas.get(0).subject, equalTo("subject1"));
+ assertThat(config.cataloged.get(0).schemas.get(0).version, equalTo("latest"));
+ assertThat(config.cataloged.get(0).schemas.get(0).id, equalTo(0));
+ assertThat(config.cataloged.get(0).schemas.get(1).strategy, equalTo("topic"));
+ assertThat(config.cataloged.get(0).schemas.get(1).version, equalTo("latest"));
+ assertThat(config.cataloged.get(0).schemas.get(1).id, equalTo(0));
+ assertThat(config.cataloged.get(0).schemas.get(2).strategy, nullValue());
+ assertThat(config.cataloged.get(0).schemas.get(2).version, nullValue());
+ assertThat(config.cataloged.get(0).schemas.get(2).id, equalTo(42));
}
@Test
- public void shouldWriteJsonValidator()
+ public void shouldWriteJsonConverter()
{
// GIVEN
String expectedJson =
@@ -108,7 +108,7 @@ public void shouldWriteJsonValidator()
"]" +
"}" +
"}";
- JsonValidatorConfig validator = JsonValidatorConfig.builder()
+ JsonConverterConfig config = JsonConverterConfig.builder()
.catalog()
.name("test0")
.schema()
@@ -126,7 +126,7 @@ public void shouldWriteJsonValidator()
.build();
// WHEN
- String json = jsonb.toJson(validator);
+ String json = jsonb.toJson(config);
// THEN
assertThat(json, not(nullValue()));
diff --git a/incubator/validator-protobuf.spec/COPYRIGHT b/incubator/types-protobuf.spec/COPYRIGHT
similarity index 100%
rename from incubator/validator-protobuf.spec/COPYRIGHT
rename to incubator/types-protobuf.spec/COPYRIGHT
diff --git a/incubator/validator-protobuf.spec/LICENSE b/incubator/types-protobuf.spec/LICENSE
similarity index 100%
rename from incubator/validator-protobuf.spec/LICENSE
rename to incubator/types-protobuf.spec/LICENSE
diff --git a/incubator/validator-protobuf.spec/NOTICE b/incubator/types-protobuf.spec/NOTICE
similarity index 100%
rename from incubator/validator-protobuf.spec/NOTICE
rename to incubator/types-protobuf.spec/NOTICE
diff --git a/incubator/validator-protobuf.spec/NOTICE.template b/incubator/types-protobuf.spec/NOTICE.template
similarity index 100%
rename from incubator/validator-protobuf.spec/NOTICE.template
rename to incubator/types-protobuf.spec/NOTICE.template
diff --git a/incubator/validator-protobuf.spec/mvnw b/incubator/types-protobuf.spec/mvnw
similarity index 100%
rename from incubator/validator-protobuf.spec/mvnw
rename to incubator/types-protobuf.spec/mvnw
diff --git a/incubator/validator-protobuf.spec/mvnw.cmd b/incubator/types-protobuf.spec/mvnw.cmd
similarity index 100%
rename from incubator/validator-protobuf.spec/mvnw.cmd
rename to incubator/types-protobuf.spec/mvnw.cmd
diff --git a/incubator/validator-protobuf.spec/pom.xml b/incubator/types-protobuf.spec/pom.xml
similarity index 97%
rename from incubator/validator-protobuf.spec/pom.xml
rename to incubator/types-protobuf.spec/pom.xml
index aaf5571fe3..b4db02e752 100644
--- a/incubator/validator-protobuf.spec/pom.xml
+++ b/incubator/types-protobuf.spec/pom.xml
@@ -12,8 +12,8 @@
../pom.xml
-validator-protobuf.spec
-zilla::incubator::validator-protobuf.spec
+types-protobuf.spec
+zilla::incubator::types-protobuf.spec
diff --git a/incubator/validator-protobuf.spec/src/main/moditect/module-info.java b/incubator/types-protobuf.spec/src/main/moditect/module-info.java
similarity index 92%
rename from incubator/validator-protobuf.spec/src/main/moditect/module-info.java
rename to incubator/types-protobuf.spec/src/main/moditect/module-info.java
index 9c10b90fa0..2dc331fe6a 100644
--- a/incubator/validator-protobuf.spec/src/main/moditect/module-info.java
+++ b/incubator/types-protobuf.spec/src/main/moditect/module-info.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-open module io.aklivity.zilla.specs.validator.protobuf
+open module io.aklivity.zilla.specs.types.protobuf
{
requires transitive io.aklivity.zilla.specs.engine;
}
diff --git a/incubator/validator-protobuf.spec/src/main/scripts/io/aklivity/zilla/specs/validator/protobuf/config/validator.yaml b/incubator/types-protobuf.spec/src/main/scripts/io/aklivity/zilla/specs/types/protobuf/config/converter.yaml
similarity index 100%
rename from incubator/validator-protobuf.spec/src/main/scripts/io/aklivity/zilla/specs/validator/protobuf/config/validator.yaml
rename to incubator/types-protobuf.spec/src/main/scripts/io/aklivity/zilla/specs/types/protobuf/config/converter.yaml
diff --git a/incubator/validator-protobuf.spec/src/main/scripts/io/aklivity/zilla/specs/validator/protobuf/schema/protobuf.schema.patch.json b/incubator/types-protobuf.spec/src/main/scripts/io/aklivity/zilla/specs/types/protobuf/schema/protobuf.schema.patch.json
similarity index 98%
rename from incubator/validator-protobuf.spec/src/main/scripts/io/aklivity/zilla/specs/validator/protobuf/schema/protobuf.schema.patch.json
rename to incubator/types-protobuf.spec/src/main/scripts/io/aklivity/zilla/specs/types/protobuf/schema/protobuf.schema.patch.json
index 92ec64be6d..570fdd3b9e 100644
--- a/incubator/validator-protobuf.spec/src/main/scripts/io/aklivity/zilla/specs/validator/protobuf/schema/protobuf.schema.patch.json
+++ b/incubator/types-protobuf.spec/src/main/scripts/io/aklivity/zilla/specs/types/protobuf/schema/protobuf.schema.patch.json
@@ -1,12 +1,12 @@
[
{
"op": "add",
- "path": "/$defs/validator/types/enum/-",
+ "path": "/$defs/converter/types/enum/-",
"value": "protobuf"
},
{
"op": "add",
- "path": "/$defs/validator/allOf/-",
+ "path": "/$defs/converter/allOf/-",
"value":
{
"if":
diff --git a/incubator/validator-protobuf.spec/src/test/java/io/aklivity/zilla/specs/validator/protobuf/config/SchemaTest.java b/incubator/types-protobuf.spec/src/test/java/io/aklivity/zilla/specs/types/protobuf/config/SchemaTest.java
similarity index 80%
rename from incubator/validator-protobuf.spec/src/test/java/io/aklivity/zilla/specs/validator/protobuf/config/SchemaTest.java
rename to incubator/types-protobuf.spec/src/test/java/io/aklivity/zilla/specs/types/protobuf/config/SchemaTest.java
index 38111b881a..fd2ad5fcc0 100644
--- a/incubator/validator-protobuf.spec/src/test/java/io/aklivity/zilla/specs/validator/protobuf/config/SchemaTest.java
+++ b/incubator/types-protobuf.spec/src/test/java/io/aklivity/zilla/specs/types/protobuf/config/SchemaTest.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.specs.validator.protobuf.config;
+package io.aklivity.zilla.specs.types.protobuf.config;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.not;
@@ -31,13 +31,13 @@ public class SchemaTest
public final ConfigSchemaRule schema = new ConfigSchemaRule()
.schemaPatch("io/aklivity/zilla/specs/engine/schema/binding/test.schema.patch.json")
.schemaPatch("io/aklivity/zilla/specs/engine/schema/catalog/test.schema.patch.json")
- .schemaPatch("io/aklivity/zilla/specs/validator/protobuf/schema/protobuf.schema.patch.json")
- .configurationRoot("io/aklivity/zilla/specs/validator/protobuf/config");
+ .schemaPatch("io/aklivity/zilla/specs/types/protobuf/schema/protobuf.schema.patch.json")
+ .configurationRoot("io/aklivity/zilla/specs/types/protobuf/config");
@Test
public void shouldValidateCatalog()
{
- JsonObject config = schema.validate("validator.yaml");
+ JsonObject config = schema.validate("converter.yaml");
assertThat(config, not(nullValue()));
}
diff --git a/incubator/validator-protobuf/COPYRIGHT b/incubator/types-protobuf/COPYRIGHT
similarity index 100%
rename from incubator/validator-protobuf/COPYRIGHT
rename to incubator/types-protobuf/COPYRIGHT
diff --git a/incubator/validator-protobuf/LICENSE b/incubator/types-protobuf/LICENSE
similarity index 100%
rename from incubator/validator-protobuf/LICENSE
rename to incubator/types-protobuf/LICENSE
diff --git a/incubator/validator-protobuf/NOTICE b/incubator/types-protobuf/NOTICE
similarity index 100%
rename from incubator/validator-protobuf/NOTICE
rename to incubator/types-protobuf/NOTICE
diff --git a/incubator/validator-protobuf/NOTICE.template b/incubator/types-protobuf/NOTICE.template
similarity index 100%
rename from incubator/validator-protobuf/NOTICE.template
rename to incubator/types-protobuf/NOTICE.template
diff --git a/incubator/validator-protobuf/mvnw b/incubator/types-protobuf/mvnw
similarity index 100%
rename from incubator/validator-protobuf/mvnw
rename to incubator/types-protobuf/mvnw
diff --git a/incubator/validator-protobuf/mvnw.cmd b/incubator/types-protobuf/mvnw.cmd
similarity index 100%
rename from incubator/validator-protobuf/mvnw.cmd
rename to incubator/types-protobuf/mvnw.cmd
diff --git a/incubator/validator-protobuf/pom.xml b/incubator/types-protobuf/pom.xml
similarity index 91%
rename from incubator/validator-protobuf/pom.xml
rename to incubator/types-protobuf/pom.xml
index 6d1f1bfef6..df8256829c 100644
--- a/incubator/validator-protobuf/pom.xml
+++ b/incubator/types-protobuf/pom.xml
@@ -12,8 +12,8 @@
../pom.xml
-validator-protobuf
-zilla::incubator::validator-protobuf
+types-protobuf
+zilla::incubator::types-protobuf
@@ -33,7 +33,7 @@
${project.groupId}
- validator-protobuf.spec
+ types-protobuf.spec
${project.version}
provided
@@ -111,16 +111,16 @@
${project.groupId}
- validator-protobuf.spec
+ types-protobuf.spec
- ^\Qio/aklivity/zilla/specs/validator/protobuf/\E
- io/aklivity/zilla/runtime/validator/protobuf/
+ ^\Qio/aklivity/zilla/specs/types/protobuf/\E
+ io/aklivity/zilla/runtime/types/protobuf/
- io/aklivity/zilla/specs/validator/protobuf/schema/protobuf.schema.patch.json
+ io/aklivity/zilla/specs/types/protobuf/schema/protobuf.schema.patch.json
${project.build.directory}/classes
@@ -134,7 +134,7 @@
${project.groupId}
- validator-protobuf.spec
+ types-protobuf.spec
${project.version}
${basedir}/target/test-classes
**\/*.proto
@@ -165,7 +165,7 @@
jacoco-maven-plugin
- io/aklivity/zilla/runtime/validator/protobuf/internal/parser/**/*.class
+ io/aklivity/zilla/runtime/types/protobuf/internal/parser/**/*.class
diff --git a/incubator/validator-protobuf/src/main/antlr4/io/aklivity/zilla/runtime/validator/protobuf/internal/parser/Protobuf3.g4 b/incubator/types-protobuf/src/main/antlr4/io/aklivity/zilla/runtime/types/protobuf/internal/parser/Protobuf3.g4
similarity index 100%
rename from incubator/validator-protobuf/src/main/antlr4/io/aklivity/zilla/runtime/validator/protobuf/internal/parser/Protobuf3.g4
rename to incubator/types-protobuf/src/main/antlr4/io/aklivity/zilla/runtime/types/protobuf/internal/parser/Protobuf3.g4
diff --git a/incubator/validator-protobuf/src/main/java/io/aklivity/zilla/runtime/validator/protobuf/DescriptorTree.java b/incubator/types-protobuf/src/main/java/io/aklivity/zilla/runtime/types/protobuf/DescriptorTree.java
similarity index 98%
rename from incubator/validator-protobuf/src/main/java/io/aklivity/zilla/runtime/validator/protobuf/DescriptorTree.java
rename to incubator/types-protobuf/src/main/java/io/aklivity/zilla/runtime/types/protobuf/DescriptorTree.java
index fcf57c1c39..e899d9eb69 100644
--- a/incubator/validator-protobuf/src/main/java/io/aklivity/zilla/runtime/validator/protobuf/DescriptorTree.java
+++ b/incubator/types-protobuf/src/main/java/io/aklivity/zilla/runtime/types/protobuf/DescriptorTree.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.protobuf;
+package io.aklivity.zilla.runtime.types.protobuf;
import java.util.LinkedHashMap;
import java.util.LinkedList;
diff --git a/incubator/validator-protobuf/src/main/java/io/aklivity/zilla/runtime/validator/protobuf/ProtoListener.java b/incubator/types-protobuf/src/main/java/io/aklivity/zilla/runtime/types/protobuf/ProtoListener.java
similarity index 96%
rename from incubator/validator-protobuf/src/main/java/io/aklivity/zilla/runtime/validator/protobuf/ProtoListener.java
rename to incubator/types-protobuf/src/main/java/io/aklivity/zilla/runtime/types/protobuf/ProtoListener.java
index 8ab28e564d..ddd2f97f3d 100644
--- a/incubator/validator-protobuf/src/main/java/io/aklivity/zilla/runtime/validator/protobuf/ProtoListener.java
+++ b/incubator/types-protobuf/src/main/java/io/aklivity/zilla/runtime/types/protobuf/ProtoListener.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.protobuf;
+package io.aklivity.zilla.runtime.types.protobuf;
import static java.util.Map.entry;
@@ -28,8 +28,8 @@
import com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type;
import com.google.protobuf.DescriptorProtos.FileDescriptorProto;
-import io.aklivity.zilla.runtime.validator.protobuf.internal.parser.Protobuf3BaseListener;
-import io.aklivity.zilla.runtime.validator.protobuf.internal.parser.Protobuf3Parser;
+import io.aklivity.zilla.runtime.types.protobuf.internal.parser.Protobuf3BaseListener;
+import io.aklivity.zilla.runtime.types.protobuf.internal.parser.Protobuf3Parser;
public class ProtoListener extends Protobuf3BaseListener
{
diff --git a/incubator/validator-protobuf/src/main/java/io/aklivity/zilla/runtime/validator/protobuf/ProtobufValidator.java b/incubator/types-protobuf/src/main/java/io/aklivity/zilla/runtime/types/protobuf/ProtobufConverter.java
similarity index 95%
rename from incubator/validator-protobuf/src/main/java/io/aklivity/zilla/runtime/validator/protobuf/ProtobufValidator.java
rename to incubator/types-protobuf/src/main/java/io/aklivity/zilla/runtime/types/protobuf/ProtobufConverter.java
index a699cc457e..cc23494813 100644
--- a/incubator/validator-protobuf/src/main/java/io/aklivity/zilla/runtime/validator/protobuf/ProtobufValidator.java
+++ b/incubator/types-protobuf/src/main/java/io/aklivity/zilla/runtime/types/protobuf/ProtobufConverter.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.protobuf;
+package io.aklivity.zilla.runtime.types.protobuf;
import java.util.Arrays;
import java.util.LinkedList;
@@ -41,11 +41,11 @@
import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
import io.aklivity.zilla.runtime.engine.config.CatalogedConfig;
import io.aklivity.zilla.runtime.engine.config.SchemaConfig;
-import io.aklivity.zilla.runtime.validator.protobuf.config.ProtobufValidatorConfig;
-import io.aklivity.zilla.runtime.validator.protobuf.internal.parser.Protobuf3Lexer;
-import io.aklivity.zilla.runtime.validator.protobuf.internal.parser.Protobuf3Parser;
+import io.aklivity.zilla.runtime.types.protobuf.config.ProtobufConverterConfig;
+import io.aklivity.zilla.runtime.types.protobuf.internal.parser.Protobuf3Lexer;
+import io.aklivity.zilla.runtime.types.protobuf.internal.parser.Protobuf3Parser;
-public class ProtobufValidator
+public class ProtobufConverter
{
protected static final byte[] ZERO_INDEX = new byte[]{0x0};
protected static final String FORMAT_JSON = "json";
@@ -67,8 +67,8 @@ public class ProtobufValidator
private final FileDescriptor[] dependencies;
private final Int2IntHashMap paddings;
- protected ProtobufValidator(
- ProtobufValidatorConfig config,
+ protected ProtobufConverter(
+ ProtobufConverterConfig config,
LongFunction supplyCatalog)
{
CatalogedConfig cataloged = config.cataloged.get(0);
diff --git a/incubator/types-protobuf/src/main/java/io/aklivity/zilla/runtime/types/protobuf/ProtobufConverterFactory.java b/incubator/types-protobuf/src/main/java/io/aklivity/zilla/runtime/types/protobuf/ProtobufConverterFactory.java
new file mode 100644
index 0000000000..ab3afa0afa
--- /dev/null
+++ b/incubator/types-protobuf/src/main/java/io/aklivity/zilla/runtime/types/protobuf/ProtobufConverterFactory.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2021-2023 Aklivity Inc
+ *
+ * Licensed under the Aklivity Community License (the "License"); you may not use
+ * this file except in compliance with the License. You may obtain a copy of the
+ * License at
+ *
+ * https://www.aklivity.io/aklivity-community-license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package io.aklivity.zilla.runtime.types.protobuf;
+
+import java.net.URL;
+import java.util.function.LongFunction;
+
+import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
+import io.aklivity.zilla.runtime.engine.converter.Converter;
+import io.aklivity.zilla.runtime.engine.converter.ConverterFactorySpi;
+import io.aklivity.zilla.runtime.types.protobuf.config.ProtobufConverterConfig;
+
+public final class ProtobufConverterFactory implements ConverterFactorySpi
+{
+ @Override
+ public String type()
+ {
+ return "protobuf";
+ }
+
+ public URL schema()
+ {
+ return getClass().getResource("schema/protobuf.schema.patch.json");
+ }
+
+ @Override
+ public Converter createReader(
+ ConverterConfig config,
+ LongFunction supplyCatalog)
+ {
+ return new ProtobufReadConverter(ProtobufConverterConfig.class.cast(config), supplyCatalog);
+ }
+
+ @Override
+ public Converter createWriter(
+ ConverterConfig config,
+ LongFunction supplyCatalog)
+ {
+ return new ProtobufWriteConverter(ProtobufConverterConfig.class.cast(config), supplyCatalog);
+ }
+}
diff --git a/incubator/validator-protobuf/src/main/java/io/aklivity/zilla/runtime/validator/protobuf/ProtobufReadValidator.java b/incubator/types-protobuf/src/main/java/io/aklivity/zilla/runtime/types/protobuf/ProtobufReadConverter.java
similarity index 79%
rename from incubator/validator-protobuf/src/main/java/io/aklivity/zilla/runtime/validator/protobuf/ProtobufReadValidator.java
rename to incubator/types-protobuf/src/main/java/io/aklivity/zilla/runtime/types/protobuf/ProtobufReadConverter.java
index 8fc7d49d93..fc30116e6e 100644
--- a/incubator/validator-protobuf/src/main/java/io/aklivity/zilla/runtime/validator/protobuf/ProtobufReadValidator.java
+++ b/incubator/types-protobuf/src/main/java/io/aklivity/zilla/runtime/types/protobuf/ProtobufReadConverter.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.protobuf;
+package io.aklivity.zilla.runtime.types.protobuf;
import static io.aklivity.zilla.runtime.engine.catalog.CatalogHandler.NO_SCHEMA_ID;
@@ -27,19 +27,17 @@
import com.google.protobuf.util.JsonFormat;
import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
-import io.aklivity.zilla.runtime.engine.validator.FragmentValidator;
-import io.aklivity.zilla.runtime.engine.validator.ValueValidator;
-import io.aklivity.zilla.runtime.engine.validator.function.FragmentConsumer;
-import io.aklivity.zilla.runtime.engine.validator.function.ValueConsumer;
-import io.aklivity.zilla.runtime.validator.protobuf.config.ProtobufValidatorConfig;
+import io.aklivity.zilla.runtime.engine.converter.Converter;
+import io.aklivity.zilla.runtime.engine.converter.function.ValueConsumer;
+import io.aklivity.zilla.runtime.types.protobuf.config.ProtobufConverterConfig;
-public class ProtobufReadValidator extends ProtobufValidator implements ValueValidator, FragmentValidator
+public class ProtobufReadConverter extends ProtobufConverter implements Converter
{
private final JsonFormat.Printer printer;
private final OutputStreamWriter output;
- public ProtobufReadValidator(
- ProtobufValidatorConfig config,
+ public ProtobufReadConverter(
+ ProtobufConverterConfig config,
LongFunction supplyCatalog)
{
super(config, supplyCatalog);
@@ -73,29 +71,7 @@ public int padding(
}
@Override
- public int validate(
- DirectBuffer data,
- int index,
- int length,
- ValueConsumer next)
- {
- return validateComplete(data, index, length, next);
- }
-
- @Override
- public int validate(
- int flags,
- DirectBuffer data,
- int index,
- int length,
- FragmentConsumer next)
- {
- return (flags & FLAGS_FIN) != 0x00
- ? validateComplete(data, index, length, (b, i, l) -> next.accept(FLAGS_COMPLETE, b, i, l))
- : 0;
- }
-
- private int validateComplete(
+ public int convert(
DirectBuffer data,
int index,
int length,
diff --git a/incubator/validator-protobuf/src/main/java/io/aklivity/zilla/runtime/validator/protobuf/ProtobufWriteValidator.java b/incubator/types-protobuf/src/main/java/io/aklivity/zilla/runtime/types/protobuf/ProtobufWriteConverter.java
similarity index 83%
rename from incubator/validator-protobuf/src/main/java/io/aklivity/zilla/runtime/validator/protobuf/ProtobufWriteValidator.java
rename to incubator/types-protobuf/src/main/java/io/aklivity/zilla/runtime/types/protobuf/ProtobufWriteConverter.java
index 2a785c7d74..ecf989dad8 100644
--- a/incubator/validator-protobuf/src/main/java/io/aklivity/zilla/runtime/validator/protobuf/ProtobufWriteValidator.java
+++ b/incubator/types-protobuf/src/main/java/io/aklivity/zilla/runtime/types/protobuf/ProtobufWriteConverter.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.protobuf;
+package io.aklivity.zilla.runtime.types.protobuf;
import java.io.IOException;
import java.io.InputStreamReader;
@@ -27,21 +27,19 @@
import com.google.protobuf.util.JsonFormat;
import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
-import io.aklivity.zilla.runtime.engine.validator.FragmentValidator;
-import io.aklivity.zilla.runtime.engine.validator.ValueValidator;
-import io.aklivity.zilla.runtime.engine.validator.function.FragmentConsumer;
-import io.aklivity.zilla.runtime.engine.validator.function.ValueConsumer;
-import io.aklivity.zilla.runtime.validator.protobuf.config.ProtobufValidatorConfig;
+import io.aklivity.zilla.runtime.engine.converter.Converter;
+import io.aklivity.zilla.runtime.engine.converter.function.ValueConsumer;
+import io.aklivity.zilla.runtime.types.protobuf.config.ProtobufConverterConfig;
-public class ProtobufWriteValidator extends ProtobufValidator implements ValueValidator, FragmentValidator
+public class ProtobufWriteConverter extends ProtobufConverter implements Converter
{
private final DirectBuffer indexesRO;
private final InputStreamReader input;
private final DirectBufferInputStream in;
private final JsonFormat.Parser parser;
- public ProtobufWriteValidator(
- ProtobufValidatorConfig config,
+ public ProtobufWriteConverter(
+ ProtobufConverterConfig config,
LongFunction supplyCatalog)
{
super(config, supplyCatalog);
@@ -65,29 +63,7 @@ public int padding(
}
@Override
- public int validate(
- DirectBuffer data,
- int index,
- int length,
- ValueConsumer next)
- {
- return validateComplete(data, index, length, next);
- }
-
- @Override
- public int validate(
- int flags,
- DirectBuffer data,
- int index,
- int length,
- FragmentConsumer next)
- {
- return (flags & FLAGS_FIN) != 0x00
- ? validateComplete(data, index, length, (b, i, l) -> next.accept(FLAGS_COMPLETE, b, i, l))
- : 0;
- }
-
- private int validateComplete(
+ public int convert(
DirectBuffer data,
int index,
int length,
@@ -124,6 +100,7 @@ private boolean validate(
if (tree != null)
{
Descriptors.Descriptor descriptor = tree.descriptor;
+ indexes.clear();
indexes.add(tree.indexes.size());
indexes.addAll(tree.indexes);
in.wrap(buffer, index, length);
diff --git a/incubator/validator-protobuf/src/main/java/io/aklivity/zilla/runtime/validator/protobuf/config/ProtobufValidatorConfig.java b/incubator/types-protobuf/src/main/java/io/aklivity/zilla/runtime/types/protobuf/config/ProtobufConverterConfig.java
similarity index 64%
rename from incubator/validator-protobuf/src/main/java/io/aklivity/zilla/runtime/validator/protobuf/config/ProtobufValidatorConfig.java
rename to incubator/types-protobuf/src/main/java/io/aklivity/zilla/runtime/types/protobuf/config/ProtobufConverterConfig.java
index 89a7827dd6..d16b114a05 100644
--- a/incubator/validator-protobuf/src/main/java/io/aklivity/zilla/runtime/validator/protobuf/config/ProtobufValidatorConfig.java
+++ b/incubator/types-protobuf/src/main/java/io/aklivity/zilla/runtime/types/protobuf/config/ProtobufConverterConfig.java
@@ -12,20 +12,20 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.protobuf.config;
+package io.aklivity.zilla.runtime.types.protobuf.config;
import java.util.List;
import java.util.function.Function;
import io.aklivity.zilla.runtime.engine.config.CatalogedConfig;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
-public final class ProtobufValidatorConfig extends ValidatorConfig
+public final class ProtobufConverterConfig extends ConverterConfig
{
public final String subject;
public final String format;
- ProtobufValidatorConfig(
+ ProtobufConverterConfig(
List cataloged,
String subject,
String format)
@@ -35,14 +35,14 @@ public final class ProtobufValidatorConfig extends ValidatorConfig
this.format = format;
}
- public static ProtobufValidatorConfigBuilder builder(
- Function mapper)
+ public static ProtobufConverterConfigBuilder builder(
+ Function mapper)
{
- return new ProtobufValidatorConfigBuilder<>(mapper::apply);
+ return new ProtobufConverterConfigBuilder<>(mapper::apply);
}
- public static ProtobufValidatorConfigBuilder builder()
+ public static ProtobufConverterConfigBuilder builder()
{
- return new ProtobufValidatorConfigBuilder<>(ProtobufValidatorConfig.class::cast);
+ return new ProtobufConverterConfigBuilder<>(ProtobufConverterConfig.class::cast);
}
}
diff --git a/incubator/validator-protobuf/src/main/java/io/aklivity/zilla/runtime/validator/protobuf/config/ProtobufValidatorConfigAdapter.java b/incubator/types-protobuf/src/main/java/io/aklivity/zilla/runtime/types/protobuf/config/ProtobufConverterConfigAdapter.java
similarity index 80%
rename from incubator/validator-protobuf/src/main/java/io/aklivity/zilla/runtime/validator/protobuf/config/ProtobufValidatorConfigAdapter.java
rename to incubator/types-protobuf/src/main/java/io/aklivity/zilla/runtime/types/protobuf/config/ProtobufConverterConfigAdapter.java
index 6471d50cc9..e70f4d3da3 100644
--- a/incubator/validator-protobuf/src/main/java/io/aklivity/zilla/runtime/validator/protobuf/config/ProtobufValidatorConfigAdapter.java
+++ b/incubator/types-protobuf/src/main/java/io/aklivity/zilla/runtime/types/protobuf/config/ProtobufConverterConfigAdapter.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.protobuf.config;
+package io.aklivity.zilla.runtime.types.protobuf.config;
import java.util.LinkedList;
import java.util.List;
@@ -26,12 +26,12 @@
import jakarta.json.bind.adapter.JsonbAdapter;
import io.aklivity.zilla.runtime.engine.config.CatalogedConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfigAdapterSpi;
import io.aklivity.zilla.runtime.engine.config.SchemaConfig;
import io.aklivity.zilla.runtime.engine.config.SchemaConfigAdapter;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfigAdapterSpi;
-public final class ProtobufValidatorConfigAdapter implements ValidatorConfigAdapterSpi, JsonbAdapter
+public final class ProtobufConverterConfigAdapter implements ConverterConfigAdapterSpi, JsonbAdapter
{
private static final String PROTOBUF = "protobuf";
private static final String TYPE_NAME = "type";
@@ -49,15 +49,15 @@ public String type()
@Override
public JsonValue adaptToJson(
- ValidatorConfig config)
+ ConverterConfig config)
{
- ProtobufValidatorConfig protobufConfig = (ProtobufValidatorConfig) config;
- JsonObjectBuilder validator = Json.createObjectBuilder();
- validator.add(TYPE_NAME, PROTOBUF);
+ ProtobufConverterConfig protobufConfig = (ProtobufConverterConfig) config;
+ JsonObjectBuilder converter = Json.createObjectBuilder();
+ converter.add(TYPE_NAME, PROTOBUF);
if (protobufConfig.format != null)
{
- validator.add(FORMAT, protobufConfig.format);
+ converter.add(FORMAT, protobufConfig.format);
}
if (protobufConfig.cataloged != null && !protobufConfig.cataloged.isEmpty())
@@ -72,13 +72,13 @@ public JsonValue adaptToJson(
}
catalogs.add(catalog.name, array);
}
- validator.add(CATALOG_NAME, catalogs);
+ converter.add(CATALOG_NAME, catalogs);
}
- return validator.build();
+ return converter.build();
}
@Override
- public ValidatorConfig adaptFromJson(
+ public ConverterConfig adaptFromJson(
JsonValue value)
{
JsonObject object = (JsonObject) value;
@@ -108,6 +108,6 @@ public ValidatorConfig adaptFromJson(
? object.getString(FORMAT)
: null;
- return new ProtobufValidatorConfig(catalogs, subject, format);
+ return new ProtobufConverterConfig(catalogs, subject, format);
}
}
diff --git a/incubator/validator-protobuf/src/main/java/io/aklivity/zilla/runtime/validator/protobuf/config/ProtobufValidatorConfigBuilder.java b/incubator/types-protobuf/src/main/java/io/aklivity/zilla/runtime/types/protobuf/config/ProtobufConverterConfigBuilder.java
similarity index 68%
rename from incubator/validator-protobuf/src/main/java/io/aklivity/zilla/runtime/validator/protobuf/config/ProtobufValidatorConfigBuilder.java
rename to incubator/types-protobuf/src/main/java/io/aklivity/zilla/runtime/types/protobuf/config/ProtobufConverterConfigBuilder.java
index be37990c94..bf988ced73 100644
--- a/incubator/validator-protobuf/src/main/java/io/aklivity/zilla/runtime/validator/protobuf/config/ProtobufValidatorConfigBuilder.java
+++ b/incubator/types-protobuf/src/main/java/io/aklivity/zilla/runtime/types/protobuf/config/ProtobufConverterConfigBuilder.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.protobuf.config;
+package io.aklivity.zilla.runtime.types.protobuf.config;
import java.util.LinkedList;
import java.util.List;
@@ -22,40 +22,40 @@
import io.aklivity.zilla.runtime.engine.config.CatalogedConfigBuilder;
import io.aklivity.zilla.runtime.engine.config.ConfigBuilder;
-public class ProtobufValidatorConfigBuilder extends ConfigBuilder>
+public class ProtobufConverterConfigBuilder extends ConfigBuilder>
{
- private final Function mapper;
+ private final Function mapper;
private List catalogs;
private String subject;
private String format;
- ProtobufValidatorConfigBuilder(
- Function mapper)
+ ProtobufConverterConfigBuilder(
+ Function mapper)
{
this.mapper = mapper;
}
@Override
@SuppressWarnings("unchecked")
- protected Class> thisType()
+ protected Class> thisType()
{
- return (Class>) getClass();
+ return (Class>) getClass();
}
- public CatalogedConfigBuilder> catalog()
+ public CatalogedConfigBuilder> catalog()
{
return CatalogedConfig.builder(this::catalog);
}
- public ProtobufValidatorConfigBuilder subject(
+ public ProtobufConverterConfigBuilder subject(
String subject)
{
this.subject = subject;
return this;
}
- public ProtobufValidatorConfigBuilder catalog(
+ public ProtobufConverterConfigBuilder catalog(
CatalogedConfig catalog)
{
if (catalogs == null)
@@ -66,7 +66,7 @@ public ProtobufValidatorConfigBuilder catalog(
return this;
}
- public ProtobufValidatorConfigBuilder format(
+ public ProtobufConverterConfigBuilder format(
String format)
{
this.format = format;
@@ -76,6 +76,6 @@ public ProtobufValidatorConfigBuilder format(
@Override
public T build()
{
- return mapper.apply(new ProtobufValidatorConfig(catalogs, subject, format));
+ return mapper.apply(new ProtobufConverterConfig(catalogs, subject, format));
}
}
diff --git a/incubator/validator-protobuf/src/main/moditect/module-info.java b/incubator/types-protobuf/src/main/moditect/module-info.java
similarity index 63%
rename from incubator/validator-protobuf/src/main/moditect/module-info.java
rename to incubator/types-protobuf/src/main/moditect/module-info.java
index 4781ede24e..bd1843ab4b 100644
--- a/incubator/validator-protobuf/src/main/moditect/module-info.java
+++ b/incubator/types-protobuf/src/main/moditect/module-info.java
@@ -12,17 +12,17 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-module io.aklivity.zilla.runtime.validator.protobuf
+module io.aklivity.zilla.runtime.types.protobuf
{
requires org.antlr.antlr4.runtime;
requires protobuf.java;
requires io.aklivity.zilla.runtime.engine;
- exports io.aklivity.zilla.runtime.validator.protobuf.config;
+ exports io.aklivity.zilla.runtime.types.protobuf.config;
- provides io.aklivity.zilla.runtime.engine.config.ValidatorConfigAdapterSpi
- with io.aklivity.zilla.runtime.validator.protobuf.config.ProtobufValidatorConfigAdapter;
+ provides io.aklivity.zilla.runtime.engine.config.ConverterConfigAdapterSpi
+ with io.aklivity.zilla.runtime.types.protobuf.config.ProtobufConverterConfigAdapter;
- provides io.aklivity.zilla.runtime.engine.validator.ValidatorFactorySpi
- with io.aklivity.zilla.runtime.validator.protobuf.ProtobufValidatorFactory;
+ provides io.aklivity.zilla.runtime.engine.converter.ConverterFactorySpi
+ with io.aklivity.zilla.runtime.types.protobuf.ProtobufConverterFactory;
}
diff --git a/incubator/types-protobuf/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.config.ConverterConfigAdapterSpi b/incubator/types-protobuf/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.config.ConverterConfigAdapterSpi
new file mode 100644
index 0000000000..947a6156e0
--- /dev/null
+++ b/incubator/types-protobuf/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.config.ConverterConfigAdapterSpi
@@ -0,0 +1 @@
+io.aklivity.zilla.runtime.types.protobuf.config.ProtobufConverterConfigAdapter
diff --git a/incubator/types-protobuf/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.converter.ConverterFactorySpi b/incubator/types-protobuf/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.converter.ConverterFactorySpi
new file mode 100644
index 0000000000..5e14defee6
--- /dev/null
+++ b/incubator/types-protobuf/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.converter.ConverterFactorySpi
@@ -0,0 +1 @@
+io.aklivity.zilla.runtime.types.protobuf.ProtobufConverterFactory
diff --git a/incubator/validator-protobuf/src/test/java/io/aklivity/zilla/runtime/validator/protobuf/ProtobufValidatorFactoryTest.java b/incubator/types-protobuf/src/test/java/io/aklivity/zilla/runtime/types/protobuf/ProtobufConverterFactoryTest.java
similarity index 70%
rename from incubator/validator-protobuf/src/test/java/io/aklivity/zilla/runtime/validator/protobuf/ProtobufValidatorFactoryTest.java
rename to incubator/types-protobuf/src/test/java/io/aklivity/zilla/runtime/types/protobuf/ProtobufConverterFactoryTest.java
index 02e4824417..bc4ea87349 100644
--- a/incubator/validator-protobuf/src/test/java/io/aklivity/zilla/runtime/validator/protobuf/ProtobufValidatorFactoryTest.java
+++ b/incubator/types-protobuf/src/test/java/io/aklivity/zilla/runtime/types/protobuf/ProtobufConverterFactoryTest.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.protobuf;
+package io.aklivity.zilla.runtime.types.protobuf;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -22,20 +22,19 @@
import org.junit.Test;
import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
+import io.aklivity.zilla.runtime.engine.converter.Converter;
import io.aklivity.zilla.runtime.engine.test.internal.catalog.TestCatalogHandler;
import io.aklivity.zilla.runtime.engine.test.internal.catalog.config.TestCatalogOptionsConfig;
-import io.aklivity.zilla.runtime.engine.validator.ValueValidator;
-import io.aklivity.zilla.runtime.validator.protobuf.config.ProtobufValidatorConfig;
+import io.aklivity.zilla.runtime.types.protobuf.config.ProtobufConverterConfig;
-
-public class ProtobufValidatorFactoryTest
+public class ProtobufConverterFactoryTest
{
@Test
- public void shouldCreateReadValidator()
+ public void shouldCreateReader()
{
// GIVEN
- ValidatorConfig validator = ProtobufValidatorConfig.builder()
+ ConverterConfig converter = ProtobufConverterConfig.builder()
.subject("test-value")
.catalog()
.name("test0")
@@ -50,20 +49,20 @@ public void shouldCreateReadValidator()
.id(1)
.schema("schema0")
.build());
- ProtobufValidatorFactory factory = new ProtobufValidatorFactory();
+ ProtobufConverterFactory factory = new ProtobufConverterFactory();
// WHEN
- ValueValidator reader = factory.createValueReader(validator, supplyCatalog);
+ Converter reader = factory.createReader(converter, supplyCatalog);
// THEN
- assertThat(reader, instanceOf(ProtobufReadValidator.class));
+ assertThat(reader, instanceOf(ProtobufReadConverter.class));
}
@Test
- public void shouldCreateWriteValidator()
+ public void shouldCreateWriter()
{
// GIVEN
- ValidatorConfig validator = ProtobufValidatorConfig.builder()
+ ConverterConfig converter = ProtobufConverterConfig.builder()
.subject("test-value")
.catalog()
.name("test0")
@@ -78,12 +77,12 @@ public void shouldCreateWriteValidator()
.id(1)
.schema("schema0")
.build());
- ProtobufValidatorFactory factory = new ProtobufValidatorFactory();
+ ProtobufConverterFactory factory = new ProtobufConverterFactory();
// WHEN
- ValueValidator writer = factory.createValueWriter(validator, supplyCatalog);
+ Converter writer = factory.createWriter(converter, supplyCatalog);
// THEN
- assertThat(writer, instanceOf(ProtobufWriteValidator.class));
+ assertThat(writer, instanceOf(ProtobufWriteConverter.class));
}
}
diff --git a/incubator/validator-protobuf/src/test/java/io/aklivity/zilla/runtime/validator/protobuf/ProtobufValidatorTest.java b/incubator/types-protobuf/src/test/java/io/aklivity/zilla/runtime/types/protobuf/ProtobufConverterTest.java
similarity index 82%
rename from incubator/validator-protobuf/src/test/java/io/aklivity/zilla/runtime/validator/protobuf/ProtobufValidatorTest.java
rename to incubator/types-protobuf/src/test/java/io/aklivity/zilla/runtime/types/protobuf/ProtobufConverterTest.java
index d464df6583..95c8f84e2b 100644
--- a/incubator/validator-protobuf/src/test/java/io/aklivity/zilla/runtime/validator/protobuf/ProtobufValidatorTest.java
+++ b/incubator/types-protobuf/src/test/java/io/aklivity/zilla/runtime/types/protobuf/ProtobufConverterTest.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.protobuf;
+package io.aklivity.zilla.runtime.types.protobuf;
import static io.aklivity.zilla.runtime.engine.EngineConfiguration.ENGINE_DIRECTORY;
import static org.junit.Assert.assertEquals;
@@ -33,12 +33,12 @@
import io.aklivity.zilla.runtime.engine.catalog.CatalogContext;
import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
import io.aklivity.zilla.runtime.engine.config.CatalogConfig;
+import io.aklivity.zilla.runtime.engine.converter.function.ValueConsumer;
import io.aklivity.zilla.runtime.engine.test.internal.catalog.TestCatalog;
import io.aklivity.zilla.runtime.engine.test.internal.catalog.config.TestCatalogOptionsConfig;
-import io.aklivity.zilla.runtime.engine.validator.function.ValueConsumer;
-import io.aklivity.zilla.runtime.validator.protobuf.config.ProtobufValidatorConfig;
+import io.aklivity.zilla.runtime.types.protobuf.config.ProtobufConverterConfig;
-public class ProtobufValidatorTest
+public class ProtobufConverterTest
{
private static final String SCHEMA = "syntax = \"proto3\";" +
"package io.aklivity.examples.clients.proto;" +
@@ -95,7 +95,7 @@ public void shouldWriteValidProtobufEvent()
.schema(SCHEMA)
.build());
- ProtobufValidatorConfig config = ProtobufValidatorConfig.builder()
+ ProtobufConverterConfig config = ProtobufConverterConfig.builder()
.catalog()
.name("test0")
.schema()
@@ -107,15 +107,15 @@ public void shouldWriteValidProtobufEvent()
.build()
.build();
LongFunction handler = value -> context.attach(catalogConfig);
- ProtobufWriteValidator validator = new ProtobufWriteValidator(config, handler);
+ ProtobufWriteConverter converter = new ProtobufWriteConverter(config, handler);
DirectBuffer data = new UnsafeBuffer();
byte[] bytes = {0x0a, 0x02, 0x4f, 0x4b, 0x12, 0x08, 0x30, 0x31, 0x30, 0x31, 0x32, 0x30, 0x32, 0x34};
data.wrap(bytes, 0, bytes.length);
- assertEquals(data.capacity() + 1, validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
+ assertEquals(data.capacity() + 1, converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
- assertEquals(data.capacity() + 1, validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
+ assertEquals(data.capacity() + 1, converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
}
@Test
@@ -127,7 +127,7 @@ public void shouldWriteValidProtobufEventNestedMessage()
.schema(SCHEMA)
.build());
- ProtobufValidatorConfig config = ProtobufValidatorConfig.builder()
+ ProtobufConverterConfig config = ProtobufConverterConfig.builder()
.catalog()
.name("test0")
.schema()
@@ -139,13 +139,13 @@ public void shouldWriteValidProtobufEventNestedMessage()
.build()
.build();
LongFunction handler = value -> context.attach(catalogConfig);
- ProtobufWriteValidator validator = new ProtobufWriteValidator(config, handler);
+ ProtobufWriteConverter converter = new ProtobufWriteConverter(config, handler);
DirectBuffer data = new UnsafeBuffer();
byte[] bytes = {0x0a, 0x02, 0x4f, 0x4b, 0x12, 0x08, 0x30, 0x31, 0x30, 0x31, 0x32, 0x30, 0x32, 0x34};
data.wrap(bytes, 0, bytes.length);
- assertEquals(data.capacity() + 3, validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
+ assertEquals(data.capacity() + 3, converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
}
@Test
@@ -157,7 +157,7 @@ public void shouldWriteValidProtobufEventIncorrectRecordName()
.schema(SCHEMA)
.build());
- ProtobufValidatorConfig config = ProtobufValidatorConfig.builder()
+ ProtobufConverterConfig config = ProtobufConverterConfig.builder()
.catalog()
.name("test0")
.schema()
@@ -169,13 +169,13 @@ public void shouldWriteValidProtobufEventIncorrectRecordName()
.build()
.build();
LongFunction handler = value -> context.attach(catalogConfig);
- ProtobufWriteValidator validator = new ProtobufWriteValidator(config, handler);
+ ProtobufWriteConverter converter = new ProtobufWriteConverter(config, handler);
DirectBuffer data = new UnsafeBuffer();
byte[] bytes = {0x0a, 0x02, 0x4f, 0x4b, 0x12, 0x08, 0x30, 0x31, 0x30, 0x31, 0x32, 0x30, 0x32, 0x34};
data.wrap(bytes, 0, bytes.length);
- assertEquals(-1, validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
+ assertEquals(-1, converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
}
@Test
@@ -187,7 +187,7 @@ public void shouldReadValidProtobufEvent()
.schema(SCHEMA)
.build());
- ProtobufValidatorConfig config = ProtobufValidatorConfig.builder()
+ ProtobufConverterConfig config = ProtobufConverterConfig.builder()
.catalog()
.name("test0")
.schema()
@@ -198,15 +198,15 @@ public void shouldReadValidProtobufEvent()
.build()
.build();
LongFunction handler = value -> context.attach(catalogConfig);
- ProtobufReadValidator validator = new ProtobufReadValidator(config, handler);
+ ProtobufReadConverter converter = new ProtobufReadConverter(config, handler);
DirectBuffer data = new UnsafeBuffer();
byte[] bytes = {0x00, 0x0a, 0x02, 0x4f, 0x4b, 0x12, 0x08, 0x30, 0x31, 0x30, 0x31, 0x32, 0x30, 0x32, 0x34};
data.wrap(bytes, 0, bytes.length);
- assertEquals(data.capacity() - 1, validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
+ assertEquals(data.capacity() - 1, converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
- assertEquals(data.capacity() - 1, validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
+ assertEquals(data.capacity() - 1, converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
}
@Test
@@ -218,7 +218,7 @@ public void shouldReadValidProtobufEventNestedMessage()
.schema(SCHEMA)
.build());
- ProtobufValidatorConfig config = ProtobufValidatorConfig.builder()
+ ProtobufConverterConfig config = ProtobufConverterConfig.builder()
.catalog()
.name("test0")
.schema()
@@ -229,13 +229,13 @@ public void shouldReadValidProtobufEventNestedMessage()
.build()
.build();
LongFunction handler = value -> context.attach(catalogConfig);
- ProtobufReadValidator validator = new ProtobufReadValidator(config, handler);
+ ProtobufReadConverter converter = new ProtobufReadConverter(config, handler);
DirectBuffer data = new UnsafeBuffer();
byte[] bytes = {0x04, 0x02, 0x04, 0x0a, 0x02, 0x4f, 0x4b, 0x12, 0x08, 0x30, 0x31, 0x30, 0x31, 0x32, 0x30, 0x32, 0x34};
data.wrap(bytes, 0, bytes.length);
- assertEquals(data.capacity() - 3, validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
+ assertEquals(data.capacity() - 3, converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
}
@Test
@@ -247,7 +247,7 @@ public void shouldReadValidProtobufEventFormatJson()
.schema(SCHEMA)
.build());
- ProtobufValidatorConfig config = ProtobufValidatorConfig.builder()
+ ProtobufConverterConfig config = ProtobufConverterConfig.builder()
.format("json")
.catalog()
.name("test0")
@@ -260,7 +260,7 @@ public void shouldReadValidProtobufEventFormatJson()
.build();
LongFunction handler = value -> context.attach(catalogConfig);
- ProtobufReadValidator validator = new ProtobufReadValidator(config, handler);
+ ProtobufReadConverter converter = new ProtobufReadConverter(config, handler);
DirectBuffer data = new UnsafeBuffer();
@@ -279,9 +279,9 @@ public void shouldReadValidProtobufEventFormatJson()
buffer.getBytes(index, jsonBytes);
assertEquals(json, new String(jsonBytes, StandardCharsets.UTF_8));
};
- validator.validate(data, 0, data.capacity(), consumer);
+ converter.convert(data, 0, data.capacity(), consumer);
- validator.validate(data, 0, data.capacity(), consumer);
+ converter.convert(data, 0, data.capacity(), consumer);
}
@Test
@@ -293,7 +293,7 @@ public void shouldWriteValidProtobufEventFormatJson()
.schema(SCHEMA)
.build());
- ProtobufValidatorConfig config = ProtobufValidatorConfig.builder()
+ ProtobufConverterConfig config = ProtobufConverterConfig.builder()
.format("json")
.catalog()
.name("test0")
@@ -307,7 +307,7 @@ public void shouldWriteValidProtobufEventFormatJson()
.build();
LongFunction handler = value -> context.attach(catalogConfig);
- ProtobufWriteValidator validator = new ProtobufWriteValidator(config, handler);
+ ProtobufWriteConverter converter = new ProtobufWriteConverter(config, handler);
DirectBuffer data = new UnsafeBuffer();
@@ -322,9 +322,9 @@ public void shouldWriteValidProtobufEventFormatJson()
DirectBuffer expected = new UnsafeBuffer();
expected.wrap(expectedBytes, 0, expectedBytes.length);
- assertEquals(expected.capacity(), validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
+ assertEquals(expected.capacity(), converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
- assertEquals(expected.capacity(), validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
+ assertEquals(expected.capacity(), converter.convert(data, 0, data.capacity(), ValueConsumer.NOP));
}
@Test
@@ -336,7 +336,7 @@ public void shouldVerifyJsonFormatPaddingLength()
.schema(SCHEMA)
.build());
LongFunction handler = value -> context.attach(catalogConfig);
- ProtobufValidatorConfig config = ProtobufValidatorConfig.builder()
+ ProtobufConverterConfig config = ProtobufConverterConfig.builder()
.format("json")
.catalog()
.name("test0")
@@ -347,11 +347,11 @@ public void shouldVerifyJsonFormatPaddingLength()
.build()
.build()
.build();
- ProtobufReadValidator validator = new ProtobufReadValidator(config, handler);
+ ProtobufReadConverter converter = new ProtobufReadConverter(config, handler);
DirectBuffer data = new UnsafeBuffer();
- assertEquals(71, validator.padding(data, 0, data.capacity()));
+ assertEquals(71, converter.padding(data, 0, data.capacity()));
}
@Test
@@ -363,7 +363,7 @@ public void shouldVerifyIndexPaddingLength()
.schema(SCHEMA)
.build());
LongFunction handler = value -> context.attach(catalogConfig);
- ProtobufValidatorConfig config = ProtobufValidatorConfig.builder()
+ ProtobufConverterConfig config = ProtobufConverterConfig.builder()
.catalog()
.name("test0")
.schema()
@@ -374,11 +374,11 @@ public void shouldVerifyIndexPaddingLength()
.build()
.build()
.build();
- ProtobufWriteValidator validator = new ProtobufWriteValidator(config, handler);
+ ProtobufWriteConverter converter = new ProtobufWriteConverter(config, handler);
DirectBuffer data = new UnsafeBuffer();
- assertEquals(3, validator.padding(data, 0, data.capacity()));
+ assertEquals(3, converter.padding(data, 0, data.capacity()));
}
}
diff --git a/incubator/validator-protobuf/src/test/java/io/aklivity/zilla/runtime/validator/protobuf/config/ProtobufValidatorConfigAdapterTest.java b/incubator/types-protobuf/src/test/java/io/aklivity/zilla/runtime/types/protobuf/config/ProtobufConverterConfigAdapterTest.java
similarity index 72%
rename from incubator/validator-protobuf/src/test/java/io/aklivity/zilla/runtime/validator/protobuf/config/ProtobufValidatorConfigAdapterTest.java
rename to incubator/types-protobuf/src/test/java/io/aklivity/zilla/runtime/types/protobuf/config/ProtobufConverterConfigAdapterTest.java
index e9c8ce0de3..75d941ff61 100644
--- a/incubator/validator-protobuf/src/test/java/io/aklivity/zilla/runtime/validator/protobuf/config/ProtobufValidatorConfigAdapterTest.java
+++ b/incubator/types-protobuf/src/test/java/io/aklivity/zilla/runtime/types/protobuf/config/ProtobufConverterConfigAdapterTest.java
@@ -12,7 +12,7 @@
* WARRANTIES OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-package io.aklivity.zilla.runtime.validator.protobuf.config;
+package io.aklivity.zilla.runtime.types.protobuf.config;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
@@ -26,7 +26,7 @@
import org.junit.Before;
import org.junit.Test;
-public class ProtobufValidatorConfigAdapterTest
+public class ProtobufConverterConfigAdapterTest
{
private Jsonb jsonb;
@@ -34,12 +34,12 @@ public class ProtobufValidatorConfigAdapterTest
public void initJson()
{
JsonbConfig config = new JsonbConfig()
- .withAdapters(new ProtobufValidatorConfigAdapter());
+ .withAdapters(new ProtobufConverterConfigAdapter());
jsonb = JsonbBuilder.create(config);
}
@Test
- public void shouldReadAvroValidator()
+ public void shouldReadAvroConverter()
{
// GIVEN
String json =
@@ -65,27 +65,27 @@ public void shouldReadAvroValidator()
"}";
// WHEN
- ProtobufValidatorConfig validator = jsonb.fromJson(json, ProtobufValidatorConfig.class);
+ ProtobufConverterConfig converter = jsonb.fromJson(json, ProtobufConverterConfig.class);
// THEN
- assertThat(validator, not(nullValue()));
- assertThat(validator.type, equalTo("protobuf"));
- assertThat(validator.cataloged.size(), equalTo(1));
- assertThat(validator.cataloged.get(0).name, equalTo("test0"));
- assertThat(validator.cataloged.get(0).schemas.get(0).strategy, equalTo("topic"));
- assertThat(validator.cataloged.get(0).schemas.get(0).version, equalTo("latest"));
- assertThat(validator.cataloged.get(0).schemas.get(0).id, equalTo(0));
- assertThat(validator.cataloged.get(0).schemas.get(1).subject, equalTo("cat"));
- assertThat(validator.cataloged.get(0).schemas.get(1).strategy, nullValue());
- assertThat(validator.cataloged.get(0).schemas.get(1).version, equalTo("latest"));
- assertThat(validator.cataloged.get(0).schemas.get(1).id, equalTo(0));
- assertThat(validator.cataloged.get(0).schemas.get(2).strategy, nullValue());
- assertThat(validator.cataloged.get(0).schemas.get(2).version, nullValue());
- assertThat(validator.cataloged.get(0).schemas.get(2).id, equalTo(42));
+ assertThat(converter, not(nullValue()));
+ assertThat(converter.type, equalTo("protobuf"));
+ assertThat(converter.cataloged.size(), equalTo(1));
+ assertThat(converter.cataloged.get(0).name, equalTo("test0"));
+ assertThat(converter.cataloged.get(0).schemas.get(0).strategy, equalTo("topic"));
+ assertThat(converter.cataloged.get(0).schemas.get(0).version, equalTo("latest"));
+ assertThat(converter.cataloged.get(0).schemas.get(0).id, equalTo(0));
+ assertThat(converter.cataloged.get(0).schemas.get(1).subject, equalTo("cat"));
+ assertThat(converter.cataloged.get(0).schemas.get(1).strategy, nullValue());
+ assertThat(converter.cataloged.get(0).schemas.get(1).version, equalTo("latest"));
+ assertThat(converter.cataloged.get(0).schemas.get(1).id, equalTo(0));
+ assertThat(converter.cataloged.get(0).schemas.get(2).strategy, nullValue());
+ assertThat(converter.cataloged.get(0).schemas.get(2).version, nullValue());
+ assertThat(converter.cataloged.get(0).schemas.get(2).id, equalTo(42));
}
@Test
- public void shouldWriteAvroValidator()
+ public void shouldWriteAvroConverter()
{
// GIVEN
String expectedJson =
@@ -109,7 +109,7 @@ public void shouldWriteAvroValidator()
"]" +
"}" +
"}";
- ProtobufValidatorConfig validator = ProtobufValidatorConfig.builder()
+ ProtobufConverterConfig converter = ProtobufConverterConfig.builder()
.catalog()
.name("test0")
.schema()
@@ -127,7 +127,7 @@ public void shouldWriteAvroValidator()
.build();
// WHEN
- String json = jsonb.toJson(validator);
+ String json = jsonb.toJson(converter);
// THEN
assertThat(json, not(nullValue()));
diff --git a/incubator/validator-avro/src/main/java/io/aklivity/zilla/runtime/validator/avro/AvroValidatorFactory.java b/incubator/validator-avro/src/main/java/io/aklivity/zilla/runtime/validator/avro/AvroValidatorFactory.java
deleted file mode 100644
index 7a6b4e3395..0000000000
--- a/incubator/validator-avro/src/main/java/io/aklivity/zilla/runtime/validator/avro/AvroValidatorFactory.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright 2021-2023 Aklivity Inc
- *
- * Licensed under the Aklivity Community License (the "License"); you may not use
- * this file except in compliance with the License. You may obtain a copy of the
- * License at
- *
- * https://www.aklivity.io/aklivity-community-license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package io.aklivity.zilla.runtime.validator.avro;
-
-import java.net.URL;
-import java.util.function.LongFunction;
-
-import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
-import io.aklivity.zilla.runtime.engine.validator.FragmentValidator;
-import io.aklivity.zilla.runtime.engine.validator.ValidatorFactorySpi;
-import io.aklivity.zilla.runtime.engine.validator.ValueValidator;
-import io.aklivity.zilla.runtime.validator.avro.config.AvroValidatorConfig;
-
-public final class AvroValidatorFactory implements ValidatorFactorySpi
-{
- @Override
- public String type()
- {
- return "avro";
- }
-
- public URL schema()
- {
- return getClass().getResource("schema/avro.schema.patch.json");
- }
-
- @Override
- public ValueValidator createValueReader(
- ValidatorConfig config,
- LongFunction supplyCatalog)
- {
- return createReader(config, supplyCatalog);
- }
-
- @Override
- public ValueValidator createValueWriter(
- ValidatorConfig config,
- LongFunction supplyCatalog)
- {
- return createWriter(config, supplyCatalog);
- }
-
- @Override
- public FragmentValidator createFragmentReader(
- ValidatorConfig config,
- LongFunction supplyCatalog)
- {
- return createReader(config, supplyCatalog);
- }
-
- @Override
- public FragmentValidator createFragmentWriter(
- ValidatorConfig config,
- LongFunction supplyCatalog)
- {
- return createWriter(config, supplyCatalog);
- }
-
- private AvroReadValidator createReader(
- ValidatorConfig config,
- LongFunction supplyCatalog)
- {
- return new AvroReadValidator(AvroValidatorConfig.class.cast(config), supplyCatalog);
- }
-
- private AvroWriteValidator createWriter(
- ValidatorConfig config,
- LongFunction supplyCatalog)
- {
- return new AvroWriteValidator(AvroValidatorConfig.class.cast(config), supplyCatalog);
- }
-}
diff --git a/incubator/validator-avro/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.config.ValidatorConfigAdapterSpi b/incubator/validator-avro/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.config.ValidatorConfigAdapterSpi
deleted file mode 100644
index aba3576a05..0000000000
--- a/incubator/validator-avro/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.config.ValidatorConfigAdapterSpi
+++ /dev/null
@@ -1 +0,0 @@
-io.aklivity.zilla.runtime.validator.avro.config.AvroValidatorConfigAdapter
diff --git a/incubator/validator-avro/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.validator.ValidatorFactorySpi b/incubator/validator-avro/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.validator.ValidatorFactorySpi
deleted file mode 100644
index 3282542a93..0000000000
--- a/incubator/validator-avro/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.validator.ValidatorFactorySpi
+++ /dev/null
@@ -1 +0,0 @@
-io.aklivity.zilla.runtime.validator.avro.AvroValidatorFactory
diff --git a/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/IntegerValidator.java b/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/IntegerValidator.java
deleted file mode 100644
index 5f2db11b4b..0000000000
--- a/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/IntegerValidator.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright 2021-2023 Aklivity Inc
- *
- * Licensed under the Aklivity Community License (the "License"); you may not use
- * this file except in compliance with the License. You may obtain a copy of the
- * License at
- *
- * https://www.aklivity.io/aklivity-community-license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package io.aklivity.zilla.runtime.validator.core;
-
-import org.agrona.DirectBuffer;
-
-import io.aklivity.zilla.runtime.engine.validator.FragmentValidator;
-import io.aklivity.zilla.runtime.engine.validator.ValueValidator;
-import io.aklivity.zilla.runtime.engine.validator.function.FragmentConsumer;
-import io.aklivity.zilla.runtime.engine.validator.function.ValueConsumer;
-import io.aklivity.zilla.runtime.validator.core.config.IntegerValidatorConfig;
-
-public class IntegerValidator implements ValueValidator, FragmentValidator
-{
- public IntegerValidator(
- IntegerValidatorConfig config)
- {
- }
-
- @Override
- public int validate(
- DirectBuffer data,
- int index,
- int length,
- ValueConsumer next)
- {
- return validateComplete(data, index, length, next);
- }
-
- @Override
- public int validate(
- int flags,
- DirectBuffer data,
- int index,
- int length,
- FragmentConsumer next)
- {
- return (flags & FLAGS_FIN) != 0x00
- ? validateComplete(data, index, length, (b, i, l) -> next.accept(FLAGS_COMPLETE, b, i, l))
- : 0;
- }
-
- private int validateComplete(
- DirectBuffer data,
- int index,
- int length,
- ValueConsumer next)
- {
- boolean valid = length == 4;
-
- if (valid)
- {
- next.accept(data, index, length);
- }
-
- return valid ? length : -1;
- }
-}
diff --git a/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/StringValidator.java b/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/StringValidator.java
deleted file mode 100644
index 969d82ed33..0000000000
--- a/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/StringValidator.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright 2021-2023 Aklivity Inc
- *
- * Licensed under the Aklivity Community License (the "License"); you may not use
- * this file except in compliance with the License. You may obtain a copy of the
- * License at
- *
- * https://www.aklivity.io/aklivity-community-license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package io.aklivity.zilla.runtime.validator.core;
-
-import org.agrona.DirectBuffer;
-
-import io.aklivity.zilla.runtime.engine.validator.FragmentValidator;
-import io.aklivity.zilla.runtime.engine.validator.ValueValidator;
-import io.aklivity.zilla.runtime.engine.validator.function.FragmentConsumer;
-import io.aklivity.zilla.runtime.engine.validator.function.ValueConsumer;
-import io.aklivity.zilla.runtime.validator.core.config.StringValidatorConfig;
-
-public class StringValidator implements ValueValidator, FragmentValidator
-{
- private StringEncoding encoding;
-
- public StringValidator(
- StringValidatorConfig config)
- {
- this.encoding = StringEncoding.of(config.encoding);
- }
-
- @Override
- public int validate(
- DirectBuffer data,
- int index,
- int length,
- ValueConsumer next)
- {
- return validateComplete(data, index, length, next);
- }
-
- @Override
- public int validate(
- int flags,
- DirectBuffer data,
- int index,
- int length,
- FragmentConsumer next)
- {
- return (flags & FLAGS_FIN) != 0x00
- ? validateComplete(data, index, length, (b, i, l) -> next.accept(FLAGS_COMPLETE, b, i, l))
- : 0;
- }
-
- private int validateComplete(
- DirectBuffer data,
- int index,
- int length,
- ValueConsumer next)
- {
- int valLength = -1;
-
- if (encoding.validate(data, index, length))
- {
- next.accept(data, index, length);
- valLength = length;
- }
-
- return valLength;
- }
-}
diff --git a/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/config/LongValidatorConfig.java b/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/config/LongValidatorConfig.java
deleted file mode 100644
index 5deba72254..0000000000
--- a/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/config/LongValidatorConfig.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright 2021-2023 Aklivity Inc
- *
- * Licensed under the Aklivity Community License (the "License"); you may not use
- * this file except in compliance with the License. You may obtain a copy of the
- * License at
- *
- * https://www.aklivity.io/aklivity-community-license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package io.aklivity.zilla.runtime.validator.core.config;
-
-import java.util.function.Function;
-
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
-
-public class LongValidatorConfig extends ValidatorConfig
-{
- public LongValidatorConfig()
- {
- super("long");
- }
-
- public static LongValidatorConfigBuilder builder(
- Function mapper)
- {
- return new LongValidatorConfigBuilder<>(mapper::apply);
- }
-
- public static LongValidatorConfigBuilder builder()
- {
- return new LongValidatorConfigBuilder<>(LongValidatorConfig.class::cast);
- }
-}
diff --git a/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/config/LongValidatorConfigAdapter.java b/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/config/LongValidatorConfigAdapter.java
deleted file mode 100644
index 69f57d0f9b..0000000000
--- a/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/config/LongValidatorConfigAdapter.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright 2021-2023 Aklivity Inc
- *
- * Licensed under the Aklivity Community License (the "License"); you may not use
- * this file except in compliance with the License. You may obtain a copy of the
- * License at
- *
- * https://www.aklivity.io/aklivity-community-license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package io.aklivity.zilla.runtime.validator.core.config;
-
-import jakarta.json.Json;
-import jakarta.json.JsonValue;
-import jakarta.json.bind.adapter.JsonbAdapter;
-
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfigAdapterSpi;
-
-public class LongValidatorConfigAdapter implements ValidatorConfigAdapterSpi, JsonbAdapter
-{
- @Override
- public String type()
- {
- return "long";
- }
-
- @Override
- public JsonValue adaptToJson(
- ValidatorConfig options)
- {
- return Json.createValue(type());
- }
-
- @Override
- public ValidatorConfig adaptFromJson(
- JsonValue object)
- {
- return new LongValidatorConfig();
- }
-}
diff --git a/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/config/LongValidatorConfigBuilder.java b/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/config/LongValidatorConfigBuilder.java
deleted file mode 100644
index fc843c2da7..0000000000
--- a/incubator/validator-core/src/main/java/io/aklivity/zilla/runtime/validator/core/config/LongValidatorConfigBuilder.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright 2021-2023 Aklivity Inc
- *
- * Licensed under the Aklivity Community License (the "License"); you may not use
- * this file except in compliance with the License. You may obtain a copy of the
- * License at
- *
- * https://www.aklivity.io/aklivity-community-license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package io.aklivity.zilla.runtime.validator.core.config;
-
-import java.util.function.Function;
-
-import io.aklivity.zilla.runtime.engine.config.ConfigBuilder;
-
-public class LongValidatorConfigBuilder extends ConfigBuilder>
-{
- private final Function mapper;
-
- LongValidatorConfigBuilder(
- Function mapper)
- {
- this.mapper = mapper;
- }
-
- @Override
- @SuppressWarnings("unchecked")
- protected Class> thisType()
- {
- return (Class>) getClass();
- }
-
- @Override
- public T build()
- {
- return mapper.apply(new LongValidatorConfig());
- }
-}
diff --git a/incubator/validator-core/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.config.ValidatorConfigAdapterSpi b/incubator/validator-core/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.config.ValidatorConfigAdapterSpi
deleted file mode 100644
index e9b69c3849..0000000000
--- a/incubator/validator-core/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.config.ValidatorConfigAdapterSpi
+++ /dev/null
@@ -1,2 +0,0 @@
-io.aklivity.zilla.runtime.validator.core.config.IntegerValidatorConfigAdapter
-io.aklivity.zilla.runtime.validator.core.config.StringValidatorConfigAdapter
diff --git a/incubator/validator-core/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.validator.ValidatorFactorySpi b/incubator/validator-core/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.validator.ValidatorFactorySpi
deleted file mode 100644
index 609579e189..0000000000
--- a/incubator/validator-core/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.validator.ValidatorFactorySpi
+++ /dev/null
@@ -1,2 +0,0 @@
-io.aklivity.zilla.runtime.validator.core.IntegerValidatorFactory
-io.aklivity.zilla.runtime.validator.core.StringValidatorFactory
diff --git a/incubator/validator-core/src/test/java/io/aklivity/zilla/runtime/validator/core/IntegerValidatorFactoryTest.java b/incubator/validator-core/src/test/java/io/aklivity/zilla/runtime/validator/core/IntegerValidatorFactoryTest.java
deleted file mode 100644
index dc7f79edc8..0000000000
--- a/incubator/validator-core/src/test/java/io/aklivity/zilla/runtime/validator/core/IntegerValidatorFactoryTest.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright 2021-2023 Aklivity Inc
- *
- * Licensed under the Aklivity Community License (the "License"); you may not use
- * this file except in compliance with the License. You may obtain a copy of the
- * License at
- *
- * https://www.aklivity.io/aklivity-community-license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package io.aklivity.zilla.runtime.validator.core;
-
-import static org.hamcrest.CoreMatchers.instanceOf;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.mockito.Mockito.mock;
-
-import java.util.function.LongFunction;
-
-import org.junit.Test;
-
-import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
-import io.aklivity.zilla.runtime.engine.validator.FragmentValidator;
-import io.aklivity.zilla.runtime.engine.validator.ValueValidator;
-import io.aklivity.zilla.runtime.validator.core.config.IntegerValidatorConfig;
-
-public class IntegerValidatorFactoryTest
-{
- @Test
- @SuppressWarnings("unchecked")
- public void shouldCreateValueReader()
- {
- // GIVEN
- ValidatorConfig validator = new IntegerValidatorConfig();
- LongFunction supplyCatalog = mock(LongFunction.class);
- IntegerValidatorFactory factory = new IntegerValidatorFactory();
-
- // WHEN
- ValueValidator reader = factory.createValueReader(validator, supplyCatalog);
-
- // THEN
- assertThat(reader, instanceOf(IntegerValidator.class));
- }
-
- @Test
- @SuppressWarnings("unchecked")
- public void shouldCreateValueWriter()
- {
- // GIVEN
- ValidatorConfig validator = new IntegerValidatorConfig();
- LongFunction supplyCatalog = mock(LongFunction.class);
- IntegerValidatorFactory factory = new IntegerValidatorFactory();
-
- // WHEN
- ValueValidator writer = factory.createValueWriter(validator, supplyCatalog);
-
- // THEN
- assertThat(writer, instanceOf(IntegerValidator.class));
- }
-
- @Test
- @SuppressWarnings("unchecked")
- public void shouldCreateFragmentReader()
- {
- // GIVEN
- ValidatorConfig validator = new IntegerValidatorConfig();
- LongFunction supplyCatalog = mock(LongFunction.class);
- IntegerValidatorFactory factory = new IntegerValidatorFactory();
-
- // WHEN
- FragmentValidator reader = factory.createFragmentReader(validator, supplyCatalog);
-
- // THEN
- assertThat(reader, instanceOf(IntegerValidator.class));
- }
-
- @Test
- @SuppressWarnings("unchecked")
- public void shouldCreateFragmentWriter()
- {
- // GIVEN
- ValidatorConfig validator = new IntegerValidatorConfig();
- LongFunction supplyCatalog = mock(LongFunction.class);
- IntegerValidatorFactory factory = new IntegerValidatorFactory();
-
- // WHEN
- FragmentValidator writer = factory.createFragmentWriter(validator, supplyCatalog);
-
- // THEN
- assertThat(writer, instanceOf(IntegerValidator.class));
- }
-}
diff --git a/incubator/validator-core/src/test/java/io/aklivity/zilla/runtime/validator/core/StringValidatorFactoryTest.java b/incubator/validator-core/src/test/java/io/aklivity/zilla/runtime/validator/core/StringValidatorFactoryTest.java
deleted file mode 100644
index db0f13d00f..0000000000
--- a/incubator/validator-core/src/test/java/io/aklivity/zilla/runtime/validator/core/StringValidatorFactoryTest.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright 2021-2023 Aklivity Inc
- *
- * Licensed under the Aklivity Community License (the "License"); you may not use
- * this file except in compliance with the License. You may obtain a copy of the
- * License at
- *
- * https://www.aklivity.io/aklivity-community-license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package io.aklivity.zilla.runtime.validator.core;
-
-import static org.hamcrest.CoreMatchers.instanceOf;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.mockito.Mockito.mock;
-
-import java.util.function.LongFunction;
-
-import org.junit.Test;
-
-import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
-import io.aklivity.zilla.runtime.engine.validator.FragmentValidator;
-import io.aklivity.zilla.runtime.engine.validator.ValueValidator;
-import io.aklivity.zilla.runtime.validator.core.config.StringValidatorConfig;
-
-public class StringValidatorFactoryTest
-{
- @Test
- @SuppressWarnings("unchecked")
- public void shouldCreateValueReader()
- {
- // GIVEN
- ValidatorConfig validator = new StringValidatorConfig("utf_8");
- LongFunction supplyCatalog = mock(LongFunction.class);
- StringValidatorFactory factory = new StringValidatorFactory();
-
- // WHEN
- ValueValidator reader = factory.createValueReader(validator, supplyCatalog);
-
- // THEN
- assertThat(reader, instanceOf(StringValidator.class));
- }
-
- @Test
- @SuppressWarnings("unchecked")
- public void shouldCreateValueWriter()
- {
- // GIVEN
- ValidatorConfig validator = new StringValidatorConfig("utf_8");
- LongFunction supplyCatalog = mock(LongFunction.class);
- StringValidatorFactory factory = new StringValidatorFactory();
-
- // WHEN
- ValueValidator writer = factory.createValueWriter(validator, supplyCatalog);
-
- // THEN
- assertThat(writer, instanceOf(StringValidator.class));
- }
-
- @Test
- @SuppressWarnings("unchecked")
- public void shouldCreateFragmentReader()
- {
- // GIVEN
- ValidatorConfig validator = new StringValidatorConfig("utf_8");
- LongFunction supplyCatalog = mock(LongFunction.class);
- StringValidatorFactory factory = new StringValidatorFactory();
-
- // WHEN
- FragmentValidator reader = factory.createFragmentReader(validator, supplyCatalog);
-
- // THEN
- assertThat(reader, instanceOf(StringValidator.class));
- }
-
- @Test
- @SuppressWarnings("unchecked")
- public void shouldCreateFragmentWriter()
- {
- // GIVEN
- ValidatorConfig validator = new StringValidatorConfig("utf_8");
- LongFunction supplyCatalog = mock(LongFunction.class);
- StringValidatorFactory factory = new StringValidatorFactory();
-
- // WHEN
- FragmentValidator writer = factory.createFragmentWriter(validator, supplyCatalog);
-
- // THEN
- assertThat(writer, instanceOf(StringValidator.class));
- }
-}
diff --git a/incubator/validator-core/src/test/java/io/aklivity/zilla/runtime/validator/core/StringValidatorTest.java b/incubator/validator-core/src/test/java/io/aklivity/zilla/runtime/validator/core/StringValidatorTest.java
deleted file mode 100644
index cf1e78af20..0000000000
--- a/incubator/validator-core/src/test/java/io/aklivity/zilla/runtime/validator/core/StringValidatorTest.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * Copyright 2021-2023 Aklivity Inc
- *
- * Licensed under the Aklivity Community License (the "License"); you may not use
- * this file except in compliance with the License. You may obtain a copy of the
- * License at
- *
- * https://www.aklivity.io/aklivity-community-license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package io.aklivity.zilla.runtime.validator.core;
-
-import static io.aklivity.zilla.runtime.engine.validator.FragmentValidator.FLAGS_COMPLETE;
-import static org.junit.Assert.assertEquals;
-
-import java.nio.charset.StandardCharsets;
-
-import org.agrona.DirectBuffer;
-import org.agrona.concurrent.UnsafeBuffer;
-import org.junit.Test;
-
-import io.aklivity.zilla.runtime.engine.validator.function.FragmentConsumer;
-import io.aklivity.zilla.runtime.engine.validator.function.ValueConsumer;
-import io.aklivity.zilla.runtime.validator.core.config.StringValidatorConfig;
-
-public class StringValidatorTest
-{
- private static final int FLAGS_INIT = 0x02;
-
- @Test
- public void shouldVerifyValidUtf8()
- {
- StringValidatorConfig config = StringValidatorConfig.builder()
- .encoding("utf_8")
- .build();
- StringValidator validator = new StringValidator(config);
-
- DirectBuffer data = new UnsafeBuffer();
-
- byte[] bytes = "Valid String".getBytes();
- data.wrap(bytes, 0, bytes.length);
- assertEquals(data.capacity(), validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
- }
-
- @Test
- public void shouldVerifyInvalidUtf8()
- {
- StringValidatorConfig config = StringValidatorConfig.builder()
- .encoding("utf_8")
- .build();
- StringValidator validator = new StringValidator(config);
-
- DirectBuffer data = new UnsafeBuffer();
-
- byte[] bytes = {(byte) 0xc0};
- data.wrap(bytes, 0, bytes.length);
- assertEquals(-1, validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
- }
-
- @Test
- public void shouldVerifyValidUtf16()
- {
- StringValidatorConfig config = StringValidatorConfig.builder()
- .encoding("utf_16")
- .build();
- StringValidator validator = new StringValidator(config);
-
- DirectBuffer data = new UnsafeBuffer();
-
- byte[] bytes = "Valid String".getBytes(StandardCharsets.UTF_16);
- data.wrap(bytes, 0, bytes.length);
-
- assertEquals(data.capacity(), validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
- }
-
- @Test
- public void shouldVerifyIncompleteUtf16()
- {
- StringValidatorConfig config = StringValidatorConfig.builder()
- .encoding("utf_16")
- .build();
- StringValidator validator = new StringValidator(config);
-
- DirectBuffer data = new UnsafeBuffer();
-
- byte[] bytes = {0x48};
- data.wrap(bytes, 0, bytes.length);
- assertEquals(-1, validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
- }
-
- @Test
- public void shouldVerifyIncompleteSurrogatePairUtf16()
- {
- StringValidatorConfig config = StringValidatorConfig.builder()
- .encoding("utf_16")
- .build();
- StringValidator validator = new StringValidator(config);
-
- DirectBuffer data = new UnsafeBuffer();
-
- byte[] bytes = {(byte) 0xD8, (byte) 0x00};
- data.wrap(bytes, 0, bytes.length);
- assertEquals(-1, validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
- }
-
- @Test
- public void shouldVerifyInvalidSecondSurrogateUtf16()
- {
- StringValidatorConfig config = StringValidatorConfig.builder()
- .encoding("utf_16")
- .build();
- StringValidator validator = new StringValidator(config);
-
- DirectBuffer data = new UnsafeBuffer();
-
- byte[] bytes = {(byte) 0xDC, (byte) 0x01};
- data.wrap(bytes, 0, bytes.length);
- assertEquals(-1, validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
- }
-
- @Test
- public void shouldVerifyUnexpectedSecondSurrogateUtf16()
- {
- StringValidatorConfig config = StringValidatorConfig.builder()
- .encoding("utf_16")
- .build();
- StringValidator validator = new StringValidator(config);
-
- DirectBuffer data = new UnsafeBuffer();
-
- byte[] bytes = {(byte) 0xDC, (byte) 0x80};
- data.wrap(bytes, 0, bytes.length);
- assertEquals(-1, validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
- }
-
- @Test
- public void shouldVerifyValidMixedUtf16()
- {
- StringValidatorConfig config = StringValidatorConfig.builder()
- .encoding("utf_16")
- .build();
- StringValidator validator = new StringValidator(config);
-
- DirectBuffer data = new UnsafeBuffer();
-
- byte[] bytes = {0, 72, 0, 101, 0, 108, 0, 108, 0, 111, 65, 66, 67};
- data.wrap(bytes, 0, bytes.length);
- assertEquals(-1, validator.validate(data, 0, data.capacity(), ValueConsumer.NOP));
- }
-
- @Test
- public void shouldVerifyCompleteAndValidMessage()
- {
- StringValidatorConfig config = StringValidatorConfig.builder()
- .encoding("utf_8")
- .build();
- StringValidator validator = new StringValidator(config);
-
- DirectBuffer data = new UnsafeBuffer();
-
- byte[] bytes = "Valid String".getBytes();
- data.wrap(bytes, 0, bytes.length);
- assertEquals(data.capacity(), validator.validate(FLAGS_COMPLETE, data, 0, data.capacity(), FragmentConsumer.NOP));
- }
-
- @Test
- public void shouldVerifyIncompleteMessage()
- {
- StringValidatorConfig config = new StringValidatorConfig("utf_8");
- StringValidator validator = new StringValidator(config);
-
- DirectBuffer data = new UnsafeBuffer();
-
- byte[] bytes = {(byte) 0xc0};
- data.wrap(bytes, 0, bytes.length);
- assertEquals(0, validator.validate(FLAGS_INIT, data, 0, data.capacity(), FragmentConsumer.NOP));
- }
-
- @Test
- public void shouldVerifyValidFragmentUtf8()
- {
- StringValidatorConfig config = StringValidatorConfig.builder()
- .encoding("utf_8")
- .build();
- StringValidator validator = new StringValidator(config);
-
- DirectBuffer data = new UnsafeBuffer();
-
- byte[] bytes = "Valid String".getBytes();
- data.wrap(bytes, 0, bytes.length);
-
- assertEquals(0, validator.validate(0x00, data, 0, data.capacity(), FragmentConsumer.NOP));
-
- assertEquals(data.capacity(), validator.validate(0x01, data, 0, data.capacity(), FragmentConsumer.NOP));
- }
-}
diff --git a/incubator/validator-core/src/test/java/io/aklivity/zilla/runtime/validator/core/config/LongValidatorConfigAdapterTest.java b/incubator/validator-core/src/test/java/io/aklivity/zilla/runtime/validator/core/config/LongValidatorConfigAdapterTest.java
deleted file mode 100644
index 3d8e140c36..0000000000
--- a/incubator/validator-core/src/test/java/io/aklivity/zilla/runtime/validator/core/config/LongValidatorConfigAdapterTest.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright 2021-2023 Aklivity Inc
- *
- * Licensed under the Aklivity Community License (the "License"); you may not use
- * this file except in compliance with the License. You may obtain a copy of the
- * License at
- *
- * https://www.aklivity.io/aklivity-community-license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package io.aklivity.zilla.runtime.validator.core.config;
-
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.equalTo;
-import static org.hamcrest.Matchers.not;
-import static org.hamcrest.Matchers.nullValue;
-
-import jakarta.json.bind.Jsonb;
-import jakarta.json.bind.JsonbBuilder;
-import jakarta.json.bind.JsonbConfig;
-
-import org.junit.Before;
-import org.junit.Test;
-
-public class LongValidatorConfigAdapterTest
-{
- private Jsonb jsonb;
-
- @Before
- public void initJson()
- {
- JsonbConfig config = new JsonbConfig()
- .withAdapters(new LongValidatorConfigAdapter());
- jsonb = JsonbBuilder.create(config);
- }
-
- @Test
- public void shouldReadLongValidator()
- {
- // GIVEN
- String json =
- "{" +
- "\"type\":\"long\"" +
- "}";
-
- // WHEN
- LongValidatorConfig validator = jsonb.fromJson(json, LongValidatorConfig.class);
-
- // THEN
- assertThat(validator, not(nullValue()));
- assertThat(validator.type, equalTo("long"));
- }
-
- @Test
- public void shouldWriteLongValidator()
- {
- // GIVEN
- String expectedJson = "\"long\"";
- LongValidatorConfig validator = LongValidatorConfig.builder().build();
-
- // WHEN
- String json = jsonb.toJson(validator);
-
- // THEN
- assertThat(json, not(nullValue()));
- assertThat(json, equalTo(expectedJson));
- }
-}
diff --git a/incubator/validator-json/src/main/java/io/aklivity/zilla/runtime/validator/json/JsonValidatorFactory.java b/incubator/validator-json/src/main/java/io/aklivity/zilla/runtime/validator/json/JsonValidatorFactory.java
deleted file mode 100644
index 2aaf4fb10f..0000000000
--- a/incubator/validator-json/src/main/java/io/aklivity/zilla/runtime/validator/json/JsonValidatorFactory.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright 2021-2023 Aklivity Inc
- *
- * Licensed under the Aklivity Community License (the "License"); you may not use
- * this file except in compliance with the License. You may obtain a copy of the
- * License at
- *
- * https://www.aklivity.io/aklivity-community-license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package io.aklivity.zilla.runtime.validator.json;
-
-import java.net.URL;
-import java.util.function.LongFunction;
-
-import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
-import io.aklivity.zilla.runtime.engine.validator.FragmentValidator;
-import io.aklivity.zilla.runtime.engine.validator.ValidatorFactorySpi;
-import io.aklivity.zilla.runtime.engine.validator.ValueValidator;
-import io.aklivity.zilla.runtime.validator.json.config.JsonValidatorConfig;
-
-public final class JsonValidatorFactory implements ValidatorFactorySpi
-{
- @Override
- public String type()
- {
- return "json";
- }
-
- public URL schema()
- {
- return getClass().getResource("schema/json.schema.patch.json");
- }
-
- @Override
- public ValueValidator createValueReader(
- ValidatorConfig config,
- LongFunction supplyCatalog)
- {
- return createReader(config, supplyCatalog);
- }
-
- @Override
- public ValueValidator createValueWriter(
- ValidatorConfig config,
- LongFunction supplyCatalog)
- {
- return createWriter(config, supplyCatalog);
- }
-
- @Override
- public FragmentValidator createFragmentReader(
- ValidatorConfig config,
- LongFunction supplyCatalog)
- {
- return createReader(config, supplyCatalog);
- }
-
- @Override
- public FragmentValidator createFragmentWriter(
- ValidatorConfig config,
- LongFunction supplyCatalog)
- {
- return createWriter(config, supplyCatalog);
- }
-
- private JsonReadValidator createReader(
- ValidatorConfig config,
- LongFunction supplyCatalog)
- {
- return new JsonReadValidator(JsonValidatorConfig.class.cast(config), supplyCatalog);
- }
-
- private JsonWriteValidator createWriter(
- ValidatorConfig config,
- LongFunction supplyCatalog)
- {
- return new JsonWriteValidator(JsonValidatorConfig.class.cast(config), supplyCatalog);
- }
-}
diff --git a/incubator/validator-json/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.config.ValidatorConfigAdapterSpi b/incubator/validator-json/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.config.ValidatorConfigAdapterSpi
deleted file mode 100644
index 1b107098bc..0000000000
--- a/incubator/validator-json/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.config.ValidatorConfigAdapterSpi
+++ /dev/null
@@ -1 +0,0 @@
-io.aklivity.zilla.runtime.validator.json.config.JsonValidatorConfigAdapter
diff --git a/incubator/validator-json/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.validator.ValidatorFactorySpi b/incubator/validator-json/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.validator.ValidatorFactorySpi
deleted file mode 100644
index bf8cca9996..0000000000
--- a/incubator/validator-json/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.validator.ValidatorFactorySpi
+++ /dev/null
@@ -1 +0,0 @@
-io.aklivity.zilla.runtime.validator.json.JsonValidatorFactory
diff --git a/incubator/validator-protobuf/src/main/java/io/aklivity/zilla/runtime/validator/protobuf/ProtobufValidatorFactory.java b/incubator/validator-protobuf/src/main/java/io/aklivity/zilla/runtime/validator/protobuf/ProtobufValidatorFactory.java
deleted file mode 100644
index 6b6bd34b37..0000000000
--- a/incubator/validator-protobuf/src/main/java/io/aklivity/zilla/runtime/validator/protobuf/ProtobufValidatorFactory.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright 2021-2023 Aklivity Inc
- *
- * Licensed under the Aklivity Community License (the "License"); you may not use
- * this file except in compliance with the License. You may obtain a copy of the
- * License at
- *
- * https://www.aklivity.io/aklivity-community-license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OF ANY KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package io.aklivity.zilla.runtime.validator.protobuf;
-
-import java.net.URL;
-import java.util.function.LongFunction;
-
-import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
-import io.aklivity.zilla.runtime.engine.validator.FragmentValidator;
-import io.aklivity.zilla.runtime.engine.validator.ValidatorFactorySpi;
-import io.aklivity.zilla.runtime.engine.validator.ValueValidator;
-import io.aklivity.zilla.runtime.validator.protobuf.config.ProtobufValidatorConfig;
-
-public final class ProtobufValidatorFactory implements ValidatorFactorySpi
-{
- @Override
- public String type()
- {
- return "protobuf";
- }
-
- public URL schema()
- {
- return getClass().getResource("schema/protobuf.schema.patch.json");
- }
-
- @Override
- public ValueValidator createValueReader(
- ValidatorConfig config,
- LongFunction supplyCatalog)
- {
- return createReader(config, supplyCatalog);
- }
-
- @Override
- public ValueValidator createValueWriter(
- ValidatorConfig config,
- LongFunction supplyCatalog)
- {
- return createWriter(config, supplyCatalog);
- }
-
- @Override
- public FragmentValidator createFragmentReader(
- ValidatorConfig config,
- LongFunction supplyCatalog)
- {
- return createReader(config, supplyCatalog);
- }
-
- @Override
- public FragmentValidator createFragmentWriter(
- ValidatorConfig config,
- LongFunction supplyCatalog)
- {
- return createWriter(config, supplyCatalog);
- }
-
- private ProtobufReadValidator createReader(
- ValidatorConfig config,
- LongFunction supplyCatalog)
- {
- return new ProtobufReadValidator(ProtobufValidatorConfig.class.cast(config), supplyCatalog);
- }
-
- private ProtobufWriteValidator createWriter(
- ValidatorConfig config,
- LongFunction supplyCatalog)
- {
- return new ProtobufWriteValidator(ProtobufValidatorConfig.class.cast(config), supplyCatalog);
- }
-}
diff --git a/incubator/validator-protobuf/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.config.ValidatorConfigAdapterSpi b/incubator/validator-protobuf/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.config.ValidatorConfigAdapterSpi
deleted file mode 100644
index f159a5ed34..0000000000
--- a/incubator/validator-protobuf/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.config.ValidatorConfigAdapterSpi
+++ /dev/null
@@ -1 +0,0 @@
-io.aklivity.zilla.runtime.validator.protobuf.config.ProtobufValidatorConfigAdapter
diff --git a/incubator/validator-protobuf/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.validator.ValidatorFactorySpi b/incubator/validator-protobuf/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.validator.ValidatorFactorySpi
deleted file mode 100644
index 903ff8382f..0000000000
--- a/incubator/validator-protobuf/src/main/resources/META-INF/services/io.aklivity.zilla.runtime.engine.validator.ValidatorFactorySpi
+++ /dev/null
@@ -1 +0,0 @@
-io.aklivity.zilla.runtime.validator.protobuf.ProtobufValidatorFactory
diff --git a/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/config/HttpParamConfig.java b/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/config/HttpParamConfig.java
index 498e14fe26..d765bad3f1 100644
--- a/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/config/HttpParamConfig.java
+++ b/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/config/HttpParamConfig.java
@@ -17,19 +17,19 @@
import static java.util.function.Function.identity;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
public class HttpParamConfig
{
public String name;
- public ValidatorConfig validator;
+ public ConverterConfig converter;
public HttpParamConfig(
String name,
- ValidatorConfig validator)
+ ConverterConfig converter)
{
this.name = name;
- this.validator = validator;
+ this.converter = converter;
}
public static HttpParamConfigBuilder builder()
diff --git a/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/config/HttpParamConfigBuilder.java b/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/config/HttpParamConfigBuilder.java
index 675a93f0ee..e203a1870b 100644
--- a/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/config/HttpParamConfigBuilder.java
+++ b/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/config/HttpParamConfigBuilder.java
@@ -18,14 +18,14 @@
import java.util.function.Function;
import io.aklivity.zilla.runtime.engine.config.ConfigBuilder;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
public class HttpParamConfigBuilder extends ConfigBuilder>
{
private final Function mapper;
private String name;
- private ValidatorConfig validator;
+ private ConverterConfig converter;
HttpParamConfigBuilder(
Function mapper)
@@ -47,22 +47,22 @@ public HttpParamConfigBuilder name(
return this;
}
- public HttpParamConfigBuilder validator(
- ValidatorConfig validator)
+ public HttpParamConfigBuilder converter(
+ ConverterConfig converter)
{
- this.validator = validator;
+ this.converter = converter;
return this;
}
- public , C>> C validator(
- Function>, C> validator)
+ public , C>> C converter(
+ Function>, C> converter)
{
- return validator.apply(this::validator);
+ return converter.apply(this::converter);
}
@Override
public T build()
{
- return mapper.apply(new HttpParamConfig(name, validator));
+ return mapper.apply(new HttpParamConfig(name, converter));
}
}
diff --git a/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/config/HttpRequestConfig.java b/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/config/HttpRequestConfig.java
index f8b97422da..9c174b120f 100644
--- a/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/config/HttpRequestConfig.java
+++ b/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/config/HttpRequestConfig.java
@@ -19,7 +19,7 @@
import java.util.List;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
public class HttpRequestConfig
{
@@ -41,7 +41,7 @@ public enum Method
public final List headers;
public final List pathParams;
public final List queryParams;
- public final ValidatorConfig content;
+ public final ConverterConfig content;
public HttpRequestConfig(
String path,
@@ -50,7 +50,7 @@ public HttpRequestConfig(
List headers,
List pathParams,
List queryParams,
- ValidatorConfig content)
+ ConverterConfig content)
{
this.path = path;
this.method = method;
diff --git a/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/config/HttpRequestConfigBuilder.java b/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/config/HttpRequestConfigBuilder.java
index 2219674bd8..f71b6abfa2 100644
--- a/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/config/HttpRequestConfigBuilder.java
+++ b/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/config/HttpRequestConfigBuilder.java
@@ -20,7 +20,7 @@
import java.util.function.Function;
import io.aklivity.zilla.runtime.engine.config.ConfigBuilder;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
public class HttpRequestConfigBuilder extends ConfigBuilder>
{
@@ -32,7 +32,7 @@ public class HttpRequestConfigBuilder extends ConfigBuilder headers;
private List pathParams;
private List queryParams;
- private ValidatorConfig content;
+ private ConverterConfig content;
HttpRequestConfigBuilder(
Function mapper)
@@ -149,14 +149,14 @@ public HttpParamConfigBuilder> pathParam()
}
public HttpRequestConfigBuilder content(
- ValidatorConfig content)
+ ConverterConfig content)
{
this.content = content;
return this;
}
public , C>> C content(
- Function>, C> content)
+ Function>, C> content)
{
return content.apply(this::content);
}
diff --git a/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/internal/config/HttpBindingConfig.java b/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/internal/config/HttpBindingConfig.java
index 386c9eb3fa..4dca3a068a 100644
--- a/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/internal/config/HttpBindingConfig.java
+++ b/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/internal/config/HttpBindingConfig.java
@@ -47,10 +47,10 @@
import io.aklivity.zilla.runtime.binding.http.internal.types.String8FW;
import io.aklivity.zilla.runtime.binding.http.internal.types.stream.HttpBeginExFW;
import io.aklivity.zilla.runtime.engine.config.BindingConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
import io.aklivity.zilla.runtime.engine.config.KindConfig;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
-import io.aklivity.zilla.runtime.engine.validator.ValueValidator;
-import io.aklivity.zilla.runtime.engine.validator.function.ValueConsumer;
+import io.aklivity.zilla.runtime.engine.converter.Converter;
+import io.aklivity.zilla.runtime.engine.converter.function.ValueConsumer;
public final class HttpBindingConfig
{
@@ -80,7 +80,7 @@ public HttpBindingConfig(
public HttpBindingConfig(
BindingConfig binding,
- Function createValidator)
+ Function createConverter)
{
this.id = binding.id;
this.name = binding.name;
@@ -90,7 +90,7 @@ public HttpBindingConfig(
this.resolveId = binding.resolveId;
this.credentials = options != null && options.authorization != null ?
asAccessor(options.authorization.credentials) : DEFAULT_CREDENTIALS;
- this.requests = createValidator == null ? null : createRequestTypes(createValidator);
+ this.requests = createConverter == null ? null : createRequestTypes(createConverter);
}
public HttpRouteConfig resolve(
@@ -195,38 +195,38 @@ private Function, String> asAccessor(
}
private List createRequestTypes(
- Function createValidator)
+ Function createConverter)
{
List requestTypes = new LinkedList<>();
if (this.options != null && this.options.requests != null)
{
for (HttpRequestConfig request : this.options.requests)
{
- Map headers = new HashMap<>();
+ Map headers = new HashMap<>();
if (request.headers != null)
{
for (HttpParamConfig header : request.headers)
{
- headers.put(new String8FW(header.name), createValidator.apply(header.validator));
+ headers.put(new String8FW(header.name), createConverter.apply(header.converter));
}
}
- Map pathParams = new Object2ObjectHashMap<>();
+ Map pathParams = new Object2ObjectHashMap<>();
if (request.pathParams != null)
{
for (HttpParamConfig pathParam : request.pathParams)
{
- pathParams.put(pathParam.name, createValidator.apply(pathParam.validator));
+ pathParams.put(pathParam.name, createConverter.apply(pathParam.converter));
}
}
- Map queryParams = new TreeMap<>(QUERY_STRING_COMPARATOR);
+ Map queryParams = new TreeMap<>(QUERY_STRING_COMPARATOR);
if (request.queryParams != null)
{
for (HttpParamConfig queryParam : request.queryParams)
{
- queryParams.put(queryParam.name, createValidator.apply(queryParam.validator));
+ queryParams.put(queryParam.name, createConverter.apply(queryParam.converter));
}
}
- ValueValidator content = request.content == null ? null : createValidator.apply(request.content);
+ Converter content = request.content == null ? null : createConverter.apply(request.content);
HttpRequestType requestType = HttpRequestType.builder()
.path(request.path)
.method(request.method)
@@ -308,11 +308,11 @@ private boolean validateHeaderValues(
{
if (valid.value)
{
- ValueValidator validator = requestType.headers.get(header.name());
- if (validator != null)
+ Converter converter = requestType.headers.get(header.name());
+ if (converter != null)
{
String16FW value = header.value();
- valid.value &= validator.validate(value.value(), value.offset(), value.length(), ValueConsumer.NOP) != -1;
+ valid.value &= converter.convert(value.value(), value.offset(), value.length(), ValueConsumer.NOP) != -1;
}
}
});
@@ -335,8 +335,8 @@ private boolean validatePathParams(
if (value != null)
{
String8FW value0 = new String8FW(value);
- ValueValidator validator = requestType.pathParams.get(name);
- if (validator.validate(value0.value(), value0.offset(), value0.length(), ValueConsumer.NOP) == -1)
+ Converter converter = requestType.pathParams.get(name);
+ if (converter.convert(value0.value(), value0.offset(), value0.length(), ValueConsumer.NOP) == -1)
{
valid = false;
break;
@@ -355,11 +355,11 @@ private boolean validateQueryParams(
while (valid && matcher.find())
{
String name = matcher.group(1);
- ValueValidator validator = requestType.queryParams.get(name);
- if (validator != null)
+ Converter converter = requestType.queryParams.get(name);
+ if (converter != null)
{
String8FW value = new String8FW(matcher.group(2));
- valid &= validator.validate(value.value(), value.offset(), value.length(), ValueConsumer.NOP) != -1;
+ valid &= converter.convert(value.value(), value.offset(), value.length(), ValueConsumer.NOP) != -1;
}
}
return valid;
@@ -373,7 +373,7 @@ public boolean validateContent(
{
return requestType == null ||
requestType.content == null ||
- requestType.content.validate(buffer, index, length, ValueConsumer.NOP) != -1;
+ requestType.content.convert(buffer, index, length, ValueConsumer.NOP) != -1;
}
private static Function, String> orElseIfNull(
diff --git a/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/internal/config/HttpRequestConfigAdapter.java b/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/internal/config/HttpRequestConfigAdapter.java
index 39a64b7e5c..b84e0862d6 100644
--- a/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/internal/config/HttpRequestConfigAdapter.java
+++ b/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/internal/config/HttpRequestConfigAdapter.java
@@ -30,8 +30,8 @@
import io.aklivity.zilla.runtime.binding.http.config.HttpParamConfig;
import io.aklivity.zilla.runtime.binding.http.config.HttpRequestConfig;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfigAdapter;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfigAdapter;
public class HttpRequestConfigAdapter implements JsonbAdapter
{
@@ -44,7 +44,7 @@ public class HttpRequestConfigAdapter implements JsonbAdapter ((JsonString) i).getString())
.collect(Collectors.toList());
}
- ValidatorConfig content = null;
+ ConverterConfig content = null;
if (object.containsKey(CONTENT_NAME))
{
JsonValue contentJson = object.get(CONTENT_NAME);
- content = validator.adaptFromJson(contentJson);
+ content = converter.adaptFromJson(contentJson);
}
List headers = null;
if (object.containsKey(HEADERS_NAME))
@@ -145,7 +145,7 @@ public HttpRequestConfig adaptFromJson(
{
HttpParamConfig header = HttpParamConfig.builder()
.name(entry.getKey())
- .validator(validator.adaptFromJson(entry.getValue()))
+ .converter(converter.adaptFromJson(entry.getValue()))
.build();
headers.add(header);
}
@@ -163,7 +163,7 @@ public HttpRequestConfig adaptFromJson(
{
HttpParamConfig pathParam = HttpParamConfig.builder()
.name(entry.getKey())
- .validator(validator.adaptFromJson(entry.getValue()))
+ .converter(converter.adaptFromJson(entry.getValue()))
.build();
pathParams.add(pathParam);
}
@@ -176,7 +176,7 @@ public HttpRequestConfig adaptFromJson(
{
HttpParamConfig queryParam = HttpParamConfig.builder()
.name(entry.getKey())
- .validator(validator.adaptFromJson(entry.getValue()))
+ .converter(converter.adaptFromJson(entry.getValue()))
.build();
queryParams.add(queryParam);
}
diff --git a/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/internal/config/HttpRequestType.java b/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/internal/config/HttpRequestType.java
index 917a1434ea..fde746275f 100644
--- a/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/internal/config/HttpRequestType.java
+++ b/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/internal/config/HttpRequestType.java
@@ -22,7 +22,7 @@
import io.aklivity.zilla.runtime.binding.http.config.HttpRequestConfig;
import io.aklivity.zilla.runtime.binding.http.internal.types.String8FW;
-import io.aklivity.zilla.runtime.engine.validator.ValueValidator;
+import io.aklivity.zilla.runtime.engine.converter.Converter;
public final class HttpRequestType
{
@@ -43,10 +43,10 @@ public final class HttpRequestType
public final Matcher queryMatcher;
// validators
- public final Map headers;
- public final Map pathParams;
- public final Map queryParams;
- public final ValueValidator content;
+ public final Map headers;
+ public final Map pathParams;
+ public final Map queryParams;
+ public final Converter content;
private HttpRequestType(
String path,
@@ -54,10 +54,10 @@ private HttpRequestType(
List contentType,
Matcher pathMatcher,
Matcher queryMatcher,
- Map headers,
- Map pathParams,
- Map queryParams,
- ValueValidator content)
+ Map headers,
+ Map pathParams,
+ Map queryParams,
+ Converter content)
{
this.path = path;
this.method = method;
@@ -80,10 +80,10 @@ public static final class Builder
private String path;
private HttpRequestConfig.Method method;
private List contentType;
- private Map headers;
- private Map pathParams;
- private Map queryParams;
- private ValueValidator content;
+ private Map headers;
+ private Map pathParams;
+ private Map queryParams;
+ private Converter content;
public Builder path(
String path)
@@ -107,28 +107,28 @@ public Builder contentType(
}
public Builder headers(
- Map headers)
+ Map headers)
{
this.headers = headers;
return this;
}
public Builder pathParams(
- Map pathParams)
+ Map pathParams)
{
this.pathParams = pathParams;
return this;
}
public Builder queryParams(
- Map queryParams)
+ Map queryParams)
{
this.queryParams = queryParams;
return this;
}
public Builder content(
- ValueValidator content)
+ Converter content)
{
this.content = content;
return this;
diff --git a/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/internal/stream/HttpServerFactory.java b/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/internal/stream/HttpServerFactory.java
index 94b460e4bc..675c0387ac 100644
--- a/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/internal/stream/HttpServerFactory.java
+++ b/runtime/binding-http/src/main/java/io/aklivity/zilla/runtime/binding/http/internal/stream/HttpServerFactory.java
@@ -140,9 +140,9 @@
import io.aklivity.zilla.runtime.engine.buffer.BufferPool;
import io.aklivity.zilla.runtime.engine.concurrent.Signaler;
import io.aklivity.zilla.runtime.engine.config.BindingConfig;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
+import io.aklivity.zilla.runtime.engine.converter.Converter;
import io.aklivity.zilla.runtime.engine.guard.GuardHandler;
-import io.aklivity.zilla.runtime.engine.validator.ValueValidator;
public final class HttpServerFactory implements HttpStreamFactory
{
@@ -498,7 +498,7 @@ public final class HttpServerFactory implements HttpStreamFactory
private final Http2ServerDecoder decodeHttp2IgnoreAll = this::decodeHttp2IgnoreAll;
private final EnumMap decodersByFrameType;
- private final Function createValidator;
+ private final Function createConverter;
{
final EnumMap decodersByFrameType = new EnumMap<>(Http2FrameType.class);
@@ -572,7 +572,7 @@ public HttpServerFactory(
this.connectionClose = CONNECTION_CLOSE_PATTERN.matcher("");
this.maximumHeadersSize = bufferPool.slotCapacity();
this.decodeMax = bufferPool.slotCapacity();
- this.createValidator = context::createValueWriter;
+ this.createConverter = context::createWriter;
this.encodeMax = bufferPool.slotCapacity();
this.bindings = new Long2ObjectHashMap<>();
@@ -596,7 +596,7 @@ public int routedTypeId()
public void attach(
BindingConfig binding)
{
- HttpBindingConfig httpBinding = new HttpBindingConfig(binding, createValidator);
+ HttpBindingConfig httpBinding = new HttpBindingConfig(binding, createConverter);
bindings.put(binding.id, httpBinding);
}
diff --git a/runtime/binding-http/src/test/java/io/aklivity/zilla/runtime/binding/http/internal/config/HttpOptionsConfigAdapterTest.java b/runtime/binding-http/src/test/java/io/aklivity/zilla/runtime/binding/http/internal/config/HttpOptionsConfigAdapterTest.java
index 451c7668e6..3d5f4b3d53 100644
--- a/runtime/binding-http/src/test/java/io/aklivity/zilla/runtime/binding/http/internal/config/HttpOptionsConfigAdapterTest.java
+++ b/runtime/binding-http/src/test/java/io/aklivity/zilla/runtime/binding/http/internal/config/HttpOptionsConfigAdapterTest.java
@@ -42,7 +42,7 @@
import io.aklivity.zilla.runtime.binding.http.config.HttpVersion;
import io.aklivity.zilla.runtime.binding.http.internal.types.String16FW;
import io.aklivity.zilla.runtime.binding.http.internal.types.String8FW;
-import io.aklivity.zilla.runtime.engine.test.internal.validator.config.TestValidatorConfig;
+import io.aklivity.zilla.runtime.engine.test.internal.converter.config.TestConverterConfig;
public class HttpOptionsConfigAdapterTest
{
@@ -158,15 +158,15 @@ public void shouldReadOptions()
assertThat(request.method, equalTo(HttpRequestConfig.Method.GET));
assertThat(request.contentType.get(0), equalTo("application/json"));
assertThat(request.headers.get(0).name, equalTo("content-type"));
- assertThat(request.headers.get(0).validator, instanceOf(TestValidatorConfig.class));
- assertThat(request.headers.get(0).validator.type, equalTo("test"));
+ assertThat(request.headers.get(0).converter, instanceOf(TestConverterConfig.class));
+ assertThat(request.headers.get(0).converter.type, equalTo("test"));
assertThat(request.pathParams.get(0).name, equalTo("id"));
- assertThat(request.pathParams.get(0).validator, instanceOf(TestValidatorConfig.class));
- assertThat(request.pathParams.get(0).validator.type, equalTo("test"));
+ assertThat(request.pathParams.get(0).converter, instanceOf(TestConverterConfig.class));
+ assertThat(request.pathParams.get(0).converter.type, equalTo("test"));
assertThat(request.queryParams.get(0).name, equalTo("index"));
- assertThat(request.queryParams.get(0).validator, instanceOf(TestValidatorConfig.class));
- assertThat(request.queryParams.get(0).validator.type, equalTo("test"));
- assertThat(request.content, instanceOf(TestValidatorConfig.class));
+ assertThat(request.queryParams.get(0).converter, instanceOf(TestConverterConfig.class));
+ assertThat(request.queryParams.get(0).converter.type, equalTo("test"));
+ assertThat(request.content, instanceOf(TestConverterConfig.class));
assertThat(request.content.type, equalTo("test"));
}
@@ -280,20 +280,20 @@ public void shouldWriteOptions()
.contentType("application/json")
.header()
.name("content-type")
- .validator(TestValidatorConfig::builder)
+ .converter(TestConverterConfig::builder)
.build()
.build()
.pathParam()
.name("id")
- .validator(TestValidatorConfig::builder)
+ .converter(TestConverterConfig::builder)
.build()
.build()
.queryParam()
.name("index")
- .validator(TestValidatorConfig::builder)
+ .converter(TestConverterConfig::builder)
.build()
.build()
- .content(TestValidatorConfig::builder)
+ .content(TestConverterConfig::builder)
.build()
.build()
.build();
diff --git a/runtime/binding-http/src/test/java/io/aklivity/zilla/runtime/binding/http/internal/config/HttpRequestConfigAdapterTest.java b/runtime/binding-http/src/test/java/io/aklivity/zilla/runtime/binding/http/internal/config/HttpRequestConfigAdapterTest.java
index 5178001925..7efd1e3bb7 100644
--- a/runtime/binding-http/src/test/java/io/aklivity/zilla/runtime/binding/http/internal/config/HttpRequestConfigAdapterTest.java
+++ b/runtime/binding-http/src/test/java/io/aklivity/zilla/runtime/binding/http/internal/config/HttpRequestConfigAdapterTest.java
@@ -29,7 +29,7 @@
import org.junit.Test;
import io.aklivity.zilla.runtime.binding.http.config.HttpRequestConfig;
-import io.aklivity.zilla.runtime.engine.test.internal.validator.config.TestValidatorConfig;
+import io.aklivity.zilla.runtime.engine.test.internal.converter.config.TestConverterConfig;
public class HttpRequestConfigAdapterTest
{
@@ -81,15 +81,15 @@ public void shouldReadOptions()
assertThat(request.method, equalTo(HttpRequestConfig.Method.GET));
assertThat(request.contentType.get(0), equalTo("application/json"));
assertThat(request.headers.get(0).name, equalTo("content-type"));
- assertThat(request.headers.get(0).validator, instanceOf(TestValidatorConfig.class));
- assertThat(request.headers.get(0).validator.type, equalTo("test"));
+ assertThat(request.headers.get(0).converter, instanceOf(TestConverterConfig.class));
+ assertThat(request.headers.get(0).converter.type, equalTo("test"));
assertThat(request.pathParams.get(0).name, equalTo("id"));
- assertThat(request.pathParams.get(0).validator, instanceOf(TestValidatorConfig.class));
- assertThat(request.pathParams.get(0).validator.type, equalTo("test"));
+ assertThat(request.pathParams.get(0).converter, instanceOf(TestConverterConfig.class));
+ assertThat(request.pathParams.get(0).converter.type, equalTo("test"));
assertThat(request.queryParams.get(0).name, equalTo("index"));
- assertThat(request.queryParams.get(0).validator, instanceOf(TestValidatorConfig.class));
- assertThat(request.queryParams.get(0).validator.type, equalTo("test"));
- assertThat(request.content, instanceOf(TestValidatorConfig.class));
+ assertThat(request.queryParams.get(0).converter, instanceOf(TestConverterConfig.class));
+ assertThat(request.queryParams.get(0).converter.type, equalTo("test"));
+ assertThat(request.content, instanceOf(TestConverterConfig.class));
assertThat(request.content.type, equalTo("test"));
}
@@ -128,20 +128,20 @@ public void shouldWriteOptions()
.contentType("application/json")
.header()
.name("content-type")
- .validator(TestValidatorConfig::builder)
+ .converter(TestConverterConfig::builder)
.build()
.build()
.pathParam()
.name("id")
- .validator(TestValidatorConfig::builder)
+ .converter(TestConverterConfig::builder)
.build()
.build()
.queryParam()
.name("index")
- .validator(TestValidatorConfig::builder)
+ .converter(TestConverterConfig::builder)
.build()
.build()
- .content(TestValidatorConfig::builder)
+ .content(TestConverterConfig::builder)
.build()
.build();
diff --git a/runtime/binding-kafka/src/main/java/io/aklivity/zilla/runtime/binding/kafka/config/KafkaTopicConfig.java b/runtime/binding-kafka/src/main/java/io/aklivity/zilla/runtime/binding/kafka/config/KafkaTopicConfig.java
index d35c471173..b4d833f385 100644
--- a/runtime/binding-kafka/src/main/java/io/aklivity/zilla/runtime/binding/kafka/config/KafkaTopicConfig.java
+++ b/runtime/binding-kafka/src/main/java/io/aklivity/zilla/runtime/binding/kafka/config/KafkaTopicConfig.java
@@ -19,22 +19,22 @@
import io.aklivity.zilla.runtime.binding.kafka.internal.types.KafkaDeltaType;
import io.aklivity.zilla.runtime.binding.kafka.internal.types.KafkaOffsetType;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
public class KafkaTopicConfig
{
public final String name;
public final KafkaOffsetType defaultOffset;
public final KafkaDeltaType deltaType;
- public final ValidatorConfig key;
- public final ValidatorConfig value;
+ public final ConverterConfig key;
+ public final ConverterConfig value;
public KafkaTopicConfig(
String name,
KafkaOffsetType defaultOffset,
KafkaDeltaType deltaType,
- ValidatorConfig key,
- ValidatorConfig value)
+ ConverterConfig key,
+ ConverterConfig value)
{
this.name = name;
this.defaultOffset = defaultOffset;
diff --git a/runtime/binding-kafka/src/main/java/io/aklivity/zilla/runtime/binding/kafka/internal/cache/KafkaCachePartition.java b/runtime/binding-kafka/src/main/java/io/aklivity/zilla/runtime/binding/kafka/internal/cache/KafkaCachePartition.java
index 3cd227b420..aed84f565b 100644
--- a/runtime/binding-kafka/src/main/java/io/aklivity/zilla/runtime/binding/kafka/internal/cache/KafkaCachePartition.java
+++ b/runtime/binding-kafka/src/main/java/io/aklivity/zilla/runtime/binding/kafka/internal/cache/KafkaCachePartition.java
@@ -73,10 +73,8 @@
import io.aklivity.zilla.runtime.binding.kafka.internal.types.Varint32FW;
import io.aklivity.zilla.runtime.binding.kafka.internal.types.cache.KafkaCacheDeltaFW;
import io.aklivity.zilla.runtime.binding.kafka.internal.types.cache.KafkaCacheEntryFW;
-import io.aklivity.zilla.runtime.engine.validator.FragmentValidator;
-import io.aklivity.zilla.runtime.engine.validator.ValueValidator;
-import io.aklivity.zilla.runtime.engine.validator.function.FragmentConsumer;
-import io.aklivity.zilla.runtime.engine.validator.function.ValueConsumer;
+import io.aklivity.zilla.runtime.engine.converter.Converter;
+import io.aklivity.zilla.runtime.engine.converter.function.ValueConsumer;
public final class KafkaCachePartition
{
@@ -92,6 +90,7 @@ public final class KafkaCachePartition
private static final String FORMAT_PRODUCE_PARTITION_DIRECTORY = "%s-%d-%d";
private static final int FLAGS_COMPLETE = 0x03;
+ private static final int FLAGS_FIN = 0x01;
public static final int CACHE_ENTRY_FLAGS_DIRTY = 0x01;
public static final int CACHE_ENTRY_FLAGS_COMPLETED = 0x02;
public static final int CACHE_ENTRY_FLAGS_ABORTED = 0x04;
@@ -340,14 +339,14 @@ public void writeEntry(
KafkaCacheEntryFW ancestor,
int entryFlags,
KafkaDeltaType deltaType,
- ValueValidator validateKey,
- FragmentValidator validateValue)
+ Converter convertKey,
+ Converter convertValue)
{
final long keyHash = computeHash(key);
final int valueLength = value != null ? value.sizeof() : -1;
writeEntryStart(offset, entryMark, valueMark, timestamp, producerId, key,
- keyHash, valueLength, ancestor, entryFlags, deltaType, value, validateKey, validateValue);
- writeEntryContinue(FLAGS_COMPLETE, entryMark, valueMark, value, validateValue);
+ keyHash, valueLength, ancestor, entryFlags, deltaType, value, convertKey, convertValue);
+ writeEntryContinue(FLAGS_COMPLETE, entryMark, valueMark, value, convertValue);
writeEntryFinish(headers, deltaType);
}
@@ -364,8 +363,8 @@ public void writeEntryStart(
int entryFlags,
KafkaDeltaType deltaType,
OctetsFW payload,
- ValueValidator validateKey,
- FragmentValidator validateValue)
+ Converter convertKey,
+ Converter convertValue)
{
assert offset > this.progress : String.format("%d > %d", offset, this.progress);
this.progress = offset;
@@ -398,9 +397,9 @@ public void writeEntryStart(
this.ancestorEntry = ancestor;
int convertedPos = NO_CONVERTED_POSITION;
- if (validateValue != FragmentValidator.NONE)
+ if (convertValue != Converter.NONE)
{
- int convertedPadding = validateValue.padding(payload.buffer(), payload.offset(), payload.sizeof());
+ int convertedPadding = convertValue.padding(payload.buffer(), payload.offset(), payload.sizeof());
int convertedMaxLength = valueMaxLength + convertedPadding;
convertedPos = convertedFile.capacity();
@@ -438,8 +437,8 @@ public void writeEntryStart(
logFile.appendBytes(buffer, index, length);
};
OctetsFW value = key.value();
- int validated = validateKey.validate(value.buffer(), value.offset(), value.sizeof(), writeKey);
- if (validated == -1)
+ int converted = convertKey.convert(value.buffer(), value.offset(), value.sizeof(), writeKey);
+ if (converted == -1)
{
// For Fetch Validation failure, we still push the event to Cache
logFile.appendBytes(key);
@@ -470,7 +469,7 @@ public void writeEntryContinue(
MutableInteger entryMark,
MutableInteger valueMark,
OctetsFW payload,
- FragmentValidator validateValue)
+ Converter convertValue)
{
final Node head = sentinel.previous;
assert head != sentinel;
@@ -487,9 +486,9 @@ public void writeEntryContinue(
logFile.appendBytes(payload.buffer(), payload.offset(), payload.sizeof());
- if (payload != null && validateValue != FragmentValidator.NONE)
+ if (payload != null && convertValue != Converter.NONE)
{
- final FragmentConsumer consumeConverted = (flag, buffer, index, length) ->
+ final ValueConsumer consumeConverted = (buffer, index, length) ->
{
final int convertedLengthAt = logFile.readInt(entryMark.value + FIELD_OFFSET_CONVERTED_POSITION);
final int convertedLength = convertedFile.readInt(convertedLengthAt);
@@ -505,12 +504,14 @@ public void writeEntryContinue(
final int valueLength = logFile.capacity() - valueMark.value;
// TODO: log if invalid
- int validated = validateValue.validate(flags, logFile.buffer(), valueMark.value, valueLength, consumeConverted);
- if (validated == -1)
+ if ((flags & FLAGS_FIN) != 0x00)
{
- logFile.writeInt(entryMark.value + FIELD_OFFSET_CONVERTED_POSITION, NO_CONVERTED_POSITION);
+ int converted = convertValue.convert(logFile.buffer(), valueMark.value, valueLength, consumeConverted);
+ if (converted == -1)
+ {
+ logFile.writeInt(entryMark.value + FIELD_OFFSET_CONVERTED_POSITION, NO_CONVERTED_POSITION);
+ }
}
-
}
}
@@ -611,8 +612,8 @@ public int writeProduceEntryStart(
ArrayFW headers,
int trailersSizeMax,
OctetsFW payload,
- ValueValidator validateKey,
- FragmentValidator validateValue)
+ Converter convertKey,
+ Converter convertValue)
{
assert offset > this.progress : String.format("%d > %d", offset, this.progress);
this.progress = offset;
@@ -627,9 +628,9 @@ public int writeProduceEntryStart(
final int valueMaxLength = valueLength == -1 ? 0 : valueLength;
int convertedPos = NO_CONVERTED_POSITION;
- if (validateValue != FragmentValidator.NONE)
+ if (convertValue != Converter.NONE)
{
- int convertedPadding = validateValue.padding(payload.buffer(), payload.offset(), payload.sizeof());
+ int convertedPadding = convertValue.padding(payload.buffer(), payload.offset(), payload.sizeof());
int convertedMaxLength = valueMaxLength + convertedPadding;
convertedPos = convertedFile.capacity();
@@ -655,7 +656,7 @@ public int writeProduceEntryStart(
logFile.appendBytes(entryInfo);
- int validated = 0;
+ int converted = 0;
write:
{
OctetsFW value = key.value();
@@ -672,9 +673,9 @@ public int writeProduceEntryStart(
logFile.appendBytes(buffer, index, length);
};
- validated = validateKey.validate(value.buffer(), value.offset(), value.sizeof(), writeKey);
+ converted = convertKey.convert(value.buffer(), value.offset(), value.sizeof(), writeKey);
- if (validated == -1)
+ if (converted == -1)
{
break write;
}
@@ -700,7 +701,7 @@ public int writeProduceEntryStart(
assert indexFile.available() >= Long.BYTES;
indexFile.appendLong(indexEntry);
}
- return validated;
+ return converted;
}
public int writeProduceEntryContinue(
@@ -710,7 +711,7 @@ public int writeProduceEntryContinue(
MutableInteger valueMark,
MutableInteger valueLimit,
OctetsFW payload,
- FragmentValidator validateValue)
+ Converter convertValue)
{
final KafkaCacheSegment segment = head.segment;
assert segment != null;
@@ -718,14 +719,14 @@ public int writeProduceEntryContinue(
final KafkaCacheFile logFile = segment.logFile();
final KafkaCacheFile convertedFile = segment.convertedFile();
- int validated = 0;
+ int converted = 0;
if (payload != null)
{
valueLimit.value += logFile.writeBytes(valueLimit.value, payload);
- if (validateValue != FragmentValidator.NONE)
+ if (convertValue != Converter.NONE)
{
- final FragmentConsumer consumeConverted = (flag, buffer, index, length) ->
+ final ValueConsumer consumeConverted = (buffer, index, length) ->
{
final int convertedLengthAt = logFile.readInt(entryMark.value + FIELD_OFFSET_CONVERTED_POSITION);
final int convertedLength = convertedFile.readInt(convertedLengthAt);
@@ -740,11 +741,14 @@ public int writeProduceEntryContinue(
};
final int valueLength = valueLimit.value - valueMark.value;
- validated = validateValue.validate(flags, logFile.buffer(), valueMark.value, valueLength, consumeConverted);
+ if ((flags & FLAGS_FIN) != 0x00)
+ {
+ converted = convertValue.convert(logFile.buffer(), valueMark.value, valueLength, consumeConverted);
+ }
}
}
- return validated;
+ return converted;
}
public void writeProduceEntryFin(
diff --git a/runtime/binding-kafka/src/main/java/io/aklivity/zilla/runtime/binding/kafka/internal/config/KafkaBindingConfig.java b/runtime/binding-kafka/src/main/java/io/aklivity/zilla/runtime/binding/kafka/internal/config/KafkaBindingConfig.java
index e1c0946ee3..92c772ea06 100644
--- a/runtime/binding-kafka/src/main/java/io/aklivity/zilla/runtime/binding/kafka/internal/config/KafkaBindingConfig.java
+++ b/runtime/binding-kafka/src/main/java/io/aklivity/zilla/runtime/binding/kafka/internal/config/KafkaBindingConfig.java
@@ -31,8 +31,7 @@
import io.aklivity.zilla.runtime.engine.EngineContext;
import io.aklivity.zilla.runtime.engine.config.BindingConfig;
import io.aklivity.zilla.runtime.engine.config.KindConfig;
-import io.aklivity.zilla.runtime.engine.validator.FragmentValidator;
-import io.aklivity.zilla.runtime.engine.validator.ValueValidator;
+import io.aklivity.zilla.runtime.engine.converter.Converter;
public final class KafkaBindingConfig
{
@@ -42,10 +41,10 @@ public final class KafkaBindingConfig
public final KindConfig kind;
public final List routes;
public final ToLongFunction resolveId;
- public final Map fragmentReaders;
- public final Map fragmentWriters;
- public final Map valueReaders;
- public final Map valueWriters;
+ public final Map keyReaders;
+ public final Map keyWriters;
+ public final Map valueReaders;
+ public final Map valueWriters;
public KafkaBindingConfig(
BindingConfig binding,
@@ -57,37 +56,37 @@ public KafkaBindingConfig(
this.options = KafkaOptionsConfig.class.cast(binding.options);
this.routes = binding.routes.stream().map(KafkaRouteConfig::new).collect(toList());
this.resolveId = binding.resolveId;
- this.valueReaders = options != null && options.topics != null
+ this.keyReaders = options != null && options.topics != null
? options.topics.stream()
.collect(Collectors.toMap(
t -> t.name,
t -> t.key != null
- ? context.createValueReader(t.key)
- : ValueValidator.NONE))
+ ? context.createReader(t.key)
+ : Converter.NONE))
: null;
- this.valueWriters = options != null && options.topics != null
+ this.keyWriters = options != null && options.topics != null
? options.topics.stream()
.collect(Collectors.toMap(
t -> t.name,
t -> t.key != null
- ? context.createValueWriter(t.key)
- : ValueValidator.NONE))
+ ? context.createWriter(t.key)
+ : Converter.NONE))
: null;
- this.fragmentReaders = options != null && options.topics != null
+ this.valueReaders = options != null && options.topics != null
? options.topics.stream()
.collect(Collectors.toMap(
t -> t.name,
t -> t.value != null
- ? context.createFragmentReader(t.value)
- : FragmentValidator.NONE))
+ ? context.createReader(t.value)
+ : Converter.NONE))
: null;
- this.fragmentWriters = options != null && options.topics != null
+ this.valueWriters = options != null && options.topics != null
? options.topics.stream()
.collect(Collectors.toMap(
t -> t.name,
t -> t.value != null
- ? context.createFragmentWriter(t.value)
- : FragmentValidator.NONE))
+ ? context.createWriter(t.value)
+ : Converter.NONE))
: null;
}
@@ -142,27 +141,27 @@ public KafkaOffsetType supplyDefaultOffset(
return config != null && config.defaultOffset != null ? config.defaultOffset : HISTORICAL;
}
- public ValueValidator resolveValueReader(
+ public Converter resolveKeyReader(
String topic)
{
- return valueReaders != null ? valueReaders.getOrDefault(topic, ValueValidator.NONE) : ValueValidator.NONE;
+ return keyReaders != null ? keyReaders.getOrDefault(topic, Converter.NONE) : Converter.NONE;
}
- public ValueValidator resolveValueWriter(
+ public Converter resolveKeyWriter(
String topic)
{
- return valueWriters != null ? valueWriters.getOrDefault(topic, ValueValidator.NONE) : ValueValidator.NONE;
+ return keyWriters != null ? keyWriters.getOrDefault(topic, Converter.NONE) : Converter.NONE;
}
- public FragmentValidator resolveFragmentReader(
+ public Converter resolveValueReader(
String topic)
{
- return fragmentReaders != null ? fragmentReaders.getOrDefault(topic, FragmentValidator.NONE) : FragmentValidator.NONE;
+ return valueReaders != null ? valueReaders.getOrDefault(topic, Converter.NONE) : Converter.NONE;
}
- public FragmentValidator resolveFragmentWriter(
+ public Converter resolveValueWriter(
String topic)
{
- return fragmentWriters != null ? fragmentWriters.getOrDefault(topic, FragmentValidator.NONE) : FragmentValidator.NONE;
+ return valueWriters != null ? valueWriters.getOrDefault(topic, Converter.NONE) : Converter.NONE;
}
}
diff --git a/runtime/binding-kafka/src/main/java/io/aklivity/zilla/runtime/binding/kafka/internal/config/KafkaTopicConfigAdapter.java b/runtime/binding-kafka/src/main/java/io/aklivity/zilla/runtime/binding/kafka/internal/config/KafkaTopicConfigAdapter.java
index ea7fcf79b6..6c1ac96c94 100644
--- a/runtime/binding-kafka/src/main/java/io/aklivity/zilla/runtime/binding/kafka/internal/config/KafkaTopicConfigAdapter.java
+++ b/runtime/binding-kafka/src/main/java/io/aklivity/zilla/runtime/binding/kafka/internal/config/KafkaTopicConfigAdapter.java
@@ -23,8 +23,8 @@
import io.aklivity.zilla.runtime.binding.kafka.config.KafkaTopicConfig;
import io.aklivity.zilla.runtime.binding.kafka.internal.types.KafkaDeltaType;
import io.aklivity.zilla.runtime.binding.kafka.internal.types.KafkaOffsetType;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfigAdapter;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfigAdapter;
public final class KafkaTopicConfigAdapter implements JsonbAdapter
{
@@ -35,7 +35,7 @@ public final class KafkaTopicConfigAdapter implements JsonbAdapter();
this.defaultOffset = KafkaOffsetType.LIVE;
this.cursor = cursorFactory.newCursor(
@@ -709,7 +708,7 @@ private void onClientInitialData(
final long keyHash = partition.computeKeyHash(key);
if (partition.writeProduceEntryStart(partitionOffset, stream.segment, stream.entryMark, stream.valueMark,
stream.valueLimit, timestamp, stream.initialId, sequence, ackMode, key, keyHash, valueLength,
- headers, trailersSizeMax, valueFragment, validateKey, validateValue) == -1)
+ headers, trailersSizeMax, valueFragment, convertKey, convertValue) == -1)
{
error = ERROR_INVALID_RECORD;
break init;
@@ -727,7 +726,7 @@ private void onClientInitialData(
{
if (partition.writeProduceEntryContinue(flags, stream.segment,
stream.entryMark, stream.valueMark, stream.valueLimit,
- valueFragment, validateValue) == -1)
+ valueFragment, convertValue) == -1)
{
error = ERROR_INVALID_RECORD;
}
@@ -789,7 +788,7 @@ private void onClientInitialFlush(
partition.writeProduceEntryStart(partitionOffset, stream.segment, stream.entryMark, stream.valueMark,
stream.valueLimit, now().toEpochMilli(), stream.initialId, PRODUCE_FLUSH_SEQUENCE,
KafkaAckMode.LEADER_ONLY, EMPTY_KEY, keyHash, 0, EMPTY_TRAILERS,
- trailersSizeMax, EMPTY_OCTETS, validateKey, validateValue);
+ trailersSizeMax, EMPTY_OCTETS, convertKey, convertValue);
stream.partitionOffset = partitionOffset;
partitionOffset++;
diff --git a/runtime/binding-kafka/src/main/java/io/aklivity/zilla/runtime/binding/kafka/internal/stream/KafkaCacheServerFetchFactory.java b/runtime/binding-kafka/src/main/java/io/aklivity/zilla/runtime/binding/kafka/internal/stream/KafkaCacheServerFetchFactory.java
index 9899a10f8c..a81a306ddb 100644
--- a/runtime/binding-kafka/src/main/java/io/aklivity/zilla/runtime/binding/kafka/internal/stream/KafkaCacheServerFetchFactory.java
+++ b/runtime/binding-kafka/src/main/java/io/aklivity/zilla/runtime/binding/kafka/internal/stream/KafkaCacheServerFetchFactory.java
@@ -88,8 +88,7 @@
import io.aklivity.zilla.runtime.engine.binding.function.MessageConsumer;
import io.aklivity.zilla.runtime.engine.buffer.BufferPool;
import io.aklivity.zilla.runtime.engine.concurrent.Signaler;
-import io.aklivity.zilla.runtime.engine.validator.FragmentValidator;
-import io.aklivity.zilla.runtime.engine.validator.ValueValidator;
+import io.aklivity.zilla.runtime.engine.converter.Converter;
public final class KafkaCacheServerFetchFactory implements BindingHandler
{
@@ -234,11 +233,11 @@ public MessageConsumer newStream(
final KafkaCache cache = supplyCache.apply(cacheName);
final KafkaCacheTopic cacheTopic = cache.supplyTopic(topicName);
final KafkaCachePartition partition = cacheTopic.supplyFetchPartition(partitionId);
- final ValueValidator validateKey = binding.resolveValueReader(topicName);
- final FragmentValidator validateValue = binding.resolveFragmentReader(topicName);
+ final Converter convertKey = binding.resolveKeyReader(topicName);
+ final Converter convertValue = binding.resolveValueReader(topicName);
final KafkaCacheServerFetchFanout newFanout =
new KafkaCacheServerFetchFanout(routedId, resolvedId, authorization,
- affinity, partition, routeDeltaType, defaultOffset, validateKey, validateValue);
+ affinity, partition, routeDeltaType, defaultOffset, convertKey, convertValue);
cacheRoute.serverFetchFanoutsByTopicPartition.put(partitionKey, newFanout);
fanout = newFanout;
@@ -475,8 +474,8 @@ final class KafkaCacheServerFetchFanout
private final KafkaOffsetType defaultOffset;
private final long retentionMillisMax;
private final List members;
- private final ValueValidator validateKey;
- private final FragmentValidator validateValue;
+ private final Converter convertKey;
+ private final Converter convertValue;
private final MutableInteger entryMark;
private final MutableInteger valueMark;
@@ -513,8 +512,8 @@ private KafkaCacheServerFetchFanout(
KafkaCachePartition partition,
KafkaDeltaType deltaType,
KafkaOffsetType defaultOffset,
- ValueValidator validateKey,
- FragmentValidator validateValue)
+ Converter convertKey,
+ Converter convertValue)
{
this.originId = originId;
this.routedId = routedId;
@@ -525,8 +524,8 @@ private KafkaCacheServerFetchFanout(
this.retentionMillisMax = defaultOffset == LIVE ? SECONDS.toMillis(30) : Long.MAX_VALUE;
this.members = new ArrayList<>();
this.leaderId = leaderId;
- this.validateKey = validateKey;
- this.validateValue = validateValue;
+ this.convertKey = convertKey;
+ this.convertValue = convertValue;
this.entryMark = new MutableInteger(0);
this.valueMark = new MutableInteger(0);
}
@@ -774,7 +773,7 @@ private void onServerFanoutReplyFlush(
partition.writeEntry(partitionOffset, entryMark, valueMark, 0L, producerId,
EMPTY_KEY, EMPTY_HEADERS, EMPTY_OCTETS, null,
- entryFlags, KafkaDeltaType.NONE, validateKey, validateValue);
+ entryFlags, KafkaDeltaType.NONE, convertKey, convertValue);
if (result == KafkaTransactionResult.ABORT)
{
@@ -878,12 +877,12 @@ private void onServerFanoutReplyData(
final long keyHash = partition.computeKeyHash(key);
final KafkaCacheEntryFW ancestor = findAndMarkAncestor(key, nextHead, (int) keyHash, partitionOffset);
partition.writeEntryStart(partitionOffset, entryMark, valueMark, timestamp, producerId,
- key, keyHash, valueLength, ancestor, entryFlags, deltaType, valueFragment, validateKey, validateValue);
+ key, keyHash, valueLength, ancestor, entryFlags, deltaType, valueFragment, convertKey, convertValue);
}
if (valueFragment != null)
{
- partition.writeEntryContinue(flags, entryMark, valueMark, valueFragment, validateValue);
+ partition.writeEntryContinue(flags, entryMark, valueMark, valueFragment, convertValue);
}
if ((flags & FLAGS_FIN) != 0x00)
diff --git a/runtime/binding-kafka/src/test/java/io/aklivity/zilla/runtime/binding/kafka/internal/config/KafkaOptionsConfigAdapterTest.java b/runtime/binding-kafka/src/test/java/io/aklivity/zilla/runtime/binding/kafka/internal/config/KafkaOptionsConfigAdapterTest.java
index b05a1a2ccb..20907fd221 100644
--- a/runtime/binding-kafka/src/test/java/io/aklivity/zilla/runtime/binding/kafka/internal/config/KafkaOptionsConfigAdapterTest.java
+++ b/runtime/binding-kafka/src/test/java/io/aklivity/zilla/runtime/binding/kafka/internal/config/KafkaOptionsConfigAdapterTest.java
@@ -33,7 +33,7 @@
import io.aklivity.zilla.runtime.binding.kafka.config.KafkaOptionsConfig;
import io.aklivity.zilla.runtime.binding.kafka.config.KafkaSaslConfig;
import io.aklivity.zilla.runtime.binding.kafka.config.KafkaTopicConfig;
-import io.aklivity.zilla.runtime.engine.test.internal.validator.config.TestValidatorConfig;
+import io.aklivity.zilla.runtime.engine.test.internal.converter.config.TestConverterConfig;
public class KafkaOptionsConfigAdapterTest
{
@@ -87,7 +87,7 @@ public void shouldWriteOptions()
{
KafkaOptionsConfig options = new KafkaOptionsConfig(
singletonList("test"),
- singletonList(new KafkaTopicConfig("test", LIVE, JSON_PATCH, null, TestValidatorConfig.builder().build())),
+ singletonList(new KafkaTopicConfig("test", LIVE, JSON_PATCH, null, TestConverterConfig.builder().build())),
new KafkaSaslConfig("plain", "username", "password"));
String text = jsonb.toJson(options);
@@ -157,7 +157,7 @@ public void shouldWriteCatalogOptions()
KafkaOptionsConfig options = new KafkaOptionsConfig(
singletonList("test"),
singletonList(new KafkaTopicConfig("test", LIVE, JSON_PATCH, null,
- TestValidatorConfig.builder()
+ TestConverterConfig.builder()
.length(0)
.build())),
new KafkaSaslConfig("plain", "username", "password"));
diff --git a/runtime/binding-mqtt/src/main/java/io/aklivity/zilla/runtime/binding/mqtt/config/MqttTopicConfig.java b/runtime/binding-mqtt/src/main/java/io/aklivity/zilla/runtime/binding/mqtt/config/MqttTopicConfig.java
index bcba8eb11f..1940a546fd 100644
--- a/runtime/binding-mqtt/src/main/java/io/aklivity/zilla/runtime/binding/mqtt/config/MqttTopicConfig.java
+++ b/runtime/binding-mqtt/src/main/java/io/aklivity/zilla/runtime/binding/mqtt/config/MqttTopicConfig.java
@@ -17,16 +17,16 @@
import static java.util.function.Function.identity;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
public class MqttTopicConfig
{
public final String name;
- public final ValidatorConfig content;
+ public final ConverterConfig content;
public MqttTopicConfig(
String name,
- ValidatorConfig content)
+ ConverterConfig content)
{
this.name = name;
this.content = content;
diff --git a/runtime/binding-mqtt/src/main/java/io/aklivity/zilla/runtime/binding/mqtt/config/MqttTopicConfigBuilder.java b/runtime/binding-mqtt/src/main/java/io/aklivity/zilla/runtime/binding/mqtt/config/MqttTopicConfigBuilder.java
index 382d56b951..f6a5a5316d 100644
--- a/runtime/binding-mqtt/src/main/java/io/aklivity/zilla/runtime/binding/mqtt/config/MqttTopicConfigBuilder.java
+++ b/runtime/binding-mqtt/src/main/java/io/aklivity/zilla/runtime/binding/mqtt/config/MqttTopicConfigBuilder.java
@@ -18,14 +18,14 @@
import java.util.function.Function;
import io.aklivity.zilla.runtime.engine.config.ConfigBuilder;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
public class MqttTopicConfigBuilder extends ConfigBuilder>
{
private final Function mapper;
private String name;
- private ValidatorConfig content;
+ private ConverterConfig content;
MqttTopicConfigBuilder(
Function mapper)
@@ -48,14 +48,14 @@ public MqttTopicConfigBuilder name(
}
public MqttTopicConfigBuilder content(
- ValidatorConfig content)
+ ConverterConfig content)
{
this.content = content;
return this;
}
public , C>> C content(
- Function>, C> content)
+ Function>, C> content)
{
return content.apply(this::content);
}
diff --git a/runtime/binding-mqtt/src/main/java/io/aklivity/zilla/runtime/binding/mqtt/internal/config/MqttBindingConfig.java b/runtime/binding-mqtt/src/main/java/io/aklivity/zilla/runtime/binding/mqtt/internal/config/MqttBindingConfig.java
index 30e4346978..4cd34eb222 100644
--- a/runtime/binding-mqtt/src/main/java/io/aklivity/zilla/runtime/binding/mqtt/internal/config/MqttBindingConfig.java
+++ b/runtime/binding-mqtt/src/main/java/io/aklivity/zilla/runtime/binding/mqtt/internal/config/MqttBindingConfig.java
@@ -32,8 +32,8 @@
import io.aklivity.zilla.runtime.engine.EngineContext;
import io.aklivity.zilla.runtime.engine.config.BindingConfig;
import io.aklivity.zilla.runtime.engine.config.KindConfig;
+import io.aklivity.zilla.runtime.engine.converter.Converter;
import io.aklivity.zilla.runtime.engine.guard.GuardHandler;
-import io.aklivity.zilla.runtime.engine.validator.ValueValidator;
public final class MqttBindingConfig
{
@@ -45,7 +45,7 @@ public final class MqttBindingConfig
public final MqttOptionsConfig options;
public final List routes;
public final Function credentials;
- public final Map topics;
+ public final Map topics;
public final ToLongFunction resolveId;
public final GuardHandler guard;
@@ -65,7 +65,7 @@ public MqttBindingConfig(
options.topics != null
? options.topics.stream()
.collect(Collectors.toMap(t -> t.name,
- t -> context.createValueWriter(t.content))) : null;
+ t -> context.createWriter(t.content))) : null;
this.guard = resolveGuard(context);
}
@@ -109,10 +109,10 @@ public MqttRouteConfig resolvePublish(
.orElse(null);
}
- public ValueValidator supplyValidator(
+ public Converter supplyConverter(
String topic)
{
- return topics != null ? topics.getOrDefault(topic, ValueValidator.NONE) : ValueValidator.NONE;
+ return topics != null ? topics.getOrDefault(topic, Converter.NONE) : Converter.NONE;
}
public Function credentials()
diff --git a/runtime/binding-mqtt/src/main/java/io/aklivity/zilla/runtime/binding/mqtt/internal/config/MqttTopicConfigAdapter.java b/runtime/binding-mqtt/src/main/java/io/aklivity/zilla/runtime/binding/mqtt/internal/config/MqttTopicConfigAdapter.java
index ba00810967..b769ed8fc6 100644
--- a/runtime/binding-mqtt/src/main/java/io/aklivity/zilla/runtime/binding/mqtt/internal/config/MqttTopicConfigAdapter.java
+++ b/runtime/binding-mqtt/src/main/java/io/aklivity/zilla/runtime/binding/mqtt/internal/config/MqttTopicConfigAdapter.java
@@ -23,14 +23,14 @@
import io.aklivity.zilla.runtime.binding.mqtt.config.MqttTopicConfig;
import io.aklivity.zilla.runtime.binding.mqtt.config.MqttTopicConfigBuilder;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfigAdapter;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfigAdapter;
public class MqttTopicConfigAdapter implements JsonbAdapter
{
private static final String NAME_NAME = "name";
private static final String CONTENT_NAME = "content";
- private final ValidatorConfigAdapter validator = new ValidatorConfigAdapter();
+ private final ConverterConfigAdapter converter = new ConverterConfigAdapter();
@Override
public JsonObject adaptToJson(
@@ -44,8 +44,8 @@ public JsonObject adaptToJson(
if (topic.content != null)
{
- validator.adaptType(topic.content.type);
- JsonValue content = validator.adaptToJson(topic.content);
+ converter.adaptType(topic.content.type);
+ JsonValue content = converter.adaptToJson(topic.content);
object.add(CONTENT_NAME, content);
}
@@ -65,7 +65,7 @@ public MqttTopicConfig adaptFromJson(
if (object.containsKey(CONTENT_NAME))
{
JsonValue contentJson = object.get(CONTENT_NAME);
- mqttTopic.content(validator.adaptFromJson(contentJson));
+ mqttTopic.content(converter.adaptFromJson(contentJson));
}
return mqttTopic.build();
}
diff --git a/runtime/binding-mqtt/src/main/java/io/aklivity/zilla/runtime/binding/mqtt/internal/stream/MqttServerFactory.java b/runtime/binding-mqtt/src/main/java/io/aklivity/zilla/runtime/binding/mqtt/internal/stream/MqttServerFactory.java
index e6c62a6369..1c78fdcf1c 100644
--- a/runtime/binding-mqtt/src/main/java/io/aklivity/zilla/runtime/binding/mqtt/internal/stream/MqttServerFactory.java
+++ b/runtime/binding-mqtt/src/main/java/io/aklivity/zilla/runtime/binding/mqtt/internal/stream/MqttServerFactory.java
@@ -189,9 +189,9 @@
import io.aklivity.zilla.runtime.engine.buffer.BufferPool;
import io.aklivity.zilla.runtime.engine.concurrent.Signaler;
import io.aklivity.zilla.runtime.engine.config.BindingConfig;
+import io.aklivity.zilla.runtime.engine.converter.Converter;
+import io.aklivity.zilla.runtime.engine.converter.function.ValueConsumer;
import io.aklivity.zilla.runtime.engine.guard.GuardHandler;
-import io.aklivity.zilla.runtime.engine.validator.ValueValidator;
-import io.aklivity.zilla.runtime.engine.validator.function.ValueConsumer;
public final class MqttServerFactory implements MqttStreamFactory
{
@@ -562,7 +562,7 @@ public MessageConsumer newStream(
binding.guard,
binding.credentials(),
binding.authField(),
- binding::supplyValidator)::onNetwork;
+ binding::supplyConverter)::onNetwork;
}
return newStream;
}
@@ -2277,7 +2277,7 @@ private final class MqttServer
private final GuardHandler guard;
private final Function credentials;
private final MqttConnectProperty authField;
- private final Function supplyValidator;
+ private final Function supplyConverter;
private MqttSessionStream session;
@@ -2350,7 +2350,7 @@ private MqttServer(
GuardHandler guard,
Function credentials,
MqttConnectProperty authField,
- Function supplyValidator)
+ Function supplyConverter)
{
this.network = network;
this.originId = originId;
@@ -2371,7 +2371,7 @@ private MqttServer(
this.qos2Subscribes = new Int2ObjectHashMap<>();
this.credentials = credentials;
this.authField = authField;
- this.supplyValidator = supplyValidator;
+ this.supplyConverter = supplyConverter;
}
private void onNetwork(
@@ -4713,8 +4713,8 @@ private boolean validContent(
String topic,
OctetsFW payload)
{
- final ValueValidator validator = supplyValidator.apply(topic);
- return validator.validate(payload.buffer(), payload.offset(), payload.sizeof(), ValueConsumer.NOP) != -1;
+ final Converter converter = supplyConverter.apply(topic);
+ return converter.convert(payload.buffer(), payload.offset(), payload.sizeof(), ValueConsumer.NOP) != -1;
}
private final class Subscription
diff --git a/runtime/binding-mqtt/src/test/java/io/aklivity/zilla/runtime/binding/mqtt/internal/config/MqttOptionsConfigAdapterTest.java b/runtime/binding-mqtt/src/test/java/io/aklivity/zilla/runtime/binding/mqtt/internal/config/MqttOptionsConfigAdapterTest.java
index 786ff4959a..2eccd85e32 100644
--- a/runtime/binding-mqtt/src/test/java/io/aklivity/zilla/runtime/binding/mqtt/internal/config/MqttOptionsConfigAdapterTest.java
+++ b/runtime/binding-mqtt/src/test/java/io/aklivity/zilla/runtime/binding/mqtt/internal/config/MqttOptionsConfigAdapterTest.java
@@ -38,7 +38,7 @@
import io.aklivity.zilla.runtime.binding.mqtt.config.MqttOptionsConfig;
import io.aklivity.zilla.runtime.binding.mqtt.config.MqttPatternConfig;
import io.aklivity.zilla.runtime.binding.mqtt.config.MqttTopicConfig;
-import io.aklivity.zilla.runtime.engine.test.internal.validator.config.TestValidatorConfig;
+import io.aklivity.zilla.runtime.engine.test.internal.converter.config.TestConverterConfig;
public class MqttOptionsConfigAdapterTest
{
@@ -95,7 +95,7 @@ public void shouldReadOptions()
MqttTopicConfig topic = options.topics.get(0);
assertThat(topic.name, equalTo("sensor/one"));
- assertThat(topic.content, instanceOf(TestValidatorConfig.class));
+ assertThat(topic.content, instanceOf(TestConverterConfig.class));
assertThat(topic.content.type, equalTo("test"));
}
@@ -104,7 +104,7 @@ public void shouldWriteOptions()
{
List topics = new ArrayList<>();
topics.add(new MqttTopicConfig("sensor/one",
- TestValidatorConfig.builder()
+ TestConverterConfig.builder()
.length(0)
.build()));
diff --git a/runtime/engine/pom.xml b/runtime/engine/pom.xml
index 0080675975..d29725ac4e 100644
--- a/runtime/engine/pom.xml
+++ b/runtime/engine/pom.xml
@@ -210,7 +210,7 @@
io/aklivity/zilla/specs/engine/schema/guard/test.schema.patch.json,
io/aklivity/zilla/specs/engine/schema/metrics/test.schema.patch.json,
io/aklivity/zilla/specs/engine/schema/catalog/test.schema.patch.json,
- io/aklivity/zilla/specs/engine/schema/validator/test.schema.patch.json,
+ io/aklivity/zilla/specs/engine/schema/converter/test.schema.patch.json,
io/aklivity/zilla/specs/engine/schema/vault/test.schema.patch.json
${project.build.directory}/test-classes
@@ -253,7 +253,7 @@
io/aklivity/zilla/runtime/engine/test/internal/guard/**/*.class
io/aklivity/zilla/runtime/engine/test/internal/catalog/**/*.class
io/aklivity/zilla/runtime/engine/test/internal/metrics/**/*.class
- io/aklivity/zilla/runtime/engine/test/internal/validator/**/*.class
+ io/aklivity/zilla/runtime/engine/test/internal/converter/**/*.class
io/aklivity/zilla/runtime/engine/test/internal/vault/**/*.class
io/aklivity/zilla/runtime/engine/internal/concurrent/bench/**/*.class
org/openjdk/jmh/infra/generated/**/*.class
diff --git a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/Engine.java b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/Engine.java
index 0a6a2f3879..430410b84f 100644
--- a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/Engine.java
+++ b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/Engine.java
@@ -64,6 +64,8 @@
import io.aklivity.zilla.runtime.engine.config.BindingConfig;
import io.aklivity.zilla.runtime.engine.config.KindConfig;
import io.aklivity.zilla.runtime.engine.config.NamespaceConfig;
+import io.aklivity.zilla.runtime.engine.converter.ConverterFactory;
+import io.aklivity.zilla.runtime.engine.converter.ConverterFactorySpi;
import io.aklivity.zilla.runtime.engine.exporter.Exporter;
import io.aklivity.zilla.runtime.engine.ext.EngineExtContext;
import io.aklivity.zilla.runtime.engine.ext.EngineExtSpi;
@@ -80,8 +82,6 @@
import io.aklivity.zilla.runtime.engine.internal.stream.NamespacedId;
import io.aklivity.zilla.runtime.engine.metrics.Collector;
import io.aklivity.zilla.runtime.engine.metrics.MetricGroup;
-import io.aklivity.zilla.runtime.engine.validator.ValidatorFactory;
-import io.aklivity.zilla.runtime.engine.validator.ValidatorFactorySpi;
import io.aklivity.zilla.runtime.engine.vault.Vault;
public final class Engine implements Collector, AutoCloseable
@@ -114,7 +114,7 @@ public final class Engine implements Collector, AutoCloseable
Collection metricGroups,
Collection vaults,
Collection catalogs,
- ValidatorFactory validatorFactory,
+ ConverterFactory converterFactory,
ErrorHandler errorHandler,
Collection affinities,
boolean readonly)
@@ -169,7 +169,7 @@ public final class Engine implements Collector, AutoCloseable
{
DispatchAgent agent =
new DispatchAgent(config, tasks, labels, errorHandler, tuning::affinity,
- bindings, exporters, guards, vaults, catalogs, metricGroups, validatorFactory,
+ bindings, exporters, guards, vaults, catalogs, metricGroups, converterFactory,
this, coreIndex, readonly);
dispatchers.add(agent);
}
@@ -190,7 +190,7 @@ public final class Engine implements Collector, AutoCloseable
schemaTypes.addAll(metricGroups.stream().map(MetricGroup::type).filter(Objects::nonNull).collect(toList()));
schemaTypes.addAll(vaults.stream().map(Vault::type).filter(Objects::nonNull).collect(toList()));
schemaTypes.addAll(catalogs.stream().map(Catalog::type).filter(Objects::nonNull).collect(toList()));
- schemaTypes.addAll(validatorFactory.validatorSpis().stream().map(ValidatorFactorySpi::schema).collect(toList()));
+ schemaTypes.addAll(converterFactory.converterSpis().stream().map(ConverterFactorySpi::schema).collect(toList()));
bindingsByType = bindings.stream().collect(Collectors.toMap(b -> b.name(), b -> b));
final Map guardsByType = guards.stream()
diff --git a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/EngineBuilder.java b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/EngineBuilder.java
index ad0a204e4a..e7076ebb34 100644
--- a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/EngineBuilder.java
+++ b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/EngineBuilder.java
@@ -27,13 +27,13 @@
import io.aklivity.zilla.runtime.engine.binding.BindingFactory;
import io.aklivity.zilla.runtime.engine.catalog.Catalog;
import io.aklivity.zilla.runtime.engine.catalog.CatalogFactory;
+import io.aklivity.zilla.runtime.engine.converter.ConverterFactory;
import io.aklivity.zilla.runtime.engine.exporter.Exporter;
import io.aklivity.zilla.runtime.engine.exporter.ExporterFactory;
import io.aklivity.zilla.runtime.engine.guard.Guard;
import io.aklivity.zilla.runtime.engine.guard.GuardFactory;
import io.aklivity.zilla.runtime.engine.metrics.MetricGroup;
import io.aklivity.zilla.runtime.engine.metrics.MetricGroupFactory;
-import io.aklivity.zilla.runtime.engine.validator.ValidatorFactory;
import io.aklivity.zilla.runtime.engine.vault.Vault;
import io.aklivity.zilla.runtime.engine.vault.VaultFactory;
@@ -130,11 +130,11 @@ public Engine build()
catalogs.add(catalog);
}
- final ValidatorFactory validatorFactory = ValidatorFactory.instantiate();
+ final ConverterFactory converterFactory = ConverterFactory.instantiate();
final ErrorHandler errorHandler = requireNonNull(this.errorHandler, "errorHandler");
return new Engine(config, bindings, exporters, guards, metricGroups, vaults,
- catalogs, validatorFactory, errorHandler, affinities, readonly);
+ catalogs, converterFactory, errorHandler, affinities, readonly);
}
}
diff --git a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/EngineContext.java b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/EngineContext.java
index 405e3e0082..0ccd67d3ed 100644
--- a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/EngineContext.java
+++ b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/EngineContext.java
@@ -30,13 +30,12 @@
import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
import io.aklivity.zilla.runtime.engine.concurrent.Signaler;
import io.aklivity.zilla.runtime.engine.config.BindingConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
import io.aklivity.zilla.runtime.engine.config.NamespaceConfig;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
+import io.aklivity.zilla.runtime.engine.converter.Converter;
import io.aklivity.zilla.runtime.engine.guard.GuardHandler;
import io.aklivity.zilla.runtime.engine.metrics.Metric;
import io.aklivity.zilla.runtime.engine.poller.PollerKey;
-import io.aklivity.zilla.runtime.engine.validator.FragmentValidator;
-import io.aklivity.zilla.runtime.engine.validator.ValueValidator;
import io.aklivity.zilla.runtime.engine.vault.VaultHandler;
public interface EngineContext
@@ -134,17 +133,11 @@ URL resolvePath(
Metric resolveMetric(
String name);
- ValueValidator createValueReader(
- ValidatorConfig validator);
+ Converter createReader(
+ ConverterConfig converter);
- ValueValidator createValueWriter(
- ValidatorConfig validator);
-
- FragmentValidator createFragmentReader(
- ValidatorConfig validator);
-
- FragmentValidator createFragmentWriter(
- ValidatorConfig validator);
+ Converter createWriter(
+ ConverterConfig converter);
void onExporterAttached(
long exporterId);
diff --git a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/catalog/CatalogHandler.java b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/catalog/CatalogHandler.java
index 09835cf620..a1cf9321ee 100644
--- a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/catalog/CatalogHandler.java
+++ b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/catalog/CatalogHandler.java
@@ -17,7 +17,7 @@
import org.agrona.DirectBuffer;
-import io.aklivity.zilla.runtime.engine.validator.function.ValueConsumer;
+import io.aklivity.zilla.runtime.engine.converter.function.ValueConsumer;
public interface CatalogHandler
{
diff --git a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/config/ValidatorConfig.java b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/config/ConverterConfig.java
similarity index 91%
rename from runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/config/ValidatorConfig.java
rename to runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/config/ConverterConfig.java
index 67458f862c..0380d31702 100644
--- a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/config/ValidatorConfig.java
+++ b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/config/ConverterConfig.java
@@ -17,18 +17,18 @@
import java.util.List;
-public abstract class ValidatorConfig
+public abstract class ConverterConfig
{
public final String type;
public final List cataloged;
- public ValidatorConfig(
+ public ConverterConfig(
String type)
{
this(type, null);
}
- public ValidatorConfig(
+ public ConverterConfig(
String type,
List cataloged)
{
diff --git a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/config/ValidatorConfigAdapter.java b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/config/ConverterConfigAdapter.java
similarity index 83%
rename from runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/config/ValidatorConfigAdapter.java
rename to runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/config/ConverterConfigAdapter.java
index 22705005c9..9616510f1d 100644
--- a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/config/ValidatorConfigAdapter.java
+++ b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/config/ConverterConfigAdapter.java
@@ -28,20 +28,20 @@
import jakarta.json.JsonValue;
import jakarta.json.bind.adapter.JsonbAdapter;
-public final class ValidatorConfigAdapter implements JsonbAdapter
+public final class ConverterConfigAdapter implements JsonbAdapter
{
private static final String TYPE_NAME = "type";
- private final Map delegatesByName;
- private ValidatorConfigAdapterSpi delegate;
+ private final Map delegatesByName;
+ private ConverterConfigAdapterSpi delegate;
- public ValidatorConfigAdapter()
+ public ConverterConfigAdapter()
{
delegatesByName = ServiceLoader
- .load(ValidatorConfigAdapterSpi.class)
+ .load(ConverterConfigAdapterSpi.class)
.stream()
.map(Supplier::get)
- .collect(toMap(ValidatorConfigAdapterSpi::type, identity()));
+ .collect(toMap(ConverterConfigAdapterSpi::type, identity()));
}
public void adaptType(
@@ -52,13 +52,13 @@ public void adaptType(
@Override
public JsonValue adaptToJson(
- ValidatorConfig options)
+ ConverterConfig options)
{
return delegate != null ? delegate.adaptToJson(options) : null;
}
@Override
- public ValidatorConfig adaptFromJson(
+ public ConverterConfig adaptFromJson(
JsonValue value)
{
JsonObject object = null;
diff --git a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/config/ValidatorConfigAdapterSpi.java b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/config/ConverterConfigAdapterSpi.java
similarity index 84%
rename from runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/config/ValidatorConfigAdapterSpi.java
rename to runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/config/ConverterConfigAdapterSpi.java
index f7bf322a3e..9bbcbd2286 100644
--- a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/config/ValidatorConfigAdapterSpi.java
+++ b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/config/ConverterConfigAdapterSpi.java
@@ -18,16 +18,16 @@
import jakarta.json.JsonValue;
import jakarta.json.bind.adapter.JsonbAdapter;
-public interface ValidatorConfigAdapterSpi extends JsonbAdapter
+public interface ConverterConfigAdapterSpi extends JsonbAdapter
{
String type();
@Override
JsonValue adaptToJson(
- ValidatorConfig options);
+ ConverterConfig options);
@Override
- ValidatorConfig adaptFromJson(
+ ConverterConfig adaptFromJson(
JsonValue object);
}
diff --git a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/config/OptionsConfig.java b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/config/OptionsConfig.java
index 7761ba185a..f8f55fe54a 100644
--- a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/config/OptionsConfig.java
+++ b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/config/OptionsConfig.java
@@ -20,7 +20,7 @@
public class OptionsConfig
{
- public final List validators;
+ public final List converters;
public OptionsConfig()
{
@@ -28,8 +28,8 @@ public OptionsConfig()
}
public OptionsConfig(
- List validators)
+ List converters)
{
- this.validators = validators;
+ this.converters = converters;
}
}
diff --git a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/validator/ValueValidator.java b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/converter/Converter.java
similarity index 71%
rename from runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/validator/ValueValidator.java
rename to runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/converter/Converter.java
index 176751d47a..962a56b008 100644
--- a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/validator/ValueValidator.java
+++ b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/converter/Converter.java
@@ -13,23 +13,31 @@
* License for the specific language governing permissions and limitations
* under the License.
*/
-package io.aklivity.zilla.runtime.engine.validator;
+package io.aklivity.zilla.runtime.engine.converter;
import org.agrona.DirectBuffer;
-import io.aklivity.zilla.runtime.engine.validator.function.ValueConsumer;
+import io.aklivity.zilla.runtime.engine.converter.function.ValueConsumer;
-public interface ValueValidator
+public interface Converter
{
- ValueValidator NONE = (data, index, length, next) ->
+ Converter NONE = (data, index, length, next) ->
{
next.accept(data, index, length);
return length;
};
- int validate(
+ int convert(
DirectBuffer data,
int index,
int length,
ValueConsumer next);
+
+ default int padding(
+ DirectBuffer data,
+ int index,
+ int length)
+ {
+ return 0;
+ }
}
diff --git a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/converter/ConverterFactory.java b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/converter/ConverterFactory.java
new file mode 100644
index 0000000000..90d19582d7
--- /dev/null
+++ b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/converter/ConverterFactory.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright 2021-2023 Aklivity Inc.
+ *
+ * Aklivity 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 io.aklivity.zilla.runtime.engine.converter;
+
+import static java.util.Collections.unmodifiableMap;
+import static java.util.Objects.requireNonNull;
+import static java.util.ServiceLoader.load;
+
+import java.util.Collection;
+import java.util.Map;
+import java.util.ServiceLoader;
+import java.util.TreeMap;
+import java.util.function.LongFunction;
+
+import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
+
+public final class ConverterFactory
+{
+ private final Map converterSpis;
+
+ public static ConverterFactory instantiate()
+ {
+ return instantiate(load(ConverterFactorySpi.class));
+ }
+
+ public Converter createReader(
+ ConverterConfig config,
+ LongFunction supplyCatalog)
+ {
+ String type = config.type;
+ requireNonNull(type, "name");
+
+ ConverterFactorySpi converterSpi = requireNonNull(converterSpis.get(type), () -> "Unrecognized Converter name: " + type);
+
+ return converterSpi.createReader(config, supplyCatalog);
+ }
+
+ public Converter createWriter(
+ ConverterConfig config,
+ LongFunction supplyCatalog)
+ {
+ String type = config.type;
+ requireNonNull(type, "name");
+
+ ConverterFactorySpi converterSpi = requireNonNull(converterSpis.get(type), () -> "Unrecognized Converter name: " + type);
+
+ return converterSpi.createWriter(config, supplyCatalog);
+ }
+
+ public Collection converterSpis()
+ {
+ return converterSpis.values();
+ }
+
+ private static ConverterFactory instantiate(
+ ServiceLoader converters)
+ {
+ Map converterSpisByName = new TreeMap<>();
+ converters.forEach(converterSpi -> converterSpisByName.put(converterSpi.type(), converterSpi));
+
+ return new ConverterFactory(unmodifiableMap(converterSpisByName));
+ }
+
+ private ConverterFactory(
+ Map converterSpis)
+ {
+ this.converterSpis = converterSpis;
+ }
+}
diff --git a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/validator/ValidatorFactorySpi.java b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/converter/ConverterFactorySpi.java
similarity index 62%
rename from runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/validator/ValidatorFactorySpi.java
rename to runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/converter/ConverterFactorySpi.java
index 3d7826766c..fd64732329 100644
--- a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/validator/ValidatorFactorySpi.java
+++ b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/converter/ConverterFactorySpi.java
@@ -13,34 +13,25 @@
* License for the specific language governing permissions and limitations
* under the License.
*/
-package io.aklivity.zilla.runtime.engine.validator;
+package io.aklivity.zilla.runtime.engine.converter;
import java.net.URL;
import java.util.function.LongFunction;
import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
-public interface ValidatorFactorySpi
+public interface ConverterFactorySpi
{
String type();
URL schema();
- ValueValidator createValueReader(
- ValidatorConfig config,
+ Converter createReader(
+ ConverterConfig config,
LongFunction supplyCatalog);
- ValueValidator createValueWriter(
- ValidatorConfig config,
+ Converter createWriter(
+ ConverterConfig config,
LongFunction supplyCatalog);
-
- FragmentValidator createFragmentReader(
- ValidatorConfig config,
- LongFunction supplyCatalog);
-
- FragmentValidator createFragmentWriter(
- ValidatorConfig config,
- LongFunction supplyCatalog);
-
}
diff --git a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/validator/function/ValueConsumer.java b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/converter/function/ValueConsumer.java
similarity index 93%
rename from runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/validator/function/ValueConsumer.java
rename to runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/converter/function/ValueConsumer.java
index 3d38046eb2..75334aeb2b 100644
--- a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/validator/function/ValueConsumer.java
+++ b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/converter/function/ValueConsumer.java
@@ -13,7 +13,7 @@
* License for the specific language governing permissions and limitations
* under the License.
*/
-package io.aklivity.zilla.runtime.engine.validator.function;
+package io.aklivity.zilla.runtime.engine.converter.function;
import org.agrona.DirectBuffer;
diff --git a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/internal/registry/ConfigurationManager.java b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/internal/registry/ConfigurationManager.java
index a660de19f4..856a803138 100644
--- a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/internal/registry/ConfigurationManager.java
+++ b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/internal/registry/ConfigurationManager.java
@@ -38,6 +38,7 @@
import io.aklivity.zilla.runtime.engine.config.CatalogedConfig;
import io.aklivity.zilla.runtime.engine.config.ConfigAdapterContext;
import io.aklivity.zilla.runtime.engine.config.ConfigReader;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
import io.aklivity.zilla.runtime.engine.config.GuardConfig;
import io.aklivity.zilla.runtime.engine.config.GuardedConfig;
import io.aklivity.zilla.runtime.engine.config.KindConfig;
@@ -45,7 +46,6 @@
import io.aklivity.zilla.runtime.engine.config.MetricRefConfig;
import io.aklivity.zilla.runtime.engine.config.NamespaceConfig;
import io.aklivity.zilla.runtime.engine.config.RouteConfig;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
import io.aklivity.zilla.runtime.engine.config.VaultConfig;
import io.aklivity.zilla.runtime.engine.expression.ExpressionResolver;
import io.aklivity.zilla.runtime.engine.ext.EngineExtContext;
@@ -166,11 +166,11 @@ public NamespaceConfig parse(
if (binding.options != null)
{
- for (ValidatorConfig validator : binding.options.validators)
+ for (ConverterConfig converter : binding.options.converters)
{
- if (validator.cataloged != null)
+ if (converter.cataloged != null)
{
- for (CatalogedConfig cataloged : validator.cataloged)
+ for (CatalogedConfig cataloged : converter.cataloged)
{
cataloged.id = namespace.resolveId.applyAsLong(cataloged.name);
}
diff --git a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/internal/registry/DispatchAgent.java b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/internal/registry/DispatchAgent.java
index a590f8988f..cd749cb4d9 100644
--- a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/internal/registry/DispatchAgent.java
+++ b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/internal/registry/DispatchAgent.java
@@ -94,8 +94,10 @@
import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
import io.aklivity.zilla.runtime.engine.concurrent.Signaler;
import io.aklivity.zilla.runtime.engine.config.BindingConfig;
+import io.aklivity.zilla.runtime.engine.config.ConverterConfig;
import io.aklivity.zilla.runtime.engine.config.NamespaceConfig;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
+import io.aklivity.zilla.runtime.engine.converter.Converter;
+import io.aklivity.zilla.runtime.engine.converter.ConverterFactory;
import io.aklivity.zilla.runtime.engine.exporter.Exporter;
import io.aklivity.zilla.runtime.engine.exporter.ExporterContext;
import io.aklivity.zilla.runtime.engine.exporter.ExporterHandler;
@@ -131,9 +133,6 @@
import io.aklivity.zilla.runtime.engine.metrics.MetricGroup;
import io.aklivity.zilla.runtime.engine.poller.PollerKey;
import io.aklivity.zilla.runtime.engine.util.function.LongLongFunction;
-import io.aklivity.zilla.runtime.engine.validator.FragmentValidator;
-import io.aklivity.zilla.runtime.engine.validator.ValidatorFactory;
-import io.aklivity.zilla.runtime.engine.validator.ValueValidator;
import io.aklivity.zilla.runtime.engine.vault.Vault;
import io.aklivity.zilla.runtime.engine.vault.VaultContext;
import io.aklivity.zilla.runtime.engine.vault.VaultHandler;
@@ -208,7 +207,7 @@ public class DispatchAgent implements EngineContext, Agent
private final ScalarsLayout countersLayout;
private final ScalarsLayout gaugesLayout;
private final HistogramsLayout histogramsLayout;
- private final ValidatorFactory validatorFactory;
+ private final ConverterFactory converterFactory;
private long initialId;
private long promiseId;
private long traceId;
@@ -229,7 +228,7 @@ public DispatchAgent(
Collection vaults,
Collection catalogs,
Collection metricGroups,
- ValidatorFactory validatorFactory,
+ ConverterFactory converterFactory,
Collector collector,
int index,
boolean readonly)
@@ -397,7 +396,7 @@ public DispatchAgent(
this.idleStrategy = idleStrategy;
this.errorHandler = errorHandler;
this.exportersById = new Long2ObjectHashMap<>();
- this.validatorFactory = validatorFactory;
+ this.converterFactory = converterFactory;
}
public static int indexOfId(
@@ -863,31 +862,17 @@ public LongConsumer supplyHistogramWriter(
}
@Override
- public ValueValidator createValueReader(
- ValidatorConfig validator)
+ public Converter createReader(
+ ConverterConfig converter)
{
- return validatorFactory.createValueReader(validator, this::supplyCatalog);
+ return converterFactory.createReader(converter, this::supplyCatalog);
}
@Override
- public ValueValidator createValueWriter(
- ValidatorConfig validator)
+ public Converter createWriter(
+ ConverterConfig converter)
{
- return validatorFactory.createValueWriter(validator, this::supplyCatalog);
- }
-
- @Override
- public FragmentValidator createFragmentReader(
- ValidatorConfig validator)
- {
- return validatorFactory.createFragmentReader(validator, this::supplyCatalog);
- }
-
- @Override
- public FragmentValidator createFragmentWriter(
- ValidatorConfig validator)
- {
- return validatorFactory.createFragmentWriter(validator, this::supplyCatalog);
+ return converterFactory.createWriter(converter, this::supplyCatalog);
}
private void onSystemMessage(
diff --git a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/validator/FragmentValidator.java b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/validator/FragmentValidator.java
deleted file mode 100644
index c17e0db4eb..0000000000
--- a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/validator/FragmentValidator.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright 2021-2023 Aklivity Inc.
- *
- * Aklivity 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 io.aklivity.zilla.runtime.engine.validator;
-
-import org.agrona.DirectBuffer;
-
-import io.aklivity.zilla.runtime.engine.validator.function.FragmentConsumer;
-
-public interface FragmentValidator
-{
- int FLAGS_FIN = 0x01;
- int FLAGS_COMPLETE = 0x03;
-
- FragmentValidator NONE = (flags, data, index, length, next) ->
- {
- next.accept(flags, data, index, length);
- return length;
- };
-
- int validate(
- int flags,
- DirectBuffer data,
- int index,
- int length,
- FragmentConsumer next);
-
- default int padding(
- DirectBuffer data,
- int index,
- int length)
- {
- return 0;
- }
-}
diff --git a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/validator/ValidatorFactory.java b/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/validator/ValidatorFactory.java
deleted file mode 100644
index 93fc1a13f2..0000000000
--- a/runtime/engine/src/main/java/io/aklivity/zilla/runtime/engine/validator/ValidatorFactory.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright 2021-2023 Aklivity Inc.
- *
- * Aklivity 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 io.aklivity.zilla.runtime.engine.validator;
-
-import static java.util.Collections.unmodifiableMap;
-import static java.util.Objects.requireNonNull;
-import static java.util.ServiceLoader.load;
-
-import java.util.Collection;
-import java.util.Map;
-import java.util.ServiceLoader;
-import java.util.TreeMap;
-import java.util.function.LongFunction;
-
-import io.aklivity.zilla.runtime.engine.catalog.CatalogHandler;
-import io.aklivity.zilla.runtime.engine.config.ValidatorConfig;
-
-public final class ValidatorFactory
-{
- private final Map validatorSpis;
-
- public static ValidatorFactory instantiate()
- {
- return instantiate(load(ValidatorFactorySpi.class));
- }
-
- public ValueValidator createValueReader(
- ValidatorConfig config,
- LongFunction supplyCatalog)
- {
- String type = config.type;
- requireNonNull(type, "name");
-
- ValidatorFactorySpi validatorSpi = requireNonNull(validatorSpis.get(type), () -> "Unrecognized validator name: " + type);
-
- return validatorSpi.createValueReader(config, supplyCatalog);
- }
-
- public ValueValidator createValueWriter(
- ValidatorConfig config,
- LongFunction