private Map _getRenderParameters(MarkupParams markupParams) { return _getParameters(markupParams.getNavigationalState()); }
public MarkupResponse invokeGetMarkup(GetMarkup getMarkup) throws WSRPException { String portletHandle = getMarkup.getPortletContext().getPortletHandle(); MarkupResponse markupResponse = new MarkupResponse(); MarkupContext markupContext = new MarkupContext(); markupResponse.setMarkupContext(markupContext); try { MarkupParams markupParams = getMarkup.getMarkupParams(); // window state String wsrpWindowState = markupParams.getWindowState(); WindowState windowState = WSRPUtil.fromWsrpWindowState(wsrpWindowState); // portlet mode String wsrpMode = markupParams.getMode(); PortletMode mode = WSRPUtil.fromWsrpMode(wsrpMode); ServletContext ctx = WSRPUtil.getServletContext(); long companyId = WSRPUtil.getCompanyId(); Portlet portlet = PortletLocalServiceUtil.getPortletById(companyId, portletHandle); CachePortlet cachePortlet = PortletInstanceFactory.create(portlet, ctx); PortletConfig portletConfig = PortletConfigFactory.create(portlet, ctx); PortletContext portletCtx = portletConfig.getPortletContext(); Locale reqLocale = LocaleHelper.getLocale(markupParams.getLocales()[0]); String reqMimeType = markupParams.getMimeTypes()[0]; Map renderParameters = _getRenderParameters(markupParams); HttpServletRequest httpReq = new WSRPServletRequest( WSRPUtil.getHttpServletRequest(), reqLocale, reqMimeType, renderParameters); PortletPreferencesIds portletPreferencesIds = PortletPreferencesFactoryUtil.getPortletPreferencesIds(httpReq, portlet.getPortletId()); PortletPreferences portletPreferences = PortletPreferencesLocalServiceUtil.getPreferences(portletPreferencesIds); // this gets the default layout of the general guest User user = UserLocalServiceUtil.getDefaultUser(companyId); Layout layout = _getDefaultUserLayout(user.getCompanyId()); RenderRequestImpl renderRequest = RenderRequestFactory.create( httpReq, portlet, cachePortlet, portletCtx, windowState, mode, portletPreferences, layout.getPlid()); WSRPServletResponse res = new WSRPServletResponse(); RenderResponseImpl renderResponse = new WSRPRenderResponseImpl( getMarkup, _provider, (RenderRequestImpl) renderRequest, res, portlet.getPortletId(), companyId, layout.getPlid()); renderResponse.setContentType("text/html"); renderRequest.defineObjects(portletConfig, renderResponse); cachePortlet.render(renderRequest, renderResponse); markupContext.setMarkupString(res.getString()); String contentType = renderResponse.getContentType(); if (contentType == null) { contentType = ContentTypes.TEXT_HTML_UTF8; } markupContext.setMimeType(contentType); markupContext.setLocale(renderResponse.getLocale().getLanguage()); markupContext.setPreferredTitle(renderResponse.getTitle()); RenderRequestFactory.recycle(renderRequest); } catch (Exception e) { e.printStackTrace(); } return markupResponse; }
public BlockingInteractionResponse invokePerformBlockingInteraction( PerformBlockingInteraction pbo) throws WSRPException { String portletHandle = pbo.getPortletContext().getPortletHandle(); BlockingInteractionResponse bir = new BlockingInteractionResponse(); UpdateResponse updateRes = new UpdateResponse(); bir.setUpdateResponse(updateRes); try { MarkupParams markupParams = pbo.getMarkupParams(); // window state String wsrpWindowState = markupParams.getWindowState(); WindowState windowState = WSRPUtil.fromWsrpWindowState(wsrpWindowState); // portlet mode String wsrpMode = markupParams.getMode(); PortletMode mode = WSRPUtil.fromWsrpMode(wsrpMode); ServletContext ctx = WSRPUtil.getServletContext(); long companyId = WSRPUtil.getCompanyId(); Portlet portlet = PortletLocalServiceUtil.getPortletById(companyId, portletHandle); CachePortlet cachePortlet = PortletInstanceFactory.create(portlet, ctx); PortletConfig portletConfig = PortletConfigFactory.create(portlet, ctx); PortletContext portletCtx = portletConfig.getPortletContext(); Locale reqLocale = LocaleHelper.getLocale(markupParams.getLocales()[0]); String reqMimeType = markupParams.getMimeTypes()[0]; InteractionParams interactionParams = pbo.getInteractionParams(); Map actionParameters = _getActionParameters(interactionParams); HttpServletRequest httpReq = new WSRPServletRequest( WSRPUtil.getHttpServletRequest(), reqLocale, reqMimeType, actionParameters); PortletPreferencesIds portletPreferencesIds = PortletPreferencesFactoryUtil.getPortletPreferencesIds(httpReq, portlet.getPortletId()); PortletPreferences portletPreferences = PortletPreferencesLocalServiceUtil.getPreferences(portletPreferencesIds); // this gets the default layout of the general guest User user = UserLocalServiceUtil.getDefaultUser(companyId); Layout layout = _getDefaultUserLayout(user.getCompanyId()); ActionRequestImpl actionRequest = ActionRequestFactory.create( httpReq, portlet, cachePortlet, portletCtx, windowState, mode, portletPreferences, layout.getPlid()); WSRPServletResponse res = new WSRPServletResponse(); ActionResponseImpl actionResponse = new WSRPActionResponseImpl( pbo, _provider, actionRequest, res, portlet.getPortletId(), user, layout, windowState, mode); cachePortlet.processAction(actionRequest, actionResponse); String newNavState = null; Map renderParams = _getRenderParameters(httpReq, actionResponse); newNavState = Base64.encode(ObjectSerializer.serialize(renderParams)); updateRes.setNavigationalState(newNavState); ActionRequestFactory.recycle(actionRequest); } catch (Exception e) { e.printStackTrace(); } return bir; }