Fix json & xml loading of Configuration defaults POLYGENE-191
Project: http://git-wip-us.apache.org/repos/asf/polygene-java/repo Commit: http://git-wip-us.apache.org/repos/asf/polygene-java/commit/cb4fcac1 Tree: http://git-wip-us.apache.org/repos/asf/polygene-java/tree/cb4fcac1 Diff: http://git-wip-us.apache.org/repos/asf/polygene-java/diff/cb4fcac1 Branch: refs/heads/serialization-3.0 Commit: cb4fcac128ed074247601bb1a4a20efbcba6b7d4 Parents: 2844b17 Author: Paul Merlin <[email protected]> Authored: Sun Feb 26 23:44:06 2017 +0100 Committer: Paul Merlin <[email protected]> Committed: Mon Mar 13 16:27:47 2017 +0100 ---------------------------------------------------------------------- .../api/configuration/Configuration.java | 7 +++++-- .../JavaxJsonSerializationAssembler.java | 1 + .../JavaxXmlSerializationAssembler.java | 1 + ...avaxXmlConfigurationDeserializationTest.java | 21 ++++++++++++++++++++ .../src/test/resources/configtest.xml | 1 + 5 files changed, 29 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cb4fcac1/core/api/src/main/java/org/apache/polygene/api/configuration/Configuration.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/polygene/api/configuration/Configuration.java b/core/api/src/main/java/org/apache/polygene/api/configuration/Configuration.java index 21eb05f..1cd32cf 100644 --- a/core/api/src/main/java/org/apache/polygene/api/configuration/Configuration.java +++ b/core/api/src/main/java/org/apache/polygene/api/configuration/Configuration.java @@ -49,6 +49,8 @@ import org.apache.polygene.api.unitofwork.UnitOfWorkFactory; import org.apache.polygene.api.usecase.Usecase; import org.apache.polygene.api.usecase.UsecaseBuilder; +import static java.nio.charset.StandardCharsets.UTF_8; + /** * Provide Configurations for Services. A Service that wants to be configurable * should inject a reference to Configuration with the Configuration type: @@ -403,8 +405,9 @@ public interface Configuration<T> { if( asStream != null ) { - V configObject = serializerRef.get().deserialize( uow.module(), configType, - new InputStreamReader( asStream ) ); + Deserializer deserializer = serializerRef.get(); + V configObject = deserializer.deserialize( uow.module(), configType, + new InputStreamReader( asStream, UTF_8 ) ); return uow.toEntity( configType, configObject ); } } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cb4fcac1/extensions/serialization-javaxjson/src/main/java/org/apache/polygene/serialization/javaxjson/JavaxJsonSerializationAssembler.java ---------------------------------------------------------------------- diff --git a/extensions/serialization-javaxjson/src/main/java/org/apache/polygene/serialization/javaxjson/JavaxJsonSerializationAssembler.java b/extensions/serialization-javaxjson/src/main/java/org/apache/polygene/serialization/javaxjson/JavaxJsonSerializationAssembler.java index 36b84d6..84022e1 100644 --- a/extensions/serialization-javaxjson/src/main/java/org/apache/polygene/serialization/javaxjson/JavaxJsonSerializationAssembler.java +++ b/extensions/serialization-javaxjson/src/main/java/org/apache/polygene/serialization/javaxjson/JavaxJsonSerializationAssembler.java @@ -45,6 +45,7 @@ public class JavaxJsonSerializationAssembler extends Assemblers.VisibilityIdenti Serializer.class, Deserializer.class, JsonSerialization.class, JsonSerializer.class, JsonDeserializer.class ) + .taggedWith( Serialization.Formats.JSON ) .visibleIn( visibility() ); if( hasIdentity() ) { http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cb4fcac1/extensions/serialization-javaxxml/src/main/java/org/apache/polygene/serialization/javaxxml/JavaxXmlSerializationAssembler.java ---------------------------------------------------------------------- diff --git a/extensions/serialization-javaxxml/src/main/java/org/apache/polygene/serialization/javaxxml/JavaxXmlSerializationAssembler.java b/extensions/serialization-javaxxml/src/main/java/org/apache/polygene/serialization/javaxxml/JavaxXmlSerializationAssembler.java index b97bf12..e402a9f 100644 --- a/extensions/serialization-javaxxml/src/main/java/org/apache/polygene/serialization/javaxxml/JavaxXmlSerializationAssembler.java +++ b/extensions/serialization-javaxxml/src/main/java/org/apache/polygene/serialization/javaxxml/JavaxXmlSerializationAssembler.java @@ -45,6 +45,7 @@ public class JavaxXmlSerializationAssembler extends Assemblers.VisibilityIdentit Serializer.class, Deserializer.class, XmlSerialization.class, XmlSerializer.class, XmlDeserializer.class ) + .taggedWith( Serialization.Formats.XML ) .visibleIn( visibility() ); if( hasIdentity() ) { http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cb4fcac1/extensions/serialization-javaxxml/src/test/java/org/apache/polygene/serialization/javaxxml/JavaxXmlConfigurationDeserializationTest.java ---------------------------------------------------------------------- diff --git a/extensions/serialization-javaxxml/src/test/java/org/apache/polygene/serialization/javaxxml/JavaxXmlConfigurationDeserializationTest.java b/extensions/serialization-javaxxml/src/test/java/org/apache/polygene/serialization/javaxxml/JavaxXmlConfigurationDeserializationTest.java new file mode 100644 index 0000000..f87c396 --- /dev/null +++ b/extensions/serialization-javaxxml/src/test/java/org/apache/polygene/serialization/javaxxml/JavaxXmlConfigurationDeserializationTest.java @@ -0,0 +1,21 @@ +package org.apache.polygene.serialization.javaxxml; + +import org.apache.polygene.bootstrap.ModuleAssembly; +import org.apache.polygene.test.entity.AbstractConfigurationDeserializationTest; +import org.junit.Test; + +public class JavaxXmlConfigurationDeserializationTest extends AbstractConfigurationDeserializationTest +{ + @Override + public void assemble( ModuleAssembly module ) + { + new JavaxXmlSerializationAssembler().assemble( module ); + super.assemble( module ); + } + + @Test + public void givenServiceWhenInitializingExpectCorrectDeserialization() + { + super.givenServiceWhenInitializingExpectCorrectDeserialization(); + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cb4fcac1/extensions/serialization-javaxxml/src/test/resources/configtest.xml ---------------------------------------------------------------------- diff --git a/extensions/serialization-javaxxml/src/test/resources/configtest.xml b/extensions/serialization-javaxxml/src/test/resources/configtest.xml new file mode 100644 index 0000000..0f6bc4c --- /dev/null +++ b/extensions/serialization-javaxxml/src/test/resources/configtest.xml @@ -0,0 +1 @@ +<?xml version="1.1" encoding="UTF-8" standalone="yes"?><state><value><identity>configtest</identity><host><value _type="org.apache.polygene.test.entity.AbstractConfigurationDeserializationTest$Host"><ip>12.23.34.45</ip><port>1234</port></value></host><name>main</name></value></state>
