X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fcom%2Findexdata%2Fpz2utils4jsf%2Fpazpar2%2FCommandThread.java;h=323ef782df235763165dbaf4fef54f5317219ce6;hb=977e4983e28683dd8a7d9fd19b0daee3ac349a3a;hp=ea5298801fb9a2c8d41f93097d892bcef9304771;hpb=2aa1c4adceb245c1f59f62e9adb77fda9f02291a;p=mkjsf-moved-to-github.git diff --git a/src/main/java/com/indexdata/pz2utils4jsf/pazpar2/CommandThread.java b/src/main/java/com/indexdata/pz2utils4jsf/pazpar2/CommandThread.java index ea52988..323ef78 100644 --- a/src/main/java/com/indexdata/pz2utils4jsf/pazpar2/CommandThread.java +++ b/src/main/java/com/indexdata/pz2utils4jsf/pazpar2/CommandThread.java @@ -5,21 +5,19 @@ import java.io.IOException; import org.apache.log4j.Logger; -import com.indexdata.masterkey.pazpar2.client.ClientCommand; -import com.indexdata.masterkey.pazpar2.client.Pazpar2Client; -import com.indexdata.masterkey.pazpar2.client.Pazpar2HttpResponse; import com.indexdata.masterkey.pazpar2.client.exceptions.Pazpar2ErrorException; +import com.indexdata.pz2utils4jsf.pazpar2.commands.Pazpar2Command; import com.indexdata.pz2utils4jsf.pazpar2.data.CommandError; public class CommandThread extends Thread { private static Logger logger = Logger.getLogger(CommandThread.class); Pazpar2Command command; - Pazpar2Client client; + SearchClient client; private ByteArrayOutputStream baos = new ByteArrayOutputStream(); private StringBuilder response = new StringBuilder(""); - public CommandThread (Pazpar2Command command, Pazpar2Client client) { + public CommandThread (Pazpar2Command command, SearchClient client) { this.command = command; this.client = client; } @@ -35,18 +33,22 @@ public class CommandThread extends Thread { * */ public void run() { - ClientCommand clientCommand = new ClientCommand(command.getName(), command.getEncodedQueryString()); + if (command.getName().equals("search")) { - client.setSearchCommand(clientCommand); + client.setSearchCommand(command); } try { long start = System.currentTimeMillis(); - Pazpar2HttpResponse httpResponse = client.executeCommand(clientCommand, baos); - if (httpResponse.getStatusCode()==200) { - response.append(baos.toString("UTF-8")); + CommandResponse commandResponse = client.executeCommand(command, baos); + if (commandResponse.getStatusCode()==200) { + response.append(commandResponse.getResponseString()); + } else if (commandResponse.getStatusCode()==417) { + logger.error("Pazpar2 status code 417: " + baos.toString("UTF-8")); + response.append(CommandError.insertPazpar2ErrorXml(command.getName(), "Expectation failed (417)", commandResponse.getResponseString())); } else { String resp = baos.toString("UTF-8"); - throw new Pazpar2ErrorException(resp,httpResponse.getStatusCode(),resp,null); + logger.error("Pazpar2 status code was " + commandResponse.getStatusCode() + ": " + resp); + throw new Pazpar2ErrorException(resp,commandResponse.getStatusCode(),resp,null); } long end = System.currentTimeMillis(); logger.debug("Executed " + command.getName() + " in " + (end-start) + " ms." );