List of usage examples for com.liferay.portal.kernel.util UnsyncPrintWriterPool borrow
public static UnsyncPrintWriter borrow(Writer writer)
From source file:com.liferay.content.targeting.portlet.FreeMarkerPortlet.java
License:Open Source License
@Override protected void include(String path, PortletRequest portletRequest, PortletResponse portletResponse, String lifecycle) throws IOException, PortletException { PortletContext portletContext = getPortletContext(); String servletContextName = portletContext.getPortletContextName(); String resourcePath = servletContextName.concat(TemplateConstants.SERVLET_SEPARATOR).concat(path); boolean resourceExists = false; try {/* w w w. ja v a 2 s . c o m*/ resourceExists = TemplateResourceLoaderUtil.hasTemplateResource(TemplateConstants.LANG_TYPE_FTL, resourcePath); } catch (TemplateException te) { throw new IOException(te.getMessage()); } if (!resourceExists) { _log.error(path + " is not a valid include"); } else { try { TemplateResource templateResource = TemplateResourceLoaderUtil .getTemplateResource(TemplateConstants.LANG_TYPE_FTL, resourcePath); Template template = TemplateManagerUtil.getTemplate(TemplateConstants.LANG_TYPE_FTL, templateResource, false); TemplateTaglibSupportProvider templateTaglibSupportProvider = getTaglibSupportProvider(); if (templateTaglibSupportProvider != null) { templateTaglibSupportProvider.addTaglibSupport(template, servletContextName, portletRequest, portletResponse); } // LPS-43725 HttpServletRequestWrapper httpServletRequestWrapper = new HttpServletRequestWrapper( PortalUtil.getHttpServletRequest(portletRequest)); HttpServletResponseWrapper httpServletResponseWrapper = new HttpServletResponseWrapper( PortalUtil.getHttpServletResponse(portletResponse)); HttpRequestHashModel httpRequestHashModel = new HttpRequestHashModel(httpServletRequestWrapper, httpServletResponseWrapper, ObjectWrapper.DEFAULT_WRAPPER); template.put("Request", httpRequestHashModel); populateContext(path, portletRequest, portletResponse, template); Writer writer = null; if (portletResponse instanceof MimeResponse) { MimeResponse mimeResponse = (MimeResponse) portletResponse; writer = UnsyncPrintWriterPool.borrow(mimeResponse.getWriter()); } else { writer = new UnsyncStringWriter(); } template.processTemplate(writer); } catch (Exception e) { throw new PortletException(e); } } if (clearRequestParameters) { if (lifecycle.equals(PortletRequest.RENDER_PHASE)) { portletResponse.setProperty("clear-request-parameters", "true"); } } }
From source file:com.liferay.mvc.freemarker.FreeMarkerMVCPortlet.java
License:Open Source License
@Override protected void include(String path, PortletRequest portletRequest, PortletResponse portletResponse, String lifecycle) throws IOException, PortletException { PortletContext portletContext = getPortletContext(); URL resource = portletContext.getResource(path); if (resource == null) { _log.error(path + " is not a valid include"); } else {//from ww w. j a v a2s . c o m try { FreeMarkerContext freeMarkerContext = getFreeMarkerContext(portletRequest, portletResponse); Writer writer = null; if (portletResponse instanceof MimeResponse) { MimeResponse mimeResponse = (MimeResponse) portletResponse; writer = UnsyncPrintWriterPool.borrow(mimeResponse.getWriter()); } else { writer = new UnsyncStringWriter(); } // Merge templates String template = HttpUtil.URLtoString(resource); String templateId = portletResponse.getNamespace() + path; if (!_templateIds.contains(templateId)) { _templateIds.add(templateId); } FreeMarkerEngineUtil.mergeTemplate(templateId, template, freeMarkerContext, writer); } catch (Exception e) { throw new PortletException(e); } } if (clearRequestParameters) { if (lifecycle.equals(PortletRequest.RENDER_PHASE)) { portletResponse.setProperty("clear-request-parameters", "true"); } } }
From source file:com.liferay.portlet.admin.action.EditServerAction.java
License:Open Source License
protected void runScript(PortletConfig portletConfig, ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { String language = ParamUtil.getString(actionRequest, "language"); String script = ParamUtil.getString(actionRequest, "script"); PortletContext portletContext = portletConfig.getPortletContext(); Map<String, Object> portletObjects = ScriptingUtil.getPortletObjects(portletConfig, portletContext, actionRequest, actionResponse); UnsyncByteArrayOutputStream unsyncByteArrayOutputStream = new UnsyncByteArrayOutputStream(); UnsyncPrintWriter unsyncPrintWriter = UnsyncPrintWriterPool.borrow(unsyncByteArrayOutputStream); portletObjects.put("out", unsyncPrintWriter); try {/*from www . j a v a 2s . c o m*/ SessionMessages.add(actionRequest, "language", language); SessionMessages.add(actionRequest, "script", script); ScriptingUtil.exec(null, portletObjects, language, script); unsyncPrintWriter.flush(); SessionMessages.add(actionRequest, "script_output", unsyncByteArrayOutputStream.toString()); } catch (ScriptingException se) { SessionErrors.add(actionRequest, ScriptingException.class.getName(), se); _log.error(se.getMessage()); } }
From source file:com.liferay.portlet.PortletServletResponse.java
License:Open Source License
@Override public PrintWriter getWriter() throws IOException { if (_lifecycle.equals(PortletRequest.RENDER_PHASE) || _lifecycle.equals(PortletRequest.RESOURCE_PHASE)) { MimeResponse mimeResponse = _getMimeResponse(); return mimeResponse.getWriter(); } else {//from w w w .j ava 2 s .c om return UnsyncPrintWriterPool.borrow(new NullServletOutputStream()); } }
From source file:com.liferay.portlet.shopping.action.PayPalNotificationAction.java
License:Open Source License
@Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { String invoice = null;// w ww. j av a 2s .co m try { if (_log.isDebugEnabled()) { _log.debug("Receiving notification from PayPal"); } String query = "cmd=_notify-validate"; Enumeration<String> enu = request.getParameterNames(); while (enu.hasMoreElements()) { String name = enu.nextElement(); String value = request.getParameter(name); query = query + "&" + name + "=" + HttpUtil.encodeURL(value); } if (_log.isDebugEnabled()) { _log.debug("Sending response to PayPal " + query); } URL url = new URL("https://www.paypal.com/cgi-bin/webscr"); URLConnection urlc = url.openConnection(); urlc.setDoOutput(true); urlc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); PrintWriter pw = UnsyncPrintWriterPool.borrow(urlc.getOutputStream()); pw.println(query); pw.close(); UnsyncBufferedReader unsyncBufferedReader = new UnsyncBufferedReader( new InputStreamReader(urlc.getInputStream())); String payPalStatus = unsyncBufferedReader.readLine(); unsyncBufferedReader.close(); String itemName = ParamUtil.getString(request, "item_name"); String itemNumber = ParamUtil.getString(request, "item_number"); invoice = ParamUtil.getString(request, "invoice"); String txnId = ParamUtil.getString(request, "txn_id"); String paymentStatus = ParamUtil.getString(request, "payment_status"); double paymentGross = ParamUtil.getDouble(request, "mc_gross"); String receiverEmail = ParamUtil.getString(request, "receiver_email"); String payerEmail = ParamUtil.getString(request, "payer_email"); if (_log.isDebugEnabled()) { _log.debug("Receiving response from PayPal"); _log.debug("Item name " + itemName); _log.debug("Item number " + itemNumber); _log.debug("Invoice " + invoice); _log.debug("Transaction ID " + txnId); _log.debug("Payment status " + paymentStatus); _log.debug("Payment gross " + paymentGross); _log.debug("Receiver email " + receiverEmail); _log.debug("Payer email " + payerEmail); } if (payPalStatus.equals("VERIFIED") && validate(request)) { ServiceContext serviceContext = ServiceContextFactory.getInstance(request); ShoppingOrderLocalServiceUtil.completeOrder(invoice, txnId, paymentStatus, paymentGross, receiverEmail, payerEmail, true, serviceContext); } else if (payPalStatus.equals("INVALID")) { } return null; } catch (Exception e) { PortalUtil.sendError(e, request, response); return null; } }
From source file:com.liferay.portlet.VelocityPortlet.java
License:Open Source License
protected void mergeTemplate(String velocityTemplateId, VelocityContext velocityContext, PortletRequest portletRequest, PortletResponse portletResponse) throws Exception { if (portletResponse instanceof MimeResponse) { MimeResponse mimeResponse = (MimeResponse) portletResponse; mimeResponse.setContentType(portletRequest.getResponseContentType()); }//from ww w . j a va 2 s .c o m VelocityWriter velocityWriter = null; try { velocityWriter = (VelocityWriter) _writerPool.get(); PrintWriter output = null; if (portletResponse instanceof MimeResponse) { MimeResponse mimeResponse = (MimeResponse) portletResponse; output = mimeResponse.getWriter(); } else { output = UnsyncPrintWriterPool.borrow(System.out); } if (velocityWriter == null) { velocityWriter = new VelocityWriter(output, 4 * 1024, true); } else { velocityWriter.recycle(output); } VelocityEngineUtil.mergeTemplate(velocityTemplateId, null, velocityContext, velocityWriter); } finally { try { if (velocityWriter != null) { velocityWriter.flush(); velocityWriter.recycle(null); _writerPool.put(velocityWriter); } } catch (Exception e) { } } }
From source file:com.liferay.rtl.servlet.filters.dynamiccss.DynamicCSSUtil.java
License:Open Source License
private static String _parseSass(ServletContext servletContext, HttpServletRequest request, ThemeDisplay themeDisplay, Theme theme, String resourcePath, String content) throws Exception { Map<String, Object> inputObjects = new HashMap<String, Object>(); String cssThemePath = _getCssThemePath(servletContext, request, themeDisplay, theme); inputObjects.put("content", content); inputObjects.put("cssRealPath", resourcePath); inputObjects.put("cssThemePath", cssThemePath); File sassTempDir = _getSassTempDir(servletContext); inputObjects.put("sassCachePath", sassTempDir.getCanonicalPath()); UnsyncByteArrayOutputStream unsyncByteArrayOutputStream = new UnsyncByteArrayOutputStream(); UnsyncPrintWriter unsyncPrintWriter = UnsyncPrintWriterPool.borrow(unsyncByteArrayOutputStream); inputObjects.put("out", unsyncPrintWriter); _rubyExecutor.eval(null, inputObjects, null, _rubyScript); unsyncPrintWriter.flush();//from www . j a va2s .c om return unsyncByteArrayOutputStream.toString(); }
From source file:com.liferay.server.admin.web.internal.portlet.action.EditServerMVCActionCommand.java
License:Open Source License
protected void runScript(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { String language = ParamUtil.getString(actionRequest, "language"); String script = ParamUtil.getString(actionRequest, "script"); PortletConfig portletConfig = getPortletConfig(actionRequest); PortletContext portletContext = portletConfig.getPortletContext(); Map<String, Object> portletObjects = ScriptingHelperUtil.getPortletObjects(portletConfig, portletContext, actionRequest, actionResponse); UnsyncByteArrayOutputStream unsyncByteArrayOutputStream = new UnsyncByteArrayOutputStream(); UnsyncPrintWriter unsyncPrintWriter = UnsyncPrintWriterPool.borrow(unsyncByteArrayOutputStream); portletObjects.put("out", unsyncPrintWriter); try {//w w w . j av a2 s . com SessionMessages.add(actionRequest, "language", language); SessionMessages.add(actionRequest, "script", script); _scripting.exec(null, portletObjects, language, script); unsyncPrintWriter.flush(); SessionMessages.add(actionRequest, "scriptOutput", unsyncByteArrayOutputStream.toString()); } catch (ScriptingException se) { SessionErrors.add(actionRequest, ScriptingException.class.getName(), se); Log log = SanitizerLogWrapper.allowCRLF(_log); log.error(se.getMessage()); } }
From source file:com.liferay.shipping.portlet.ShippingPortlet.java
License:Open Source License
@Override protected void include(String path, PortletRequest portletRequest, PortletResponse portletResponse, String lifecycle) throws IOException, PortletException { PortletContext portletContext = getPortletContext(); String servletContextName = portletContext.getPortletContextName(); String resourcePath = servletContextName.concat(TemplateConstants.SERVLET_SEPARATOR).concat(path); boolean resourceExists = false; try {//from www .j a v a2 s . c om resourceExists = TemplateResourceLoaderUtil.hasTemplateResource(TemplateConstants.LANG_TYPE_FTL, resourcePath); } catch (TemplateException te) { throw new IOException(te.getMessage()); } if (!resourceExists) { _log.error(path + " is not a valid include"); } else { try { Template template = getTemplateWithTaglibSupport(portletRequest, portletResponse, servletContextName, resourcePath); populateContext(portletRequest, portletResponse, template); Writer writer = null; if (portletResponse instanceof MimeResponse) { MimeResponse mimeResponse = (MimeResponse) portletResponse; writer = UnsyncPrintWriterPool.borrow(mimeResponse.getWriter()); } else { writer = new UnsyncStringWriter(); } template.processTemplate(writer); } catch (Exception e) { throw new PortletException(e); } } if (clearRequestParameters) { if (lifecycle.equals(PortletRequest.RENDER_PHASE)) { portletResponse.setProperty("clear-request-parameters", "true"); } } }
From source file:com.liferay.taglib.util.ThemeUtil.java
License:Open Source License
public static String includeFTL(ServletContext servletContext, HttpServletRequest request, PageContext pageContext, String path, Theme theme, boolean write) throws Exception { // The servlet context name will be null when the theme is deployed to // the root directory in Tomcat. See // com.liferay.portal.servlet.MainServlet and // com.liferay.portlet.PortletContextImpl for other cases where a null // servlet context name is also converted to an empty string. String servletContextName = GetterUtil.getString(theme.getServletContextName()); if (ServletContextPool.get(servletContextName) == null) { // This should only happen if the FreeMarker template is the first // page to be accessed in the system ServletContextPool.put(servletContextName, servletContext); }/*from www.j a va 2 s . c o m*/ String portletId = getPortletId(request); String resourcePath = theme.getResourcePath(servletContext, portletId, path); if (Validator.isNotNull(portletId) && !FreeMarkerEngineUtil.resourceExists(resourcePath) && portletId.contains(PortletConstants.INSTANCE_SEPARATOR)) { String rootPortletId = PortletConstants.getRootPortletId(portletId); resourcePath = theme.getResourcePath(servletContext, rootPortletId, path); } if (Validator.isNotNull(portletId) && !FreeMarkerEngineUtil.resourceExists(resourcePath)) { resourcePath = theme.getResourcePath(servletContext, null, path); } if (!FreeMarkerEngineUtil.resourceExists(resourcePath)) { _log.error(resourcePath + " does not exist"); return null; } FreeMarkerContext freeMarkerContext = FreeMarkerEngineUtil.getWrappedStandardToolsContext(); // FreeMarker variables FreeMarkerVariablesUtil.insertVariables(freeMarkerContext, request); // Theme servlet context ServletContext themeServletContext = ServletContextPool.get(servletContextName); freeMarkerContext.put("themeServletContext", themeServletContext); // Tag libraries HttpServletResponse response = (HttpServletResponse) pageContext.getResponse(); Writer writer = null; if (write) { // Wrapping is needed because of a bug in FreeMarker writer = UnsyncPrintWriterPool.borrow(pageContext.getOut()); } else { writer = new UnsyncStringWriter(); } VelocityTaglib velocityTaglib = new VelocityTaglib(servletContext, request, new PipingServletResponse(response, writer), pageContext); request.setAttribute(WebKeys.VELOCITY_TAGLIB, velocityTaglib); freeMarkerContext.put("taglibLiferay", velocityTaglib); freeMarkerContext.put("theme", velocityTaglib); freeMarkerContext.put("writer", writer); // Portal JSP tag library factory TemplateHashModel portalTaglib = FreeMarkerTaglibFactoryUtil.createTaglibFactory(servletContext); freeMarkerContext.put("PortalJspTagLibs", portalTaglib); // Theme JSP tag library factory TemplateHashModel themeTaglib = FreeMarkerTaglibFactoryUtil.createTaglibFactory(themeServletContext); freeMarkerContext.put("ThemeJspTaglibs", themeTaglib); // FreeMarker JSP tag library support final Servlet servlet = (Servlet) pageContext.getPage(); GenericServlet genericServlet = null; if (servlet instanceof GenericServlet) { genericServlet = (GenericServlet) servlet; } else { genericServlet = new GenericServlet() { @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { servlet.service(servletRequest, servletResponse); } }; genericServlet.init(pageContext.getServletConfig()); } ServletContextHashModel servletContextHashModel = new ServletContextHashModel(genericServlet, ObjectWrapper.DEFAULT_WRAPPER); freeMarkerContext.put("Application", servletContextHashModel); HttpRequestHashModel httpRequestHashModel = new HttpRequestHashModel(request, response, ObjectWrapper.DEFAULT_WRAPPER); freeMarkerContext.put("Request", httpRequestHashModel); // Merge templates FreeMarkerEngineUtil.mergeTemplate(resourcePath, freeMarkerContext, writer); if (write) { return null; } else { return writer.toString(); } }