public void beforePhase(PhaseEvent phaseEvent) { Bridge.PortletPhase portletRequestPhase = BridgeUtil.getPortletRequestPhase(); if ((portletRequestPhase == Bridge.PortletPhase.RENDER_PHASE) || (portletRequestPhase == Bridge.PortletPhase.RESOURCE_PHASE)) { // If about to execute the INVOKE_APPLICATION phase of the JSF lifecycle, then if (phaseEvent.getPhaseId() == PhaseId.INVOKE_APPLICATION) { beforeInvokeApplicationPhase(phaseEvent); } else if (phaseEvent.getPhaseId() == PhaseId.RENDER_RESPONSE) { beforeRenderResponsePhase(phaseEvent); } } }
public void beforePhase(PhaseEvent phaseEvent) { Bridge.PortletPhase portletRequestPhase = BridgeUtil.getPortletRequestPhase(phaseEvent.getFacesContext()); if ((portletRequestPhase == Bridge.PortletPhase.RESOURCE_PHASE) || (portletRequestPhase == Bridge.PortletPhase.RENDER_PHASE)) { if (phaseEvent.getPhaseId() == PhaseId.APPLY_REQUEST_VALUES) { beforeApplyRequestValuesPhase(phaseEvent); } else if (phaseEvent.getPhaseId() == PhaseId.RENDER_RESPONSE) { FacesContext facesContext = phaseEvent.getFacesContext(); if (facesContext.getPartialViewContext().isAjaxRequest()) { beforeAjaxifiedRenderResponsePhase(phaseEvent); } } } }
@Override public Object getValue(ELContext context, Object base, Object property) throws ELException { // variable resolution is a special case of property resolution // where the base is null. if (!BridgeUtil.isPortletRequest() || base != null) { return null; } if (property == null) { throw new PropertyNotFoundException("Null property"); } FacesContext facesContext = (FacesContext) context.getContext(FacesContext.class); ExternalContext extCtx = facesContext.getExternalContext(); // only process if running in a portlet request // Bridge.PortletPhase phase = // (Bridge.PortletPhase) // FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get(Bridge.PORTLET_LIFECYCLE_PHASE); // if (phase == null) { // return null; // } if (PORTLET_CONFIG.equals(property)) { context.setPropertyResolved(true); return context.getContext(PortletConfig.class); } else if (ACTION_REQUEST.equals(property) && (BridgeUtil.getPortletRequestPhase() == Bridge.PortletPhase.ACTION_PHASE)) { context.setPropertyResolved(true); return extCtx.getRequest(); } else if (ACTION_RESPONSE.equals(property) && (BridgeUtil.getPortletRequestPhase() == Bridge.PortletPhase.ACTION_PHASE)) { context.setPropertyResolved(true); return extCtx.getResponse(); } else if (RENDER_REQUEST.equals(property) && (BridgeUtil.getPortletRequestPhase() == Bridge.PortletPhase.RENDER_PHASE)) { context.setPropertyResolved(true); return extCtx.getRequest(); } else if (RENDER_RESPONSE.equals(property) && (BridgeUtil.getPortletRequestPhase() == Bridge.PortletPhase.RENDER_PHASE)) { context.setPropertyResolved(true); return extCtx.getResponse(); } else if (EVENT_REQUEST.equals(property) && (BridgeUtil.getPortletRequestPhase() == Bridge.PortletPhase.EVENT_PHASE)) { context.setPropertyResolved(true); return extCtx.getRequest(); } else if (EVENT_RESPONSE.equals(property) && (BridgeUtil.getPortletRequestPhase() == Bridge.PortletPhase.EVENT_PHASE)) { context.setPropertyResolved(true); return extCtx.getResponse(); } else if (RESOURCE_REQUEST.equals(property) && (BridgeUtil.getPortletRequestPhase() == Bridge.PortletPhase.RESOURCE_PHASE)) { context.setPropertyResolved(true); return extCtx.getRequest(); } else if (RESOURCE_RESPONSE.equals(property) && (BridgeUtil.getPortletRequestPhase() == Bridge.PortletPhase.RESOURCE_PHASE)) { context.setPropertyResolved(true); return extCtx.getResponse(); } else if (SESSION_APPLICATION_SCOPE.equals(property) || HTTP_SESSION_SCOPE.equals(property)) { context.setPropertyResolved(true); if (mAppScopeSessionMap == null) { Object request = extCtx.getRequest(); // Object portletLifecycleAttr = extCtx.getRequestMap().get(Bridge.PORTLET_LIFECYCLE_PHASE); if (BridgeUtil.isPortletRequest()) { mAppScopeSessionMap = new PortletApplicationScopeSessionMap((PortletRequest) request); } } return mAppScopeSessionMap; } else if (SESSION_PORTLET_SCOPE.equals(property) || PORTLET_SESSION_SCOPE.equals(property)) { context.setPropertyResolved(true); return extCtx.getSessionMap(); } else if (PORTLET_SESSION.equals(property)) { context.setPropertyResolved(true); return extCtx.getSession(false); } else if (PORTLET_PREFERENCE_VALUE.equals(property)) { context.setPropertyResolved(true); return getPreferencesValueMap(facesContext); } else if (PORTLET_PREFERENCES.equals(property)) { context.setPropertyResolved(true); return ((PortletRequest) extCtx.getRequest()).getPreferences(); } else if (MUTABLE_PORTLET_PREFERENCES_VALUES.equals(property)) { context.setPropertyResolved(true); return getPreferenceMap(((PortletRequest) extCtx.getRequest()).getPreferences()); } else { return null; } // } }