JavaServer(TM) Faces 1.2
|
JSF Community
|
This release includes Resource Injection support in Tomcat 6 (6.0.9 or later) and Jetty 6 (6.1.2rc0 or later). No configuration is needed. Just drop in the JARs and leverage the resource injections that the container itself supports. It's also very easy to add additional injection support for additional containers. The following blog entry goes into detail on these features:
We've added one new context initialization parameter since the release of 1.2_03
Paramter Name | Description | Default Value |
---|---|---|
com.sun.faces.writeStateAtFormEnd |
Per the renderkit doc specification, the state information
for the view will be written out prior to closing the
form tag. However, it may be desirable to
have the state information written out after
the opening form tag. If this is the case,
specifiy this parameter in the web.xml with a value of
false
|
true |
ID | Type | Pri | Plat | Owner | State | Resolution | Summary |
---|---|---|---|---|---|---|---|
461 | DEFECT | P3 | All | rlubke | RESOLVED | FIXED | UIInput.validateValue does not honor the severity of a valid |
464 | DEFECT | P3 | All | rlubke | RESOLVED | FIXED | SelectItem is always escaping itemValue |
467 | DEFECT | P3 | Macintos | rlubke | RESOLVED | FIXED | ViewHandler.initView() is called a bit too late |
468 | DEFECT | P3 | All | youngm | RESOLVED | FIXED | NPE on startup in Websphere 6.1 |
469 | DEFECT | P3 | All | rlubke | RESOLVED | FIXED | NPE from Faces Servlet Mapping with Portlet API |
470 | DEFECT | P3 | All | youngm | RESOLVED | FIXED | UISelectMany fails to convert submitted value where value co |
471 | DEFECT | P4 | All | rlubke | RESOLVED | FIXED | <f:actionListener> creates new Object, despite of given bind |
472 | DEFECT | P2 | All | rlubke | RESOLVED | FIXED | HtmlSelectOneRadio ignores escape property on SelectItem |
473 | DEFECT | P4 | All | jdlee | RESOLVED | FIXED | NPE if UIComponent.getFamily() not overridden |
478 | DEFECT | P1 | All | rlubke | RESOLVED | FIXED | NPE in RestoreViewPhase |
480 | DEFECT | P3 | All | rlubke | RESOLVED | FIXED | Tildes are incorrectly munged in output |
482 | DEFECT | P3 | All | rlubke | RESOLVED | FIXED | Typo in UIData prevents request var from being restored prop |
483 | DEFECT | P3 | All | jdlee | RESOLVED | FIXED | Problem with h:form param enctype |
484 | DEFECT | P1 | All | rlubke | RESOLVED | FIXED | Duplicate IDs when using jsp tag-files [+PATCH] |
493 | DEFECT | P1 | All | rlubke | RESOLVED | FIXED | setRequest does not reset request maps |
494 | DEFECT | P2 | Macintos | rlubke | RESOLVED | FIXED | UIComponentClassicTagBase.getParentUIComponentClassicTagBase |
495 | DEFECT | P2 | All | jdlee | RESOLVED | FIXED | NPE in MethodExpressionActionListener.processAction |
496 | DEFECT | P3 | All | rlubke | RESOLVED | FIXED | ConfigureListener.initalized() call needs to happen sooner |
497 | DEFECT | P3 | All | rlubke | RESOLVED | FIXED | Provide VariableMapper implementation |
498 | DEFECT | P3 | All | rlubke | RESOLVED | FIXED | Misleading error message about "Possible cyclic reference to |
502 | DEFECT | P3 | All | rlubke | VERIFIED | FIXED | Incompatible with facelets |
503 | DEFECT | P2 | All | rlubke | RESOLVED | FIXED | CommandButton 'type' attribute rendering is failing the TCK |
505 | DEFECT | P2 | All | rlubke | RESOLVED | FIXED | Avoid using java.beans.Beans.instantiate() for creating managed beans. |
507 | DEFECT | P3 | All | rlubke | RESOLVED | FIXED | ViewHandlerResponseWrapper.flushContentToWrappedResponse() fails on Jetty |
509 | DEFECT | P2 | All | rlubke | RESOLVED | FIXED | Client side saved state is deserialized twice. |
510 | DEFECT | P2 | All | rlubke | RESOLVED | FIXED | StackOverflowException if Application.setPropertyResolver() is used |
511 | DEFECT | P2 | All | rlubke | RESOLVED | FIXEED | FacesContext.getCurrentInstance() isn't a strong enough check to determine if the application has processed any request |
512 | DEFECT | P2 | Macintosh | rlubke | RESOLVED | FIXED | Application.setVariableResolver() disables faces-config.xml VariableResolvers |
516 | DEFECT | P3 | All | rogerk | RESOLVED | FIXED | h:messages Renders Markup With No Messages |
499 | DEFECT | P4 | All | rlubke | RESOLVED | FIXED | Similar to issue 471 - provide deferred binding implementations of converter and validator tags. |
521 | DEFECT | P1 | All | rlubke | RESOLVED | FIXED | "&" isn't always escaped (Issue resolved in P01) |
522 | DEFECT | P3 | All | rlubke | RESOLV | FIXE | Registering PropertyResolvers breaks the JSP ELResolver chain (Issue resolved in P01) |
530 | DEFECT | P2 | All | rlubke | RESOLV | FIXE | 1.1 based component libraries that make use of UIComponentTag.getParentUIComponentTag will receive a ClassCastException when running with JSF 1.2 (Issue resolved in P01) |
532 | DEFECT | P2 | All | rlubke | RESOLV | FIXE | Performance: WebappLifecycleListener.handleAttributeEvent hammers on application map (Issue resolved in P01) |
429 | ENHANCEMENT | P5 | All | jdlee | RESOLVED | FIXED | Make error message better |
476 | ENHANCEMENT | P3 | All | rlubke | RESOLVED | FIXED | Provovide default InjectionProvider for non-EE environments. |
481 | ENHANCEMENT | P3 | All | rlubke | RESOLVED | FIXED | JSP ViewHandlerImpl state manager buffering issues |
538 | DEFECT | P2 | All | rlubke | RESOLVED | FIXED | Incorrect syncronization in ApplicationAssociate.createAndMaybeStoreManagedBeans() (resolved in P02) |
541 | DEFECT | P3 | All | rlubke | RESOLVED | FIXED | verifyObjects feature needs to handle complex objects (resolved in P02) |
542 | DEFECT | P2 | Macintos | rlubke | RESOLVED | FIXED | h:commandLink with f:param that has a value that contains an apostrophe breaks functionality (resolved in P02) |
544 | DEFECT | P3 | All | rlubke | RESOLVED | FIXED | Problems with "Overriding Converter" (resolved in P02) |
545 | DEFECT | P3 | All | rlubke | RESOLVED | FIXED | NPE if #{cookie.foo} is used when no cookies are present (resolved in P02) |
546 | DEFECT | P3 | All | rogerk | RESOLVED | FIXED | ViewHandler.createView Can Cause NPE (resolved in P02) |
547 | DEFECT | P3 | All | rlubke | RESOLVED | FIXED | UnsupportedOperationExceptions hide real error message from ConfigureListener (resolved in P02) |
549 | DEFECT | P3 | All | rogerk | RESOLVED | FIXED | Util.getFacesMapping Uses Erroneous HttpServletRequest Check (resolved in P02) |
561 | DEFECT | P2 | All | rlubke | RESOLVED | FIXED | UIComponentBase.findComponent may incorrectly throw an IllegalArgumentException (resolved in P02) |
562 | DEFECT | P2 | All | rlubke | RESOLVED | FIXED | RequestHeaderMap.keySet().contains() is case-sensitive (resolved in P02) |
563 | DEFECT | P3 | All | youngm | RESOLVED | FIXED | Make specifying custom ExpressionFactory apply to both JSP 2.0 and 2.1 containers (resolved in P02) |
572 | DEFECT | P2 | All | rlubke | RESOLVED | FIXED | Restored ViewRoot is not set into the FacesContext soon enough (resolved in P02) |
573 | DEFECT | P3 | All | rlubke | RESOLV | FIXED | Content interweaving doesn't work as expected in portal environment (resolved in P02) |
We've added an augmentation to the InjectionProvider
mechanism to allow automatic discovery and configuration of
InjectionProvider
s without the need of manually configuring
them through the specialized base class DiscoverableInjectionProvider
.
DiscoverableInjectionProvider.java |
---|
1 package com.sun.faces.spi; 2 3 import com.sun.faces.util.Util; 4 5 /** 6 * <p><code>InjectionProvider</code>s that implement this interface 7 * can be configured via <code>META-INF/services/com.sun.faces.spi.InjectionProvider</code>. 8 * 9 * <p>The format of the configuration entries is:</p> 10 * <ul> 11 * <li><code><InjectionProviderClassName>:<DelegateClassName></code></li> 12 * <ul> 13 * 14 * <p>Example:</p} 15 * <ul> 16 * <li><code>com.sun.faces.vendor.GlassFishInjectionProvider:com.sun.enterprise.InjectionManager</code></li> 17 * </ul> 18 * 19 * <p>Multiple <code>DiscoverableInjectionProvider</code>s can be configured 20 * within a single services entry.</p> 21 */ 22 public abstract class DiscoverableInjectionProvider implements InjectionProvider { 23 24 25 /** 26 * @param delegateClass the name of the delegate used by the 27 * <code>InjectionProvider</code> implementation. 28 * @return returns <code>true</code> if the 29 * <code>InjectionProvider</code> instance 30 * is appropriate for the container its currently 31 * deployed within, otherwise return <code>false</code> 32 */ 33 public static boolean isInjectionFeatureAvailable(String delegateClass) { 34 35 try { 36 Util.loadClass(delegateClass, null); 37 return true; 38 } catch (Exception e) { 39 return false; 40 } 41 42 } 43 44 } 45 |