diff --git a/docs/pom.xml b/docs/pom.xml index f0e82df..39d4dda 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -13,7 +13,7 @@ Spring Cloud Schema Registry Docs Spring Cloud Schema Registry Docs - spring-cloud-function + spring-cloud-schema-registry ${basedir}/.. 3.4 diff --git a/docs/src/main/asciidoc/images/registration.png b/docs/src/main/asciidoc/images/registration.png new file mode 100644 index 0000000..d2c044c Binary files /dev/null and b/docs/src/main/asciidoc/images/registration.png differ diff --git a/docs/src/main/asciidoc/sagan-index.adoc b/docs/src/main/asciidoc/sagan-index.adoc index 180546d..1a1cc73 100644 --- a/docs/src/main/asciidoc/sagan-index.adoc +++ b/docs/src/main/asciidoc/sagan-index.adoc @@ -1,8 +1,11 @@ Spring Cloud Schema Registry overview Spring Cloud Schema Registry provides support for schema evolution so that the data can be evolved over time and still work with older or newer producers and consumers and vice versa. Most serialization models, especially the ones that aim for portability across different platforms and languages, rely on a schema that describes how the data is serialized in the binary payload. In order to serialize the data and then to interpret it, both the sending and receiving sides must have access to a schema that describes the binary format. In certain cases, the schema can be inferred from the payload type on serialization or from the target type on deserialization. + However, many applications benefit from having access to an explicit schema that describes the binary data format. + A schema registry lets you store schema information in a textual format (typically JSON) and makes that information accessible to various applications that need it to receive and send data in binary format. + A schema is referenceable as a tuple consisting of: * A subject that is the logical name of the schema @@ -11,11 +14,11 @@ A schema is referenceable as a tuple consisting of: * The schema format, which describes the binary format of the data -Spring Cloud Schema Registry provides the following compoents +Spring Cloud Schema Registry provides the following components * Standalone Schema Registry Server - By default, it is using an H2 database, but server can be used with other databases by providing appropriate datasource configuration. + By default, it is using an `H2` database, but server can be used with other databases such as `Postgres` or `MySQL` by providing appropriate datasource configuration. * Schema registry clients capable of message marshalling by communicating with a Schema Registry. diff --git a/docs/src/main/asciidoc/spring-cloud-schema-registry.adoc b/docs/src/main/asciidoc/spring-cloud-schema-registry.adoc index c7534e9..7406ed1 100644 --- a/docs/src/main/asciidoc/spring-cloud-schema-registry.adoc +++ b/docs/src/main/asciidoc/spring-cloud-schema-registry.adoc @@ -5,8 +5,7 @@ Unascribed *{spring-cloud-schema-registry-version}* --- - -:github: https://github.com/spring-cloud/spring-cloud-schema-registry +:github: https://raw.githubusercontent.com/spring-cloud/spring-cloud-schema-registry/master :githubmaster: {github}/tree/master :docslink: {githubmaster}/docs/src/main/asciidoc :nofooter: @@ -32,7 +31,7 @@ A schema is referenceable as a tuple consisting of: * The schema format, which describes the binary format of the data -Spring Cloud Schema Registry provides the following compoents +Spring Cloud Schema Registry provides the following components * Standalone Schema Registry Server @@ -69,7 +68,7 @@ A client for the Spring Cloud Stream schema registry can be configured by using @SpringBootApplication @EnableSchemaRegistryClient public static class AvroSinkApplication { - ... + //... } ---- @@ -165,7 +164,7 @@ In this example, note that the mime type value is `avro/bytes`, not the default @SpringBootApplication public static class SinkApplication { - ... + //... @Bean public MessageConverter userMessageConverter() { @@ -182,7 +181,7 @@ Conversely, the following application registers a converter with a predefined sc @SpringBootApplication public static class SinkApplication { - ... + //... @Bean public MessageConverter userMessageConverter() { @@ -196,17 +195,19 @@ public static class SinkApplication { === Schema Registry Server Spring Cloud Stream provides a schema registry server implementation. -To use it, you can add the `spring-cloud-schema-server` artifact to your project and use the `@EnableSchemaRegistryServer` annotation, which adds the schema registry server REST controller to your application. -This annotation is intended to be used with Spring Boot web applications, and the listening port of the server is controlled by the `server.port` property. -The `spring.cloud.schema.server.path` property can be used to control the root path of the schema server (especially when it is embedded in other applications). -The `spring.cloud.schema.server.allowSchemaDeletion` boolean property enables the deletion of a schema. By default, this is disabled. +To use it, you can download latest `spring-cloud-schema-registry-server` release and run it as standalone application: -The schema registry server uses a relational database to store the schemas. -By default, it uses an embedded database. -You can customize the schema storage by using the http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-sql[Spring Boot SQL database and JDBC configuration options]. +[source,bash] +---- +wget https://repo.spring.io/libs-milestone/org/springframework/cloud/spring-cloud-schema-registry-server/1.0.0.RC2/spring-cloud-schema-registry-server-1.0.0.RC2.jar +java -jar ./spring-cloud-schema-registry-server-1.0.0.RC2.jar +---- +[TIP] +==== +You can embed the schema registry in your existing Spring Boot web application. +To do this, add the `spring-cloud-schema-server` artifact to your project and use the `@EnableSchemaRegistryServer` annotation, which adds the schema registry server REST controller to your application. The following example shows a Spring Boot application that enables the schema registry: - [source,java] ---- @SpringBootApplication @@ -217,6 +218,15 @@ public class SchemaRegistryServerApplication { } } ---- +==== + +The `spring.cloud.schema.server.path` property can be used to control the root path of the schema server (especially when it is embedded in other applications). +The `spring.cloud.schema.server.allowSchemaDeletion` boolean property enables the deletion of a schema. By default, this is disabled. + +The schema registry server uses a relational database to store the schemas. +By default, it uses an embedded database. +You can customize the schema storage by using the http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-sql[Spring Boot SQL database and JDBC configuration options]. + ==== Schema Registry Server API