Yes, this is a bug in RootPathDispatcher:
https://issues.apache.org/jira/browse/TAPESTRY-1627

Until it's fixed, if you really need to you can patch Tapestry
at runtime by adding the code below to your AppModule.

Cheers,
Nick.


    public void contributeMasterDispatcher(
        OrderedConfiguration<Dispatcher> configuration,
        PageRenderRequestHandler pageRenderRequestHandler,
        ComponentClassResolver componentClassResolver,
        @Symbol("tapestry.start-page-name")
        String startPageName,
        @InjectService("PageResponseRenderer")
        PageResponseRenderer pageResponseRenderer)
    {
        class RootPathDispatcherFix implements Dispatcher
        {
            private final ComponentClassResolver _componentClassResolver;

            private final PageRenderRequestHandler _handler;

            @SuppressWarnings("unused")
            private final PageResponseRenderer _renderer;

            private final String _startPageName;

            private final String[] _emptyContext = new String[0];

            public RootPathDispatcherFix(
                final ComponentClassResolver componentClassResolver,
                final PageRenderRequestHandler handler,
                final PageResponseRenderer renderer,
                final String startPageName)
            {
                _componentClassResolver = componentClassResolver;
                _handler = handler;
                _renderer = renderer;
                _startPageName = startPageName;
            }

            public boolean dispatch(Request request, final Response response)
                throws IOException
            {
                // Only match the root path
                if (!request.getPath().equals("/"))
                    return false;
                if (_componentClassResolver.isPageName(_startPageName))
                {
                    ActionResponseGenerator responseGenerator = 
_handler.handle(_startPageName,
                        _emptyContext);

                    if (responseGenerator != null)
                        responseGenerator.sendClientResponse(response);
                    return true;
                }
                return false;
            }
        }

        // Looks for the root path and renders the start page
        configuration.add("RootPathFix", new 
RootPathDispatcherFix(componentClassResolver,
            pageRenderRequestHandler, pageResponseRenderer, startPageName), 
"before:RootPath");
    }


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to