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 2012/03/12 22:52:29 UTC

svn commit: r1299895 - in /myfaces/core/trunk/shared-public: ./ src/main/java/org/apache/myfaces/shared/util/

Author: lu4242
Date: Mon Mar 12 21:52:29 2012
New Revision: 1299895

URL: http://svn.apache.org/viewvc?rev=1299895&view=rev
Log:
synch with myfaces-commons

Modified:
    myfaces/core/trunk/shared-public/pom.xml
    myfaces/core/trunk/shared-public/src/main/java/org/apache/myfaces/shared/util/ExternalContextUtils.java
    myfaces/core/trunk/shared-public/src/main/java/org/apache/myfaces/shared/util/SelectItemsIterator.java
    myfaces/core/trunk/shared-public/src/main/java/org/apache/myfaces/shared/util/WebConfigParamUtils.java

Modified: myfaces/core/trunk/shared-public/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/shared-public/pom.xml?rev=1299895&r1=1299894&r2=1299895&view=diff
==============================================================================
--- myfaces/core/trunk/shared-public/pom.xml (original)
+++ myfaces/core/trunk/shared-public/pom.xml Mon Mar 12 21:52:29 2012
@@ -113,100 +113,6 @@
            </execution>
          </executions>
       </plugin>
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>build-helper-maven-plugin</artifactId>
-        <version>1.5</version>
-        <executions>
-          <execution>
-            <id>add-resource</id>
-            <phase>generate-resources</phase>
-            <goals>
-              <goal>add-resource</goal>
-            </goals>
-            <configuration>
-              <resources>
-                <resource>
-                  <directory>${project.build.directory}/generated-resources/myfaces-javascript-plugin/</directory>
-               </resource>
-              </resources>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>    
-      <plugin>
-          <artifactId>myfaces-javascript-plugin</artifactId>
-          <groupId>org.apache.myfaces.buildtools</groupId>
-          <version>1.0.1</version>
-          <extensions>true</extensions>
-          <executions>
-               <execution>
-                  <id>compile-myfacesscripts</id>
-                  <goals>
-                      <goal>compile</goal>
-                  </goals>
-                  <phase>generate-resources</phase>
-                  <configuration>
-                      <descriptor>${basedir}/src/assembler/myfacesscripts-compiler.xml</descriptor>
-                      <outputDirectory>${project.build.directory}/generated-resources/myfaces-javascript-plugin/META-INF/resources/org.apache.myfaces/</outputDirectory>
-                  </configuration>
-              </execution>
-              <execution>
-                  <id>compile-myfacesscripts-uncompressed</id>
-                  <goals>
-                      <goal>compile</goal>
-                  </goals>
-                  <phase>generate-resources</phase>
-                  <configuration>
-                      <descriptor>${basedir}/src/assembler/myfacesscripts-uncompressed-compiler.xml</descriptor>
-                      <outputDirectory>${project.build.directory}/generated-resources/myfaces-javascript-plugin/META-INF/internal-resources/org.apache.myfaces/</outputDirectory>
-                  </configuration>
-              </execution>
-              <execution>
-                  <id>compress-myfacesscripts</id>
-                  <goals>
-                      <goal>compress</goal>
-                  </goals>
-                  <phase>generate-resources</phase>
-                  <configuration>
-                      <scripts>target/generated-resources/myfaces-javascript-plugin/META-INF/resources/org.apache.myfaces/</scripts>
-                      <excludes>
-                          <exclude>oamSubmit-uncompressed.js</exclude>
-                      </excludes>
-                      <compressor>yahooUI</compressor>
-                  </configuration>
-              </execution>
-          </executions>
-          <configuration>
-              <optimizationLevel>0</optimizationLevel>
-              <sourceDirectory>src/main/javascript</sourceDirectory>
-              <webappDirectory>${basedir}</webappDirectory>
-              <outputDirectory>${project.build.directory}/generated-resources/myfaces-javascript-plugin/META-INF/resources/org.apache.myfaces/</outputDirectory>
-          </configuration>
-      </plugin>
-      
-      <!-- 
-      <plugin>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <version>2.1.2</version>
-        <configuration>
-          <excludes>
-            <exclude>**/*StateUtilsAES_CBCTest*</exclude>
-          </excludes>
-        </configuration>
-      </plugin>
-       -->
-      <plugin>
-        <artifactId>maven-source-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>attach-source</id>
-            <goals>
-              <goal>jar</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
     </plugins>
   </build>
   <profiles>

Modified: myfaces/core/trunk/shared-public/src/main/java/org/apache/myfaces/shared/util/ExternalContextUtils.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/shared-public/src/main/java/org/apache/myfaces/shared/util/ExternalContextUtils.java?rev=1299895&r1=1299894&r2=1299895&view=diff
==============================================================================
--- myfaces/core/trunk/shared-public/src/main/java/org/apache/myfaces/shared/util/ExternalContextUtils.java (original)
+++ myfaces/core/trunk/shared-public/src/main/java/org/apache/myfaces/shared/util/ExternalContextUtils.java Mon Mar 12 21:52:29 2012
@@ -27,686 +27,753 @@ import java.util.logging.Logger;
 import javax.faces.context.ExternalContext;
 import javax.servlet.ServletContext;
 import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
 import javax.servlet.ServletResponseWrapper;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.myfaces.shared.view.HttpServletResponseSwitch;
-import org.apache.myfaces.shared.view.ResponseSwitch;
-import org.apache.myfaces.shared.view.ServletResponseSwitch;
-
 /**
- * This provides some functionality for determining some things about the 
- * native request object that is not provided by the base utils.
- *
- * @version $Revision$ $Date$
+ * This provides some functionality for determining some things about the
+ * native request object that is not provided by JSF.  This class is useful
+ * for use in places where Portlet API's may or may not be present and can
+ * also provide access to some request-specific items which are not available on
+ * the JSF ExternalContext.  If portlet API's are not present, this class simply 
+ * handles the Servlet Request type.
  */
 public final class ExternalContextUtils
 {
-  
-  /**
-   * Returns <code>true</code> if a particular class relating to the supplied
-   * request type is available on the current classpath or <code>false</code> 
-   * if it is not.  This class assumes that all containers have a servlet type
-   * request available, but the portlet request types are all dependant on the 
-   * portlet container being used.
-   * 
-   * @param type the RequestType to test
-   * @return a boolean value of <code>true</code> if the container contains the
-   *         request type in the classpath
-   * @since 2.0
-   */
-  public static final boolean isRequestTypeAvailable(RequestType type)
-  {
-    switch (type)
+
+    /**
+     * Returns <code>true</code> if a particular class relating to the supplied
+     * request type is available on the current classpath or <code>false</code> 
+     * if it is not.  This class assumes that all containers have a servlet type
+     * request available, but the portlet request types are all dependant on the 
+     * portlet container being used.
+     * 
+     * @param type the RequestType to test
+     * @return a boolean value of <code>true</code> if the container contains the
+     *         request type in the classpath
+     * @since 2.0
+     */
+    public static final boolean isRequestTypeAvailable(RequestType type)
     {
-      case SERVLET:
-        return true;
-        
-      case ACTION:
-      case RENDER:
-        return _PORTLET_CONTEXT_CLASS != null;
-      
-      case RESOURCE:
-      case EVENT:
-        return _PORTLET_RENDER_REQUEST_CLASS != null;
-        
-      default:
-        return false;
+        switch (type)
+        {
+        case SERVLET:
+            return true;
+
+        case ACTION:
+        case RENDER:
+            return _PORTLET_CONTEXT_CLASS != null;
+
+        case RESOURCE:
+        case EVENT:
+            return _PORTLET_RENDER_REQUEST_CLASS != null;
+
+        default:
+            return false;
+        }
     }
-  }
 
-  /**
-   * Returns <code>true</code> if a particular request type is supported by the
-   * container.  For a request type to be supported, the required objects must
-   * be on the classpath AND and, in the case of Portlet RequestTypes, an 
-   * appropriate bridge must be avaialble which supports those objects.  This
-   * means that if the supplied RequestType is RESOURCE, the 
-   * javax.portlet.ResourceRequest object must be available on the classpath AND
-   * a bridge which supports the Portlet 2.0 specification would also need to be
-   * available.
-   * 
-   * @param type the RequestType to test
-   * @return a boolean value of <code>true</code> if the container supports the
-   *         current request type
-   * @since 2.0
-   */
-  public static final boolean isRequestTypeSupported(RequestType type)
-  {
-    switch (type)
+    /**
+     * Returns <code>true</code> if a particular request type is supported by the
+     * container.  For a request type to be supported, the required objects must
+     * be on the classpath AND and, in the case of Portlet RequestTypes, an 
+     * appropriate bridge must be avaialble which supports those objects.  This
+     * means that if the supplied RequestType is RESOURCE, the 
+     * javax.portlet.ResourceRequest object must be available on the classpath AND
+     * a bridge which supports the Portlet 2.0 specification would also need to be
+     * available.
+     * 
+     * @param type the RequestType to test
+     * @return a boolean value of <code>true</code> if the container supports the
+     *         current request type
+     * @since 2.0
+     */
+    public static final boolean isRequestTypeSupported(RequestType type)
     {
-      case SERVLET:
-        return true;
+        switch (type)
+        {
+        case SERVLET:
+            return true;
+
+        case ACTION:
+        case RENDER:
+            return _PORTLET_10_SUPPORTED;
+
+        case RESOURCE:
+        case EVENT:
+            return _PORTLET_20_SUPPORTED;
+
+        default:
+            return false;
+        }
+    }
+    
+    /**
+     * Returns the requestType of this ExternalContext.
+     * 
+     * @param externalContext the current external context
+     * @return the appropriate RequestType for this external context
+     * @see RequestType
+     */
+    public static final RequestType getRequestType(ExternalContext externalContext)
+    {
+        //Stuff is laid out strangely in this class in order to optimize
+        //performance.  We want to do as few instanceof's as possible so
+        //things are laid out according to the expected frequency of the
+        //various requests occurring.
+        if(_PORTLET_10_SUPPORTED || _PORTLET_20_SUPPORTED)
+        {
+            if (_PORTLET_CONTEXT_CLASS.isInstance(externalContext.getContext()))
+            {
+                //We are inside of a portlet container
+                Object request = externalContext.getRequest();
+                
+                if(_PORTLET_RENDER_REQUEST_CLASS.isInstance(request))
+                {
+                    return RequestType.RENDER;
+                }
+                
+                if(_PORTLET_RESOURCE_REQUEST_CLASS != null)
+                {
+                    if(_PORTLET_ACTION_REQUEST_CLASS.isInstance(request))
+                    {
+                        return RequestType.ACTION;
+                    }
+
+                    //We are in a JSR-286 container
+                    if(_PORTLET_RESOURCE_REQUEST_CLASS.isInstance(request))
+                    {
+                        return RequestType.RESOURCE;
+                    }
+                    
+                    return RequestType.EVENT;
+                }
+                
+                return RequestType.ACTION;
+            }
+        }
         
-      case ACTION:
-      case RENDER:
-        return _PORTLET_10_SUPPORTED;
-      
-      case RESOURCE:
-      case EVENT:
-        return _PORTLET_20_SUPPORTED;
+        return RequestType.SERVLET;
+    }
+
+    /**
+     * This method is used when a ExternalContext object is not available,
+     * like in TomahawkFacesContextFactory.
+     * 
+     * According to TOMAHAWK-1331, the object context could receive an
+     * instance of javax.portlet.PortletContext or javax.portlet.PortletConfig,
+     * so we check both cases.
+     * 
+     * @param context
+     * @param request
+     * @return
+     */
+    public static final RequestType getRequestType(Object context, Object request)
+    {
+        //Stuff is laid out strangely in this class in order to optimize
+        //performance.  We want to do as few instanceof's as possible so
+        //things are laid out according to the expected frequency of the
+        //various requests occurring.
+
+        if(_PORTLET_10_SUPPORTED || _PORTLET_20_SUPPORTED)
+        {
+            if (_PORTLET_CONFIG_CLASS.isInstance(context) ||
+                _PORTLET_CONTEXT_CLASS.isInstance(context))
+            {
+                //We are inside of a portlet container
+                
+                if(_PORTLET_RENDER_REQUEST_CLASS.isInstance(request))
+                {
+                    return RequestType.RENDER;
+                }
+                
+                if(_PORTLET_RESOURCE_REQUEST_CLASS != null)
+                {
+                    if(_PORTLET_ACTION_REQUEST_CLASS.isInstance(request))
+                    {
+                        return RequestType.ACTION;
+                    }
+
+                    //We are in a JSR-286 container
+                    if(_PORTLET_RESOURCE_REQUEST_CLASS.isInstance(request))
+                    {
+                        return RequestType.RESOURCE;
+                    }
+                    
+                    return RequestType.EVENT;
+                }
+                
+                return RequestType.ACTION;
+            }
+        }
         
-      default:
-        return false;
+        return RequestType.SERVLET;
+    }
+
+    /**
+     * Returns the current active session id or <code>null</code> if there is
+     * none.  If a session is not already created, this method will create one
+     * for you.
+     * 
+     * @param ec the current external context
+     * @return a string containing the requestedSessionId
+     */
+    public static String getSessionId(ExternalContext ec)
+    {
+        return getSessionId(ec, true);
+    }
+
+    /**
+     * Returns the current active session id or <code>null</code> if there is
+     * none.
+     * 
+     * @param ec the current external context
+     * @param create create a new session if one is not created
+     * @return a string containing the requestedSessionId
+     */
+    public static String getSessionId(ExternalContext ec, boolean create)
+    {
+        Object session = ec.getSession(create);
+        return (null != session) ? (String) _runMethod(session, "getId") : null;
+    }
+
+    /**
+     * Returns the session ID for the client, or <code>null</code> if there is none.
+     *
+     * @param ec the current external context
+     * @return a string containing the requestedSessionId
+     */
+    public static String getRequestedSessionId(ExternalContext ec)
+    {
+        return (String) _runMethod(ec.getRequest(), "getRequestedSessionId");
+    }
+
+    /**
+     * Checks if the requested session ID is still valid.
+     *
+     * @param ec the current external context
+     * @return a boolean containing <code>true</code> if the request session is
+     *         valid or <code>false</code> if it is not
+     */
+    public static boolean isRequestedSessionIdValid(ExternalContext ec)
+    {
+        return (Boolean) _runMethod(ec.getRequest(),
+                "isRequestedSessionIdValid");
+    }
+
+    /**
+     * Returns the contextPath of the ServletContext or <code>null</code> for portlets
+     *
+     * @param ec the current external context
+     * @return a String containing the servletContextPath
+     */
+    public static String getServletContextPath(ExternalContext ec)
+    {
+        if (!isPortlet(ec))
+        {
+            return ((ServletContext) ec.getContext()).getContextPath();
+        }
+        else
+        {
+            return null;
+        }
     }
-  }
-  
-  /**
-   * Returns the requestType of this ExternalContext.
-   * 
-   * @param ec the current external context
-   * @return the appropriate RequestType for this external context
-   * @see RequestType
-   * @since 2.0
-   */
-  public static final RequestType getRequestType(ExternalContext ec)
-  {
-    // Stuff is laid out strangely in this class in order to optimize
-    // performance. We want to do as few instanceof's as possible so
-    // things are laid out according to the expected frequency of the
-    // various requests occurring.
-    if(_PORTLET_10_SUPPORTED || _PORTLET_20_SUPPORTED)
-    {
-      if (_PORTLET_CONTEXT_CLASS.isInstance(ec.getContext()))
-      {
-        //We are inside of a portlet container
-        Object request = ec.getRequest();
-
-        if(_PORTLET_RENDER_REQUEST_CLASS.isInstance(request))
-        {
-          return RequestType.RENDER;
-        }
-
-        if(_PORTLET_RESOURCE_REQUEST_CLASS != null)
-        {
-          if(_PORTLET_ACTION_REQUEST_CLASS.isInstance(request))
-          {
-            return RequestType.ACTION;
-          }
-
-          // We are in a JSR-286 container
-          if(_PORTLET_RESOURCE_REQUEST_CLASS.isInstance(request))
-          {
-            return RequestType.RESOURCE;
-          }
-
-          return RequestType.EVENT;
-        }
-
-        return RequestType.ACTION;
-      }
-    }
-
-    return RequestType.SERVLET;
-  }
-  
-  /**
-   * Returns the current active session id or <code>null</code> if there is
-   * none.  If a session is not already created, this method will create one
-   * for you.
-   * 
-   * @param ec the current external context
-   * @return a string containing the requestedSessionId
-   */
-  public static String getSessionId(ExternalContext ec)
-  {
-    return getSessionId(ec, true);
-  }
-
-  /**
-   * Returns the current active session id or <code>null</code> if there is
-   * none.
-   * 
-   * @param ec the current external context
-   * @param create create a new session if one is not created
-   * @return a string containing the requestedSessionId
-   */
-  public static String getSessionId(ExternalContext ec, boolean create)
-  {
-    Object session = ec.getSession(create);   
-    return (null!=session)?(String)_runMethod(session, "getId"):null;
-  }
-
-  /**
-   * Returns the session ID for the client, or <code>null</code> if there is none.
-   *
-   * @param ec the current external context
-   * @return a string containing the requestedSessionId
-   */
-  public static String getRequestedSessionId(ExternalContext ec)
-  {
-    return (String) _runMethod(ec.getRequest(), "getRequestedSessionId");
-  }
-
-  /**
-   * Checks if the requested session ID is still valid.
-   *
-   * @param ec the current external context
-   * @return a boolean containing <code>true</code> if the request session is
-   *         valid or <code>false</code> if it is not
-   */
-  public static boolean isRequestedSessionIdValid(ExternalContext ec)
-  {
-    return (Boolean) _runMethod(ec.getRequest(), "isRequestedSessionIdValid");
-  }
-  
-  /**
-   * Returns the contextPath of the ServletContext or <code>null</code> for portlets
-   *
-   * @param ec the current external context
-   * @return a String containing the servletContextPath
-   */
-  public static String getServletContextPath(ExternalContext ec)
-  {
-    if(!isPortlet(ec))
-    {
-      return ((ServletContext) ec.getContext()).getContextPath();
-    }
-    else
-    {
-      return null;
-    }
-  }
-
-  /**
-   * Returns the contextPath of the ServletRequest or <code>null</code> for portlet requests
-   *
-   * @param ec the current external context
-   * @return a String containing the request context path
-   * @see ExternalContext#getRequestContextPath()
-   * 
-   * @deprecated use ExternalContext.getRequestContextPath() as of JSF 1.2.  This method
-   *             does not appropriately handle portlet environments, but the functionality
-   *             is maintained to prevent needing to change the contract.
-   */
-  @Deprecated
-  public static String getRequestContextPath(ExternalContext ec)
-  { 
-    if(!isPortlet(ec))
-    {
-      return ec.getRequestContextPath();
-    }
-    else
-    {
-     return null;
-    }
-  }
-
-  /**
-   * Returns the requestURI of the HttpServletRequest or <code>null</code> for 
-   * portlet requests
-   *
-   * @param ec the current external context
-   * @return A string containing the current request uri
-   */
-  public static String getRequestURI(ExternalContext ec)
-  { 
-    if (!isPortlet(ec))
-    {
-      return ((HttpServletRequest) ec.getRequest()).getRequestURI();
-    }
-    else
-    {
-      return null;
-    }
-  }
-
-  /**
-   * Returns the character encoding or <code>null</code> if there isn't any
-   *
-   * @param ec the current external context
-   * @return a string containing the request's character encoding
-   * @see ExternalContext#getRequestCharacterEncoding()
-   * 
-   * @deprecated replaced by an API in JSF.  Use ExternalContext.getRequestCharacterEncoding()
-   */
-  @Deprecated
-  public static String getCharacterEncoding(ExternalContext ec)
-  {
-    return ec.getRequestCharacterEncoding();
-  }
-  
-  /**
-   * Returns the name of the underlying context or <code>null</code> if something
-   * went wrong in trying to retrieve the context.
-   * 
-   * @param ec the current external context
-   * @return a String containing the context name
-   */
-  public static String getContextName(ExternalContext ec)
-  {
-    try
-    {
-      if (isPortlet(ec))
-      {
-        return (String) _runMethod(ec.getContext(), "getPortletContextName");
-      }
-      else
-      {
-        return ((ServletContext) ec.getContext()).getServletContextName();
-      }
-    }
-    catch (final ClassCastException e)
-    {
-      _LOG.severe(e.getMessage());
-    }
-    return null;
-  }
-
-  /**
-   * Returns the name and version of the underlying servlet container or <code>null</code> if something
-   * went wrong in trying to retrieve the context.
-   *
-   * @param ec the current external context
-   * @return a String containing the name and version of the underlying servlet container
-   */
-  public static String getServerInfo(ExternalContext ec)
-  {
-    try
-    {
-      if (isPortlet(ec))
-      {
-        return (String) _runMethod(ec.getContext(), "getServerInfo");
-      }
-      else
-      {
-        return ((ServletContext) ec.getContext()).getServerInfo();
-      }
-    }
-    catch (final ClassCastException e)
-    {
-      _LOG.severe(e.getMessage());
-    }
-    return null;
-  }
-
-  /**
-   * Returns the content length or -1 if the unknown.
-   *
-   * @param ec the current external context
-   * @return the length or -1 if the length is unknown
-   */
-  public static int getContentLength(ExternalContext ec)
-  {
-    if(isRequestFromClient(ec))
-    {
-      return (Integer) _runMethod(ec.getRequest(), "getContentLength");
-    }
-
-    return -1;
-  }
-
-  /**
-   * Returns the content type from the current externalContext or
-   * <code>null</code> if unknown.
-   *
-   * @param ec the current external context
-   * @return a String contining the the content type or <code>null</code>
-   * @see ExternalContext#getRequestContentType()
-   *
-   * @deprecated use ExternalContext.getRequestContentType()
-   */
-  @Deprecated
-  public static String getContentType(ExternalContext ec)
-  {
-    return ec.getRequestContentType();
-  }
-
-  /**
-   * Returns the request input stream if one is available
-   *
-   * @param ec the current external context
-   * @return the request's input stream
-   * @throws IOException if there was a problem getting the input stream
-   */
-  public static InputStream getRequestInputStream(ExternalContext ec)
-      throws IOException
-  { 
-    RequestType type = getRequestType(ec);
-    if(type.isRequestFromClient())
-    {
-      Object req = ec.getRequest();
-      if(type.isPortlet())
-      {
-        return (InputStream)_runMethod(req, "getPortletInputStream");
-      }
-      else
-      {
-        return ((ServletRequest) ec.getRequest()).getInputStream();
-      }
+
+    /**
+     * Returns the contextPath of the ServletRequest or <code>null</code> for portlet requests
+     *
+     * @param ec the current external context
+     * @return a String containing the request context path
+     * @see ExternalContext#getRequestContextPath()
+     * 
+     * @deprecated use ExternalContext.getRequestContextPath() as of JSF 1.2.  This method
+     *             does not appropriately handle portlet environments, but the functionality
+     *             is maintained to prevent needing to change the contract.
+     */
+    @Deprecated
+    public static String getRequestContextPath(ExternalContext ec)
+    {
+        if (!isPortlet(ec))
+        {
+            return ec.getRequestContextPath();
+        }
+        else
+        {
+            return null;
+        }
     }
-    
-    return null;
-  }
 
-  /**
-   * Returns <code>true</code> if this externalContext represents an "action". 
-   * An action request is any ServletRequest or a portlet ActionRequest or 
-   * ResourceRequest.
-   *
-   * @param ec the current external context
-   * @return a boolean of <code>true</code> if this request is an action-type
-   *         request.
-   * @see #isRequestFromClient(ExternalContext)
-   *         
-   * @deprecated replaced with {@link #isRequestFromClient(ExternalContext)}
-   */
-  @Deprecated
-  public static boolean isAction(ExternalContext ec)
-  {
-    return isRequestFromClient(ec);
-  }
-
-  /**
-   * Returns the value of {@link RequestType#isPortlet()} for the current
-   * RequestType. This is a convenience function designed to perform a quick
-   * check of the current request. If more capabilities need to be tested for
-   * the given request, then it is more efficient to pull this information from
-   * the RequestType itself.
-   * 
-   * @param ec the current external context
-   * @return a boolean value of <code>true</code> if the current RequestType
-   *         is a portlet request.
-   * 
-   * @see RequestType#isPortlet()
-   * @see #getRequestType(ExternalContext)
-   */
-  public static boolean isPortlet(ExternalContext ec)
-  {
-    return getRequestType(ec).isPortlet();
-  }
-
-  /**
-   * Returns the value of {@link RequestType#isResponseWritable()} for the
-   * current RequestType. This is a convenience function designed to perform a
-   * quick check of the current request. If more capabilities need to be tested
-   * for the given request, then it is more efficient to pull this information
-   * from the RequestType itself.
-   * 
-   * @param ec the current external context
-   * @return a boolean value of <code>true</code> if the current RequestType
-   *         is a "render" type response.
-   * 
-   * @see RequestType#isResponseWritable()
-   * @see #getRequestType(ExternalContext)
-   * @since 2.0
-   */
-  public static final boolean isResponseWritable(ExternalContext ec)
-  {
-    return getRequestType(ec).isResponseWritable();
-  }
-
-  /**
-   * Returns the value of {@link RequestType#isRequestFromClient()} for the
-   * current RequestType. This is a convenience function designed to perform a
-   * quick check of the current request. If more capabilities need to be tested
-   * for the given request, then it is more efficient to pull this information
-   * from the RequestType itself.
-   * 
-   * @param ec the current external context
-   * @return a boolean value of <code>true</code> if the current RequestType
-   *         represents a request from the client.
-   * 
-   * @see RequestType#isResponseWritable()
-   * @see #getRequestType(ExternalContext)
-   * @since 2.0
-   */
-  public static final boolean isRequestFromClient(ExternalContext ec)
-  {
-    return getRequestType(ec).isRequestFromClient();
-  }
-  
-  /**
-   * Returns wherther of not this external context represents a true HttpServletRequest or
-   * not.  Some portal containers implement the PortletRequest/Response objects as 
-   * HttpServletRequestWrappers, and those objects should not be treated as an
-   * HttpServlerRequest.  As such, this method first tests to see if the request is
-   * a portlet request and, if not, then tests to see if the request is an instanceof
-   * HttpServletRequest.
-   * 
-   * @param ec the current external context
-   * @return a boolean value of <code>true</code> if the current request is an
-   *         HttpServletRequest
-   * @since 1.1
-   */
-  public static boolean isHttpServletRequest(ExternalContext ec)
-  {
-    return (!isPortlet(ec) && (ec.getRequest() instanceof HttpServletRequest));
-  }
-  
-  /**
-   * Returns an HttpServletResponse if one exists on the externalContext or null
-   * if it does not.  Please note that some portal environments implement the
-   * PortletRequest and Response objects as HttpServletRequest/Response objects.
-   * This method handles these types of requests properly and will therefore
-   * return null in portal environments.
-   * 
-   * @param response
-   * @return an HttpServletResponse if we have one or null if we do not
-   * @since 4.0
-   */
-  public static HttpServletResponse getHttpServletResponse(ExternalContext ec)
-  {
-    if(isHttpServletRequest(ec))
+    /**
+     * Returns the requestURI of the HttpServletRequest or <code>null</code> for 
+     * portlet requests
+     *
+     * @param ec the current external context
+     * @return A string containing the current request uri
+     */
+    public static String getRequestURI(ExternalContext ec)
     {
-      return (HttpServletResponse)ec.getResponse();
+        if (!isPortlet(ec))
+        {
+            return ((HttpServletRequest) ec.getRequest()).getRequestURI();
+        }
+        else
+        {
+            return null;
+        }
     }
-    
-    return null;
-  }
 
-  /**
-   * Runs a method on an object and returns the result
-   * 
-   * @param obj the object to run the method on
-   * @param methodName the name of the method
-   * @return the results of the method run
-   */
-  private static Object _runMethod(Object obj, String methodName)
-  {
-    try
-    {
-      Method sessionIdMethod = obj.getClass().getMethod(methodName);
-      return sessionIdMethod.invoke(obj);
-    }
-    catch (Exception e)
-    {
-      return null;
-    }
-
-  }
-  
-  // prevent this from being instantiated
-  private ExternalContextUtils()
-  {}
-
-  private static final Logger _LOG = Logger.getLogger(ExternalContextUtils.class.getName());
-
-  // =-= Scott O'Bryan =-=
-  // Performance enhancement. These will be needed anyway, let's not get them every time.
-  private static final Class<?> _PORTLET_ACTION_REQUEST_CLASS;
-  private static final Class<?> _PORTLET_RENDER_REQUEST_CLASS;
-  private static final Class<?> _PORTLET_RESOURCE_REQUEST_CLASS;
-  private static final Class<?> _PORTLET_CONTEXT_CLASS;
-  private static final boolean _PORTLET_10_SUPPORTED;
-  private static final boolean _PORTLET_20_SUPPORTED;
-
-  static
-  {
-    Class<?> context;
-    Class<?> actionRequest;
-    Class<?> renderRequest;
-    Class<?> resourceRequest;
-    boolean portlet20Supported = false;
-    boolean portlet10Supported = false;
-
-    try
-    {
-      context = ClassLoaderUtils.loadClass("javax.portlet.PortletContext");
-      actionRequest = ClassLoaderUtils.loadClass("javax.portlet.ActionRequest");
-      renderRequest = ClassLoaderUtils.loadClass("javax.portlet.RenderRequest");
-
-      try
-      {
-        resourceRequest = ClassLoaderUtils.loadClass("javax.portlet.ResourceRequest"); 
-      }
-      catch (ClassNotFoundException e)
-      {
-        _LOG.fine("Portlet 2.0 API is not available on classpath.  Portlet 2.0 functionality is disabled");
-        resourceRequest = null;
-      }
-    }
-    catch (final ClassNotFoundException e)
-    {
-      _LOG
-          .fine("Portlet API is not available on the classpath.  Portlet configurations are disabled.");
-      context = null;
-      actionRequest = null;
-      renderRequest = null;
-      resourceRequest = null;
+    /**
+     * Returns the character encoding or <code>null</code> if there isn't any
+     *
+     * @param ec the current external context
+     * @return a string containing the request's character encoding
+     * @see ExternalContext#getRequestCharacterEncoding()
+     * 
+     * @deprecated replaced by an API in JSF.  Use ExternalContext.getRequestCharacterEncoding()
+     */
+    @Deprecated
+    public static String getCharacterEncoding(ExternalContext ec)
+    {
+        return ec.getRequestCharacterEncoding();
+    }
+
+    /**
+     * Returns the name of the underlying context or <code>null</code> if something
+     * went wrong in trying to retrieve the context.
+     * 
+     * @param ec the current external context
+     * @return a String containing the context name
+     */
+    public static String getContextName(ExternalContext ec)
+    {
+        try
+        {
+            if (isPortlet(ec))
+            {
+                return (String) _runMethod(ec.getContext(),
+                        "getPortletContextName");
+            }
+            else
+            {
+                return ((ServletContext) ec.getContext())
+                        .getServletContextName();
+            }
+        }
+        catch (final ClassCastException e)
+        {
+            _LOG.severe(e.getMessage());
+        }
+        return null;
     }
-    
-    //Find bridge to tell if portal is supported
-    if(context != null) 
+
+    /**
+     * Returns the name and version of the underlying servlet container or <code>null</code> if something
+     * went wrong in trying to retrieve the context.
+     *
+     * @param ec the current external context
+     * @return a String containing the name and version of the underlying servlet container
+     */
+    public static String getServerInfo(ExternalContext ec)
     {
-      // Portlet 1.0 API found. In this case we have to consider that exists alternate
-      // bridge implementations like in WebSphere and others.
-      portlet10Supported = true;
-
-      try
-      {
-        Class<?> bridge = ClassLoaderUtils.loadClass("javax.portlet.faces.Bridge");
-        
-        if(bridge != null)
+        try
         {
-          //Standard bridge defines a spec name which can be used to 
-          //determine Portlet 2.0 Support.
-          String specName = bridge.getPackage().getSpecificationTitle();
-          _LOG.fine("Found Bridge: " + specName);
-          if(specName != null && specName.startsWith("Portlet 2"))
-          {
-            portlet20Supported = true;
-          }
-          
-          if(_LOG.isLoggable(Level.INFO))
-          {
-            String ver = (portlet20Supported)?"2.0":"1.0";
-            _LOG.info("Portlet Environment Detected: " + ver);            
-          }
-        }
-      }
-      catch (ClassNotFoundException e)
-      {
-        _LOG.fine("Portlet API is present but Standard Apache Portlet Bridge is not. " +
-                " This could happen if you are using an alternate Portlet Bridge solution.");
-        
-        if (resourceRequest != null)
+            if (isPortlet(ec))
+            {
+                return (String) _runMethod(ec.getContext(), "getServerInfo");
+            }
+            else
+            {
+                return ((ServletContext) ec.getContext()).getServerInfo();
+            }
+        }
+        catch (final ClassCastException e)
+        {
+            _LOG.severe(e.getMessage());
+        }
+        return null;
+    }
+
+    /**
+     * Returns the content length or -1 if the unknown.
+     *
+     * @param ec the current external context
+     * @return the length or -1 if the length is unknown
+     */
+    public static int getContentLength(ExternalContext ec)
+    {
+        if (isRequestFromClient(ec))
+        {
+            return (Integer) _runMethod(ec.getRequest(), "getContentLength");
+        }
+
+        return -1;
+    }
+
+    /**
+     * Returns the content type from the current externalContext or
+     * <code>null</code> if unknown.
+     *
+     * @param ec the current external context
+     * @return a String contining the the content type or <code>null</code>
+     * @see ExternalContext#getRequestContentType()
+     *
+     * @deprecated use ExternalContext.getRequestContentType()
+     */
+    @Deprecated
+    public static String getContentType(ExternalContext ec)
+    {
+        return ec.getRequestContentType();
+    }
+
+    /**
+     * Returns the request input stream if one is available
+     *
+     * @param ec the current external context
+     * @return the request's input stream
+     * @throws IOException if there was a problem getting the input stream
+     */
+    public static InputStream getRequestInputStream(ExternalContext ec)
+            throws IOException
+    {
+        RequestType type = getRequestType(ec);
+        if (type.isRequestFromClient())
+        {
+            Object req = ec.getRequest();
+            if (type.isPortlet())
+            {
+                return (InputStream) _runMethod(req, "getPortletInputStream");
+            }
+            else
+            {
+                return ((ServletRequest) ec.getRequest()).getInputStream();
+            }
+        }
+
+        return null;
+    }
+
+    /**
+     * Returns <code>true</code> if this externalContext represents an "action". 
+     * An action request is any ServletRequest or a portlet ActionRequest or 
+     * ResourceRequest.
+     *
+     * @param ec the current external context
+     * @return a boolean of <code>true</code> if this request is an action-type
+     *         request.
+     * @see #isRequestFromClient(ExternalContext)
+     *         
+     * @deprecated replaced with {@link #isRequestFromClient(ExternalContext)}
+     */
+    @Deprecated
+    public static boolean isAction(ExternalContext ec)
+    {
+        return isRequestFromClient(ec);
+    }
+
+    /**
+     * Returns the value of {@link RequestType#isPortlet()} for the current
+     * RequestType. This is a convenience function designed to perform a quick
+     * check of the current request. If more capabilities need to be tested for
+     * the given request, then it is more efficient to pull this information from
+     * the RequestType itself.
+     * 
+     * @param ec the current external context
+     * @return a boolean value of <code>true</code> if the current RequestType
+     *         is a portlet request.
+     * 
+     * @see RequestType#isPortlet()
+     * @see #getRequestType(ExternalContext)
+     */
+    public static boolean isPortlet(ExternalContext ec)
+    {
+        return getRequestType(ec).isPortlet();
+    }
+
+    /**
+     * Returns the value of {@link RequestType#isResponseWritable()} for the
+     * current RequestType. This is a convenience function designed to perform a
+     * quick check of the current request. If more capabilities need to be tested
+     * for the given request, then it is more efficient to pull this information
+     * from the RequestType itself.
+     * 
+     * @param ec the current external context
+     * @return a boolean value of <code>true</code> if the current RequestType
+     *         is a "render" type response.
+     * 
+     * @see RequestType#isResponseWritable()
+     * @see #getRequestType(ExternalContext)
+     * @since 2.0
+     */
+    public static final boolean isResponseWritable(ExternalContext ec)
+    {
+        return getRequestType(ec).isResponseWritable();
+    }
+
+    /**
+     * Returns the value of {@link RequestType#isRequestFromClient()} for the
+     * current RequestType. This is a convenience function designed to perform a
+     * quick check of the current request. If more capabilities need to be tested
+     * for the given request, then it is more efficient to pull this information
+     * from the RequestType itself.
+     * 
+     * @param ec the current external context
+     * @return a boolean value of <code>true</code> if the current RequestType
+     *         represents a request from the client.
+     * 
+     * @see RequestType#isResponseWritable()
+     * @see #getRequestType(ExternalContext)
+     * @since 2.0
+     */
+    public static final boolean isRequestFromClient(ExternalContext ec)
+    {
+        return getRequestType(ec).isRequestFromClient();
+    }
+
+    /**
+     * Returns wherther of not this external context represents a true HttpServletRequest or
+     * not.  Some portal containers implement the PortletRequest/Response objects as 
+     * HttpServletRequestWrappers, and those objects should not be treated as an
+     * HttpServlerRequest.  As such, this method first tests to see if the request is
+     * a portlet request and, if not, then tests to see if the request is an instanceof
+     * HttpServletRequest.
+     * 
+     * @param ec the current external context
+     * @return a boolean value of <code>true</code> if the current request is an
+     *         HttpServletRequest
+     * @since 1.1
+     */
+    public static boolean isHttpServletRequest(ExternalContext ec)
+    {
+        return (!isPortlet(ec) && (ec.getRequest() instanceof HttpServletRequest));
+    }
+
+    /**
+     * Returns an HttpServletResponse if one exists on the externalContext or null
+     * if it does not.  Please note that some portal environments implement the
+     * PortletRequest and Response objects as HttpServletRequest/Response objects.
+     * This method handles these types of requests properly and will therefore
+     * return null in portal environments.
+     * 
+     * @param response
+     * @return an HttpServletResponse if we have one or null if we do not
+     * @since 4.0
+     */
+    public static HttpServletResponse getHttpServletResponse(ExternalContext ec)
+    {
+        if (isHttpServletRequest(ec))
+        {
+            return (HttpServletResponse) ec.getResponse();
+        }
+
+        return null;
+    }
+
+    /**
+     * Runs a method on an object and returns the result
+     * 
+     * @param obj the object to run the method on
+     * @param methodName the name of the method
+     * @return the results of the method run
+     */
+    private static Object _runMethod(Object obj, String methodName)
+    {
+        try
+        {
+            Method sessionIdMethod = obj.getClass().getMethod(methodName);
+            return sessionIdMethod.invoke(obj);
+        }
+        catch (Exception e)
+        {
+            return null;
+        }
+
+    }
+
+    // prevent this from being instantiated
+    private ExternalContextUtils()
+    {
+    }
+
+    private static final Logger _LOG = Logger
+            .getLogger(ExternalContextUtils.class.getName());
+
+    // =-= Scott O'Bryan =-=
+    // Performance enhancement. These will be needed anyway, let's not get them every time.
+    private static final Class<?> _PORTLET_ACTION_REQUEST_CLASS;
+    private static final Class<?> _PORTLET_RENDER_REQUEST_CLASS;
+    private static final Class<?> _PORTLET_RESOURCE_REQUEST_CLASS;
+    private static final Class<?> _PORTLET_CONTEXT_CLASS;
+    private static final boolean _PORTLET_10_SUPPORTED;
+    private static final boolean _PORTLET_20_SUPPORTED;
+    private static final Class<?> _PORTLET_CONFIG_CLASS;
+
+    static
+    {
+        Class<?> context;
+        Class<?> config;
+        Class<?> actionRequest;
+        Class<?> renderRequest;
+        Class<?> resourceRequest;
+        boolean portlet20Supported = false;
+        boolean portlet10Supported = false;
+
+        try
+        {
+            context = ClassLoaderUtils
+                    .loadClass("javax.portlet.PortletContext");
+            config = ClassLoaderUtils.loadClass("javax.portlet.PortletConfig");
+            actionRequest = ClassLoaderUtils
+                    .loadClass("javax.portlet.ActionRequest");
+            renderRequest = ClassLoaderUtils
+                    .loadClass("javax.portlet.RenderRequest");
+
+            try
+            {
+                resourceRequest = ClassLoaderUtils
+                        .loadClass("javax.portlet.ResourceRequest");
+            }
+            catch (ClassNotFoundException e)
+            {
+                _LOG.fine("Portlet 2.0 API is not available on classpath.  Portlet 2.0 functionality is disabled");
+                resourceRequest = null;
+            }
+        }
+        catch (final ClassNotFoundException e)
+        {
+            _LOG.fine("Portlet API is not available on the classpath.  Portlet configurations are disabled.");
+            context = null;
+            config = null;
+            actionRequest = null;
+            renderRequest = null;
+            resourceRequest = null;
+        }
+
+        //Find bridge to tell if portal is supported
+        if (context != null)
+        {
+            // Portlet 1.0 API found. In this case we have to consider that exists alternate
+            // bridge implementations like in WebSphere and others.
+            portlet10Supported = true;
+
+            try
+            {
+                Class<?> bridge = ClassLoaderUtils
+                        .loadClass("javax.portlet.faces.Bridge");
+
+                if (bridge != null)
+                {
+                    //Standard bridge defines a spec name which can be used to 
+                    //determine Portlet 2.0 Support.
+                    String specName = bridge.getPackage()
+                            .getSpecificationTitle();
+                    _LOG.fine("Found Bridge: " + specName);
+                    if (specName != null && specName.startsWith("Portlet 2"))
+                    {
+                        portlet20Supported = true;
+                    }
+
+                    if (_LOG.isLoggable(Level.INFO))
+                    {
+                        String ver = (portlet20Supported) ? "2.0" : "1.0";
+                        _LOG.info("Portlet Environment Detected: " + ver);
+                    }
+                }
+            }
+            catch (ClassNotFoundException e)
+            {
+                _LOG.fine("Portlet API is present but Standard Apache Portlet Bridge is not. "
+                        + " This could happen if you are using an alternate Portlet Bridge solution.");
+
+                if (resourceRequest != null)
+                {
+                    portlet20Supported = true;
+                }
+            }
+        }
+
+        _PORTLET_CONTEXT_CLASS = context;
+        _PORTLET_CONFIG_CLASS = config;
+        _PORTLET_ACTION_REQUEST_CLASS = actionRequest;
+        _PORTLET_RENDER_REQUEST_CLASS = renderRequest;
+        _PORTLET_RESOURCE_REQUEST_CLASS = resourceRequest;
+        _PORTLET_10_SUPPORTED = portlet10Supported;
+        _PORTLET_20_SUPPORTED = portlet20Supported;
+    }
+
+    /**
+     * Trys to obtain a HttpServletResponse from the Response.
+     * Note that this method also trys to unwrap any ServletResponseWrapper
+     * in order to retrieve a valid HttpServletResponse.
+     * @param response
+     * @return if found, the HttpServletResponse, null otherwise
+     */
+    public static HttpServletResponse getHttpServletResponse(Object response)
+    {
+        // unwrap the response until we find a HttpServletResponse
+        while (response != null)
         {
-            portlet20Supported = true;
+            if (response instanceof HttpServletResponse)
+            {
+                // found
+                return (HttpServletResponse) response;
+            }
+            if (response instanceof ServletResponseWrapper)
+            {
+                // unwrap
+                response = ((ServletResponseWrapper) response).getResponse();
+            }
+            // no more possibilities to find a HttpServletResponse
+            break;
         }
-      }
+        return null; // not found
     }
 
-    _PORTLET_CONTEXT_CLASS = context;
-    _PORTLET_ACTION_REQUEST_CLASS = actionRequest;
-    _PORTLET_RENDER_REQUEST_CLASS = renderRequest;
-    _PORTLET_RESOURCE_REQUEST_CLASS = resourceRequest;
-    _PORTLET_10_SUPPORTED = portlet10Supported;
-    _PORTLET_20_SUPPORTED = portlet20Supported;
-  }
-  
-  /**
-   * Trys to obtain a HttpServletResponse from the Response.
-   * Note that this method also trys to unwrap any ServletResponseWrapper
-   * in order to retrieve a valid HttpServletResponse.
-   * @param response
-   * @return if found, the HttpServletResponse, null otherwise
-   */
-  public static HttpServletResponse getHttpServletResponse(Object response)
-  {
-      // unwrap the response until we find a HttpServletResponse
-      while (response != null)
-      {
-          if (response instanceof HttpServletResponse)
-          {
-              // found
-              return (HttpServletResponse) response;
-          }
-          if (response instanceof ServletResponseWrapper)
-          {
-              // unwrap
-              response = ((ServletResponseWrapper) response).getResponse();
-          }
-          // no more possibilities to find a HttpServletResponse
-          break; 
-      }
-      return null; // not found
-  }
-  
-  /**
-   * Trys to obtain a ResponseSwitch from the Response.
-   * @param response
-   * @return if found, the ResponseSwitch, null otherwise
-   */
-  public static ResponseSwitch getResponseSwitch(Object response)
-  {
-      // unwrap the response until we find a ResponseSwitch
-      while (response != null)
-      {
-          if (response instanceof ResponseSwitch)
-          {
-              // found
-              return (ResponseSwitch) response;
-          }
-          if (response instanceof ServletResponseWrapper)
-          {
-              // unwrap
-              response = ((ServletResponseWrapper) response).getResponse();
-          }
-          // no more possibilities to find a ResponseSwitch
-          break; 
-      }
-      return null; // not found
-  }
-  
-  /**
-   * Try to create a ResponseSwitch for this response.
-   * @param response
-   * @return the created ResponseSwitch, if there is a ResponseSwitch 
-   *         implementation for the given response, null otherwise
-   */
-  public static ResponseSwitch createResponseSwitch(Object response)
-  {
-      if (response instanceof HttpServletResponse)
-      {
-          return new HttpServletResponseSwitch((HttpServletResponse) response);
-      }
-      else if (response instanceof ServletResponse)
-      {
-          return new ServletResponseSwitch((ServletResponse) response);
-      }
-      return null;
-  }
-  
+    /**
+     * Trys to obtain a ResponseSwitch from the Response.
+     * @param response
+     * @return if found, the ResponseSwitch, null otherwise
+     */
+    /*
+    public static ResponseSwitch getResponseSwitch(Object response)
+    {
+        // unwrap the response until we find a ResponseSwitch
+        while (response != null)
+        {
+            if (response instanceof ResponseSwitch)
+            {
+                // found
+                return (ResponseSwitch) response;
+            }
+            if (response instanceof ServletResponseWrapper)
+            {
+                // unwrap
+                response = ((ServletResponseWrapper) response).getResponse();
+            }
+            // no more possibilities to find a ResponseSwitch
+            break; 
+        }
+        return null; // not found
+    }*/
+
+    /**
+     * Try to create a ResponseSwitch for this response.
+     * @param response
+     * @return the created ResponseSwitch, if there is a ResponseSwitch 
+     *         implementation for the given response, null otherwise
+     */
+    /*
+    public static ResponseSwitch createResponseSwitch(Object response)
+    {
+        if (response instanceof HttpServletResponse)
+        {
+            return new HttpServletResponseSwitch((HttpServletResponse) response);
+        }
+        else if (response instanceof ServletResponse)
+        {
+            return new ServletResponseSwitch((ServletResponse) response);
+        }
+        return null;
+    }*/
+
 }

Modified: myfaces/core/trunk/shared-public/src/main/java/org/apache/myfaces/shared/util/SelectItemsIterator.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/shared-public/src/main/java/org/apache/myfaces/shared/util/SelectItemsIterator.java?rev=1299895&r1=1299894&r2=1299895&view=diff
==============================================================================
--- myfaces/core/trunk/shared-public/src/main/java/org/apache/myfaces/shared/util/SelectItemsIterator.java (original)
+++ myfaces/core/trunk/shared-public/src/main/java/org/apache/myfaces/shared/util/SelectItemsIterator.java Mon Mar 12 21:52:29 2012
@@ -35,8 +35,7 @@ import javax.faces.component.UISelectIte
 import javax.faces.context.FacesContext;
 import javax.faces.model.SelectItem;
 
-import org.apache.myfaces.shared.renderkit.JSFAttr;
-import org.apache.myfaces.shared.renderkit.RendererUtils;
+import org.apache.myfaces.shared.util.renderkit.JsfProperties;
 
 // ATTENTION
 // This class is associated with javax.faces.component._SelectItemsIterator.
@@ -51,13 +50,13 @@ public class SelectItemsIterator impleme
 {
     private static final Logger log = Logger.getLogger(SelectItemsIterator.class.getName());
     
-    private static final String VAR_ATTR = JSFAttr.VAR_ATTR;
-    private static final String ITEM_VALUE_ATTR = JSFAttr.ITEM_VALUE_ATTR;
-    private static final String ITEM_LABEL_ATTR = JSFAttr.ITEM_LABEL_ATTR;
-    private static final String ITEM_DESCRIPTION_ATTR = JSFAttr.ITEM_DESCRIPTION_ATTR;
-    private static final String ITEM_DISABLED_ATTR = JSFAttr.ITEM_DISABLED_ATTR;
-    private static final String ITEM_LABEL_ESCAPED_ATTR = JSFAttr.ITEM_LABEL_ESCAPED_ATTR;
-    private static final String NO_SELECTION_VALUE_ATTR = JSFAttr.NO_SELECTION_VALUE_ATTR;
+    private static final String VAR_PROP = JsfProperties.VAR_PROP;
+    private static final String ITEM_VALUE_PROP = JsfProperties.ITEM_VALUE_PROP;
+    private static final String ITEM_LABEL_PROP = JsfProperties.ITEM_LABEL_PROP;
+    private static final String ITEM_DESCRIPTION_PROP = JsfProperties.ITEM_DESCRIPTION_PROP;
+    private static final String ITEM_DISABLED_PROP = JsfProperties.ITEM_DISABLED_PROP;
+    private static final String ITEM_LABEL_ESCAPED_PROP = JsfProperties.ITEM_LABEL_ESCAPED_PROP;
+    private static final String NO_SELECTION_VALUE_PROP = JsfProperties.NO_SELECTION_VALUE_PROP;
     
     private static final Iterator<UIComponent> _EMPTY_UICOMPONENT_ITERATOR = new _EmptyIterator<UIComponent>();
     
@@ -69,8 +68,9 @@ public class SelectItemsIterator impleme
 
     public SelectItemsIterator(UIComponent selectItemsParent, FacesContext facesContext)
     {
-        _children = selectItemsParent.getChildCount() > 0 ? 
-                selectItemsParent.getChildren().iterator() : _EMPTY_UICOMPONENT_ITERATOR; 
+        _children = selectItemsParent.getChildCount() > 0
+                ? selectItemsParent.getChildren().iterator()
+                : _EMPTY_UICOMPONENT_ITERATOR;
         _facesContext = facesContext;
     }
 
@@ -137,8 +137,8 @@ public class SelectItemsIterator impleme
                     ValueExpression expression = uiSelectItem.getValueExpression("value");
                     throw new IllegalArgumentException("ValueExpression '"
                             + (expression == null ? null : expression.getExpressionString()) + "' of UISelectItem : "
-                            + RendererUtils.getPathToComponent(child) + 
-                            " does not reference an Object of type SelectItem");
+                            + DebugUtils.getPathToComponent(child)
+                            + " does not reference an Object of type SelectItem");
                 }
                 _nextItem = (SelectItem) item;
                 return true;
@@ -200,7 +200,7 @@ public class SelectItemsIterator impleme
                                 + " array, Iterable or Map, but of type: {2}",
                                 new Object[] {
                                     (expression == null ? null : expression.getExpressionString()),
-                                    RendererUtils.getPathToComponent(child),
+                                    DebugUtils.getPathToComponent(child),
                                     (value == null ? null : value.getClass().getName()) 
                                 });
                     }
@@ -236,7 +236,7 @@ public class SelectItemsIterator impleme
                 // write the current item into the request map under the key listed in var, if available
                 boolean wroteRequestMapVarValue = false;
                 Object oldRequestMapVarValue = null;
-                final String var = (String) attributeMap.get(VAR_ATTR);
+                final String var = (String) attributeMap.get(VAR_PROP);
                 if(var != null && !"".equals(var))
                 {
                     // save the current value of the key listed in var from the request map
@@ -245,7 +245,7 @@ public class SelectItemsIterator impleme
                 }
                 
                 // check the itemValue attribute
-                Object itemValue = attributeMap.get(ITEM_VALUE_ATTR);
+                Object itemValue = attributeMap.get(ITEM_VALUE_PROP);
                 if (itemValue == null)
                 {
                     // the itemValue attribute was not provided
@@ -255,7 +255,7 @@ public class SelectItemsIterator impleme
                 
                 // Spec: When iterating over the select items, toString() 
                 // must be called on the string rendered attribute values
-                Object itemLabel = attributeMap.get(ITEM_LABEL_ATTR);
+                Object itemLabel = attributeMap.get(ITEM_LABEL_PROP);
                 if (itemLabel == null)
                 {
                     itemLabel = itemValue.toString();
@@ -264,14 +264,14 @@ public class SelectItemsIterator impleme
                 {
                     itemLabel = itemLabel.toString();
                 }
-                Object itemDescription = attributeMap.get(ITEM_DESCRIPTION_ATTR);
+                Object itemDescription = attributeMap.get(ITEM_DESCRIPTION_PROP);
                 if (itemDescription != null)
                 {
                     itemDescription = itemDescription.toString();
                 }
-                Boolean itemDisabled = getBooleanAttribute(_currentUISelectItems, ITEM_DISABLED_ATTR, false);
-                Boolean itemLabelEscaped = getBooleanAttribute(_currentUISelectItems, ITEM_LABEL_ESCAPED_ATTR, true);
-                Object noSelectionValue = attributeMap.get(NO_SELECTION_VALUE_ATTR);
+                Boolean itemDisabled = getBooleanAttribute(_currentUISelectItems, ITEM_DISABLED_PROP, false);
+                Boolean itemLabelEscaped = getBooleanAttribute(_currentUISelectItems, ITEM_LABEL_ESCAPED_PROP, true);
+                Object noSelectionValue = attributeMap.get(NO_SELECTION_VALUE_PROP);
                 item = new SelectItem(itemValue,
                         (String) itemLabel,
                         (String) itemDescription,

Modified: myfaces/core/trunk/shared-public/src/main/java/org/apache/myfaces/shared/util/WebConfigParamUtils.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/shared-public/src/main/java/org/apache/myfaces/shared/util/WebConfigParamUtils.java?rev=1299895&r1=1299894&r2=1299895&view=diff
==============================================================================
--- myfaces/core/trunk/shared-public/src/main/java/org/apache/myfaces/shared/util/WebConfigParamUtils.java (original)
+++ myfaces/core/trunk/shared-public/src/main/java/org/apache/myfaces/shared/util/WebConfigParamUtils.java Mon Mar 12 21:52:29 2012
@@ -25,7 +25,7 @@ import javax.faces.context.ExternalConte
  * Utility class to handle web config parameters
  * 
  * @author Leonardo Uribe
- * @since 4.0.4
+ * @since 2.0.10 (4.0.4 in shared, 1.0.1 in commons)
  */
 public final class WebConfigParamUtils
 {