Adds option to configure multiple SP URLs
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / Pz2ProxyBean.java
index 4209aa2..989cc06 100644 (file)
@@ -2,6 +2,8 @@ package com.indexdata.mkjsf.pazpar2;
 \r
 import java.io.IOException;\r
 import java.io.UnsupportedEncodingException;\r
+import java.util.ArrayList;\r
+import java.util.List;\r
 \r
 import javax.annotation.PostConstruct;\r
 import javax.enterprise.context.SessionScoped;\r
@@ -24,7 +26,6 @@ public class Pz2ProxyBean extends Pz2Bean implements ServiceProxyInterface {
   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
@@ -40,7 +41,7 @@ public class Pz2ProxyBean extends Pz2Bean implements ServiceProxyInterface {
       logger.info("Using [" + Utils.objectId(searchClient) + "] configured by [" \r
                             + Utils.objectId(configurator) + "]" );    \r
       configureClient(searchClient,configurator);\r
-      stateMgr.addStateListener(this);\r
+      stateMgr.addStateListener(this);      \r
     } else {\r
       logger.debug("Pz2ProxyBean:postConstruct: searchClient already instantiated " +\r
                        "during construction of parent object Pz2Bean.");\r
@@ -76,15 +77,25 @@ public class Pz2ProxyBean extends Pz2Bean implements ServiceProxyInterface {
 \r
   @Override\r
   public void setServiceProxyUrl(String url) {\r
-    logger.info("Setting Service Proxy url: " + url);\r
-    serviceProxyUrl = url;\r
-    pzreq.getRecord().removeParametersInState();\r
-    pzreq.getSearch().removeParametersInState();\r
-    pzresp.reset();\r
+    logger.info("Setting Service Proxy url: " + url);    \r
+    if (url!=null & !url.equals(((ServiceProxyClient)searchClient).getServiceProxyUrl())) {\r
+      pzreq.getRecord().removeParametersInState();\r
+      pzreq.getSearch().removeParametersInState();\r
+      pzresp.reset();\r
+      user.clear();\r
+      ((ServiceProxyClient)searchClient).setServiceProxyUrl(url);\r
+    }    \r
   }\r
   \r
   public String getServiceProxyUrl() {\r
-    return serviceProxyUrl;\r
+    return ((ServiceProxyClient)searchClient).getServiceProxyUrl();\r
+  }\r
+  \r
+  public List<String> getServiceProxyUrls() {\r
+    List<String> urls = new ArrayList<String>();\r
+    urls.add("");\r
+    urls.addAll(((ServiceProxyClient)searchClient).getServiceProxyUrls());\r
+    return urls;\r
   }\r
     \r
   public String getInitDocPath () {\r
@@ -104,7 +115,7 @@ public class Pz2ProxyBean extends Pz2Bean implements ServiceProxyInterface {
 \r
   @Override\r
   public String postInit() throws UnsupportedEncodingException, IOException {    \r
-    String initDocPath = ((ServiceProxyClient)searchClient).getInitDocPaths()[0];\r
+    String initDocPath = ((ServiceProxyClient)searchClient).getInitDocPaths().get(0);\r
     logger.info("Paths: " + ((ServiceProxyClient)searchClient).getInitDocPaths());\r
     logger.info("Path: " + initDocPath);\r
     pzresp.reset();\r
@@ -127,12 +138,4 @@ public class Pz2ProxyBean extends Pz2Bean implements ServiceProxyInterface {
     return initDocResponse;\r
   }\r
   \r
-  public void setAceFilter(String filterExpression) {\r
-    //setCommandParameter("record",new CommandParameter("acefilter","=",filterExpression));\r
-  }\r
-  \r
-  public String getAceFilter () {\r
-    return null;\r
-    // return getCommandParameterValue("record","acefilter","");\r
-  }\r
 }\r