Package org.jboss.portletbridge.context

Examples of org.jboss.portletbridge.context.PortletBridgeContext


   */
  public void processRenderException(FacesContext context,
          BridgeRequestScope windowState, Exception e) throws BridgeException {
    String redirectViewId = processException(context, windowState, e);
    if (null != redirectViewId) {
      PortletBridgeContext bridgeContext = PortletBridgeContext
              .getCurrentInstance(context);
      PortletRequest request = (PortletRequest) context
              .getExternalContext().getRequest();
      bridgeContext.resetRequestAttributes(request);
      windowState.restoreBeans(context);
      renderErrorPage(context, windowState, e, redirectViewId);
    } else {
      throw new BridgeException("Error processing render lifecycle", e);
    }
View Full Code Here


   
    }

  protected void renderErrorPage(FacesContext context,
          BridgeRequestScope windowState, Exception e, String redirectViewId) {
    PortletBridgeContext bridgeContext = PortletBridgeContext
            .getCurrentInstance(context);
    PortletRequest request = (PortletRequest) context.getExternalContext()
            .getRequest();
    Object response = context.getExternalContext().getResponse();
    context.release();
    request.setAttribute(Bridge.VIEW_ID, redirectViewId);
    context = bridgeContext.getBridgeConfig().createFacesContext(request,
            response);
    windowState.restoreMessages(context);
    setupErrorParameters(context, e);
    bridgeContext.render(context);
  }
View Full Code Here

   * @param e
   * @return viewId of the error page, or <code>null</code> if no page configured for this exception.
   */
  protected String processException(FacesContext facesContext,
            BridgeRequestScope windowState, Exception e)  {
    PortletBridgeContext bridgeContext = PortletBridgeContext.getCurrentInstance(facesContext);
    Map<Class<? extends Throwable>, String> errorPages = bridgeContext.getBridgeConfig()
        .getErrorPages();
    return getErrorPage(e, errorPages);
  }
View Full Code Here

        delegate.writeState(context);
        stateResponseWriter.flush();
        String stateString = buff.toString();
        originalWriter.write(stateString);
        String stateValue = getStateValue(stateString);
          PortletBridgeContext bridgeContext = PortletBridgeContext.getCurrentInstance(context);
          if(null != bridgeContext){
            Map<String, String[]> requestParameters = bridgeContext.getRequestScope().getRequestParameters();
            if(null != stateValue){
            requestParameters.put(ResponseStateManager.VIEW_STATE_PARAM, new String[]{stateValue});
          } else {
            requestParameters.remove(ResponseStateManager.VIEW_STATE_PARAM);
          }
View Full Code Here

   private Map getPreferencesValuesMap(FacesContext context) {
    if (isPortletRequest()) {
      return ((PortletRequest) context.getExternalContext().getRequest())
          .getPreferences().getMap();
    } else {
      PortletBridgeContext bridgeContext = (PortletBridgeContext) context
          .getExternalContext().getRequestMap().get(
              PortletBridgeContext.REQUEST_PARAMETER_NAME);
      Map portletPreferencesMap = Collections.emptyMap();
      if (null != bridgeContext) {
           //TODO
View Full Code Here

      if (null == portletPhase && phaseId.equals(PhaseId.RENDER_RESPONSE)) {
         // For a servlet phase, put all portletbridge-related parameters
         // back to ajaxContext.

         BridgeRequestScope windowState = null;
         PortletBridgeContext bridgeContext = (PortletBridgeContext) context
                 .getExternalContext().getRequestMap().get(
                 PortletBridgeContext.REQUEST_PARAMETER_NAME);
         if (null != bridgeContext) {
            windowState = bridgeContext.getRequestScope();
         }

         if (null != ajaxContext && null != windowState) {
        Map<String,Object> commonAjaxParameters = ajaxContext.getCurrentInstance(
            context).getCommonAjaxParameters();

        commonAjaxParameters.put(RequestScopeManager.STATE_ID_PARAMETER,
            bridgeContext.getStateId().toString());
        commonAjaxParameters.put(
            AjaxPortletBridge.AJAX_NAMESPACE_PARAMETER, windowState
                .getNamespace());

      }
View Full Code Here

    assertParameters(request, response);
    if (log.isLoggable(Level.FINE)) {
      log.fine("Start bridge action request processing for portlet "
          + getPortletName());
    }
    PortletBridgeContext bridgeContext = initRequest(request, response, Bridge.PortletPhase.ACTION_PHASE);
    RequestScopeManager requestStateManager = RequestScopeManager.getInstance(request,numberOfRequestScopes);
    StateId stateId = requestStateManager
        .getStateId(request,response);
    bridgeContext.setStateId(stateId);
    BridgeRequestScope windowState = new BridgeRequestScope();
    bridgeContext.setRequestScope(windowState);
    FacesContext facesContext = createFacesContext(request, response);
    try {
      strategy.beforeActionRequest(facesContext);
      processIncomingParameters(facesContext, request);
      execute(facesContext);
      strategy.afterActionRequestExecute(facesContext);
      // save request scope variables and Faces Messages.
      if (!facesContext.getResponseComplete()) {
        // Setup portlet modes from parameters.
        Map<String, String[]> viewIdParameters = bridgeContext.getViewIdParameters();
        if (null != viewIdParameters && viewIdParameters.size() > 0) {
          processPortletParameters(response, stateId, facesContext,
              facesContext.getViewRoot().getViewId(),
              viewIdParameters);
        }
        processOutgoingParameters(facesContext,request,response);
        // Save view state for a render phases.
        facesContext.getApplication().getStateManager().saveView(
            facesContext);
        windowState.saveRequest(facesContext, true);
      } else {
        windowState.reset();
        String redirectViewId = bridgeContext.getRedirectViewId();
        if (null != redirectViewId) {
          windowState.setViewId(redirectViewId);
          // Save redirect request parameters.
          Map<String, String[]> newRequestParameters = bridgeContext
              .getRedirectRequestParameters();
          windowState.setRequestParameters(newRequestParameters);
          processPortletParameters(response, stateId, facesContext,
              redirectViewId, newRequestParameters);
          processOutgoingParameters(facesContext,request,response);
        }
      }
     
    } catch (Exception e) {
      // handle exception.
      exceptionHandler.processActionException(facesContext, windowState,
          e);
    } finally {
         if (null != bridgeContext.getRedirectViewId() || !facesContext.getResponseComplete()) {
       requestStateManager.saveRequestScope(stateId, windowState);
            response.setRenderParameter(RequestScopeManager.STATE_ID_PARAMETER, stateId.toString());
         }
      strategy.afterActionRequest(facesContext);
      facesContext.release();
View Full Code Here

      }
    }
  }

  private PortletBridgeContext createBridgeContext(PortletRequest request) {
    PortletBridgeContext bridgeContext = new PortletBridgeContext(this);
    request.setAttribute(PortletBridgeContext.REQUEST_PARAMETER_NAME,
        bridgeContext);
    bridgeContext.setInitialRequestAttributeNames(request
        .getAttributeNames());
    return bridgeContext;
  }
View Full Code Here

    }
    // TODO - detect head rendering.
    Object renderPartAttribute = request.getAttribute(RenderRequest.RENDER_PART);
    RenderResponse wrappedResponse = strategy.createResponseWrapper(response);

    PortletBridgeContext bridgeContext = initRequest(request, wrappedResponse, Bridge.PortletPhase.RENDER_PHASE);
    RequestScopeManager requestStateManager = RequestScopeManager.getInstance(request,numberOfRequestScopes);
    String namespace = wrappedResponse.getNamespace();
    StateId stateId = requestStateManager.getStateId(request, response);
    bridgeContext.setStateId(stateId);
    BridgeRequestScope windowState = requestStateManager.getRequestScope(
        stateId);
    if (null == windowState) {
      windowState = new BridgeRequestScope();
      requestStateManager.saveRequestScope(stateId, windowState);
    }
    bridgeContext.setRequestScope(windowState);
    FacesContext facesContext = createFacesContext(request, wrappedResponse);
    try {
      windowState.restoreRequest(facesContext, true);
      // set portletbridge title if its set.
      ResourceBundle bundle = portletConfig.getResourceBundle(request
          .getLocale());
      if (bundle != null) {
        String title = null;
        try {
          title = bundle.getString("javax.portlet.title");
          wrappedResponse.setTitle(title);
        } catch (Exception e) {
          // Ignore MissingResourceException
        }
      }

      try {
        // If we're using RichFaces, setup proper parameters for this render
        // request
        strategy.beforeRenderRequest(facesContext);
        processIncomingParameters(facesContext, request);
        String redirectViewId = bridgeContext.getRedirectViewId();
        if (null == redirectViewId) {
          if (null == facesContext.getViewRoot()) {
            // Restore faces view ( Listener should stop processing
            // after restoreView phase ).
            execute(facesContext);
            // TODO - store changed parameters into url's.
            // processOutgoingParameters(facesContext);
          }
          if (!facesContext.getResponseComplete()) {
            render(facesContext);
          }
          redirectViewId = bridgeContext.getRedirectViewId();
        }
        // detect redirect case. Reset response, clear request
        // variables as far as Seam state.
        // Perform new render phase with a new ViewId.
        // TODO - move page navigation from Seam phase listener to the Strategy.
        if (null != redirectViewId) {
          windowState.reset();
          windowState.setViewId(redirectViewId);

          Map<String, String[]> redirectParams = bridgeContext
              .getRedirectRequestParameters();

          // release old FacesContext.
          facesContext.release();
          // Reset attributes to initial state
          bridgeContext.resetRequestAttributes(request);
          wrappedResponse.resetBuffer();
          if (redirectParams != null) {
            windowState.setRequestParameters(redirectParams);
          }
View Full Code Here

    if (log.isLoggable(Level.FINE)) {
      log.fine("Start bridge resource request processing for portlet "
              + getPortletName());
    }
    PortletBridgeContext bridgeContext = initRequest(request, response, Bridge.PortletPhase.RESOURCE_PHASE);
    if (!strategy.serveResource(request, response)) {
      if (null == request.getParameter(Bridge.FACES_VIEW_ID_PARAMETER)
              && null == request
                      .getParameter(Bridge.FACES_VIEW_PATH_PARAMETER)) {
        String target = request.getResourceID();
        if (null != target) {
        try {
            PortletContext portletContext = getPortletConfig()
                    .getPortletContext();
            PortletRequestDispatcher dispatcher = portletContext
                    .getRequestDispatcher(target);
            if (null != dispatcher) {
              String serverInfo = portletContext.getServerInfo();
              if (null != serverInfo
                             && (serverInfo
                              .startsWith("JBossPortletContainer")
                      || serverInfo
                              .startsWith("GateInPortletContainer"))) {
                // HACK - Jboss portal does not handle 'forward'
                // method during resource requests.
                // see
                // https://jira.jboss.org/jira/browse/JBPORTAL-2432
                String mimeType = portletContext
                        .getMimeType(target);
                if (null == mimeType) {
                  int lastIndexOfSlash = target
                          .lastIndexOf('/');
                  if (lastIndexOfSlash >= 0) {
                    target = target
                            .substring(lastIndexOfSlash + 1);
                  }
                  int indexOfQuestion = target.indexOf('?');
                  if (indexOfQuestion >= 0) {
                    target = target.substring(0,
                            indexOfQuestion);
                  }
                  mimeType = portletContext
                          .getMimeType(target);
                }
                if (null != mimeType) {
                  response.setContentType(mimeType);
                }
                dispatcher.include(request, response);
              } else {
                dispatcher.forward(request, response);
              }
            }
        } catch (Exception e) {
          throwBridgeException(e);
        }
        } else {
          throw new BridgeException("Unable to serve resource");
        }

      } else {
        // FACES REQUEST.
        ResourceResponse wrappedResponse = strategy
                .createResponseWrapper(response);
        RequestScopeManager requestStateManager = RequestScopeManager
                .getInstance(request, numberOfRequestScopes);
        FacesContext facesContext = createFacesContext(request,
                wrappedResponse);
        StateId stateId = requestStateManager.getStateId(request,
                wrappedResponse);
        bridgeContext.setStateId(stateId);
        BridgeRequestScope windowState = requestStateManager
                .getRequestScope(stateId);
        if (null == windowState) {
          windowState = new BridgeRequestScope();
          requestStateManager.saveRequestScope(stateId, windowState);
        } else {
          windowState.reset();
        }
        bridgeContext.setRequestScope(windowState);
        try {
          strategy.beforeResourceRequest(facesContext);
          processIncomingParameters(facesContext, request);
          execute(facesContext);
          // TODO - create applicable processing function.
View Full Code Here

TOP

Related Classes of org.jboss.portletbridge.context.PortletBridgeContext

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.