Notes on the MyFaces Core 2.2.0-beta Release




Here's how you can help us test the distribution.

Download a nightly build of the distribution assemblies:

Configure a <repository> for Maven 2:

           <name>Apache Snapshot Repository</name>

And declare a dependency on the 2.2.0-beta snapshots:


Note: Maven 2.2.0-beta will not download a new version if one is already present in your local repository. You will need to delete $M2_REPO/org/apache/myfaces/core to force Maven to download the new version. (Usually, $M2_REPO is <your home directory>/.m2/repository .)

Test your application, then, let us know the results (good or bad!) on dev -at- (You must be subscribed to post. See:


Proposed Release Announcement


1. Preparing shared 4.2.0

mvn clean install -Dsynch-shared=true

mvn release:prepare -DtagBase= -DdryRun=true

mvn release:prepare -DtagBase= -Dresume=false
mvn install
mvn release:rollback
mvn release:prepare -DtagBase= -Dresume=false

mvn release:prepare -DtagBase=

mvn release:perform -DtagBase=

2. Preparing core 2.2.0-beta

mvn clean install
mvn install -Pgenerate-assembly -Papache-release
mvn release:prepare -DprepareRelease=true -DdryRun=true

mvn release:prepare -DprepareRelease=true -Dresume=false
mvn install
mvn install -Pgenerate-assembly -Papache-release
mvn release:rollback -DprepareRelease=true 
mvn release:prepare -DprepareRelease=true -Dresume=false

mvn release:prepare -DprepareRelease=true

mvn release:perform -DperformRelease=true

4. JIRA Release Management

5. Next step is the TCK

6. Generate assembly

mvn install -Pgenerate-assembly
cd assembly
mvn package

openssl md5 myfaces-core-2.2.0-beta-src.tar.gz > myfaces-core-2.2.0-beta-src.tar.gz.md5
openssl md5 >
openssl sha1 myfaces-core-2.2.0-beta-src.tar.gz > myfaces-core-2.2.0-beta-src.tar.gz.sha1
openssl sha1 >
gpg --armor --output myfaces-core-2.2.0-beta-src.tar.gz.asc --detach-sig myfaces-core-2.2.0-beta-src.tar.gz
gpg --armor --output --detach-sig

openssl md5 myfaces-core-2.2.0-beta-bin.tar.gz > myfaces-core-2.2.0-beta-bin.tar.gz.md5
openssl md5 >
openssl sha1 myfaces-core-2.2.0-beta-bin.tar.gz > myfaces-core-2.2.0-beta-bin.tar.gz.sha1
openssl sha1 >
gpg --armor --output myfaces-core-2.2.0-beta-bin.tar.gz.asc --detach-sig myfaces-core-2.2.0-beta-bin.tar.gz
gpg --armor --output --detach-sig

scp -p -r myfaces-core-2.2.0-beta-bin*
scp -p -r myfaces-core-2.2.0-beta-src*

cd /home/lu4242/public_html/myfaces220betabinsrc/binaries

wget --no-check-certificate
wget --no-check-certificate
wget --no-check-certificate
wget --no-check-certificate
wget --no-check-certificate
wget --no-check-certificate
wget --no-check-certificate
wget --no-check-certificate

cd /home/lu4242/public_html/myfaces220betabinsrc/sources

wget --no-check-certificate
wget --no-check-certificate
wget --no-check-certificate
wget --no-check-certificate
wget --no-check-certificate
wget --no-check-certificate
wget --no-check-certificate
wget --no-check-certificate



I was running the needed tasks to get the 2.2.0-beta release of Apache
MyFaces core out.

The artifacts passed all TCK tests.

Please note that this vote concerns all of the following parts:
 1. Maven artifact group "org.apache.myfaces.shared" v4.2.0  [1]
 2. Maven artifact group "org.apache.myfaces.core" v2.2.0-beta  [1]

The artifacts were deployed on nexus repo [1] and to my private 
Apache account [3] for binary and source packages.

The release notes could be found at [4].

Also the clirr test does not show binary incompatibilities with myfaces-api.

Please take a look at the "2.2.0-beta" artifacts and vote!

Please note: This vote is "majority approval" with a minimum of three
+1 votes (see [3]).

[ ] +1 for community members who have reviewed the bits
[ ] +0
[ ] -1 for fatal flaws that should cause these bits not to be released,
 and why..............

Leonardo Uribe


8. Clirr report to check binary incompatibilities success

9. Vote closed, starting distribution

cd /home/lu4242/public_html/myfaces220betabinsrc/sources
cp * /www/
cd /home/lu4242/public_html/myfaces220betabinsrc/binaries
cp * /www/

Alternative for manual copy:

mvn clean deploy -DaltDeploymentRepository=myfaces-staging::default::scpexe:// -Psign-artifacts -DperformRelease=true -Dpassphrase=???

Alternative for manual copy:

mvn clean deploy -DaltDeploymentRepository=myfaces-staging::default::scpexe:// -Psign-artifacts -DperformRelease=true -Dpassphrase=??? -Pgenerate-assembly 

10. Announce

Subject: [ANNOUNCE] MyFaces Core v2.2.0-beta Release

The Apache MyFaces team is pleased to announce the release of MyFaces Core 2.2.0-beta.

MyFaces Core is a JavaServer(tm) Faces 2.2 implementation as specified by JSR-334.

MyFaces Core 2.2.0-beta is available in both binary and source distributions.


MyFaces Core is also available in the central Maven repository under Group ID "org.apache.myfaces.core".


    [MYFACES-3654] - implement small threadsafe Random algorithm
    [MYFACES-3741] - Implement CDI Flow Scope
    [MYFACES-3742] - Implement @FlowDefinition annotation
    [MYFACES-3764] - Implement FlowHandler.getLastDisplayedViewId(FacesContext context) logic
    [MYFACES-3765] - Implement FlowHandler.clientWindowTransition(FacesContext context)
    [MYFACES-3788] - Improve log message in RendererUtils.getClientId with component location


    [MYFACES-2799] - JSF 2.1: jsf.js viewstate handling does not entirely work out (bug filed on the spec tracker
    [MYFACES-3648] - some jsf files contain illegal UTF characters
    [MYFACES-3649] - myfaces-shaded-impl always unpacks myfaces-2.1.1
    [MYFACES-3650] - myfaces-2.2.x poms not properly set up
    [MYFACES-3657] - 2.2 branch: checkstyle violation prevents compile
    [MYFACES-3671] - jsf-uncompressed.js contains 'import' of not existing file '_FinalizeableObj.js'
    [MYFACES-3697] - Error while parsing Facelet-Lib hides the real reason when logging
    [MYFACES-3698] - h:body onload and onunload attributes rendered twice if optimization enabled
    [MYFACES-3739] - @ResourceDependency annotation + JSF 1.2 state saving + c:if (dynamic section) creates components on each click (UIViewRoot grows)
    [MYFACES-3758] - Check for responseComplete or renderResponse only if a phase listeners is used
    [MYFACES-3773] - ui:repeat with offset and size does not behave as expected
    [MYFACES-3781] - f:view tag must be processed when view metadata is created
    [MYFACES-3802] - CDI FlowBuilderFactoryBean declares javax.faces.bean.ApplicationScoped (JSF managed bean annotation)


    [MYFACES-3768] - FacesMessage Severity ordinal values are not consistent with Mojarra RI
    [MYFACES-3774] - [perf] use facetName as a hint when try to find a component on refresh view algorithm
    [MYFACES-3775] - [perf] optional early flush
    [MYFACES-3776] - [perf] cache FacesContext at ClientBehaviorBase level
    [MYFACES-3777] - [perf] minimize FacesContext.getCurrentInstance() in some new points
    [MYFACES-3778] - [perf] cache url and request path for default Resource implementations

New Feature

    [MYFACES-3588] - window-id support
    [MYFACES-3706] - jsf.js jsf22, implement resetValues on the JS side of things
    [MYFACES-3723] - JSF 2.2: Support parameter javax.faces.SERIALIZE_SERVER_STATE
    [MYFACES-3725] - JSF 2.2: Custom webapp resources dir with javax.faces.WEBAPP_RESOURCES_DIRECTORY
    [MYFACES-3797] - cdi support for converters and validators


    [MYFACES-3674] - Implement f:viewAction
    [MYFACES-3676] - Implement FlashFactory and related events
    [MYFACES-3677] - Implement 'javax.faces.WEBAPP_RESOURCES_DIRECTORY'
    [MYFACES-3678] - Add ActionListenerWrapper class
    [MYFACES-3679] - Implement javax.faces.application.ApplicationConfigurationPopulator
    [MYFACES-3681] - Implement CollectionDataModel
    [MYFACES-3682] - Implement Client Side Request Forgery protection
    [MYFACES-3683] - Implement AjaxBehavior resetValues and delay
    [MYFACES-3684] - UIViewParameter.getSubmittedValue() return value can be Object in JSF 2.2 spec
    [MYFACES-3685] - Implement f:attributes facelet tag
    [MYFACES-3686] - Implement f:passThroughAttribute and f:passThroughAttributes
    [MYFACES-3688] - Implement ExternalContext.getSessionId()
    [MYFACES-3691] - Implement Faces Flows
    [MYFACES-3692] - Implement jsf:element tag and default TagDecorator
    [MYFACES-3693] - Implement ExternalContext.getApplicationContextPath()
    [MYFACES-3694] - Add httpOnly to ExternalContext.addResponseCookie(...)
    [MYFACES-3701] - Restoring view scope before view is build
    [MYFACES-3714] - Implement stateless mode using f:view "transient" attribute
    [MYFACES-3716] - Implement h:inputFile
    [MYFACES-3717] - Implement "role" attribute in related components and renderers
    [MYFACES-3718] - Replace with
    [MYFACES-3729] - Implement resource library contracts specification
    [MYFACES-3730] - Implement ViewDeclarationLanguageWrapper
    [MYFACES-3733] - Implement vdl.createComponent(...)
    [MYFACES-3734] - Implement @FacesComponent createTag, namespace and tagName attributes
    [MYFACES-3738] - Add media attribute to h:outputStylesheet
    [MYFACES-3740] - ResourceResolver "this" identifier applies for contracts too in JSF 2.2
    [MYFACES-3747] - Implement new JSF 2.2 ViewScope specification
    [MYFACES-3750] - Allow to reference composite components directly from facelets taglib file using <resource-id>
    [MYFACES-3753] - CompositeComponentELResolver map containsKey() should take into account default values
    [MYFACES-3754] - Update PartialViewContext and PartialResponseWriter to new spec
    [MYFACES-3755] - Show detail message on title of tooltip when showDetail is set or is available for h:message or h:messages
    [MYFACES-3756] - @FacesComponent and @FacesValidator value are now optional
    [MYFACES-3757] - Implement passthrough attributes using p:<attributeName>
    [MYFACES-3759] - Implement @FaceletsResourceResolver annotation
    [MYFACES-3761] - Implement html5 doctype on facelets compiler
    [MYFACES-3770] - Implement <f:resetValues> tag and <f:ajax resetValues=true ... >
    [MYFACES-3771] - h:commandButton renderer now can have children
    [MYFACES-3783] - Use tree visiting to pss algorithm in 2.2.x
    [MYFACES-3784] - Add EL 3 ELResolvers when they are available
    [MYFACES-3785] - RendererWrapper logic (@ListenerFor and @ResourceDependency)
    [MYFACES-3786] - Web Container injection support should be provided for additional lifecycle artifacts (not just managed beans)
    [MYFACES-3801] - Passthrough attributes does not require URI encoding like in writeURIAttribute


Leonardo Uribe