Author: nextgens
Date: 2008-10-02 20:22:20 +0000 (Thu, 02 Oct 2008)
New Revision: 22917

Modified:
   trunk/freenet/src/freenet/client/ArchiveManager.java
   trunk/freenet/src/freenet/client/HighLevelSimpleClientImpl.java
   trunk/freenet/src/freenet/client/Metadata.java
   trunk/freenet/src/freenet/client/async/SimpleManifestPutter.java
   trunk/freenet/src/freenet/client/async/SingleFileFetcher.java
   trunk/freenet/src/freenet/client/async/SingleFileInserter.java
   trunk/freenet/src/freenet/client/async/SplitFileInserter.java
   trunk/freenet/src/freenet/node/fcp/ClientPut.java
Log:
fix bug #71: enable TAR archive manifests by default.

*** IT NEEDS TESTING! ***
Freesites inserted using this build won't be fetchable from a stable node.

Modified: trunk/freenet/src/freenet/client/ArchiveManager.java
===================================================================
--- trunk/freenet/src/freenet/client/ArchiveManager.java        2008-10-02 
19:36:20 UTC (rev 22916)
+++ trunk/freenet/src/freenet/client/ArchiveManager.java        2008-10-02 
20:22:20 UTC (rev 22917)
@@ -81,7 +81,7 @@
                }

                public final static ARCHIVE_TYPE getDefault() {
-                       return ZIP;
+                       return TAR;
                }
        }


Modified: trunk/freenet/src/freenet/client/HighLevelSimpleClientImpl.java
===================================================================
--- trunk/freenet/src/freenet/client/HighLevelSimpleClientImpl.java     
2008-10-02 19:36:20 UTC (rev 22916)
+++ trunk/freenet/src/freenet/client/HighLevelSimpleClientImpl.java     
2008-10-02 20:22:20 UTC (rev 22917)
@@ -166,7 +166,7 @@
        }

        public FreenetURI insertRedirect(FreenetURI insertURI, FreenetURI 
targetURI) throws InsertException {
-               Metadata m = new Metadata(Metadata.SIMPLE_REDIRECT, targetURI, 
new ClientMetadata());
+               Metadata m = new Metadata(Metadata.SIMPLE_REDIRECT, (short)-1, 
targetURI, new ClientMetadata());
                Bucket b;
                try {
                        b = BucketTools.makeImmutableBucket(bucketFactory, 
m.writeToByteArray());

Modified: trunk/freenet/src/freenet/client/Metadata.java
===================================================================
--- trunk/freenet/src/freenet/client/Metadata.java      2008-10-02 19:36:20 UTC 
(rev 22916)
+++ trunk/freenet/src/freenet/client/Metadata.java      2008-10-02 20:22:20 UTC 
(rev 22917)
@@ -388,7 +388,7 @@
                        if(o instanceof String) {
                                // External redirect
                                FreenetURI uri = new FreenetURI((String)o);
-                               target = new Metadata(SIMPLE_REDIRECT, uri, 
null);
+                               target = new Metadata(SIMPLE_REDIRECT, (short) 
-1, uri, null);
                        } else if(o instanceof HashMap) {
                                target = new Metadata();
                                target.addRedirectionManifest((HashMap)o);
@@ -471,7 +471,7 @@
                        Metadata target;
                        if(o instanceof String) {
                                // Zip internal redirect
-                               target = new 
Metadata(ARCHIVE_INTERNAL_REDIRECT, prefix+key, new 
ClientMetadata(DefaultMIMETypes.guessMIMEType(key, false)));
+                               target = new 
Metadata(ARCHIVE_INTERNAL_REDIRECT, (short)-1, prefix+key, new 
ClientMetadata(DefaultMIMETypes.guessMIMEType(key, false)));
                        } else if(o instanceof HashMap) {
                                target = new Metadata((HashMap)o, 
prefix+key+"/");
                        } else throw new IllegalArgumentException("Not String 
nor HashMap: "+o);
@@ -486,9 +486,10 @@
         * @param arg The argument; in the case of ZIP_INTERNAL_REDIRECT, the 
filename in
         * the archive to read from.
         */
-       public Metadata(byte docType, String arg, ClientMetadata cm) {
+       public Metadata(byte docType, short archiveType, String arg, 
ClientMetadata cm) {
                if(docType == ARCHIVE_INTERNAL_REDIRECT) {
                        documentType = docType;
+                       this.archiveType = archiveType;
                        // Determine MIME type
                        this.clientMetadata = cm;
                        if(cm != null)
@@ -504,10 +505,10 @@
         * @param uri The URI pointed to.
         * @param cm The client metadata, if any.
         */
-       public Metadata(byte docType, FreenetURI uri, ClientMetadata cm) {
+       public Metadata(byte docType, short archiveType, FreenetURI uri, 
ClientMetadata cm) {
                if((docType == SIMPLE_REDIRECT) || (docType == 
ARCHIVE_MANIFEST)) {
                        documentType = docType;
-                       archiveType = ARCHIVE_TYPE.getDefault().metadataID;
+                       this.archiveType = archiveType;
                        clientMetadata = cm;
                        if((cm != null) && !cm.isTrivial()) {
                                setMIMEType(cm.getMIMEType());
@@ -523,13 +524,14 @@
        }

        public Metadata(short algo, ClientCHK[] dataURIs, ClientCHK[] 
checkURIs, int segmentSize, int checkSegmentSize, 
-                       ClientMetadata cm, long dataLength, short 
compressionAlgo, long decompressedLength, boolean isMetadata, boolean 
insertAsArchiveManifest) {
+                       ClientMetadata cm, long dataLength, short 
compressionAlgo, long decompressedLength, boolean isMetadata, boolean 
insertAsArchiveManifest, short archiveType) {
                if(isMetadata)
                        documentType = MULTI_LEVEL_METADATA;
                else {
-                       if(insertAsArchiveManifest)
+                       if(insertAsArchiveManifest) {
                                documentType = ARCHIVE_MANIFEST;
-                       else documentType = SIMPLE_REDIRECT;
+                               this.archiveType = archiveType;
+                       } else documentType = SIMPLE_REDIRECT;
                }
                splitfile = true;
                splitfileAlgorithm = algo;
@@ -825,7 +827,7 @@
                                        if(data.length > Short.MAX_VALUE) {
                                                FreenetURI uri = 
meta.resolvedURI;
                                                if(uri != null) {
-                                                       meta = new 
Metadata(SIMPLE_REDIRECT, uri, null);
+                                                       meta = new 
Metadata(SIMPLE_REDIRECT, (short)-1,  uri, null);
                                                        data = 
meta.writeToByteArray();
                                                } else {
                                                        kill = true;

Modified: trunk/freenet/src/freenet/client/async/SimpleManifestPutter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SimpleManifestPutter.java    
2008-10-02 19:36:20 UTC (rev 22916)
+++ trunk/freenet/src/freenet/client/async/SimpleManifestPutter.java    
2008-10-02 20:22:20 UTC (rev 22917)
@@ -49,7 +49,7 @@
                        super(smp.getPriorityClass(), smp.chkScheduler, 
smp.sskScheduler, smp.client);
                        this.cm = cm;
                        this.data = null;
-                       Metadata m = new Metadata(Metadata.SIMPLE_REDIRECT, 
target, cm);
+                       Metadata m = new Metadata(Metadata.SIMPLE_REDIRECT, 
(short)-1, target, cm);
                        metadata = m;
                        origSFI = null;
                }
@@ -59,7 +59,7 @@
                        this.cm = cm;
                        this.data = data;
                        this.targetInArchive = targetInArchive;
-                       Metadata m = new 
Metadata(Metadata.ARCHIVE_INTERNAL_REDIRECT, targetInArchive, cm);
+                       Metadata m = new 
Metadata(Metadata.ARCHIVE_INTERNAL_REDIRECT, (short)-1, targetInArchive, cm);
                        metadata = m;
                        origSFI = null;
                }
@@ -118,7 +118,7 @@
                                // The file was too small to have its own 
metadata, we get this instead.
                                // So we make the key into metadata.
                                Metadata m =
-                                       new Metadata(Metadata.SIMPLE_REDIRECT, 
key.getURI(), cm);
+                                       new Metadata(Metadata.SIMPLE_REDIRECT, 
(short) -1, key.getURI(), cm);
                                onMetadata(m, null);
                        }
                }

Modified: trunk/freenet/src/freenet/client/async/SingleFileFetcher.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SingleFileFetcher.java       
2008-10-02 19:36:20 UTC (rev 22916)
+++ trunk/freenet/src/freenet/client/async/SingleFileFetcher.java       
2008-10-02 20:22:20 UTC (rev 22917)
@@ -107,7 +107,7 @@
                this.actx = fetcher.actx;
                this.ah = fetcher.ah;
                this.archiveMetadata = fetcher.archiveMetadata;
-               this.clientMetadata = (ClientMetadata) 
fetcher.clientMetadata.clone();
+               this.clientMetadata = (fetcher.clientMetadata != null ? 
(ClientMetadata) fetcher.clientMetadata.clone() : null);
                this.metadata = newMeta;
                this.metaStrings = new LinkedList();
                this.addedMetaStrings = 0;

Modified: trunk/freenet/src/freenet/client/async/SingleFileInserter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SingleFileInserter.java      
2008-10-02 19:36:20 UTC (rev 22916)
+++ trunk/freenet/src/freenet/client/async/SingleFileInserter.java      
2008-10-02 20:22:20 UTC (rev 22917)
@@ -1,5 +1,6 @@
 package freenet.client.async;

+import freenet.client.ArchiveManager.ARCHIVE_TYPE;
 import java.io.IOException;
 import java.net.MalformedURLException;
 import java.util.HashMap;
@@ -294,7 +295,7 @@
        }

        private Metadata makeMetadata(FreenetURI uri) {
-               Metadata meta = new Metadata(insertAsArchiveManifest ? 
Metadata.ARCHIVE_MANIFEST : Metadata.SIMPLE_REDIRECT, uri, 
block.clientMetadata);
+               Metadata meta = new Metadata(insertAsArchiveManifest ? 
Metadata.ARCHIVE_MANIFEST : Metadata.SIMPLE_REDIRECT, 
ARCHIVE_TYPE.getDefault().metadataID, uri, block.clientMetadata);
                if(targetFilename != null) {
                        HashMap hm = new HashMap();
                        hm.put(targetFilename, meta);

Modified: trunk/freenet/src/freenet/client/async/SplitFileInserter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SplitFileInserter.java       
2008-10-02 19:36:20 UTC (rev 22916)
+++ trunk/freenet/src/freenet/client/async/SplitFileInserter.java       
2008-10-02 20:22:20 UTC (rev 22917)
@@ -3,6 +3,7 @@
  * http://www.gnu.org/ for further details of the GPL. */
 package freenet.client.async;

+import freenet.client.ArchiveManager.ARCHIVE_TYPE;
 import java.io.IOException;
 import java.util.Vector;

@@ -290,7 +291,7 @@

                        if(!missingURIs) {
                                // Create Metadata
-                               m = new Metadata(splitfileAlgorithm, dataURIs, 
checkURIs, segmentSize, checkSegmentSize, cm, dataLength, compressionCodec, 
decompressedLength, isMetadata, insertAsArchiveManifest);
+                               m = new Metadata(splitfileAlgorithm, dataURIs, 
checkURIs, segmentSize, checkSegmentSize, cm, dataLength, compressionCodec, 
decompressedLength, isMetadata, insertAsArchiveManifest, 
ARCHIVE_TYPE.getDefault().metadataID);
                        }
                        haveSentMetadata = true;
                }

Modified: trunk/freenet/src/freenet/node/fcp/ClientPut.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientPut.java   2008-10-02 19:36:20 UTC 
(rev 22916)
+++ trunk/freenet/src/freenet/node/fcp/ClientPut.java   2008-10-02 20:22:20 UTC 
(rev 22917)
@@ -123,7 +123,7 @@
                if(logMINOR) Logger.minor(this, "data = "+tempData+", 
uploadFrom = "+ClientPutMessage.uploadFromString(uploadFrom));
                if(uploadFrom == ClientPutMessage.UPLOAD_FROM_REDIRECT) {
                        this.targetURI = redirectTarget;
-                       Metadata m = new Metadata(Metadata.SIMPLE_REDIRECT, 
targetURI, cm);
+                       Metadata m = new Metadata(Metadata.SIMPLE_REDIRECT, 
(short)-1, targetURI, cm);
                        byte[] d;
                        try {
                                d = m.writeToByteArray();
@@ -205,7 +205,7 @@
                if(logMINOR) Logger.minor(this, "data = "+tempData+", 
uploadFrom = "+ClientPutMessage.uploadFromString(uploadFrom));
                if(uploadFrom == ClientPutMessage.UPLOAD_FROM_REDIRECT) {
                        this.targetURI = message.redirectTarget;
-                       Metadata m = new Metadata(Metadata.SIMPLE_REDIRECT, 
targetURI, cm);
+                       Metadata m = new Metadata(Metadata.SIMPLE_REDIRECT, 
(short)-1, targetURI, cm);
                        byte[] d;
                        try {
                                d = m.writeToByteArray();
@@ -326,7 +326,7 @@
                        targetURI = new FreenetURI(target);
                        if(logMINOR)
                                Logger.minor(this, "Uploading from redirect for 
"+this+" : "+targetURI);
-                       Metadata m = new Metadata(Metadata.SIMPLE_REDIRECT, 
targetURI, cm);
+                       Metadata m = new Metadata(Metadata.SIMPLE_REDIRECT, 
(short)-1, targetURI, cm);
                        byte[] d;
                        try {
                                d = m.writeToByteArray();


Reply via email to