An open API service indexing awesome lists of open source software.

https://github.com/zolyfarkas/schema-parent-pom

This a parent pom for schema projects.
https://github.com/zolyfarkas/schema-parent-pom

avro schema-design schema-registry schema-validation

Last synced: 5 months ago
JSON representation

This a parent pom for schema projects.

Awesome Lists containing this project

README

          

# schema-parent-pom

This a parent pom for schema projects.

This parent pom implements the following:

* Compose data models using maven dependency framework. Use the maven to re-use, version, release and publish avro data models. (test-schema -> test-schema-common)

* Validate avro schemas:
* documentation.
* naming.
* compatibility with previously released versions. (to avoid production issues [like](https://www.theregister.co.uk/2020/05/08/facebook_sdk_snafu_ios/))
* [extensible](http://www.spf4j.org/spf4j-avro-components/maven-avro-schema-plugin/avro-validate-mojo.html).

* Add a unique ID to the schemas (mvnId = "group:artifact:version:id")

* Easy to use, flexible resolvers to resolve schema IDs (pick the one that fits your dependencies best):
[jaxrs based](https://github.com/zolyfarkas/spf4j-jaxrs/blob/master/spf4j-jaxrs-client/src/main/java/org/spf4j/avro/SchemaClient.java)
or [aether based](https://github.com/zolyfarkas/spf4j/blob/master/spf4j-maven-schema-resolver/src/main/java/org/spf4j/maven/MavenSchemaResolver.java)

* Generate and publish java classes along with javadoc. (publishing for other languages can se set up) (@Imutable support, @Nullable/@Nonnull) [see](https://bintray.com/zolyfarkas/core/download_file?file_path=org%2Fspf4j%2Favro%2Fexamples%2Ftest-schema%2F1.1%2Ftest-schema-1.1.jar)

* Generate package and publish the avro schemas, [see](https://bintray.com/zolyfarkas/core/download_file?file_path=org%2Fspf4j%2Favro%2Fexamples%2Ftest-schema%2F1.1%2Ftest-schema-1.1-avsc.jar).

* Generate and publish avrodoc, [see](https://bintray.com/zolyfarkas/core/download_file?file_path=org%2Fspf4j%2Favro%2Fexamples%2Ftest-schema%2F1.1%2Ftest-schema-1.1-avrodoc.jar) for maven repo publish
[or](https://zolyfarkas.github.io/fred-schema/) for gh-pages doc publish.

Latest Version: [![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.spf4j.avro/schema-parent-pom/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.spf4j.avro/schema-parent-pom/)

Here is how a schema project that uses this parent will look like:



4.0.0
org.spf4j.avro.examples
test-schema
jar
MY_VERSION
${project.artifactId}-${project.version}
Avro schema example

org.spf4j.avro
schema-parent-pom
LATEST



org.spf4j.avro.examples
test-schema-common
1.5


for an example please see [core-schema](https://github.com/zolyfarkas/core-schema)