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;
}
}