Author: dieppe
Date: 2008-04-13 18:43:55 +0000 (Sun, 13 Apr 2008)
New Revision: 19269

Modified:
   trunk/apps/thingamablog/src/net/sf/thingamablog/transport/FCPTransport.java
Log:
Hopefully fix the publish process when the node is not local (using 
direct method instead disk one)



Modified: 
trunk/apps/thingamablog/src/net/sf/thingamablog/transport/FCPTransport.java
===================================================================
--- trunk/apps/thingamablog/src/net/sf/thingamablog/transport/FCPTransport.java 
2008-04-13 17:25:56 UTC (rev 19268)
+++ trunk/apps/thingamablog/src/net/sf/thingamablog/transport/FCPTransport.java 
2008-04-13 18:43:55 UTC (rev 19269)
@@ -132,12 +132,19 @@
         for(Enumeration e = ht.keys() ; e.hasMoreElements() ;) {
             Object element = e.nextElement();
             File file = (File)element;
-            String path = ((String) 
ht.get(element)).substring(arcPath.length());
-            FileEntry fileEntry = createFileEntry(file, edition, path);        
    
-            if (fileEntry != null) {
-                System.out.println("File to insert : " + 
fileEntry.getFilename());
-                totalBytes += file.length();
-                putDir.addFileEntry(fileEntry);
+            long[] fileLength = new long[1];
+            try {
+                InputStream fileEntryInputStream = createFileInputStream(file, 
fileLength);
+                String path = ((String) 
ht.get(element)).substring(arcPath.length());
+                FileEntry fileEntry = createDirectFileEntry(file.getName(), 
fileEntryInputStream, fileLength);
+//              FileEntry fileEntry = createDiskFileEntry(file, path);         
   
+                if (fileEntry != null) {
+                    System.out.println("File to insert : " + 
fileEntry.getFilename());
+                    totalBytes += fileLength[0];
+                    putDir.addFileEntry(fileEntry);
+                }
+            } catch (IOException ex) {
+                logger.log(Level.WARNING, ex.getMessage());
             }
         }
         // If there is an active link set, we publish it
@@ -191,13 +198,24 @@
         return success;
     }

-    private FileEntry createFileEntry(File file, int edition, String path){
+    private FileEntry createDiskFileEntry(File file, String path){
         String content = DefaultMIMETypes.guessMIMEType(file.getName());
         System.out.println("File path : " + file.getPath());
         FileEntry fileEntry = new DiskFileEntry(path + file.getName(), 
content, file.getPath());
         return fileEntry;
     }

+    private FileEntry createDirectFileEntry(String filename, InputStream 
fileEntryInputStream, long[] fileLength){
+        String content = DefaultMIMETypes.guessMIMEType(filename);
+        FileEntry fileEntry = new DirectFileEntry(filename, content, 
fileEntryInputStream, fileLength[0]);
+        return fileEntry;
+    }
+        
+    private InputStream createFileInputStream(File file, long[] length) throws 
IOException {
+        length[0] = file.length();
+        return new FileInputStream(file);
+    }
+    
     public void setNode(String hostname, int port) {
         this.hostname = hostname;
         this.port = port;


Reply via email to