[prev in list] [next in list] [prev in thread] [next in thread] 

List:       slide-dev
Subject:    cvs commit: jakarta-slide/src/share/org/apache/slide/util/resources messages.properties
From:       remm () locus ! apache ! org
Date:       2000-08-02 4:28:17
[Download RAW message or body]

remm        00/08/01 21:28:15

  Modified:    src/share/org/apache/slide/store
                        ContentStoreFilesystemImpl.java
               src/share/org/apache/slide/util/resources
                        messages.properties
  Log:
  - Uses InputStream instead of Reader in the FileSystem store
  
  Revision  Changes    Path
  1.4       +58 -46    \
jakarta-slide/src/share/org/apache/slide/store/ContentStoreFilesystemImpl.java  
  Index: ContentStoreFilesystemImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/store/ContentStoreFilesystemImpl.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ContentStoreFilesystemImpl.java	2000/07/27 15:14:47	1.3
  +++ ContentStoreFilesystemImpl.java	2000/08/02 04:28:07	1.4
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/store/ContentStoreFilesystemImpl.java,v \
                1.3 2000/07/27 15:14:47 remm Exp $
  - * $Revision: 1.3 $
  - * $Date: 2000/07/27 15:14:47 $
  + * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/store/ContentStoreFilesystemImpl.java,v \
1.4 2000/08/02 04:28:07 remm Exp $  + * $Revision: 1.4 $
  + * $Date: 2000/08/02 04:28:07 $
    *
    * ====================================================================
    *
  @@ -75,7 +75,7 @@
    * Filesystem implementation of ContentStore.
    * 
    * @author <a href="mailto:remm@exoffice.com">Remy Maucherat</a>
  - * @version $Revision: 1.3 $
  + * @version $Revision: 1.4 $
    */
   public class ContentStoreFilesystemImpl extends ServiceImpl 
       implements ContentStore {
  @@ -205,10 +205,12 @@
           String revisionUri = uri.toString() + "_" + revisionNumber;
           try {
               File file = new File(rootpath + revisionUri);
  +            FileInputStream is = new FileInputStream(file);
               InputStreamReader reader = new InputStreamReader
  -                (new FileInputStream(file), CHARACTER_ENCODING);
  +                (is, CHARACTER_ENCODING);
               result = new NodeRevisionContent();
               result.setContent(reader);
  +            result.setContent(is);
   	} catch (FileNotFoundException e) {
               e.printStackTrace();
               throw new RevisionNotFoundException(uri.toString(), 
  @@ -243,37 +245,40 @@
                   parentFile.mkdirs();
               }
               
  -            boolean created = file.exists();
  +            boolean created = !file.exists();
               if (!created) {
                   throw new RevisionAlreadyExistException
                       (uri.toString(), revisionDescriptor.getRevisionNumber());
               }
               
  -            OutputStreamWriter writer = new OutputStreamWriter
  -                (new FileOutputStream(file), CHARACTER_ENCODING);
  +            InputStream is = revisionContent.streamContent();
               
  -            Reader reader = revisionContent.readContent();
  -            
  -            // We copy 8 ko with each read
  -            char[] buffer = new char[BUFFER_SIZE];
  -            long position = 0;
  -            long contentLength = revisionDescriptor.getContentLength();
  -            
  -            System.out.println("Content length : " + contentLength);
  -            
  -            int nChar = 0;
  -            while (position < contentLength) {
  -                if (contentLength - position > BUFFER_SIZE) {
  -                    nChar = reader.read(buffer, 0, BUFFER_SIZE);
  -                } else {
  -                    nChar = reader.read(buffer, 0, 
  -                                        (int) (contentLength - position));
  +            if (is != null) {
  +                OutputStream os = new FileOutputStream(file);
  +                // We copy 8 ko with each read
  +                byte[] buffer = new byte[BUFFER_SIZE];
  +                long position = 0;
  +                long contentLength = revisionDescriptor.getContentLength();
  +                
  +                int nChar = 0;
  +                while (position < contentLength) {
  +                    nChar = is.read(buffer, 0, BUFFER_SIZE);
  +                    if (nChar == -1) {
  +                        break;
  +                    }
  +                    os.write(buffer, 0, nChar);
  +                    position = position + nChar;
  +                }
  +                is.close();
  +                os.close();
  +                
  +                if (position < contentLength) {
  +                    // Not enough bytes read !!!
  +                    throw new IOException("Not enough bytes read");
                   }
  -                writer.write(buffer, 0, nChar);
  -                position = position + nChar;
  +            } else {
               }
  -            reader.close();
  -            writer.close();
  +            
           } catch (IOException e) {
               e.printStackTrace();
               throw new ServiceAccessException(this, e.getMessage());
  @@ -299,27 +304,34 @@
               + revisionDescriptor.getRevisionNumber();
           try {
               File file = new File(rootpath + revisionUri);
  -            OutputStreamWriter writer = new OutputStreamWriter
  -                (new FileOutputStream(file), CHARACTER_ENCODING);
  -            Reader reader = revisionContent.readContent();
  +            
  +            InputStream is = revisionContent.streamContent();
               
  -            // We copy 8 ko with each read
  -            char[] buffer = new char[BUFFER_SIZE];
  -            long position = 0;
  -            long contentLength = revisionDescriptor.getContentLength();
  -            int nChar = 0;
  -            while (position < contentLength) {
  -                if (contentLength - position > BUFFER_SIZE) {
  -                    nChar = reader.read(buffer, 0, BUFFER_SIZE);
  -                } else {
  -                    nChar = reader.read(buffer, 0, 
  -                                        (int) (contentLength - position));
  +            if (is != null) {
  +                OutputStream os = new FileOutputStream(file);
  +                // We copy 8 ko with each read
  +                byte[] buffer = new byte[BUFFER_SIZE];
  +                long position = 0;
  +                long contentLength = revisionDescriptor.getContentLength();
  +                
  +                int nChar = 0;
  +                while (position < contentLength) {
  +                    nChar = is.read(buffer, 0, BUFFER_SIZE);
  +                    if (nChar == -1) {
  +                        break;
  +                    }
  +                    os.write(buffer, 0, nChar);
  +                    position = position + nChar;
  +                }
  +                is.close();
  +                os.close();
  +                
  +                if (position < contentLength) {
  +                    // Not enough bytes read !!!
  +                    throw new IOException("Not enough bytes read");
                   }
  -                writer.write(buffer, 0, nChar);
  -                position = position + nChar;
  +            } else {
               }
  -            reader.close();
  -            writer.close();
               
           } catch (FileNotFoundException e) {
               e.printStackTrace();
  
  
  
  1.2       +4 -2      \
jakarta-slide/src/share/org/apache/slide/util/resources/messages.properties  
  Index: messages.properties
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/util/resources/messages.properties,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- messages.properties	2000/05/09 02:47:30	1.1
  +++ messages.properties	2000/08/02 04:28:11	1.2
  @@ -1,9 +1,9 @@
   #
   # Slide messages
   #
  -# $Id: messages.properties,v 1.1 2000/05/09 02:47:30 remm Exp $
  +# $Id: messages.properties,v 1.2 2000/08/02 04:28:11 remm Exp $
   #
  -# @version $Revision: 1.1 $ $Date: 2000/05/09 02:47:30 $
  +# @version $Revision: 1.2 $ $Date: 2000/08/02 04:28:11 $
   #
   
   #
  @@ -98,6 +98,8 @@
   #
   # Messages produced by webdav
   #
  +org.apache.slide.webdav.GetMethod.directorylistingfor=\
  +        Directory listing for 
   
   
   #
  
  
  


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic