Adds windowid parameter to SP init command
authorNiels Erik G. Nielsen <nielserik@indexdata.com>
Wed, 12 Jun 2013 00:58:09 +0000 (20:58 -0400)
committerNiels Erik G. Nielsen <nielserik@indexdata.com>
Wed, 12 Jun 2013 00:58:09 +0000 (20:58 -0400)
src/main/java/com/indexdata/mkjsf/pazpar2/ServiceProxyClient.java
src/main/java/com/indexdata/mkjsf/pazpar2/commands/InitCommand.java
src/main/java/com/indexdata/mkjsf/pazpar2/commands/sp/InitCommandSp.java
src/main/java/com/indexdata/mkjsf/pazpar2/commands/sp/InitDocUpload.java

index ace35b1..26e5c9a 100644 (file)
@@ -38,6 +38,7 @@ import com.indexdata.mkjsf.errors.MissingConfigurationContextException;
 import com.indexdata.mkjsf.pazpar2.commands.CommandParameter;\r
 import com.indexdata.mkjsf.pazpar2.commands.Pazpar2Command;\r
 import com.indexdata.mkjsf.pazpar2.commands.sp.AuthCommand;\r
+import com.indexdata.mkjsf.pazpar2.commands.sp.ServiceProxyCommand;\r
 import com.indexdata.mkjsf.pazpar2.data.CommandError;\r
 import com.indexdata.mkjsf.utils.Utils;\r
 \r
@@ -241,8 +242,10 @@ public class ServiceProxyClient implements SearchClient {
     return initDocPaths;\r
   }\r
   \r
-  public HttpResponseWrapper postInitDoc(byte[] initDoc, boolean includeDebug) {\r
-    HttpPost post = new HttpPost(serviceUrl+"?command=init" + (includeDebug? "&includeDebug=yes" : ""));\r
+  public HttpResponseWrapper postInitDoc(byte[] initDoc, Pazpar2Command command) {\r
+    String requestParameters = command.getEncodedQueryString();\r
+    logger.info("Initiating session with init doc and [" + requestParameters +"]");\r
+    HttpPost post = new HttpPost(serviceUrl+"?" + requestParameters);\r
     post.setEntity(new ByteArrayEntity(initDoc));\r
     ClientCommandResponse commandResponse = null;\r
     byte[] response;\r
index ab2e5a1..27958c4 100644 (file)
@@ -74,13 +74,14 @@ public class InitCommand extends Pazpar2Command implements ServiceProxyCommand {
     for (String parameterName : parameters.keySet()) {\r
       newCommand.setParameterInState(parameters.get(parameterName).copy());      \r
     }\r
-    newCommand.spCommand = this.spCommand;\r
+    newCommand.spCommand = new InitCommandSp(this);\r
+    newCommand.spCommand.setUploadedInitDoc(spCommand.getUploadedInitDoc());\r
     return newCommand;\r
   }\r
   \r
   public ServiceProxyCommand getSp() {\r
     if (spCommand==null) {\r
-      spCommand = new InitCommandSp(this);\r
+      spCommand = new InitCommandSp(this);      \r
     } \r
     return spCommand;\r
   }\r
index 1c7748a..1b0ed84 100644 (file)
@@ -11,6 +11,7 @@ import com.indexdata.mkjsf.pazpar2.HttpResponseWrapper;
 import com.indexdata.mkjsf.pazpar2.Pz2Service;\r
 import com.indexdata.mkjsf.pazpar2.commands.CommandParameter;\r
 import com.indexdata.mkjsf.pazpar2.commands.InitCommand;\r
+import com.indexdata.mkjsf.pazpar2.commands.Pazpar2Command;\r
 import com.indexdata.mkjsf.pazpar2.data.ResponseDataObject;\r
 import com.indexdata.mkjsf.pazpar2.data.ResponseParser;\r
 import com.indexdata.mkjsf.pazpar2.data.sp.SpResponseDataObject;\r
@@ -31,7 +32,7 @@ public class InitCommandSp implements Serializable, ServiceProxyCommand {
   private static Logger logger = Logger.getLogger(InitCommandSp.class);\r
   private InitCommand command = null;\r
   \r
-  private InitDocUpload initDocUpload;\r
+  private InitDocUpload initDocUpload = null;\r
 \r
   public InitCommandSp(InitCommand initCommand) {\r
     this.command=initCommand;\r
@@ -66,23 +67,39 @@ public class InitCommandSp implements Serializable, ServiceProxyCommand {
   public SpResponseDataObject run() {\r
     Pz2Service.get().resetSearchAndRecordCommands();\r
     Pz2Service.get().getPzresp().getSp().resetAuthAndBeyond(true);    \r
-    try {\r
-      byte[] bytes = getUploadedInitDoc().getBytes();\r
-      HttpResponseWrapper response = Pz2Service.get().getSpClient().postInitDoc(bytes,getIncludeDebug().equals("yes"));    \r
-      ResponseDataObject responseObject = ResponseParser.getParser().getDataObject((ClientCommandResponse)response);    \r
-      Pz2Service.get().getPzresp().put("init", responseObject);\r
-    } catch (IOException e) {\r
-      // TODO Auto-generated catch block\r
-      e.printStackTrace();\r
+    if (initDocUpload.hasUploadedFile()) {\r
+      try {\r
+        byte[] bytes = getUploadedInitDoc().getBytes();\r
+        HttpResponseWrapper response = Pz2Service.get().getSpClient().postInitDoc(bytes,command);    \r
+        ResponseDataObject responseObject = ResponseParser.getParser().getDataObject((ClientCommandResponse)response);    \r
+        Pz2Service.get().getPzresp().put("init", responseObject);\r
+      } catch (IOException e) {\r
+        // TODO Auto-generated catch block\r
+        e.printStackTrace();\r
+      }\r
+    } else {\r
+      Pz2Service.get().getSpClient().executeCommand(this.command);\r
     }\r
     return null;\r
   }\r
+  \r
+  /**\r
+   * Sets the <code>windowid</code> parameter. See Service Proxy documentation for details.\r
+   */  \r
+  public void setWindowid (String windowid) {\r
+    command.setParameterInState(new CommandParameter("windowid","=",windowid));\r
+  }\r
+  \r
+  /** \r
+   * Returns the <code>windowid</code> parameter value.\r
+   */\r
+  public String getWindowid () {\r
+    return command.getParameterValue("windowid");\r
+  }\r
 \r
   @Override\r
   public boolean spOnly() {\r
     return true;\r
-  }\r
-  \r
-  \r
+  }  \r
   \r
 }\r
index 1d3d228..0b164a2 100644 (file)
@@ -43,5 +43,9 @@ public class InitDocUpload extends FileUpload {
       e.printStackTrace();\r
     }\r
   }\r
+  \r
+  public boolean hasUploadedFile () {\r
+    return uploadedFile != null;\r
+  }\r
 \r
 }\r