/* * Created on Nov 2, 2004 * */ package hk.hku.cecid.ebms.admin.listener; import hk.hku.cecid.ebms.spa.EbmsProcessor; import hk.hku.cecid.ebms.spa.dao.RepositoryDAO; import hk.hku.cecid.ebms.spa.dao.RepositoryDVO; import hk.hku.cecid.piazza.commons.io.IOHandler; import hk.hku.cecid.piazza.commons.servlet.RequestListenerException; import hk.hku.cecid.piazza.commons.servlet.http.HttpRequestAdaptor; import java.io.ByteArrayInputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * @author Donahue Sze * */ public class RepositoryAdaptor extends HttpRequestAdaptor { /* * (non-Javadoc) * * @see hk.hku.cecid.piazza.commons.servlet.http.HttpRequestListener#processRequest(javax.servlet.http.HttpServletRequest, * javax.servlet.http.HttpServletResponse) */ public String processRequest(HttpServletRequest request, HttpServletResponse response) throws RequestListenerException { String messageId = request.getParameter("message_id"); String messageBox = request.getParameter("message_box"); try { RepositoryDAO repositoryDAO = (RepositoryDAO) EbmsProcessor.core.dao .createDAO(RepositoryDAO.class); RepositoryDVO repositoryDVO = (RepositoryDVO) repositoryDAO .createDVO(); repositoryDVO.setMessageId(messageId); repositoryDVO.setMessageBox(messageBox); boolean hasExist = repositoryDAO.findRepository(repositoryDVO); if (hasExist) { response.setCharacterEncoding(null); response.setContentType("application/download"); response .setHeader("Content-Disposition", "attachment;filename=\"" + repositoryDVO.getMessageId() + ".ebxml\""); ByteArrayInputStream bis = new ByteArrayInputStream( repositoryDVO.getContent()); IOHandler.pipe(bis, response.getOutputStream()); bis.close(); } } catch (Exception e) { e.printStackTrace(); } return null; } }