I think you can replace thier RegistryFactoryBean with the following
and still use thier ServiceFactoryBeans. (whipped this up, it's
untested)


Geoff

/**
 * [EMAIL PROTECTED] FactoryBean} implementation that locates the HiveMind 
[EMAIL PROTECTED]
Registry} for a Tapestry
 * servlet. <p/> This assumes that the Tapestry servlet has already been inited.
 */
public class TapestryRegistryLocatorBean implements FactoryBean,
InitializingBean,
        ApplicationContextAware
{

    // org.apache.tapestry.ApplicationServlet defines this but only privately!
    public static final String REGISTRY_KEY_PREFIX =
"org.apache.tapestry.Registry:";

    private WebApplicationContext applicationContext;

    private String tapestryServletName;

    private Registry registry;

    public Object getObject() throws Exception
    {
        return this.registry;
    }

    public Class getObjectType()
    {
        return Registry.class;
    }

    public boolean isSingleton()
    {
        return true;
    }

    public void setApplicationContext(ApplicationContext
applicationContext) throws BeansException
    {
        if (!(applicationContext instanceof WebApplicationContext))
            throw new FatalBeanException(
                    "TapestryRegistryLocatorBean must be installed in
a Spring WebApplicationContext!");

        this.applicationContext = (WebApplicationContext) applicationContext;
    }

    public void afterPropertiesSet() throws Exception
    {
        ServletContext context = applicationContext.getServletContext();

        String registryKey = REGISTRY_KEY_PREFIX + this.tapestryServletName;

        registry = (Registry) context.getAttribute(registryKey);

    }

    public void setTapestryServletName(String tapestryServletName)
    {
        this.tapestryServletName = tapestryServletName;
    }
}



On 1/2/06, John Smith <[EMAIL PROTECTED]> wrote:
> I am using acegi with spring for the web security of my site. However, the
> login process needs to be able to query the database to get information
> about the user account (something different than just validating username
> and password). Then I need to set the username on the Visit object. I
> already have acegi working, and I already have a DAO for user information
> working in HveMind.
>
> Now I am trying to use the DAO from HivemMind in my acegi security beans. I
> could just create a spring DAO and then just have two sets DAOs (one for
> spring and one for hivemind), but I would like the spring beans to use the
> HiveMind managed DAOs.
>
> I have looked into springmodules which provides access to HiveMind services
> through spring, but it looks like it actually is just creating a new
> Hivemind registry inside spring. It's not using the same instance of the
> registry that Tapestry is using. This may be ok, but I am concerned about
> thread saftey, and other concurrency problems to resources that HiveMind may
> access, like the db.
>
> I am thinking about using the Login page as the bridge between the two. I
> would inject a spring bean into the page, and a HiveMind service. Then
> spring and HiveMind would be in the same place at the same time and I could
> set a reference to HiveMind services on the spring bean.
>
> Anyone have any ideas on this? There is probably a better way.
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


--
The Spindle guy.           http://spindle.sf.net
Get help with Spindle:   
http://lists.sourceforge.net/mailman/listinfo/spindle-user
Announcement Feed:    
http://www.jroller.com/rss/glongman?catname=/Announcements
Feature Updates:            http://spindle.sf.net/updates

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

Reply via email to