POLYGENE-191 Documentation
Project: http://git-wip-us.apache.org/repos/asf/polygene-java/repo Commit: http://git-wip-us.apache.org/repos/asf/polygene-java/commit/c538c9e9 Tree: http://git-wip-us.apache.org/repos/asf/polygene-java/tree/c538c9e9 Diff: http://git-wip-us.apache.org/repos/asf/polygene-java/diff/c538c9e9 Branch: refs/heads/develop Commit: c538c9e9c38992d39372f76bb251def0e514de58 Parents: 81f64c2 Author: Paul Merlin <[email protected]> Authored: Mon Feb 27 15:27:24 2017 +0100 Committer: Paul Merlin <[email protected]> Committed: Sun Apr 2 19:16:23 2017 +0200 ---------------------------------------------------------------------- core/api/src/docs/serialization.txt | 16 +-- .../api/value/DocumentationSupport.java | 58 +--------- core/spi/src/docs/serialization.txt | 108 ++++++++++++------- .../AbstractBinaryDeserializer.java | 7 ++ .../serialization/AbstractBinarySerializer.java | 2 + .../serialization/AbstractTextDeserializer.java | 7 ++ .../serialization/AbstractTextSerializer.java | 2 + .../src/docs/serialization-javaxjson.txt | 24 ++++- ...avaxJsonValueCompositeSerializationTest.java | 22 +++- .../src/docs/serialization-javaxxml.txt | 20 +++- ...JavaxXmlValueCompositeSerializationTest.java | 4 + .../src/docs/serialization-msgpack.txt | 17 ++- ...sagePackValueCompositeSerializationTest.java | 4 + 13 files changed, 175 insertions(+), 116 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/polygene-java/blob/c538c9e9/core/api/src/docs/serialization.txt ---------------------------------------------------------------------- diff --git a/core/api/src/docs/serialization.txt b/core/api/src/docs/serialization.txt index e789125..68939f9 100644 --- a/core/api/src/docs/serialization.txt +++ b/core/api/src/docs/serialization.txt @@ -14,10 +14,6 @@ [[core-api-serialization,Serialization]] = Serialization = -// TODO Reword with the following outline -// Preamble - What is it for? What can I use it with?, see <<extensions>> -// Use cases - Value, collections/streams & arrays of values - State can be serialized and deserialized using the Serialization API which is a Service API implemented by SPI and extensions. @@ -29,7 +25,7 @@ The Serialization mechanism apply to the following object types : * EntityReference, * Iterable & Stream, * Map, - * Plain Value. + * Plain Values. Nested Plain Values, EntityReferences, Iterables, Streams, Maps, ValueComposites are supported. EntityComposites and EntityReferences are serialized as their identity string. @@ -47,10 +43,7 @@ Plain Values can be one of : * Double or double, * BigInteger, * BigDecimal, - * Date, - * DateTime (JodaTime), - * LocalDateTime (JodaTime), - * LocalDate (JodaTime). + * java.time types. TIP: Serialization behaviour can be tuned with options. Every +Serializer+ methods can take a +Serializer.Options+ object that contains flags to change how some @@ -64,8 +57,7 @@ Methods of +Serializer+ allow to specify if the serialized state should contain serialized value. Having type information in the serialized payload allows to keep actual ValueComposite types and by so circumvent +AmbiguousTypeException+ when deserializing. -Core Runtime provides a default Serialization system based on the -https://github.com/douglascrockford/JSON-java[org.json] Java library producing and consuming JSON. +Core Runtime provides a default Serialization system based on `javax.json` types. Let's see how it works in practice. @@ -103,7 +95,7 @@ In this second example, we ; . declare a ValueComposite, . assemble it, - . assemble a Serialization Service backed by the +org.json+ package, + . assemble a Serialization Service backed by the +javax.json+ types, . get the +Serializer+ and +Deserializer+ Services injected, . create a new Value instance, . use the +Serializer#serialize()+ method to get a JSON representation of the Value, http://git-wip-us.apache.org/repos/asf/polygene-java/blob/c538c9e9/core/api/src/test/java/org/apache/polygene/api/value/DocumentationSupport.java ---------------------------------------------------------------------- diff --git a/core/api/src/test/java/org/apache/polygene/api/value/DocumentationSupport.java b/core/api/src/test/java/org/apache/polygene/api/value/DocumentationSupport.java index 4de963b..2f55c83 100644 --- a/core/api/src/test/java/org/apache/polygene/api/value/DocumentationSupport.java +++ b/core/api/src/test/java/org/apache/polygene/api/value/DocumentationSupport.java @@ -29,13 +29,8 @@ import java.util.stream.Stream; import org.apache.polygene.api.injection.scope.Service; import org.apache.polygene.api.property.Property; import org.apache.polygene.api.serialization.Deserializer; -import org.apache.polygene.api.serialization.Serialization; import org.apache.polygene.api.serialization.Serializer; -import org.apache.polygene.api.structure.Application; -import org.apache.polygene.api.structure.Module; -import org.apache.polygene.bootstrap.Assembler; import org.apache.polygene.bootstrap.AssemblyException; -import org.apache.polygene.bootstrap.Energy4Java; import org.apache.polygene.bootstrap.ModuleAssembly; import org.apache.polygene.test.AbstractPolygeneTest; import org.junit.Test; @@ -46,8 +41,8 @@ import static org.junit.Assert.assertThat; /** * Snippets: - * - default : default ValueSerialization - * - service : assembled service ValueSerialization + * - default : default Serialization + * - service : assembled service Serialization * - io : i/o usage */ public class DocumentationSupport extends AbstractPolygeneTest @@ -61,7 +56,6 @@ public class DocumentationSupport extends AbstractPolygeneTest @Override public void assemble( ModuleAssembly module ) - throws AssemblyException { module.values( SomeValue.class ); // (2) } @@ -161,54 +155,6 @@ public class DocumentationSupport extends AbstractPolygeneTest } // END SNIPPET: io - @Test - // TODO Move to SPI ! - // TODO Include in each Serialization extensions documentation - public void assembledWithValuesModuleSerialization() - throws Exception - { - Application app = new Energy4Java().newApplication( - applicationFactory -> - { - Assembler[][][] pancakes = new Assembler[][][] - { - { - { - valuesModule -> - { - valuesModule.layer().setName( "SINGLE-Layer" ); - valuesModule.setName( "VALUES-Module" ); - - valuesModule.values( SomeValue.class ); - } - }, - { - servicesModule -> servicesModule.setName( "SERVICES-Module" ) - } - } - }; - return applicationFactory.newApplicationAssembly( pancakes ); - } ); - app.activate(); - try - { - SomeValue someValue = someNewValueInstance(); - - Module servicesModule = app.findModule( "SINGLE-Layer", "SERVICES-Module" ); - Serialization stateSerialization = servicesModule.findService( Serialization.class ).get(); - - String json = stateSerialization.serialize( someValue ); - assertThat( json, equalTo( "{\"foo\":\"bar\"}" ) ); - - SomeValue someNewValue = stateSerialization.deserialize( module, SomeValue.class, json ); - assertThat( someNewValue, equalTo( someValue ) ); - } - finally - { - app.passivate(); - } - } - private SomeValue someNewValueInstance() { ValueBuilder<SomeValue> builder = valueBuilderFactory.newValueBuilder( SomeValue.class ); http://git-wip-us.apache.org/repos/asf/polygene-java/blob/c538c9e9/core/spi/src/docs/serialization.txt ---------------------------------------------------------------------- diff --git a/core/spi/src/docs/serialization.txt b/core/spi/src/docs/serialization.txt index dca8955..d2d2580 100644 --- a/core/spi/src/docs/serialization.txt +++ b/core/spi/src/docs/serialization.txt @@ -20,64 +20,96 @@ [[core-spi-serialization,Serialization SPI]] = Serialization SPI = +TIP: Find Serialization extensions in the <<extensions>> list. + == Overview == The Polygene⢠Core Runtime use Serialization to provide string representation of ValueComposites via their `toString()` method, and, their instantiation from the very same representation via the `newValueFromSerializedState(..)` method of the ValueBuilderFactory API. +[snippet,java] +-------------- +source=core/api/src/test/java/org/apache/polygene/api/value/DocumentationSupport.java +tag=default +-------------- + In each Module, if no Serialization service is assembled, a default one supporting the JSON format is used. -// TODO Add sample usage of the Serialization service +[snippet,java] +-------------- +source=core/api/src/test/java/org/apache/polygene/api/value/DocumentationSupport.java +tag=service +-------------- -== Implementation notes == +== Text or Binary? -Simply implement Serialization to create an extension for the Serialization SPI. -The Core SPI module provides adapters to create pull-parsing capable Serializers and pull-parsing and tree-parsing -capable Deserializers. +The Core SPI provides adapters for text or bytes based serialization, extends the following types to implement a custom +serialization. -The behaviour described here apply to all Serialization services implemented using the Core SPI adapters. Note that -nothing stops you from implementing an extension for the Serialization SPI without relying on theses adapters. +For text based serialization: -Theses adapters are tailored for serialization mechanisms that support the following two structures that can be nested: +[snippet,java] +-------------- +source=core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractTextSerializer.java +tag=text +-------------- - * a collection of name/value pairs. In various languages, this is realized as an object, record, struct, - dictionary, hash table, keyed list, or associative array, - * an ordered list of values. In most languages, this is realized as an array, vector, list, or sequence ; +[snippet,java] +-------------- +source=core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractTextDeserializer.java +tag=text +-------------- -in other words, a JSON-like structure. +For bytes based serialization: + +[snippet,java] +-------------- +source=core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractBinarySerializer.java +tag=binary +-------------- + +[snippet,java] +-------------- +source=core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractBinaryDeserializer.java +tag=binary +-------------- -Special attention is taken when dealing with Maps. They are serialized as an ordered list of collections of -name/value pairs to keep the Map order for least surprise. That way, even when the underlying serialization mechanism -do not keep the collection of name/value pairs order we can rely on it being kept. +== JSON or XML? -Here is a sample Map with two entries in JSON notation to make things clear: +The Core SPI provides JSON and XML serialization respectively based on `javax.json` and `javax.xml` types and APIs to +work directly with these types so you can work with the actual object representations without serializing to text or +bytes. They both rely on the text serialization adapters shown above. -[source,javascript] ----- -[ - { "key": "foo", "value": "bar" }, - { "key": "cathedral", "value": "bazar" } -] ----- +Here is an example using the `JsonSerialization` service: -Among Plain Values (see the <<core-api-value,Serialization API>> section) some are considered primitives to -underlying serialization mechanisms and by so handed/come without conversion to/from implementations. +[snippet,java] +-------------- +source=extensions/serialization-javaxjson/src/test/java/org/apache/polygene/serialization/javaxjson/JavaxJsonValueCompositeSerializationTest.java +tag=json-serialization +-------------- -Primitive values can be one of: +And another using the `XmlSerialization` service: - * String, - * Boolean or boolean, - * Integer or int, - * Long or long, - * Short or short, - * Byte or byte, - * Float or float, - * Double or double. +[snippet,java] +-------------- +source=extensions/serialization-javaxxml/src/test/java/org/apache/polygene/serialization/javaxxml/JavaxXmlValueCompositeSerializationTest.java +tag=xml-serialization +-------------- -Serialization is always done in a streaming manner using a pull-parsing based approach. -Deserialization is done in a streaming manner using a pull-parsing based approach except when encountering a -ValueComposite. ValueComposite types are deserialized using a tree-parsing based approach. +== Implementation notes == + +Simply implement Serialization to create an extension for the Serialization SPI. +The Core SPI module provides adapters to create Serializers and Deserializers. -All this means that you can serialize and deserialize large collections of values without filling the heap. +The behaviour described here apply to all Serialization services implemented using the Core SPI adapters. Note that +nothing stops you from implementing an extension for the Serialization SPI without relying on theses adapters. + +Theses adapters are tailored for serialization mechanisms that support the following two structures that can be nested: + + * a collection of name/value pairs. In various languages, this is realized as an object, record, struct, + dictionary, hash table, keyed list, or associative array, + * an ordered list of values. In most languages, this is realized as an array, vector, list, or sequence ; + +in other words, a JSON-like structure. http://git-wip-us.apache.org/repos/asf/polygene-java/blob/c538c9e9/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractBinaryDeserializer.java ---------------------------------------------------------------------- diff --git a/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractBinaryDeserializer.java b/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractBinaryDeserializer.java index a8f2c2c..7e2d19a 100644 --- a/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractBinaryDeserializer.java +++ b/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractBinaryDeserializer.java @@ -28,7 +28,14 @@ import org.apache.polygene.api.type.ValueType; import static java.util.stream.Collectors.joining; +// START SNIPPET: binary +/** + * Base Binary Deserializer. + * + * Implementations work on bytes, this base deserializer decode Strings from Base64 to produce bytes. + */ public abstract class AbstractBinaryDeserializer extends AbstractDeserializer +// END SNIPPET: binary { @Override public <T> T deserialize( ModuleDescriptor module, ValueType valueType, Reader state ) http://git-wip-us.apache.org/repos/asf/polygene-java/blob/c538c9e9/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractBinarySerializer.java ---------------------------------------------------------------------- diff --git a/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractBinarySerializer.java b/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractBinarySerializer.java index e673ad7..0cf17eb 100644 --- a/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractBinarySerializer.java +++ b/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractBinarySerializer.java @@ -26,12 +26,14 @@ import org.apache.polygene.api.common.Optional; import static java.nio.charset.StandardCharsets.UTF_8; +// START SNIPPET: binary /** * Base Binary Serializer. * * Implementations work on bytes, this base serializer encode these bytes in Base64 to produce Strings. */ public abstract class AbstractBinarySerializer extends AbstractSerializer +// END SNIPPET: binary { @Override public void serialize( Options options, Writer writer, @Optional Object object ) http://git-wip-us.apache.org/repos/asf/polygene-java/blob/c538c9e9/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractTextDeserializer.java ---------------------------------------------------------------------- diff --git a/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractTextDeserializer.java b/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractTextDeserializer.java index 0575489..d87dd6d 100644 --- a/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractTextDeserializer.java +++ b/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractTextDeserializer.java @@ -24,7 +24,14 @@ import org.apache.polygene.api.type.ValueType; import static java.nio.charset.StandardCharsets.UTF_8; +// START SNIPPET: text +/** + * Base Text Deserializer. + * + * Implementations work on Strings, this base deserializer decode bytes in UTF-8 to produce strings. + */ public abstract class AbstractTextDeserializer extends AbstractDeserializer +// END SNIPPET: text { @Override public <T> T deserialize( ModuleDescriptor module, ValueType valueType, InputStream state ) http://git-wip-us.apache.org/repos/asf/polygene-java/blob/c538c9e9/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractTextSerializer.java ---------------------------------------------------------------------- diff --git a/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractTextSerializer.java b/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractTextSerializer.java index 3d8bb16..2c2b83c 100644 --- a/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractTextSerializer.java +++ b/core/spi/src/main/java/org/apache/polygene/spi/serialization/AbstractTextSerializer.java @@ -25,12 +25,14 @@ import org.apache.polygene.api.common.Optional; import static java.nio.charset.StandardCharsets.UTF_8; +// START SNIPPET: text /** * Base Text Serializer. * * Implementations work on Strings, this base serializer encode these strings in UTF-8 to produce bytes. */ public abstract class AbstractTextSerializer extends AbstractSerializer +// END SNIPPET: text { public void serialize( Options options, OutputStream output, @Optional Object object ) { http://git-wip-us.apache.org/repos/asf/polygene-java/blob/c538c9e9/extensions/serialization-javaxjson/src/docs/serialization-javaxjson.txt ---------------------------------------------------------------------- diff --git a/extensions/serialization-javaxjson/src/docs/serialization-javaxjson.txt b/extensions/serialization-javaxjson/src/docs/serialization-javaxjson.txt index f9aee3f..60cfa30 100644 --- a/extensions/serialization-javaxjson/src/docs/serialization-javaxjson.txt +++ b/extensions/serialization-javaxjson/src/docs/serialization-javaxjson.txt @@ -25,7 +25,25 @@ source=extensions/serialization-javaxjson/dev-status.xml -------------- -// TODO Preamble - link to <<core-api-serialization>> and <<core-spi-serialization>> -// TODO Document usage of JsonSerialization +`Serialization` service backed by `javax.json` types. +See <<core-api-serialization>> and <<core-spi-serialization>>. + +include::../../build/docs/buildinfo/artifact.txt[] + +This extension comes with https://johnzon.apache.org/[Apache Johnzon] as a default `javax.json` provider. +You can exclude its dependency and replace it by the one of your choice. + // TODO Include sample model and its output from test code & resources -// TODO Assembly - Serialization extension or sole Service, settings & adapters + +== Assembly == + +Assembly is done using the provided Assembler: + +[snippet,java] +---- +source=extensions/serialization-javaxjson/src/test/java/org/apache/polygene/serialization/javaxjson/JavaxJsonValueCompositeSerializationTest.java +tag=assembly +---- + +Note that this assembler is optional as Polygene assemble this service by default if no Serialization service is declared. + http://git-wip-us.apache.org/repos/asf/polygene-java/blob/c538c9e9/extensions/serialization-javaxjson/src/test/java/org/apache/polygene/serialization/javaxjson/JavaxJsonValueCompositeSerializationTest.java ---------------------------------------------------------------------- diff --git a/extensions/serialization-javaxjson/src/test/java/org/apache/polygene/serialization/javaxjson/JavaxJsonValueCompositeSerializationTest.java b/extensions/serialization-javaxjson/src/test/java/org/apache/polygene/serialization/javaxjson/JavaxJsonValueCompositeSerializationTest.java index 5fe4f5f..404a143 100644 --- a/extensions/serialization-javaxjson/src/test/java/org/apache/polygene/serialization/javaxjson/JavaxJsonValueCompositeSerializationTest.java +++ b/extensions/serialization-javaxjson/src/test/java/org/apache/polygene/serialization/javaxjson/JavaxJsonValueCompositeSerializationTest.java @@ -23,6 +23,7 @@ import javax.json.JsonObject; import javax.json.JsonValue; import org.apache.polygene.api.injection.scope.Service; import org.apache.polygene.api.unitofwork.UnitOfWork; +import org.apache.polygene.bootstrap.ModuleAssembly; import org.apache.polygene.spi.serialization.JsonSerialization; import org.apache.polygene.test.serialization.AbstractValueCompositeSerializationTest; import org.junit.Test; @@ -32,12 +33,26 @@ import static org.junit.Assert.assertThat; public class JavaxJsonValueCompositeSerializationTest extends AbstractValueCompositeSerializationTest { + // START SNIPPET: assembly + @Override + public void assemble( ModuleAssembly module ) + { + new JavaxJsonSerializationAssembler().assemble( module ); + // END SNIPPET: assembly + super.assemble( module ); + // START SNIPPET: assembly + } + // END SNIPPET: assembly + + // START SNIPPET: json-serialization @Service - private JsonSerialization jsonSerialization; + JsonSerialization jsonSerialization; + // END SNIPPET: json-serialization @Test public void valueCompositeJsonEquality() { + // START SNIPPET: json-serialization try( UnitOfWork uow = unitOfWorkFactory.newUnitOfWork() ) { Some some = buildSomeValue( moduleInstance, uow, "42" ); @@ -50,11 +65,12 @@ public class JavaxJsonValueCompositeSerializationTest extends AbstractValueCompo // Deserialize using Module API Some some2 = moduleInstance.newValueFromSerializedState( Some.class, stateString ); - assertThat( "Value equality", some, equalTo( some2 ) ); + assertThat( "Deserialized Value equality", some, equalTo( some2 ) ); JsonObject jsonState2 = Json.createReader( new StringReader( some2.toString() ) ).readObject(); - assertThat( "JSON equality", jsonState, equalTo( jsonState2 ) ); + assertThat( "value.toString() JSON equality", jsonState, equalTo( jsonState2 ) ); } + // END SNIPPET: json-serialization } } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/c538c9e9/extensions/serialization-javaxxml/src/docs/serialization-javaxxml.txt ---------------------------------------------------------------------- diff --git a/extensions/serialization-javaxxml/src/docs/serialization-javaxxml.txt b/extensions/serialization-javaxxml/src/docs/serialization-javaxxml.txt index 6fe6d75..aef6392 100644 --- a/extensions/serialization-javaxxml/src/docs/serialization-javaxxml.txt +++ b/extensions/serialization-javaxxml/src/docs/serialization-javaxxml.txt @@ -25,6 +25,22 @@ source=extensions/serialization-javaxxml/dev-status.xml -------------- -// TODO Document usage of XmlSerialization +`Serialization` service backed by `javax.xml` types. +See <<core-api-serialization>> and <<core-spi-serialization>>. + +include::../../build/docs/buildinfo/artifact.txt[] + +This extension make use of the Java runtime default `javax.xml` provider. +You can add dependencies to replace it by the one of your choice. + // TODO Include sample model and its output from test code & resources -// TODO Assembly - Serialization extension or sole Service, settings & adapters + +== Assembly == + +Assembly is done using the provided Assembler: + +[snippet,java] +---- +source=extensions/serialization-javaxxml/src/test/java/org/apache/polygene/serialization/javaxxml/JavaxXmlValueCompositeSerializationTest.java +tag=assembly +---- http://git-wip-us.apache.org/repos/asf/polygene-java/blob/c538c9e9/extensions/serialization-javaxxml/src/test/java/org/apache/polygene/serialization/javaxxml/JavaxXmlValueCompositeSerializationTest.java ---------------------------------------------------------------------- diff --git a/extensions/serialization-javaxxml/src/test/java/org/apache/polygene/serialization/javaxxml/JavaxXmlValueCompositeSerializationTest.java b/extensions/serialization-javaxxml/src/test/java/org/apache/polygene/serialization/javaxxml/JavaxXmlValueCompositeSerializationTest.java index 27bebc2..b86a2dc 100644 --- a/extensions/serialization-javaxxml/src/test/java/org/apache/polygene/serialization/javaxxml/JavaxXmlValueCompositeSerializationTest.java +++ b/extensions/serialization-javaxxml/src/test/java/org/apache/polygene/serialization/javaxxml/JavaxXmlValueCompositeSerializationTest.java @@ -33,12 +33,16 @@ import static org.xmlunit.matchers.CompareMatcher.isSimilarTo; // TODO Assert deserialization from formatted XML, whitespaces are a problem ATM public class JavaxXmlValueCompositeSerializationTest extends AbstractValueCompositeSerializationTest { + // START SNIPPET: assembly @Override public void assemble( ModuleAssembly module ) { new JavaxXmlSerializationAssembler().assemble( module ); + // END SNIPPET: assembly super.assemble( module ); + // START SNIPPET: assembly } + // END SNIPPET: assembly // START SNIPPET: xml-serialization @Service http://git-wip-us.apache.org/repos/asf/polygene-java/blob/c538c9e9/extensions/serialization-msgpack/src/docs/serialization-msgpack.txt ---------------------------------------------------------------------- diff --git a/extensions/serialization-msgpack/src/docs/serialization-msgpack.txt b/extensions/serialization-msgpack/src/docs/serialization-msgpack.txt index ad50c08..3ae0fa4 100644 --- a/extensions/serialization-msgpack/src/docs/serialization-msgpack.txt +++ b/extensions/serialization-msgpack/src/docs/serialization-msgpack.txt @@ -25,6 +25,19 @@ source=extensions/serialization-msgpack/dev-status.xml -------------- -// TODO Document usage of MessagePackSerialization +`Serialization` service backed by http://msgpack.org/[MessagePack] that produce and consume binary payloads. +See <<core-api-serialization>> and <<core-spi-serialization>>. + +include::../../build/docs/buildinfo/artifact.txt[] + // TODO Include sample model and its output from test code & resources -// TODO Assembly - Serialization extension or sole Service, settings & adapters + +== Assembly == + +Assembly is done using the provided Assembler: + +[snippet,java] +---- +source=extensions/serialization-msgpack/src/test/java/org/apache/polygene/serialization/msgpack/MessagePackValueCompositeSerializationTest.java +tag=assembly +---- \ No newline at end of file http://git-wip-us.apache.org/repos/asf/polygene-java/blob/c538c9e9/extensions/serialization-msgpack/src/test/java/org/apache/polygene/serialization/msgpack/MessagePackValueCompositeSerializationTest.java ---------------------------------------------------------------------- diff --git a/extensions/serialization-msgpack/src/test/java/org/apache/polygene/serialization/msgpack/MessagePackValueCompositeSerializationTest.java b/extensions/serialization-msgpack/src/test/java/org/apache/polygene/serialization/msgpack/MessagePackValueCompositeSerializationTest.java index 204f991..dd9291e 100644 --- a/extensions/serialization-msgpack/src/test/java/org/apache/polygene/serialization/msgpack/MessagePackValueCompositeSerializationTest.java +++ b/extensions/serialization-msgpack/src/test/java/org/apache/polygene/serialization/msgpack/MessagePackValueCompositeSerializationTest.java @@ -22,10 +22,14 @@ import org.apache.polygene.test.serialization.AbstractValueCompositeSerializatio public class MessagePackValueCompositeSerializationTest extends AbstractValueCompositeSerializationTest { + // START SNIPPET: assembly @Override public void assemble( ModuleAssembly module ) { new MessagePackSerializationAssembler().assemble( module ); + // END SNIPPET: assembly super.assemble( module ); + // START SNIPPET: assembly } + // END SNIPPET: assembly }
