Author: olamy
Date: Wed Feb 22 10:59:13 2012
New Revision: 1292236

URL: http://svn.apache.org/viewvc?rev=1292236&view=rev
Log:
add 'tck' serializer test in msgpack module.

Added:
    incubator/directmemory/trunk/serializers/msgpack/src/test/java/org/
    incubator/directmemory/trunk/serializers/msgpack/src/test/java/org/apache/
    
incubator/directmemory/trunk/serializers/msgpack/src/test/java/org/apache/directmemory/
    
incubator/directmemory/trunk/serializers/msgpack/src/test/java/org/apache/directmemory/serialization/
    
incubator/directmemory/trunk/serializers/msgpack/src/test/java/org/apache/directmemory/serialization/msgpack/
    
incubator/directmemory/trunk/serializers/msgpack/src/test/java/org/apache/directmemory/serialization/msgpack/MessagePackSerializerTest.java
   (with props)
Modified:
    
incubator/directmemory/trunk/serializers/msgpack/src/main/java/org/apache/directmemory/serialization/msgpack/MessagePackSerializer.java
    
incubator/directmemory/trunk/serializers/msgpack/src/main/resources/META-INF/services/org.apache.directmemory.serialization.Serializer

Modified: 
incubator/directmemory/trunk/serializers/msgpack/src/main/java/org/apache/directmemory/serialization/msgpack/MessagePackSerializer.java
URL: 
http://svn.apache.org/viewvc/incubator/directmemory/trunk/serializers/msgpack/src/main/java/org/apache/directmemory/serialization/msgpack/MessagePackSerializer.java?rev=1292236&r1=1292235&r2=1292236&view=diff
==============================================================================
--- 
incubator/directmemory/trunk/serializers/msgpack/src/main/java/org/apache/directmemory/serialization/msgpack/MessagePackSerializer.java
 (original)
+++ 
incubator/directmemory/trunk/serializers/msgpack/src/main/java/org/apache/directmemory/serialization/msgpack/MessagePackSerializer.java
 Wed Feb 22 10:59:13 2012
@@ -19,13 +19,13 @@ package org.apache.directmemory.serializ
  * under the License.
  */
 
-import java.io.IOException;
-
 import org.apache.directmemory.serialization.Serializer;
-import org.kohsuke.MetaInfServices;
 import org.msgpack.MessagePack;
+import org.msgpack.MessageTypeException;
 import org.msgpack.annotation.Message;
 
+import java.io.IOException;
+
 // olamy currently this doesn't work so use manual file
 //@MetaInfServices
 public final class MessagePackSerializer
@@ -43,11 +43,7 @@ public final class MessagePackSerializer
     {
         Class<?> clazz = obj.getClass();
 
-        if ( !clazz.isAnnotationPresent( Message.class )
-                        && msgpack.lookup( clazz ) == null )
-        {
-            msgpack.register( clazz );
-        }
+        checkRegiterNeeded( clazz );
 
         return msgpack.write( obj );
     }
@@ -59,7 +55,28 @@ public final class MessagePackSerializer
     public <T> T deserialize( byte[] source, Class<T> clazz )
         throws IOException, ClassNotFoundException, InstantiationException, 
IllegalAccessException
     {
+        checkRegiterNeeded( clazz );
         return msgpack.read( source, clazz );
     }
 
+    private void checkRegiterNeeded( Class<?> clazz )
+    {
+        if ( clazz.isAnnotationPresent( Message.class ) )
+        {
+            return;
+        }
+        try
+        {
+            if ( msgpack.lookup( clazz ) != null )
+            {
+                return;
+            }
+        }
+        catch ( MessageTypeException e )
+        {
+            // ignore as register needed
+        }
+        msgpack.register( clazz );
+    }
+
 }

Modified: 
incubator/directmemory/trunk/serializers/msgpack/src/main/resources/META-INF/services/org.apache.directmemory.serialization.Serializer
URL: 
http://svn.apache.org/viewvc/incubator/directmemory/trunk/serializers/msgpack/src/main/resources/META-INF/services/org.apache.directmemory.serialization.Serializer?rev=1292236&r1=1292235&r2=1292236&view=diff
==============================================================================
--- 
incubator/directmemory/trunk/serializers/msgpack/src/main/resources/META-INF/services/org.apache.directmemory.serialization.Serializer
 (original)
+++ 
incubator/directmemory/trunk/serializers/msgpack/src/main/resources/META-INF/services/org.apache.directmemory.serialization.Serializer
 Wed Feb 22 10:59:13 2012
@@ -15,4 +15,4 @@
  # specific language governing permissions and limitations
  # under the License.
 
-org.apache.directmemory.serialization.StandardSerializer
+org.apache.directmemory.serialization.msgpack.MessagePackSerializer

Added: 
incubator/directmemory/trunk/serializers/msgpack/src/test/java/org/apache/directmemory/serialization/msgpack/MessagePackSerializerTest.java
URL: 
http://svn.apache.org/viewvc/incubator/directmemory/trunk/serializers/msgpack/src/test/java/org/apache/directmemory/serialization/msgpack/MessagePackSerializerTest.java?rev=1292236&view=auto
==============================================================================
--- 
incubator/directmemory/trunk/serializers/msgpack/src/test/java/org/apache/directmemory/serialization/msgpack/MessagePackSerializerTest.java
 (added)
+++ 
incubator/directmemory/trunk/serializers/msgpack/src/test/java/org/apache/directmemory/serialization/msgpack/MessagePackSerializerTest.java
 Wed Feb 22 10:59:13 2012
@@ -0,0 +1,34 @@
+package org.apache.directmemory.serialization.msgpack;
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
+import org.apache.directmemory.test.AbstractSerializerTest;
+
+/**
+ * @author Olivier Lamy
+ */
+public class MessagePackSerializerTest
+    extends AbstractSerializerTest
+{
+    @Override
+    public String getSerializerClassName()
+    {
+        return MessagePackSerializer.class.getName();
+    }
+}

Propchange: 
incubator/directmemory/trunk/serializers/msgpack/src/test/java/org/apache/directmemory/serialization/msgpack/MessagePackSerializerTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/directmemory/trunk/serializers/msgpack/src/test/java/org/apache/directmemory/serialization/msgpack/MessagePackSerializerTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision


Reply via email to