X-Git-Url: http://lists.indexdata.dk/cgi-bin?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fcom%2Findexdata%2Fmkjsf%2Fpazpar2%2FServiceProxyExtensions.java;h=d085c316ce950c2c5b3803647681265e23155fbe;hb=11ff48b9d37193a89a4b74da75db8c58415c46a6;hp=d283b294989bd5e08f701380eda482273e38f150;hpb=7e91f0024a1da347fc373c3ff4e920fd00443c15;p=mkjsf-moved-to-github.git diff --git a/src/main/java/com/indexdata/mkjsf/pazpar2/ServiceProxyExtensions.java b/src/main/java/com/indexdata/mkjsf/pazpar2/ServiceProxyExtensions.java index d283b29..d085c31 100644 --- a/src/main/java/com/indexdata/mkjsf/pazpar2/ServiceProxyExtensions.java +++ b/src/main/java/com/indexdata/mkjsf/pazpar2/ServiceProxyExtensions.java @@ -13,13 +13,12 @@ import org.apache.myfaces.custom.fileupload.UploadedFile; import com.indexdata.mkjsf.config.ConfigurationReader; import com.indexdata.mkjsf.pazpar2.commands.CommandParameter; -import com.indexdata.mkjsf.pazpar2.commands.Pazpar2Commands; import com.indexdata.mkjsf.pazpar2.commands.sp.AuthCommand; import com.indexdata.mkjsf.pazpar2.commands.sp.InitDocUpload; import com.indexdata.mkjsf.pazpar2.data.ResponseDataObject; import com.indexdata.mkjsf.pazpar2.data.ResponseParser; -import com.indexdata.mkjsf.pazpar2.data.Responses; import com.indexdata.mkjsf.pazpar2.data.sp.CategoriesResponse; +import com.indexdata.mkjsf.pazpar2.data.sp.SpResponseDataObject; import com.indexdata.mkjsf.utils.Utils; @Named("pz2x") @SessionScoped @@ -33,26 +32,29 @@ public class ServiceProxyExtensions implements ServiceProxyInterface, Serializab @Inject ConfigurationReader configurator; @Inject Pz2Bean pz2; - @Inject Pazpar2Commands pzreq; - @Inject Responses pzresp; - - + public ServiceProxyExtensions() { this.initDocUpload = new InitDocUpload(this); // TODO: //stateMgr.addStateListener(this); } - - public void authenticate() { + + public void authenticate() { + if (pz2.getPzresp().getSp().getAuth().unsupportedCommand()) { + logger.warn("Running seemingly unsupported command [auth] against SP."); + } pz2.resetSearchAndRecordCommands(); - pzresp.getSp().resetAuthAndBeyond(true); - AuthCommand auth = pzreq.getSp().getAuth(); + pz2.getPzresp().getSp().resetAuthAndBeyond(true); + AuthCommand auth = pz2.getPzreq().getSp().getAuth(); ClientCommandResponse commandResponse = pz2.getSpClient().send(auth); - String renamedResponse = renameResponseElement(commandResponse.getResponseString(), "auth"); + String renamedResponse = renameResponseElement(commandResponse.getResponseString(), "auth"); commandResponse.setResponseToParse(renamedResponse); - ResponseDataObject responseObject = ResponseParser.getParser().getDataObject(commandResponse); + SpResponseDataObject responseObject = (SpResponseDataObject) ResponseParser.getParser().getDataObject(commandResponse); if (ResponseParser.docTypes.contains(responseObject.getType())) { - pzresp.put(auth.getCommandName(), responseObject); + pz2.getPzresp().put(auth.getCommandName(), responseObject); + } + if (responseObject.unsupportedCommand()) { + logger.error("auth command does not seem to be supported by this Service Proxy"); } String responseStr = commandResponse.getResponseString(); logger.info(responseStr); @@ -63,21 +65,21 @@ public class ServiceProxyExtensions implements ServiceProxyInterface, Serializab } public void login(String un, String pw, String navigateTo) { - pzreq.getSp().getAuth().setUsername(un); - pzreq.getSp().getAuth().setPassword(pw); + pz2.getPzreq().getSp().getAuth().setUsername(un); + pz2.getPzreq().getSp().getAuth().setPassword(pw); login(""); } @Override public String login(String navigateTo) { - AuthCommand auth = pzreq.getSp().getAuth(); + AuthCommand auth = pz2.getPzreq().getSp().getAuth(); auth.setParameterInState(new CommandParameter("action","=","login")); authenticate(); return navigateTo; } public void ipAuthenticate () { - AuthCommand auth = pzreq.getSp().getAuth(); + AuthCommand auth = pz2.getPzreq().getSp().getAuth(); auth.setParameterInState(new CommandParameter("action","=","ipAuth")); authenticate(); } @@ -109,7 +111,7 @@ public class ServiceProxyExtensions implements ServiceProxyInterface, Serializab logger.info("Paths: " + pz2.getSpClient().getInitDocPaths()); logger.info("Path: " + initDocPath); pz2.resetSearchAndRecordCommands(); - pzresp.getSp().resetAuthAndBeyond(true); + pz2.getPzresp().getSp().resetAuthAndBeyond(true); ClientCommandResponse response = pz2.getSpClient().postInitDoc(initDocPath + getInitFileName()); return response; } @@ -117,7 +119,7 @@ public class ServiceProxyExtensions implements ServiceProxyInterface, Serializab @Override public HttpResponseWrapper postInit(byte[] initDoc, boolean includeDebug) throws UnsupportedEncodingException, IOException { pz2.resetSearchAndRecordCommands(); - pzresp.getSp().resetAuthAndBeyond(true); + pz2.getPzresp().getSp().resetAuthAndBeyond(true); HttpResponseWrapper response = pz2.getSpClient().postInitDoc(initDoc,includeDebug); return response; } @@ -138,8 +140,8 @@ public class ServiceProxyExtensions implements ServiceProxyInterface, Serializab public void submitInitDoc () throws IOException { ClientCommandResponse response = (ClientCommandResponse) initDocUpload.submit(); ResponseDataObject responseObject = ResponseParser.getParser().getDataObject(response); - logger.info("Putting init response to : " + Utils.objectId(pzresp)); - pzresp.put("init", responseObject); + logger.info("Putting init response to : " + Utils.objectId(pz2.getPzresp())); + pz2.getPzresp().put("init", responseObject); } public void setIncludeInitDocDebug(boolean bool) { @@ -156,19 +158,25 @@ public class ServiceProxyExtensions implements ServiceProxyInterface, Serializab return initDocUpload; } - public CategoriesResponse getCategories () { + public CategoriesResponse getCategories () { + String command="categories"; if (pz2.isServiceProxyService()) { - ResponseDataObject response = pz2.doCommand("categories"); - if (response.hasApplicationError()) { - logger.debug(response.getXml()); + if (pz2.getPzresp().getSp().getCategories().unsupportedCommand()) { + logger.info("Skipping seemingly unsupported command: " + command); return new CategoriesResponse(); } else { + SpResponseDataObject response = (SpResponseDataObject) pz2.doCommand(command); + if (response.unsupportedCommand()) { + logger.warn("Command 'categories' not supported by this Service Proxy"); + } else if (response.hasApplicationError()) { + logger.error(response.getXml()); + } try { - return (CategoriesResponse) response; + return (CategoriesResponse) response; } catch (Exception e) { - e.printStackTrace(); - logger.debug(response.getXml()); - return new CategoriesResponse(); + e.printStackTrace(); + logger.debug(response.getXml()); + return new CategoriesResponse(); } } } else {