1 package com.indexdata.pz2utils4jsf.pazpar2;
\r
3 import java.io.ByteArrayOutputStream;
\r
4 import java.io.IOException;
\r
6 import org.apache.log4j.Logger;
\r
8 import com.indexdata.pz2utils4jsf.pazpar2.CommandThread;
\r
9 import com.indexdata.pz2utils4jsf.pazpar2.Pazpar2Command;
\r
10 import com.indexdata.masterkey.pazpar2.client.ClientCommand;
\r
11 import com.indexdata.masterkey.pazpar2.client.Pazpar2Client;
\r
12 import com.indexdata.masterkey.pazpar2.client.exceptions.Pazpar2ErrorException;
\r
14 public class CommandThread extends Thread {
\r
16 private static Logger logger = Logger.getLogger(CommandThread.class);
\r
17 Pazpar2Command command;
\r
18 Pazpar2Client client;
\r
19 private ByteArrayOutputStream baos = new ByteArrayOutputStream();
\r
20 private StringBuilder response = new StringBuilder("");
\r
22 public CommandThread (Pazpar2Command command, Pazpar2Client client) {
\r
23 this.command = command;
\r
24 this.client = client;
\r
28 ClientCommand clientCommand = new ClientCommand(command.getName(), command.getEncodedQueryString());
\r
29 if (command.getName().equals("search")) {
\r
30 client.setSearchCommand(clientCommand);
\r
33 long start = System.currentTimeMillis();
\r
34 client.executeCommand(clientCommand, baos);
\r
35 response.append(baos.toString("UTF-8"));
\r
36 long end = System.currentTimeMillis();
\r
37 logger.debug("Executed " + command.getName() + " in " + (end-start) + " ms." );
\r
38 } catch (IOException e) {
\r
39 // TODO Auto-generated catch block
\r
40 e.printStackTrace();
\r
41 } catch (Pazpar2ErrorException e) {
\r
42 // TODO Auto-generated catch block
\r
43 e.printStackTrace();
\r
47 public String getResponse () {
\r
48 return response.toString();
\r
51 public Pazpar2Command getCommand() {
\r