Notes on the MyFaces Core 2.0.13 Release

Timeline

Issues

Testing

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

Download a nightly build of the distribution assemblies:

Configure a <repository> for Maven 2:

        <repository>
           <id>apache.snapshots</id>
           <name>Apache Snapshot Repository</name>
           <url>http://people.apache.org/repo/m2-snapshot-repository</url>
        </repository>

And declare a dependency on the 2.0.13 snapshots:

        <dependency>
            <groupId>org.apache.myfaces.core</groupId>
            <artifactId>myfaces-api</artifactId>
            <version>2.0.13-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.apache.myfaces.core</groupId>
            <artifactId>myfaces-impl</artifactId>
            <version>2.0.13-SNAPSHOT</version>
        </dependency>

Note: Maven 2.0.13 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- myfaces.apache.org. (You must be subscribed to post. See: http://myfaces.apache.org/mail-lists.html.)

Tasks

Proposed Release Announcement

Diary

1. Preparing shared 4.0.13

mvn release:prepare -DtagBase=https://svn.apache.org/repos/asf/myfaces/shared/tags -DdryRun=true

mvn release:prepare -DtagBase=https://svn.apache.org/repos/asf/myfaces/shared/tags -Dresume=false
mvn install
mvn release:rollback
mvn release:prepare -DtagBase=https://svn.apache.org/repos/asf/myfaces/shared/tags -Dresume=false

mvn release:prepare -DtagBase=https://svn.apache.org/repos/asf/myfaces/shared/tags

mvn release:perform -DtagBase=https://svn.apache.org/repos/asf/myfaces/shared/tags

2. Preparing core 2.0.13

mvn clean install
mvn install -Pgenerate-assembly -Papache-release
mvn release:prepare -DprepareRelease=true -DtagBase=https://svn.apache.org/repos/asf/myfaces/core/tags  -DdryRun=true

mvn release:prepare -DprepareRelease=true -DtagBase=https://svn.apache.org/repos/asf/myfaces/core/tags  -Dresume=false
mvn install
mvn install -Pgenerate-assembly -Papache-release
mvn release:rollback -DprepareRelease=true 
mvn release:prepare -DprepareRelease=true -DtagBase=https://svn.apache.org/repos/asf/myfaces/core/tags  -Dresume=false

mvn release:prepare -DtagBase=https://svn.apache.org/repos/asf/myfaces/core/tags -DprepareRelease=true

mvn release:perform -DtagBase=https://svn.apache.org/repos/asf/myfaces/core/tags -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.0.13-src.tar.gz > myfaces-core-2.0.13-src.tar.gz.md5
openssl md5 myfaces-core-2.0.13-src.zip > myfaces-core-2.0.13-src.zip.md5
openssl sha1 myfaces-core-2.0.13-src.tar.gz > myfaces-core-2.0.13-src.tar.gz.sha1
openssl sha1 myfaces-core-2.0.13-src.zip > myfaces-core-2.0.13-src.zip.sha1
gpg --armor --output myfaces-core-2.0.13-src.tar.gz.asc --detach-sig myfaces-core-2.0.13-src.tar.gz
gpg --armor --output myfaces-core-2.0.13-src.zip.asc --detach-sig myfaces-core-2.0.13-src.zip

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

scp -p -r myfaces-core-2.0.13-bin* lu4242@people.apache.org:/home/lu4242/public_html/myfaces2013binsrc/binaries
scp -p -r myfaces-core-2.0.13-src* lu4242@people.apache.org:/home/lu4242/public_html/myfaces2013binsrc/sources

cd /home/lu4242/public_html/myfaces2013binsrc/binaries

wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-011/org/apache/myfaces/core/myfaces-core-assembly/2.0.13/myfaces-core-assembly-2.0.13-bin.tar.gz
wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-011/org/apache/myfaces/core/myfaces-core-assembly/2.0.13/myfaces-core-assembly-2.0.13-bin.tar.gz.asc
wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-011/org/apache/myfaces/core/myfaces-core-assembly/2.0.13/myfaces-core-assembly-2.0.13-bin.tar.gz.md5
wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-011/org/apache/myfaces/core/myfaces-core-assembly/2.0.13/myfaces-core-assembly-2.0.13-bin.tar.gz.sha1
wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-011/org/apache/myfaces/core/myfaces-core-assembly/2.0.13/myfaces-core-assembly-2.0.13-bin.zip
wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-011/org/apache/myfaces/core/myfaces-core-assembly/2.0.13/myfaces-core-assembly-2.0.13-bin.zip.asc
wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-011/org/apache/myfaces/core/myfaces-core-assembly/2.0.13/myfaces-core-assembly-2.0.13-bin.zip.md5
wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-011/org/apache/myfaces/core/myfaces-core-assembly/2.0.13/myfaces-core-assembly-2.0.13-bin.zip.sha1

cd /home/lu4242/public_html/myfaces2013binsrc/sources

wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-011/org/apache/myfaces/core/myfaces-core-assembly/2.0.13/myfaces-core-assembly-2.0.13-src.tar.gz
wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-011/org/apache/myfaces/core/myfaces-core-assembly/2.0.13/myfaces-core-assembly-2.0.13-src.tar.gz.asc
wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-011/org/apache/myfaces/core/myfaces-core-assembly/2.0.13/myfaces-core-assembly-2.0.13-src.tar.gz.md5
wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-011/org/apache/myfaces/core/myfaces-core-assembly/2.0.13/myfaces-core-assembly-2.0.13-src.tar.gz.sha1
wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-011/org/apache/myfaces/core/myfaces-core-assembly/2.0.13/myfaces-core-assembly-2.0.13-src.zip
wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-011/org/apache/myfaces/core/myfaces-core-assembly/2.0.13/myfaces-core-assembly-2.0.13-src.zip.asc
wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-011/org/apache/myfaces/core/myfaces-core-assembly/2.0.13/myfaces-core-assembly-2.0.13-src.zip.md5
wget --no-check-certificate https://repository.apache.org/content/repositories/orgapachemyfaces-011/org/apache/myfaces/core/myfaces-core-assembly/2.0.13/myfaces-core-assembly-2.0.13-src.zip.sha1

7. VOTE

Hi,

I was running the needed tasks to get the 2.0.13 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.0.13  [1]
 2. Maven artifact group "org.apache.myfaces.core" v2.0.13  [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.0.13" 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..............
------------------------------------------------

Thanks,
Leonardo Uribe

[1] https://repository.apache.org/content/repositories/orgapachemyfaces-011/org/apache/myfaces/
[2] http://www.apache.org/foundation/voting.html#ReleaseVotes
[3] http://people.apache.org/~lu4242/myfaces2013binsrc
[4] https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=10600&version=12319847

8. Clirr report to check binary incompatibilities success

9. Vote closed, starting distribution

cd /home/lu4242/public_html/myfaces2013binsrc/sources
cp * /www/www.apache.org/dist/myfaces/source
cd /home/lu4242/public_html/myfaces2013binsrc/binaries
cp * /www/www.apache.org/dist/myfaces/binaries

Alternative for manual copy:

mvn clean deploy -DaltDeploymentRepository=myfaces-staging::default::scpexe://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository -Psign-artifacts -DperformRelease=true -Dpassphrase=???

Alternative for manual copy:

mvn clean deploy -DaltDeploymentRepository=myfaces-staging::default::scpexe://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository -Psign-artifacts -DperformRelease=true -Dpassphrase=??? -Pgenerate-assembly 

10. Announce

Subject: [ANNOUNCE] MyFaces Core v2.0.13 Release

The Apache MyFaces team is pleased to announce the release of MyFaces Core 2.0.13.

MyFaces Core is a JavaServer(tm) Faces 2.0 implementation as specified by JSR-314. MyFaces Core has passed Sun's JSR-314 TCK and is 100% compliant with the JSR-314 specification. 

MyFaces Core 2.0.13 is available in both binary and source distributions.

    * http://myfaces.apache.org/download.html

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

Release Notes - MyFaces Core - Version 2.0.13 

Sub-task

    [MYFACES-3199] - Handling AbortProcessingException is unconsistent
    [MYFACES-3467] - [PERF] Use index-based loop where possible - part II

Bug

    [MYFACES-3415] - [ui:repeat] field value disappears if validation error exists on current site
    [MYFACES-3419] - AjaxBehavior.isImmediateSet(): information allows an associated client behavior renderer to fall back on the parent component's immediate status
    [MYFACES-3434] - UIInput.resetValue() throws NPE when no FacesContext available
    [MYFACES-3472] - NavigationHandler throws a NPE if current viewId is null
    [MYFACES-3474] - [perf] LifecycleProviderFactory does not cache created Factory
    [MYFACES-3476] - New CDATA fast filter throws Exception
    [MYFACES-3489] - ExternalContextUtils doesn't check PORTLET_20_SUPPORTED correctly
    [MYFACES-3490] - <h:commandButton> doesn't render styleClass with JavaScript disabled in web.xml
    [MYFACES-3491] - Unable to use direct char[] access of java.lang.String error on appengine
    [MYFACES-3502] - components inside f:metadata are recreated when the whole view is processed
    [MYFACES-3508] - ClassCastException during RestoreView with MyFaces 2.1.7-SNAPSHOT
    [MYFACES-3510] - Application components classloader memory leak
    [MYFACES-3513] - Invalid chaining of client behavior scripts when using both, explicitly provided event and default event
    [MYFACES-3514] - cc:insertChildren must relocate user tag handlers other tags that contains markup too
    [MYFACES-3515] - Duplicate id using a facet and multiple <c:if> blocks in a composite component
    [MYFACES-3516] - firefox 3.5+ has double eval with the integrated javascripts
    [MYFACES-3518] - Datatable (h:dataTable) is not populated with data despite getAll() method returns ResultSet with table rows ( Using Tomcat 7 + MySQL 5.5 + mysql-connector-java-5.1.18 )
    [MYFACES-3519] - Could not load Javascript-Sources in 'Package' org.apache.myfaces.core.impl.xhrCore.engine
    [MYFACES-3522] - collectionType attribute of selectManyCheckbox not processed correctly
    [MYFACES-3523] - javascript error in domquirks.js

Improvement

    [MYFACES-3136] - [perf] review UIComponentBase.getRendererType
    [MYFACES-3144] - [PERF] Cache renderer in UIComponentBase
    [MYFACES-3150] - [perf] buildView: review usage of "facelets.FACET_NAME"
    [MYFACES-3448] - UISelectOne.validateValue(...) optimised & refactored
    [MYFACES-3458] - [perf] Store URL at class ResourceImpl
    [MYFACES-3461] - HtmlRendererUtils.renderSelectOptions() performs many unnecessary calls to View Bean
    [MYFACES-3462] - REGRESSION - Detect when to wpdate head or body target when content has been updated dynamically
    [MYFACES-3463] - Refactor UIRepeat code to implement PSS algorithm like UIData and fix state behavior
    [MYFACES-3473] - [perf] Avoid unnecessary _ComponentChildrenList instances - improve HtmlRenderer.getChildren
    [MYFACES-3475] - [perf] Improve performance of HtmlResponseWriterImpl constructor
    [MYFACES-3478] - [perf] Replace HashSet with EnumSet for VisitHints
    [MYFACES-3479] - [perf] Remove END_LINK_OUTCOME_AS_SPAN from HtmlLinkRendererBase
    [MYFACES-3480] - [perf] Use lazy init for HashMap/HastSet where possible
    [MYFACES-3481] - [perf] f:validateBean re-creates facelets handlers (MetaRulesetImpl,DelegatingMetaTagHandler ...) for children every time
    [MYFACES-3484] - [perf] Use solr ConcurrentLRUCache instead Collections.synchronizedMap
    [MYFACES-3485] - [perf] Use facesContext attribute map instead request map
    [MYFACES-3486] - [perf] cache Factories to prevent unnecessary FactoryFinder.getFactory() calls
    [MYFACES-3487] - [perf] cache unique ids generated by facelets
    [MYFACES-3488] - [perf] store facelets MARK_CREATED and rendererType at UIComponentBase level
    [MYFACES-3492] - [perf] minimize FacesContext.getCurrentInstance() calls
    [MYFACES-3494] - [perf] improvements on DefaultFaceletsStateManagementStrategy
    [MYFACES-3495] - [perf] do not store default validationGroups for bean validation
    [MYFACES-3498] - create shared-public module
    [MYFACES-3499] - create parent module to allow release shared submodules independently
    [MYFACES-3500] - [perf] cache ResourceHandler instance used by facelets compiler TagLibrary
    [MYFACES-3512] - Add ServiceLoader code to our Chainloading init code

New Feature

    [MYFACES-3078] - performance: allow to disable JSP support
    [MYFACES-3468] - [PERF] Avoid unnecessary _ComponentFacetMap instances
    [MYFACES-3482] - jsf.js: jsr-344 getWindowId preparations, minor code cleanup

regards,

Leonardo Uribe