You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by ni...@apache.org on 2015/04/17 18:05:27 UTC

[07/50] [abbrv] zest-qi4j git commit: QI-318 Leaner unit tests

QI-318 Leaner unit tests

Added methods for simple use cases in ValueDeserializer.

API should be done now.


Project: http://git-wip-us.apache.org/repos/asf/zest-qi4j/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-qi4j/commit/a2069655
Tree: http://git-wip-us.apache.org/repos/asf/zest-qi4j/tree/a2069655
Diff: http://git-wip-us.apache.org/repos/asf/zest-qi4j/diff/a2069655

Branch: refs/heads/master
Commit: a206965544cd48c9f948275d8e2f59fb524f274c
Parents: 13edb4e
Author: Paul Merlin <pa...@nosphere.org>
Authored: Sat Feb 9 15:10:47 2013 +0100
Committer: Paul Merlin <pa...@nosphere.org>
Committed: Sat Feb 9 17:34:27 2013 +0100

----------------------------------------------------------------------
 .../org/qi4j/api/value/ValueDeserializer.java   |  39 ++++++
 .../api/value/ValueSerializationException.java  |  15 +++
 .../spi/value/ValueDeserializerAdapter.java     |  50 ++++++++
 .../orgjson/OrgJsonValueSerialization.java      |  20 +++
 .../OrgJsonTemporalValueSerializationTest.java  |  38 ------
 .../AbstractCollectionSerializationTest.java    |   7 +-
 .../AbstractPlainValueSerializationTest.java    |  33 +++--
 .../AbstractTemporalValueSerializationTest.java | 123 -------------------
 ...AbstractValueCompositeSerializationTest.java |   4 +-
 .../main/java/org/qi4j/test/value/package.html  |   5 +
 .../valueserialization-jackson/dev-status.xml   |  17 +++
 .../JacksonTemporalValueSerializationTest.java  |  39 ------
 .../valueserialization-stax/dev-status.xml      |  17 +++
 .../StaxTemporalValueSerializationTest.java     |  38 ------
 14 files changed, 184 insertions(+), 261 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/a2069655/core/api/src/main/java/org/qi4j/api/value/ValueDeserializer.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/value/ValueDeserializer.java b/core/api/src/main/java/org/qi4j/api/value/ValueDeserializer.java
index 0b6022f..b75886a 100644
--- a/core/api/src/main/java/org/qi4j/api/value/ValueDeserializer.java
+++ b/core/api/src/main/java/org/qi4j/api/value/ValueDeserializer.java
@@ -71,6 +71,19 @@ public interface ValueDeserializer
     /**
      * Factory method for a typed deserialize function.
      *
+     * <p>The returned Function may throw {@link ValueSerializationException}.</p>
+     *
+     * @param type the value type
+     * @param <T> the parametrized function return type
+     * @return a deserialization function
+     */
+    <T> Function<String, T> deserialize( Class<T> type );
+
+    /**
+     * Factory method for a typed deserialize function.
+     *
+     * <p>The returned Function may throw {@link ValueSerializationException}.</p>
+     *
      * @param valueType the value type
      * @param <T> the parametrized function return type
      * @return a deserialization function
@@ -80,6 +93,8 @@ public interface ValueDeserializer
     /**
      * Factory method for an untyped deserialize function.
      *
+     * <p>The returned Function may throw {@link ValueSerializationException}.</p>
+     *
      * @param <T> the parametrized function return type
      * @return a deserialization function
      */
@@ -89,6 +104,18 @@ public interface ValueDeserializer
      * Deserialize a value from a state.
      *
      * @param <T> the parametrized returned type
+     * @param type the value type
+     * @param input the state
+     * @return the value
+     * @throws ValueSerializationException if the deserialization failed
+     */
+    <T> T deserialize( Class<?> type, String input )
+        throws ValueSerializationException;
+
+    /**
+     * Deserialize a value from a state.
+     *
+     * @param <T> the parametrized returned type
      * @param valueType the value type
      * @param input the state
      * @return the value
@@ -101,6 +128,18 @@ public interface ValueDeserializer
      * Deserialize a value from a state.
      *
      * @param <T> the parametrized returned type
+     * @param type the value type
+     * @param input the state stream
+     * @return the value
+     * @throws ValueSerializationException if the deserialization failed
+     */
+    <T> T deserialize( Class<?> type, InputStream input )
+        throws ValueSerializationException;
+
+    /**
+     * Deserialize a value from a state.
+     *
+     * @param <T> the parametrized returned type
      * @param valueType the value type
      * @param input the state stream
      * @return the value

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/a2069655/core/api/src/main/java/org/qi4j/api/value/ValueSerializationException.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/value/ValueSerializationException.java b/core/api/src/main/java/org/qi4j/api/value/ValueSerializationException.java
index b267d86..e1f3d44 100644
--- a/core/api/src/main/java/org/qi4j/api/value/ValueSerializationException.java
+++ b/core/api/src/main/java/org/qi4j/api/value/ValueSerializationException.java
@@ -1,3 +1,18 @@
+/*
+ * Copyright (c) 2012, Paul Merlin. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ *
+ *     You may obtain a copy of the License at
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.qi4j.api.value;
 
 /**

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/a2069655/core/spi/src/main/java/org/qi4j/spi/value/ValueDeserializerAdapter.java
----------------------------------------------------------------------
diff --git a/core/spi/src/main/java/org/qi4j/spi/value/ValueDeserializerAdapter.java b/core/spi/src/main/java/org/qi4j/spi/value/ValueDeserializerAdapter.java
index a482294..c8afe2b 100644
--- a/core/spi/src/main/java/org/qi4j/spi/value/ValueDeserializerAdapter.java
+++ b/core/spi/src/main/java/org/qi4j/spi/value/ValueDeserializerAdapter.java
@@ -303,6 +303,22 @@ public abstract class ValueDeserializerAdapter<InputType, InputNodeType>
     }
 
     @Override
+    public <T> Function<String, T> deserialize( Class<T> type )
+    {
+        if( CollectionType.isCollection( type ) )
+        {
+            ValueType objectValueType = new ValueType( Object.class );
+            return deserialize( new CollectionType( type, objectValueType ) );
+        }
+        if( MapType.isMap( type ) )
+        {
+            ValueType objectValueType = new ValueType( Object.class );
+            return deserialize( new MapType( type, objectValueType, objectValueType ) );
+        }
+        return deserialize( new ValueType( type ) );
+    }
+
+    @Override
     public final <T> Function<String, T> deserialize( final ValueType valueType )
     {
         return new Function<String, T>()
@@ -329,6 +345,23 @@ public abstract class ValueDeserializerAdapter<InputType, InputNodeType>
     }
 
     @Override
+    public final <T> T deserialize( Class<?> type, String input )
+        throws ValueSerializationException
+    {
+        if( CollectionType.isCollection( type ) )
+        {
+            ValueType objectValueType = new ValueType( Object.class );
+            return deserialize( new CollectionType( type, objectValueType ), input );
+        }
+        if( MapType.isMap( type ) )
+        {
+            ValueType objectValueType = new ValueType( Object.class );
+            return deserialize( new MapType( type, objectValueType, objectValueType ), input );
+        }
+        return deserialize( new ValueType( type ), input );
+    }
+
+    @Override
     public final <T> T deserialize( ValueType valueType, String input )
         throws ValueSerializationException
     {
@@ -347,6 +380,23 @@ public abstract class ValueDeserializerAdapter<InputType, InputNodeType>
     }
 
     @Override
+    public final <T> T deserialize( Class<?> type, InputStream input )
+        throws ValueSerializationException
+    {
+        if( CollectionType.isCollection( type ) )
+        {
+            ValueType objectValueType = new ValueType( Object.class );
+            return deserialize( new CollectionType( type, objectValueType ), input );
+        }
+        if( MapType.isMap( type ) )
+        {
+            ValueType objectValueType = new ValueType( Object.class );
+            return deserialize( new MapType( type, objectValueType, objectValueType ), input );
+        }
+        return deserialize( new ValueType( type ), input );
+    }
+
+    @Override
     public final <T> T deserialize( ValueType valueType, InputStream input )
         throws ValueSerializationException
     {

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/a2069655/core/spi/src/main/java/org/qi4j/valueserialization/orgjson/OrgJsonValueSerialization.java
----------------------------------------------------------------------
diff --git a/core/spi/src/main/java/org/qi4j/valueserialization/orgjson/OrgJsonValueSerialization.java b/core/spi/src/main/java/org/qi4j/valueserialization/orgjson/OrgJsonValueSerialization.java
index 7dedd0d..242ac52 100644
--- a/core/spi/src/main/java/org/qi4j/valueserialization/orgjson/OrgJsonValueSerialization.java
+++ b/core/spi/src/main/java/org/qi4j/valueserialization/orgjson/OrgJsonValueSerialization.java
@@ -97,6 +97,12 @@ public class OrgJsonValueSerialization
     }
 
     @Override
+    public <T> Function<String, T> deserialize( Class<T> type )
+    {
+        return deserializer.deserialize( type );
+    }
+
+    @Override
     public <T> Function<String, T> deserialize( ValueType valueType )
     {
         return deserializer.deserialize( valueType );
@@ -109,6 +115,13 @@ public class OrgJsonValueSerialization
     }
 
     @Override
+    public <T> T deserialize( Class<?> type, String input )
+        throws ValueSerializationException
+    {
+        return deserializer.deserialize( type, input );
+    }
+
+    @Override
     public <T> T deserialize( ValueType type, String input )
         throws ValueSerializationException
     {
@@ -116,6 +129,13 @@ public class OrgJsonValueSerialization
     }
 
     @Override
+    public <T> T deserialize( Class<?> type, InputStream input )
+        throws ValueSerializationException
+    {
+        return deserializer.deserialize( new ValueType( type ), input );
+    }
+
+    @Override
     public <T> T deserialize( ValueType type, InputStream input )
         throws ValueSerializationException
     {

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/a2069655/core/spi/src/test/java/org/qi4j/valueserialization/orgjson/OrgJsonTemporalValueSerializationTest.java
----------------------------------------------------------------------
diff --git a/core/spi/src/test/java/org/qi4j/valueserialization/orgjson/OrgJsonTemporalValueSerializationTest.java b/core/spi/src/test/java/org/qi4j/valueserialization/orgjson/OrgJsonTemporalValueSerializationTest.java
deleted file mode 100644
index a2804db..0000000
--- a/core/spi/src/test/java/org/qi4j/valueserialization/orgjson/OrgJsonTemporalValueSerializationTest.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2012, Paul Merlin. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- *
- *     You may obtain a copy of the License at
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.valueserialization.orgjson;
-
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.test.value.AbstractTemporalValueSerializationTest;
-
-public class OrgJsonTemporalValueSerializationTest
-    extends AbstractTemporalValueSerializationTest
-{
-
-    @Override
-    public void assemble( ModuleAssembly module )
-        throws AssemblyException
-    {
-        module.services( OrgJsonValueSerializationService.class );
-    }
-
-    @Override
-    protected String asSingleValueArray( String value )
-    {
-        return "[\"" + value + "\"]";
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/a2069655/core/testsupport/src/main/java/org/qi4j/test/value/AbstractCollectionSerializationTest.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/qi4j/test/value/AbstractCollectionSerializationTest.java b/core/testsupport/src/main/java/org/qi4j/test/value/AbstractCollectionSerializationTest.java
index 65bef75..59f44cd 100644
--- a/core/testsupport/src/main/java/org/qi4j/test/value/AbstractCollectionSerializationTest.java
+++ b/core/testsupport/src/main/java/org/qi4j/test/value/AbstractCollectionSerializationTest.java
@@ -82,8 +82,7 @@ public class AbstractCollectionSerializationTest
         String output = sb.toString();
 
         List<Byte> list = new ArrayList<Byte>();
-        ValueType valueType = new ValueType( Byte.class );
-        text( output ).transferTo( map( valueSerialization.<Byte>deserialize( valueType ), collection( list ) ) );
+        text( output ).transferTo( map( valueSerialization.deserialize( Byte.class ), collection( list ) ) );
         assertEquals( byteCollection(), list );
     }
 
@@ -96,7 +95,7 @@ public class AbstractCollectionSerializationTest
             23, 42, -23, -42
         };
         String output = valueSerialization.serialize( primitiveArray );
-        int[] deserialized = valueSerialization.deserialize( new ValueType( int[].class ), output );
+        int[] deserialized = valueSerialization.deserialize( int[].class, output );
         assertArrayEquals( primitiveArray, deserialized );
     }
 
@@ -109,7 +108,7 @@ public class AbstractCollectionSerializationTest
             9, null, -12, -12, 127, -128, 73
         };
         String output = valueSerialization.serialize( array );
-        Byte[] deserialized = valueSerialization.deserialize( new ValueType( Byte[].class ), output );
+        Byte[] deserialized = valueSerialization.deserialize( Byte[].class, output );
         assertArrayEquals( array, deserialized );
     }
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/a2069655/core/testsupport/src/main/java/org/qi4j/test/value/AbstractPlainValueSerializationTest.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/qi4j/test/value/AbstractPlainValueSerializationTest.java b/core/testsupport/src/main/java/org/qi4j/test/value/AbstractPlainValueSerializationTest.java
index 6458a96..abb6a65 100644
--- a/core/testsupport/src/main/java/org/qi4j/test/value/AbstractPlainValueSerializationTest.java
+++ b/core/testsupport/src/main/java/org/qi4j/test/value/AbstractPlainValueSerializationTest.java
@@ -26,7 +26,6 @@ import org.junit.Before;
 import org.junit.Test;
 import org.qi4j.api.entity.EntityReference;
 import org.qi4j.api.injection.scope.Service;
-import org.qi4j.api.type.ValueType;
 import org.qi4j.api.value.ValueSerialization;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;
@@ -64,7 +63,7 @@ public class AbstractPlainValueSerializationTest
         String serialized = valueSerialization.serialize( "" );
         assertThat( "Serialized", serialized, equalTo( "" ) );
 
-        String deserialized = valueSerialization.deserialize( new ValueType( String.class ), serialized );
+        String deserialized = valueSerialization.deserialize( String.class, serialized );
         assertThat( "Deserialized", deserialized, equalTo( "" ) );
     }
 
@@ -74,7 +73,7 @@ public class AbstractPlainValueSerializationTest
         String serialized = valueSerialization.serialize( "test" );
         assertThat( serialized, equalTo( "test" ) );
 
-        String deserialized = valueSerialization.deserialize( new ValueType( String.class ), serialized );
+        String deserialized = valueSerialization.deserialize( String.class, serialized );
         assertThat( deserialized, equalTo( "test" ) );
     }
 
@@ -84,7 +83,7 @@ public class AbstractPlainValueSerializationTest
         String serialized = valueSerialization.serialize( Boolean.TRUE );
         assertThat( serialized, equalTo( "true" ) );
 
-        Boolean deserialized = valueSerialization.deserialize( new ValueType( Boolean.class ), serialized );
+        Boolean deserialized = valueSerialization.deserialize( Boolean.class, serialized );
         assertThat( deserialized, equalTo( Boolean.TRUE ) );
     }
 
@@ -93,7 +92,7 @@ public class AbstractPlainValueSerializationTest
     {
         String serialized = valueSerialization.serialize( 42 );
         assertThat( serialized, equalTo( "42" ) );
-        Integer deserialized = valueSerialization.deserialize( new ValueType( Integer.class ), serialized );
+        Integer deserialized = valueSerialization.deserialize( Integer.class, serialized );
         assertThat( deserialized, equalTo( 42 ) );
     }
 
@@ -103,7 +102,7 @@ public class AbstractPlainValueSerializationTest
         String serialized = valueSerialization.serialize( 42L );
         assertThat( serialized, equalTo( "42" ) );
 
-        Long deserialized = valueSerialization.deserialize( new ValueType( Long.class ), serialized );
+        Long deserialized = valueSerialization.deserialize( Long.class, serialized );
         assertThat( deserialized, equalTo( 42L ) );
     }
 
@@ -113,7 +112,7 @@ public class AbstractPlainValueSerializationTest
         String serialized = valueSerialization.serialize( (short) 42 );
         assertThat( serialized, equalTo( "42" ) );
 
-        Short deserialized = valueSerialization.deserialize( new ValueType( Short.class ), serialized );
+        Short deserialized = valueSerialization.deserialize( Short.class, serialized );
         assertThat( deserialized, equalTo( (short) 42 ) );
     }
 
@@ -122,7 +121,7 @@ public class AbstractPlainValueSerializationTest
     {
         String serialized = valueSerialization.serialize( (byte) 42 );
         assertThat( serialized, equalTo( "42" ) );
-        Byte deserialized = valueSerialization.deserialize( new ValueType( Byte.class ), serialized );
+        Byte deserialized = valueSerialization.deserialize( Byte.class, serialized );
         assertThat( deserialized, equalTo( (byte) 42 ) );
     }
 
@@ -132,7 +131,7 @@ public class AbstractPlainValueSerializationTest
         String serialized = valueSerialization.serialize( 42F );
         assertThat( serialized, equalTo( "42.0" ) );
 
-        Float deserialized = valueSerialization.deserialize( new ValueType( Float.class ), serialized );
+        Float deserialized = valueSerialization.deserialize( Float.class, serialized );
         assertThat( deserialized, equalTo( 42F ) );
     }
 
@@ -142,7 +141,7 @@ public class AbstractPlainValueSerializationTest
         String serialized = valueSerialization.serialize( 42D );
         assertThat( serialized, equalTo( "42.0" ) );
 
-        Double deserialized = valueSerialization.deserialize( new ValueType( Double.class ), serialized );
+        Double deserialized = valueSerialization.deserialize( Double.class, serialized );
         assertThat( deserialized, equalTo( 42D ) );
     }
 
@@ -152,7 +151,7 @@ public class AbstractPlainValueSerializationTest
         String serialized = valueSerialization.serialize( new BigInteger( "42" ) );
         assertThat( serialized, equalTo( "42" ) );
 
-        BigInteger deserialized = valueSerialization.deserialize( new ValueType( BigInteger.class ), serialized );
+        BigInteger deserialized = valueSerialization.deserialize( BigInteger.class, serialized );
         assertThat( deserialized, equalTo( new BigInteger( "42" ) ) );
     }
 
@@ -162,7 +161,7 @@ public class AbstractPlainValueSerializationTest
         String serialized = valueSerialization.serialize( new BigDecimal( "42" ) );
         assertThat( serialized, equalTo( "42" ) );
 
-        BigDecimal deserialized = valueSerialization.deserialize( new ValueType( BigDecimal.class ), serialized );
+        BigDecimal deserialized = valueSerialization.deserialize( BigDecimal.class, serialized );
         assertThat( deserialized, equalTo( new BigDecimal( "42" ) ) );
     }
 
@@ -172,7 +171,7 @@ public class AbstractPlainValueSerializationTest
         String serialized = valueSerialization.serialize( new DateTime( "2020-03-04T13:24:35", UTC ).toDate() );
         assertThat( serialized, equalTo( "2020-03-04T13:24:35.000Z" ) );
 
-        Date deserialized = valueSerialization.deserialize( new ValueType( Date.class ), serialized );
+        Date deserialized = valueSerialization.deserialize( Date.class, serialized );
         assertThat( deserialized, equalTo( new DateTime( "2020-03-04T13:24:35", UTC ).toDate() ) );
     }
 
@@ -181,7 +180,7 @@ public class AbstractPlainValueSerializationTest
     {
         String serialized = valueSerialization.serialize( new DateTime( "2020-03-04T13:24:35", UTC ) );
         assertThat( serialized, equalTo( "2020-03-04T13:24:35.000Z" ) );
-        DateTime deserialized = valueSerialization.deserialize( new ValueType( DateTime.class ), serialized );
+        DateTime deserialized = valueSerialization.deserialize( DateTime.class, serialized );
         assertThat( deserialized, equalTo( new DateTime( "2020-03-04T13:24:35", UTC ) ) );
     }
 
@@ -191,7 +190,7 @@ public class AbstractPlainValueSerializationTest
         String serialized = valueSerialization.serialize( new LocalDateTime( "2020-03-04T13:23:00", UTC ) );
         assertThat( serialized, equalTo( "2020-03-04T13:23:00.000" ) );
 
-        LocalDateTime deserialized = valueSerialization.deserialize( new ValueType( LocalDateTime.class ), serialized );
+        LocalDateTime deserialized = valueSerialization.deserialize( LocalDateTime.class, serialized );
         assertThat( deserialized, equalTo( new LocalDateTime( "2020-03-04T13:23:00", UTC ) ) );
     }
 
@@ -201,7 +200,7 @@ public class AbstractPlainValueSerializationTest
         String serialized = valueSerialization.serialize( new LocalDate( "2020-03-04" ) );
         assertThat( serialized, equalTo( "2020-03-04" ) );
 
-        LocalDate deserialized = valueSerialization.deserialize( new ValueType( LocalDate.class ), serialized );
+        LocalDate deserialized = valueSerialization.deserialize( LocalDate.class, serialized );
         assertThat( deserialized, equalTo( new LocalDate( "2020-03-04" ) ) );
     }
 
@@ -211,7 +210,7 @@ public class AbstractPlainValueSerializationTest
         String serialized = valueSerialization.serialize( EntityReference.parseEntityReference( "ABCD-1234" ) );
         assertThat( serialized, equalTo( "ABCD-1234" ) );
 
-        EntityReference deserialized = valueSerialization.deserialize( new ValueType( EntityReference.class ), serialized );
+        EntityReference deserialized = valueSerialization.deserialize( EntityReference.class, serialized );
         assertThat( deserialized, equalTo( EntityReference.parseEntityReference( "ABCD-1234" ) ) );
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/a2069655/core/testsupport/src/main/java/org/qi4j/test/value/AbstractTemporalValueSerializationTest.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/qi4j/test/value/AbstractTemporalValueSerializationTest.java b/core/testsupport/src/main/java/org/qi4j/test/value/AbstractTemporalValueSerializationTest.java
deleted file mode 100644
index e841dc3..0000000
--- a/core/testsupport/src/main/java/org/qi4j/test/value/AbstractTemporalValueSerializationTest.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright (c) 2011, Niclas Hehdman. All Rights Reserved.
- * Copyright (c) 2012, Paul Merlin. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- *
- *     You may obtain a copy of the License at
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.test.value;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
-import org.joda.time.DateTime;
-import org.joda.time.LocalDate;
-import org.joda.time.LocalDateTime;
-import org.junit.Before;
-import org.junit.Test;
-import org.qi4j.api.injection.scope.Service;
-import org.qi4j.api.type.CollectionType;
-import org.qi4j.api.type.ValueType;
-import org.qi4j.api.value.ValueSerialization;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.test.AbstractQi4jTest;
-
-import static org.joda.time.DateTimeZone.UTC;
-import static org.junit.Assert.*;
-
-/**
- * Assert that a ValueSerialization support JodaTime times correctly.
- */
-@SuppressWarnings( "ProtectedField" )
-public abstract class AbstractTemporalValueSerializationTest
-    extends AbstractQi4jTest
-{
-
-    private final ValueType jodaDateTimeType = new ValueType( DateTime.class );
-    private final ValueType jodaLocalDateTimeType = new ValueType( LocalDateTime.class );
-    private final ValueType jodaLocalDateType = new ValueType( LocalDate.class );
-
-    @Override
-    public void assemble( ModuleAssembly module )
-        throws AssemblyException
-    {
-        // NOOP
-    }
-
-    @Before
-    public void before()
-    {
-        module.injectTo( this );
-    }
-    @Service
-    protected ValueSerialization valueSerialization;
-
-    @Test
-    public void givenDateTimeTypeWhenConvertingToJsonExpectValidString()
-        throws Exception
-    {
-        Set<DateTime> value = Collections.singleton( new DateTime( "2020-03-04T13:24:35", UTC ) );
-        String stateString = valueSerialization.serialize( value );
-        assertEquals( asSingleValueArray( "2020-03-04T13:24:35.000Z" ), stateString );
-    }
-
-    @Test
-    public void givenDateTimeTypeWhenConvertingFromJsonExpectValidLocalDate()
-        throws Exception
-    {
-        CollectionType collectionType = new CollectionType( List.class, jodaDateTimeType );
-        String serializedState = asSingleValueArray( "2020-03-04T12:23:33Z" );
-        List<DateTime> value = valueSerialization.deserialize( collectionType, serializedState );
-        assertEquals( new DateTime( "2020-03-04T12:23:33Z", UTC ), value.get( 0 ) );
-    }
-
-    @Test
-    public void givenLocalDateTimeTypeWhenConvertingToJsonExpectValidString()
-        throws Exception
-    {
-        Set<LocalDateTime> value = Collections.singleton( new LocalDateTime( "2020-03-04T13:23:00", UTC ) );
-        String stateString = valueSerialization.serialize( value );
-        assertEquals( asSingleValueArray( "2020-03-04T13:23:00.000" ), stateString );
-    }
-
-    @Test
-    public void givenLocalDateTimeTypeWhenConvertingFromJsonExpectValidLocalDate()
-        throws Exception
-    {
-        CollectionType collectionType = new CollectionType( List.class, jodaLocalDateTimeType );
-        String serializedState = asSingleValueArray( "2020-03-04T12:23:09" );
-        List<LocalDateTime> value = valueSerialization.deserialize( collectionType, serializedState );
-        assertEquals( new LocalDateTime( "2020-03-04T12:23:09", UTC ), value.get( 0 ) );
-    }
-
-    @Test
-    public void givenLocalDateTypeWhenConvertingToJsonExpectValidString()
-        throws Exception
-    {
-        Set<LocalDate> value = Collections.singleton( new LocalDate( "2020-03-04" ) );
-        String stateString = valueSerialization.serialize( value );
-        assertEquals( asSingleValueArray( "2020-03-04" ), stateString );
-    }
-
-    @Test
-    public void givenLocalDateTypeWhenConvertingFromJsonExpectValidLocalDate()
-        throws Exception
-    {
-        CollectionType collectionType = new CollectionType( List.class, jodaLocalDateType );
-        String serializedState = asSingleValueArray( "2020-03-04" );
-        List<LocalDate> value = valueSerialization.deserialize( collectionType, serializedState );
-        assertEquals( new LocalDate( "2020-03-04" ), value.get( 0 ) );
-    }
-
-    protected abstract String asSingleValueArray( String value );
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/a2069655/core/testsupport/src/main/java/org/qi4j/test/value/AbstractValueCompositeSerializationTest.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/qi4j/test/value/AbstractValueCompositeSerializationTest.java b/core/testsupport/src/main/java/org/qi4j/test/value/AbstractValueCompositeSerializationTest.java
index d470958..ba5cf15 100644
--- a/core/testsupport/src/main/java/org/qi4j/test/value/AbstractValueCompositeSerializationTest.java
+++ b/core/testsupport/src/main/java/org/qi4j/test/value/AbstractValueCompositeSerializationTest.java
@@ -97,14 +97,14 @@ public abstract class AbstractValueCompositeSerializationTest
         {
             SomeValue some = buildSomeValue();
 
-            // Serialize
+            // Serialize using injected service
             ByteArrayOutputStream output = new ByteArrayOutputStream();
             valueSerialization.serialize( some, output, true );
             String stateString = output.toString( "UTF-8" );
 
             log.info( "Complex ValueComposite state:\n\n{}\n", stateString );
 
-            // Deserialize
+            // Deserialize using Module API
             SomeValue some2 = module.newValueFromSerializedState( SomeValue.class, stateString );
 
             assertThat( "Same value toString", some.toString(), equalTo( some2.toString() ) );

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/a2069655/core/testsupport/src/main/java/org/qi4j/test/value/package.html
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/qi4j/test/value/package.html b/core/testsupport/src/main/java/org/qi4j/test/value/package.html
new file mode 100644
index 0000000..b8575dc
--- /dev/null
+++ b/core/testsupport/src/main/java/org/qi4j/test/value/package.html
@@ -0,0 +1,5 @@
+<html>
+    <body>
+        <h2>ValueSerialization SPI Test Support.</h2>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/a2069655/extensions/valueserialization-jackson/dev-status.xml
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-jackson/dev-status.xml b/extensions/valueserialization-jackson/dev-status.xml
new file mode 100644
index 0000000..7a7c572
--- /dev/null
+++ b/extensions/valueserialization-jackson/dev-status.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<module xmlns="http://www.qi4j.org/schemas/2008/dev-status/1"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://www.qi4j.org/schemas/2008/dev-status/1
+        http://www.qi4j.org/schemas/2008/dev-status/1/dev-status.xsd">
+  <status>
+    <codebase>beta</codebase>
+    <!--none,early,beta,stable,mature-->
+    <documentation>none</documentation>
+    <!-- none, brief, good, complete -->
+    <unittests>complete</unittests>
+    <!-- none, some, good, complete -->
+  </status>
+  <licenses>
+    <license>ALv2</license>
+  </licenses>
+</module>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/a2069655/extensions/valueserialization-jackson/src/test/java/org/qi4j/valueserialization/jackson/JacksonTemporalValueSerializationTest.java
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-jackson/src/test/java/org/qi4j/valueserialization/jackson/JacksonTemporalValueSerializationTest.java b/extensions/valueserialization-jackson/src/test/java/org/qi4j/valueserialization/jackson/JacksonTemporalValueSerializationTest.java
deleted file mode 100644
index 6d95b45..0000000
--- a/extensions/valueserialization-jackson/src/test/java/org/qi4j/valueserialization/jackson/JacksonTemporalValueSerializationTest.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2012, Paul Merlin. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- *
- *     You may obtain a copy of the License at
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.valueserialization.jackson;
-
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.test.value.AbstractTemporalValueSerializationTest;
-
-public class JacksonTemporalValueSerializationTest
-    extends AbstractTemporalValueSerializationTest
-{
-
-    @Override
-    public void assemble( ModuleAssembly module )
-        throws AssemblyException
-    {
-        super.assemble( module );
-        module.services( JacksonValueSerializationService.class );
-    }
-
-    @Override
-    protected String asSingleValueArray( String value )
-    {
-        return "[\"" + value + "\"]";
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/a2069655/extensions/valueserialization-stax/dev-status.xml
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-stax/dev-status.xml b/extensions/valueserialization-stax/dev-status.xml
new file mode 100644
index 0000000..7a7c572
--- /dev/null
+++ b/extensions/valueserialization-stax/dev-status.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<module xmlns="http://www.qi4j.org/schemas/2008/dev-status/1"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://www.qi4j.org/schemas/2008/dev-status/1
+        http://www.qi4j.org/schemas/2008/dev-status/1/dev-status.xsd">
+  <status>
+    <codebase>beta</codebase>
+    <!--none,early,beta,stable,mature-->
+    <documentation>none</documentation>
+    <!-- none, brief, good, complete -->
+    <unittests>complete</unittests>
+    <!-- none, some, good, complete -->
+  </status>
+  <licenses>
+    <license>ALv2</license>
+  </licenses>
+</module>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/a2069655/extensions/valueserialization-stax/src/test/java/org/qi4j/valueserialization/stax/StaxTemporalValueSerializationTest.java
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-stax/src/test/java/org/qi4j/valueserialization/stax/StaxTemporalValueSerializationTest.java b/extensions/valueserialization-stax/src/test/java/org/qi4j/valueserialization/stax/StaxTemporalValueSerializationTest.java
deleted file mode 100644
index 019d9f9..0000000
--- a/extensions/valueserialization-stax/src/test/java/org/qi4j/valueserialization/stax/StaxTemporalValueSerializationTest.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2012, Paul Merlin. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- *
- *     You may obtain a copy of the License at
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.qi4j.valueserialization.stax;
-
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.test.value.AbstractTemporalValueSerializationTest;
-
-public class StaxTemporalValueSerializationTest
-    extends AbstractTemporalValueSerializationTest
-{
-
-    @Override
-    public void assemble( ModuleAssembly module )
-        throws AssemblyException
-    {
-        module.services( StaxValueSerializationService.class );
-    }
-
-    @Override
-    protected String asSingleValueArray( String value )
-    {
-        return "<?xml version=\"1.1\" encoding=\"utf-8\"?><array><value>" + value + "</value></array>";
-    }
-}