ozeigermann    2004/12/13 08:50:21

  Modified:    src/share/org/apache/slide/content NodeRevisionContent.java
  Log:
  Added means to resuse streams by buffering them to a temporary file.
  
  Revision  Changes    Path
  1.17      +29 -5     
jakarta-slide/src/share/org/apache/slide/content/NodeRevisionContent.java
  
  Index: NodeRevisionContent.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/src/share/org/apache/slide/content/NodeRevisionContent.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- NodeRevisionContent.java  28 Jul 2004 09:37:55 -0000      1.16
  +++ NodeRevisionContent.java  13 Dec 2004 16:50:21 -0000      1.17
  @@ -23,11 +23,17 @@
   
   package org.apache.slide.content;
   
  +import java.io.BufferedInputStream;
  +import java.io.BufferedOutputStream;
   import java.io.ByteArrayInputStream;
   import java.io.CharArrayReader;
  +import java.io.File;
  +import java.io.FileInputStream;
  +import java.io.FileOutputStream;
   import java.io.IOException;
   import java.io.InputStream;
   import java.io.InputStreamReader;
  +import java.io.OutputStream;
   import java.io.Reader;
   import java.io.Serializable;
   import java.util.ArrayList;
  @@ -36,6 +42,8 @@
   import org.apache.slide.common.ObjectValidationFailedException;
   import org.apache.slide.util.Messages;
   
  +import org.apache.commons.transaction.util.FileHelper;
  +
   /**
    * Encapsultes the contents of a revision.
    *
  @@ -284,7 +292,23 @@
           this.contentBytes = null;
       }
   
  -
  +    public long bufferContent(InputStream is) throws IOException {
  +        File buffer = File.createTempFile("content_", null);
  +        OutputStream os = new BufferedOutputStream(new 
FileOutputStream(buffer));
  +        try {
  +            long length = FileHelper.globalBufferCopy(is, os);
  +            InputStream bis = new BufferedInputStream(new 
FileInputStream(buffer));
  +            setContent(bis);
  +            return length;
  +        } finally {
  +            try {
  +                is.close();
  +            } finally {
  +                os.close();
  +            }
  +        }
  +    }
  +    
       // TODO : Add real serialization support
   
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to