Does the following wiki page still reflect the current/recommended way
of integrating Tapestry 4.0 with Spring?

http://wiki.apache.org/jakarta-tapestry/Tapestry4Spring

I used something similar in my project.  While it works - it doesn't
seem to be the "built-in support for Spring" that I'd suspect from
Tapestry/Hivemind.  Ideally, no Java code would be needed.

Here's what I did:

package org.appfuse.web;

....

public class SpringFactory extends SpringBeanFactoryHolderImpl
implements RegistryShutdownListener {
    private WebContext context;

    public void setContext(WebContext webcontext) {
        context = webcontext;
    }

    public BeanFactory getBeanFactory() {
        if (super.getBeanFactory() == null) {
            ApplicationContext ctx = (ApplicationContext)
               
context.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
            setBeanFactory(ctx);
        }
        return super.getBeanFactory();
    }

    public void registryDidShutdown() {
        ((ConfigurableApplicationContext) getBeanFactory()).close();
    }
}

/WEB-INF/hivemodule.xml:

    <implementation service-id="hivemind.lib.DefaultSpringBeanFactoryHolder">
        <invoke-factory>
            <construct autowire-services="false"
class="org.appfuse.web.SpringFactory">
                <event-listener service-id="hivemind.ShutdownCoordinator"/>
                <set-object property="context"
value="service:tapestry.globals.WebContext"/>
            </construct>
        </invoke-factory>
    </implementation>

Thanks,

Matt

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

Reply via email to