code: @Override
      public PortletDelegationDispatcher createRequestDispatcher(
              PortletRequest portletRequest, IPortletDefinitionId delegatePortletDefinitionId) {
          final HttpServletRequest request =
                  this.portalRequestUtils.getPortletHttpRequest(portletRequest);
  
          final String windowID = portletRequest.getWindowID();
          final IPortletWindowId parentPortletWindowId =
                  this.portletWindowRegistry.getPortletWindowId(request, windowID);
  
          final IPortletEntity delegatePortletEntity =
                  this.portletEntityRegistry.getOrCreateDelegatePortletEntity(
                          request, parentPortletWindowId, delegatePortletDefinitionId);
          final IPortletEntityId delegatePortletEntityId = delegatePortletEntity.getPortletEntityId();
  
          final IPortletWindow delegatePortletWindow =
                  this.portletWindowRegistry.createDelegatePortletWindow(
                          request, delegatePortletEntityId, parentPortletWindowId);
  
          final IPerson person = this.personManager.getPerson(request);
          final int userId = person.getID();
  
          return new PortletDelegationDispatcherImpl(
                  delegatePortletWindow,
                  userId,
                  portalRequestUtils,
                  personManager,
                  portletRenderer,
                  portalUrlProvider,
                  portletDelegationManager);
      }
docs: /* (non-Javadoc)
  @see org.apereo.portal.api.portlet.PortletDelegationLocator#createRequestDispatcher(org.apereo.portal.portlet.om.IPortletDefinitionId)