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();