Adds beans and configs
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / pz2utils4jsf / pazpar2 / CommandThread.java
1 package com.indexdata.pz2utils4jsf.pazpar2;\r
2 \r
3 import java.io.ByteArrayOutputStream;\r
4 import java.io.IOException;\r
5 \r
6 import org.apache.log4j.Logger;\r
7 \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
13 \r
14 public class CommandThread extends Thread {\r
15 \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
21   \r
22   public CommandThread (Pazpar2Command command, Pazpar2Client client) {\r
23     this.command = command;\r
24     this.client = client;\r
25   }\r
26   \r
27   public void run() {\r
28     ClientCommand clientCommand = new ClientCommand(command.getName(), command.getEncodedQueryString());\r
29     if (command.getName().equals("search")) {\r
30       client.setSearchCommand(clientCommand);\r
31     }\r
32     try {\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
44     }\r
45   }\r
46   \r
47   public String getResponse () {\r
48     return response.toString();\r
49   }\r
50   \r
51   public Pazpar2Command getCommand() {\r
52     return command;\r
53   }\r
54 \r
55 }\r