You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@shale.apache.org by Brody Wong <br...@funmobile.com> on 2007/08/05 12:23:23 UTC

Accessing Spring Beans inside ShaleApplication preprocess hook

I have written a preprocess filter for the commons chain from the
ShaleApplicationFilter. I have also successfully integrate Shale and Spring
using the value binding method. However, I would like to access  the Spring
Bean Factory inside the preprocess filter. Is there anyway to get an
instance of the Spring's WebApplicationContext inside the preprocess filter?
The following is the sample code I wrote: public class PermissionFilter
extends AbstractRegExpFilter {
    PermissionsManager permissionsManager ;

    /**
     * <p>Return the servlet path (if any) concatenated with the path info
     * (if any) for this request.</p>
     *
     * @param context <code>Context</code> for the current request
     */
    protected String value(ShaleWebContext context) {

        if (this.permissionsManager == null) {

            WebApplicationContext wac =
(WebApplicationContext)context.getContext() ;
            this.permissionsManager =
(PermissionsManager)wac.getBean("permissionsManager") ;

        }
        String servletPath = context.getRequest().getServletPath();
        if (servletPath == null) {
            servletPath = "";
        }
        String pathInfo = context.getRequest().getPathInfo();
        if (pathInfo == null) {
            pathInfo = "";
        }
        return servletPath + pathInfo ;

    }


}
But it fails when casting the servlet context to Spring's
WebApplicationContext. Thanks in advance for your help.
-- 
View this message in context: http://www.nabble.com/Accessing-Spring-Beans-inside-ShaleApplication-preprocess-hook-tf4219349.html#a12003589
Sent from the Shale - User mailing list archive at Nabble.com.


Re: Accessing Spring Beans inside ShaleApplication preprocess hook

Posted by Brody Wong <br...@funmobile.com>.
Found the answer: I used WebApplicationContextUtils to get the Spring
WebApplicationContext.  For example, this.webApplicationContext =
WebApplicationContextUtils.getWebApplicationContext(webContext.getContext());

Brody Wong wrote:
> 
> I have written a preprocess filter for the commons chain from the
> ShaleApplicationFilter. I have also successfully integrate Shale and
> Spring using the value binding method. However, I would like to access 
> the Spring Bean Factory inside the preprocess filter. Is there anyway to
> get an instance of the Spring's WebApplicationContext inside the
> preprocess filter? The following is the sample code I wrote: public class
> PermissionFilter extends AbstractRegExpFilter {
>     PermissionsManager permissionsManager ;
> 
>     /**
>      * <p>Return the servlet path (if any) concatenated with the path info
>      * (if any) for this request.</p>
>      *
>      * @param context <code>Context</code> for the current request
>      */
>     protected String value(ShaleWebContext context) {
> 
>         if (this.permissionsManager == null) {
> 
>             WebApplicationContext wac =
> (WebApplicationContext)context.getContext() ;
>             this.permissionsManager =
> (PermissionsManager)wac.getBean("permissionsManager") ;
> 
>         }
>         String servletPath = context.getRequest().getServletPath();
>         if (servletPath == null) {
>             servletPath = "";
>         }
>         String pathInfo = context.getRequest().getPathInfo();
>         if (pathInfo == null) {
>             pathInfo = "";
>         }
>         return servletPath + pathInfo ;
> 
>     }
> 
> 
> }
> But it fails when casting the servlet context to Spring's
> WebApplicationContext. Thanks in advance for your help.
> 

-- 
View this message in context: http://www.nabble.com/Accessing-Spring-Beans-inside-ShaleApplication-preprocess-hook-tf4219349.html#a12010504
Sent from the Shale - User mailing list archive at Nabble.com.