You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by aw...@apache.org on 2007/07/03 22:51:35 UTC

svn commit: r552975 [7/41] - in /myfaces/trinidad/branches/pre-1.2.2-branch: plugins/ plugins/maven-faces-plugin/ plugins/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/ plugins/maven-faces-plugin/src/main/java/org/apach...

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/GlobalConfiguratorImpl.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/GlobalConfiguratorImpl.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/GlobalConfiguratorImpl.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/GlobalConfiguratorImpl.java Tue Jul  3 13:51:23 2007
@@ -19,22 +19,49 @@
 
 package org.apache.myfaces.trinidadinternal.config;
 
+import java.io.IOException;
+
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import javax.faces.FacesException;
 import javax.faces.context.ExternalContext;
 
+import javax.portlet.PortletContext;
+
+import javax.portlet.PortletException;
+import javax.portlet.PortletRequestDispatcher;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+
+import javax.servlet.ServletRequest;
+
+import javax.servlet.ServletRequestWrapper;
+
+import javax.servlet.http.HttpServletRequest;
+
 import org.apache.myfaces.trinidad.config.Configurator;
+import org.apache.myfaces.trinidad.context.ExternalContextDecorator;
 import org.apache.myfaces.trinidad.context.RequestContext;
 import org.apache.myfaces.trinidad.context.RequestContextFactory;
 import org.apache.myfaces.trinidad.logging.TrinidadLogger;
 import org.apache.myfaces.trinidad.skin.SkinFactory;
 import org.apache.myfaces.trinidad.util.ClassLoaderUtils;
 import org.apache.myfaces.trinidadinternal.context.RequestContextFactoryImpl;
+import org.apache.myfaces.trinidadinternal.context.TrinidadPhaseListener;
+import org.apache.myfaces.trinidadinternal.context.external.ServletCookieMap;
+import org.apache.myfaces.trinidadinternal.context.external.ServletRequestHeaderMap;
+import org.apache.myfaces.trinidadinternal.context.external.ServletRequestHeaderValuesMap;
+import org.apache.myfaces.trinidadinternal.context.external.ServletRequestMap;
+import org.apache.myfaces.trinidadinternal.context.external.ServletRequestParameterMap;
+import org.apache.myfaces.trinidadinternal.context.external.ServletRequestParameterValuesMap;
 import org.apache.myfaces.trinidadinternal.skin.SkinFactoryImpl;
 import org.apache.myfaces.trinidadinternal.skin.SkinUtils;
 import org.apache.myfaces.trinidadinternal.util.ExternalContextUtils;
+import org.apache.myfaces.trinidadinternal.webapp.wrappers.PortletContextWrapper;
+import org.apache.myfaces.trinidadinternal.webapp.wrappers.PortletRequestWrapper;
+import org.apache.myfaces.trinidadinternal.webapp.wrappers.PortletResponseWrapper;
 
 /**
  * This is the implementation of the Trinidad's Global configurator. It provides the entry point for
@@ -293,6 +320,25 @@
 
     if (!_isDisabled(externalContext))
     {
+      if(ExternalContextUtils.isPortlet(externalContext))
+      {
+        //This handles Trinidad Portlet Request/Response wrappers in a portal
+        //environment.
+        
+        //TODO sobryan this should be removed when JSR-286 is available
+        externalContext = new WrapperCompatibleExternalContext(externalContext);
+      }
+      else if(_isSetRequestBugPresent(externalContext))
+      {
+        //This handles bug 493 against the JSF-RI 1.2_03 and earlier.  If the bug
+        //is present in the current system, add a wrapper to fix it
+        
+        //TODO sobryan this is somewhat inefficient so should be removed when we
+        //are no longer dependant on JSF1.2_03 or earlier.  Still, we only wrap
+        //when we have to so it should be no biggy under normal circumstances.
+        externalContext = new ClearRequestExternalContext(externalContext);
+      }
+
       // Wrap ExternalContexts
       for (final Configurator config : _services)
       {
@@ -445,17 +491,264 @@
       config.beginRequest(ec);
     }
   }
+  
+  static private boolean _isSetRequestBugPresent(ExternalContext ec)
+  {
+    // This first check is here in order to skip synchronization until 
+    // absolutely necessary.
+    if(!_sSetRequestBugTested)
+    {
+      synchronized(GlobalConfiguratorImpl.class)
+      {
+        //This second check is here in case a couple of things enter before the
+        //boolean is set.  This is only an exception case and will make it so
+        //the initialization code runs only once.
+        if(!_sSetRequestBugTested)
+        {
+          ServletRequest orig = (ServletRequest)ec.getRequest();
+          // Call getInitParameterMap() up front
+          ec.getInitParameterMap();
+          
+          ec.setRequest(new TestRequest(orig));
+          
+          _sHasSetRequestBug = !TestRequest.isTestParamPresent(ec);
+          _sSetRequestBugTested = true;
+          
+          ec.setRequest(orig);
+        }
+      }
+    }
+    
+    return _sHasSetRequestBug;
+  }
+  
+  // This handles an issue with the ExternalContext object prior to
+  // JSF1.2_04.
+  static private class ClearRequestExternalContext extends ExternalContextDecorator
+  {
+    private ExternalContext _ec;
+    private Map<String, Object>         _requestCookieMap;
+    private Map<String, String>         _requestHeaderMap;
+    private Map<String, String[]>       _requestHeaderValuesMap;
+    private Map<String, Object>         _requestMap;
+    private Map<String, String>         _requestParameterMap;
+    private Map<String, String[]>       _requestParameterValuesMap;
+    
+    public ClearRequestExternalContext(ExternalContext ec)
+    {
+      _ec = ec;
+    }
+    
+    @Override
+    protected ExternalContext getExternalContext()
+    {
+      return _ec;
+    }
+
+    @Override
+    public void setRequest(Object request)
+    {
+      super.setRequest(request);
+      
+      // And clear out any of the cached maps, since we should 
+      // go back and look in the map
+      _requestCookieMap = null;
+      _requestHeaderMap = null;
+      _requestHeaderValuesMap = null;
+      _requestMap = null;
+      _requestParameterMap = null;
+      _requestParameterValuesMap = null;
+    }
+    
+    @Override
+    public Map<String, Object> getRequestCookieMap()
+    {
+      _checkRequest();
+      if (_requestCookieMap == null)
+      {
+        
+        _requestCookieMap = new ServletCookieMap(_getHttpServletRequest());
+      }
+      return _requestCookieMap;
+    }
+
+    @Override
+    public Map<String, String> getRequestHeaderMap()
+    {
+      if (_requestHeaderMap == null)
+      {
+        _requestHeaderMap = new ServletRequestHeaderMap(_getHttpServletRequest());
+      }
+      return _requestHeaderMap;
+    }
+
+    @Override
+    public Map<String, String[]> getRequestHeaderValuesMap()
+    {
+      if (_requestHeaderValuesMap == null)
+      {
+        _requestHeaderValuesMap = new ServletRequestHeaderValuesMap(_getHttpServletRequest());
+      }
+      return _requestHeaderValuesMap;
+    }
+
+    @Override
+    public Map<String, Object> getRequestMap()
+    {
+      _checkRequest();
+      if (_requestMap == null)
+      {
+        _requestMap = new ServletRequestMap((ServletRequest)getRequest());
+      }
+      return _requestMap;
+    }
+
+    @Override
+    public Map<String, String> getRequestParameterMap()
+    {
+      _checkRequest();
+      if (_requestParameterMap == null)
+      {
+        _requestParameterMap = new ServletRequestParameterMap((ServletRequest)getRequest());
+      }
+      return _requestParameterMap;
+    }
+
+    @Override
+    public Map<String, String[]> getRequestParameterValuesMap()
+    {
+      _checkRequest();
+      if (_requestParameterValuesMap == null)
+      {
+        _requestParameterValuesMap = new ServletRequestParameterValuesMap((ServletRequest)getRequest());
+      }
+      return _requestParameterValuesMap;
+    }
+    
+    private void _checkRequest()
+    {
+      if(super.getRequest() == null)
+      {
+        throw new UnsupportedOperationException("Request is null on this context.");
+      }
+    }
+    
+    private HttpServletRequest _getHttpServletRequest()
+    {
+      _checkRequest();
+      if ( !(getRequest() instanceof HttpServletRequest))
+      {
+         throw new IllegalArgumentException("Only HttpServletRequest supported");
+      }
+      
+      return (HttpServletRequest)getRequest();
+    }
+  }
+  
+  // This is a PortletExternalContext decorator that allows the getting
+  // and setting of the Trinidad Portal wrapper classes.  It does this
+  // by automatically using the PortletContextWrapper for purposes of
+  // request dispatch.
+  static private class WrapperCompatibleExternalContext extends ExternalContextDecorator
+  {
+    private ExternalContext _ec;
+    private PortletContextWrapper _context;
+    
+    public WrapperCompatibleExternalContext(ExternalContext ec)
+    {
+      _ec = ec;
+    }
+    
+    protected ExternalContext getExternalContext()
+    {
+      return _ec;
+    }
+
+    @Override
+    public void setRequest(Object request)
+    {
+      if(_context == null)
+      {
+        if(request instanceof PortletRequestWrapper)
+        {
+          _context = new PortletContextWrapper((PortletContext)getExternalContext().getContext());
+        }
+      }
+      
+      super.setRequest(request);
+    }
+
+    @Override
+    public void setResponse(Object response)
+    {
+      if(_context == null)
+      {
+        if(response instanceof PortletResponseWrapper)
+        {
+          _context = new PortletContextWrapper((PortletContext)getExternalContext().getContext());
+        }
+      }
+      
+      super.setResponse(response);
+    }
+    
+    @Override
+    public Object getContext()
+    {
+      if(_context != null)
+      {
+        return _context;
+      }
+      
+      return super.getContext();
+    }
+
+    @Override
+    public void dispatch(String path)
+      throws IOException
+    {
+      if(_context != null)
+      {
+        final PortletRequestDispatcher requestDispatcher =
+        _context.getRequestDispatcher(path);
+        try
+        {
+          requestDispatcher.include((RenderRequest)getRequest(), (RenderResponse)getResponse());
+        }
+        catch (final PortletException e)
+        {
+          if (e.getMessage() != null)
+          {
+            throw new FacesException(e.getMessage(), e);
+          }
+          else
+          {
+            throw new FacesException(e);
+          }
+        }
+      }
+      else
+      {
+        getExternalContext().dispatch(path);
+      }
+    }
+  }
+
+  private static volatile boolean _sSetRequestBugTested = false;
+  private static boolean _sHasSetRequestBug = false;
 
-  private boolean            _initialized;
-  private List<Configurator> _services;
-  static private final Map<ClassLoader, GlobalConfiguratorImpl> _CONFIGURATORS = new HashMap<ClassLoader, GlobalConfiguratorImpl>();
-  static private final String _IN_REQUEST    = GlobalConfiguratorImpl.class
-                                                         .getName()
-                                                         + ".IN_REQUEST";
-  static private final String _REQUEST_CONTEXT = GlobalConfiguratorImpl.class.getName()
-                                                         +".REQUEST_CONTEXT";
-  static private final TrinidadLogger _LOG  = TrinidadLogger.createTrinidadLogger(GlobalConfiguratorImpl.class);
+  private boolean             _initialized;
+  private List<Configurator>  _services;
+  static private final Map<ClassLoader, GlobalConfiguratorImpl> _CONFIGURATORS =
+     new HashMap<ClassLoader, GlobalConfiguratorImpl>();
+  static private final String _IN_REQUEST    =
+     GlobalConfiguratorImpl.class.getName() 
+     + ".IN_REQUEST";
+  static private final String _REQUEST_CONTEXT =
+     GlobalConfiguratorImpl.class.getName()
+     + ".REQUEST_CONTEXT";
 
+    
   private enum RequestType
   {
     PORTAL_ACTION,
@@ -505,4 +798,35 @@
     static private final String _REQUEST_TYPE = GlobalConfiguratorImpl.class.getName()
                                                   + ".REQUEST_TYPE";
   }
+  
+  static private class TestRequest extends ServletRequestWrapper
+  {
+    public TestRequest(ServletRequest request)
+    {
+      super(request);
+    }
+
+    @Override
+    public String getParameter(String string)
+    {
+      if(_TEST_PARAM.equals(string))
+      {
+        return "passed";
+      }
+      
+      return super.getParameter(string);
+    }
+    
+    static public final boolean isTestParamPresent(ExternalContext ec)
+    {
+      return ec.getRequestParameterMap().get(_TEST_PARAM) != null;
+    }
+    
+    static private String _TEST_PARAM = TestRequest.class.getName()+
+      ".TEST_PARAM";
+  }
+
+
+  static private final TrinidadLogger _LOG =
+    TrinidadLogger.createTrinidadLogger(GlobalConfiguratorImpl.class);
 }

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/dispatch/DispatchResponseConfiguratorImpl.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/dispatch/DispatchResponseConfiguratorImpl.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/dispatch/DispatchResponseConfiguratorImpl.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/dispatch/DispatchResponseConfiguratorImpl.java Tue Jul  3 13:51:23 2007
@@ -29,7 +29,6 @@
 import javax.portlet.PortletRequestDispatcher;
 import javax.portlet.RenderRequest;
 import javax.portlet.RenderResponse;
-import javax.servlet.ServletResponse;
 
 import org.apache.myfaces.trinidad.config.Configurator;
 import org.apache.myfaces.trinidad.context.ExternalContextDecorator;
@@ -48,28 +47,24 @@
   @Override
   public ExternalContext getExternalContext(ExternalContext externalContext)
   {
-    // TODO sobryan (dependency = JSF 1.2)
-    // For JSF 1.2, we can probably simply wrap the request objects and set them on
-    // the existing ExternalContext.
     if(!isApplied(externalContext))
     {
       if(ExternalContextUtils.isPortlet(externalContext))
       {
         if(!ExternalContextUtils.isAction(externalContext))
         {
-          apply(externalContext);
-          return new PortletExternalContext(externalContext);
+          externalContext.setResponse(new DispatchRenderResponse(externalContext));
         }
       }
       else
       {
-        apply(externalContext);
-        return new ServletExternalContext(externalContext);
+        externalContext.setResponse(new DispatchServletResponse(externalContext));
       }
-    }
 
+      apply(externalContext);
+    }
 
-    //return the origional
+    //return the original
     return externalContext;
   }
 
@@ -79,104 +74,6 @@
   {
     Map<String, Object> requestMap = context.getExternalContext().getRequestMap();
     return (String) requestMap.get(__CONTENT_TYPE_KEY);
-  }
-
-  static private class ServletExternalContext extends ExternalContextDecorator
-  {
-    public ServletExternalContext(ExternalContext ec)
-    {
-      _ec = ec;
-    }
-
-    @Override
-    public Object getResponse()
-    {
-      if(_response == null)
-      {
-        _response = new DispatchServletResponse(_ec);
-      }
-
-      return _response;
-    }
-
-    @Override
-    protected ExternalContext getExternalContext()
-    {
-      return _ec;
-    }
-
-    private ServletResponse  _response;
-    private ExternalContext _ec;
-  }
-
-  static private class PortletExternalContext extends ExternalContextDecorator
-  {
-    public PortletExternalContext(ExternalContext ec)
-    {
-      _ec = ec;
-    }
-
-    @Override
-    public Object getContext()
-    {
-      return _getPortletContext();
-    }
-
-    @Override
-    public Object getResponse()
-    {
-      return _getRenderResponse();
-    }
-
-    @Override
-    public void dispatch(String path) throws IOException
-    {
-      final PortletRequestDispatcher requestDispatcher =
-        ((PortletContext)getContext()).getRequestDispatcher(path);
-      try
-      {
-        requestDispatcher.include((RenderRequest)getRequest(), (RenderResponse)getResponse());
-      }
-      catch (final PortletException e)
-      {
-        if (e.getMessage() != null)
-        {
-          throw new FacesException(e.getMessage(), e);
-        }
-        else
-        {
-          throw new FacesException(e);
-        }
-      }
-    }
-
-    @Override
-    protected ExternalContext getExternalContext()
-    {
-      return _ec;
-    }
-
-    private PortletContext _getPortletContext()
-    {
-      if(_context == null)
-      {
-        _context = new PortletContextWrapper((PortletContext)_ec.getContext());
-      }
-      return _context;
-    }
-
-    private RenderResponse _getRenderResponse()
-    {
-      if(_response == null)
-      {
-        _response = new DispatchRenderResponse(_ec);
-      }
-      return _response;
-    }
-
-    private ExternalContext _ec;
-    private RenderResponse _response;
-    private PortletContext _context;
   }
 
   /**

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/FileUploadConfiguratorImpl.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/FileUploadConfiguratorImpl.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/FileUploadConfiguratorImpl.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/FileUploadConfiguratorImpl.java Tue Jul  3 13:51:23 2007
@@ -25,6 +25,10 @@
 import java.util.Map;
 
 import javax.faces.context.ExternalContext;
+
+import javax.portlet.ActionRequest;
+
+import javax.servlet.ServletRequest;
 import javax.servlet.http.HttpServletRequest;
 
 import org.apache.myfaces.trinidad.config.Configurator;
@@ -209,8 +213,10 @@
     if(!isApplied(externalContext))
     {
       if(!ExternalContextUtils.isPortlet(externalContext))
-      {
-        return new ServletUploadedExternalContext(externalContext, addedParams);
+      {  
+        externalContext.setRequest(new UploadRequestWrapper(
+            (HttpServletRequest)externalContext.getRequest(),
+            addedParams));        
       }
       else if(ExternalContextUtils.isAction(externalContext))
       {
@@ -220,8 +226,10 @@
          * RenderParameters.  This is a cool thing because subsequent
          * render requests will retain these parameters for us.
          */
-        return new PortletUploadedExternalContext(externalContext, addedParams);
+        externalContext.setRequest(new ActionUploadRequestWrapper(externalContext,
+           addedParams));
       }
+      apply(externalContext);        
     }
 
     //If we don't have any wrapped params or we have a render portal request,

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/DialogServiceImpl.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/DialogServiceImpl.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/DialogServiceImpl.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/DialogServiceImpl.java Tue Jul  3 13:51:23 2007
@@ -24,10 +24,11 @@
 import java.util.List;
 import java.util.Map;
 
+import javax.el.ValueExpression;
+
 import javax.faces.component.UIComponent;
 import javax.faces.component.UIViewRoot;
 import javax.faces.context.FacesContext;
-import javax.faces.el.ValueBinding;
 import javax.faces.render.RenderKit;
 
 import org.apache.myfaces.trinidad.context.RequestContext;
@@ -213,8 +214,9 @@
     FacesContext context = _getFacesContext();
     if (TrinidadFilterImpl.isExecutingDialogReturn(context))
     {
-      Map<String, Object> parameterMap = context.getExternalContext().getRequestParameterMap();
-      Object returnParam = parameterMap.get(_RETURN_PARAM);
+      Map<String, String> parameterMap =
+        context.getExternalContext().getRequestParameterMap();
+      String returnParam = parameterMap.get(_RETURN_PARAM);
       if (returnParam == null)
         return null;
 
@@ -464,9 +466,9 @@
   @SuppressWarnings("unchecked")
   private void _executeBindings(FacesContext context, UIComponent component)
   {
-    ValueBinding binding = component.getValueBinding("binding");
-    if (binding != null)
-      binding.setValue(context, component);
+    ValueExpression expression = component.getValueExpression("binding");
+    if (expression != null)
+      expression.setValue(context.getELContext(), component);
 
     Iterator<UIComponent> kids = component.getFacetsAndChildren();
     while (kids.hasNext())

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/FacesContextFactoryImpl.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/FacesContextFactoryImpl.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/FacesContextFactoryImpl.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/FacesContextFactoryImpl.java Tue Jul  3 13:51:23 2007
@@ -22,6 +22,8 @@
 import java.util.Iterator;
 import java.util.Map;
 
+import javax.el.ELContext;
+
 import javax.faces.application.Application;
 import javax.faces.application.FacesMessage;
 import javax.faces.component.UIViewRoot;
@@ -231,6 +233,11 @@
       _base.release();
     }
     
+    public ELContext getELContext()
+    {
+      return _base.getELContext();
+    }
+
     private final FacesContext    _base;
     private final ExternalContext _external;
     // An Object, not a String, so that FindBugs won't complain

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextImpl.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextImpl.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextImpl.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextImpl.java Tue Jul  3 13:51:23 2007
@@ -505,6 +505,17 @@
     }
   }
 
+  /**
+   * Returns the set of partial targets related to a given UIComponent.
+   */
+  @Override
+  public Set<UIComponent> getPartialTargets(UIComponent source)
+  {
+    HashSet<UIComponent> set = new HashSet<UIComponent>();
+    _addPartialTargets(set, source);
+    return set;    
+  }
+  
   @Override
   public void addPartialTriggerListeners
     (UIComponent listener,
@@ -754,6 +765,33 @@
 
     return _partialListeners;
   }
+
+  //
+  // Recursively builds up the set of partial targets of
+  // a given component
+  //
+  private void _addPartialTargets(
+    Set<UIComponent> sofar, UIComponent from)
+  {
+    Map<UIComponent, Set<UIComponent>> pl = _getPartialListeners();
+    Set<UIComponent> listeners = pl.get(from);
+    if (listeners == null)
+      return;
+    
+    for (UIComponent target : listeners)
+    {
+      // If we haven't encountered this target yet, add
+      // it, and continue recursively.
+      if (!sofar.contains(target))
+      {
+        sofar.add(target);
+        _addPartialTargets(sofar, target);
+      }
+    }
+  }
+
+
+
 
   static private UIComponent _findRelativeComponent(
     UIComponent from,

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/external/ServletCookieMap.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/external/ServletCookieMap.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/external/ServletCookieMap.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/external/ServletCookieMap.java Tue Jul  3 13:51:23 2007
@@ -28,9 +28,9 @@
  *
  * @version $Revision: 278654 $ $Date: 2005-09-04 18:32:35 -0600 (Sun, 04 Sep 2005) $
  */
-class ServletCookieMap extends AbstractAttributeMap<String, Object>
+public class ServletCookieMap extends AbstractAttributeMap<String, Object>
 {
-  ServletCookieMap(final HttpServletRequest httpServletRequest)
+  public ServletCookieMap(final HttpServletRequest httpServletRequest)
   {
     _httpServletRequest = httpServletRequest;
   }

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/external/ServletExternalContext.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/external/ServletExternalContext.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/external/ServletExternalContext.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/external/ServletExternalContext.java Tue Jul  3 13:51:23 2007
@@ -20,7 +20,8 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.lang.reflect.Method;
+import java.io.UnsupportedEncodingException;
+
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.security.Principal;
@@ -73,52 +74,8 @@
     }
 
     if (_httpServletRequest != null)
-    {
-      // HACK: MultipartWrapper scrambles the servletPath for some reason in Tomcat 4.1.29 embedded
-      // in JBoss 3.2.3!?
-      // (this was reported by frederic.auge [frederic.auge@laposte.net])
-      _requestServletPath = _httpServletRequest.getServletPath();
-      _requestPathInfo = _httpServletRequest.getPathInfo();
-
-      // try to set character encoding as described in section 2.5.2.2 of JSF 1.1 spec
-      // we have to use reflection as method setCharacterEncoding is not supported Servlet API <=
-      // 2.3
-      try
-      {
-        if (_setCharacterEncodingMethod != null &&
-            !Boolean.TRUE.equals(_httpServletRequest.getAttribute(_CHAR_ENCODING_CALLED)))
-        {
-          // Only invoke this once, no matter how many times we create
-          // the ServletExternalContext
-          _httpServletRequest.setAttribute(_CHAR_ENCODING_CALLED, Boolean.TRUE);
-          final String contentType = _httpServletRequest.getHeader("Content-Type");
-
-          String characterEncoding = _lookupCharacterEncoding(contentType);
-
-          if (characterEncoding == null)
-          {
-            final HttpSession session = _httpServletRequest.getSession(false);
-
-            if (session != null)
-            {
-              characterEncoding = (String) session.getAttribute(ViewHandler.CHARACTER_ENCODING_KEY);
-            }
-
-            if (characterEncoding != null)
-            {
-              _setCharacterEncodingMethod
-                  .invoke(servletRequest, new Object[] { characterEncoding });
-            }
-          }
-        }
-      }
-      catch (final Exception e)
-      {
-        if (_LOG.isWarning())
-        {
-          _LOG.warning("FAIL_SET_CHARACTER_ENCODING", e);
-        }
-      }
+    {      
+      _initHttpServletRequest();
     }
   }
 
@@ -514,6 +471,83 @@
     }
   }
 
+  @Override
+  public String getRequestCharacterEncoding()
+  {
+    _checkRequest();
+    return _servletRequest.getCharacterEncoding();
+  }
+
+  @Override
+  public String getRequestContentType()
+  {
+    _checkRequest();
+    return _servletRequest.getContentType();
+  }
+
+  @Override
+  public String getResponseCharacterEncoding()
+  {
+    _checkResponse();
+    return _servletResponse.getCharacterEncoding();
+  }
+
+  @Override
+  public String getResponseContentType()
+  {
+    _checkResponse();
+    return _servletResponse.getContentType();
+  }
+
+  @Override
+  public void setRequest(Object object)
+  {
+    _servletRequest = (ServletRequest) object;
+    if (object instanceof HttpServletRequest)
+    {
+      _httpServletRequest = (HttpServletRequest) object;
+      _initHttpServletRequest();
+    }
+    else
+    {
+      _httpServletRequest = null;
+    }
+    
+    // And clear out any of the cached maps, since we should 
+    // go back and look in the map
+    _requestCookieMap = null;
+    _requestHeaderMap = null;
+    _requestHeaderValuesMap = null;
+    _requestMap = null;
+    _requestParameterMap = null;
+    _requestParameterValuesMap = null;
+  }
+
+  @Override
+  public void setRequestCharacterEncoding(String string) throws UnsupportedEncodingException
+  {
+    _checkRequest();
+    _servletRequest.setCharacterEncoding(string);
+  }
+
+  @Override
+  public void setResponse(Object object)
+  {
+    _servletResponse = (ServletResponse) object;
+    if (_servletResponse instanceof HttpServletResponse)
+      _httpServletResponse = (HttpServletResponse) object;
+    else
+      _httpServletResponse = null;
+  }
+
+  @Override
+  public void setResponseCharacterEncoding(String string)
+  {
+    _checkResponse();
+    _servletResponse.setCharacterEncoding(string);
+  }
+
+  
   public void release()
   {
     _servletContext = null;
@@ -598,6 +632,16 @@
     return characterEncoding;
   }
 
+  private void _initHttpServletRequest()
+  {
+    // TODO: is this necessary still?
+    // HACK: MultipartWrapper scrambles the servletPath for some reason in Tomcat 4.1.29 embedded
+    // in JBoss 3.2.3!?
+    // (this was reported by frederic.auge [frederic.auge@laposte.net])
+    _requestServletPath = _httpServletRequest.getServletPath();
+    _requestPathInfo = _httpServletRequest.getPathInfo();
+  }
+
   private Map<String, Object>         _applicationMap;
   private HttpServletRequest          _httpServletRequest;
   private HttpServletResponse         _httpServletResponse;
@@ -614,24 +658,10 @@
   private ServletRequest              _servletRequest;
   private ServletResponse             _servletResponse;
   private Map<String, Object>         _sessionMap;
-  private static final String         _INIT_PARAMETER_MAP_ATTRIBUTE = ServletInitParameterMap.class
-                                                                       .getName();
+  private static final String         _INIT_PARAMETER_MAP_ATTRIBUTE =
+      ServletInitParameterMap.class.getName();
   private static final String         _CHAR_ENCODING_CALLED = 
     ServletExternalContext.class.getName() + ".CHAR_ENCODING_CALLED";
-  private static final TrinidadLogger _LOG                          = TrinidadLogger
-                                                                       .createTrinidadLogger(ServletExternalContext.class);
-  private static Method               _setCharacterEncodingMethod   = null;
-  static
-  {
-    try
-    {
-      _setCharacterEncodingMethod = ServletRequest.class.getMethod("setCharacterEncoding",
-          new Class[] { String.class });
-    }
-    catch (final Exception e)
-    {
-      _LOG.warning("REQUEST_CHARACTER_ENCODING_DIABLED");
-      _LOG.warning("FAIL_OBTAIN_SERVLETREQUEST_METHOD", e);
-    }
-  }
+  private static final TrinidadLogger _LOG
+      = TrinidadLogger.createTrinidadLogger(ServletExternalContext.class);
 }

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/external/ServletRequestHeaderMap.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/external/ServletRequestHeaderMap.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/external/ServletRequestHeaderMap.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/external/ServletRequestHeaderMap.java Tue Jul  3 13:51:23 2007
@@ -27,9 +27,9 @@
  *
  * @version $Revision: 278654 $ $Date: 2005-09-04 18:32:35 -0600 (Sun, 04 Sep 2005) $
  */
-class ServletRequestHeaderMap extends AbstractAttributeMap<String, String>
+public class ServletRequestHeaderMap extends AbstractAttributeMap<String, String>
 {
-  ServletRequestHeaderMap(final HttpServletRequest httpServletRequest)
+  public ServletRequestHeaderMap(final HttpServletRequest httpServletRequest)
   {
     _httpServletRequest = httpServletRequest;
   }

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/external/ServletRequestHeaderValuesMap.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/external/ServletRequestHeaderValuesMap.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/external/ServletRequestHeaderValuesMap.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/external/ServletRequestHeaderValuesMap.java Tue Jul  3 13:51:23 2007
@@ -32,9 +32,9 @@
  *
  * @version $Revision: 167257 $ $Date: 2004-10-13 05:51:02 -0600 (Wed, 13 Oct 2004) $
  */
-class ServletRequestHeaderValuesMap extends AbstractAttributeMap<String, String[]>
+public class ServletRequestHeaderValuesMap extends AbstractAttributeMap<String, String[]>
 {
-  ServletRequestHeaderValuesMap(final HttpServletRequest httpServletRequest)
+  public ServletRequestHeaderValuesMap(final HttpServletRequest httpServletRequest)
   {
     _httpServletRequest = httpServletRequest;
   }

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/convert/DateTimeConverter.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/convert/DateTimeConverter.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/convert/DateTimeConverter.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/convert/DateTimeConverter.java Tue Jul  3 13:51:23 2007
@@ -35,7 +35,7 @@
 import javax.faces.context.FacesContext;
 import javax.faces.convert.Converter;
 import javax.faces.convert.ConverterException;
-import javax.faces.el.ValueBinding;
+import javax.el.ValueExpression;
 
 import org.apache.myfaces.trinidad.context.RenderingContext;
 import org.apache.myfaces.trinidad.convert.ClientConverter;
@@ -112,10 +112,10 @@
       UIComponent component, String strValue, Object value)
   {
     assert value != null;
-    ValueBinding binding = component.getValueBinding("value");
-    if (binding != null)
+    ValueExpression expression = component.getValueExpression("value");
+    if (expression != null)
     {
-      Class<?> expectedType = binding.getType(context);
+      Class<?> expectedType = expression.getType(context.getELContext());
       // Sometimes the type might be null, if it cannot be determined:
       if ((expectedType != null)
           && (!expectedType.isAssignableFrom(value.getClass())))
@@ -162,10 +162,8 @@
     if (clientId != null)
     {
       // =-=AEW Only if Javascript...
-      // -= Simon Lessard =-
-      // FIXME: JSF 1.2 specifies <String, Object>
-      Map<Object, Object> requestMap = context.getExternalContext()
-          .getRequestMap();
+      Map<String, Object> requestMap =
+        context.getExternalContext().getRequestMap();
 
       // this fetch could be at the place where we append, but has been
       // moved ahead to optimize use of StringBuilder
@@ -546,7 +544,7 @@
 
   // RenderingContext key indicating the _dateFormat object
   // has been created
-  private static final Object _PATTERN_WRITTEN_KEY = "org.apache.myfaces.trinidadinternal.convert.DateTimeConverter._PATTERN_WRITTEN";
+  private static final String _PATTERN_WRITTEN_KEY = "org.apache.myfaces.trinidadinternal.convert.DateTimeConverter._PATTERN_WRITTEN";
 
   // String indicating that NO_JS_PATTERN is available
   private static final String _NO_JS_PATTERN = new String();

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/facelets/AccessKeyPropertyTagRule.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/facelets/AccessKeyPropertyTagRule.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/facelets/AccessKeyPropertyTagRule.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/facelets/AccessKeyPropertyTagRule.java Tue Jul  3 13:51:23 2007
@@ -22,7 +22,6 @@
 import java.lang.reflect.Method;
 
 import com.sun.facelets.FaceletContext;
-import com.sun.facelets.el.LegacyValueBinding;
 import com.sun.facelets.tag.Metadata;
 import com.sun.facelets.tag.MetadataTarget;
 import com.sun.facelets.tag.MetaRule;
@@ -31,8 +30,6 @@
 
 import javax.el.ValueExpression;
 
-import javax.faces.el.ValueBinding;
-
 import org.apache.myfaces.trinidad.bean.FacesBean;
 import org.apache.myfaces.trinidad.bean.PropertyKey;
 import org.apache.myfaces.trinidad.component.UIXComponent;
@@ -65,7 +62,6 @@
     public void applyMetadata(FaceletContext ctx, Object instance)
     {
       ValueExpression expr = _attribute.getValueExpression(ctx, String.class);
-      ValueBinding vb = new LegacyValueBinding(expr);
       UIXComponent uixcomp = (UIXComponent) instance;
       FacesBean bean = uixcomp.getFacesBean();
       PropertyKey mainKey = bean.getType().findKey(_mainMethodName);
@@ -77,7 +73,7 @@
       if (accessKeyKey == null)
         throw new TagAttributeException(_attribute,
                                         "No support for 'accessKey' attribute on " + instance);
-      VirtualAttributeUtils.setAccessKeyAttribute(bean, vb, mainKey, accessKeyKey);
+      VirtualAttributeUtils.setAccessKeyAttribute(bean, expr, mainKey, accessKeyKey);
     }
 
     private final String       _mainMethodName;

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/facelets/FileDownloadActionListenerTag.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/facelets/FileDownloadActionListenerTag.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/facelets/FileDownloadActionListenerTag.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/facelets/FileDownloadActionListenerTag.java Tue Jul  3 13:51:23 2007
@@ -33,8 +33,6 @@
 
 import com.sun.facelets.FaceletContext;
 import com.sun.facelets.FaceletException;
-import com.sun.facelets.el.LegacyMethodBinding;
-import com.sun.facelets.el.LegacyValueBinding;
 import com.sun.facelets.tag.TagAttribute;
 import com.sun.facelets.tag.TagConfig;
 import com.sun.facelets.tag.TagHandler;
@@ -54,7 +52,6 @@
     _method = getRequiredAttribute("method");
   }
 
-  @SuppressWarnings("deprecation")
   public void apply(FaceletContext faceletContext,
           UIComponent parent) throws IOException, FacesException, FaceletException, ELException
   {
@@ -69,8 +66,8 @@
         {
           ValueExpression valueExp = _filename.getValueExpression(faceletContext,
                                                                   Object.class);
-          listener.setValueBinding(FileDownloadActionListener.FILENAME_KEY,
-                                   new LegacyValueBinding(valueExp));
+          listener.setValueExpression(FileDownloadActionListener.FILENAME_KEY,
+                                     valueExp);
         }
       }
 
@@ -82,15 +79,15 @@
         {
           ValueExpression valueExp = _contentType.getValueExpression(faceletContext,
                                                                   Object.class);
-          listener.setValueBinding(FileDownloadActionListener.CONTENT_TYPE_KEY,
-                                   new LegacyValueBinding(valueExp));
+          listener.setValueExpression(FileDownloadActionListener.CONTENT_TYPE_KEY,
+                                      valueExp);
         }
       }
       
       MethodExpression me = _method.getMethodExpression(faceletContext,
                                                         Object.class,
                                                         _METHOD_PARAMS);
-      listener.setMethod(new LegacyMethodBinding(me));
+      listener.setMethod(me);
 
       ActionSource actionSource = (ActionSource)parent;
       actionSource.addActionListener(listener);

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/facelets/ReturnActionListenerTag.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/facelets/ReturnActionListenerTag.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/facelets/ReturnActionListenerTag.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/facelets/ReturnActionListenerTag.java Tue Jul  3 13:51:23 2007
@@ -59,9 +59,8 @@
       if (_value != null)
       {
         ValueExpression valueExp = _value.getValueExpression(faceletContext, Object.class);
-        listener.setValueBinding(ReturnActionListener.VALUE_KEY, new LegacyValueBinding(valueExp));
+        listener.setValueExpression(ReturnActionListener.VALUE_KEY,valueExp);
       }
-
 
       actionSource.addActionListener(listener);
     }

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/facelets/SetActionListenerTag.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/facelets/SetActionListenerTag.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/facelets/SetActionListenerTag.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/facelets/SetActionListenerTag.java Tue Jul  3 13:51:23 2007
@@ -27,14 +27,12 @@
 
 import com.sun.facelets.FaceletContext;
 import com.sun.facelets.FaceletException;
-import com.sun.facelets.el.LegacyValueBinding;
 import com.sun.facelets.tag.TagAttribute;
 import com.sun.facelets.tag.TagConfig;
 import com.sun.facelets.tag.TagHandler;
 import com.sun.facelets.tag.jsf.ComponentSupport;
 
 /**
- * @todo it should be removed after we consume JSF1.2.
  */
 public class SetActionListenerTag extends TagHandler
 {
@@ -46,7 +44,6 @@
     _to   = getRequiredAttribute("to");
   }
   
-  @SuppressWarnings("deprecation")
   public void apply(FaceletContext faceletContext,
                     UIComponent parent) throws FaceletException, ELException
   {
@@ -59,10 +56,8 @@
                                                             Object.class);
       ActionSource actionSource= (ActionSource) parent;
       SetActionListener listener = new SetActionListener();
-      listener.setValueBinding("from",
-                               new LegacyValueBinding(fromExpression));
-      listener.setValueBinding("to",
-                               new LegacyValueBinding(toExpression));
+      listener.setValueExpression("from", fromExpression);
+      listener.setValueExpression("to", toExpression);
       actionSource.addActionListener(listener);
     }
   }

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/facelets/TrinidadListenersTagRule.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/facelets/TrinidadListenersTagRule.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/facelets/TrinidadListenersTagRule.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/facelets/TrinidadListenersTagRule.java Tue Jul  3 13:51:23 2007
@@ -41,9 +41,9 @@
 {
   public static final MetaRule Instance = new TrinidadListenersTagRule();
 
-  private static class ListenerPropertyMetadata extends Metadata
+  private static class ListenerMBPropertyMetadata extends Metadata
   {
-    public ListenerPropertyMetadata(Method method, TagAttribute attribute, Class[] paramList)
+    public ListenerMBPropertyMetadata(Method method, TagAttribute attribute, Class[] paramList)
     {
       _method = method;
       _attribute = attribute;
@@ -76,6 +76,42 @@
     private final TagAttribute _attribute;
     private       Class[]      _paramList;
   }
+
+  private static class ListenerMEPropertyMetadata extends Metadata
+  {
+    public ListenerMEPropertyMetadata(Method method, TagAttribute attribute, Class[] paramList)
+    {
+      _method = method;
+      _attribute = attribute;
+      _paramList = paramList;
+    }
+    
+    @Override
+    @SuppressWarnings("deprecation")
+    public void applyMetadata(FaceletContext ctx, Object instance)
+    {
+      MethodExpression expr =
+        _attribute.getMethodExpression(ctx, null, _paramList);
+      
+      try
+      {
+        _method.invoke(instance,
+                       new Object[]{expr});
+      }
+      catch (InvocationTargetException e)
+      {
+        throw new TagAttributeException(_attribute, e.getCause());
+      }
+      catch (Exception e)
+      {
+        throw new TagAttributeException(_attribute, e);
+      }
+    }
+
+    private final Method       _method;
+    private final TagAttribute _attribute;
+    private       Class[]      _paramList;
+  }
    
 
   @Override
@@ -84,7 +120,11 @@
      TagAttribute attribute,
      MetadataTarget meta)
   {
-    if ((meta.getPropertyType(name) == MethodBinding.class) &&
+    Class metaType = meta.getPropertyType(name);
+    boolean isMethodBinding = (metaType == MethodBinding.class);
+    boolean isMethodExpression = (metaType == MethodExpression.class);
+
+    if ((isMethodBinding || isMethodExpression) &&
         name.endsWith("Listener"))
     {
       // OK, we're trying to call setFooListener()
@@ -112,8 +152,12 @@
           return null;
 
         // And go
-        return new ListenerPropertyMetadata(m, attribute,
-                                            new Class[]{eventClass});
+        if (isMethodBinding)
+          return new ListenerMBPropertyMetadata(m, attribute,
+                                                new Class[]{eventClass});
+        else
+          return new ListenerMEPropertyMetadata(m, attribute,
+                                                new Class[]{eventClass});
       }
     }
     return null;

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/io/HtmlResponseWriter.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/io/HtmlResponseWriter.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/io/HtmlResponseWriter.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/io/HtmlResponseWriter.java Tue Jul  3 13:51:23 2007
@@ -81,6 +81,7 @@
   public void flush() throws IOException
   {
     _closeStartIfNecessary();
+    _out.flush();
   }
 
 

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/io/IndentingResponseWriter.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/io/IndentingResponseWriter.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/io/IndentingResponseWriter.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/io/IndentingResponseWriter.java Tue Jul  3 13:51:23 2007
@@ -112,6 +112,16 @@
    * Writes a String, escaped properly for this method.
    */
   @Override
+  public void writeText(Object text, UIComponent component, String componentPropertyName) throws IOException
+  {
+    _seeIfJustEndedElement();
+    super.writeText(text, component, componentPropertyName);
+  }
+
+  /**
+   * Writes a String, escaped properly for this method.
+   */
+  @Override
   public void writeText(Object text, String componentPropertyName) throws IOException
   {
     _seeIfJustEndedElement();

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/io/ResponseWriterDecorator.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/io/ResponseWriterDecorator.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/io/ResponseWriterDecorator.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/io/ResponseWriterDecorator.java Tue Jul  3 13:51:23 2007
@@ -126,6 +126,15 @@
     getResponseWriter().writeComment(comment);
   }
 
+
+
+  @Override
+  public void writeText(Object text, UIComponent component, 
+                        String propertyName)
+    throws IOException
+  {
+    getResponseWriter().writeText(text, component, propertyName);
+  }
   
   @Override
   public void writeText(Object text, String componentPropertyName) throws IOException

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/io/XhtmlResponseWriter.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/io/XhtmlResponseWriter.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/io/XhtmlResponseWriter.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/io/XhtmlResponseWriter.java Tue Jul  3 13:51:23 2007
@@ -84,6 +84,7 @@
   public void flush() throws IOException
   {
     _closeStartIfNecessary();
+   _out.flush();
   }
 
 

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/menu/ItemNode.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/menu/ItemNode.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/menu/ItemNode.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/menu/ItemNode.java Tue Jul  3 13:51:23 2007
@@ -73,7 +73,7 @@
     {
       // Value of action is EL method binding, so we 
       // need to evaluate it
-      value = (String)MenuUtils.getBoundValue(value);
+      value = MenuUtils.getBoundValue(value, String.class);
     }
 
     // Post me as the selected Node for the request
@@ -112,7 +112,7 @@
     {
       // Value of action is EL method binding, so we 
       // need to evaluate it
-      value = (String)MenuUtils.getBoundValue(value);
+      value = MenuUtils.getBoundValue(value, String.class);
       setActionListener(value);
     }
 
@@ -149,7 +149,7 @@
     {
       // Value of action is EL method binding, so we 
       // need to evaluate it
-      value = (String)MenuUtils.getBoundValue(value);
+      value = MenuUtils.getBoundValue(value, String.class);
       setLaunchListener(value);
     }
 
@@ -186,7 +186,7 @@
     {
       // Value of action is EL method binding, so we 
       // need to evaluate it
-      value = (String)MenuUtils.getBoundValue(value);
+      value = MenuUtils.getBoundValue(value, String.class);
       setReturnListener(value);
     }
 
@@ -372,7 +372,7 @@
     {
       // Value of action is EL method binding, so we 
       // need to evaluate it
-      value = (String)MenuUtils.getBoundValue(value);
+      value = MenuUtils.getBoundValue(value, String.class);
     }
 
     // Appending nodeId to URL so that we can identify the node
@@ -408,7 +408,7 @@
     {
       // Value of destination is EL value binding, so we 
       // need to evaluate it
-      value = (String)MenuUtils.getBoundValue(value);
+      value = MenuUtils.getBoundValue(value, String.class);
       setTargetFrame(value);
     }
      

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/menu/MenuContentHandlerImpl.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/menu/MenuContentHandlerImpl.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/menu/MenuContentHandlerImpl.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/menu/MenuContentHandlerImpl.java Tue Jul  3 13:51:23 2007
@@ -252,7 +252,8 @@
         // into another menu model.
         _saveModelData();        
 
-        XMLMenuModel menuModel = (XMLMenuModel)MenuUtils.getBoundValue(expr);
+        XMLMenuModel menuModel = (XMLMenuModel)MenuUtils.getBoundValue(expr,
+                                                              Object.class);
         
         // Now must pop the values cause we are back to the parent
         // model.

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/menu/MenuNode.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/menu/MenuNode.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/menu/MenuNode.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/menu/MenuNode.java Tue Jul  3 13:51:23 2007
@@ -742,7 +742,7 @@
   {
    String keystr = 
      str.trim().replaceFirst(_bundleKey, _bundleKey + getHandlerId());
-   String elVal = (String) MenuUtils.getBoundValue(keystr);
+   String elVal = MenuUtils.getBoundValue(keystr, String.class);
    return elVal;       
   }
   

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/menu/MenuUtils.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/menu/MenuUtils.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/menu/MenuUtils.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/menu/MenuUtils.java Tue Jul  3 13:51:23 2007
@@ -30,8 +30,6 @@
 import java.util.Set;
 
 import javax.faces.context.FacesContext;
-import javax.faces.el.ValueBinding;
-
 import javax.faces.webapp.UIComponentTag;
 
 import org.apache.myfaces.trinidad.logging.TrinidadLogger;
@@ -46,7 +44,7 @@
   MenuUtils() {}
 
   //=======================================================================
-  // Bound Value/EL Binding utilities
+  // Bound Value/EL Expression utilities
   //=======================================================================
   
   /**
@@ -54,18 +52,17 @@
    * 
    * @param elExpression - String representing an EL expression
    */
-  static Object getBoundValue(String elExpression)
+  static <T> T getBoundValue(String elExpression, Class<T> desiredClass)
   {
-    Object retVal = null;
-    
     try
     {
-      // Value of rendered is EL method binding, so we 
-      // need to evaluate it
-      FacesContext ctx     = FacesContext.getCurrentInstance();
-      ValueBinding binding = 
-                        ctx.getApplication().createValueBinding(elExpression);
-      retVal               = binding.getValue(ctx);
+      if (desiredClass == null)
+        throw new NullPointerException();
+
+      FacesContext ctx = FacesContext.getCurrentInstance();
+      return (T) ctx.getApplication().evaluateExpressionGet(ctx,
+                                                            elExpression,
+                                                            desiredClass);
     }
     catch (Exception ex)
     {
@@ -74,7 +71,6 @@
       _LOG.severe(ex);
       return null;
     }
-    return retVal;
   }
   
   /**
@@ -99,7 +95,7 @@
         && UIComponentTag.isValueReference(boolStr)
        )
     {
-      Boolean bValue = (Boolean) getBoundValue(boolStr);
+      Boolean bValue = getBoundValue(boolStr, Boolean.class);
       return bValue.booleanValue();
     }
     else
@@ -123,7 +119,7 @@
         && UIComponentTag.isValueReference(propVal)
        )
     {
-      String elVal = (String) getBoundValue(propVal);
+      String elVal = getBoundValue(propVal, String.class);
       return elVal;
     }
     return propVal;
@@ -141,7 +137,7 @@
         && UIComponentTag.isValueReference(propVal)
        )
     {
-      Integer elVal = (Integer) getBoundValue(propVal);
+      Integer elVal = getBoundValue(propVal, Integer.class);
       return elVal.intValue();
     }
     return Integer.parseInt(propVal);
@@ -205,7 +201,7 @@
       // if _bundleName is an EL, then get its value
       if (UIComponentTag.isValueReference(resBundle)) 
       {
-        bundleName = (String)MenuUtils.getBoundValue(resBundle);
+        bundleName = MenuUtils.getBoundValue(resBundle, String.class);
       } 
       else
       {

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/CoreResponseStateManager.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/CoreResponseStateManager.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/CoreResponseStateManager.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/CoreResponseStateManager.java Tue Jul  3 13:51:23 2007
@@ -69,7 +69,10 @@
     ResponseWriter rw = context.getResponseWriter();
     rw.startElement("input", null);
     rw.writeAttribute("type", "hidden", null);
-    rw.writeAttribute("name", _STATE_FIELD_NAME, null);
+    rw.writeAttribute("name", VIEW_STATE_PARAM, null);
+    // Don't write out the ID, as it can be written
+    // out twice
+    //    rw.writeAttribute("id", VIEW_STATE_PARAM, null);
 
     String s = encodeSerializedViewAsString(serializedView);
     rw.writeAttribute("value", s, null);
@@ -77,6 +80,16 @@
     rw.endElement("input");
   }
 
+  @Override
+  /**
+   * A request is a postback if it contains the state parameter.
+   */
+  public boolean isPostback(FacesContext context)
+  {
+    Map requestParams = context.getExternalContext().getRequestParameterMap();
+    return requestParams.containsKey(VIEW_STATE_PARAM);
+  }
+
 
   protected String encodeSerializedViewAsString(
     StateManager.SerializedView serializedView) throws IOException
@@ -146,7 +159,7 @@
       Map<String, String> requestParamMap =
          context.getExternalContext().getRequestParameterMap();
 
-      String stateString = requestParamMap.get(_STATE_FIELD_NAME);
+      String stateString = requestParamMap.get(VIEW_STATE_PARAM);
       if (stateString == null)
         return null;
 
@@ -196,8 +209,6 @@
 
     return view;
   }
-
-  static private final String _STATE_FIELD_NAME = "org.apache.myfaces.trinidad.faces.STATE";
 
 
   /* Test code for dumping out the page's state

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/EditableValueRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/EditableValueRenderer.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/EditableValueRenderer.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/EditableValueRenderer.java Tue Jul  3 13:51:23 2007
@@ -22,12 +22,13 @@
 
 import java.util.Iterator;
 
+import javax.el.ValueExpression;
+
 import javax.faces.component.EditableValueHolder;
 import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
 import javax.faces.convert.Converter;
 import javax.faces.convert.ConverterException;
-import javax.faces.el.ValueBinding;
 import javax.faces.validator.Validator;
 
 import org.apache.myfaces.trinidad.logging.TrinidadLogger;
@@ -232,15 +233,15 @@
     if (Boolean.TRUE.equals(o))
       return true;
 
-    // Now, if the ValueBinding underlying the value says it's
+    // Now, if the ValueExpression underlying the value says it's
     // read-only, then again, it is.
-    ValueBinding vb = getValueBinding(bean);
-    if ((vb != null) && vb.isReadOnly(context))
+    ValueExpression ve = getValueExpression(bean);
+    if ((ve != null) && ve.isReadOnly(context.getELContext()))
     {
       if (_LOG.isFiner())
       {
         _LOG.finer("Value expression {0} is read-only",
-                   vb.getExpressionString());
+                   ve.getExpressionString());
       }
 
       return true;

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleInputColorRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleInputColorRenderer.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleInputColorRenderer.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleInputColorRenderer.java Tue Jul  3 13:51:23 2007
@@ -77,7 +77,7 @@
   {
     FacesBean bean = getFacesBean(component);
     // If there's a non-default action, then just launch away
-    if (getAction(bean) != null)
+    if (getActionExpression(bean) != null)
     {
       super.queueActionEvent(context, component);
     }
@@ -293,7 +293,7 @@
     // If the field has an action, use the default behavior.  Or,
     // if the field doesn't support launching a window at all,
     // use the default behavior.
-    if ((getAction(bean) != null) ||
+    if ((getActionExpression(bean) != null) ||
         !Boolean.TRUE.equals(
             arc.getAgent().getCapabilities().get(TrinidadAgent.CAP_MULTIPLE_WINDOWS)))
       return super.getLaunchOnclick(context, arc, component, bean);

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleInputDateRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleInputDateRenderer.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleInputDateRenderer.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleInputDateRenderer.java Tue Jul  3 13:51:23 2007
@@ -78,7 +78,7 @@
   {
     FacesBean bean = getFacesBean(component);
     // If there's a non-default action, then just launch away
-    if (getAction(bean) != null)
+    if (getActionExpression(bean) != null)
     {
       super.queueActionEvent(context, component);
     }
@@ -348,7 +348,7 @@
     // If the field has an action, use the default behavior.  Or,
     // if the field doesn't support launching a window at all,
     // use the default behavior.
-    if ((getAction(bean) != null) ||
+    if ((getActionExpression(bean) != null) ||
         !Boolean.TRUE.equals(
             arc.getAgent().getCapabilities().get(TrinidadAgent.CAP_MULTIPLE_WINDOWS)))
       return super.getLaunchOnclick(context, arc, component, bean);

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleInputListOfValuesRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleInputListOfValuesRenderer.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleInputListOfValuesRenderer.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleInputListOfValuesRenderer.java Tue Jul  3 13:51:23 2007
@@ -63,7 +63,7 @@
     super.findTypeConstants(type);
     _searchDescKey = type.findKey("searchDesc");
     _iconKey = type.findKey("icon");
-    _actionKey = type.findKey("action");
+    _actionExpressionKey = type.findKey("actionExpression");
   }
 
   //
@@ -360,9 +360,9 @@
     return true;
   }
 
-  protected Object getAction(FacesBean bean)
+  protected Object getActionExpression(FacesBean bean)
   {
-    return bean.getProperty(_actionKey);
+    return bean.getProperty(_actionExpressionKey);
   }
 
   protected String getSearchDesc(
@@ -395,7 +395,7 @@
     return "af|inputListOfValues::content";
   }
 
-  private PropertyKey _actionKey;
+  private PropertyKey _actionExpressionKey;
   private PropertyKey _iconKey;
   private PropertyKey _searchDescKey;
 

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleSelectManyRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleSelectManyRenderer.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleSelectManyRenderer.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleSelectManyRenderer.java Tue Jul  3 13:51:23 2007
@@ -26,14 +26,14 @@
 import java.util.Arrays;
 import java.util.List;
 
+import javax.el.ValueExpression;
+
 import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
 import javax.faces.context.ResponseWriter;
 import javax.faces.convert.Converter;
 import javax.faces.convert.ConverterException;
 
-import javax.faces.el.ValueBinding;
-
 import javax.faces.model.SelectItem;
 
 import org.apache.myfaces.trinidad.logging.TrinidadLogger;
@@ -95,10 +95,10 @@
       converter = getDefaultConverter(context, bean);
 
     Class<?> modelClass = null;
-    ValueBinding binding = getValueBinding(bean);
-    if (binding != null)
+    ValueExpression expression = getValueExpression(bean);
+    if (expression != null)
     {
-      modelClass = binding.getType(context);
+      modelClass = expression.getType(context.getELContext());
     }
 
     boolean valuePassThru = getValuePassThru(getFacesBean(component));
@@ -151,11 +151,11 @@
     FacesContext context,
     FacesBean    bean)
   {
-    ValueBinding binding = getValueBinding(bean);
-    if (binding == null)
+    ValueExpression expression = getValueExpression(bean);
+    if (expression == null)
       return null;
 
-    Class<?> type = binding.getType(context);
+    Class<?> type = expression.getType(context.getELContext());
     if ((type == null) || type.isAssignableFrom(List.class))
       return null;
 

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ValueRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ValueRenderer.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ValueRenderer.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ValueRenderer.java Tue Jul  3 13:51:23 2007
@@ -18,10 +18,11 @@
  */
 package org.apache.myfaces.trinidadinternal.renderkit.core.xhtml;
 
+import javax.el.ValueExpression;
+
 import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
 import javax.faces.convert.Converter;
-import javax.faces.el.ValueBinding;
 
 import org.apache.myfaces.trinidad.bean.FacesBean;
 import org.apache.myfaces.trinidad.bean.PropertyKey;
@@ -70,11 +71,11 @@
     FacesContext context,
     FacesBean    bean)
   {
-    ValueBinding binding = getValueBinding(bean);
-    if (binding == null)
+    ValueExpression expression = getValueExpression(bean);
+    if (expression == null)
       return null;
 
-    Class<?> type = binding.getType(context);
+    Class<?> type = expression.getType(context.getELContext());
     return ConverterUtils.createConverter(context, type);
   }
 
@@ -84,11 +85,11 @@
   }
 
   /**
-   * Returns the ValueBinding for the "value" property.
+   * Returns the ValueExpression for the "value" property.
    */
-  protected ValueBinding getValueBinding(FacesBean bean)
+  protected ValueExpression getValueExpression(FacesBean bean)
   {
-    return bean.getValueBinding(_valueKey);
+    return bean.getValueExpression(_valueKey);
   }
 
   protected Converter getConverter(FacesBean bean)

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/table/TableSelectOneRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/table/TableSelectOneRenderer.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/table/TableSelectOneRenderer.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/table/TableSelectOneRenderer.java Tue Jul  3 13:51:23 2007
@@ -239,6 +239,13 @@
     }
 
     @Override
+    protected String getClientId(FacesContext context, UIComponent component)
+    {
+      // We use the table's container client ID
+      return component.getContainerClientId(context);
+    }
+
+    @Override
     protected Object getSubmittedValue(FacesBean bean)
     {
       TableRenderingContext tContext =

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/table/TreeNodeColumnRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/table/TreeNodeColumnRenderer.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/table/TreeNodeColumnRenderer.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/table/TreeNodeColumnRenderer.java Tue Jul  3 13:51:23 2007
@@ -138,7 +138,7 @@
   {
     // we need to render a unique ID for the expand/collapse link, so that
     // PPR can restore the focus correctly after a PPR request:
-    String tableName = tContext.getTable().getClientId(fc);
+    String tableName = tContext.getTable().getContainerClientId(fc);
     String id = tableName + NamingContainer.SEPARATOR_CHAR + _ICON_ID; 
     fc.getResponseWriter().writeAttribute("id", id, null);
   }

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/htmlBasic/ComponentFacesBean.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/htmlBasic/ComponentFacesBean.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/htmlBasic/ComponentFacesBean.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/htmlBasic/ComponentFacesBean.java Tue Jul  3 13:51:23 2007
@@ -21,6 +21,8 @@
 import java.util.Iterator;
 import java.util.Set;
 
+import javax.el.ValueExpression;
+
 import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
 import javax.faces.el.ValueBinding;
@@ -68,9 +70,20 @@
     throw new UnsupportedOperationException();
   }
 
+
   final public ValueBinding getValueBinding(PropertyKey key)
   {
     return _component.getValueBinding(key.getName());
+  }
+
+  final public ValueExpression getValueExpression(PropertyKey key)
+  {
+    return _component.getValueExpression(key.getName());
+  }
+
+  final public void setValueExpression(PropertyKey key, ValueExpression expression)
+  {
+    throw new UnsupportedOperationException();
   }
 
   final public Object getRawProperty(PropertyKey key)

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/uix/SelectItemSupport.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/uix/SelectItemSupport.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/uix/SelectItemSupport.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/uix/SelectItemSupport.java Tue Jul  3 13:51:23 2007
@@ -25,13 +25,14 @@
 import java.util.List;
 import java.util.Map;
 
+import javax.el.ValueExpression;
+
 import javax.faces.component.UIComponent;
 import javax.faces.component.UISelectItem;
 import javax.faces.component.UISelectItems;
 import javax.faces.component.ValueHolder;
 import javax.faces.context.FacesContext;
 import javax.faces.convert.Converter;
-import javax.faces.el.ValueBinding;
 import javax.faces.model.SelectItem;
 import org.apache.myfaces.trinidad.component.UIXSelectItem;
 import org.apache.myfaces.trinidadinternal.convert.ConverterUtils;
@@ -373,13 +374,13 @@
     Converter converter = null;
     Class<?> modelClass = null;
     
-    ValueBinding binding = component.getValueBinding("value");
-    if (binding != null)
+    ValueExpression expression = component.getValueExpression("value");
+    if (expression != null)
     {
-      modelClass = binding.getType(fContext);
+      modelClass = expression.getType(fContext.getELContext());
       if (modelClass == null)
       {
-        Object o = binding.getValue(fContext);
+        Object o = expression.getValue(fContext.getELContext());
         if (o != null)
         {
           modelClass = o.getClass();

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/share/expl/Coercions.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/share/expl/Coercions.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/share/expl/Coercions.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/share/expl/Coercions.java Tue Jul  3 13:51:23 2007
@@ -180,6 +180,11 @@
       {
         return text;
       }
+      else if (Enum.class.isAssignableFrom(type))
+      {
+        return Enum.valueOf((Class<? extends Enum>) type, text);
+      }
+
       throw new IllegalArgumentException(_LOG.getMessage(
         "CANNOT_BE_PARSED", new Object[]{text, type.getName()}));
     }
@@ -275,6 +280,10 @@
           Array.set(res, 0, arrayValue);
         }
         return res;
+      }
+      else if (Enum.class.isAssignableFrom(type))
+      {
+        return Enum.valueOf((Class<? extends Enum>) type, value.toString());
       }
 
       throw new IllegalArgumentException(_LOG.getMessage(

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/StyleContext.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/StyleContext.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/StyleContext.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/StyleContext.java Tue Jul  3 13:51:23 2007
@@ -20,6 +20,7 @@
 
 import org.apache.myfaces.trinidadinternal.agent.TrinidadAgent;
 import org.apache.myfaces.trinidad.context.LocaleContext;
+import org.apache.myfaces.trinidad.skin.Skin;
 
 /**
  * The StyleContext interface is used to provide information

Modified: myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/cache/FileSystemStyleCache.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/cache/FileSystemStyleCache.java?view=diff&rev=552975&r1=552974&r2=552975
==============================================================================
--- myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/cache/FileSystemStyleCache.java (original)
+++ myfaces/trinidad/branches/pre-1.2.2-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/style/cache/FileSystemStyleCache.java Tue Jul  3 13:51:23 2007
@@ -6,9 +6,9 @@
  *  to you under the Apache License, Version 2.0 (the
  *  "License"); you may not use this file except in compliance
  *  with the License.  You may obtain a copy of the License at
- * 
+ *
  *  http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  *  Unless required by applicable law or agreed to in writing,
  *  software distributed under the License is distributed on an
  *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -904,7 +904,7 @@
             if (styleClass != null && !styleClass.startsWith(SkinSelectors.STATE_PREFIX))
               if (!map.containsKey(styleClass))
                 map.put(styleClass, _getShortStyleClass(map.size()));
-            
+
             if (style.isEmpty())
               emptySelectors.add(styleClass);
             else
@@ -921,15 +921,14 @@
               {
                 String styleClass = styleClasses.next();
                 _putStyleClassInShortMap(styleClass, map);
-                
                 // Don't remove any styleclass that is referred to
                 nonEmptySelectors.add(styleClass);
               }
             }
-            
+
             // now search for the selectors that have namespaces and add those to the map
             int length = namespacePrefixes.length;
-            
+
             for (int i=0; i < length; i++)
             {
               String nsPrefix = namespacePrefixes[i];
@@ -944,7 +943,6 @@
                 {
                   String styleClass = afSelectors.next();
                   _putStyleClassInShortMap(styleClass, map);
-
                   if (isFirst && !afSelectors.hasNext() && style.isEmpty())
                   {
                     emptySelectors.add(styleClass);
@@ -953,7 +951,7 @@
                   {
                     nonEmptySelectors.add(styleClass);
                   }
-                  
+
                   isFirst = false;
                 }
               }