Wouldn't the PageFactory complicate config? So instead of:
web.xml:
<servlet>SpringClickServlet</servlet>

one would need to do:

web.xml:
<servlet>ClickServlet</servlet>

click.xml

<click-app>
    <page-factory-service classname="org.example.SpringPageFactoryService"/>
    <page-interceptor  classname="org.example.SpringPageInterceptor"/>
</click-app>


I'm not against the idea, I just don't see the use case being solved yet?

Is there something in CDI that won't work with a ClickServlet subclass eg: 
CDIClickServlet?

Would it help if page creation is moved to ConfigService?

Kind regards

Bob

On 2013/04/27 03:05, Dennis M. J. Yerger wrote:
Thanks for the link, Bob. After examining the SpringClickServlet source code, I believe most of the code can fit into an implementation of PageFactoryService. The only questionable part of the code would be the contents of activatePageInstance(). Subclassing ClickServlet is really only necessary if you want to override activatePageInstance() to support stateful pages. As an alternative, The activatePageInstance() contents can go into an implementation of PageInterceptor, making a subclass of ClickServlet unnecessary. Any other setup code should nicely into PageFactoryService.onInit().

An xml-based configuration might look like this:

<click-app>
     ...
     <page-factory-service classname="org.example.SpringPageFactoryService"/>
     <page-interceptor  classname="org.example.SpringPageInterceptor"/>
</click-app>

The Spring application context may be stored as a servlet context attribute so it can be accessed by both the interceptor and page factory.

----------------------------------------------------------------------------------------------------
Date: Fri, 26 Apr 2013 20:44:04 +0200
From: [email protected]
To: [email protected]
Subject: Re: Page factory service

It's in the extras package 'spring'.

http://svn.apache.org/repos/asf/click/trunk/click/extras/src/org/apache/click/extras/spring/SpringClickServlet.java

Kind regards

Bob

On 2013/04/26 19:03, Dennis M. J. Yerger wrote:

    Hi, Bob. I have not seen the code for SpringClickServlet, so I cannot 
determine whether
    subclassing is necessary. Would you post a link to the source code?

    
----------------------------------------------------------------------------------------------------
    Date: Fri, 26 Apr 2013 13:05:31 +0200
    From: [email protected] <mailto:[email protected]>
    To: [email protected] <mailto:[email protected]>
    Subject: Re: Page factory service

    Hi Denis,

    On 2013/04/25 22:13, Dennis M. J. Yerger wrote:

        After examining the ClickServlet class, I noticed the newPageInstance() 
method, which is
        where new instances of Page objects are created. By default, 
newPageInstance() calls
        Class.newInstance() on the given class. This can be overridden by 
subclassing
        ClickServlet. However, I believe this functionality should be factored 
out into a separate
        class. A separate page factory would allow page objects to be created 
in more flexible
        ways (e.g., from Spring contexts or Tapestry IoC registries) without 
altering the
        ClickServlet. I


    Looking at SpringClickServlet there seems to be quite a bit going on in 
there which doesn't
    deal only with newPageIntance. So with a PageFactory in place, wouldn't 
Spring still need to
    subclass ClickServlet to work?

    Kind regards

    Bob



Reply via email to