diff --git a/amf-antlr-syntax/js/package-lock.json b/amf-antlr-syntax/js/package-lock.json index 22adc94dd3..f01ed2a2c8 100644 --- a/amf-antlr-syntax/js/package-lock.json +++ b/amf-antlr-syntax/js/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@aml-org/amf-antlr-parsers": "0.7.25", "ajv": "6.12.6", - "avro-js": "1.12.0" + "avro-js": "1.11.3" } }, "node_modules/@aml-org/amf-antlr-parsers": { @@ -35,9 +35,9 @@ } }, "node_modules/avro-js": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/avro-js/-/avro-js-1.12.0.tgz", - "integrity": "sha512-mBhOjtHHua2MHrrgQ71YKKTGfZpS1sPvgL+QcCQ5SkUyp6qLkeTsCnQXUmATfpiOvoXB6CczzFEqn5UKbPUn3Q==", + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/avro-js/-/avro-js-1.11.3.tgz", + "integrity": "sha512-B1b0wI5iwSkVwj3RQWRzW99/LGoYl6df9j1kWime8r8b0dXCdKU7t7mEOFkOpQFaT/I9JXaL7KAIxM+/3TUk1A==", "dependencies": { "underscore": "^1.13.2" } @@ -97,9 +97,9 @@ } }, "avro-js": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/avro-js/-/avro-js-1.12.0.tgz", - "integrity": "sha512-mBhOjtHHua2MHrrgQ71YKKTGfZpS1sPvgL+QcCQ5SkUyp6qLkeTsCnQXUmATfpiOvoXB6CczzFEqn5UKbPUn3Q==", + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/avro-js/-/avro-js-1.11.3.tgz", + "integrity": "sha512-B1b0wI5iwSkVwj3RQWRzW99/LGoYl6df9j1kWime8r8b0dXCdKU7t7mEOFkOpQFaT/I9JXaL7KAIxM+/3TUk1A==", "requires": { "underscore": "^1.13.2" } diff --git a/amf-antlr-syntax/js/package.json b/amf-antlr-syntax/js/package.json index ae4a5f9630..3c9b68c8c7 100644 --- a/amf-antlr-syntax/js/package.json +++ b/amf-antlr-syntax/js/package.json @@ -13,6 +13,6 @@ "dependencies": { "@aml-org/amf-antlr-parsers": "0.7.25", "ajv": "6.12.6", - "avro-js": "1.12.0" + "avro-js": "1.11.3" } } diff --git a/amf-api-contract/js/package-lock.json b/amf-api-contract/js/package-lock.json index ef8ac8ba3b..e0fdb93520 100644 --- a/amf-api-contract/js/package-lock.json +++ b/amf-api-contract/js/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@aml-org/amf-antlr-parsers": "0.7.25", "ajv": "6.12.6", - "avro-js": "^1.12.0" + "avro-js": "1.11.3" } }, "node_modules/@aml-org/amf-antlr-parsers": { @@ -35,9 +35,9 @@ } }, "node_modules/avro-js": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/avro-js/-/avro-js-1.12.0.tgz", - "integrity": "sha512-mBhOjtHHua2MHrrgQ71YKKTGfZpS1sPvgL+QcCQ5SkUyp6qLkeTsCnQXUmATfpiOvoXB6CczzFEqn5UKbPUn3Q==", + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/avro-js/-/avro-js-1.11.3.tgz", + "integrity": "sha512-B1b0wI5iwSkVwj3RQWRzW99/LGoYl6df9j1kWime8r8b0dXCdKU7t7mEOFkOpQFaT/I9JXaL7KAIxM+/3TUk1A==", "dependencies": { "underscore": "^1.13.2" } @@ -97,9 +97,9 @@ } }, "avro-js": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/avro-js/-/avro-js-1.12.0.tgz", - "integrity": "sha512-mBhOjtHHua2MHrrgQ71YKKTGfZpS1sPvgL+QcCQ5SkUyp6qLkeTsCnQXUmATfpiOvoXB6CczzFEqn5UKbPUn3Q==", + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/avro-js/-/avro-js-1.11.3.tgz", + "integrity": "sha512-B1b0wI5iwSkVwj3RQWRzW99/LGoYl6df9j1kWime8r8b0dXCdKU7t7mEOFkOpQFaT/I9JXaL7KAIxM+/3TUk1A==", "requires": { "underscore": "^1.13.2" } diff --git a/amf-api-contract/js/package.json b/amf-api-contract/js/package.json index cbb6d60c27..e59ebd3708 100644 --- a/amf-api-contract/js/package.json +++ b/amf-api-contract/js/package.json @@ -13,6 +13,6 @@ "dependencies": { "@aml-org/amf-antlr-parsers": "0.7.25", "ajv": "6.12.6", - "avro-js": "^1.12.0" + "avro-js": "1.11.3" } } diff --git a/amf-apicontract.versions b/amf-apicontract.versions index bb0b6c6ac4..80bb5e28a1 100644 --- a/amf-apicontract.versions +++ b/amf-apicontract.versions @@ -1,4 +1,4 @@ -amf.apicontract=5.6.0 +amf.apicontract=5.6.1 amf.aml=6.6.0 amf.model=3.9.0 antlr4Version=0.7.25 diff --git a/amf-cli/js/package.json b/amf-cli/js/package.json index 580d2401a2..2b79b9daf6 100644 --- a/amf-cli/js/package.json +++ b/amf-cli/js/package.json @@ -18,6 +18,6 @@ "dependencies": { "@aml-org/amf-antlr-parsers": "0.7.25", "ajv": "6.12.6", - "avro-js": "1.12.0" + "avro-js": "1.11.3" } } diff --git a/amf-cli/shared/src/test/resources/avro/reports/invalid-avro-type.report.jvm b/amf-cli/shared/src/test/resources/avro/reports/invalid-avro-type.report.jvm index 940e08bc3f..06e07b6599 100644 --- a/amf-cli/shared/src/test/resources/avro/reports/invalid-avro-type.report.jvm +++ b/amf-cli/shared/src/test/resources/avro/reports/invalid-avro-type.report.jvm @@ -6,7 +6,7 @@ Number of results: 1 Level: Violation - Constraint: http://a.ml/vocabularies/amf/parser#invalid-avro-schema - Message: Invalid type: Unknown schema: org.apache.avro.compiler.UnresolvedSchema + Message: Type not supported: asdfasdf Severity: Violation Target: file://amf-cli/shared/src/test/resources/avro/schemas/invalid-avro-type.json#/any/default-any Property: diff --git a/amf-cli/shared/src/test/resources/avro/reports/wrong-type.json.report.jvm b/amf-cli/shared/src/test/resources/avro/reports/wrong-type.json.report.jvm index 64872e5ccf..4e5c0f775d 100644 --- a/amf-cli/shared/src/test/resources/avro/reports/wrong-type.json.report.jvm +++ b/amf-cli/shared/src/test/resources/avro/reports/wrong-type.json.report.jvm @@ -6,7 +6,7 @@ Number of results: 1 Level: Violation - Constraint: http://a.ml/vocabularies/amf/parser#invalid-avro-schema - Message: Invalid type: Unknown schema: org.apache.avro.compiler.UnresolvedSchema + Message: Type not supported: object Severity: Violation Target: file://amf-cli/shared/src/test/resources/avro/schemas/wrong-type.json#/any/default-any Property: diff --git a/amf-cli/shared/src/test/scala/amf/avro/AvroSchemaValidationTest.scala b/amf-cli/shared/src/test/scala/amf/avro/AvroSchemaValidationTest.scala index 7cab1ea2b7..a99ac9dcf8 100644 --- a/amf-cli/shared/src/test/scala/amf/avro/AvroSchemaValidationTest.scala +++ b/amf-cli/shared/src/test/scala/amf/avro/AvroSchemaValidationTest.scala @@ -165,13 +165,15 @@ class AvroSchemaValidationTest extends MultiPlatformReportGenTest { ) } - if (platform.name == "jvm") { // We were able only to change this behavior in JVM validator. JS one is still strict (only letter, numbers and '_') - test("validate record name with special chars") { - validate( - "name-with-special-chars.json", - None, - configOverride = Some(config) - ) - } - } +// TODO We need to see how implement this in with AVRO 1.11.3 + +// if (platform.name == "jvm") { // We were able only to change this behavior in JVM validator. JS one is still strict (only letter, numbers and '_') +// test("validate record name with special chars") { +// validate( +// "name-with-special-chars.json", +// None, +// configOverride = Some(config) +// ) +// } +// } } diff --git a/amf-graphql/js/package-lock.json b/amf-graphql/js/package-lock.json index af915eb1cb..0b8da0466d 100644 --- a/amf-graphql/js/package-lock.json +++ b/amf-graphql/js/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@aml-org/amf-antlr-parsers": "0.7.25", "ajv": "6.12.6", - "avro-js": "1.12.0" + "avro-js": "1.11.3" } }, "node_modules/@aml-org/amf-antlr-parsers": { @@ -35,9 +35,9 @@ } }, "node_modules/avro-js": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/avro-js/-/avro-js-1.12.0.tgz", - "integrity": "sha512-mBhOjtHHua2MHrrgQ71YKKTGfZpS1sPvgL+QcCQ5SkUyp6qLkeTsCnQXUmATfpiOvoXB6CczzFEqn5UKbPUn3Q==", + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/avro-js/-/avro-js-1.11.3.tgz", + "integrity": "sha512-B1b0wI5iwSkVwj3RQWRzW99/LGoYl6df9j1kWime8r8b0dXCdKU7t7mEOFkOpQFaT/I9JXaL7KAIxM+/3TUk1A==", "dependencies": { "underscore": "^1.13.2" } @@ -97,9 +97,9 @@ } }, "avro-js": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/avro-js/-/avro-js-1.12.0.tgz", - "integrity": "sha512-mBhOjtHHua2MHrrgQ71YKKTGfZpS1sPvgL+QcCQ5SkUyp6qLkeTsCnQXUmATfpiOvoXB6CczzFEqn5UKbPUn3Q==", + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/avro-js/-/avro-js-1.11.3.tgz", + "integrity": "sha512-B1b0wI5iwSkVwj3RQWRzW99/LGoYl6df9j1kWime8r8b0dXCdKU7t7mEOFkOpQFaT/I9JXaL7KAIxM+/3TUk1A==", "requires": { "underscore": "^1.13.2" } diff --git a/amf-graphql/js/package.json b/amf-graphql/js/package.json index 9cd6c0492d..bb1f9243c5 100644 --- a/amf-graphql/js/package.json +++ b/amf-graphql/js/package.json @@ -13,6 +13,6 @@ "dependencies": { "@aml-org/amf-antlr-parsers": "0.7.25", "ajv": "6.12.6", - "avro-js": "1.12.0" + "avro-js": "1.11.3" } } diff --git a/amf-grpc/js/package-lock.json b/amf-grpc/js/package-lock.json index c6bc955837..d7631854e1 100644 --- a/amf-grpc/js/package-lock.json +++ b/amf-grpc/js/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@aml-org/amf-antlr-parsers": "0.7.25", "ajv": "6.12.6", - "avro-js": "1.12.0" + "avro-js": "1.11.3" } }, "node_modules/@aml-org/amf-antlr-parsers": { @@ -35,9 +35,9 @@ } }, "node_modules/avro-js": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/avro-js/-/avro-js-1.12.0.tgz", - "integrity": "sha512-mBhOjtHHua2MHrrgQ71YKKTGfZpS1sPvgL+QcCQ5SkUyp6qLkeTsCnQXUmATfpiOvoXB6CczzFEqn5UKbPUn3Q==", + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/avro-js/-/avro-js-1.11.3.tgz", + "integrity": "sha512-B1b0wI5iwSkVwj3RQWRzW99/LGoYl6df9j1kWime8r8b0dXCdKU7t7mEOFkOpQFaT/I9JXaL7KAIxM+/3TUk1A==", "dependencies": { "underscore": "^1.13.2" } @@ -97,9 +97,9 @@ } }, "avro-js": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/avro-js/-/avro-js-1.12.0.tgz", - "integrity": "sha512-mBhOjtHHua2MHrrgQ71YKKTGfZpS1sPvgL+QcCQ5SkUyp6qLkeTsCnQXUmATfpiOvoXB6CczzFEqn5UKbPUn3Q==", + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/avro-js/-/avro-js-1.11.3.tgz", + "integrity": "sha512-B1b0wI5iwSkVwj3RQWRzW99/LGoYl6df9j1kWime8r8b0dXCdKU7t7mEOFkOpQFaT/I9JXaL7KAIxM+/3TUk1A==", "requires": { "underscore": "^1.13.2" } diff --git a/amf-grpc/js/package.json b/amf-grpc/js/package.json index 7cdf112dab..2932361729 100644 --- a/amf-grpc/js/package.json +++ b/amf-grpc/js/package.json @@ -13,6 +13,6 @@ "dependencies": { "@aml-org/amf-antlr-parsers": "0.7.25", "ajv": "6.12.6", - "avro-js": "1.12.0" + "avro-js": "1.11.3" } } diff --git a/amf-shapes/js/package-lock.json b/amf-shapes/js/package-lock.json index 6f5ac1d5c3..aea05e1465 100644 --- a/amf-shapes/js/package-lock.json +++ b/amf-shapes/js/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@aml-org/amf-antlr-parsers": "0.7.25", "ajv": "6.12.6", - "avro-js": "1.12.0" + "avro-js": "1.11.3" } }, "node_modules/@aml-org/amf-antlr-parsers": { @@ -35,9 +35,9 @@ } }, "node_modules/avro-js": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/avro-js/-/avro-js-1.12.0.tgz", - "integrity": "sha512-mBhOjtHHua2MHrrgQ71YKKTGfZpS1sPvgL+QcCQ5SkUyp6qLkeTsCnQXUmATfpiOvoXB6CczzFEqn5UKbPUn3Q==", + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/avro-js/-/avro-js-1.11.3.tgz", + "integrity": "sha512-B1b0wI5iwSkVwj3RQWRzW99/LGoYl6df9j1kWime8r8b0dXCdKU7t7mEOFkOpQFaT/I9JXaL7KAIxM+/3TUk1A==", "dependencies": { "underscore": "^1.13.2" } @@ -97,9 +97,9 @@ } }, "avro-js": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/avro-js/-/avro-js-1.12.0.tgz", - "integrity": "sha512-mBhOjtHHua2MHrrgQ71YKKTGfZpS1sPvgL+QcCQ5SkUyp6qLkeTsCnQXUmATfpiOvoXB6CczzFEqn5UKbPUn3Q==", + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/avro-js/-/avro-js-1.11.3.tgz", + "integrity": "sha512-B1b0wI5iwSkVwj3RQWRzW99/LGoYl6df9j1kWime8r8b0dXCdKU7t7mEOFkOpQFaT/I9JXaL7KAIxM+/3TUk1A==", "requires": { "underscore": "^1.13.2" } diff --git a/amf-shapes/js/package.json b/amf-shapes/js/package.json index 5b88457d5a..3f3ba8f874 100644 --- a/amf-shapes/js/package.json +++ b/amf-shapes/js/package.json @@ -13,6 +13,6 @@ "dependencies": { "@aml-org/amf-antlr-parsers": "0.7.25", "ajv": "6.12.6", - "avro-js": "1.12.0" + "avro-js": "1.11.3" } } diff --git a/amf-shapes/jvm/src/main/scala/amf/shapes/internal/document/apicontract/validation/remote/JvmAvroShapePayloadValidator.scala b/amf-shapes/jvm/src/main/scala/amf/shapes/internal/document/apicontract/validation/remote/JvmAvroShapePayloadValidator.scala index a68f771c4d..0904b71b7c 100644 --- a/amf-shapes/jvm/src/main/scala/amf/shapes/internal/document/apicontract/validation/remote/JvmAvroShapePayloadValidator.scala +++ b/amf-shapes/jvm/src/main/scala/amf/shapes/internal/document/apicontract/validation/remote/JvmAvroShapePayloadValidator.scala @@ -17,7 +17,7 @@ import amf.shapes.internal.validation.common.ValidationProcessor import amf.shapes.internal.validation.definitions.ShapePayloadValidations.SchemaException import org.apache.avro.generic.{GenericDatumReader, GenericRecord} import org.apache.avro.io.DecoderFactory -import org.apache.avro.{AvroTypeException, NameValidator, Schema, SchemaParseException} +import org.apache.avro.{AvroTypeException, Schema, SchemaParseException} class JvmAvroShapePayloadValidator( private val shape: Shape, @@ -26,7 +26,7 @@ class JvmAvroShapePayloadValidator( private val configuration: ShapeValidationConfiguration ) extends BaseAvroSchemaPayloadValidator(shape, mediaType, configuration) { - lazy val parser: Schema.Parser = new Schema.Parser(new CustomNameValidator()).setValidateDefaults(true) + lazy val parser: Schema.Parser = new Schema.Parser().setValidateDefaults(true) override protected def getReportProcessor(profileName: ProfileName): ValidationProcessor = JvmReportValidationProcessor(profileName, shape) @@ -177,21 +177,3 @@ case class JvmReportValidationProcessor( processResults(results) } } - -class CustomNameValidator extends NameValidator { - private val allowedChars = Seq('_', '-', '.') - override def validate(name: String): NameValidator.Result = { - if (name == null) return new NameValidator.Result("Null name") - val length = name.length - if (length == 0) return new NameValidator.Result("Empty name") - val first = name.charAt(0) - if (!(Character.isLetter(first) || first == '_')) - return new NameValidator.Result("Illegal initial character: " + name) - for (i <- 1 until length) { - val c = name.charAt(i) - if (!(Character.isLetterOrDigit(c) || allowedChars.contains(c))) - return new NameValidator.Result("Illegal character in: " + name) - } - NameValidator.OK - } -} diff --git a/build.sbt b/build.sbt index 0f1a50c5b7..9b374a37e7 100644 --- a/build.sbt +++ b/build.sbt @@ -27,7 +27,7 @@ ThisBuild / resolvers ++= List( ThisBuild / credentials ++= Common.credentials() val npmDeps = - List(("ajv", "6.12.6"), ("@aml-org/amf-antlr-parsers", versions("antlr4Version")), (("avro-js", "1.12.0"))) + List(("ajv", "6.12.6"), ("@aml-org/amf-antlr-parsers", versions("antlr4Version")), (("avro-js", "1.11.3"))) val apiContractModelVersion = settingKey[String]("Version of the AMF API Contract Model").withRank(KeyRanks.Invisible) @@ -79,10 +79,10 @@ lazy val shapes = crossProject(JSPlatform, JVMPlatform) ExclusionRule(organization = "commons-collections", name = "commons-collections"), ExclusionRule(organization = "com.fasterxml.jackson.core", name = "jackson-databind"), ), - libraryDependencies += "org.apache.avro" % "avro" % "1.12.0", - libraryDependencies += "org.json" % "json" % "20231013", - libraryDependencies += "org.apache.commons" % "commons-collections4" % "4.4", - Compile / packageDoc / artifactPath := baseDirectory.value / "target" / "artifact" / "amf-shapes-javadoc.jar" + libraryDependencies += "org.apache.avro" % "avro" % "1.11.3", + libraryDependencies += "org.json" % "json" % "20231013", + libraryDependencies += "org.apache.commons" % "commons-collections4" % "4.4", + Compile / packageDoc / artifactPath := baseDirectory.value / "target" / "artifact" / "amf-shapes-javadoc.jar" ) .jsSettings( scalaJSLinkerConfig ~= { _.withModuleKind(ModuleKind.CommonJSModule) },