Moves response objects from pz2 bean to dedicated bean
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / pz2utils4jsf / pazpar2 / Pz2ProxyBean.java
index 15821ea..7651860 100644 (file)
@@ -11,13 +11,9 @@ import javax.inject.Named;
 \r
 import org.apache.log4j.Logger;\r
 \r
-import com.indexdata.pz2utils4jsf.config.Configuration;\r
 import com.indexdata.pz2utils4jsf.config.ConfigurationReader;\r
-import com.indexdata.pz2utils4jsf.pazpar2.commands.SearchCommand;\r
-import com.indexdata.pz2utils4jsf.pazpar2.sp.ForServiceProxy;\r
 import com.indexdata.pz2utils4jsf.pazpar2.sp.ServiceProxyClient;\r
 import com.indexdata.pz2utils4jsf.pazpar2.sp.ServiceProxyInterface;\r
-import com.indexdata.pz2utils4jsf.pazpar2.sp.ServiceProxySession;\r
 import com.indexdata.pz2utils4jsf.pazpar2.sp.auth.ServiceProxyUser;\r
 import com.indexdata.pz2utils4jsf.utils.Utils;\r
 \r
@@ -26,95 +22,101 @@ public class Pz2ProxyBean extends Pz2Bean implements ServiceProxyInterface {
     \r
   private static final long serialVersionUID = 4221824985678758225L;\r
   private static Logger logger = Logger.getLogger(Pz2ProxyBean.class);  \r
+  private String initDocFileName = "";\r
+  private String initDocResponse = "";\r
+  private String serviceProxyUrl = "";  \r
     \r
   @Inject ConfigurationReader configurator;\r
-  @Inject ServiceProxyUser user;  \r
-  @Inject @ForServiceProxy ServiceProxySession pz2;\r
+  @Inject ServiceProxyUser user;    \r
   \r
   public Pz2ProxyBean() {\r
   }\r
   \r
   @PostConstruct\r
-  public void instantiateServiceProxyClient() {\r
-    logger.debug(Utils.objectId(this) + " will instantiate a ServiceProxyClient next.");    \r
-    searchClient = new ServiceProxyClient();\r
-    logger.info("Using [" + Utils.objectId(searchClient) + "] configured by [" \r
-                          + Utils.objectId(configurator) + "] on session [" \r
-                          + Utils.objectId(pz2) + "]" );    \r
-    pz2.configureClient(searchClient,configurator);\r
+  public void postConstruct() {\r
+    if (searchClient == null) {\r
+      logger.debug(Utils.objectId(this) + " will instantiate a ServiceProxyClient next.");    \r
+      searchClient = new ServiceProxyClient();\r
+      logger.info("Using [" + Utils.objectId(searchClient) + "] configured by [" \r
+                            + Utils.objectId(configurator) + "]" );    \r
+      configureClient(searchClient,configurator);\r
+    } else {\r
+      logger.info("Pz2ProxyBean:postConstruct: searchClient already instantiated " +\r
+                       "during construction of parent object Pz2Bean.");\r
+    }\r
   }\r
 \r
   @Override\r
   public String login(String navigateTo) {\r
     logger.info("doing login");\r
-    session().setUser(user);\r
-    session().resetDataObjects();\r
-    session().removeCommand("record");\r
-    ((SearchCommand)session().getCommand("search")).setQuery(null);\r
-    return session().login(navigateTo);\r
-  }\r
-\r
-  @Override\r
-  public void setInitFileName(String fileName) {\r
-    logger.info("Setting init file name: " + fileName);\r
-    session().setInitFileName(fileName);      \r
+    ((ServiceProxyClient)searchClient).authenticate(user);\r
+    data.reset();\r
+    req.getRecord().removeParameters();\r
+    req.getSearch().setQuery(null);\r
+    \r
+    return navigateTo;\r
   }\r
 \r
   @Override\r
-  public String getInitFileName() {\r
-    return session().getInitFileName();\r
-  }\r
-  \r
-  public void setAceFilter (String filterExpression) {\r
-    session().setAceFilter(filterExpression);\r
+  public void setServiceProxyUrl(String url) {\r
+    logger.info("Setting Service Proxy url: " + url);\r
+    serviceProxyUrl = url;\r
+    req.getSearch().setQuery(null);\r
+    data.reset();\r
   }\r
   \r
-  public String getAceFilter () {\r
-    return session().getAceFilter();\r
+  public String getServiceProxyUrl() {\r
+    return serviceProxyUrl;\r
   }\r
-\r
-  @Override\r
-  public String postInit() throws UnsupportedEncodingException, IOException {\r
-    logger.info("Posting init: " + System.currentTimeMillis());\r
-    session().postInit();\r
-    return "";\r
+    \r
+  public String getInitDocPath () {\r
+    return searchClient.getConfiguration().get("INIT_DOC_PATH");\r
   }\r
   \r
-  public String postInit(byte[] initDoc) throws UnsupportedEncodingException, IOException {\r
-    logger.info("Posting init: " + System.currentTimeMillis());\r
-    session().postInit(initDoc);\r
-    return "";\r
+  @Override\r
+  public void setInitFileName(String fileName) {\r
+    this.initDocFileName = fileName;\r
     \r
   }\r
 \r
   @Override\r
-  public void setServiceProxyUrl(String url) {\r
-    logger.info("Setting Service Proxy url: " + url);\r
-    session().setServiceProxyUrl(url); \r
-    ((SearchCommand)session().getCommand("search")).setQuery(null);\r
-    session().resetDataObjects();\r
+  public String getInitFileName() {\r
+    return initDocFileName;\r
   }\r
 \r
   @Override\r
-  public String getServiceProxyUrl() {\r
-    return session().getServiceProxyUrl();    \r
+  public String postInit() throws UnsupportedEncodingException, IOException {    \r
+    String initDocPath = ((ServiceProxyClient)searchClient).getInitDocPaths()[0];\r
+    logger.info("Paths: " + ((ServiceProxyClient)searchClient).getInitDocPaths());\r
+    logger.info("Path: " + initDocPath);\r
+    data.reset();\r
+    byte[] response = ((ServiceProxyClient)searchClient).postInitDoc(initDocPath + getInitFileName());\r
+    initDocResponse = new String(response,"UTF-8");\r
+    return initDocResponse;\r
   }\r
   \r
-  public ServiceProxySession session() {\r
-    return (ServiceProxySession)pz2;\r
+  @Override\r
+  public String postInit(byte[] initDoc) throws UnsupportedEncodingException, IOException {    \r
+    data.reset();\r
+    byte[] response = ((ServiceProxyClient)searchClient).postInitDoc(initDoc);\r
+    initDocResponse = new String(response,"UTF-8");\r
+    return initDocResponse;\r
   }\r
 \r
+\r
   @Override\r
   public String getInitResponse() {\r
-    return session().getInitResponse();\r
+    return initDocResponse;\r
   }\r
   \r
-  public Configuration getClientConfiguration() {\r
-    return session().client().getConfiguration();\r
+  public void setAceFilter(String filterExpression) {\r
+    //setCommandParameter("record",new CommandParameter("acefilter","=",filterExpression));\r
   }\r
   \r
-  public String getInitDocPath () {\r
-    return session().client().getConfiguration().get("INIT_DOC_PATH");\r
+  public String getAceFilter () {\r
+    return null;\r
+    // return getCommandParameterValue("record","acefilter","");\r
   }\r
 \r
+\r
 }\r