Author: craigmcc Date: Mon Apr 10 23:09:52 2006 New Revision: 393148 URL: http://svn.apache.org/viewcvs?rev=393148&view=rev Log: Migrate the initialization logic for configuring which ViewControllerMapper instance will be used from ShaleApplicationFiter to ViewViewHandler, since the org.apache.shale.view package is the only place this is actually used.
Modified: struts/shale/trunk/core-library/src/java/org/apache/shale/faces/ShaleApplicationFilter.java struts/shale/trunk/core-library/src/java/org/apache/shale/resources/Bundle.properties struts/shale/trunk/core-library/src/java/org/apache/shale/view/Constants.java struts/shale/trunk/core-library/src/java/org/apache/shale/view/faces/ViewViewHandler.java Modified: struts/shale/trunk/core-library/src/java/org/apache/shale/faces/ShaleApplicationFilter.java URL: http://svn.apache.org/viewcvs/struts/shale/trunk/core-library/src/java/org/apache/shale/faces/ShaleApplicationFilter.java?rev=393148&r1=393147&r2=393148&view=diff ============================================================================== --- struts/shale/trunk/core-library/src/java/org/apache/shale/faces/ShaleApplicationFilter.java (original) +++ struts/shale/trunk/core-library/src/java/org/apache/shale/faces/ShaleApplicationFilter.java Mon Apr 10 23:09:52 2006 @@ -158,16 +158,6 @@ "org/apache/shale/faces/shale-config.xml"; - /** - * <p>The name of the context initialization parameter that defines the - * fully qualified class name of the [EMAIL PROTECTED] ViewControllerMapper} to be - * used is stored. If not present, the default value is - * <code>org.apache.shale.view.DefaultViewControllerMapper</code>.</p> - */ - public static final String VIEW_CONTROLLER_MAPPER = - "org.apache.shale.view.VIEW_CONTROLLER_MAPPER"; - - // ------------------------------------------------------ Instance Variables @@ -316,8 +306,6 @@ } context = config.getServletContext(); - context.setAttribute(Constants.VIEW_MAPPER, - getViewControllerMapper()); // Initialize the Shale Tiger Extensions (if present) initTiger(config); @@ -391,46 +379,6 @@ parser.parse(url); return catalog; - - } - - - /** - * <p>Create and return the [EMAIL PROTECTED] ViewControllerMapper} instance - * we will use for this application - * - * @exception ServletException if no instance can be created - */ - private ViewControllerMapper getViewControllerMapper() throws ServletException { - - String className = context.getInitParameter(VIEW_CONTROLLER_MAPPER); - if (className == null) { - className = "org.apache.shale.view.impl.DefaultViewControllerMapper"; - } - ClassLoader cl = Thread.currentThread().getContextClassLoader(); - if (cl == null) { - cl = this.getClass().getClassLoader(); - } - try { - Class clazz = cl.loadClass(className); - return (ViewControllerMapper) clazz.newInstance(); - } catch (ClassCastException e) { - throw new ServletException - (messages.getMessage("filter.vcmCast", - new Object[] { className }), e); - } catch (ClassNotFoundException e) { - throw new ServletException - (messages.getMessage("filter.vcmClass", - new Object[] { className }), e); - } catch (IllegalAccessException e) { - throw new ServletException - (messages.getMessage("filter.vcmAccess", - new Object[] { className }), e); - } catch (InstantiationException e) { - throw new ServletException - (messages.getMessage("filter.vcmInstantiate", - new Object[] { className }), e); - } } Modified: struts/shale/trunk/core-library/src/java/org/apache/shale/resources/Bundle.properties URL: http://svn.apache.org/viewcvs/struts/shale/trunk/core-library/src/java/org/apache/shale/resources/Bundle.properties?rev=393148&r1=393147&r2=393148&view=diff ============================================================================== --- struts/shale/trunk/core-library/src/java/org/apache/shale/resources/Bundle.properties (original) +++ struts/shale/trunk/core-library/src/java/org/apache/shale/resources/Bundle.properties Mon Apr 10 23:09:52 2006 @@ -23,16 +23,16 @@ filter.initException=Exception occurred during init command filter.initializing=Initializing Shale Application Filter filter.parsingResource=Parsing default resource {0} -filter.vcmAccess=ViewControllerMapper class {0} does not have a public no-args constructor -filter.vcmCast=Class {0} does not implement ViewControllerMapper -filter.vcmClass=Cannot find ViewControllerMapper class {0} -filter.vcmInstantiate=ViewControllerMapper class {0} instance cannot be instantiated -# org.apache.shale.application.ShaleViewHandler +# org.apache.shale.view.faces.ViewViewHandler view.evalException=Evaluation exception creating a managed bean named {1} for viewId {0} view.notViewController=Bean for viewId {0} under name {1} is not a ViewController view.noViewController=No ViewController for viewId {0} found under name {1} view.noViewControllerMapper=No ViewControllerMapper has been configured for this application +view.vcmAccess=ViewControllerMapper class {0} does not have a public no-args constructor +view.vcmCast=Class {0} does not implement ViewControllerMapper +view.vcmClass=Cannot find ViewControllerMapper class {0} +view.vcmInstantiate=ViewControllerMapper class {0} instance cannot be instantiated # org.apache.shale.application.ShaleWebContext context.requestWrapper=Must be an HttpServletRequestWrapper Modified: struts/shale/trunk/core-library/src/java/org/apache/shale/view/Constants.java URL: http://svn.apache.org/viewcvs/struts/shale/trunk/core-library/src/java/org/apache/shale/view/Constants.java?rev=393148&r1=393147&r2=393148&view=diff ============================================================================== --- struts/shale/trunk/core-library/src/java/org/apache/shale/view/Constants.java (original) +++ struts/shale/trunk/core-library/src/java/org/apache/shale/view/Constants.java Mon Apr 10 23:09:52 2006 @@ -45,6 +45,16 @@ /** + * <p>The name of the context initialization parameter that defines the + * fully qualified class name of the [EMAIL PROTECTED] ViewControllerMapper} to be + * used is stored. If not present, the default value is + * <code>org.apache.shale.view.DefaultViewControllerMapper</code>.</p> + */ + public static final String VIEW_CONTROLLER_MAPPER = + "org.apache.shale.view.VIEW_CONTROLLER_MAPPER"; + + + /** * <p>Application scope attribute under which the * [EMAIL PROTECTED] ViewControllerMapper} for translating view identifiers * to class names of the corresponding [EMAIL PROTECTED] ViewController} Modified: struts/shale/trunk/core-library/src/java/org/apache/shale/view/faces/ViewViewHandler.java URL: http://svn.apache.org/viewcvs/struts/shale/trunk/core-library/src/java/org/apache/shale/view/faces/ViewViewHandler.java?rev=393148&r1=393147&r2=393148&view=diff ============================================================================== --- struts/shale/trunk/core-library/src/java/org/apache/shale/view/faces/ViewViewHandler.java (original) +++ struts/shale/trunk/core-library/src/java/org/apache/shale/view/faces/ViewViewHandler.java Mon Apr 10 23:09:52 2006 @@ -31,6 +31,7 @@ import javax.faces.el.VariableResolver; import javax.faces.render.RenderKit; import javax.faces.render.RenderKitFactory; +import javax.servlet.ServletException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -188,7 +189,54 @@ context.getExternalContext().getApplicationMap(). get(Constants.VIEW_MAPPER); } + if (mapper == null) { + mapper = getViewControllerMapperInstance(context); + context.getExternalContext().getApplicationMap(). + put(Constants.VIEW_MAPPER, mapper); + } return mapper; + } + + + /** + * <p>Create and return the [EMAIL PROTECTED] ViewControllerMapper} instance + * we will use for this application.</p> + * + * @param context <code>FacesContext</code> for the current request + */ + private ViewControllerMapper getViewControllerMapperInstance + (FacesContext context) { + + String className = + context.getExternalContext().getInitParameter(Constants.VIEW_CONTROLLER_MAPPER); + if (className == null) { + className = "org.apache.shale.view.impl.DefaultViewControllerMapper"; + } + ClassLoader cl = Thread.currentThread().getContextClassLoader(); + if (cl == null) { + cl = this.getClass().getClassLoader(); + } + try { + Class clazz = cl.loadClass(className); + return (ViewControllerMapper) clazz.newInstance(); + } catch (ClassCastException e) { + throw new FacesException + (messages.getMessage("view.vcmCast", + new Object[] { className }), e); + } catch (ClassNotFoundException e) { + throw new FacesException + (messages.getMessage("view.vcmClass", + new Object[] { className }), e); + } catch (IllegalAccessException e) { + throw new FacesException + (messages.getMessage("view.vcmAccess", + new Object[] { className }), e); + } catch (InstantiationException e) { + throw new FacesException + (messages.getMessage("view.vcmInstantiate", + new Object[] { className }), e); + } + } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]