public Void perform() throws IOException { handler.handleComponentEvent(parameters); return null; } });
public void handleComponentEvent(ComponentEventRequestParameters parameters, ComponentRequestHandler handler) throws IOException { handler.handleComponentEvent(parameters); invokeQueuedRenderer(); }
@Override public void handleComponentEvent( ComponentEventRequestParameters parameters, ComponentRequestHandler handler) throws IOException { if (logger.isTraceEnabled()) { logger.trace("handleComponentEvent"); } if (redirectUnauthorizedUser(parameters.getActivePageName())) { return; } handler.handleComponentEvent(parameters); }
public void handleComponentEvent(ComponentEventRequestParameters parameters, ComponentRequestHandler handler) throws IOException { globals.storeActivePageName(parameters.getActivePageName()); handler.handleComponentEvent(parameters); }
public boolean dispatch(Request request, Response response) throws IOException { ComponentEventRequestParameters parameters = linkEncoder.decodeComponentEventRequest(request); if (parameters == null) return false; // Inside this pipeline, may find that the component id does not exist (this check only occurs in production // mode) ... componentRequestHandler.handleComponentEvent(parameters); // ... in which case, this attribute is set. if (request.getAttribute(InternalConstants.REFERENCED_COMPONENT_NOT_FOUND) != null) { return false; } return true; } }
@Override public void handleComponentEvent(ComponentEventRequestParameters parameters, ComponentRequestHandler handler) throws IOException { Page containerPage = cache.get(parameters.getContainingPageName()); try { containerPage.getComponentElementByNestedId(parameters.getNestedComponentId()); handler.handleComponentEvent(parameters); } catch (UnknownValueException ex) { request.setAttribute(InternalConstants.REFERENCED_COMPONENT_NOT_FOUND, true); } }
handler.handleComponentEvent(expectedParameters);
@Test public void different_active_and_containing_pages() throws Exception { ComponentRequestHandler handler = mockComponentRequestHandler(); Request request = mockRequest(); Response response = mockResponse(); ComponentClassResolver resolver = mockComponentClassResolver(); LocalizationSetter ls = mockLocalizationSetter(); MetaDataLocator metaDataLocator = neverWhitelistProtected(); ComponentEventRequestParameters expectedParameters = new ComponentEventRequestParameters( "activepage", "mypage", "", "eventname", new EmptyEventContext(), new EmptyEventContext()); train_getPath(request, "/activepage:eventname"); expect(ls.isSupportedLocaleName("activepage:eventname")).andReturn(false); train_isPageName(resolver, "activepage", true); train_canonicalizePageName(resolver, "activepage", "activepage"); train_getParameter(request, InternalConstants.PAGE_CONTEXT_NAME, null); train_getParameter(request, InternalConstants.CONTAINER_PAGE_NAME, "mypage"); expect(request.getAttribute(InternalConstants.REFERENCED_COMPONENT_NOT_FOUND)).andStubReturn(null); train_canonicalizePageName(resolver, "mypage", "mypage"); train_for_request_locale(request, ls); handler.handleComponentEvent(expectedParameters); replay(); Dispatcher dispatcher = new ComponentEventDispatcher(handler, new ComponentEventLinkEncoderImpl(resolver, contextPathEncoder, ls, response, null, null, null, true, null, "", metaDataLocator, null)); assertTrue(dispatcher.dispatch(request, response)); verify(); }
@Test public void page_activation_context_in_request() throws Exception { ComponentRequestHandler handler = mockComponentRequestHandler(); Request request = mockRequest(); Response response = mockResponse(); ComponentClassResolver resolver = mockComponentClassResolver(); LocalizationSetter ls = mockLocalizationSetter(); MetaDataLocator metaDataLocator = neverWhitelistProtected(); ComponentEventRequestParameters expectedParameters = new ComponentEventRequestParameters( "mypage", "mypage", "", "eventname", new URLEventContext(contextValueEncoder, new String[] {"alpha", "beta"}), new EmptyEventContext()); train_getPath(request, "/mypage:eventname"); expect(ls.isSupportedLocaleName("mypage:eventname")).andReturn(false); train_isPageName(resolver, "mypage", true); train_canonicalizePageName(resolver, "mypage", "mypage"); train_getParameter(request, InternalConstants.PAGE_CONTEXT_NAME, "alpha/beta"); train_getParameter(request, InternalConstants.CONTAINER_PAGE_NAME, null); expect(request.getAttribute(InternalConstants.REFERENCED_COMPONENT_NOT_FOUND)).andStubReturn(null); train_for_request_locale(request, ls); handler.handleComponentEvent(expectedParameters); replay(); Dispatcher dispatcher = new ComponentEventDispatcher(handler, new ComponentEventLinkEncoderImpl(resolver, contextPathEncoder, ls, response, null, null, null, true, null, "", metaDataLocator, null)); assertTrue(dispatcher.dispatch(request, response)); verify(); }
private void test(String requestPath, String localeName, String containerPageName, String nestedComponentId, String eventType, String... eventContext) throws IOException { ComponentRequestHandler handler = mockComponentRequestHandler(); Request request = mockRequest(); Response response = mockResponse(); ComponentClassResolver resolver = mockComponentClassResolver(); LocalizationSetter localizationSetter = mockLocalizationSetter(); MetaDataLocator metaDataLocator = neverWhitelistProtected(); ComponentEventRequestParameters expectedParameters = new ComponentEventRequestParameters( containerPageName, containerPageName, nestedComponentId, eventType, new EmptyEventContext(), new URLEventContext(contextValueEncoder, eventContext)); train_getPath(request, requestPath); expect(localizationSetter.isSupportedLocaleName(localeName)).andReturn(false); train_isPageName(resolver, containerPageName, true); train_canonicalizePageName(resolver, containerPageName, containerPageName); train_getParameter(request, InternalConstants.PAGE_CONTEXT_NAME, null); train_getParameter(request, InternalConstants.CONTAINER_PAGE_NAME, null); expect(request.getAttribute(InternalConstants.REFERENCED_COMPONENT_NOT_FOUND)).andStubReturn(null); handler.handleComponentEvent(expectedParameters); train_for_request_locale(request, localizationSetter); replay(); Dispatcher dispatcher = new ComponentEventDispatcher(handler, new ComponentEventLinkEncoderImpl(resolver, contextPathEncoder, localizationSetter, response, null, null, null, true, null, "", metaDataLocator, null)); assertTrue(dispatcher.dispatch(request, response)); verify(); }