<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5102011143680768810</id><updated>2012-01-26T10:45:27.920+01:00</updated><category term='feeds'/><category term='ejug'/><category term='jsf 2.0'/><category term='bean-validation'/><category term='codi-add-on'/><category term='ViewScoped'/><category term='myfaces-extval-add-on'/><category term='tomee'/><category term='extval-add-on'/><category term='myfaces-extval'/><category term='glassfish'/><category term='maven'/><category term='os890'/><category term='jsr 330'/><category term='benchmark'/><category term='tomcat'/><category term='snapshot'/><category term='validator'/><category term='myfaces'/><category term='validation'/><category term='ConversationScoped'/><category term='sev-en'/><category term='git'/><category term='javaone'/><category term='jetty'/><category term='spring'/><category term='cross-validation'/><category term='richfaces'/><category term='cdi'/><category term='extcdi'/><category term='owb'/><category term='hg'/><category term='jsr 299'/><category term='deltaspike'/><category term='repository'/><category term='WindowScoped'/><category term='apache'/><category term='jsf'/><category term='jsr 303'/><category term='seam'/><category term='jboss as'/><category term='jbossas7'/><category term='ajax'/><category term='codi'/><category term='primefaces'/><category term='extval'/><category term='myfaces-extensions'/><category term='seam3'/><category term='config'/><category term='icefaces 2'/><category term='preview'/><category term='bitbucket'/><category term='ViewAccessScoped'/><category term='weld'/><category term='myfaces-trinidad'/><category term='scopes'/><category term='annotation'/><category term='icefaces'/><category term='RenderScoped'/><category term='portable cdi extensions'/><category term='orchestra'/><category term='jboss as 7'/><category term='session'/><category term='jboss'/><category term='myfaces codi'/><category term='mercurial'/><category term='prototype'/><category term='portable extensions'/><title type='text'>os890</title><subtitle type='html'>the blog of gerhard petracek about open source</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://os890.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default?start-index=101&amp;max-results=100'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>122</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-5574672731306976296</id><published>2012-01-25T20:40:00.001+01:00</published><updated>2012-01-26T10:45:27.925+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='tomee'/><category scheme='http://www.blogger.com/atom/ns#' term='extcdi'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 330'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>codi meets tomee</title><content type='html'>recently the open-ejb team released beta2 of tomee v1.&lt;br /&gt;&lt;br /&gt;tomee is already optimized a lot. today we saw an issue during the deployment of a codi demo to tomee. thx to &lt;a href="http://people.apache.org/committer-index.html#rmannibucau"&gt;romain manni-bucau&lt;/a&gt; we found the issue pretty quickly. due to an optimization tomee filters myfaces-* jar files to improve the scanning performance. so you just have to rename the jar file(s) of codi until the issue gets &lt;a href="https://issues.apache.org/jira/browse/OPENEJB-1758"&gt;fixed&lt;/a&gt;.&lt;br /&gt;(or manually patch org\apache\openejb\config\NewLoaderLogic.class in webapps\openejb\lib\openejb-core-4.0.0-beta-2.jar)&lt;br /&gt;&lt;br /&gt;furthermore, we will add an integration test to tomee to avoid that it happens again.&lt;br /&gt;&lt;br /&gt;so &lt;b&gt;have fun with myfaces codi on tomee!&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-5574672731306976296?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/5574672731306976296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=5574672731306976296' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/5574672731306976296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/5574672731306976296'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2012/01/codi-meets-tomee.html' title='codi meets tomee'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-8923898856704186145</id><published>2011-12-22T13:35:00.004+01:00</published><updated>2011-12-23T01:37:46.553+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='deltaspike'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 330'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>deltaspike repository</title><content type='html'>today we got our git repository for deltaspike: &lt;a href="https://git-wip-us.apache.org/repos/asf/incubator-deltaspike.git"&gt;https://git-wip-us.apache.org/repos/asf/incubator-deltaspike.git&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-8923898856704186145?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/8923898856704186145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=8923898856704186145' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/8923898856704186145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/8923898856704186145'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/12/deltaspike-repository.html' title='deltaspike repository'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-3419345840533315572</id><published>2011-12-22T13:18:00.001+01:00</published><updated>2011-12-23T01:39:27.789+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='bean-validation'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 303'/><category scheme='http://www.blogger.com/atom/ns#' term='extval'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>5th release of myfaces-extensions-validator</title><content type='html'>The Apache MyFaces team is pleased to announce the 5th release of Apache MyFaces Extensions Validator (aka ExtVal).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-3419345840533315572?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/3419345840533315572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=3419345840533315572' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3419345840533315572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3419345840533315572'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/12/5th-release-of-myfaces-extensions.html' title='5th release of myfaces-extensions-validator'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-8952721322635266154</id><published>2011-12-09T00:14:00.002+01:00</published><updated>2011-12-09T11:19:22.464+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='deltaspike'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 330'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>deltaspike mailing lists</title><content type='html'>today matt benson created our mailing lists and the first tests were successful: &lt;a href="http://goo.gl/oRFtU"&gt;http://goo.gl/oRFtU&lt;/a&gt; and &lt;a href="http://goo.gl/DZix0"&gt;http://goo.gl/DZix0&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;thx matt!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-8952721322635266154?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/8952721322635266154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=8952721322635266154' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/8952721322635266154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/8952721322635266154'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/12/deltaspike-mailing-lists.html' title='deltaspike mailing lists'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-251043501610260923</id><published>2011-12-07T23:37:00.009+01:00</published><updated>2011-12-08T12:59:26.543+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='deltaspike'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='seam3'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces codi'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 330'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>deltaspike joins the asf incubator</title><content type='html'>the vote to join the incubator was closed. there were 8 binding +1 votes, 3 non-binding +1 votes and no -1 votes. in parallel several other folks showed up and told us that they are interested to join the effort.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-251043501610260923?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/251043501610260923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=251043501610260923' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/251043501610260923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/251043501610260923'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/12/deltaspike-joins-asf.html' title='deltaspike joins the asf incubator'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-3400843467993512637</id><published>2011-11-30T02:00:00.002+01:00</published><updated>2011-11-30T02:05:17.217+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='deltaspike'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='seam3'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces codi'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 330'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>deltaspike - the future of myfaces codi (is bright)</title><content type='html'>&lt;a href="http://mail-archives.apache.org/mod_mbox/myfaces-users/201111.mbox/browser"&gt;today we announced the future of myfaces codi.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;that means: codi goes apache tlp (top level project) together with others (esp. the seam3 team and the cdi-source team). as mentioned in the announcement: we will continue with codi. several features will be promoted to deltaspike and codi v2 will be based on deltaspike and will provide all features which won't be available in deltaspike itself. codi v1 will continue (it will be improved and maintained as it is and won't migrate to deltaspike).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-3400843467993512637?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/3400843467993512637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=3400843467993512637' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3400843467993512637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3400843467993512637'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/11/deltaspike-future-of-myfaces-codi-is.html' title='deltaspike - the future of myfaces codi (is bright)'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-3709672537016111128</id><published>2011-08-28T16:52:00.003+02:00</published><updated>2011-08-28T17:01:50.483+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='scopes'/><category scheme='http://www.blogger.com/atom/ns#' term='extcdi'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='RenderScoped'/><category scheme='http://www.blogger.com/atom/ns#' term='ViewAccessScoped'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 330'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>[scopes] render-scope vs flash-scoped vs codi scopes</title><content type='html'>frameworks like seam provide a so called render-scope e.g. to use beans after a redirect for rendering the next page. that's very often not enough because beans are usually also needed on a subsequent request to the same page. the flash scope is also not the best solution because it's usually also used to overcome the redirect issue of request scoped beans. therefore, myfaces codi introduced the view-access-scope which keeps beans as long as they are accessed by a view (also supports any kind of ajax scenarios). however, if you really need the behaviour of @RenderScoped, you can use e.g. the @PostRenderView callback to terminate beans (which have one of the codi scopes) manually or you can provide a custom marker and you terminate all beans with this marker automatically in a phase-listener. the needed information is available in the &lt;a href="ttps://cwiki.apache.org/confluence/display/EXTCDI/"&gt;wiki &lt;/a&gt;(or just contact the myfaces mailing list, if you need further information about it).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-3709672537016111128?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/3709672537016111128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=3709672537016111128' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3709672537016111128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3709672537016111128'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/08/scopes-render-scope-vs-flash-scoped-vs.html' title='[scopes] render-scope vs flash-scoped vs codi scopes'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-8008827939447966896</id><published>2011-08-27T00:54:00.000+02:00</published><updated>2011-08-27T00:54:31.772+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='config'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces codi'/><category scheme='http://www.blogger.com/atom/ns#' term='extval'/><title type='text'>[myfaces] setup of codi and extval</title><content type='html'>in the last weeks i saw a lot of users looking for information about setting up and/or configuring extval and/or codi.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;the simple answer&lt;/b&gt;: both don't required configuration by default.&lt;br /&gt;zero config allows you to add the jar files you would like to use to your project and that's it.&lt;br /&gt;(in case of codi you have to ensure that you have configured the cdi implementation of your choice correctly. in case of the bv module of extval, you have to ensure that you added the bv implementation of your choice.)&lt;br /&gt;&lt;br /&gt;information about the libs is available in the corresponding wiki which is liked on the official website of each project. please check the wiki and/or send a mail to the mailing list.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-8008827939447966896?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/8008827939447966896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=8008827939447966896' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/8008827939447966896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/8008827939447966896'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/08/myfaces-setup-of-codi-and-extval.html' title='[myfaces] setup of codi and extval'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-6491479658470815943</id><published>2011-08-22T01:03:00.001+02:00</published><updated>2011-08-24T01:05:05.015+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='extcdi'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 330'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>8th release of myfaces-extensions-cdi</title><content type='html'>The Apache MyFaces team is pleased to announce the 8th release of Apache MyFaces Extensions CDI (aka CODI). It's v1.0.1!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-6491479658470815943?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/6491479658470815943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=6491479658470815943' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/6491479658470815943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/6491479658470815943'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/08/8th-release-of-myfaces-extensions-cdi.html' title='8th release of myfaces-extensions-cdi'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-7690227688994035011</id><published>2011-08-15T15:40:00.004+02:00</published><updated>2011-08-28T16:19:48.177+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='ViewScoped'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='scopes'/><category scheme='http://www.blogger.com/atom/ns#' term='extcdi'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='ViewAccessScoped'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 330'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>[scopes] view-scope vs view-access-scope</title><content type='html'>a lot of people were looking for this information.&lt;br /&gt;you can find the information in the &lt;a href="https://cwiki.apache.org/confluence/display/EXTCDI/Documentation"&gt;wiki&lt;/a&gt; of codi.&lt;br /&gt;&lt;br /&gt;however, the short answer is:&lt;br /&gt;the &lt;b&gt;view-scope&lt;/b&gt; of jsf2+ is bound to a concrete jsf page. that means: as soon as you navigate to a different page, the state gets lost. that's better than nothing, but not useful for a lot of use-cases. the main use-case which needs it are ajax-requests on a page and the data used by them aren't needed on other pages, but it's pretty easy to break it e.g. with a browser-refresh on a page which stores the data in a view-scoped bean and has no form with input components. (in a previous blog post i described how to use the infrastructure provided by codi to create a session based view-scope to overcome such disadvantages cause by storing view scoped beans as part of the tree-state.)&lt;br /&gt;&lt;br /&gt;like with the view-scope &lt;b&gt;view-access-scope&lt;/b&gt;d beans are available on a page, but they also exist for the next page. that means: they are forwarded to the next page and get destroyed autom. if they don't get used during the first request of the next page. that's e.g. useful for wizards. if you have a wizard page which doesn't use the bean or you have to support the possibility to interrupt a wizard, you can use the grouped-conversation scope (and even the window-scope) provided by codi. however, due to the powerful api of codi you can also destroy the scope manually at any time (if needed).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-7690227688994035011?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/7690227688994035011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=7690227688994035011' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/7690227688994035011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/7690227688994035011'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/08/scopes-view-scope-vs-view-access-scope.html' title='[scopes] view-scope vs view-access-scope'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-3624829756550106695</id><published>2011-08-02T02:18:00.012+02:00</published><updated>2011-08-28T17:02:52.512+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='weld'/><category scheme='http://www.blogger.com/atom/ns#' term='extcdi'/><category scheme='http://www.blogger.com/atom/ns#' term='spring'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='jbossas7'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jetty'/><category scheme='http://www.blogger.com/atom/ns#' term='scopes'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='glassfish'/><category scheme='http://www.blogger.com/atom/ns#' term='owb'/><category scheme='http://www.blogger.com/atom/ns#' term='tomcat'/><category scheme='http://www.blogger.com/atom/ns#' term='benchmark'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>[benchmark] boost myfaces codi scopes with owb v1.1.1</title><content type='html'>this is my last blog-entry about the performance of cdi implementations and codi scopes which is planned for the next months. why? you will see it in a minute.&lt;br /&gt;&lt;br /&gt;within the last weeks we gave the weld team some hints how they can tweak the performance of their scopes. as you can see in the following benchmark, they improved the performance of std. scopes in weld a lot. the performance of the std. scopes is now pretty much the same as with owb. all differences are within the tolerance. however, the owb team (special thx to mark) is again one step ahead. the next release of owb (v1.1.1) will allow to use a very fast instance cache for custom scopes. based on this feature, i implemented the &lt;a href="http://code.google.com/a/apache-extras.org/p/myfaces-codi-addons/source/browse/#hg%2Fcodi_scope_boost_owb"&gt;scope-boost&lt;/a&gt; add-on for codi. the result/s you can see in the chart: codi scopes are as fast as the request scope of owb. a nice detail about that: since owb v1.1.1 is faster than v1.1.0, codi scopes (+ add-on) in combination with owb v1.1.1 are faster than the (already very fast) request scope of owb v1.1.0 (you might remember the awesome results of the previous benchmarks).&lt;br /&gt;&lt;br /&gt;as you know the results depend on a lot of parameters. anyway, the following charts should give you a basic impression about the difference. on my system i can reproduce the overall results  (tolerance: &lt;0,25ms). all application servers were started without changes in the configuration. for producing the other results i used again tomcat v7.0.19. in this benchmark the servers aren't that important, because there is no class of those servers between the method call and the final method of the bean (just the proxies used by the cdi implementation). that means jboss as7 as well as glassfish v3 are just slower because they don't ship the latest version of weld. for sure - if you upgrade your server, you will get a better performance with those servers.&lt;p/&gt;&lt;br /&gt;&lt;b&gt;the result&lt;/b&gt;:&lt;br /&gt;as mentioned before std. scopes in weld (the currently latest release) and owb have about the same performance. in case of custom scopes owb can be way faster in combination with special add-ons for the corresponding custom scopes. the add-ons are needed to reset the cached instances, if the scope ends before the request ends. in case of codi you still have all advantages of codi-scopes as well as the performance of the request scope. that's possible due to the awesome concepts in owb as well as the UnscopeBeanEvent of codi. (&lt;i&gt;please notice&lt;/i&gt; that weld v1.1.2 which is called "standalone" in this chart is a newer version compared to weld v1.1.2 shipped with jboss as7 out-of-the-box. the newer version already has the performance improvements mentioned before. that's the reason for the difference (and it isn't related to jboss as7))&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-eAWrehNnYps/Tjc1ZBaFYZI/AAAAAAAAAig/P8Bl8d49MPE/s1600/benchmark_20110801.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="98" src="http://3.bp.blogspot.com/-eAWrehNnYps/Tjc1ZBaFYZI/AAAAAAAAAig/P8Bl8d49MPE/s400/benchmark_20110801.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;(the lower - the better)&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;for this benchmark i used the simple benchmark which i used for my first post (as well as the same steps to measure the performance). in the previous benchmark i switched to jmeter because users were interested in the overall impact. this time i (again) used the simpler version because of some fluctuations with jmeter tests. besides the typical parameters which can influence the results, load tests are less reproducible e.g. because of several features of modern cpus. however, the previous posts are still valid. after publishing them i re-tested the benchmarks with different systems as well as different jdk implementations, operating systems,... . for sure the results differed a bit, but the overall result was more or less the same (esp. the ranking). however, as mentioned in the previous posts as well as in this post, these benchmarks should give you a basic impression. you might see a bit different results on your system, but the overall result is usually the same - esp. the basic messages illustrated by this benchmark:&lt;br /&gt;&lt;br /&gt;- owb is innovative, pluggable and fast&lt;br /&gt;- owb + codi == just awesome &lt;br /&gt;- weld got a lot faster in the latest release&lt;br /&gt;- servers which bundle old versions of weld are slower because they depend on the performance of those versions -&gt; &lt;b&gt;update&lt;/b&gt; the versions as soon as you can and you will increase the performance of your applications deployed to those servers for free!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-3624829756550106695?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/3624829756550106695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=3624829756550106695' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3624829756550106695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3624829756550106695'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/08/benchmark-boost-myfaces-codi-scopes.html' title='[benchmark] boost myfaces codi scopes with owb v1.1.1'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-eAWrehNnYps/Tjc1ZBaFYZI/AAAAAAAAAig/P8Bl8d49MPE/s72-c/benchmark_20110801.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-705690578500551716</id><published>2011-07-17T00:25:00.012+02:00</published><updated>2011-08-28T17:04:52.447+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='weld'/><category scheme='http://www.blogger.com/atom/ns#' term='extcdi'/><category scheme='http://www.blogger.com/atom/ns#' term='spring'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='jbossas7'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jetty'/><category scheme='http://www.blogger.com/atom/ns#' term='scopes'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='glassfish'/><category scheme='http://www.blogger.com/atom/ns#' term='owb'/><category scheme='http://www.blogger.com/atom/ns#' term='tomcat'/><category scheme='http://www.blogger.com/atom/ns#' term='benchmark'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>[benchmark] myfaces codi scopes - weld vs owb part 3</title><content type='html'>in the previous benchmark i basically compared the scope performance of owb and weld with direct calls. this time i'm using jmeter to measure the performance under heavy load of a whole page. in the previous benchmarks the results were pretty stable. that's different this time. the results fluctuate way more and with some servers i (sometimes) got an OutOfMemoryError (depending on the settings). however, the conditions for the benchmark were the same for all servers:&lt;br /&gt;- starting the server&lt;br /&gt;- opening the page (which will be used for the jmeter tests)&lt;br /&gt;- specifying how many el-expressions should be tested&lt;br /&gt;- starting the jmeter benchmark&lt;br /&gt;&lt;br /&gt;pages with 100, 1.000, 5.000 and 10.000 el-expressions were used for the benchmark. &lt;br /&gt;&lt;br /&gt;all application servers were started without changes in the configuration. in tomcat mojarra 2.1.3 was used instead of myfaces-core to avoid an impact on the result e.g. due to a differing performance of renderers.&lt;br /&gt;&lt;br /&gt;every value-binding in the page queried the value of a conversation scoped bean (codi conversations). this bean delegates the call to an injected request scoped bean. and the request scoped bean delegates to an application scoped bean which caches the list of objects which should be displayed.&lt;br /&gt;&lt;br /&gt;as you know the results depend on a lot of parameters. anyway, the following charts should give you a basic impression about the difference. on my system i can reproduce the overall results.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;the result&lt;/b&gt;:&lt;br /&gt;esp. tests of pages with few el-expressions didn't show a huge difference between the servers, but the results fluctuated more compared to pages with a lot of el-expressions. as you see, tomcat 7 with owb is a bit better than tomcat 7 with weld and jboss as 7. in the end the difference is not big compared to glassfish v3.1.1. the following chart should give you a basic idea about a page which uses 100 value-bindings. that might sound a lot, but a page which contains a table with 4 columns and 15 rows already leads to 60 el-calls during the rendering phase only to display the values (in case of one displayed value per cell). and if you think about the rendered attribute or expressions to switch the formatting within cells dynamically,... you will get over 100 el-calls in the rendering phase very easily.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-GEwYwMJ1MZ0/TiIIkcVMl_I/AAAAAAAAAgs/zaQq3Env14o/s1600/benchmark_20110716_el.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="214" src="http://2.bp.blogspot.com/-GEwYwMJ1MZ0/TiIIkcVMl_I/AAAAAAAAAgs/zaQq3Env14o/s400/benchmark_20110716_el.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;i&gt;(the higher - the better)&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;as mentioned before i benchmarked the page with different amounts of el-expressions. the following chart shows the average of the throughput in percent. the fastest setup (in this case tomcat 7 + owb 1.1.0) is used as measuring staff.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-IlNvtYKOSGk/TiIQ61p7AHI/AAAAAAAAAg8/YBVdLAR4c4A/s1600/benchmark_20110716_percent.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="239" src="http://3.bp.blogspot.com/-IlNvtYKOSGk/TiIQ61p7AHI/AAAAAAAAAg8/YBVdLAR4c4A/s400/benchmark_20110716_percent.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;(the higher - the better)&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;it might be interesting to see the results of the benchmarks above in a different context. the following charts shows the overhead in percentage. a static html page with the same content served by jsf on tomcat 7 is the basis for the comparison and would have 0% (that means: no overhead).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-rlexszHn_Nc/TiI2dQPT3TI/AAAAAAAAAhM/h16dIt8xsZg/s1600/benchmark_20110716_overhead_percent.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="214" src="http://1.bp.blogspot.com/-rlexszHn_Nc/TiI2dQPT3TI/AAAAAAAAAhM/h16dIt8xsZg/s400/benchmark_20110716_overhead_percent.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;(the lower - the better)&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;measurements beyond hello word:&lt;br /&gt;there are applications with even larger pages. the following chart shows the numbers for 30.000 value bindings per page. compared to the value-bindings of the benchmark above, it uses more complex bindings like &lt;br /&gt;#{bean1.bean2.bean3.property} instead of directly delegating to a property of the first bean which resolves the final property. as you see owb gets even better with more complex scenarios.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-3IH2XR2uzsQ/TiLoKEofVfI/AAAAAAAAAhU/hJVFTTWgI_8/s1600/benchmark_20110716_complex_el.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="214" src="http://4.bp.blogspot.com/-3IH2XR2uzsQ/TiLoKEofVfI/AAAAAAAAAhU/hJVFTTWgI_8/s400/benchmark_20110716_complex_el.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;i&gt;(the higher - the better)&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;as mentioned before i used the settings which are shipped by the vendors out-of-the-box. since they are different i run the same constellation described above with 1.000 (instead of 30.000) value bindings per page. the following chart shows the result with -Xms128m -Xmx1500m -XX:MaxPermSize=256m (these values are the highest values used at least by one of the servers).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-rAQlrTpaeGw/TiM5Kp-t5xI/AAAAAAAAAh0/KvLPwbJizhs/s1600/benchmark_20110712_same_memory.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="214" src="http://1.bp.blogspot.com/-rAQlrTpaeGw/TiM5Kp-t5xI/AAAAAAAAAh0/KvLPwbJizhs/s400/benchmark_20110712_same_memory.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;i&gt;(the higher - the better)&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-705690578500551716?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/705690578500551716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=705690578500551716' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/705690578500551716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/705690578500551716'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/07/benchmark-myfaces-codi-scopes-weld-vs.html' title='[benchmark] myfaces codi scopes - weld vs owb part 3'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-GEwYwMJ1MZ0/TiIIkcVMl_I/AAAAAAAAAgs/zaQq3Env14o/s72-c/benchmark_20110716_el.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-4388718138301180780</id><published>2011-07-15T15:39:00.000+02:00</published><updated>2011-07-15T15:39:29.964+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='extcdi'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 330'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>codi meets scala</title><content type='html'>&lt;a href="http://werpublogs.blogspot.com/"&gt;werner&lt;/a&gt; wrote nice blog entries about using scala in combination with jsf. in the &lt;a href="http://werpublogs.blogspot.com/2011/07/marrying-jsf-with-scala-part2.html"&gt;second part&lt;/a&gt; he shows the basic approach how to implement the type-safe view-config the scala way. let's hope we will see a follow-up about nice view-config features like multiple inheritance of configs (like a SecuredPages interface).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-4388718138301180780?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/4388718138301180780/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=4388718138301180780' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/4388718138301180780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/4388718138301180780'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/07/codi-meets-scala.html' title='codi meets scala'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-5454766094235937969</id><published>2011-07-12T20:18:00.007+02:00</published><updated>2011-08-28T17:05:03.827+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='weld'/><category scheme='http://www.blogger.com/atom/ns#' term='extcdi'/><category scheme='http://www.blogger.com/atom/ns#' term='spring'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='jbossas7'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jetty'/><category scheme='http://www.blogger.com/atom/ns#' term='scopes'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='glassfish'/><category scheme='http://www.blogger.com/atom/ns#' term='owb'/><category scheme='http://www.blogger.com/atom/ns#' term='tomcat'/><category scheme='http://www.blogger.com/atom/ns#' term='benchmark'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>[benchmark] myfaces codi scopes - owb vs weld part 2</title><content type='html'>the last few days we heard a lot about how great jboss as 7 (jboss application server v7) should be. i already tested the pre-release version concerning the compatibility with codi. it worked pretty well. that was awesome. in this test i'm using the final version which starts in a bit more than 2 sec. (on my machine). but now it's time to measure the runtime performance. therefore i used the latest releases of all containers. (just in case of glassfish i used the nightly of glassfish v3.2 to be able to use the latest version.) in case of jboss as 7 and glassfish v3 i took the weld versions they provide out of the box and on tomcat 7 and jetty 7 i used the current openwebbeans (= owb) release.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;the result&lt;/b&gt; - jboss as 7 starts quite fast but the runtime performance is still better with a servlet container like tomcat or jetty + owb. however, i'm glad to see that there is a step forward from weld v1.1.1 to v1.1.2 but there is still a lot of room for improvements.&lt;br /&gt;&lt;br /&gt;the tested scopes are the scopes provided by myfaces codi (with the exception of the request scope - it's just included as an orientation). the most significant result in the first chart is that the slowest scope (which is still very fast) is faster with owb than the fastest scope with weld. (if you keep the tolerance in mind we could say it's maybe not faster but as least equivalent.)&lt;br /&gt;&lt;br /&gt;as you know the results depend on a lot of parameters. anyway, the following charts should give you a basic impression about the difference. on my system i can reproduce the results (tolerance: &lt;0,25ms). the benchmark invokes a method of an injected bean 1000 times. the benchmark was started 3 times and the chart shows the rounded average.&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-ntIyCijYLck/Th1znqVcWJI/AAAAAAAAAd0/PRVypboCdvU/s1600/benchmark_20110712_direct.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="116" width="400" src="http://2.bp.blogspot.com/-ntIyCijYLck/Th1znqVcWJI/AAAAAAAAAd0/PRVypboCdvU/s400/benchmark_20110712_direct.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-oOGek6UCfcI/Th1zsBaGt3I/AAAAAAAAAd8/Degq8hYEgJs/s1600/benchmark_20110712_el.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="116" width="400" src="http://2.bp.blogspot.com/-oOGek6UCfcI/Th1zsBaGt3I/AAAAAAAAAd8/Degq8hYEgJs/s400/benchmark_20110712_el.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;as you see there are more or less the same results in tomcat and jetty. the results depend on the cdi version and not the container. the differences are within the tolerance. the difference between glassfish and jboss as 7 is caused by the newer version of weld in jboss as 7. so independent of how fast jboss as 7 is (e.g. during startup), the runtime-performance depends on parts like the used cdi implementation. this benchmark shows what you get out-of-the-box. for sure with servlet containers like tomcat, jetty,... you have the choice. if performance is important for your project, go with owb (it's already used by several big real world projects, it's fast, very solid and provides a powerful spi to customize the behaviour if you need to).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;so it might be interesting to compare the currently released versions directly:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-C_fBKB9IeWo/Th3L0Kfz-sI/AAAAAAAAAeE/vwrxLEB1IDA/s1600/benchmark_20110712_comparison.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="226" width="400" src="http://3.bp.blogspot.com/-C_fBKB9IeWo/Th3L0Kfz-sI/AAAAAAAAAeE/vwrxLEB1IDA/s400/benchmark_20110712_comparison.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;note:&lt;br /&gt;owb has a special proxy for request scoped beans - that's the reason why there is such a huge difference.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-5454766094235937969?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/5454766094235937969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=5454766094235937969' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/5454766094235937969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/5454766094235937969'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/07/benchmark-myfaces-codi-scopes-owb-vs.html' title='[benchmark] myfaces codi scopes - owb vs weld part 2'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-ntIyCijYLck/Th1znqVcWJI/AAAAAAAAAd0/PRVypboCdvU/s72-c/benchmark_20110712_direct.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-3359738471676351543</id><published>2011-07-08T13:08:00.000+02:00</published><updated>2011-07-08T13:08:49.397+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='extcdi'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 330'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>codi for all - all for codi</title><content type='html'>it's really great. people notify us about successful tests on different environments.&lt;br /&gt;&lt;br /&gt;now codi is tested on:&lt;br /&gt;- Tomcat&lt;br /&gt;- TomEE&lt;br /&gt;- Jetty&lt;br /&gt;- JEE 6 Application-Servers (JBossAS, WebSphere, Glassfish)&lt;br /&gt;- JEE 5 Application-Servers (WLS, WebSphere,...)&lt;br /&gt;- dmServer&lt;br /&gt;&lt;br /&gt;an up to date list and further details are available &lt;a href="https://cwiki.apache.org/confluence/display/EXTCDI/Intro#Intro-Compatibility"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-3359738471676351543?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/3359738471676351543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=3359738471676351543' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3359738471676351543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3359738471676351543'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/07/codi-for-all-all-for-codi.html' title='codi for all - all for codi'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-7068455700984798</id><published>2011-07-07T10:00:00.000+02:00</published><updated>2011-07-08T12:57:05.016+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='extcdi'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 330'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>7th release of myfaces-extensions-cdi -&gt; v1</title><content type='html'>The Apache MyFaces team is pleased to announce the 7th release of Apache MyFaces Extensions CDI (aka CODI). It's v1.0.0!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-7068455700984798?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/7068455700984798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=7068455700984798' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/7068455700984798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/7068455700984798'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/07/7th-release-of-myfaces-extensions-cdi.html' title='7th release of myfaces-extensions-cdi -&gt; v1'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-5988923800656826934</id><published>2011-06-21T14:26:00.000+02:00</published><updated>2011-06-21T14:26:27.503+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jboss as 7'/><category scheme='http://www.blogger.com/atom/ns#' term='jboss as'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces codi'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 330'/><category scheme='http://www.blogger.com/atom/ns#' term='jboss'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>codi meets jboss as 7</title><content type='html'>since jboss application server v7 (jboss as 7) is short before the beta 4 and rc1 release, i tested the latest head with the latest version of codi. as &lt;a href="http://twitter.com/#!/MyFacesTeam/status/82844864013795329"&gt;tweeted&lt;/a&gt;, everything worked well. all workarounds for mojarra and weld we had to use for glassfish v3 also work on as7.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-5988923800656826934?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/5988923800656826934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=5988923800656826934' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/5988923800656826934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/5988923800656826934'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/06/codi-meets-jboss-as-7.html' title='codi meets jboss as 7'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-184675815298332377</id><published>2011-06-20T23:57:00.000+02:00</published><updated>2011-06-20T23:57:49.063+02:00</updated><title type='text'>goodbye ubuntu - welcome mint (ubuntu.better)</title><content type='html'>since years i'm using ubuntu. most of the time it worked pretty well. since some weeks i'm testing mint linux (it's based on ubuntu) as well as the current snapshots of other more famous dists like fedora. now i completely switched to mint. the original reason was gnome 2 but it turned out that they do a lot of things &lt;b&gt;way better&lt;/b&gt; and i can use it as it is (i even like the design).&lt;br /&gt;&lt;br /&gt;since i like their vision, i hope that i can keep it as long as possible.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-184675815298332377?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/184675815298332377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=184675815298332377' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/184675815298332377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/184675815298332377'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/06/goodbye-ubuntu-welcome-mint.html' title='goodbye ubuntu - welcome mint (ubuntu.better)'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-6119337866911787335</id><published>2011-06-01T21:57:00.017+02:00</published><updated>2011-08-28T17:05:22.248+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='ViewScoped'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='codi-add-on'/><category scheme='http://www.blogger.com/atom/ns#' term='scopes'/><category scheme='http://www.blogger.com/atom/ns#' term='session'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces codi'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 330'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>session based view-scope with codi</title><content type='html'>codi itself offers an adapter for the view-scope of jsf2+ as well as a view-access scope which sounds similar but is something completely different (there is a 2nd blog entry about the difference). this entry is &lt;b&gt;not&lt;/b&gt; about the view-access scope. it's about the view-scope which was introduced by jsf2. the adapter provided by codi allows you to bind cdi beans to the view-scope of jsf2+ directly. that's the reason why it's only available for jsf2+ whereas the other scopes of codi can be used with jsf1.2 as well as jsf2+. however, besides the basic concept of the view-scope, the default implementation has also some disadvantages (like losing the state in case of a browser-refresh, if there is no form with input components). if you haven't faced such issues, you might skip this blog entry. as mentioned before there is no standard way for &lt;b&gt;jsf1.2&lt;/b&gt; users to use the view-scope of jsf2+.&lt;br /&gt;&lt;br /&gt;after several questions about it i decided to implement a codi-add-on which can be used with jsf1.2 as well as with jsf2+. due to the powerful spi of codi, the result is a simple implementation which offers additional features like grouped beans (you can manually destroy beans of the same group immediately even though you stay on the &amp;nbsp;same page), optional bean events,... .&lt;br /&gt;&lt;br /&gt;it's e.g. problematic for some use-cases that the jsf2+ implementation of the view-scope stores the beans in the component tree. so several users ask for a session based view-scope. that means the &lt;b&gt;beans for a page&lt;/b&gt; will be stored in the session instead of the component tree. if you really need such a scope instead of the view-access-scope provided by codi, you can implement such a scope with the spi of codi +&lt;b&gt; two simple classes&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;approach #1&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;the first one is a marker annotation and the second one an observer for the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;PreViewConfigNavigateEvent&lt;/span&gt;. &lt;b&gt;&lt;span class="Apple-style-span" style="color: #38761d;"&gt;that's it!&lt;/span&gt;&lt;/b&gt; if you only use the type-safe navigation of codi, you are done and you annotate your bean with &lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;@View&lt;/span&gt;&lt;/b&gt; and the &lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;@ConversationScoped&lt;/span&gt;&lt;/b&gt; annotation provided by codi. as soon as a navigation to a new page is detected all conversation scoped beans annotated with &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;@View&lt;/span&gt; will be destroyed.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;script src="https://gist.github.com/1004164.js"&gt; &lt;/script&gt;&lt;br /&gt;&lt;br /&gt;if you don't use the type-safe navigation of codi, you can implement e.g. a custom jsf navigation handler which does the same for all navigations.&lt;br /&gt;&lt;br /&gt;if you prefer a &lt;b&gt;single annotation&lt;/b&gt; instead&amp;nbsp;(let's call it&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;@MyViewScoped&lt;/b&gt;&lt;/span&gt;), you can write a portable cdi extension which adds the&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;@ConversationScoped&lt;/span&gt;&amp;nbsp;dynamically to all beans which are annotated with&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;@MyViewScoped&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;it took longer to write this blog entry, than implementing this mechanism :)&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;b&gt;or&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;approach #2&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;the result of this approach is the same like approach #1.&amp;nbsp;the advantage is that you don't have to care about the navigation and&amp;nbsp;the disadvantage is that you have to extend a default implementation.&lt;br /&gt;&lt;br /&gt;if you are ok with extending the default implementation (with weld you have to #veto the default implementation instead of using &lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;@Specializes&lt;/span&gt;&lt;/b&gt;), you can override the default implementation of &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;#createConversation&lt;/span&gt; (a method which is part of the spi of codi). if you just implement the interface, you would override everything and you would deactivate all codi scopes. ok - so let's add a new scope with the same marker annotation and a&amp;nbsp;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ConversationFactory&lt;/span&gt;&lt;/b&gt; &lt;u&gt;instead of&lt;/u&gt; the observer:&lt;br /&gt;&lt;br /&gt;&lt;script src="https://gist.github.com/1004135.js"&gt; &lt;/script&gt;&lt;br /&gt;this implementation is compatible with all jsf concepts which are supported by codi!&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;&lt;a href="https://bitbucket.org/os890/codi-addons/src/3cb64bc60975/enhanced_conversations/"&gt;approach #2.1&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;this approach is the same like #2 but instead of implementing it on our own, we can&amp;nbsp;just&amp;nbsp;use the &lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;@ViewConversationScoped&lt;/span&gt;&lt;/b&gt; provided by the &lt;a href="https://bitbucket.org/os890/codi-addons/src/3cb64bc60975/enhanced_conversations/"&gt;enhanced-conversations&lt;/a&gt; add-on for codi:&lt;br /&gt;&lt;br /&gt;&lt;script src="https://gist.github.com/1004160.js"&gt; &lt;/script&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-6119337866911787335?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/6119337866911787335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=6119337866911787335' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/6119337866911787335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/6119337866911787335'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/06/session-based-view-scope-with-codi.html' title='session based view-scope with codi'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-3627591225359078382</id><published>2011-05-19T01:19:00.000+02:00</published><updated>2011-05-19T01:19:23.045+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='owb'/><title type='text'>new openwebbeans logo</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-4HNwKhKm6Qc/TdRT5ZIcWMI/AAAAAAAAAc4/fOqU5Tn_Wbs/s1600/owb_logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="228" src="http://3.bp.blogspot.com/-4HNwKhKm6Qc/TdRT5ZIcWMI/AAAAAAAAAc4/fOqU5Tn_Wbs/s320/owb_logo.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-3627591225359078382?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/3627591225359078382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=3627591225359078382' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3627591225359078382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3627591225359078382'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/05/new-openwebbeans-logo.html' title='new openwebbeans logo'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-4HNwKhKm6Qc/TdRT5ZIcWMI/AAAAAAAAAc4/fOqU5Tn_Wbs/s72-c/owb_logo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-2321944093378857980</id><published>2011-05-14T16:16:00.000+02:00</published><updated>2011-05-14T16:16:42.379+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='extcdi'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 330'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>6th release of myfaces-extensions-cdi</title><content type='html'>The Apache MyFaces team is pleased to announce the 6th release of Apache MyFaces Extensions CDI (aka CODI).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-2321944093378857980?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/2321944093378857980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=2321944093378857980' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/2321944093378857980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/2321944093378857980'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/05/6th-release-of-myfaces-extensions-cdi.html' title='6th release of myfaces-extensions-cdi'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-3455813590243497959</id><published>2011-04-15T17:02:00.001+02:00</published><updated>2011-04-15T17:04:32.724+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces codi'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 330'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>[slides] codi conversations</title><content type='html'>&lt;div style="width:425px" id="__ss_7639506"&gt;&lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/os890/myfaces-codi-conversations" title="MyFaces CODI Conversations"&gt;MyFaces CODI Conversations&lt;/a&gt;&lt;/strong&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/7639506" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt; &lt;div style="padding:5px 0 12px"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-3455813590243497959?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/3455813590243497959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=3455813590243497959' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3455813590243497959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3455813590243497959'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/04/slides-codi-conversations.html' title='[slides] codi conversations'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-2784256676397329436</id><published>2011-04-07T18:19:00.002+02:00</published><updated>2011-04-07T18:19:36.631+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='extcdi'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 330'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>5th release of myfaces-extensions-cdi</title><content type='html'>The Apache MyFaces team is pleased to announce the 5th release of Apache MyFaces Extensions CDI (aka CODI).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-2784256676397329436?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/2784256676397329436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=2784256676397329436' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/2784256676397329436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/2784256676397329436'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/04/5th-release-of-myfaces-extensions-cdi.html' title='5th release of myfaces-extensions-cdi'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-7835654094539949796</id><published>2011-03-29T12:32:00.008+02:00</published><updated>2011-04-01T16:11:21.635+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='weld'/><category scheme='http://www.blogger.com/atom/ns#' term='extcdi'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='spring'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='owb'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><category scheme='http://www.blogger.com/atom/ns#' term='benchmark'/><title type='text'>[benchmark] request scope - owb vs weld vs spring</title><content type='html'>after some performance improvements (see OWB-557) i did a simple benchmark in order to compare the request-scope of owb, weld and spring3 (with ScopedProxyMode.TARGET_CLASS). as you know the results depend on a lot of parameters. anyway, the following chart should give you a basic impression about the difference. on my system i can reproduce the results (tolerance: ~0,25ms). the benchmark invokes a method of an injected bean 1000 times. the benchmark was started 3 times and the chart shows the rounded average.&lt;br /&gt;&lt;br /&gt;the benchmarks with the direct method calls use the injected beans directly. that means those benchmarks show the raw performance. the benchmarks with the el-resolver calls use the jsf-api for resolving the beans and therefore they show the performance of the el-resolver implementations.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-hGU51hH2tlQ/TZXOqKpm3uI/AAAAAAAAAbo/PKkIP81iYQw/s1600/benchmark_20113103_direct.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="256" width="400" src="http://2.bp.blogspot.com/-hGU51hH2tlQ/TZXOqKpm3uI/AAAAAAAAAbo/PKkIP81iYQw/s400/benchmark_20113103_direct.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-UNzDRO-4_rU/TZXOtzmzcxI/AAAAAAAAAbw/vw35-CFNxMI/s1600/benchmark_20113103_el.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="256" width="400" src="http://2.bp.blogspot.com/-UNzDRO-4_rU/TZXOtzmzcxI/AAAAAAAAAbw/vw35-CFNxMI/s400/benchmark_20113103_el.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;note:&lt;br /&gt;owb has a special proxy for request scoped beans - that's the reason why there is such a huge difference.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-7835654094539949796?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/7835654094539949796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=7835654094539949796' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/7835654094539949796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/7835654094539949796'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/03/benchmark-request-scope-owb-vs-weld-vs.html' title='[benchmark] request scope - owb vs weld vs spring'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-hGU51hH2tlQ/TZXOqKpm3uI/AAAAAAAAAbo/PKkIP81iYQw/s72-c/benchmark_20113103_direct.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-8533803975283634172</id><published>2011-03-29T12:16:00.004+02:00</published><updated>2011-04-01T16:11:56.568+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='extcdi'/><category scheme='http://www.blogger.com/atom/ns#' term='spring'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='ViewAccessScoped'/><category scheme='http://www.blogger.com/atom/ns#' term='orchestra'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='ConversationScoped'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='owb'/><category scheme='http://www.blogger.com/atom/ns#' term='benchmark'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>[benchmark] myfaces codi scopes - codi vs orchestra</title><content type='html'>i did a simple benchmark in order to compare codi (+ owb 1.1) and the scopes of orchestra (without persistence interceptor). as you know the results depend on a lot of parameters. anyway, the following chart should give you a basic impression about the difference. on my system i can reproduce the results (tolerance: ~0,25ms). the benchmark invokes a method of an injected bean 1000 times. the benchmark was started 3 times and the chart shows the rounded average.&lt;br /&gt;&lt;br /&gt;the benchmarks with the direct method calls use the injected beans directly. that means those benchmarks show the raw performance. the benchmarks with the el-resolver calls use the jsf-api for resolving the beans and therefore they show the performance of the el-resolver implementations.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-RM_CDH80VIs/TZWm-hztRNI/AAAAAAAAAaY/v-iq5AhfrDw/s1600/benchmark_20113003_direct.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="176" width="400" src="http://3.bp.blogspot.com/-RM_CDH80VIs/TZWm-hztRNI/AAAAAAAAAaY/v-iq5AhfrDw/s400/benchmark_20113003_direct.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-b86lPJMlXd0/TZWnEQd7T2I/AAAAAAAAAag/PSYIYGdcMEg/s1600/benchmark_20113003_el.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="176" width="400" src="http://4.bp.blogspot.com/-b86lPJMlXd0/TZWnEQd7T2I/AAAAAAAAAag/PSYIYGdcMEg/s400/benchmark_20113003_el.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;note:&lt;br /&gt;owb has a special proxy for request scoped beans - that's the reason why there is such a huge difference.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-8533803975283634172?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/8533803975283634172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=8533803975283634172' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/8533803975283634172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/8533803975283634172'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/03/benchmark-myfaces-codi-scopes-codi-vs.html' title='[benchmark] myfaces codi scopes - codi vs orchestra'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-RM_CDH80VIs/TZWm-hztRNI/AAAAAAAAAaY/v-iq5AhfrDw/s72-c/benchmark_20113003_direct.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-144606004987791767</id><published>2011-03-26T13:03:00.003+01:00</published><updated>2011-03-26T13:57:07.272+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ConversationScoped'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='extcdi'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='ViewAccessScoped'/><category scheme='http://www.blogger.com/atom/ns#' term='owb'/><category scheme='http://www.blogger.com/atom/ns#' term='WindowScoped'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><category scheme='http://www.blogger.com/atom/ns#' term='benchmark'/><title type='text'>[benchmark] myfaces codi scopes - OWB vs Weld</title><content type='html'>i did a simple benchmark in order to check if we have to optimize owb even more. therefore, i also compared it with the performance of weld. as you know the results depend on a lot of parameters. anyway, the following chart should give you a basic impression about the difference. on my system i can reproduce the results (tolerance: ~0,25ms). the benchmark invokes a method of an injected bean 1000 times. the benchmark was started 3 times and the chart shows the rounded average. due to the quite slow initialization in weld (the result would be ~3,8 ms in case of the request scope), so i had to execute the benchmark ~3 times before the result got stable (to keep it fair i did the same with owb even though the differences are not that high). the 3 runs are those runs after the numbers had been stabilized.&lt;br /&gt;&lt;br /&gt;the benchmarks with the direct method calls use the injected beans directly. that means those benchmarks show the raw performance. the benchmarks with the el-resolver calls use the jsf-api for resolving the beans and therefore they show the performance of the el-resolver implementations of both cdi implementations.&lt;br /&gt;&lt;br /&gt;this benchmark uses the weld version which is bundled with glassfish 3.1:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-eva11nCKh4A/TYtVQPv_-JI/AAAAAAAAAaM/RCjkpda_Vmo/s1600/benchmark_20110324.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="https://lh3.googleusercontent.com/-eva11nCKh4A/TYtVQPv_-JI/AAAAAAAAAaM/RCjkpda_Vmo/s320/benchmark_20110324.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;this benchmark uses the (currently) latest snapshot of weld (downloaded from the &lt;a href="https://repository.jboss.org/nexus/content/repositories/snapshots/org/jboss/weld/weld-osgi-bundle/1.1.0-SNAPSHOT/"&gt;snapshot repository&lt;/a&gt;):&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-r7pF16sAFJ0/TY3WqZdrm8I/AAAAAAAAAaQ/C79doPZQD9c/s1600/benchmark_20110326_direct.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="https://lh6.googleusercontent.com/-r7pF16sAFJ0/TY3WqZdrm8I/AAAAAAAAAaQ/C79doPZQD9c/s320/benchmark_20110326_direct.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-7-mXSjjL29s/TY3WwatPbmI/AAAAAAAAAaU/cAOoNrkpPmk/s1600/benchmark_20110326_el.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="https://lh6.googleusercontent.com/-7-mXSjjL29s/TY3WwatPbmI/AAAAAAAAAaU/cAOoNrkpPmk/s320/benchmark_20110326_el.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;note:&lt;br /&gt;owb has a special proxy for request scoped beans - that's the reason&amp;nbsp;why there is such a huge difference.&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;ul&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-144606004987791767?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/144606004987791767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=144606004987791767' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/144606004987791767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/144606004987791767'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/03/benchmark-myfaces-codi-scopes-owb-vs.html' title='[benchmark] myfaces codi scopes - OWB vs Weld'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh3.googleusercontent.com/-eva11nCKh4A/TYtVQPv_-JI/AAAAAAAAAaM/RCjkpda_Vmo/s72-c/benchmark_20110324.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-3428747486541906617</id><published>2011-03-17T08:55:00.010+01:00</published><updated>2011-03-18T18:04:36.770+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces'/><title type='text'>apache myfaces pmc chair</title><content type='html'>now it's &lt;a href="http://www.mail-archive.com/dev@myfaces.apache.org/msg52106.html"&gt;official&lt;/a&gt; - i'm the new &lt;a href="http://www.apache.org/foundation/index.html"&gt;pmc chair of myfaces&lt;/a&gt;.&lt;br /&gt;i'll try to continue the great work of the previous chairs!&lt;br /&gt;&lt;br /&gt;furthermore, &lt;b&gt;i would like to thank &lt;a href="http://matthiaswessendorf.wordpress.com/"&gt;matthias&lt;/a&gt; for being such a great chair&lt;/b&gt;!&lt;br /&gt;i wish you all the best for your new job!&lt;br /&gt;&lt;br /&gt;in my first blog-post as new pmc chair i would like to mention:&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #38761d;"&gt;&lt;b&gt;everybody is welcome to &lt;a href="http://myfaces.apache.org/mail-lists.html"&gt;join&lt;/a&gt; our awesome community!&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #38761d;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;esp. those guys who&amp;nbsp;congratulated me directly because they haven't subscribed one of our lists. ;)&lt;br /&gt;&lt;br /&gt;you can also follow &lt;b&gt;&lt;span class="Apple-style-span" style="color: #6aa84f;"&gt;us&lt;/span&gt;&lt;/b&gt; (not only me) via:&lt;br /&gt;&lt;a href="http://twitter.com/MyFacesTeam"&gt;&lt;img alt="Twitter Button from twitbuttons.com" src="http://twitbuttons.com/twitbuttons/1512.png" width="144" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-3428747486541906617?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/3428747486541906617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=3428747486541906617' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3428747486541906617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3428747486541906617'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/03/apache-myfaces-pmc-chair.html' title='apache myfaces pmc chair'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-7937692850934739611</id><published>2011-03-14T23:27:00.013+01:00</published><updated>2011-04-01T12:47:12.930+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ConversationScoped'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='extcdi'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='ViewAccessScoped'/><category scheme='http://www.blogger.com/atom/ns#' term='owb'/><category scheme='http://www.blogger.com/atom/ns#' term='WindowScoped'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><category scheme='http://www.blogger.com/atom/ns#' term='benchmark'/><title type='text'>[benchmark] myfaces codi scopes</title><content type='html'>after some performance improvements in owb (thx to mark!) and codi i created a benchmark for the upcoming versions (owb 1.1 and codi 0.9.4). as you know the results depend on a lot of parameters. anyway, the following chart should give you a basic impression about the performance of the myfaces scopes. on my system i can reproduce the results (tolerance: ~0,5 ms in the benchmark with security-manager). the benchmark invokes a method of a scoped bean via an el-expression 1000 times (i've used the el-ri). the benchmark was started 3 times and the chart shows the rounded average.&lt;br /&gt;&lt;br /&gt;with a security-manager:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-BjbSnOjtPlI/TX7I4Fknp8I/AAAAAAAAAZ8/dl8jy6-TAlY/s1600/benchmark_20110315_wsm.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="192" width="400" src="http://4.bp.blogspot.com/-BjbSnOjtPlI/TX7I4Fknp8I/AAAAAAAAAZ8/dl8jy6-TAlY/s400/benchmark_20110315_wsm.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;without a security-manager:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-83cfmuwyLDc/TX7I9TEwHmI/AAAAAAAAAaE/WDI1ZaC07Vo/s1600/benchmark_20110315_wosm.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="192" width="400" src="http://2.bp.blogspot.com/-83cfmuwyLDc/TX7I9TEwHmI/AAAAAAAAAaE/WDI1ZaC07Vo/s400/benchmark_20110315_wosm.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;hint: this benchmark isn't comparable with the result(s) of the first benchmark back in 2010 because the test-system has more resources now.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;furthermore, i compared the result with spring 3 and orchestra (tolerance: ~0,5 ms).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-r3E5Z0dJ7qc/TZWtJH4bw3I/AAAAAAAAAbQ/l3nLI2riDDw/s1600/scope_benchmark.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="219" width="400" src="http://3.bp.blogspot.com/-r3E5Z0dJ7qc/TZWtJH4bw3I/AAAAAAAAAbQ/l3nLI2riDDw/s400/scope_benchmark.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-7937692850934739611?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/7937692850934739611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=7937692850934739611' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/7937692850934739611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/7937692850934739611'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/03/benchmark-myfaces-codi-scopes.html' title='[benchmark] myfaces codi scopes'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-BjbSnOjtPlI/TX7I4Fknp8I/AAAAAAAAAZ8/dl8jy6-TAlY/s72-c/benchmark_20110315_wsm.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-592676298978343859</id><published>2011-03-06T00:16:00.000+01:00</published><updated>2011-03-07T00:22:35.066+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='extcdi'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 330'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>4th release of myfaces-extensions-cdi</title><content type='html'>The Apache MyFaces team is pleased to announce the 4th release of Apache MyFaces Extensions CDI (aka CODI).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-592676298978343859?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/592676298978343859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=592676298978343859' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/592676298978343859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/592676298978343859'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/03/4th-release-of-myfaces-extensions-cdi.html' title='4th release of myfaces-extensions-cdi'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-852346623678768976</id><published>2011-02-26T00:11:00.000+01:00</published><updated>2011-02-26T00:11:10.449+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces codi'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 330'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>codi examples with myfaces stylesheet</title><content type='html'>there are several examples for myfaces codi in the myfaces-repository. most of them are just dev examples esp. for an easier communication between members of the dev team. users might be confused because they don't know the intention of the details. therefore, i started with the first hello-world example which will be shipped with the next release. currently the example shows some simple use-cases. you will see further examples in the near future. all examples (which are available in the myfaces-repository) with the official myfaces-stylesheet might be interesting for users.&lt;br /&gt;&lt;br /&gt;screenshot of the first example:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-2OoSV_VaHiw/TWg2f2jXX9I/AAAAAAAAAZM/-S6qmMUHP_s/s1600/example.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="210" width="400" src="http://1.bp.blogspot.com/-2OoSV_VaHiw/TWg2f2jXX9I/AAAAAAAAAZM/-S6qmMUHP_s/s400/example.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-852346623678768976?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/852346623678768976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=852346623678768976' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/852346623678768976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/852346623678768976'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/02/codi-examples-with-myfaces-stylesheet.html' title='codi examples with myfaces stylesheet'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-2OoSV_VaHiw/TWg2f2jXX9I/AAAAAAAAAZM/-S6qmMUHP_s/s72-c/example.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-3233981877238010232</id><published>2011-02-20T08:10:00.004+01:00</published><updated>2011-03-07T12:18:16.539+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces'/><title type='text'>myfaces extensions @ spaaze</title><content type='html'>somehow different (click on):&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://os890.spaaze.com/myfaces-extensions"&gt;&lt;img border="0" height="107" src="http://c0225452.cdn.cloudfiles.rackspacecloud.com/logo.png" width="300" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-3233981877238010232?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/3233981877238010232/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=3233981877238010232' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3233981877238010232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3233981877238010232'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/02/myfaces-extensions-spaaze.html' title='myfaces extensions @ spaaze'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-530670373600097704</id><published>2011-02-03T16:30:00.001+01:00</published><updated>2011-02-03T16:31:27.024+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='extcdi'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 330'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>codi meets the cloud</title><content type='html'>thx to &lt;a href="http://matthiaswessendorf.wordpress.com/"&gt;matthias&lt;/a&gt; we have a first &lt;a href="http://myfacescloud.mwessendorf.cloudbees.net"&gt;demo&lt;/a&gt; based on apache technologies which is deployed to a cloud infrastructure. as you can see the demo also includes myfaces codi!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-530670373600097704?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/530670373600097704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=530670373600097704' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/530670373600097704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/530670373600097704'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/02/codi-meets-cloud.html' title='codi meets the cloud'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-2442583758406804568</id><published>2011-01-24T21:35:00.000+01:00</published><updated>2011-01-24T21:35:59.068+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><title type='text'>apache member</title><content type='html'>last week i received an awesome invitation from &lt;a href="http://matthiaswessendorf.wordpress.com"&gt;matthias&lt;/a&gt; to become an &lt;a href="http://people.apache.org/committer-index.html#gpetracek"&gt;asf member&lt;/a&gt;. i'm honored and accepted with pleasure! thx to all members!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-2442583758406804568?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/2442583758406804568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=2442583758406804568' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/2442583758406804568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/2442583758406804568'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/01/apache-member.html' title='apache member'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-215200327168838933</id><published>2011-01-16T21:18:00.001+01:00</published><updated>2011-01-24T21:19:25.596+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='extcdi'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 330'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>3rd release of myfaces-extensions-cdi</title><content type='html'>The Apache MyFaces team is pleased to announce the 3rd release of Apache MyFaces Extensions CDI (aka CODI).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-215200327168838933?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/215200327168838933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=215200327168838933' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/215200327168838933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/215200327168838933'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2011/01/3rd-release-of-myfaces-extensions-cdi.html' title='3rd release of myfaces-extensions-cdi'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-4176391761085408510</id><published>2010-12-10T21:14:00.002+01:00</published><updated>2011-01-24T21:18:08.104+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='extcdi'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 330'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>2nd release of myfaces-extensions-cdi</title><content type='html'>2nd release of myfaces-extensions-cdi&lt;br /&gt;&lt;br /&gt;The Apache MyFaces team is pleased to announce the 2nd release of Apache MyFaces Extensions CDI (aka CODI).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-4176391761085408510?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/4176391761085408510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=4176391761085408510' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/4176391761085408510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/4176391761085408510'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2010/12/2nd-release-of-myfaces-extensions-cdi.html' title='2nd release of myfaces-extensions-cdi'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-4581249116334126839</id><published>2010-11-28T14:39:00.002+01:00</published><updated>2010-11-28T15:19:04.859+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='bean-validation'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 303'/><category scheme='http://www.blogger.com/atom/ns#' term='extval'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>myfaces extval release news r3 -&gt; r4</title><content type='html'>these slides give a short overview of the most important &lt;b&gt;new&lt;/b&gt; features of the 4th release of myfaces extval.&lt;br /&gt;&lt;br /&gt;&lt;div id="__ss_3538543" style="width: 425px;"&gt;&lt;strong style="display: block; margin: 12px 0 4px;"&gt;&lt;a href="http://www.slideshare.net/os890/myfaces-extensions-validator-r4-news" title="MyFaces Extensions Validator r4 News"&gt;MyFaces Extensions Validator r4 News&lt;/a&gt;&lt;/strong&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=myfacesextensions-validatorx-x-4news-101128071851-phpapp01&amp;stripped_title=myfaces-extensions-validator-r4-news" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=myfacesextensions-validatorx-x-4news-101128071851-phpapp01&amp;stripped_title=myfaces-extensions-validator-r4-news" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-4581249116334126839?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/4581249116334126839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=4581249116334126839' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/4581249116334126839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/4581249116334126839'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2010/11/myfaces-extval-release-news-r3-r4.html' title='myfaces extval release news r3 -&gt; r4'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-3219899106801295860</id><published>2010-11-27T21:20:00.005+01:00</published><updated>2011-01-24T21:22:54.823+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='bean-validation'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 303'/><category scheme='http://www.blogger.com/atom/ns#' term='extval'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>4th release of myfaces-extensions-validator</title><content type='html'>The Apache MyFaces team is pleased to announce the 4th release of Apache MyFaces Extensions Validator (aka ExtVal).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-3219899106801295860?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/3219899106801295860/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=3219899106801295860' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3219899106801295860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3219899106801295860'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2010/11/4th-release-of-myfaces-extensions.html' title='4th release of myfaces-extensions-validator'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-8965171410127505944</id><published>2010-11-15T15:19:00.001+01:00</published><updated>2010-11-15T15:19:00.045+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>new myfaces-extval logo</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_JO_w8kWegc4/TN_wQT5U49I/AAAAAAAAAYY/hVoHIpkBdsM/s1600/extval_logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="112" src="http://2.bp.blogspot.com/_JO_w8kWegc4/TN_wQT5U49I/AAAAAAAAAYY/hVoHIpkBdsM/s320/extval_logo.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-8965171410127505944?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/8965171410127505944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=8965171410127505944' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/8965171410127505944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/8965171410127505944'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2010/11/new-myfaces-extval-logo.html' title='new myfaces-extval logo'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JO_w8kWegc4/TN_wQT5U49I/AAAAAAAAAYY/hVoHIpkBdsM/s72-c/extval_logo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-3411641557339571896</id><published>2010-11-14T15:17:00.000+01:00</published><updated>2010-11-14T15:17:09.433+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='extcdi'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 330'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>myfaces-codi logo</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_JO_w8kWegc4/TN_vQZMPAxI/AAAAAAAAAYU/3hYgOXIvg5I/s1600/codi_logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="122" src="http://1.bp.blogspot.com/_JO_w8kWegc4/TN_vQZMPAxI/AAAAAAAAAYU/3hYgOXIvg5I/s320/codi_logo.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-3411641557339571896?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/3411641557339571896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=3411641557339571896' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3411641557339571896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3411641557339571896'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2010/11/myfaces-codi-logo.html' title='myfaces-codi logo'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JO_w8kWegc4/TN_vQZMPAxI/AAAAAAAAAYU/3hYgOXIvg5I/s72-c/codi_logo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-56533625536236450</id><published>2010-11-14T15:08:00.002+01:00</published><updated>2010-11-14T15:08:41.711+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='extcdi'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 330'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>myfaces-codi introduction slides</title><content type='html'>&lt;div id="__ss_956996" style="text-align: left; width: 425px;"&gt;&lt;a href="http://www.blogger.com/href=" http:="" myfaces-codi-v090?type="presentation&amp;quot;" os890="" style="display: block; font-family: Helvetica,Arial,Sans-serif; font-size-adjust: none; font-size: 14px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 12px 0pt 3px; text-decoration: underline;" title="MyFaces CODI v0.9.0 News" www.slideshare.net=""&gt;MyFaces CODI v0.9.0 News&lt;/a&gt;&lt;object height="355" style="margin: 0px;" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=myfacescodiv0-9-0-101112130014-phpapp01&amp;stripped_title=myfaces-codi-v090&amp;userName=os890"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=myfacescodiv0-9-0-101112130014-phpapp01&amp;stripped_title=myfaces-codi-v090&amp;userName=os890" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-56533625536236450?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/56533625536236450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=56533625536236450' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/56533625536236450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/56533625536236450'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2010/11/myfaces-codi-introduction-slides.html' title='myfaces-codi introduction slides'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-6326069767454229240</id><published>2010-11-14T14:14:00.001+01:00</published><updated>2010-11-14T15:00:42.284+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='extcdi'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 330'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>1st release of myfaces-extensions-cdi</title><content type='html'>The Apache MyFaces team is pleased to announce the 1st release of Apache MyFaces Extensions CDI (aka CODI).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-6326069767454229240?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/6326069767454229240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=6326069767454229240' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/6326069767454229240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/6326069767454229240'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2010/11/1st-release-of-myfaces-extensions-cdi.html' title='1st release of myfaces-extensions-cdi'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-5101134002498940425</id><published>2010-11-11T10:48:00.000+01:00</published><updated>2010-11-11T10:48:00.102+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='mercurial'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='extcdi'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces codi'/><category scheme='http://www.blogger.com/atom/ns#' term='hg'/><category scheme='http://www.blogger.com/atom/ns#' term='extval'/><title type='text'>[infra] myfaces extensions meet dvcs</title><content type='html'>&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;it's getting easier for the community to&amp;nbsp;&lt;b&gt;contribute&lt;/b&gt;&amp;nbsp;to myfaces-extensions *!&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;now we have official git&amp;nbsp;&lt;a href="http://git.apache.org/"&gt;mirrors&lt;/a&gt;:&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;a href="https://github.com/apache/myfaces-extval"&gt;https://github.com/apache/myfaces-extval&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;and&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;a href="https://github.com/apache/myfaces-extcdi"&gt;https://github.com/apache/myfaces-extcdi&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;as well as inofficial mercurial mirrors (hg isn't supported by the asf):&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;a href="https://bitbucket.org/os890/extval-milestones/"&gt;https://bitbucket.org/os890/extval-milestones/&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;and&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;a href="https://bitbucket.org/os890/codi-milestones/"&gt;https://bitbucket.org/os890/codi-milestones/&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;in case of myfaces-extensions * the mercurial repositories provide an additional feature. early adaptors can request an inofficial (external) milestone at any time. it's easier to handle issues compared to nightly builds.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;dvcs like mercurial and git allow easy forking of repositories and experimenting with new features. with features like&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;squash&lt;/b&gt;&lt;/span&gt;&amp;nbsp;it's very easy to donate the result of your feature-branch!&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;so let's get started:&amp;nbsp;fork -&amp;gt; experiment -&amp;gt;&amp;nbsp;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #38761d;"&gt;donate (your patch)&lt;/span&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;!&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-5101134002498940425?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/5101134002498940425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=5101134002498940425' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/5101134002498940425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/5101134002498940425'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2010/11/infra-myfaces-extensions-meet-dvcs.html' title='[infra] myfaces extensions meet dvcs'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-4770657729518102396</id><published>2010-10-23T11:06:00.001+02:00</published><updated>2010-10-23T12:00:31.902+02:00</updated><title type='text'>ubuntu 10.10</title><content type='html'>usually i don't blog about operating systems.&lt;br /&gt;however, have you thought linux or esp. ubuntu doesn't look awesome?&lt;br /&gt;&lt;br /&gt;if you invest about 2 hours to adjust the default theme, ui animations (of compiz), a custom dock (avant window navigator) and some other fine-tunings, you get a really nice user-experience!&lt;br /&gt;&lt;br /&gt;one picture doesn't show the whole story, but here is a basic impression:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_JO_w8kWegc4/TMKkwRjddYI/AAAAAAAAAX4/DZ6q4r8mClo/s1600/ubuntu_screenshot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/_JO_w8kWegc4/TMKkwRjddYI/AAAAAAAAAX4/DZ6q4r8mClo/s320/ubuntu_screenshot.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-4770657729518102396?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/4770657729518102396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=4770657729518102396' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/4770657729518102396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/4770657729518102396'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2010/10/ubuntu-1010.html' title='ubuntu 10.10'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JO_w8kWegc4/TMKkwRjddYI/AAAAAAAAAX4/DZ6q4r8mClo/s72-c/ubuntu_screenshot.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-9190408298062212470</id><published>2010-09-24T00:18:00.003+02:00</published><updated>2010-09-24T01:22:58.952+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces'/><category scheme='http://www.blogger.com/atom/ns#' term='extcdi'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='javaone'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces codi'/><category scheme='http://www.blogger.com/atom/ns#' term='extval'/><title type='text'>[javaone] myfaces extval and myfaces codi meet j1 2010</title><content type='html'>that's nice! matthias and ali presented myfaces at j1 2010. one part of the presentation was &lt;a href="http://myfaces.apache.org/extensions/validator/index.html"&gt;myfaces extval&lt;/a&gt; (e.g. &lt;a href="http://www.facebook.com/photo.php?pid=5440023&amp;id=601971414&amp;l=52e84c6927&amp;ref=fbx_album"&gt;[1]&lt;/a&gt; &lt;a href="http://www.facebook.com/photo.php?pid=5440025&amp;id=601971414&amp;l=52e84c6927&amp;ref=fbx_album"&gt;[2]&lt;/a&gt;) and a second part was about &lt;a href="https://cwiki.apache.org/confluence/display/EXTCDI/Documentation"&gt;myfaces codi&lt;/a&gt; (e.g. &lt;a href="http://www.facebook.com/photo.php?pid=5440022&amp;id=601971414&amp;l=52e84c6927&amp;ref=fbx_album"&gt;[1]&lt;/a&gt; &lt;a href="http://www.facebook.com/photo.php?pid=5440027&amp;id=601971414&amp;l=52e84c6927&amp;ref=fbx_album"&gt;[2]&lt;/a&gt;). it was the first preview of myfaces codi at a java conference.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-9190408298062212470?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/9190408298062212470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=9190408298062212470' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/9190408298062212470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/9190408298062212470'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2010/09/javaone-myfaces-extval-and-myfaces-codi.html' title='[javaone] myfaces extval and myfaces codi meet j1 2010'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-3244533298071678825</id><published>2010-09-23T23:46:00.003+02:00</published><updated>2010-09-23T23:53:47.170+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='portable cdi extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='portable extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces codi'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 330'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>[preview] codi meets cwiki.apache.org</title><content type='html'>it's really nice. myfaces codi as well as the documentation for it is still in progress and i see a lot of positive response out there.&lt;br /&gt;&lt;br /&gt;some days ago i started with the &lt;a href="https://cwiki.apache.org/confluence/display/EXTCDI/Documentation"&gt;documentation&lt;/a&gt; (it's still in progress) and google analytics shows that people are already reading it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-3244533298071678825?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/3244533298071678825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=3244533298071678825' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3244533298071678825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3244533298071678825'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2010/09/preview-codi-meets-cwikiapacheorg.html' title='[preview] codi meets cwiki.apache.org'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-4426633512377447478</id><published>2010-09-23T23:23:00.004+02:00</published><updated>2010-09-23T23:38:00.182+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mercurial'/><category scheme='http://www.blogger.com/atom/ns#' term='os890'/><category scheme='http://www.blogger.com/atom/ns#' term='bitbucket'/><category scheme='http://www.blogger.com/atom/ns#' term='hg'/><title type='text'>os890 meets bitbucket</title><content type='html'>it's planned to continue with the repository at &lt;a href="https://bitbucket.org/os890"&gt;https://bitbucket.org/os890&lt;/a&gt;. it's easier for users to fork it. well - mercurial might be a barrier for some of you, however, it's really easy and nice (a nice &lt;a href="http://hginit.com/top/"&gt;mercurial intro&lt;/a&gt;). you can easily fork an existing repository and it's easier to merge in your enhancements. so we hopefully get rid of all the hidden forks and the pain of manual merges.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-4426633512377447478?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/4426633512377447478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=4426633512377447478' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/4426633512377447478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/4426633512377447478'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2010/09/os890-meets-bitbucket.html' title='os890 meets bitbucket'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-7365124734891825219</id><published>2010-08-02T05:41:00.012+02:00</published><updated>2010-09-24T01:25:12.670+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='bean-validation'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 303'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='benchmark'/><title type='text'>[benchmark] myfaces extval</title><content type='html'>after some performance improvements (see &lt;a href="https://issues.apache.org/jira/browse/EXTVAL-80"&gt;EXTVAL-80&lt;/a&gt;) i created a benchmark for the &lt;b&gt;&lt;span class="Apple-style-span" style="color: #33cc00;"&gt;bean-validation &lt;/span&gt;&lt;span class="Apple-style-span" style="color: orange;"&gt;(jsr-303)&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #33cc00;"&gt; integration module&lt;/span&gt;&lt;/b&gt; for extval r3 and r4m3. as you know the results depend on a lot of parameters. anyway, the following chart should give you a first impression about the performance improvements. on my system i can reproduce the results (tolerance: ~2 ms). the benchmark invokes the validation for a component 1000 times. the value-binding points to a property which hosts one bv-constraint. the benchmark was started 3 times and the chart shows the rounded average of &lt;b&gt;&lt;span class="Apple-style-span" style="color: #ff6600;"&gt;10&lt;/span&gt;&lt;/b&gt; validations (just because it's more interesting than the validation of 1000 ui components).&lt;br /&gt;&lt;br /&gt;furthermore, the chart shows the impact of 2 optimizations described in a first draft for &lt;a href="http://wiki.apache.org/myfaces/Extensions/Validator/JSR303/Advanced"&gt;advanced extval/bv&lt;/a&gt; topics. optimization &lt;b&gt;#1&lt;/b&gt; just deregisters the validation interceptor which allows to create any kind of custom annotations for jsf validation (it's the base implementation of the property-validation module). optimization &lt;b&gt;#2&lt;/b&gt; deregisters the implementation of EXTVAL-83 - one of the new features available in r4+.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_JO_w8kWegc4/TFZFeLwbQQI/AAAAAAAAAW0/xpk6eYGITQE/s1600/benchmark_20100801.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5500660379733934338" src="http://4.bp.blogspot.com/_JO_w8kWegc4/TFZFeLwbQQI/AAAAAAAAAW0/xpk6eYGITQE/s400/benchmark_20100801.png" style="cursor: hand; cursor: pointer; display: block; height: 322px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-7365124734891825219?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/7365124734891825219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=7365124734891825219' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/7365124734891825219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/7365124734891825219'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2010/08/benchmark-myfaces-extval.html' title='[benchmark] myfaces extval'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JO_w8kWegc4/TFZFeLwbQQI/AAAAAAAAAW0/xpk6eYGITQE/s72-c/benchmark_20100801.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-7582223691222465700</id><published>2010-07-26T18:48:00.014+02:00</published><updated>2010-08-02T06:24:46.172+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ConversationScoped'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='extcdi'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='ViewAccessScoped'/><category scheme='http://www.blogger.com/atom/ns#' term='owb'/><category scheme='http://www.blogger.com/atom/ns#' term='WindowScoped'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><category scheme='http://www.blogger.com/atom/ns#' term='benchmark'/><title type='text'>[benchmark] myfaces codi scopes</title><content type='html'>after some performance improvements in owb (see &lt;a href="http://svn.apache.org/viewvc?view=revision&amp;amp;revision=966927"&gt;#966927&lt;/a&gt; and esp. &lt;a href="https://issues.apache.org/jira/browse/OWB-425"&gt;OWB-425&lt;/a&gt;) i created a benchmark for the new (pre alpha-1) myfaces codi scopes (&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#33CC00;"&gt;@ConversationScoped&lt;/span&gt;&lt;/b&gt; != std. CDI conversations, &lt;b&gt;&lt;span class="Apple-style-span"  style="color:#33CC00;"&gt;@ViewAccessScoped&lt;/span&gt;&lt;/b&gt; and &lt;b&gt;&lt;span class="Apple-style-span"  style="color:#33CC00;"&gt;@WindowScoped&lt;/span&gt;&lt;/b&gt;). as you know the results depend on a lot of parameters. anyway, the following chart should give you a first impression about the performance of the myfaces scopes. furthermore, it's a preview concerning the improved performance of the el-resolver of owb. on my system i can reproduce the results (tolerance: ~2 ms). the benchmark invokes a method of a scoped bean via an el-expression &lt;b&gt;&lt;span class="Apple-style-span"  style="color:#FF6600;"&gt;1000 times&lt;/span&gt;&lt;/b&gt; (i've used the el-ri). the benchmark was started 3 times and the chart shows the rounded average.&lt;br /&gt;&lt;br /&gt;(maybe you are wondering why std. cdi conversations provide a better performance than the codi conversations. the simple answer is: std. cdi conversations just don't provide that much features... they are more like a per window session with some annoying drawbacks.)&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JO_w8kWegc4/TE8tMSRayCI/AAAAAAAAAWs/f93dPD3MJ9E/s1600/benchmark_20100727.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 284px;" src="http://1.bp.blogspot.com/_JO_w8kWegc4/TE8tMSRayCI/AAAAAAAAAWs/f93dPD3MJ9E/s400/benchmark_20100727.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5498663359129241634" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-7582223691222465700?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/7582223691222465700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=7582223691222465700' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/7582223691222465700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/7582223691222465700'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2010/07/benchmark-myfaces-codi-scopes.html' title='[benchmark] myfaces codi scopes'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JO_w8kWegc4/TE8tMSRayCI/AAAAAAAAAWs/f93dPD3MJ9E/s72-c/benchmark_20100727.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-6705623519059805165</id><published>2010-07-03T19:45:00.003+02:00</published><updated>2010-07-03T21:11:49.715+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 303'/><category scheme='http://www.blogger.com/atom/ns#' term='annotation'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='preview'/><title type='text'>[preview] early preview of the 4th release</title><content type='html'>the current milestone already offers a lot of the features which will be available in the 4th release. the 4th release will introduce new features for the validation modules as well as some performance improvements and an improved jsf 2 support. until the next release, we will also improve the documentation. so it will take some time to get out the next version of extval. anyway, the current milestone is already quite stable and used in several applications out there.&lt;br /&gt;&lt;br /&gt;once again extval (1.x and 2.x) offers features which aren't available in other validation frameworks for jsf. e.g. extval allows to use @Valid in combination with jsf. beyond the features of bean-validation (jsr 303) itself extval provides the possibility to use an annotation called @ConstraintSource. it allows e.g. to annotate dto's with this new annotation(s) in order to specify the source which hosts the constraints. so you don't have to repeat all the constraints in classes like dto's.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-6705623519059805165?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/6705623519059805165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=6705623519059805165' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/6705623519059805165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/6705623519059805165'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2010/07/preview-early-preview-of-4th-release.html' title='[preview] early preview of the 4th release'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-4385128677176075863</id><published>2010-06-01T22:15:00.009+02:00</published><updated>2010-06-02T16:44:02.465+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='validator'/><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='bean-validation'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 303'/><category scheme='http://www.blogger.com/atom/ns#' term='extval'/><category scheme='http://www.blogger.com/atom/ns#' term='validation'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='extval-add-on'/><title type='text'>multi-field form validation with jsr 303</title><content type='html'>there is a new extval &lt;a href="http://code.google.com/p/os890/source/browse/#svn/trunk/java/web/jsf/extval.bv/multi_field_validation"&gt;add-on&lt;/a&gt;. this first draft of the add-on allows so called multi-field (or cross-field) validation based on jsr 303.&lt;br /&gt;&lt;br /&gt;within the page you just use normal input components - e.g.:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JO_w8kWegc4/TAVsgszcQbI/AAAAAAAAAVc/kIyEI-jNoXY/s1600/01.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 52px;" src="http://2.bp.blogspot.com/_JO_w8kWegc4/TAVsgszcQbI/AAAAAAAAAVc/kIyEI-jNoXY/s400/01.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5477903830804611506" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;furthermore, you annotate e.g. your page bean with @FormValidator. the annotation also allows to specify a specific view-id, conditions as well as validation groups. to implement a more fine-grained multi-validation it's possible to provide multiple form-bean classes. to implement more complex combinations it's possible to use @FormValidator.List(...). (as alternative you can also us the provided java api to map your bean(s) to a form-validator. so if you don't like to use the annotation you can provide a separated mapping.)&lt;br /&gt;&lt;br /&gt;usage of @FormValidator:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JO_w8kWegc4/TAVtzMqNuxI/AAAAAAAAAVk/zrapSO0mKAo/s1600/02.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 74px;" src="http://1.bp.blogspot.com/_JO_w8kWegc4/TAVtzMqNuxI/AAAAAAAAAVk/zrapSO0mKAo/s400/02.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5477905248105118482" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;in the page you see the id's of the different components. we have to use these id's as field-names (or setter-methods) in the form-validator.&lt;br /&gt;&lt;br /&gt;the following figure shows a possible form-validator for this example:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JO_w8kWegc4/TAVvENj-lgI/AAAAAAAAAVs/ci2j_DeKOic/s1600/03.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 209px;" src="http://2.bp.blogspot.com/_JO_w8kWegc4/TAVvENj-lgI/AAAAAAAAAVs/ci2j_DeKOic/s400/03.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5477906639916799490" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;as soon as the form-validator-bean is annotated with @Form, the validator is called by the bean-validation engine. so the violation message gets processed by the bean-validation engine and the final message is added as global faces-message.&lt;br /&gt;&lt;br /&gt;(if you would like to use the current ConstraintValidatorContext of bean-validation, you can directly implement the FormBean interface instead of extending ViolationMessageAwareFormBean.)&lt;br /&gt;&lt;br /&gt;if you use e.g. input components within a data-table, you can use 'add'-methods instead of the setter-method. in the form-validator you can use a data-structure like a list per column. as soon as the validation process starts (at the end of the validation phase) the form-validator contains all values (in case of input components in tables the validator is aware of all table values). so it's possible to implement any multi-field validation you can imagine (in case of input components in tables also validations per row as well as across rows).&lt;br /&gt;&lt;br /&gt;additional features:&lt;br /&gt;it's possible to map the form-bean-class to specific view-id's, to provide conditions as well as validation groups.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-4385128677176075863?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/4385128677176075863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=4385128677176075863' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/4385128677176075863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/4385128677176075863'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2010/06/multi-field-form-validation-with-jsr.html' title='multi-field form validation with jsr 303'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JO_w8kWegc4/TAVsgszcQbI/AAAAAAAAAVc/kIyEI-jNoXY/s72-c/01.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-5181054867168723855</id><published>2010-05-31T23:55:00.002+02:00</published><updated>2010-05-31T23:58:01.344+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces'/><title type='text'>[review] apache myfaces 1.2 web-application development</title><content type='html'>i reviewed a book about myfaces.&lt;br /&gt;&lt;a href="http://wiki.apache.org/myfaces/BookReviews"&gt;here you can read it&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-5181054867168723855?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/5181054867168723855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=5181054867168723855' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/5181054867168723855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/5181054867168723855'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2010/05/review-apache-myfaces-12-web.html' title='[review] apache myfaces 1.2 web-application development'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-3834173873068024356</id><published>2010-04-09T00:37:00.002+02:00</published><updated>2010-04-09T00:45:14.081+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='extval'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>extval meets cwiki.apache.org</title><content type='html'>today i created a new &lt;a href="http://cwiki.apache.org/confluence/display/EXTVAL/Index"&gt;cwiki-space for extval&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;within the next weeks i'll &lt;span style="font-weight:bold;"&gt;move and improve&lt;/span&gt; the documentation of extval.&lt;br /&gt;you are welcome to &lt;span style="font-weight:bold;"&gt;ask questions&lt;/span&gt; in order to improve the content!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-3834173873068024356?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/3834173873068024356/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=3834173873068024356' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3834173873068024356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3834173873068024356'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2010/04/extval-meets-cwikiapacheorg.html' title='extval meets cwiki.apache.org'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-6080085480182663199</id><published>2010-03-27T00:03:00.004+01:00</published><updated>2010-03-27T00:21:06.220+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='feeds'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>creating feeds with jsf is easy now</title><content type='html'>about one month ago i proposed a simple annotation based approach for creating feeds easily (e.g. based on jpa entities). now a first draft is available &lt;a href="http://tinyurl.com/y9jde9q"&gt;here&lt;/a&gt;. it's great that it's available quite fast after the initial brainstorming!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-6080085480182663199?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/6080085480182663199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=6080085480182663199' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/6080085480182663199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/6080085480182663199'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2010/03/creating-feeds-with-jsf-is-easy-now.html' title='creating feeds with jsf is easy now'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-1489665478151180989</id><published>2010-03-26T10:10:00.003+01:00</published><updated>2010-04-13T12:42:43.293+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='bean-validation'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-trinidad'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval-add-on'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 303'/><category scheme='http://www.blogger.com/atom/ns#' term='extval'/><title type='text'>extval meets paper</title><content type='html'>bart kummel wrote a book about the myfaces project.&lt;br /&gt;i'll publish a review about the book quite soon.&lt;br /&gt;&lt;br /&gt;it also contains an intro of myfaces extval!&lt;br /&gt;it's really great that the extval chapter is the &lt;a href="http://people.apache.org/~gpetracek/myfaces/extval/extval_chapter.html"&gt;free sample chapter&lt;/a&gt;.&lt;br /&gt;so enjoy reading it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-1489665478151180989?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/1489665478151180989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=1489665478151180989' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/1489665478151180989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/1489665478151180989'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2010/03/extval-meets-paper.html' title='extval meets paper'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-226712218576529574</id><published>2010-03-25T01:11:00.000+01:00</published><updated>2010-03-25T01:11:00.140+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='bean-validation'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval-add-on'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 303'/><category scheme='http://www.blogger.com/atom/ns#' term='extval'/><category scheme='http://www.blogger.com/atom/ns#' term='orchestra'/><title type='text'>extval r3 in action - fullstack 2010</title><content type='html'>this &lt;a href="http://code.google.com/p/jsfatwork/source/browse/#svn/fullstack-2010/trunk"&gt;fullstack&lt;/a&gt; demo illustrates some use-cases of using jsf 1.2, spring 3, myfaces extval r3, bean-validation,... in case of myfaces extval the demo also shows how to keep all layers outside the view-layer independent of extval classes. so you see how to re-use existing (extval independent) constraints for ui validation in a typesafe way.&lt;br /&gt;furthermore, the demo shows how to integrate bean-validation (jsr 303) in jsf 1.x applications.&lt;br /&gt;&lt;br /&gt;further details are available in the (short) readme file. &lt;br /&gt;&lt;br /&gt;here is the list of the used technologies:&lt;br /&gt; - jsf 1.2 (+ facelets)&lt;br /&gt; - myfaces orchestra&lt;br /&gt; - myfaces extval r3 (+ some add-ons)&lt;br /&gt; - bean-validation (jsr 303)&lt;br /&gt; - spring 3&lt;br /&gt; - jpa 1.0&lt;br /&gt; - primefaces&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-226712218576529574?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/226712218576529574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=226712218576529574' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/226712218576529574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/226712218576529574'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2010/03/extval-r3-in-action-fullstack-2010.html' title='extval r3 in action - fullstack 2010'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-1080004238513371159</id><published>2010-03-24T16:22:00.004+01:00</published><updated>2010-03-24T18:15:21.061+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='bean-validation'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 303'/><category scheme='http://www.blogger.com/atom/ns#' term='extval'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>myfaces extval release news r2 -&gt; r3</title><content type='html'>these slides give a short overview of the most important features of the 3rd release of myfaces extval.&lt;br /&gt;&lt;br /&gt;&lt;div style="width:425px" id="__ss_3538543"&gt;&lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/os890/myfaces-extensions-validator-r3-news" title="MyFaces Extensions Validator r3 News"&gt;MyFaces Extensions Validator r3 News&lt;/a&gt;&lt;/strong&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=myfacesextensions-validatorr3news-100324095157-phpapp02&amp;stripped_title=myfaces-extensions-validator-r3-news" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=myfacesextensions-validatorr3news-100324095157-phpapp02&amp;stripped_title=myfaces-extensions-validator-r3-news" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-1080004238513371159?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/1080004238513371159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=1080004238513371159' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/1080004238513371159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/1080004238513371159'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2010/03/myfaces-extval-release-news-r2-r3.html' title='myfaces extval release news r2 -&gt; r3'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-9062943968609260956</id><published>2010-03-24T06:22:00.001+01:00</published><updated>2010-03-24T10:45:57.346+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='bean-validation'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 303'/><category scheme='http://www.blogger.com/atom/ns#' term='extval'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>3rd release of myfaces-extensions-validator</title><content type='html'>the apache myfaces team is pleased to announce a new release of myfaces-extensions-validator!&lt;br /&gt;&lt;br /&gt;the release contains several improvements and new features as well as a new validation module for using &lt;span class="Apple-style-span"  style="color:#009900;"&gt;&lt;b&gt;bean-validation (jsr 303)&lt;/b&gt;&lt;/span&gt; with jsf 1.x and 2.0.&lt;br /&gt;(compared to the standard integration of bv in jsf 2.0 extval 2.0.3 offers more advanced and typesafe features.)&lt;br /&gt;&lt;br /&gt;released versions:&lt;br /&gt;extval 1.1.3 (for jsf 1.1.x)&lt;br /&gt;extval 1.2.3 (for jsf 1.2.x)&lt;br /&gt;extval 2.0.3 (for jsf 2.0.x)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-9062943968609260956?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/9062943968609260956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/9062943968609260956'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2010/03/3rd-release-of-myfaces-extensions.html' title='3rd release of myfaces-extensions-validator'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-6355894533642378926</id><published>2010-03-05T00:16:00.004+01:00</published><updated>2010-03-05T00:31:23.282+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='bean-validation'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval-add-on'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 303'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>[add-on] spring 3 managed constraint validation for extval</title><content type='html'>there is a new &lt;a href="http://code.google.com/p/os890/source/browse/#svn/trunk/java/web/jsf/extval.bv/spring_managed_constraint_validation"&gt;add-on&lt;/a&gt; which allows using typesafe spring 3 dependency injection for constraint validators. so it's possible to inject other beans (e.g. a validation service, a repository,...) into a constraint validator.&lt;br /&gt;&lt;br /&gt;it's similar to the native extval di support. the main difference is that the add-on offers a typesafe alternative. you just have to extend the default-implementation (listed at &lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;b&gt;@Constraint(validatedBy = {...})&lt;/b&gt;&lt;/span&gt;) and provide the custom implementation as spring bean.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-6355894533642378926?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/6355894533642378926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=6355894533642378926' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/6355894533642378926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/6355894533642378926'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2010/03/add-on-spring-3-managed-constraint.html' title='[add-on] spring 3 managed constraint validation for extval'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-1563878209245347021</id><published>2010-02-20T12:18:00.008+01:00</published><updated>2010-09-14T12:16:06.074+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 299'/><category scheme='http://www.blogger.com/atom/ns#' term='extcdi'/><category scheme='http://www.blogger.com/atom/ns#' term='codi'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 330'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='cdi'/><title type='text'>welcome myfaces-codi</title><content type='html'>it's official - myfaces is going to host a new extensions module.&lt;br /&gt;besides myfaces-extval and myfaces-extscript we now start myfaces-extcdi which is also known as myfaces-codi (&lt;span style="font-weight:bold;"&gt;&lt;span class="Apple-style-span"  style="color:#33CC00;"&gt;co&lt;/span&gt;&lt;/span&gt;ntext and &lt;span style="font-weight:bold;"&gt;&lt;span class="Apple-style-span"  style="color:#33CC00;"&gt;d&lt;/span&gt;&lt;/span&gt;ependency &lt;span style="font-weight:bold;"&gt;&lt;span class="Apple-style-span"  style="color:#33CC00;"&gt;i&lt;/span&gt;&lt;/span&gt;njection)&lt;br /&gt;(pronounced like the name).&lt;br /&gt;&lt;br /&gt;myfaces-codi will provide portable CDI (Contexts and Dependency Injection) extensions which are useful for JSF applications.&lt;br /&gt;&lt;br /&gt;we have already collected some nice ideas.&lt;br /&gt;however, everyone is welcome to donate further ideas, implementations,...&lt;br /&gt;&lt;br /&gt;so let's welcome codi!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-1563878209245347021?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/1563878209245347021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=1563878209245347021' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/1563878209245347021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/1563878209245347021'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2010/02/welcome-myfaces-codi.html' title='welcome myfaces-codi'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-4612036264818431111</id><published>2010-02-09T10:34:00.005+01:00</published><updated>2010-02-09T11:51:17.682+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 303'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>myfaces-extval @ jsfdays 2010</title><content type='html'>last year i presented extval at my trinidad workshop (esp. the integration and special features in combination with trinidad).&lt;br /&gt;&lt;br /&gt;this year i'll give a jsf &lt;a href="http://jsfdays.irian.at/main/schedule.jsf?session=111"&gt;fullstack workshop&lt;/a&gt;. one part of the workshop will show how to integrate bean-validation in a jsf 1.x application via myfaces extval as well as the migration path for upgrading to jsf 2.0.&lt;br /&gt;&lt;br /&gt;the rest of the workshop will be interesting as well (for sure)!&lt;br /&gt;&lt;br /&gt;if you are interested - just register &lt;a href="http://jsfdays.irian.at"&gt;here&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-4612036264818431111?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/4612036264818431111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=4612036264818431111' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/4612036264818431111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/4612036264818431111'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2010/02/myfaces-extval-jsfdays-2010.html' title='myfaces-extval @ jsfdays 2010'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-242080083218685797</id><published>2009-12-17T12:18:00.001+01:00</published><updated>2009-12-17T12:19:27.817+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>myfaces extval @ jsfcentral</title><content type='html'>the next part of the article series is available at &lt;a href="http://www.jsfcentral.com/articles/myfaces_extval_3.html"&gt;jsfcentral&lt;/a&gt;.&lt;br /&gt;thx to the jsfcentral team!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-242080083218685797?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/242080083218685797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=242080083218685797' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/242080083218685797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/242080083218685797'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/12/myfaces-extval-jsfcentral.html' title='myfaces extval @ jsfcentral'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-4347385010326621110</id><published>2009-12-17T11:02:00.001+01:00</published><updated>2010-03-24T18:16:54.676+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='validator'/><category scheme='http://www.blogger.com/atom/ns#' term='ejug'/><category scheme='http://www.blogger.com/atom/ns#' term='bean-validation'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 303'/><category scheme='http://www.blogger.com/atom/ns#' term='extval'/><category scheme='http://www.blogger.com/atom/ns#' term='validation'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>metadata based validation @ejug seminar (german)</title><content type='html'>the slides of the metadata based validation presentation at the ejug seminar in linz.&lt;br /&gt;&lt;br /&gt;&lt;div style="width:425px;text-align:left" id="__ss_2740293"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/os890/metadatenbasierte-validierung" title="Metadatenbasierte Validierung"&gt;Metadatenbasierte Validierung&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=ejug091217german-091217175700-phpapp01&amp;stripped_title=metadatenbasierte-validierung" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=ejug091217german-091217175700-phpapp01&amp;stripped_title=metadatenbasierte-validierung" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-4347385010326621110?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/4347385010326621110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=4347385010326621110' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/4347385010326621110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/4347385010326621110'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/12/metadata-based-validation-ejug-seminar.html' title='metadata based validation @ejug seminar (german)'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-783443104333422517</id><published>2009-12-12T12:12:00.001+01:00</published><updated>2009-12-12T12:12:00.339+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>happy birthday myfaces-extval</title><content type='html'>one year ago we saw the first release of myfaces extensions validator.&lt;br /&gt;&lt;br /&gt;the second release was a small but powerful update.&lt;br /&gt;the third release will be available soon. it is a major update and will provide a lot new great features as well as a new validation module which allows to use bean-validation (jsr 303) with all jsf versions as well as some other additional features compared to the standard integration of bv in jsf 2. the latest milestone is available at the &lt;a href="http://os890.blogspot.com/2009/07/myfaces-extval-snapshots.html"&gt;snapshot repository&lt;/a&gt;. it's already very stable and you can start using it right now! (currently we are in the review phase - so you can already use the current milestone until the version gets released.)&lt;br /&gt;&lt;br /&gt;so extval and its add-ons will continue to help you to solve your daily validation tasks with powerful and easy to use mechanisms.&lt;br /&gt;&lt;br /&gt;within the last year i received a lot of great feedback as well as a lot ideas for great add-ons. over 17 000 page-hits (in ~100 different countries) within the first year is really great for such an extension! these numbers are just for os890. if you also count the articles, wikis,... it's much higher!&lt;br /&gt;&lt;br /&gt;so all of you are welcome to use the current milestone and don't stop to provide feedback as well as ideas for great new features and improvements...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-783443104333422517?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/783443104333422517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=783443104333422517' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/783443104333422517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/783443104333422517'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/12/happy-birthday-myfaces-extval.html' title='happy birthday myfaces-extval'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-4731129827409078983</id><published>2009-11-26T23:00:00.007+01:00</published><updated>2009-11-27T00:32:15.032+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='bean-validation'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-validation'/><category scheme='http://www.blogger.com/atom/ns#' term='primefaces'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 303'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>primefaces and jsr 303 via extval</title><content type='html'>the &lt;a target="_blank" href="http://os890.blogspot.com/2009/04/myfaces-extval-and-prime-faces.html"&gt;previous post&lt;/a&gt; shows how easy it is to set-up extval to be used with primefaces.&lt;br /&gt;&lt;br /&gt;in the meantime i created a small example [1] which shows that it is very easy to use jsr 303 constraints in a primefaces application via extval.&lt;br /&gt;&lt;br /&gt;furthermore, the demo shows ajax validation based on jpa annotations as well as cross-validation via ajax and the none-blocking warn mode.&lt;br /&gt;&lt;br /&gt;moreover, the example shows the optional component support module for primefaces. for example it allows component initialization of the password-component based on meta-data. that's equivalent to the functionally available for the standard components. if a property bound to this special primefaces component hosts meta-data about min and max length (e.g. the jsr 303 constraint @Size(min = 7, max = 14), these information get transferred to the component automatically.&lt;br /&gt;&lt;br /&gt;a sample screen of the demo:&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JO_w8kWegc4/Sw7-tLUWoDI/AAAAAAAAATo/E0zA3L_CCPc/s1600/primefaces_extval.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 200px;" src="http://3.bp.blogspot.com/_JO_w8kWegc4/Sw7-tLUWoDI/AAAAAAAAATo/E0zA3L_CCPc/s400/primefaces_extval.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5408540254604271666" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;[1] &lt;a target="_blank" href="http://code.google.com/p/sandbox890/source/browse/#svn/trunk/examples/primefaces_extval/example_01"&gt;http://code.google.com/p/sandbox890/source/browse/#svn/trunk/examples/primefaces_extval/example_01&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-4731129827409078983?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/4731129827409078983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=4731129827409078983' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/4731129827409078983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/4731129827409078983'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/11/primefaces-and-jsr-303-via-extval.html' title='primefaces and jsr 303 via extval'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JO_w8kWegc4/Sw7-tLUWoDI/AAAAAAAAATo/E0zA3L_CCPc/s72-c/primefaces_extval.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-2630487045040608072</id><published>2009-11-23T23:55:00.002+01:00</published><updated>2009-11-24T00:06:40.873+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval-add-on'/><category scheme='http://www.blogger.com/atom/ns#' term='repository'/><category scheme='http://www.blogger.com/atom/ns#' term='maven'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>os890 maven repository</title><content type='html'>it was a frequent user request that the myfaces-extval add-ons should be available via a maven 2 repository. so i created a repository for os890 as well as for sandbox890.&lt;br /&gt;&lt;br /&gt;so you just have to add e.g. the following part to the repositories section of your pom.xml&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;repository&gt;&lt;br /&gt;  &amp;lt;id&gt;os890.googlecode.com&amp;lt;/id&gt;&lt;br /&gt;  &amp;lt;url&gt;http://os890-m2-repository.googlecode.com/svn/tags/os890&amp;lt;/url&gt;&lt;br /&gt;&amp;lt;/repository&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;snapshots are available via&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;repository&gt;&lt;br /&gt;  &amp;lt;id&gt;os890.googlecode.com&amp;lt;/id&gt;&lt;br /&gt;  &amp;lt;url&gt;http://os890-m2-repository.googlecode.com/svn/trunk/os890&amp;lt;/url&gt;&lt;br /&gt;&amp;lt;/repository&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;further information are available in the &lt;a href="http://code.google.com/p/os890-m2-repository/wiki/Usage"&gt;usage-wiki&lt;/a&gt; as well as the &lt;a href="http://code.google.com/p/os890-m2-repository/wiki/Repository_Overview"&gt;repository overview&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-2630487045040608072?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/2630487045040608072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=2630487045040608072' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/2630487045040608072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/2630487045040608072'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/11/os890-maven-repository.html' title='os890 maven repository'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-4778804950500366927</id><published>2009-11-15T10:14:00.006+01:00</published><updated>2009-11-26T23:58:36.923+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='bean-validation'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-validation'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='icefaces 2'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 303'/><category scheme='http://www.blogger.com/atom/ns#' term='icefaces'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>myfaces extval 2 and icefaces 2</title><content type='html'>&lt;div&gt;today i had a quick look at the first version of icefaces 2. it looks really nice. so i added extval to the component demo project.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;i tested simple constraints as well as cross-validation (cross-component-validation/inter component validation). both worked quite nice also with ajax enabled input components.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;also new extval features like severity aware validation (e.g. non-blocking warn mode) work quite well.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;i'm looking forward to seeing the final version!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;the upgrade of the demo (with extval) was done quite fast:&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#33CC00;"&gt;just adding the jar files and using the constraints!&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;in this case i used the following maven dependencies for extval:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;groupId: org.apache.myfaces.extensions.validator&lt;/div&gt;&lt;div&gt;artifactId: myfaces-extval-core&lt;/div&gt;&lt;div&gt;version: 2.0.3-SNAPSHOT&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;groupId: org.apache.myfaces.extensions.validator.validation-modules&lt;/div&gt;&lt;div&gt;artifactId: myfaces-extval-property-validation&lt;/div&gt;&lt;div&gt;version: 2.0.3-SNAPSHOT&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;currently we also need (we will see if we need it with the final version as well)&lt;/div&gt;&lt;div&gt;groupId: org.apache.myfaces.extensions.validator.component-support-modules&lt;/div&gt;&lt;div&gt;artifactId: myfaces-extval-generic-support&lt;/div&gt;&lt;div&gt;version: 2.0.3-SNAPSHOT&lt;/div&gt;&lt;br /&gt;for sure also the myfaces extval support for jsr 303 works out-of-the-box after adding the needed jar files...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-4778804950500366927?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/4778804950500366927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=4778804950500366927' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/4778804950500366927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/4778804950500366927'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/11/myfaces-extval-2-and-icefaces-2.html' title='myfaces extval 2 and icefaces 2'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-4523161234818835219</id><published>2009-11-13T23:27:00.005+01:00</published><updated>2009-11-14T00:01:41.839+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='bean-validation'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 303'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>bean-validation constraint validators and dependency injection support in jsf</title><content type='html'>myfaces extval allows to use &lt;a href="http://code.google.com/p/os890/source/browse/#svn/tags/java/web/jsf/extval/examples_1.2.2/advanced/demo_106"&gt;beans as validators&lt;/a&gt;. so it's possible to inject services into validators. bean-validation (jsr 303) specifies that the class of a validator has to be defined hardcoded. anyway, via the ConstraintValidatorFactory it's possible to change the default behavior.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;in jsf you can query beans by name (not by type which is possible e.g. in spring). extval allows to provide a custom implementation of the ValidatorFactory. so you can optimize the lookup for your dependency management container (e.g. to make it typesafe).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;anyway, out of the box the bv-integration module of extval (the next milestone of it) allows to provide/override constraint-validators via bean(s).&lt;/div&gt;&lt;div&gt;a detailed description is available at &lt;a href="https://issues.apache.org/jira/browse/EXTVAL-70"&gt;EXTVAL-70&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;a spring bean for the example mentioned in &lt;a href="https://issues.apache.org/jira/browse/EXTVAL-70"&gt;EXTVAL-70&lt;/a&gt; would be:&lt;/div&gt;&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;div&gt;&amp;lt;bean id="customConstraintValidator"&amp;gt;&lt;div&gt;      class="at.gp.demo.CustomConstraintValidator"&lt;/div&gt;&lt;div&gt;      scope="prototype"&amp;gt;&lt;/div&gt;&lt;div&gt;    &amp;lt;property name="customService" ref="..."&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;/bean&amp;gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-4523161234818835219?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/4523161234818835219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=4523161234818835219' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/4523161234818835219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/4523161234818835219'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/11/bean-validation-constraint-validators.html' title='bean-validation constraint validators and dependency injection support in jsf'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-2988673543901311712</id><published>2009-11-12T13:14:00.005+01:00</published><updated>2009-11-27T00:01:26.846+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='bean-validation'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='cross-validation'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='richfaces'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 303'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>bean-validation support for richfaces via extval</title><content type='html'>today i upgraded an internal richfaces 3.3.x demo to use extval to integrate jsr 303 validation.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;the upgrade was done quite fast:&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#33CC00;"&gt;just adding the jar files and using the bv constraints!&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;in this case i used the following maven dependencies:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;for richfaces:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;groupId: org.richfaces.ui&lt;/div&gt;&lt;div&gt;artifactId: richfaces-ui&lt;/div&gt;&lt;div&gt;version: 3.3.2.GA&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;for extval:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;groupId: org.apache.myfaces.extensions.validator&lt;/div&gt;&lt;div&gt;artifactId: myfaces-extval-core&lt;/div&gt;&lt;div&gt;version: 1.2.3-SNAPSHOT&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;required to use a4j with extval:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;groupId: org.apache.myfaces.extensions.validator.component-support-modules&lt;/div&gt;&lt;div&gt;artifactId: myfaces-extval-generic-support&lt;/div&gt;&lt;div&gt;version: 1.2.3-SNAPSHOT&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;to use jsr 303 validation:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;groupId: org.apache.myfaces.extensions.validator.validation-modules&lt;/div&gt;&lt;div&gt;artifactId: myfaces-extval-bean-validation&lt;/div&gt;&lt;div&gt;version: 1.2.3-SNAPSHOT&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;groupId: org.hibernate&lt;/div&gt;&lt;div&gt;artifactId: hibernate-validator&lt;/div&gt;&lt;div&gt;version: 4.0.0.GA&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;groupId: org.slf4j&lt;/div&gt;&lt;div&gt;artifactId: slf4j-api&lt;/div&gt;&lt;div&gt;version: 1.4.2&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;groupId:org.slf4j&lt;/div&gt;&lt;div&gt;artifactId: slf4j-log4j12&lt;/div&gt;&lt;div&gt;version: 1.4.2&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;to support org.richfaces.component.html.HtmlCalendar&lt;/div&gt;&lt;div&gt;groupId: sandbox890.extensions.validator.component-support-modules&lt;/div&gt;&lt;div&gt;artifactId: myfaces-extval-richfaces-support&lt;/div&gt;&lt;div&gt;from http://code.google.com/p/sandbox890/&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-2988673543901311712?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/2988673543901311712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=2988673543901311712' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/2988673543901311712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/2988673543901311712'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/11/bean-validation-support-for-richfaces.html' title='bean-validation support for richfaces via extval'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-3214406263916819170</id><published>2009-10-23T16:11:00.001+02:00</published><updated>2009-10-23T22:14:30.625+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 303'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='preview'/><title type='text'>[add-on] customizable severity feature and the continue with warnings add-on</title><content type='html'>the next version of extval will offer violation severities for constraints via extval-validation parameters as well as via jsr303 payload parameters. that means it's possible to define the severity for every constraint.&lt;br /&gt;&lt;br /&gt;sometimes it is needed that you can save the form-data and continue in the application even though there are still warnings. so version x.x.3 (for jsf 1.x and jsf 2.x) of extval will allow that you can &lt;span style="font-weight: bold;"&gt;change the behavior&lt;/span&gt; (depending on the severity) via a custom add-on.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;that means:&lt;/span&gt;&lt;br /&gt;the user tries to submit invalid data. there are just warnings and no errors. so the page gets refreshed and the warnings are displayed. so far we have the expected jsf behavior. if the user clicks again on the (same) button the add-on recognizes that the user already saw the warnings and if there are no errors the warnings are ignored this time. the usage is quite simple:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;the required steps:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;add extval to the project&lt;br /&gt;add the add-on to the project&lt;br /&gt;&lt;br /&gt;use the constraints&lt;br /&gt;from extval:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JO_w8kWegc4/SuBi9M-ySZI/AAAAAAAAASo/WXMI-xPy69s/s1600-h/constraint.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 371px; height: 37px;" src="http://1.bp.blogspot.com/_JO_w8kWegc4/SuBi9M-ySZI/AAAAAAAAASo/WXMI-xPy69s/s400/constraint.png" alt="" id="BLOGGER_PHOTO_ID_5395421157185964434" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;or from jsr 303&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JO_w8kWegc4/SuBjQBsKXnI/AAAAAAAAASw/ehW4mmuspuM/s1600-h/bv-constraint.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 342px; height: 37px;" src="http://1.bp.blogspot.com/_JO_w8kWegc4/SuBjQBsKXnI/AAAAAAAAASw/ehW4mmuspuM/s400/bv-constraint.png" alt="" id="BLOGGER_PHOTO_ID_5395421480572575346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;and within the form you just have to add the following hidden field:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JO_w8kWegc4/SuG4qcD_SbI/AAAAAAAAATI/sWTmInOJvC4/s1600-h/page.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 19px;" src="http://4.bp.blogspot.com/_JO_w8kWegc4/SuG4qcD_SbI/AAAAAAAAATI/sWTmInOJvC4/s400/page.png" alt="" id="BLOGGER_PHOTO_ID_5395796867793504690" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;that's it!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;if you would like to have a button which is still strict and doesn't continue with warnings, you can use a special parameter. since the implementation of the add-on is quite simple it's also possible do implement it the other way round.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;optional&lt;/span&gt; for the strict behavior:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JO_w8kWegc4/SuIOj0BzEAI/AAAAAAAAATg/l4woJJjP80s/s1600-h/strict.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 57px;" src="http://3.bp.blogspot.com/_JO_w8kWegc4/SuIOj0BzEAI/AAAAAAAAATg/l4woJJjP80s/s400/strict.png" alt="" id="BLOGGER_PHOTO_ID_5395891311967670274" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;the add-on is available at: http://code.google.com/p/os890/source/browse/#svn/trunk/java/web/jsf/extval/continue_with_warnings and requires the current trunk version of extval (or the next milestone v.1.2.3M2)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-3214406263916819170?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/3214406263916819170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=3214406263916819170' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3214406263916819170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3214406263916819170'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/10/add-on-customizable-severity-feature.html' title='[add-on] customizable severity feature and the continue with warnings add-on'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JO_w8kWegc4/SuBi9M-ySZI/AAAAAAAAASo/WXMI-xPy69s/s72-c/constraint.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-3199611187348348344</id><published>2009-10-12T22:56:00.009+02:00</published><updated>2009-10-12T23:39:04.054+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr 303'/><category scheme='http://www.blogger.com/atom/ns#' term='annotation'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='preview'/><title type='text'>[preview] client-side validation with jsr 303</title><content type='html'>after updating to the newest ri-version of bean-validation (jsr 303) i added some new functionality to the bean-validation (integration) module of myfaces-extval. the "new" functionality is already known from previous releases of the property-validation module. currently it works with jsf 1.x., however, there is also a branch for jsf 2.0 which will be updated before the next release.&lt;br /&gt;&lt;br /&gt;so i started to refactor the featureset-01 example (which is already shipped with myfaces-extval) to bv-constraints. since myfaces-extval provides ui-optimized approaches not everything will be possible. anyway, the result of this first step is client-side validation of @NotNull and @Size via the client-side validation feature of myfaces trinidad.&lt;br /&gt;&lt;br /&gt;the rendered result:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JO_w8kWegc4/StOcPLaPw0I/AAAAAAAAASA/z1qXlj6Iew0/s1600-h/result.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 349px; height: 291px;" src="http://1.bp.blogspot.com/_JO_w8kWegc4/StOcPLaPw0I/AAAAAAAAASA/z1qXlj6Iew0/s400/result.png" alt="" id="BLOGGER_PHOTO_ID_5391824963467461442" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;as you might already know extval also initializes the component based on constraints. that results in the correct values e.g. of the maxlength attribute - a section of the page above:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JO_w8kWegc4/StOdu8A0lOI/AAAAAAAAASQ/ZlzHwC1wfaA/s1600-h/html_result.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 114px;" src="http://1.bp.blogspot.com/_JO_w8kWegc4/StOdu8A0lOI/AAAAAAAAASQ/ZlzHwC1wfaA/s400/html_result.PNG" alt="" id="BLOGGER_PHOTO_ID_5391826608601732322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;this example uses the same xhtml pages like featureset-01 - so the important part of the facelets-component is:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JO_w8kWegc4/StOc-HhTXzI/AAAAAAAAASI/Mlsh7CGZCSc/s1600-h/page_source.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 221px;" src="http://1.bp.blogspot.com/_JO_w8kWegc4/StOc-HhTXzI/AAAAAAAAASI/Mlsh7CGZCSc/s400/page_source.png" alt="" id="BLOGGER_PHOTO_ID_5391825769877167922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;and the most important part - a section of the entity:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JO_w8kWegc4/StOeFn3FhuI/AAAAAAAAASY/S2kDHa44W58/s1600-h/bean.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 206px; height: 240px;" src="http://1.bp.blogspot.com/_JO_w8kWegc4/StOeFn3FhuI/AAAAAAAAASY/S2kDHa44W58/s400/bean.png" alt="" id="BLOGGER_PHOTO_ID_5391826998329181922" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-3199611187348348344?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/3199611187348348344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=3199611187348348344' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3199611187348348344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3199611187348348344'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/10/preview-client-side-validation-with-jsr.html' title='[preview] client-side validation with jsr 303'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JO_w8kWegc4/StOcPLaPw0I/AAAAAAAAASA/z1qXlj6Iew0/s72-c/result.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-8843235594311485965</id><published>2009-09-27T01:28:00.005+02:00</published><updated>2009-09-27T02:20:38.778+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>myfaces-extval MetaDataStorageFilter and @JoinValidation</title><content type='html'>beside some other improvements a new concept will be available with the next milestone.&lt;br /&gt;&lt;br /&gt;a generic storage concept is used to cache the basic meta-data.&lt;br /&gt;all mechanisms which allow dynamic meta-data remain the same. instead of caching the final meta-data for a property just the basic meta-data gets cached. the meta-data which is extracted from the original property. as an addition to the existing dynamic meta-data mechanisms a new concept is available. in comparison to a MetaDataExtractionInterceptor the new MetaDataStorageFilter is just invoked before meta-data gets added to the storage.&lt;br /&gt;&lt;br /&gt;it's an additional extension point which allows you e.g. to introduce new functionality which isn't available out of the box.&lt;br /&gt;the property-validation module of extval uses such a filter to introduce a new syntax for @JoinValidation. so it's possible to use a static syntax instead of the dynamic possibilities.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JO_w8kWegc4/Sr6rfpUI9qI/AAAAAAAAARw/zk-F3oJsQyg/s1600-h/join_validation.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 24px;" src="http://3.bp.blogspot.com/_JO_w8kWegc4/Sr6rfpUI9qI/AAAAAAAAARw/zk-F3oJsQyg/s400/join_validation.png" alt="" id="BLOGGER_PHOTO_ID_5385930764536313506" border="0" /&gt;&lt;/a&gt;some nice syntax examples are available at one of the &lt;a href="http://svn.apache.org/repos/asf/myfaces/extensions/validator/trunk/examples/feature-set_01/src/main/java/org/apache/myfaces/extensions/validator/demo/gui/beans/RegistrationPage.java"&gt;example classes&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;so maybe you ask - MetaDataStorageFilter are fine but all i need is already possible via a MetaDataExtractionInterceptor. why do i need such filters? yes that's right, however, the new filter concept in combination with the meta-data-storage allow a better performance.&lt;br /&gt;&lt;br /&gt;MetaDataExtractionInterceptor ... use them if you have to decide to add/remove/change meta-data very dynamically - e.g. based on the current program-flow, app-state,...&lt;br /&gt;&lt;br /&gt;MetaDataStorageFilter ... use them if you would like to introduce a custom but static concept and benefit from the better performance&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-8843235594311485965?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/8843235594311485965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=8843235594311485965' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/8843235594311485965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/8843235594311485965'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/09/myfaces-extval-metadatastoragefilter.html' title='myfaces-extval MetaDataStorageFilter and @JoinValidation'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JO_w8kWegc4/Sr6rfpUI9qI/AAAAAAAAARw/zk-F3oJsQyg/s72-c/join_validation.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-8727642344553334572</id><published>2009-09-12T20:25:00.002+02:00</published><updated>2009-09-12T20:48:07.641+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval-add-on'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>myfaces-extval-add-on - app-prototyping - 3</title><content type='html'>since the original functionality was promoted and will be part of the next version. i added a new functionality. it might be the case that you have issues while prototyping. if so, please report them to the mailing list. anyway, normally you would have to remove extval from the classpath so that you can continue your work. that's due to the zero config approach of extval. you can deactivate it via api's but now you have a further possibility.&lt;br /&gt;&lt;br /&gt;the current trunk version (= the next milestone) allows to provide a custom implementation of the extval-context. that allows to introduce alternative approaches e.g. using a dependency injection framework like spring and google guice for internal tasks as well as registering artifacts via dependency injection.&lt;br /&gt;&lt;br /&gt;it also allows to mock the extval context. so you can deactivate all/specific features easily. an example is available at [1]. since you have to configure a custom extval-context manually (the class provides the needed information to do it), you can add it to your project permanently. if you would like to check something without extval, just activate the config and afterwards you can remove it again. as mentioned before, it also allows to deactivate specific features easily without using web.xml context-parameters.&lt;br /&gt;&lt;br /&gt;anyway, normally you shouldn't have problems. if you find issues, please report them as soon as possible.&lt;br /&gt;&lt;br /&gt;[1] &lt;a href="http://code.google.com/p/os890/source/browse/trunk/java/web/jsf/extval/prototyping/org/apache/myfaces/extensions/validator/custom/DevExtValContext.java"&gt;http://code.google.com/p/os890/source/browse/trunk/java/web/jsf/extval/prototyping/org/apache/myfaces/extensions/validator/custom/DevExtValContext.java&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-8727642344553334572?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/8727642344553334572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=8727642344553334572' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/8727642344553334572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/8727642344553334572'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/09/myfaces-extval-add-on-app-prototyping-3.html' title='myfaces-extval-add-on - app-prototyping - 3'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-1902391459712691571</id><published>2009-09-06T13:50:00.009+02:00</published><updated>2009-09-06T20:46:18.640+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval-add-on'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>myfaces-extval java-config extension with gooogle guice style</title><content type='html'>&lt;span style="font-weight: bold;"&gt;why you might need this add-on&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;there are many different approaches to configure myfaces-extval.&lt;br /&gt;out-of-the-box it uses zero configuration (convention over configuration) as well as an optional java-api which is mainly for internal usages and add-on developers.&lt;br /&gt;&lt;br /&gt;so os890 provides an &lt;a href="http://os890.blogspot.com/2008/10/myfaces-extval-config-extension.html"&gt;annotation based config add-on&lt;/a&gt;. so you don't have to learn the name conventions and the result is typesafe.&lt;br /&gt;&lt;br /&gt;the disadvantage is that classpath scanning is required. you can specify packages to be scanned. anyway, it uses an external lib which performs the classpath scanning.&lt;br /&gt;&lt;br /&gt;that's the reason for creating an additional add-on which is typesafe and doesn't use an external lib. as mentioned before extval provides an api and a generic artifact mapping mechanism which is used mainly for internal purposes. you can see the usage in the source-code of some add-ons. anyway, app-developers who don't like conventions need a simple but powerful api which is available for the common artifacts.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;google guice&lt;/span&gt; provides a nice api to bundle modules. so the api of the add-on is similar to the style of google guice. that means you build modules and register the modules you would like to use.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;the usage&lt;/span&gt;&lt;br /&gt;first you implement a module. in a module you register global artifacts or you bind together a validation strategy with one or more of the following artifacts: constraint, message resolver, meta data transformer.&lt;br /&gt;&lt;br /&gt;the following example shows both:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JO_w8kWegc4/SqO19aNRqLI/AAAAAAAAARg/LN5YWbOPSgI/s1600-h/extval_config_module.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 82px;" src="http://4.bp.blogspot.com/_JO_w8kWegc4/SqO19aNRqLI/AAAAAAAAARg/LN5YWbOPSgI/s400/extval_config_module.png" alt="" id="BLOGGER_PHOTO_ID_5378342446622156978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;you just have to add your global artifacts or bind together artifacts which have a relationship. so you see that the syntax is quite easy.&lt;br /&gt;&lt;br /&gt;via an extval startup listener you can register one or more modules easily.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JO_w8kWegc4/SqO3tdDNpWI/AAAAAAAAARo/7ZNp7OCHrdg/s1600-h/extval_config_module_registration.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 86px;" src="http://4.bp.blogspot.com/_JO_w8kWegc4/SqO3tdDNpWI/AAAAAAAAARo/7ZNp7OCHrdg/s400/extval_config_module_registration.png" alt="" id="BLOGGER_PHOTO_ID_5378344371530605922" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;the result&lt;/span&gt;&lt;br /&gt;it's typesafe, explicit, flexible without external dependency and easy to use.&lt;br /&gt;it's available at &lt;a href="http://code.google.com/p/os890/source/browse/#svn/trunk/java/web/jsf/extval/java_based_config"&gt;http://code.google.com/p/os890/source/browse/#svn/trunk/java/web/jsf/extval/java_based_config&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;a working example is available at:&lt;br /&gt;&lt;a href="http://code.google.com/p/os890/source/browse/#svn/trunk/java/web/jsf/extval/examples/basic/demo_010"&gt;http://code.google.com/p/os890/source/browse/#svn/trunk/java/web/jsf/extval/examples/basic/demo_010&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-1902391459712691571?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/1902391459712691571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=1902391459712691571' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/1902391459712691571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/1902391459712691571'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/09/myfaces-extval-java-config-extension.html' title='myfaces-extval java-config extension with gooogle guice style'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JO_w8kWegc4/SqO19aNRqLI/AAAAAAAAARg/LN5YWbOPSgI/s72-c/extval_config_module.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-243142796670850547</id><published>2009-07-30T15:26:00.004+02:00</published><updated>2009-07-30T15:36:54.492+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval-add-on'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>myfaces-extval-add-on - app-prototyping - 2</title><content type='html'>due to a valid user request (a possible combination with spring security) also the functionality of the extval app-prototyping add-on (and more) will be available in the next release. early adaptors can use the current svn version or the next milestone (m2) which will be available soon.&lt;br /&gt;&lt;br /&gt;the add-on won't be obsolete. there will be new functionality!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-243142796670850547?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/243142796670850547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=243142796670850547' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/243142796670850547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/243142796670850547'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/07/myfaces-extval-add-on-app-prototyping-2.html' title='myfaces-extval-add-on - app-prototyping - 2'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-347232542283021301</id><published>2009-07-29T08:46:00.002+02:00</published><updated>2009-07-29T08:51:40.518+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>myfaces extval @ jsfcentral</title><content type='html'>the next part of the article series is available at &lt;a href="http://www.jsfcentral.com/articles/myfaces_extval_2.html"&gt;jsfcentral&lt;/a&gt;.&lt;br /&gt;thx to the jsfcentral team!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-347232542283021301?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/347232542283021301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=347232542283021301' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/347232542283021301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/347232542283021301'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/07/myfaces-extval-jsfcentral.html' title='myfaces extval @ jsfcentral'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-2494715891747676576</id><published>2009-07-21T13:31:00.002+02:00</published><updated>2009-07-21T13:55:11.134+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>myfaces-extval and pattern based validation</title><content type='html'>i saw that people search quite often for an example which shows pattern/regex based validation.&lt;br /&gt;it's quite easy. just use @Pattern and use the regex as value (as expected).&lt;br /&gt;&lt;br /&gt;a short example is:&lt;br /&gt;@Pattern("[A-Z][a-z]+")&lt;br /&gt;&lt;br /&gt;the examples shipped with every extval release shows the usage as well.&lt;br /&gt;or you can check out the examples from the &lt;a href="http://svn.apache.org/repos/asf/myfaces/extensions/validator/trunk/examples/"&gt;repository&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-2494715891747676576?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/2494715891747676576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=2494715891747676576' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/2494715891747676576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/2494715891747676576'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/07/myfaces-extval-and-pattern-based.html' title='myfaces-extval and pattern based validation'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-3378074328966187190</id><published>2009-07-18T01:28:00.003+02:00</published><updated>2009-07-18T01:34:25.409+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='richfaces'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>myfaces extval and richfaces - 2</title><content type='html'>i started a special &lt;a href="http://code.google.com/p/sandbox890/source/browse/#svn/trunk/component-support/richfaces-support"&gt;support module&lt;/a&gt; for richfaces.&lt;br /&gt;currently it contains an addition to support labeled faces messages for the rich:calendar component.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-3378074328966187190?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/3378074328966187190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=3378074328966187190' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3378074328966187190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3378074328966187190'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/07/myfaces-extval-and-richfaces-2.html' title='myfaces extval and richfaces - 2'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-3818435040507145725</id><published>2009-07-18T00:32:00.005+02:00</published><updated>2009-07-18T01:43:55.390+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='icefaces'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>myfaces-extval and icefaces - 2</title><content type='html'>this is an update of the &lt;a href="http://os890.blogspot.com/2009/03/myfaces-extval-and-icefaces.html"&gt;original post&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;1)&lt;br /&gt;extval and icefaces uses similar approaches to implement an internal mechanism. with mojarra there is no issue (by chance). in combination with myfaces-core there was an issue which is fixed with the following combination: icefaces 1.8.2 (see ) and an &lt;a href="http://code.google.com/p/sandbox890/source/browse/#svn/trunk/component-support/icefaces-support"&gt;icefaces support module&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;2)&lt;br /&gt;internally icefaces components use some jsf 1.1 mechanisms. that's the reason why you have to use the described &lt;a href="http://os890.blogspot.com/2009/03/myfaces-extval-and-icefaces.html"&gt;fallback&lt;/a&gt;. that will change with icefaces 2.0 (which will be compatible with jsf 1.2).&lt;br /&gt;if you are using the &lt;a href="http://code.google.com/p/sandbox890/source/browse/#svn/trunk/component-support/icefaces-support"&gt;support module&lt;/a&gt; + the current &lt;a href="http://people.apache.org/repo/m2-snapshot-repository/org/apache/myfaces/extensions/validator/"&gt;extval-snapshot&lt;/a&gt; + the upcoming version of icefaces (1.8.2 - or a &lt;a href="http://jira.icefaces.org/browse/ICE-4711"&gt;pached version&lt;/a&gt; of 1.8.1), you don't have to follow the instructions of the &lt;a href="http://os890.blogspot.com/2009/03/myfaces-extval-and-icefaces.html"&gt;original post&lt;/a&gt;. you just have to add the dependencies and everything will work as expected.&lt;br /&gt;&lt;br /&gt;a very simple example is available &lt;a href="http://code.google.com/p/sandbox890/source/browse/#svn/trunk/examples/icefaces_extval/example_01"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-3818435040507145725?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/3818435040507145725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=3818435040507145725' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3818435040507145725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3818435040507145725'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/07/myfaces-extval-and-icefaces-2.html' title='myfaces-extval and icefaces - 2'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-6293524554033358580</id><published>2009-07-18T00:24:00.003+02:00</published><updated>2009-07-18T00:31:53.485+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='snapshot'/><title type='text'>myfaces extval - new snapshot available</title><content type='html'>early adaptors can use the current &lt;a href="http://people.apache.org/repo/m2-snapshot-repository/org/apache/myfaces/extensions/validator/"&gt;snapshot&lt;/a&gt;!&lt;br /&gt;it includes some minor internal changes as well as &lt;a href="http://issues.apache.org/jira/browse/EXTVAL-49"&gt;EXTVAL-49&lt;/a&gt; - &lt;a href="http://issues.apache.org/jira/browse/EXTVAL-53"&gt;EXTVAL-53&lt;/a&gt;.&lt;br /&gt;furthermore, it's the version used for &lt;a href="http://code.google.com/p/sandbox890/source/browse/#svn/trunk/component-support/icefaces-support"&gt;component-support/icefaces-support&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-6293524554033358580?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/6293524554033358580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=6293524554033358580' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/6293524554033358580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/6293524554033358580'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/07/myfaces-extval-new-snapshot-available.html' title='myfaces extval - new snapshot available'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-585598460734823634</id><published>2009-07-15T02:45:00.006+02:00</published><updated>2009-07-19T01:01:21.037+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>os890 thanks for the great interest</title><content type='html'>it's amazing. today i had a look at the google analytics statistics.&lt;br /&gt;&lt;br /&gt;since the first announcement of myfaces extval a lot people evaluated the framework, provided ideas for add-ons and new features, sent several e-mails about the great experience while using extval and much more.&lt;br /&gt;&lt;br /&gt;half a year ago we saw the first release of extval.&lt;br /&gt;now i can report some nice numbers of os890:&lt;br /&gt;~&lt;span style="font-weight: bold;"&gt;4000&lt;/span&gt; visitors&lt;br /&gt;~&lt;span style="font-weight: bold;"&gt;12000&lt;/span&gt; page views&lt;br /&gt;and visitors of 88 countries&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JO_w8kWegc4/Sl0s8I2g77I/AAAAAAAAARY/YxW8PFQtFYs/s1600-h/countries.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 238px;" src="http://4.bp.blogspot.com/_JO_w8kWegc4/Sl0s8I2g77I/AAAAAAAAARY/YxW8PFQtFYs/s400/countries.png" alt="" id="BLOGGER_PHOTO_ID_5358488543320666034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;furthermore, within 5 months there were over 900 downloads of the introduction slides.&lt;br /&gt;these numbers don't include the statistics of the wiki pages hosted at apache directly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-585598460734823634?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/585598460734823634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=585598460734823634' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/585598460734823634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/585598460734823634'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/07/os890-thanks-for-great-interest.html' title='os890 thanks for the great interest'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JO_w8kWegc4/Sl0s8I2g77I/AAAAAAAAARY/YxW8PFQtFYs/s72-c/countries.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-5871340906942257676</id><published>2009-07-15T02:31:00.002+02:00</published><updated>2009-07-15T02:44:54.472+02:00</updated><title type='text'>your custom cross-validation</title><content type='html'>if you have a bunch of cross-validation strategies, please have a look at &lt;a href="http://issues.apache.org/jira/browse/EXTVAL-53"&gt;EXTVAL-53&lt;/a&gt;!&lt;br /&gt;in case of objections, please send a veto to undo the change.&lt;br /&gt;so far there wasn't a major change which affects custom implementations. this is the first one. we did it to stay consistent internally and because it is very easy to migrate with a simple search/replace action which is safe.&lt;br /&gt;&lt;br /&gt;if you just used the annotations, you won't notice a change. you just notice it at custom cross-validation implementations. normally there aren't tones of it, so it isn't a big issue. nevertheless backward compatibility is basically important for us. since it's an important change for some of you, everybody is allowed to veto.&lt;br /&gt;&lt;br /&gt;details are available the description of the issue.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-5871340906942257676?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/5871340906942257676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=5871340906942257676' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/5871340906942257676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/5871340906942257676'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/07/your-custom-cross-validation.html' title='your custom cross-validation'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-116528020811245661</id><published>2009-07-10T08:44:00.002+02:00</published><updated>2009-07-10T08:47:53.378+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jsf 2.0'/><title type='text'>german jsf 2.0 article</title><content type='html'>enjoy the leading article:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://it-republik.de/jaxenter/java-magazin-ausgaben/JSF-2.0-000309.html"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 285px;" src="http://2.bp.blogspot.com/_JO_w8kWegc4/Slbjna_QEAI/AAAAAAAAARA/2dCp1kMndkQ/s400/jm0908.jpg" alt="" id="BLOGGER_PHOTO_ID_5356719073202802690" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-116528020811245661?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/116528020811245661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=116528020811245661' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/116528020811245661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/116528020811245661'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/07/german-jsf-20-article.html' title='german jsf 2.0 article'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JO_w8kWegc4/Slbjna_QEAI/AAAAAAAAARA/2dCp1kMndkQ/s72-c/jm0908.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-3098743839176267057</id><published>2009-07-08T23:32:00.003+02:00</published><updated>2009-07-08T23:40:56.893+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>myfaces extval snapshots</title><content type='html'>several people asked for a new version via a public maven repository.&lt;br /&gt;in fact the current snapshot contains some great new features. so extval for jsf 1.2.x is now available in the &lt;a href="http://people.apache.org/maven-snapshot-repository/org/apache/myfaces/extensions/validator/"&gt;snapshot repository&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;(the next release of extval depends e.g. on the final release of jsr303 - so i plan stable snapshots for important milestones. feel free to use the latest snapshot!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-3098743839176267057?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/3098743839176267057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=3098743839176267057' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3098743839176267057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3098743839176267057'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/07/myfaces-extval-snapshots.html' title='myfaces extval snapshots'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-1841165623464591046</id><published>2009-07-06T10:19:00.002+02:00</published><updated>2009-07-06T12:07:52.459+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='richfaces'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>myfaces extval and richfaces</title><content type='html'>so far this combination worked when using myfaces-core.&lt;br /&gt;&lt;a href="https://issues.apache.org/jira/browse/EXTVAL-38"&gt;extval-38&lt;/a&gt; (as well as the wiki) shows the required dependencies.&lt;br /&gt;the mentioned issue describes that there is an issue with mojarra.&lt;br /&gt;the good news: the issue is fixed and you can use this combination.&lt;br /&gt;i hope a lot of you (who signaled interest in this combination) will start to test the new version or a patched version of v1.2.2 you can find &lt;a href="http://people.apache.org/%7Egpetracek/myfaces/extval/extval_richfaces_mojarra.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;some details about the original issue:&lt;br /&gt;the generic support module is required, if a component lib does special things behind the scenes.&lt;br /&gt;e.g.: casting renderers,...&lt;br /&gt;so the module uses cglib to allow that. via an extval startup listener the module installs itself. the issue with mojarra is that it uses early configuration. so the extval startup listener of the module gets invoked too late and important configuration tasks are performed by an extval-core class instead of the lazily installed class of the generic support module.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-1841165623464591046?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/1841165623464591046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=1841165623464591046' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/1841165623464591046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/1841165623464591046'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/07/myfaces-extval-and-richfaces.html' title='myfaces extval and richfaces'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-3342623155273664418</id><published>2009-06-24T20:37:00.003+02:00</published><updated>2009-06-24T21:14:02.411+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='seam'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>myfaces extval and seam</title><content type='html'>you might have looked at my first comparison of extval and the seam 2.x integration of hibernate validator &lt;a href="http://os890.blogspot.com/2009/02/myfaces-extval-vs-seam-2x-integration.html"&gt;[1]&lt;/a&gt;. some of you were interested in a seam support of extval to get the best of both frameworks.&lt;br /&gt;&lt;br /&gt;i've tested extval with seam and it worked quite well. to use extval also with richfaces the generic-support module of extval is required. some weeks ago the test with myfaces core was successful. there is just an issue with the combination of (richfaces + extval + mojarra). if you would like to use this combination, feel free to look into the issue and provide some details and/or a patch to fix it.&lt;br /&gt;&lt;br /&gt;furthermore, it's possible to use both solutions in parallel.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-3342623155273664418?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/3342623155273664418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=3342623155273664418' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3342623155273664418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/3342623155273664418'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/06/myfaces-extval-and-seam.html' title='myfaces extval and seam'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-4988339907299732893</id><published>2009-06-21T23:19:00.000+02:00</published><updated>2009-06-22T01:41:17.252+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='annotation'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='preview'/><title type='text'>extend myfaces extval with your own concepts</title><content type='html'>&lt;span style="font-weight: bold;"&gt;it's important to know that extval is able to help you with every possible validation requirement&lt;/span&gt; (in view of jsf). if there isn't an out-of-the-box functionality, extval provides a solid base to build your own custom concept. several add-ons already proved that. you can just use them. however, they should basically show that it's quite easy to extend extval. (furthermore, you can integrate a 3rd party validation engine. the first public integration is the integration module of jsr 303 (it will be released after the final release of jsr 303 itself).)&lt;br /&gt;&lt;br /&gt;if you miss a feature, just ask if there is already an add-on which solves your requirement(s). some of you already told me nice ideas and i implemented add-ons as possible solutions. however, there are also other solutions to solve these and other requirements. feel free to impl. your own add-on and send me a short e-mail about it :)&lt;br /&gt;&lt;br /&gt;the 3rd release will introduce further base concepts. i wrote about constraint aspects and much more. i also impl. some short examples to show that it is pretty easy to extend and re-use the solid base of extval.&lt;br /&gt;&lt;br /&gt;let's have a look at a possible scenario:&lt;br /&gt;you would like to use a partial validation concept similar to the mechanism available in jsf 2.0. but extval doesn't provide group validation out of the box. moreover, you don't like the typesafe validation-controller-annotation of some of the available add-ons. you prefer to use a tag-based solution instead? no problem. some lines of code and here we go :)&lt;br /&gt;&lt;br /&gt;do you think it's too much effort to impl. your own concept based on out-of-the-box functionalities? &lt;span style="font-weight: bold;"&gt;see for yourself how easy it is!&lt;/span&gt; &lt;a href="http://code.google.com/p/os890/source/browse/#svn/trunk/java/web/jsf/extval/examples/advanced/demo_112"&gt;demo 112&lt;/a&gt; illustrates a simple impl. of the mechanisms mentioned above.&lt;br /&gt;&lt;br /&gt;so have fun with extval!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-4988339907299732893?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/4988339907299732893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=4988339907299732893' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/4988339907299732893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/4988339907299732893'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/06/extend-myfaces-extval-with-your-own.html' title='extend myfaces extval with your own concepts'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-1430824032481843959</id><published>2009-06-20T17:30:00.016+02:00</published><updated>2009-06-20T19:18:15.403+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval-add-on'/><category scheme='http://www.blogger.com/atom/ns#' term='prototype'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>myfaces-extval-add-on - transactional model validation light</title><content type='html'>this add-on is a prototype for lightweight transactional model validation.&lt;br /&gt;it also offers basic support for class-level validation.&lt;br /&gt;&lt;br /&gt;to mention it once again:&lt;br /&gt;normally extval performs all (simple- as well as cross-) constraint-validations within the validation phase of jsf. however, sometimes it's required to validate after the model was updated. e.g. class-level validations, tree validations,...&lt;br /&gt;&lt;br /&gt;to allow these validations this add-on triggers the validation process after the model was updated. furthermore, the original model values of the processed properties (before the model updated) are restored, if there is a violation during model aware and/or class level validation.&lt;br /&gt;&lt;br /&gt;in comparison to the full transactional model validation prototype, this add-on doesn't require cglib or spring.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;attention&lt;/span&gt;: other changes e.g. executed by value-change-listeners,... don't get reverted&lt;br /&gt;&lt;br /&gt;1) class level constraints are validated automatically&lt;br /&gt;this mechanism shouldn't be an alternative to jsr 303 - it's just a simple implementation to illustrate the possibility of such a validation. (you are free to implement your own solution based on this mechanism as custom-add-on). moreover, there will be also a similar add-on for jsr 303 class-level validation.&lt;br /&gt;&lt;br /&gt;2) a constraint aspect allows a fine-grained definition of constraints which should get validated after the model was updated.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/os890/source/browse/#svn/trunk/java/web/jsf/extval/examples/advanced/demo_111"&gt;http://code.google.com/p/os890/source/browse/#svn/trunk/java/web/jsf/extval/examples/advanced/demo_111&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;shows a simple example.&lt;br /&gt;&lt;br /&gt;some details:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JO_w8kWegc4/Sj0MHFtnU1I/AAAAAAAAAQA/tEqDSk1_W0Q/s1600-h/person_class.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 224px;" src="http://3.bp.blogspot.com/_JO_w8kWegc4/Sj0MHFtnU1I/AAAAAAAAAQA/tEqDSk1_W0Q/s400/person_class.png" alt="" id="BLOGGER_PHOTO_ID_5349445248318133074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JO_w8kWegc4/Sj0MTNDSxXI/AAAAAAAAAQI/Ybn4yglvHHA/s1600-h/vehicle_interface.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 354px; height: 138px;" src="http://2.bp.blogspot.com/_JO_w8kWegc4/Sj0MTNDSxXI/AAAAAAAAAQI/Ybn4yglvHHA/s400/vehicle_interface.png" alt="" id="BLOGGER_PHOTO_ID_5349445456446539122" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JO_w8kWegc4/Sj0MfCdGU9I/AAAAAAAAAQQ/lCDjTWWzHcE/s1600-h/car_class.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 301px; height: 373px;" src="http://2.bp.blogspot.com/_JO_w8kWegc4/Sj0MfCdGU9I/AAAAAAAAAQQ/lCDjTWWzHcE/s400/car_class.png" alt="" id="BLOGGER_PHOTO_ID_5349445659760415698" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JO_w8kWegc4/Sj0MpctC89I/AAAAAAAAAQY/oBSHg9-ip64/s1600-h/vehicle_constraint.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 108px;" src="http://3.bp.blogspot.com/_JO_w8kWegc4/Sj0MpctC89I/AAAAAAAAAQY/oBSHg9-ip64/s400/vehicle_constraint.png" alt="" id="BLOGGER_PHOTO_ID_5349445838605317074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JO_w8kWegc4/Sj0M9B5D1UI/AAAAAAAAAQg/D-ggIdcv4Tw/s1600-h/vehicle_validator.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 160px;" src="http://3.bp.blogspot.com/_JO_w8kWegc4/Sj0M9B5D1UI/AAAAAAAAAQg/D-ggIdcv4Tw/s400/vehicle_validator.png" alt="" id="BLOGGER_PHOTO_ID_5349446175005332802" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;that means:&lt;br /&gt;#1 there are constraints which get validated in the validation phase (as usual)&lt;br /&gt;#2 there are constraints (see &lt;span style="font-weight: bold;font-family:courier new;" &gt;ModelAwareValidation.class&lt;/span&gt;) which get validated after the model was updated&lt;br /&gt;#3 there are class-level-constraints (see the custom &lt;span style="font-weight: bold;font-family:courier new;" &gt;@Vehicle&lt;/span&gt; constraint)&lt;br /&gt;&lt;br /&gt;the pages don't contain validation logic as usual with extval.&lt;br /&gt;&lt;br /&gt;so - let's test the application with invalid values:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JO_w8kWegc4/Sj0NyH4hejI/AAAAAAAAAQo/wVqpcJ0rSOk/s1600-h/step1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 105px;" src="http://1.bp.blogspot.com/_JO_w8kWegc4/Sj0NyH4hejI/AAAAAAAAAQo/wVqpcJ0rSOk/s400/step1.png" alt="" id="BLOGGER_PHOTO_ID_5349447087146760754" border="0" /&gt;&lt;/a&gt;this means: validation mentioned of #1 happened&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JO_w8kWegc4/Sj0ONDfX3nI/AAAAAAAAAQw/1DcFtOgcgVw/s1600-h/step2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 101px;" src="http://3.bp.blogspot.com/_JO_w8kWegc4/Sj0ONDfX3nI/AAAAAAAAAQw/1DcFtOgcgVw/s400/step2.png" alt="" id="BLOGGER_PHOTO_ID_5349447549823999602" border="0" /&gt;&lt;/a&gt;this means: within the validation phase only a constraint of first-name was violated -&gt; the other constraints aren't violated or they should be validated after the model update which isn't performed due to a violation in the validation phase.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JO_w8kWegc4/Sj0PJjb0TYI/AAAAAAAAAQ4/NKUue6LH4MQ/s1600-h/step3.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 111px;" src="http://2.bp.blogspot.com/_JO_w8kWegc4/Sj0PJjb0TYI/AAAAAAAAAQ4/NKUue6LH4MQ/s400/step3.png" alt="" id="BLOGGER_PHOTO_ID_5349448589191171458" border="0" /&gt;&lt;/a&gt;this means: only constraints of the model-aware-validation are violated - so you see messages you haven't seen so far.&lt;br /&gt;&lt;br /&gt;so far we haven't looked at the transactional validation behavior of the add-on.&lt;br /&gt;the described invalid tries lead to the following behavior behind the scenes:&lt;br /&gt;&lt;br /&gt;try #1 and #2:&lt;br /&gt;no model update&lt;br /&gt;&lt;br /&gt;try #3 leads to:&lt;br /&gt;model update:&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;setFirstName: Gerhard &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;setLastName: P &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;setManufacturer: MyCar &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;setModelIdentification: MyCar &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;violation&lt;/span&gt; during model aware and (/or) class-level validation:&lt;br /&gt;-&gt; revert new model values&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;setFirstName: null &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;setLastName: null &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;setManufacturer: null &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;setModelIdentification: null&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;in this case null was the last valid model value of all properties (since we haven't had values in the model).&lt;br /&gt;&lt;br /&gt;you can find the add-on at:&lt;br /&gt;&lt;a href="http://code.google.com/p/os890/source/browse/#svn/trunk/java/web/jsf/extval/transactional_model_validation_light"&gt;http://code.google.com/p/os890/source/browse/#svn/trunk/java/web/jsf/extval/transactional_model_validation_light&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-1430824032481843959?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/1430824032481843959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=1430824032481843959' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/1430824032481843959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/1430824032481843959'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/06/myfaces-extval-add-on-transactional.html' title='myfaces-extval-add-on - transactional model validation light'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JO_w8kWegc4/Sj0MHFtnU1I/AAAAAAAAAQA/tEqDSk1_W0Q/s72-c/person_class.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-1908202793754486365</id><published>2009-06-12T19:20:00.005+02:00</published><updated>2009-06-14T19:51:29.417+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval-add-on'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>myfaces-extval-add-on - advanced metadata</title><content type='html'>this add-on is a collection of some metadata add-ons. you can still use the other add-ons independently. anyway, this collection allows some internal improvements and you don't have to care about possible side-effects. it just works.&lt;br /&gt;&lt;br /&gt;currently the add-on combines:&lt;br /&gt;- metadata provider&lt;br /&gt;- virtual metadata&lt;br /&gt;- conditional metadata exclusion&lt;br /&gt;- metadata priority&lt;br /&gt;&lt;br /&gt;the combined usage at your properties (of all included add-ons) looks like:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JO_w8kWegc4/SjU3-MRVcjI/AAAAAAAAAPw/ljCm1Jna1GA/s1600-h/entity.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 307px; height: 187px;" src="http://1.bp.blogspot.com/_JO_w8kWegc4/SjU3-MRVcjI/AAAAAAAAAPw/ljCm1Jna1GA/s400/entity.png" alt="" id="BLOGGER_PHOTO_ID_5347241674157683250" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JO_w8kWegc4/SjU4IgfMbHI/AAAAAAAAAP4/sHuyHeYtMqQ/s1600-h/metadata_addons_combination.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 183px;" src="http://2.bp.blogspot.com/_JO_w8kWegc4/SjU4IgfMbHI/AAAAAAAAAP4/sHuyHeYtMqQ/s400/metadata_addons_combination.png" alt="" id="BLOGGER_PHOTO_ID_5347241851383213170" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;the separation is of course optional - since it's a feature of one of the add-ons, it's used in this example.&lt;br /&gt;&lt;br /&gt;you can find the add-on at:&lt;br /&gt;&lt;a href="http://code.google.com/p/os890/source/browse/#svn/trunk/java/web/jsf/extval/advanced_metadata"&gt;http://code.google.com/p/os890/source/browse/#svn/trunk/java/web/jsf/extval/advanced_metadata&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-1908202793754486365?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/1908202793754486365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=1908202793754486365' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/1908202793754486365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/1908202793754486365'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/06/myfaces-extval-add-on-advanced-metadata.html' title='myfaces-extval-add-on - advanced metadata'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JO_w8kWegc4/SjU3-MRVcjI/AAAAAAAAAPw/ljCm1Jna1GA/s72-c/entity.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-7564038019190949386</id><published>2009-06-12T19:12:00.003+02:00</published><updated>2009-06-14T19:47:08.311+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval-add-on'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>myfaces-extval-add-on - conditional metadata exclusion</title><content type='html'>extval allows to include and exclude metadata dynamically. currently there are already a lot add-ons out there. this add-on allows to exclude metadata conditionally in a fine-grained manner. furthermore, it's possible to use it for 3rd party annotations as well.&lt;br /&gt;&lt;br /&gt;the usage at your properties looks like:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JO_w8kWegc4/SjU2UkFuGqI/AAAAAAAAAPg/9V3XII8P8Cc/s1600-h/exclude_condition.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 45px;" src="http://4.bp.blogspot.com/_JO_w8kWegc4/SjU2UkFuGqI/AAAAAAAAAPg/9V3XII8P8Cc/s400/exclude_condition.png" alt="" id="BLOGGER_PHOTO_ID_5347239859485285026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;if you have multiple target conditions the usage looks like:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JO_w8kWegc4/SjU2nMpTx3I/AAAAAAAAAPo/RsXCJopYDp8/s1600-h/exclude_condition_list.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 88px;" src="http://3.bp.blogspot.com/_JO_w8kWegc4/SjU2nMpTx3I/AAAAAAAAAPo/RsXCJopYDp8/s400/exclude_condition_list.png" alt="" id="BLOGGER_PHOTO_ID_5347240179609618290" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;you can find the add-on at:&lt;br /&gt;&lt;a href="http://code.google.com/p/os890/source/browse/#svn/trunk/java/web/jsf/extval/conditional_metadata_exclusion"&gt;http://code.google.com/p/os890/source/browse/#svn/trunk/java/web/jsf/extval/conditional_metadata_exclusion&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-7564038019190949386?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/7564038019190949386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=7564038019190949386' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/7564038019190949386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/7564038019190949386'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/06/myfaces-extval-add-on-conditional.html' title='myfaces-extval-add-on - conditional metadata exclusion'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JO_w8kWegc4/SjU2UkFuGqI/AAAAAAAAAPg/9V3XII8P8Cc/s72-c/exclude_condition.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-2621483294500063121</id><published>2009-06-12T07:36:00.005+02:00</published><updated>2009-06-13T00:30:41.165+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval-add-on'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>myfaces-extval-add-on - virtual metadata</title><content type='html'>maybe you thought - extval supports 3rd party annotations (e.g. jpa based validation) and the new typesafe constraint aspects aren't available for 3rd party constraints.&lt;br /&gt;&lt;br /&gt;the virtual metadata add-on solves this restriction.&lt;br /&gt;&lt;br /&gt;the usage at your properties looks like:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JO_w8kWegc4/SjH4QbqiHsI/AAAAAAAAAPI/DjXQyRf-ePQ/s1600-h/virtual_metadata.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 22px;" src="http://3.bp.blogspot.com/_JO_w8kWegc4/SjH4QbqiHsI/AAAAAAAAAPI/DjXQyRf-ePQ/s400/virtual_metadata.png" alt="" id="BLOGGER_PHOTO_ID_5346327193853238978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;you can find the add-on at:&lt;br /&gt;&lt;a href="http://code.google.com/p/os890/source/browse/#svn/trunk/java/web/jsf/extval/virtual_metadata"&gt;http://code.google.com/p/os890/source/browse/#svn/trunk/java/web/jsf/extval/virtual_metadata&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JO_w8kWegc4/SjH4QbqiHsI/AAAAAAAAAPI/DjXQyRf-ePQ/s1600-h/virtual_metadata.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-2621483294500063121?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/2621483294500063121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=2621483294500063121' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/2621483294500063121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/2621483294500063121'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/06/myfaces-extval-add-on-virtual-metadata.html' title='myfaces-extval-add-on - virtual metadata'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JO_w8kWegc4/SjH4QbqiHsI/AAAAAAAAAPI/DjXQyRf-ePQ/s72-c/virtual_metadata.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-7143122134207385968</id><published>2009-06-11T12:03:00.006+02:00</published><updated>2009-06-13T00:30:23.674+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval-add-on'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>myfaces-extval-add-on - metadata priority</title><content type='html'>this add-on allows to force a validation priority (independent of the used order).&lt;br /&gt;it's especially useful for the metadata-provider add-on. so you can prioritize the found constraints. anyway, it isn't bound to the other add-on - so you can use it independently.&lt;br /&gt;(or impl. your own add-on - it's quite simple)&lt;br /&gt;&lt;br /&gt;simple example:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JO_w8kWegc4/SjDZrpXjP9I/AAAAAAAAAPA/_Pd4r4GV2ZI/s1600-h/priority.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 53px;" src="http://4.bp.blogspot.com/_JO_w8kWegc4/SjDZrpXjP9I/AAAAAAAAAPA/_Pd4r4GV2ZI/s400/priority.png" alt="" id="BLOGGER_PHOTO_ID_5346012101551013842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;you can find the add-on at:&lt;br /&gt;&lt;a href="http://code.google.com/p/os890/source/browse/#svn/trunk/java/web/jsf/extval/metadata_priority"&gt;http://code.google.com/p/os890/source/browse/#svn/trunk/java/web/jsf/extval/metadata_priority&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-7143122134207385968?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/7143122134207385968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=7143122134207385968' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/7143122134207385968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/7143122134207385968'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/06/myfaces-extval-add-on-metadata-priority.html' title='myfaces-extval-add-on - metadata priority'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JO_w8kWegc4/SjDZrpXjP9I/AAAAAAAAAPA/_Pd4r4GV2ZI/s72-c/priority.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-1429291247772283965</id><published>2009-06-09T23:40:00.021+02:00</published><updated>2009-06-10T09:00:15.212+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval-add-on'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>myfaces-extval-add-on - metadata provider</title><content type='html'>&lt;span style="color: rgb(255, 0, 0);"&gt;this time &lt;span style="font-weight: bold;"&gt;don't&lt;/span&gt; look at the images before your have read the text. it's really important to understand the &lt;span style="font-weight: bold;"&gt;special&lt;/span&gt; use-cases!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;basically this add-on shows how to add constraints from an alternative source to the current validation-process. it's possible since extval 1.x.2 via a custom MetaDataExtractionInterceptor. this add-on uses special java-classes as alternative source. however, you can use e.g. xml files,... as alternative source. it's up to you - the way you have to do it is more or less the same.&lt;br /&gt;&lt;br /&gt;one idea of metadata based validation is that you have the constraints where they belong to. jsr 303 will allow to define cross-layer constraints (by definition). extval allows the same. anyway, if you have view-layer centric constraints e.g. the out-of-the-box available extval constraints (just the dependency itself is view-layer specific) and your architecture doesn't allow to use them in your entities, you have ~5 choices:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1) only use the jsr 303 support of extval x.x.3+&lt;/span&gt; &lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;br /&gt;disadvantage: less features (due to jsr 303 itself)!!!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2) implement your own set of constraints:&lt;/span&gt; &lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;br /&gt;advantage: they have no dependency to extval - but you can use extval to validate them in jsf applications. since they don't depend on extval, you can use your own validation engine in the other layers or ... (too much possibilities for this post)&lt;br /&gt;&lt;br /&gt;disadvantage: you have to implement, test, maintain,... them&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3) use the metadata-provider add-on (or impl. a similar one)&lt;/span&gt; &lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;br /&gt;advantage: use existing constraints outside your entities and bind it to the entities in a typesafe manner...&lt;br /&gt;&lt;br /&gt;disadvantage: depends on your opinion&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4) change your architecture&lt;/span&gt; &lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;br /&gt;normally that isn't a real option.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5) &lt;/span&gt;don't use extval &lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;br /&gt;do you think that it is a nice option for your jsf-application? i don't think so ;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;you still read this entry - so you are interested in the approach of the add-on :)&lt;br /&gt;&lt;br /&gt;just to mention it again - &lt;span style="font-weight: bold;"&gt;extval allows to validate any constraints. that's a base principle. &lt;span style="color: rgb(255, 0, 0);"&gt;extval introduces no requirement to your constraints&lt;/span&gt;.&lt;/span&gt; you can also provide validators for your existing constraints... so you can use constraints which have no (in-/)direct dependency to extval. that's a base principle! but maybe you have special constraints just for your view-layer or you have to bind your fields against existing implementations or you are using something like dto's or ... . this add-on solves possible architecture issues you might have had so far and demonstrates alternative constraint sources in general.&lt;br /&gt;&lt;br /&gt;your entity:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JO_w8kWegc4/Si7fj7NCumI/AAAAAAAAAOo/qeMt2dTu-cw/s1600-h/entity.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 307px; height: 187px;" src="http://2.bp.blogspot.com/_JO_w8kWegc4/Si7fj7NCumI/AAAAAAAAAOo/qeMt2dTu-cw/s400/entity.png" alt="" id="BLOGGER_PHOTO_ID_5345455616016169570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;the decoupled style via name convention:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JO_w8kWegc4/Si7fyM8OC8I/AAAAAAAAAOw/NOXCXVdS6s8/s1600-h/provider_via_name-convention.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 210px; height: 106px;" src="http://3.bp.blogspot.com/_JO_w8kWegc4/Si7fyM8OC8I/AAAAAAAAAOw/NOXCXVdS6s8/s400/provider_via_name-convention.png" alt="" id="BLOGGER_PHOTO_ID_5345455861295614914" border="0" /&gt;&lt;/a&gt;the convention is: place it in the same package + the MetaData postfix.&lt;br /&gt;&lt;br /&gt;possible issues after refactoring of your application:&lt;br /&gt;- property names of the entity might change (-&gt; use the extends * approach of the following style)&lt;br /&gt;- the class name/location might change (-&gt; you need the 2nd approach)&lt;br /&gt;&lt;br /&gt;-&gt; to solve both there is an alternative approach:&lt;br /&gt;&lt;br /&gt;the typesafe version:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JO_w8kWegc4/Si7f98HUJ_I/AAAAAAAAAO4/S--T8faVeiQ/s1600-h/provider_via_cp-scanning.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 371px; height: 172px;" src="http://4.bp.blogspot.com/_JO_w8kWegc4/Si7f98HUJ_I/AAAAAAAAAO4/S--T8faVeiQ/s400/provider_via_cp-scanning.png" alt="" id="BLOGGER_PHOTO_ID_5345456062937180146" border="0" /&gt;&lt;/a&gt;... you extend the target (entity) and override the properties which are the targets for the ui-specific constraints. the add-on uses scannotation to discover such classes. so you can use any package and class-name. if you refactor the person class e.g. lastName -&gt; surName your ide should automatically rename the overridden properties as well (at least &lt;span style="font-weight: bold;font-family:courier new;" &gt;@Override&lt;/span&gt; helps you to detect errors). so it's a really typesafe approach. (you have to provide the target class as value of &lt;span style="font-weight: bold;font-family:courier new;" &gt;@MetaDataProvider&lt;/span&gt; - this might change in the final version)&lt;br /&gt;&lt;br /&gt;optionally you can use:&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;ExtValContext.getContext().addGlobalProperty(&lt;br /&gt;MetaDataProviderStorage.KEY, "your package");&lt;/span&gt;&lt;br /&gt;within an extval startup-listener to define a custom package to scan.&lt;br /&gt;&lt;br /&gt;in your application you add extval, the add-on and your metadata provider classes to your jsf application. if you have other modules for the other layers, they aren't affected!&lt;br /&gt;&lt;br /&gt;so if the only argument against extval/constraint based validation was that you aren't allowed to use the out-of-the-box annotations or ..., you see how the solution could look like (or just use it). and be happy, if you don't have such requirements and you can just use extval as it is :)&lt;br /&gt;&lt;br /&gt;you can find the add-on at:&lt;br /&gt;&lt;a href="http://code.google.com/p/os890/source/browse/#svn/trunk/java/web/jsf/extval/metadata_provider"&gt;http://code.google.com/p/os890/source/browse/#svn/trunk/java/web/jsf/extval/metadata_provider&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-1429291247772283965?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/1429291247772283965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=1429291247772283965' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/1429291247772283965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/1429291247772283965'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/06/myfaces-extval-add-on-metadata-provider.html' title='myfaces-extval-add-on - metadata provider'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JO_w8kWegc4/Si7fj7NCumI/AAAAAAAAAOo/qeMt2dTu-cw/s72-c/entity.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-6428525883111422805</id><published>2009-05-31T23:44:00.005+02:00</published><updated>2009-06-09T22:03:25.324+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='annotation'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='preview'/><title type='text'>[preview] typesafe constraint aspects</title><content type='html'>&lt;span style="font-weight: bold;"&gt;the problem&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;@Required(parameters = {&lt;br /&gt;@Param(key= "severity", value = "warn"),&lt;br /&gt;@Param(key= "display", value = "global")})&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;... this version allows you to add general information to a constraint. you can think about it as an extension point for constraints. anyway, a string-based approach has some disadvantages.&lt;br /&gt;&lt;br /&gt;e.g.:&lt;br /&gt;- not typesafe&lt;br /&gt;- you have to know key/value combinations (no auto-complete offered by the ide)&lt;br /&gt;- refactorings can break your implementation&lt;br /&gt;- ...&lt;br /&gt;&lt;br /&gt;so that's quite error prone...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;the solution&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);font-family:courier new;" &gt;@Required(parameters = {&lt;br /&gt;ViolationSeverity.Warn.class, DisplayGlobal.class})&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;such constraint aspects offer a typesafe alternative e.g. for parameters. so you can provide an extval add-on without knowing the concrete constraint implementation.&lt;br /&gt;only the central logic (e.g. of an add-on) has to know what information might be available as parameter at the constraint and how to use this information.&lt;br /&gt;&lt;br /&gt;so you can have add-on-x which provides new features and constraints y (they don't know each other). but you can use the features of add-on-x with constraints y (if the constraints have an attribute of the type &lt;code&gt;Class&lt; ? extends ValidationParameter&gt;[]&lt;/code&gt;)&lt;br /&gt;&lt;br /&gt;there are different supported styles. some information are available in &lt;span style="font-size:100%;"&gt;the &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;a style="font-weight: bold;" href="http://wiki.apache.org/myfaces/Extensions/Validator/ConceptOverview/Constraint_Aspects"&gt;wiki&lt;/a&gt;.&lt;/span&gt; compared to using strings - it's a bit more effort to create such a parameter implementation. anyway, you don't frequently create new parameter implementations. but you will frequently use them. as you saw - the final usage is typesafe, short and the constraint isn't aware of the specific values behind.&lt;br /&gt;&lt;br /&gt;so if you have existing constraints you just have to add an attribute of the type &lt;code&gt;Class&lt; ? extends ValidationParameter&gt;[]&lt;/code&gt; and your constraint can automatically join any feature provided via a parameter implementation of extval, an extval add-on or your custom implementation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-6428525883111422805?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/6428525883111422805/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=6428525883111422805' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/6428525883111422805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/6428525883111422805'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/05/preview-typesafe-constraint-aspects_31.html' title='[preview] typesafe constraint aspects'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-1188606797256238506</id><published>2009-05-31T01:39:00.004+02:00</published><updated>2009-05-31T04:16:06.364+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='preview'/><title type='text'>[preview] early preview of the 3rd release</title><content type='html'>within 2 releases myfaces extval grew up to a very powerful validation platform which is used in several real-world projects. due to that extval solves real-world problems. the pluggable architecture allows you to implement fancy add-ons to provide functionality which isn't available out-of-the-box and wouldn't be possible with the standard validation mechanism offered by jsf. so the question is: "&lt;span style="color: rgb(255, 0, 0);"&gt;what's next?&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;here is a short preview of some new features of the next release. it's a quite early preview. so i might update this post, if there are some new information.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;the "big" parts:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;#1 jsr 303 (bean validation) validation module&lt;br /&gt;that's a new validation module for extval which allows the unified usage of jsr 303 with jsf 1.x and jsf 2.x&lt;br /&gt;(jsf 2.x has jsr 303 support out-of-the-box. anyway, this adapter will offer some additional typesafe features)&lt;br /&gt;&lt;br /&gt;#2 jsr 314 (javaserver faces 2.0)&lt;br /&gt;there will be a new core version which allows you to use extval with jsf 2.0&lt;br /&gt;so you can continue to use your constraints, add-ons,... with the next version of jsf!&lt;br /&gt;(you will just have to update the modules you are using right now. your implementations remain the same.)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;some of the smaller but nice new features:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;#3 typesafe constraint aspects (= generic parameters)&lt;br /&gt;such aspects allow you to extend the functionality of existing constraints.&lt;br /&gt;furthermore, they allow to introduce shared features. it's also used as base for the next feature.&lt;br /&gt;&lt;br /&gt;#4 none-blocking warn mode&lt;br /&gt;several users asked for a "warn mode". that means: a constraint violation is acceptable for the moment. so the severity of the faces message is switched e.g. to warn. furthermore, it doesn't result in a validator-exception. so the jsf lifecycle continues normally and your actions,... get executed.&lt;br /&gt;&lt;br /&gt;the syntax isn't final now - the currently available implementation is e.g.:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:courier new;" &gt;@Required(parameters = ViolationSeverity.Warn.class)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;the parameters-attribute comes from #3 and isn't aware of the severity aspect.&lt;br /&gt;the parameter concept is key/value based and typesafe (any type is allowed!)&lt;br /&gt;a constraint which supports such generic parameters automatically joins available mechanisms/implementations. that means e.g. add an attribute to your constraint with the type &lt;span style="font-family:courier new;"&gt;Class&lt; ? extends ValidationParameter &gt;[]&lt;/span&gt; -- &lt;span style="font-weight: bold;"&gt;that's it&lt;/span&gt;. without additional implementation you can join such features like the warn-mode.&lt;br /&gt;&lt;br /&gt;#5 more out-of-the-box available points for intercepting the validation process&lt;br /&gt;&lt;br /&gt;#6 solution for &lt;span style="font-weight: bold;"&gt;your&lt;/span&gt; requirements&lt;br /&gt;extval was started to solve common requirements of users. all parts of the framework are inspired by common real-world requirements. so feel free to ask for new features, add-ons,...&lt;br /&gt;&lt;br /&gt;as you see some of the features depend on other releases like the ri implementation of jsr 303. so it's hard to predict the release date.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-1188606797256238506?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/1188606797256238506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=1188606797256238506' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/1188606797256238506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/1188606797256238506'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/05/preview-early-preview-of-3rd-release.html' title='[preview] early preview of the 3rd release'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-6317869697502246089</id><published>2009-05-13T23:45:00.003+02:00</published><updated>2009-05-13T23:55:19.217+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval-add-on'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>myfaces-extval-add-on - app-prototyping</title><content type='html'>today i received a request of a myfaces extval user.&lt;br /&gt;&lt;br /&gt;the question was how to use myfaces extval in a prototype with input components without value bindings.&lt;br /&gt;&lt;br /&gt;the solution is an add-on which is available at:&lt;br /&gt;&lt;a href="http://code.google.com/p/os890/source/browse/#svn/trunk/java/web/jsf/extval/prototyping"&gt;http://code.google.com/p/os890/source/browse/#svn/trunk/java/web/jsf/extval/prototyping&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-6317869697502246089?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/6317869697502246089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=6317869697502246089' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/6317869697502246089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/6317869697502246089'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/05/myfaces-extval-add-on-app-prototyping.html' title='myfaces-extval-add-on - app-prototyping'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-1540121326742852725</id><published>2009-04-26T21:56:00.001+02:00</published><updated>2009-04-26T21:59:47.054+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>myfaces extval release news 1.x.1 -&gt; 1.x.2</title><content type='html'>these slides give a short overview of the new myfaces extval v1.x.2 features.&lt;br /&gt;&lt;br /&gt;&lt;div style="width:425px;text-align:left" id="__ss_1344502"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/os890/myfaces-extensions-validator-1x2-news-1344502?type=presentation" title="MyFaces Extensions Validator 1.x.2 News"&gt;MyFaces Extensions Validator 1.x.2 News&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=myfacesextensions-validator1-x-2news-090426144558-phpapp02&amp;stripped_title=myfaces-extensions-validator-1x2-news-1344502" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=myfacesextensions-validator1-x-2news-090426144558-phpapp02&amp;stripped_title=myfaces-extensions-validator-1x2-news-1344502" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-1540121326742852725?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/1540121326742852725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=1540121326742852725' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/1540121326742852725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/1540121326742852725'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/04/myfaces-extval-release-news-1x1-1x2.html' title='myfaces extval release news 1.x.1 -&gt; 1.x.2'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-6083296988911526356</id><published>2009-04-20T16:53:00.001+02:00</published><updated>2009-04-20T16:58:16.209+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>release of myfaces-extensions-validator</title><content type='html'>&lt;div&gt;the apache myfaces team is pleased to announce a new release of myfaces-extensions-validator!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;released versions:&lt;/div&gt;&lt;div&gt;extval 1.1.2 (for jsf 1.1.x)&lt;/div&gt;&lt;div&gt;extval 1.2.2 (for jsf 1.2.x)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-6083296988911526356?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/6083296988911526356/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=6083296988911526356' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/6083296988911526356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/6083296988911526356'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/04/release-of-myfaces-extensions-validator.html' title='release of myfaces-extensions-validator'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-1511310192925377345</id><published>2009-04-15T12:10:00.001+02:00</published><updated>2009-04-20T16:55:54.416+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>[updated] myfaces-extval config extension</title><content type='html'>extval 1.x.2 provides some new mechanisms. therefore the annotation based config also provides some new annotations.&lt;br /&gt;&lt;br /&gt;new annotations:&lt;br /&gt;- MetaDataExtractionInterceptor&lt;br /&gt;- NameMapper&lt;br /&gt;- FacesMessageFactory&lt;br /&gt;&lt;br /&gt;extval allows name mappers for different areas. @NameMapper makes it easy to provide a custom name mapping strategies. the following screenshot shows an example how to use @NameMapper&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JO_w8kWegc4/SeXK7hb4ezI/AAAAAAAAAOg/g7fh_4qFJF4/s1600-h/namemapper_example.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 102px;" src="http://2.bp.blogspot.com/_JO_w8kWegc4/SeXK7hb4ezI/AAAAAAAAAOg/g7fh_4qFJF4/s400/namemapper_example.png" alt="" id="BLOGGER_PHOTO_ID_5324885258371889970" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-1511310192925377345?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/1511310192925377345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=1511310192925377345' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/1511310192925377345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/1511310192925377345'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/04/updated-myfaces-extval-config-extension.html' title='[updated] myfaces-extval config extension'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JO_w8kWegc4/SeXK7hb4ezI/AAAAAAAAAOg/g7fh_4qFJF4/s72-c/namemapper_example.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-4185172664524979448</id><published>2009-04-15T00:54:00.002+02:00</published><updated>2009-04-15T01:20:07.360+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval-add-on'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>myfaces-extval-add-on - @SecuredAction</title><content type='html'>you might already know that you can use myfaces extval for much more than validation. this new add-on shows how simple it is to provide add-ons for different problem domains. it's available at &lt;a href="http://code.google.com/p/os890/source/browse/#svn/trunk/java/web/jsf/extval/secure_actions"&gt;http://code.google.com/p/os890/source/browse/#svn/trunk/java/web/jsf/extval/secure_actions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;@SecuredAction is an annotation to secure the execution of action methods. it's independent of the concrete command component and offers several features. normally you can secure such actions via the rendered attribute. however, maybe you would like to restrict method execution based on new model values (which were updated at the same request). there are several other use-cases where you can use it instead of the required attribute of the command component. at least it is a feasibility study for further extval add-ons.&lt;br /&gt;&lt;br /&gt;the base idea is similar to the @RolesAllowed of tobago. this extval-add-on offers a bit more than a role check. if you are just interested in the same functionality without using tobago, it's quite easy to add an "allowedRoles"-attribute as well. it isn't implemented out-of-the-box, because the existing approach of permittedIf-conditions is much more generic.&lt;br /&gt;&lt;br /&gt;@SecuredAction offers several features - here are some short examples:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JO_w8kWegc4/SeUWS1nJdYI/AAAAAAAAANo/2I9z5Gd5fo0/s1600-h/secure_actions_01.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 142px;" src="http://4.bp.blogspot.com/_JO_w8kWegc4/SeUWS1nJdYI/AAAAAAAAANo/2I9z5Gd5fo0/s400/secure_actions_01.png" alt="" id="BLOGGER_PHOTO_ID_5324686647320212866" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;that means:&lt;br /&gt;if one of the condition(s) returns false the "deny"-method is called instead of the annotated method. also the optional return-value is used as expected. so you can execute custom logic in case of denied access.&lt;br /&gt;&lt;br /&gt;the following example shows a shorter syntax for the "deny"-method. it's possible to refer a local method directly:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JO_w8kWegc4/SeUWz7QA7GI/AAAAAAAAANw/TY_wy-VhJEs/s1600-h/secure_actions_02.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 164px;" src="http://3.bp.blogspot.com/_JO_w8kWegc4/SeUWz7QA7GI/AAAAAAAAANw/TY_wy-VhJEs/s400/secure_actions_02.png" alt="" id="BLOGGER_PHOTO_ID_5324687215769480290" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;it's also possible to overrule the outcome. the following example forces to redisplay the same page instead of displaying a different one:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JO_w8kWegc4/SeUXX0MUrPI/AAAAAAAAAN4/4ClJpjknuYs/s1600-h/secure_actions_03.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 176px;" src="http://3.bp.blogspot.com/_JO_w8kWegc4/SeUXX0MUrPI/AAAAAAAAAN4/4ClJpjknuYs/s400/secure_actions_03.png" alt="" id="BLOGGER_PHOTO_ID_5324687832350239986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;furthermore, in case of denied access, you can automatically add a (global) error message via:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JO_w8kWegc4/SeUX9r2MXPI/AAAAAAAAAOA/RveDSNqiIvg/s1600-h/secure_actions_04.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 178px;" src="http://2.bp.blogspot.com/_JO_w8kWegc4/SeUX9r2MXPI/AAAAAAAAAOA/RveDSNqiIvg/s400/secure_actions_04.png" alt="" id="BLOGGER_PHOTO_ID_5324688482944965874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;the add-on automatically looks at the same package of the class (which hosts the secured action method(s)). the name of the resource bundle is: securty_messages. it's just for demo cases. for real word usages you can register e.g. an existing bundle within an extval-startup listener. you can register a message-bundle base-name or for jsf 1.2+ also a message-bundle var-name.&lt;br /&gt;sample:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//use an existing message bundle&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;ExtValContext.getContext().addGlobalProperty(&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;SecuredAction.MESSAGE_BUNDLE, "at.gp.demos.messages.my_messages");&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;br /&gt;//use an existing message bundle var-name&lt;br /&gt;ExtValContext.getContext().addGlobalProperty(&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;SecuredAction.MESSAGE_BUNDLE, "#{myMessages}");&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;in the message bundle you have to add a summary and detail message - e.g.:&lt;br /&gt;action_not_allowed = action not allowed&lt;br /&gt;action_not_allowed_detail = action not allowed - please switch the role&lt;br /&gt;&lt;br /&gt;the default case is that @SecuredAction doesn't change the lifecycle execution. via an additional attribute it's possible to change that. the following example always leads to an execution (of the secureAction) in the "apply requests values"-phase. if it's &lt;span style="font-weight: bold;"&gt;permitted to call the secured method&lt;/span&gt;, the original lifecycle execution also doesn't change in this case.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JO_w8kWegc4/SeUYe4rXHWI/AAAAAAAAAOI/WZIvKUCEr3A/s1600-h/secure_actions_05.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 178px;" src="http://2.bp.blogspot.com/_JO_w8kWegc4/SeUYe4rXHWI/AAAAAAAAAOI/WZIvKUCEr3A/s400/secure_actions_05.png" alt="" id="BLOGGER_PHOTO_ID_5324689053324877154" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;it's also possible to define specific pages which need a secured action method:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JO_w8kWegc4/SeUZIkhamqI/AAAAAAAAAOQ/Zt4A5MJNIaY/s1600-h/secure_actions_06.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 176px;" src="http://4.bp.blogspot.com/_JO_w8kWegc4/SeUZIkhamqI/AAAAAAAAAOQ/Zt4A5MJNIaY/s400/secure_actions_06.png" alt="" id="BLOGGER_PHOTO_ID_5324689769468959394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;to define different scenarios, it's possible to use multiple annotations at one method. you can do that via:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JO_w8kWegc4/SeUZ6XOk9GI/AAAAAAAAAOY/xoOCuet89Og/s1600-h/secure_actions_07.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 167px;" src="http://1.bp.blogspot.com/_JO_w8kWegc4/SeUZ6XOk9GI/AAAAAAAAAOY/xoOCuet89Og/s400/secure_actions_07.png" alt="" id="BLOGGER_PHOTO_ID_5324690624893744226" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JO_w8kWegc4/SeUKMt9AQhI/AAAAAAAAANg/dl5m3CIdwOQ/s1600-h/secure_actions_07.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-4185172664524979448?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/4185172664524979448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=4185172664524979448' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/4185172664524979448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/4185172664524979448'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/04/myfaces-extval-add-on-securedaction.html' title='myfaces-extval-add-on - @SecuredAction'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JO_w8kWegc4/SeUWS1nJdYI/AAAAAAAAANo/2I9z5Gd5fo0/s72-c/secure_actions_01.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5102011143680768810.post-616316432076053985</id><published>2009-04-07T22:11:00.003+02:00</published><updated>2009-11-27T00:32:32.912+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sev-en'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extval'/><category scheme='http://www.blogger.com/atom/ns#' term='myfaces-extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='primefaces'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>myfaces-extval and prime faces</title><content type='html'>today i tested extval in combination with &lt;a href="http://code.google.com/p/primefaces/"&gt;primefaces&lt;/a&gt;. it worked without modifications. i just added:&lt;br /&gt; - myfaces-extval-core&lt;br /&gt; - myfaces-extval-property-validation&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5102011143680768810-616316432076053985?l=os890.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://os890.blogspot.com/feeds/616316432076053985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5102011143680768810&amp;postID=616316432076053985' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/616316432076053985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5102011143680768810/posts/default/616316432076053985'/><link rel='alternate' type='text/html' href='http://os890.blogspot.com/2009/04/myfaces-extval-and-prime-faces.html' title='myfaces-extval and prime faces'/><author><name>Gerhard Petracek</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
