Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 23 additions & 25 deletions src/main/java/org/purl/sword/client/Client.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,30 +36,17 @@
*/
package org.purl.sword.client;

import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.auth.AuthScope;
import org.apache.commons.httpclient.methods.*;
import org.apache.log4j.Logger;
import org.purl.sword.base.*;

import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
import java.security.NoSuchAlgorithmException;

import java.util.Properties;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.UsernamePasswordCredentials;
import org.apache.commons.httpclient.auth.AuthScope;
import org.apache.commons.httpclient.methods.FileRequestEntity;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.InputStreamRequestEntity;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.log4j.Logger;
import org.purl.sword.base.ChecksumUtils;
import org.purl.sword.base.DepositResponse;
import org.purl.sword.base.HttpHeaders;
import org.purl.sword.base.SWORDErrorDocument;
import org.purl.sword.base.ServiceDocument;
import org.purl.sword.base.SwordValidationInfo;
import org.purl.sword.base.UnmarshallException;

/**
* This is an example Client implementation to demonstrate how to connect to a
Expand Down Expand Up @@ -371,7 +358,12 @@ public DepositResponse postFile(PostMessage message)

try {
if (message.isUseMD5()) {
String md5 = ChecksumUtils.generateMD5(message.getFilepath());
String md5;
if(message.getRecord()==null){
md5= ChecksumUtils.generateMD5(message.getFilepath());
}else{
md5=ChecksumUtils.generateMD5(message.getRecord());
}
if (message.getChecksumError()) {
md5 = "1234567890";
}
Expand All @@ -382,7 +374,7 @@ public DepositResponse postFile(PostMessage message)
}
}

String filename = message.getFilename();
String filename = message.getFilepath()==null ? "" : message.getFilename();
if (! "".equals(filename)) {
httppost.addRequestHeader(new Header(
HttpHeaders.CONTENT_DISPOSITION, " filename="
Expand Down Expand Up @@ -422,10 +414,16 @@ public DepositResponse postFile(PostMessage message)
httppost.addRequestHeader(new Header(
HttpHeaders.USER_AGENT, userAgent));
}


FileRequestEntity requestEntity = new FileRequestEntity(
new File(message.getFilepath()), message.getFiletype());

RequestEntity requestEntity;
if(message.getRecord() != null){
requestEntity = new ByteArrayRequestEntity(
message.getRecord(), message.getFiletype());

}else{
requestEntity = new FileRequestEntity(
new File(message.getFilepath()), message.getFiletype());
}
httppost.setRequestEntity(requestEntity);

client.executeMethod(httppost);
Expand Down
22 changes: 21 additions & 1 deletion src/main/java/org/purl/sword/client/PostMessage.java
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,9 @@ public class PostMessage
/**
* True if the verbose operation is requested.
*/
private boolean verbose;
private boolean verbose;

private byte[] record;

/**
* The packaging format for the deposit.
Expand Down Expand Up @@ -177,6 +179,24 @@ public void setFilepath(String filepath)
this.filepath = filepath;
}

/**
* Get the record. This is returned as a byte array
*/
public byte[] getRecord()
{

return record;
}

/**
* Set the record.
*
* @param rec The record byte array.
*/
public void setRecord(byte[] rec)
{
this.record = rec;
}
/**
* Get the destination collection.
*
Expand Down