You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2010/10/02 00:01:32 UTC

svn commit: r1003667 - in /myfaces/core/trunk/impl/src/main/java/org/apache/myfaces: resource/InternalClassLoaderResourceLoader.java view/facelets/FaceletViewDeclarationLanguage.java webapp/AbstractFacesInitializer.java

Author: lu4242
Date: Fri Oct  1 22:01:31 2010
New Revision: 1003667

URL: http://svn.apache.org/viewvc?rev=1003667&view=rev
Log:
MYFACES-2936 Add new utility class for init parameters WebConfigParamUtils

Modified:
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/resource/InternalClassLoaderResourceLoader.java
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/webapp/AbstractFacesInitializer.java

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/resource/InternalClassLoaderResourceLoader.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/resource/InternalClassLoaderResourceLoader.java?rev=1003667&r1=1003666&r2=1003667&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/resource/InternalClassLoaderResourceLoader.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/resource/InternalClassLoaderResourceLoader.java Fri Oct  1 22:01:31 2010
@@ -21,7 +21,6 @@ package org.apache.myfaces.resource;
 import java.io.InputStream;
 import java.net.URL;
 
-import javax.faces.context.ExternalContext;
 import javax.faces.context.FacesContext;
 
 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFWebConfigParam;
@@ -30,6 +29,7 @@ import org.apache.myfaces.shared_impl.re
 import org.apache.myfaces.shared_impl.resource.ResourceMeta;
 import org.apache.myfaces.shared_impl.resource.ResourceMetaImpl;
 import org.apache.myfaces.shared_impl.util.ClassUtils;
+import org.apache.myfaces.shared_impl.util.WebConfigParamUtils;
 
 /**
  * A resource loader implementation which loads resources from the thread ClassLoader.
@@ -52,8 +52,8 @@ public class InternalClassLoaderResource
     public InternalClassLoaderResourceLoader(String prefix)
     {
         super(prefix);
-        _useMultipleJsFilesForJsfUncompressedJs = _getBooleanParameter(FacesContext.getCurrentInstance().getExternalContext(),
-                USE_MULTIPLE_JS_FILES_FOR_JSF_UNCOMPRESSED_JS, null, false);
+        _useMultipleJsFilesForJsfUncompressedJs = WebConfigParamUtils.getBooleanInitParameter(FacesContext.getCurrentInstance().getExternalContext(),
+                USE_MULTIPLE_JS_FILES_FOR_JSF_UNCOMPRESSED_JS, false);
     }
 
     @Override
@@ -163,40 +163,4 @@ public class InternalClassLoaderResource
         return false;
     }
 
-    private String _getStringParameter(ExternalContext context, String name, String deprecatedName)
-    {
-        String param = context.getInitParameter(name);
-        
-        if ((param == null) && (deprecatedName != null))
-        {
-            param = context.getInitParameter (deprecatedName);
-        }
-        
-        if (param == null)
-        {
-            return null;
-        }
-
-        param = param.trim();
-        if (param.length() == 0)
-        {
-            return null;
-        }
-
-        return param;
-    }
-
-    private boolean _getBooleanParameter(ExternalContext context, String name, String deprecatedName, boolean defaultValue)
-    {
-        String param = _getStringParameter(context, name, deprecatedName);
-        if (param == null)
-        {
-            return defaultValue;
-        }
-        else
-        {
-            return Boolean.parseBoolean(param.toLowerCase());
-        }
-    }
-
 }

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java?rev=1003667&r1=1003666&r2=1003667&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java Fri Oct  1 22:01:31 2010
@@ -91,6 +91,7 @@ import org.apache.myfaces.shared_impl.ap
 import org.apache.myfaces.shared_impl.config.MyfacesConfig;
 import org.apache.myfaces.shared_impl.util.ClassUtils;
 import org.apache.myfaces.shared_impl.util.StringUtils;
+import org.apache.myfaces.shared_impl.util.WebConfigParamUtils;
 import org.apache.myfaces.shared_impl.view.ViewDeclarationLanguageBase;
 import org.apache.myfaces.view.ViewMetadataBase;
 import org.apache.myfaces.view.facelets.FaceletViewHandler.NullWriter;
@@ -152,6 +153,8 @@ public class FaceletViewDeclarationLangu
     
     @JSFWebConfigParam(since="2.0")
     private final static String PARAM_BUFFER_SIZE_DEPRECATED = "facelets.BUFFER_SIZE";
+    
+    private final static String[] PARAMS_BUFFER_SIZE = {PARAM_BUFFER_SIZE, PARAM_BUFFER_SIZE_DEPRECATED};
 
     //private final static String PARAM_BUILD_BEFORE_RESTORE = "facelets.BUILD_BEFORE_RESTORE";
 
@@ -160,8 +163,13 @@ public class FaceletViewDeclarationLangu
     
     @JSFWebConfigParam(since="2.0")
     private final static String PARAM_DECORATORS_DEPRECATED = "facelets.DECORATORS";
+    
+    private final static String[] PARAMS_DECORATORS = {PARAM_DECORATORS, PARAM_DECORATORS_DEPRECATED};
 
-    @JSFWebConfigParam(since="2.0")
+    /**
+     * Constant used by EncodingHandler to indicate the current encoding of the page being built,
+     * and indicate which one is the response encoding on getResponseEncoding(FacesContext, String) method.
+     */
     public final static String PARAM_ENCODING = "facelets.Encoding";
 
     @JSFWebConfigParam(since="2.0")
@@ -169,6 +177,8 @@ public class FaceletViewDeclarationLangu
     
     @JSFWebConfigParam(since="2.0")
     private final static String PARAM_LIBRARIES_DEPRECATED = "facelets.LIBRARIES";
+    
+    private final static String[] PARAMS_LIBRARIES = {PARAM_LIBRARIES, PARAM_LIBRARIES_DEPRECATED};
 
     @JSFWebConfigParam(since="2.0")
     public final static String PARAM_REFRESH_PERIOD = "javax.faces.FACELETS_REFRESH_PERIOD";
@@ -176,17 +186,23 @@ public class FaceletViewDeclarationLangu
     @JSFWebConfigParam(since="2.0")
     private final static String PARAM_REFRESH_PERIOD_DEPRECATED = "facelets.REFRESH_PERIOD";
     
+    private final static String[] PARAMS_REFRESH_PERIOD = {PARAM_REFRESH_PERIOD, PARAM_REFRESH_PERIOD_DEPRECATED};
+    
     @JSFWebConfigParam(since="2.0")
     public final static String PARAM_RESOURCE_RESOLVER = "javax.faces.FACELETS_RESOURCE_RESOLVER";
     
     @JSFWebConfigParam(since="2.0")
     private final static String PARAM_RESOURCE_RESOLVER_DEPRECATED = "facelets.RESOURCE_RESOLVER";
     
+    private final static String[] PARAMS_RESOURCE_RESOLVER = {PARAM_RESOURCE_RESOLVER, PARAM_RESOURCE_RESOLVER_DEPRECATED};
+    
     @JSFWebConfigParam(since="2.0")
     public final static String PARAM_SKIP_COMMENTS = "javax.faces.FACELETS_SKIP_COMMENTS";
     
     @JSFWebConfigParam(since="2.0")
     private final static String PARAM_SKIP_COMMENTS_DEPRECATED = "facelets.SKIP_COMMENTS";
+    
+    private final static String[] PARAMS_SKIP_COMMENTS = {PARAM_SKIP_COMMENTS, PARAM_SKIP_COMMENTS_DEPRECATED};
 
     //public final static String PARAM_VIEW_MAPPINGS = "javax.faces.FACELETS_VIEW_MAPPINGS";
     
@@ -1358,13 +1374,13 @@ public class FaceletViewDeclarationLangu
         // refresh period
         long refreshPeriod;
         if(context.isProjectStage(ProjectStage.Production))
-            refreshPeriod = _getLongParameter(eContext, PARAM_REFRESH_PERIOD, PARAM_REFRESH_PERIOD_DEPRECATED, DEFAULT_REFRESH_PERIOD_PRODUCTION);
+            refreshPeriod = WebConfigParamUtils.getLongInitParameter(eContext, PARAMS_REFRESH_PERIOD, DEFAULT_REFRESH_PERIOD_PRODUCTION);
         else
-            refreshPeriod = _getLongParameter(eContext, PARAM_REFRESH_PERIOD, PARAM_REFRESH_PERIOD_DEPRECATED, DEFAULT_REFRESH_PERIOD);
+            refreshPeriod = WebConfigParamUtils.getLongInitParameter(eContext, PARAMS_REFRESH_PERIOD, DEFAULT_REFRESH_PERIOD);
         
         // resource resolver
         ResourceResolver resolver = new DefaultResourceResolver();
-        String faceletsResourceResolverClassName = _getStringParameter(eContext, PARAM_RESOURCE_RESOLVER, PARAM_RESOURCE_RESOLVER_DEPRECATED);
+        String faceletsResourceResolverClassName = WebConfigParamUtils.getStringInitParameter(eContext, PARAMS_RESOURCE_RESOLVER, null);
         if (faceletsResourceResolverClassName != null)
         {
             ArrayList<String> classNames = new ArrayList<String>(1);
@@ -1695,7 +1711,7 @@ public class FaceletViewDeclarationLangu
      */
     protected void loadDecorators(FacesContext context, Compiler compiler)
     {
-        String param = _getStringParameter(context.getExternalContext(), PARAM_DECORATORS, PARAM_DECORATORS_DEPRECATED);
+        String param = WebConfigParamUtils.getStringInitParameter(context.getExternalContext(), PARAMS_DECORATORS);
         if (param != null)
         {
             for (String decorator : param.split(";"))
@@ -1736,7 +1752,7 @@ public class FaceletViewDeclarationLangu
         compiler.addTagLibrary(new CompositeLibrary());
         compiler.addTagLibrary(new CompositeResourceLibrary());
 
-        String param = _getStringParameter(eContext, PARAM_LIBRARIES, PARAM_LIBRARIES_DEPRECATED);
+        String param = WebConfigParamUtils.getStringInitParameter(eContext, PARAMS_LIBRARIES);
         if (param != null)
         {
             for (String library : param.split(";"))
@@ -1780,7 +1796,7 @@ public class FaceletViewDeclarationLangu
         ExternalContext eContext = context.getExternalContext();
 
         // skip comments?
-        compiler.setTrimmingComments(_getBooleanParameter(eContext, PARAM_SKIP_COMMENTS, PARAM_SKIP_COMMENTS_DEPRECATED, false));
+        compiler.setTrimmingComments(WebConfigParamUtils.getBooleanInitParameter(eContext, PARAMS_SKIP_COMMENTS, false));
     }
 
     /**
@@ -1803,72 +1819,6 @@ public class FaceletViewDeclarationLangu
     }
 
     /**
-     * Gets the boolean init parameter value from the specified context. If the parameter was not specified, the default
-     * value is used instead.
-     * 
-     * TODO: This method should be in an utility class. Anyone knows if we have such a class already? -= SL =-
-     * 
-     * @param context
-     *            the application's external context
-     * @param name
-     *            the init parameter's name
-     * @param deprecatedName
-     *            the init parameter's deprecated name.
-     * @param defaultValue
-     *            the default value to return in case the parameter was not set
-     * 
-     * @return the init parameter value as a boolean
-     * 
-     * @throws NullPointerException
-     *             if context or name is <code>null</code>
-     */
-    private boolean _getBooleanParameter(ExternalContext context, String name, String deprecatedName, boolean defaultValue)
-    {
-        String param = _getStringParameter(context, name, deprecatedName);
-        if (param == null)
-        {
-            return defaultValue;
-        }
-        else
-        {
-            return Boolean.parseBoolean(param.toLowerCase());
-        }
-    }
-
-    /**
-     * Gets the int init parameter value from the specified context. If the parameter was not specified, the default
-     * value is used instead.
-     * 
-     * TODO: This method should be in an utility class. Anyone knows if we have such a class already? -= SL =-
-     * 
-     * @param context
-     *            the application's external context
-     * @param name
-     *            the init parameter's name
-     * @param deprecatedName
-     *            the init parameter's deprecated name.
-     * @param defaultValue
-     *            the default value to return in case the parameter was not set
-     * 
-     * @return the init parameter value as a int
-     * 
-     * @throws NullPointerException
-     *             if context or name is <code>null</code>
-     */
-    private int _getIntegerParameter(ExternalContext context, String name, String deprecatedName, int defaultValue)
-    {
-        String param = _getStringParameter(context, name, deprecatedName);
-        if (param == null)
-        {
-            return defaultValue;
-        }
-        else
-        {
-            return Integer.parseInt(param);
-        }
-    }
-
-    /**
      * Gets the Facelet representing the specified view identifier.
      * 
      * @param viewId
@@ -1907,124 +1857,11 @@ public class FaceletViewDeclarationLangu
         }
     }
 
-    /**
-     * Gets the init parameter value from the specified context and instanciate it. If the parameter was not specified,
-     * the default value is used instead.
-     * 
-     * TODO: This method should be in an utility class. Anyone knows if we have such a class already? -= SL =-
-     * 
-     * @param context
-     *            the application's external context
-     * @param name
-     *            the init parameter's name
-     * @param deprecatedName
-     *            the init parameter's deprecated name.
-     * @param defaultValue
-     *            the default value to return in case the parameter was not set
-     * 
-     * @return the init parameter value as an object instance
-     * 
-     * @throws NullPointerException
-     *             if context or name is <code>null</code>
-     */
-    @SuppressWarnings("unchecked")
-    private <T> T _getInstanceParameter(ExternalContext context, String name, String deprecatedName, T defaultValue)
-    {
-        String param = _getStringParameter(context, name, deprecatedName);
-        if (param == null)
-        {
-            return defaultValue;
-        }
-        else
-        {
-            try
-            {
-                return (T) ReflectionUtil.forName(param).newInstance();
-            }
-            catch (Exception e)
-            {
-                throw new FacesException("Error Initializing Object[" + param + "]", e);
-            }
-        }
-    }
-
-    /**
-     * Gets the long init parameter value from the specified context. If the parameter was not specified, the default
-     * value is used instead.
-     * 
-     * TODO: This method should be in an utility class. Anyone knows if we have such a class already? -= SL =-
-     * 
-     * @param context
-     *            the application's external context
-     * @param name
-     *            the init parameter's name
-     * @param deprecatedName
-     *            the init parameter's deprecated name.
-     * @param defaultValue
-     *            the default value to return in case the parameter was not set
-     * 
-     * @return the init parameter value as a long
-     * 
-     * @throws NullPointerException
-     *             if context or name is <code>null</code>
-     */
-    private long _getLongParameter(ExternalContext context, String name, String deprecatedName, long defaultValue)
-    {
-        String param = _getStringParameter(context, name, deprecatedName);
-        if (param == null)
-        {
-            return defaultValue;
-        }
-        else
-        {
-            return Long.parseLong(param);
-        }
-    }
-
-    /**
-     * Gets the String init parameter value from the specified context. If the parameter is an empty String or a String
-     * containing only white space, this method returns <code>null</code>
-     * 
-     * TODO: This method should be in an utility class. Anyone knows if we have such a class already? -= SL =-
-     * 
-     * @param context
-     *            the application's external context
-     * @param name
-     *            the init parameter's name
-     * @param deprecatedName
-     *            the init parameter's deprecated name.
-     *
-     * @return the parameter if it was specified and was not empty, <code>null</code> otherwise
-     * 
-     * @throws NullPointerException
-     *             if context or name is <code>null</code>
-     */
-    private String _getStringParameter(ExternalContext context, String name, String deprecatedName)
-    {
-        String param = context.getInitParameter(name);
-        
-        if ((param == null) && (deprecatedName != null))
-        {
-            param = context.getInitParameter (deprecatedName);
-        }
-        
-        if (param == null)
-        {
-            return null;
-        }
 
-        param = param.trim();
-        if (param.length() == 0)
-        {
-            return null;
-        }
-
-        return param;
-    }
 
     private void _initializeBuffer(ExternalContext context)
     {
-        _bufferSize = _getIntegerParameter(context, PARAM_BUFFER_SIZE, PARAM_BUFFER_SIZE_DEPRECATED, -1);
+        _bufferSize = WebConfigParamUtils.getIntegerInitParameter(context, PARAMS_BUFFER_SIZE, -1);
     }
 
     private void _initializeMode(ExternalContext context)
@@ -2039,11 +1876,11 @@ public class FaceletViewDeclarationLangu
         
         // In jsf 2.0 this code evolve as PartialStateSaving feature
         //_buildBeforeRestore = _getBooleanParameter(context, PARAM_BUILD_BEFORE_RESTORE, false);
-        _partialStateSaving = _getBooleanParameter(context, 
-                StateManager.PARTIAL_STATE_SAVING_PARAM_NAME, null, partialStateSavingDefault);
+        _partialStateSaving = WebConfigParamUtils.getBooleanInitParameter(context, 
+                StateManager.PARTIAL_STATE_SAVING_PARAM_NAME, partialStateSavingDefault);
         
-        String [] viewIds = StringUtils.splitShortString(_getStringParameter(context,
-                StateManager.FULL_STATE_SAVING_VIEW_IDS_PARAM_NAME, null), ',');
+        String [] viewIds = StringUtils.splitShortString(WebConfigParamUtils.getStringInitParameter(context,
+                StateManager.FULL_STATE_SAVING_VIEW_IDS_PARAM_NAME), ',');
         
         if (viewIds.length > 0)
         {
@@ -2067,18 +1904,6 @@ public class FaceletViewDeclarationLangu
         return _partialStateSaving && !(_viewIds != null && _viewIds.contains(viewId) );
     }
     
-    /**
-     * Determines if the application is currently in devlopment mode.
-     * 
-     * @param context the current FacesContext
-     * 
-     * @return <code>true</code> if the application is in devlopment mode, <code>false</code> otherwise
-     */
-    private boolean _isDevelopmentMode(FacesContext context)
-    {
-        return ProjectStage.Development.equals(context.getApplication().getProjectStage());
-    }
-
     private class FaceletViewMetadata extends ViewMetadataBase
     {
         /**

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/webapp/AbstractFacesInitializer.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/webapp/AbstractFacesInitializer.java?rev=1003667&r1=1003666&r2=1003667&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/webapp/AbstractFacesInitializer.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/webapp/AbstractFacesInitializer.java Fri Oct  1 22:01:31 2010
@@ -30,6 +30,7 @@ import org.apache.myfaces.context.servle
 import org.apache.myfaces.context.servlet.StartupServletExternalContextImpl;
 import org.apache.myfaces.shared_impl.context.ExceptionHandlerImpl;
 import org.apache.myfaces.shared_impl.util.StateUtils;
+import org.apache.myfaces.shared_impl.util.WebConfigParamUtils;
 import org.apache.myfaces.shared_impl.webapp.webxml.WebXml;
 
 import javax.el.ExpressionFactory;
@@ -321,7 +322,7 @@ public abstract class AbstractFacesIniti
      *         <code>null</code>, if no no custom implementation was specified
      */
     protected static ExpressionFactory getUserDefinedExpressionFactory(ExternalContext externalContext) {
-        String expressionFactoryClassName = externalContext.getInitParameter(EXPRESSION_FACTORY);
+        String expressionFactoryClassName = WebConfigParamUtils.getStringInitParameter(externalContext, EXPRESSION_FACTORY);
         if (expressionFactoryClassName != null
             && expressionFactoryClassName.trim().length() > 0) {
             if (log.isLoggable(Level.FINE)) {