\r
import com.indexdata.mkjsf.errors.ErrorHelper;\r
import com.indexdata.mkjsf.errors.ErrorInterface;\r
+import com.indexdata.mkjsf.pazpar2.data.sp.AuthResponse;\r
import com.indexdata.mkjsf.pazpar2.data.sp.CategoriesResponse;\r
import com.indexdata.mkjsf.utils.Utils;\r
\r
public void download(String commandName) throws UnsupportedEncodingException, IOException {\r
logger.info(Utils.objectId(this) + " got a download request for "\r
+ commandName);\r
+ ResponseDataObject object = dataObjects.get(commandName); \r
FacesContext facesContext = FacesContext.getCurrentInstance();\r
ExternalContext externalContext = facesContext.getExternalContext();\r
- externalContext.setResponseHeader("Content-Type","application/xml; charset=\"utf-8\"");\r
- externalContext.setResponseHeader("Content-Length",String.valueOf(dataObjects.get(commandName).getXml().getBytes("UTF-8").length));\r
- externalContext.setResponseHeader("Content-Disposition","attachment;filename=\"" + commandName + ".xml\"");\r
- externalContext.getResponseOutputStream().write(dataObjects.get(commandName).getXml().getBytes("UTF-8"));\r
+ if (object.getIsBinary()) {\r
+ externalContext.setResponseHeader("Content-Type","application/octet-stream");\r
+ externalContext.setResponseHeader("Content-Length",String.valueOf(object.getBinary().length));\r
+ externalContext.setResponseHeader("Content-Disposition","attachment;filename=\"" + commandName + ".data\"");\r
+ externalContext.getResponseOutputStream().write(object.getBinary()); \r
+ } else {\r
+ externalContext.setResponseHeader("Content-Type","application/xml; charset=\"utf-8\"");\r
+ externalContext.setResponseHeader("Content-Length",String.valueOf(dataObjects.get(commandName).getXml().getBytes("UTF-8").length));\r
+ externalContext.setResponseHeader("Content-Disposition","attachment;filename=\"" + commandName + ".xml\"");\r
+ externalContext.getResponseOutputStream().write(dataObjects.get(commandName).getXml().getBytes("UTF-8"));\r
+ }\r
facesContext.responseComplete();\r
}\r
+ \r
}
\ No newline at end of file