package com.indexdata.pz2utils4jsf.pazpar2;\r
\r
+import java.io.IOException;\r
+import java.io.UnsupportedEncodingException;\r
+\r
import javax.annotation.PostConstruct;\r
import javax.enterprise.context.SessionScoped;\r
import javax.enterprise.inject.Alternative;\r
import com.indexdata.pz2utils4jsf.config.ConfigurationReader;\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
public class Pz2ProxyBean extends Pz2Bean implements ServiceProxyInterface {\r
\r
private static final long serialVersionUID = 4221824985678758225L;\r
- private static Logger logger = Logger.getLogger(Pz2ProxyBean.class);\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 ServiceProxyUser user; \r
\r
public Pz2ProxyBean() {\r
}\r
\r
@PostConstruct\r
- public void initiatePz2Session() {\r
- logger.debug(Utils.objectId(this) + " will instantiate a Pz2Session next.");\r
- pz2 = new ServiceProxySession();\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.init(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
-\r
+ @Override\r
public String login(String navigateTo) {\r
logger.info("doing login");\r
- ((ServiceProxySession) pz2).setUser(user);\r
- return ((ServiceProxySession)pz2).login(navigateTo);\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 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 getServiceProxyUrl() {\r
+ return serviceProxyUrl;\r
+ }\r
+ \r
+ public String getInitDocPath () {\r
+ return searchClient.getConfiguration().get("INIT_DOC_PATH");\r
+ }\r
+ \r
+ @Override\r
+ public void setInitFileName(String fileName) {\r
+ this.initDocFileName = fileName;\r
+ \r
+ }\r
+\r
+ @Override\r
+ public String getInitFileName() {\r
+ return initDocFileName;\r
+ }\r
+\r
+ @Override\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
+ @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 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
\r
}\r