Thank You Nick. This helps!

On 7/11/07, Nick Westgate <[EMAIL PROTECTED]> wrote:
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]



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

Reply via email to