[jboss-cvs] JBossCache/src/org/jboss/cache/marshall ...

Galder Zamarreno galder.zamarreno at jboss.com
Fri Jan 12 12:02:02 EST 2007


  User: gzamarreno
  Date: 07/01/12 12:02:02

  Modified:    src/org/jboss/cache/marshall      
                        VersionAwareMarshaller.java CacheMarshaller200.java
                        ObjectSerializationFactory.java
                        JBossObjectStreamFactory.java
                        ObjectStreamFactory.java
                        JavaObjectStreamFactory.java
  Log:
  [JBCACHE-879] Functionality for JDBCacheLoader to use version aware marshalling mechanism instead of standard serialization has been introduced. Previous method has been commented out in case there's a need to revert back to it as profiling/performance study has not finished yet.
  
  Revision  Changes    Path
  1.13      +33 -0     JBossCache/src/org/jboss/cache/marshall/VersionAwareMarshaller.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: VersionAwareMarshaller.java
  ===================================================================
  RCS file: /cvsroot/jboss/JBossCache/src/org/jboss/cache/marshall/VersionAwareMarshaller.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -b -r1.12 -r1.13
  --- VersionAwareMarshaller.java	2 Jan 2007 13:13:20 -0000	1.12
  +++ VersionAwareMarshaller.java	12 Jan 2007 17:02:02 -0000	1.13
  @@ -14,6 +14,7 @@
   import java.io.ByteArrayOutputStream;
   import java.io.ObjectInputStream;
   import java.io.ObjectOutputStream;
  +import java.io.InputStream;
   import java.util.HashMap;
   import java.util.Map;
   import java.util.StringTokenizer;
  @@ -23,6 +24,7 @@
    * which is version-aware.
    *
    * @author <a href="mailto:manik at jboss.org">Manik Surtani (manik at jboss.org)</a>
  + * @author <a href="mailto:galder.zamarreno at jboss.com">Galder Zamarreno</a>
    */
   public class VersionAwareMarshaller implements RpcDispatcher.Marshaller
   {
  @@ -163,6 +165,37 @@
      }
   
      /**
  +    * Creates an Object from the InputStream passed in, using the appropriate {@link Marshaller} based
  +    * on the version headers in the byte stream.
  +    *
  +    * @param is
  +    * @return Object from byte buffer passed in.
  +    * @throws Exception
  +    */
  +   public Object objectFromInputStream(InputStream is) throws Exception
  +   {
  +      Marshaller marshaller;
  +      int versionId;
  +      ObjectInputStream in;
  +      try
  +      {
  +         // just a peek - does not actually "remove" these bytes from the stream.
  +         // create an input stream and read the first short
  +         in = ObjectSerializationFactory.createObjectInputStream(is);
  +         versionId = in.readShort();
  +      }
  +      catch (Exception e)
  +      {
  +         log.error("Unable to read version id from first two bytes of stream, barfing.");
  +         throw e;
  +      }
  +
  +      marshaller = getMarshaller(versionId);
  +
  +      return marshaller.objectFromStream(in);
  +   }
  +
  +   /**
       * Lazily instantiates and loads the relevant marshaller for a given version.
       *
       * @param versionId
  
  
  
  1.4       +0 -1      JBossCache/src/org/jboss/cache/marshall/CacheMarshaller200.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: CacheMarshaller200.java
  ===================================================================
  RCS file: /cvsroot/jboss/JBossCache/src/org/jboss/cache/marshall/CacheMarshaller200.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -b -r1.3 -r1.4
  --- CacheMarshaller200.java	12 Jan 2007 15:53:56 -0000	1.3
  +++ CacheMarshaller200.java	12 Jan 2007 17:02:02 -0000	1.4
  @@ -22,7 +22,6 @@
   import java.io.ObjectOutputStream;
   import java.io.Serializable;
   import java.util.ArrayList;
  -import java.util.Collections;
   import java.util.HashMap;
   import java.util.List;
   import java.util.Map;
  
  
  
  1.19      +7 -0      JBossCache/src/org/jboss/cache/marshall/ObjectSerializationFactory.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: ObjectSerializationFactory.java
  ===================================================================
  RCS file: /cvsroot/jboss/JBossCache/src/org/jboss/cache/marshall/ObjectSerializationFactory.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -b -r1.18 -r1.19
  --- ObjectSerializationFactory.java	2 Nov 2006 09:42:09 -0000	1.18
  +++ ObjectSerializationFactory.java	12 Jan 2007 17:02:02 -0000	1.19
  @@ -13,12 +13,14 @@
   import java.io.ObjectInputStream;
   import java.io.ObjectOutputStream;
   import java.io.OutputStream;
  +import java.io.InputStream;
   
   /**
    * Factory class for creating object output and inut streams, switching between JDK defaults and JBoss Serialization classes.
    *
    * @author <a href="mailto:manik at jboss.org">Manik Surtani (manik at jboss.org)</a>
    * @author <a href="mailto:clebert.suconic at jboss.org">Clebert Suconic</a>
  + * @author <a href="mailto:galder.zamarreno at jboss.com">Galder Zamarreno</a>
    */
   public class ObjectSerializationFactory
   {
  @@ -56,6 +58,11 @@
         return factory.createObjectInputStream(bytes);
      }
   
  +   public static ObjectInputStream createObjectInputStream(InputStream in) throws IOException
  +   {
  +      return factory.createObjectInputStream(in);
  +   }
  +
      public static boolean useJBossSerialization()
      {
         return useJBossSerialization;
  
  
  
  1.3       +8 -0      JBossCache/src/org/jboss/cache/marshall/JBossObjectStreamFactory.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: JBossObjectStreamFactory.java
  ===================================================================
  RCS file: /cvsroot/jboss/JBossCache/src/org/jboss/cache/marshall/JBossObjectStreamFactory.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -b -r1.2 -r1.3
  --- JBossObjectStreamFactory.java	2 Nov 2006 09:42:09 -0000	1.2
  +++ JBossObjectStreamFactory.java	12 Jan 2007 17:02:02 -0000	1.3
  @@ -11,7 +11,10 @@
   import java.io.OutputStream;
   
   /**
  + * JBoss implementation of ObjectStreamFactory
  + *
    * @author Clebert Suconic
  + * @author <a href="mailto:galder.zamarreno at jboss.com">Galder Zamarreno</a>
    * @since 1.4.1
    */
   class JBossObjectStreamFactory implements ObjectStreamFactory
  @@ -47,6 +50,11 @@
         return new JBossObjectInputStreamOverride(in);
      }
   
  +   public ObjectInputStream createObjectInputStream(InputStream in) throws IOException
  +   {
  +      return new JBossObjectInputStreamOverride(in);
  +   }
  +
      public ObjectOutputStream createObjectOutputStream(OutputStream out) throws IOException
      {
         return new JBossObjectOutputStreamSharedTree(out);
  
  
  
  1.3       +6 -0      JBossCache/src/org/jboss/cache/marshall/ObjectStreamFactory.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: ObjectStreamFactory.java
  ===================================================================
  RCS file: /cvsroot/jboss/JBossCache/src/org/jboss/cache/marshall/ObjectStreamFactory.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -b -r1.2 -r1.3
  --- ObjectStreamFactory.java	2 Nov 2006 09:42:09 -0000	1.2
  +++ ObjectStreamFactory.java	12 Jan 2007 17:02:02 -0000	1.3
  @@ -4,9 +4,13 @@
   import java.io.ObjectInputStream;
   import java.io.ObjectOutputStream;
   import java.io.OutputStream;
  +import java.io.InputStream;
   
   /**
  + * ObjectStreamFactory
  + *
    * @author Clebert Suconic
  + * @author <a href="mailto:galder.zamarreno at jboss.com">Galder Zamarreno</a>
    * @since 1.4.1
    */
   public interface ObjectStreamFactory
  @@ -14,4 +18,6 @@
      public ObjectOutputStream createObjectOutputStream(OutputStream out) throws IOException;
   
      public ObjectInputStream createObjectInputStream(byte[] bytes) throws IOException;
  +
  +   public ObjectInputStream createObjectInputStream(InputStream in) throws IOException;
   }
  
  
  
  1.3       +9 -0      JBossCache/src/org/jboss/cache/marshall/JavaObjectStreamFactory.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: JavaObjectStreamFactory.java
  ===================================================================
  RCS file: /cvsroot/jboss/JBossCache/src/org/jboss/cache/marshall/JavaObjectStreamFactory.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -b -r1.2 -r1.3
  --- JavaObjectStreamFactory.java	2 Nov 2006 09:42:09 -0000	1.2
  +++ JavaObjectStreamFactory.java	12 Jan 2007 17:02:02 -0000	1.3
  @@ -7,9 +7,13 @@
   import java.io.ObjectInputStream;
   import java.io.ObjectOutputStream;
   import java.io.OutputStream;
  +import java.io.InputStream;
   
   /**
  + * Standard Java implementation of ObjectStreamFactory 
  + *
    * @author Clebert Suconic
  + * @author <a href="mailto:galder.zamarreno at jboss.com">Galder Zamarreno</a>
    * @since 1.4.1
    */
   class JavaObjectStreamFactory implements ObjectStreamFactory
  @@ -21,6 +25,11 @@
         return new MarshalledValueInputStream(in);
      }
   
  +   public ObjectInputStream createObjectInputStream(InputStream in) throws IOException
  +   {
  +      return new MarshalledValueInputStream(in);
  +   }
  +
      public ObjectOutputStream createObjectOutputStream(OutputStream out) throws IOException
      {
         return new ObjectOutputStream(out);
  
  
  



More information about the jboss-cvs-commits mailing list