I'm trying to get the first snapshot of JSF 2.2 published and I've just scanned through the svn logs and arrived at the following text, from which I'll derive the "Changes between 2.1 and 2.2" content.

* Deprecate the CURRENT_COMPONENT and CURRENT_COMPOSITE_COMPONENT attributes 
  http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-784

* Fix incorrect VDLDoc http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-967
  f:selectItems itemValue description incorrect.

* Remove maxlength from f:viewParam
  http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-922

* Additional clarification about binding attribute in VDLdocs
  http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-998

* http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-998
  Document that ui:fragment should not be bound to a bean with wider
  than request scope, document that the type of the property must extend
  from UIComponent.

* Wrapper for ActionListener http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-993

* Changes to "template" attribute requiredness for ui:decorate and
  ui:composition
  http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-999

* http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-997
  
M       jsf-api/src/main/java/javax/faces/event/ComponentSystemEvent.java

- Mark this class as changed_modified_2_2

- Override isAppropriateListener so that it first asks the listener,
  "are you a ComponentSystemEventListener", then, if not, asks
  super.isAppropriateListener()

M       jsf-api/src/main/java/javax/faces/event/SystemEvent.java

- Mark this class as changed_modified_2_2

- in isAppropriateListener(), document the default implementation.

M       jsf-api/src/main/java/javax/faces/component/UIComponent.java

- Make inner class ComponentSystemEventListenerAdapter implement
  ComponentSystemEventListener.

* http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-917

    javax.faces.application.ResourceWrapper:
        - getContentType()
        - getLibraryName()
      - getResourceName()
      - setContentType(String)
      - setLibraryName(String)
      - setResourceName(String)
    javax.faces.context.ExternalContextWrapper:
      - getSessionMaxInactiveInterval()
      - isSecure()
      - setSessionMaxInactiveInterval()
    javax.faces.context.PartialViewContextWrapper
      - setPartialRequest(boolean)

* http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-915

  Non-normative text about http methods.

* 12.1.3 add this text to the javax.faces.STATE_SAVING_METHOD spec.

When examining the value, the runtime must ignore the case.

* Add ExternalContext.getApplicationContextPath()
  http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-1012

* http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-787: restore
  ViewScope before templates are processed with buildView()

* Tweak circumstances for skipping intervening lifecycle phases in the
  case of view metadata
  http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-762

* - Section 2.2.1.  Now has this text.

  Otherwise, call getViewMetadata() on the ViewDeclarationLanguage
  instance. If the result is non-null, call createMetadataView() on the
  ViewMetadata instance. Call ViewMetadata.getViewParameters(). If the
  result is a non-empty Collection, do not call
  facesContext.renderResponse(). If the result is an empty collection,
  try to obtain the metadata facet of the UIViewRoot by asking the
  UIViewRoot for the facet named UIViewRoot.METADATA_FACET_NAME. This
  facet must exist. If the facet has no children, call
  facesContext.renderResponse(). Otherwise, none of the previous steps
  have yielded the discovery any of metadata, so call
  facesContext.renderResponse().

* outputText and inputText do not render children by default
  http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-585

We're making some progress, but it's been challenging to balance operations issues with specification work.

Technorati Tags: edburns