<?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-1939506572663687826</id><updated>2011-12-15T23:51:36.679+01:00</updated><category term='demetrio'/><category term='install howto &quot;jboss as&quot; jboss debian system init linux'/><category term='opencv'/><category term='jsf'/><category term='documentation'/><category term='java'/><category term='seam'/><category term='java cdk richfaces skypecall howto jsf component'/><category term='jboss as'/><category term='programming'/><category term='filocamo'/><category term='mac os x'/><category term='how to'/><category term='how-to'/><category term='book'/><category term='sample'/><category term='tomahawk'/><category term='log4j'/><category term='editor'/><category term='facelets'/><category term='intercept'/><category term='onkeypress'/><category term='richfaces'/><category term='packt'/><category term='jboss'/><category term='3.3'/><category term='qt'/><category term='j2ee'/><category term='return key'/><category term='manual'/><title type='text'>demetrio812</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://demetrio812.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://demetrio812.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>demetrio.it</name><uri>http://www.blogger.com/profile/16850243001843176521</uri><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>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1939506572663687826.post-258729781157563566</id><published>2011-01-02T11:44:00.000+01:00</published><updated>2011-01-02T11:45:59.844+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mac os x'/><category scheme='http://www.blogger.com/atom/ns#' term='qt'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='opencv'/><title type='text'>Getting started with QT and OpenCV on Mac OS X</title><content type='html'>Just published a new article here: &lt;a href="http://blog.demetrio.it/2011/01/02/getting-started-with-qt-and-opencv-on-mac-os-x/"&gt;http://blog.demetrio.it/2011/01/02/getting-started-with-qt-and-opencv-on-mac-os-x/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1939506572663687826-258729781157563566?l=demetrio812.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.demetrio.it/2011/01/02/getting-started-with-qt-and-opencv-on-mac-os-x/' title='Getting started with QT and OpenCV on Mac OS X'/><link rel='replies' type='application/atom+xml' href='http://demetrio812.blogspot.com/feeds/258729781157563566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1939506572663687826&amp;postID=258729781157563566' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/258729781157563566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/258729781157563566'/><link rel='alternate' type='text/html' href='http://demetrio812.blogspot.com/2011/01/getting-started-with-qt-and-opencv-on.html' title='Getting started with QT and OpenCV on Mac OS X'/><author><name>demetrio.it</name><uri>http://www.blogger.com/profile/16850243001843176521</uri><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-1939506572663687826.post-7826650193869295710</id><published>2010-02-12T21:35:00.002+01:00</published><updated>2010-02-12T21:40:31.714+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java cdk richfaces skypecall howto jsf component'/><category scheme='http://www.blogger.com/atom/ns#' term='intercept'/><category scheme='http://www.blogger.com/atom/ns#' term='onkeypress'/><category scheme='http://www.blogger.com/atom/ns#' term='editor'/><category scheme='http://www.blogger.com/atom/ns#' term='return key'/><category scheme='http://www.blogger.com/atom/ns#' term='install howto &quot;jboss as&quot; jboss debian system init linux'/><title type='text'>RichFaces editor: how to intercept the “return” key to submit a form</title><content type='html'>Hello,&lt;br /&gt;I'll try to write more on my blog and keep you update about every technique I use and that can be very useful to you as well.&lt;br /&gt;&lt;br /&gt;Today I needed to submit a form with an editor element when the user pressed the "return" key (instead of creating a new line).&lt;br /&gt;&lt;br /&gt;The code is not so complicate but as the rich:editor uses the TinyMCE component you have to search all around to find the right way. Better to have a complete solution.&lt;br /&gt;&lt;br /&gt;It consists on creating an handler onKeyPress and call a javascript function (created by a:jsFunction) to submit our form. Simpler doing then saying it.&lt;br /&gt;&lt;br /&gt;To read all the article click the following link:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.demetrio.it/2010/02/12/richfaces-editor-how-to-intercept-the-return-key-to-submit-a-form/"&gt;http://blog.demetrio.it/2010/02/12/richfaces-editor-how-to-intercept-the-return-key-to-submit-a-form/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Demetrio Filocamo&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;------&lt;br /&gt;&lt;br /&gt;JBoss RichFaces 3.3 (book) - &lt;a href="http://www.packtpub.com/jboss-richfaces-3-3"&gt;http://www.packtpub.com/jboss-richfaces-3-3&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Learn RichFaces step by step developing a sample application.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1939506572663687826-7826650193869295710?l=demetrio812.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.demetrio.it/2010/02/12/richfaces-editor-how-to-intercept-the-return-key-to-submit-a-form/' title='RichFaces editor: how to intercept the “return” key to submit a form'/><link rel='replies' type='application/atom+xml' href='http://demetrio812.blogspot.com/feeds/7826650193869295710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1939506572663687826&amp;postID=7826650193869295710' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/7826650193869295710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/7826650193869295710'/><link rel='alternate' type='text/html' href='http://demetrio812.blogspot.com/2010/02/richfaces-editor-how-to-intercept.html' title='RichFaces editor: how to intercept the “return” key to submit a form'/><author><name>demetrio.it</name><uri>http://www.blogger.com/profile/16850243001843176521</uri><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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1939506572663687826.post-4454333956822600987</id><published>2010-02-12T03:53:00.002+01:00</published><updated>2010-02-12T03:54:32.631+01:00</updated><title type='text'>JBoss RichFaces 3.3 - Introduction</title><content type='html'>An introduction to JBoss RichFaces framework and to the book JBoss RichFaces (Packt) by Demetrio Filocamo. &lt;br /&gt;&lt;br /&gt;RichFaces is a very useful open source framework that allows you to add Ajax capability to your JSF application (using the standard JSF components) without the need to write JavaScript code and manage JavaScript compatibility between browsers. &lt;br /&gt;&lt;br /&gt;You can read more about the book here: &lt;a href="http://www.packtpub.com/jboss-richfaces-3-3"&gt;http://www.packtpub.com/jboss-richfaces-3-3&lt;/a&gt;&lt;div style="width:425px;text-align:left" id="__ss_3143676"&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/demetrio812/jboss-richfaces-33-introduction" title="JBoss RichFaces 3.3 - Introduction"&gt;JBoss RichFaces 3.3 - Introduction&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=slidesintroduction-100211203450-phpapp02&amp;stripped_title=jboss-richfaces-33-introduction" /&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=slidesintroduction-100211203450-phpapp02&amp;stripped_title=jboss-richfaces-33-introduction" 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;View more &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/demetrio812"&gt;Demetrio Filocamo&lt;/a&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/1939506572663687826-4454333956822600987?l=demetrio812.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://demetrio812.blogspot.com/feeds/4454333956822600987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1939506572663687826&amp;postID=4454333956822600987' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/4454333956822600987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/4454333956822600987'/><link rel='alternate' type='text/html' href='http://demetrio812.blogspot.com/2010/02/jboss-richfaces-33-introduction.html' title='JBoss RichFaces 3.3 - Introduction'/><author><name>demetrio.it</name><uri>http://www.blogger.com/profile/16850243001843176521</uri><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-1939506572663687826.post-8357737956720052467</id><published>2010-02-12T02:06:00.002+01:00</published><updated>2010-02-12T02:10:48.293+01:00</updated><title type='text'>New book: JSF 1.2 Components</title><content type='html'>Hi guys,&lt;br /&gt;I'm going to read and then review for Packt Publishing the new book&lt;strong&gt; JSF 1.2 Components &lt;/strong&gt;by &lt;strong&gt;lan Hlavats&lt;/strong&gt;, the developer behing &lt;em&gt;JSF ToolBox for Dreamweaver&lt;/em&gt;. The book is about the most important JSF component frameworks we can use to empower our application. So starting from the &lt;strong&gt;Standard JSF Components&lt;/strong&gt; we'll go through &lt;strong&gt;Facelets&lt;/strong&gt;, &lt;strong&gt;Apache Tomahawk&lt;/strong&gt;, &lt;strong&gt;Apache Trinidad&lt;/strong&gt;, &lt;strong&gt;ICEfaces&lt;/strong&gt;,&lt;strong&gt; JBoss Seam JSF Components&lt;/strong&gt; and &lt;strong&gt;JBoss RichFaces&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;It is also technically reviewed by very know guys on JSF field like &lt;strong&gt;Cagatay Civici&lt;/strong&gt; (PMC member of open source JSF implementation Apache MyFaces and the project leader of popular PrimeFaces framework), &lt;strong&gt;Ted Goddard&lt;/strong&gt; (Chief Software Architect at ICEsoft Technologies and is the technical leader for ICEfaces), &lt;strong&gt;Kito D. Mann&lt;/strong&gt; (editor-in-chief of JSF Central - www.jsfcentral.com - and the author of JavaServer Faces in Action - Manning) and others.&lt;br /&gt;&lt;br /&gt;I'll come back soon with something to say, in the meantime you can download the sample chapter about the &lt;em&gt;Facelets Components&lt;/em&gt; by clicking &lt;a href="http://blog.demetrio.it/wp-content/uploads/7627-developing-jsf-components-sample-chapter-2-facelets-components.pdf"&gt;here&lt;/a&gt;, or buy the book from the &lt;a href="http://www.packtpub.com/jsf-1-2-components-develop-advanced-ajax-enabled-applications/book/mid/090210c140fp?utm_source=demetrio812.blogspot.com&amp;utm_medium=bookrev&amp;utm_content=blog&amp;utm_campaign=mdb_002395" target="_blank"&gt;Packt website&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;Thanks&lt;br /&gt;&lt;br /&gt;Demetrio&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1939506572663687826-8357737956720052467?l=demetrio812.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://demetrio812.blogspot.com/feeds/8357737956720052467/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1939506572663687826&amp;postID=8357737956720052467' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/8357737956720052467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/8357737956720052467'/><link rel='alternate' type='text/html' href='http://demetrio812.blogspot.com/2010/02/new-book-jsf-12-components.html' title='New book: JSF 1.2 Components'/><author><name>demetrio.it</name><uri>http://www.blogger.com/profile/16850243001843176521</uri><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-1939506572663687826.post-2678974836885799758</id><published>2009-11-07T02:05:00.002+01:00</published><updated>2009-11-07T02:10:26.862+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='demetrio'/><category scheme='http://www.blogger.com/atom/ns#' term='documentation'/><category scheme='http://www.blogger.com/atom/ns#' term='sample'/><category scheme='http://www.blogger.com/atom/ns#' term='richfaces'/><category scheme='http://www.blogger.com/atom/ns#' term='filocamo'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='facelets'/><category scheme='http://www.blogger.com/atom/ns#' term='packt'/><category scheme='http://www.blogger.com/atom/ns#' term='how-to'/><category scheme='http://www.blogger.com/atom/ns#' term='j2ee'/><category scheme='http://www.blogger.com/atom/ns#' term='seam'/><category scheme='http://www.blogger.com/atom/ns#' term='manual'/><category scheme='http://www.blogger.com/atom/ns#' term='3.3'/><category scheme='http://www.blogger.com/atom/ns#' term='jboss'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>JBoss RichFaces 3.3 - My book has been published!</title><content type='html'>Hi all,&lt;br /&gt;&lt;strong&gt;the book I've worked on the last months has finally been published!!&lt;/strong&gt;&lt;br /&gt;&lt;p style="text-align: center;"&gt;&lt;a title="JBoss RichFaces 3.3" rel="lightbox[pics131]" href="http://blog.demetrio.it/wp-content/uploads/JBoss-RichFaces.jpg"&gt;&lt;img class="attachment wp-att-133 aligncenter" src="http://blog.demetrio.it/wp-content/uploads/JBoss-RichFaces.jpg" alt="JBoss RichFaces 3.3" height="370" width="300" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="text-align: left;"&gt;JBoss RichFaces is a rich component library for JavaServer Faces and an AJAX framework that allows easy integration of Ajax capabilities into complex business applications. Do you wish to eliminate the time involved in writing JavaScript code and managing JavaScript-compatibility between browsers to build an Ajax web application quickly?&lt;/p&gt;This book goes beyond the documentation to teach you how to do that. It will show you how to get the most out of JBoss RichFaces by explaining the key components and how you can use them to enhance your applications. Most importantly, you will learn how to integrate Ajax into your applications without using JavaScript, but only standard JSF components. You will learn how to create and customize your own components and add them to your new or existing applications.&lt;br /&gt;&lt;br /&gt;First, the book introduces you to JBoss RichFaces and its components. It uses many examples of Ajax components which, among others, include: Calendar, Data Table, ToolTip, ToolBar, Menu, RichEditor, and Drag 'n' Drop. All these components will help you create the web site you always imagined. Key aspects of the RichFaces framework such as the Ajax framework, skinnability, and Component Development Kit (CDK) will help you customize the look of your web application. As you progress through the book, you will see a sample application that shows you how to build an advanced contact manager. You're also going to be amazed to know about the advanced topics you will learn such as developing new components, new skins, optimizing a web application, inserting components dynamically using Java instead of XHTML, and using JavaScript to manage components. This book is more than a reference with component example code: it's a manual that will guide you, step by step, through the development of a real Ajax JSF web application.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What This Book Covers&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Chapter 1: &lt;em&gt;What is RichFaces&lt;/em&gt; covers the aims of the RichFaces framework, its components, and what you can do by using it in a web application.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Chapter 2: &lt;em&gt;Getting Ready&lt;/em&gt; explains how to configure your environment by creating a simple project using the seam-gen tool, adding support to Seam and Facelets, and the manual configuration for the RichFaces libraries. We will understand the IDE that we can use while developing with the framework.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;In Chapter 3: &lt;em&gt;First Steps&lt;/em&gt;, you will learn to build Ajax applications by developing a simple example, the basics of RichFaces step by step, from creating the project to editing the code, using very important components and their Ajax properties.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Chapter 4:&lt;em&gt; The Application&lt;/em&gt; covers how to create the basics of our project by having a look at the side technologies we might know, in order to build good applications. It will cover templating with Facelets, JBoss Seam authentication, and customization of the entities.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Chapter 5: &lt;em&gt;Making the Application Structure&lt;/em&gt; explains us how to create the login and registration system of the website. We'll look at all the features that a real application might have.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;In Chapter 6: &lt;em&gt;Making the Contacts List and Detail&lt;/em&gt;, we will develop the core feature of our application—contact management. We'll learn about Ajax interaction and containers, and about new Ajax components that RichFaces offers.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Chapter 7: &lt;em&gt;Finishing the Application&lt;/em&gt; explains how to finish building the application using the RichFaces components, and about customizing them.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;In Chapter 8: &lt;em&gt;Skin Customization&lt;/em&gt;, we'll see all the powerful customization capabilities that the RichFaces framework offers.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Chapter 9: &lt;em&gt;Creating a New plug 'n' skin&lt;/em&gt; covers how to create, customize, and package and deploy a new pluggable skin.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Chapter 10: &lt;em&gt;Advanced Techniques&lt;/em&gt; explains you how to use and implement pushing, partial updates, and session expiration handling in order to develop advanced applications.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;In Chapter 11: &lt;em&gt;Component Development Kit&lt;/em&gt;, we'll see how to start a project in order to develop a simple JSF Ajax component in a simple and effective way using the features the CDK offers.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Appendix: &lt;em&gt;RichFaces Components Overview&lt;/em&gt; covers a list of all the components of RichFaces with their functionalities.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;strong&gt;Example chapter&lt;/strong&gt;&lt;br /&gt;You can download a sample chapter, Chapter 8: &lt;em&gt;Skin Customization&lt;/em&gt;,  by clicking &lt;a href="http://blog.demetrio.it/wp-content/uploads/Chapter-8-Skin-Customization.pdf"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Where to buy it&lt;/strong&gt;&lt;br /&gt;You can buy JBoss RichFaces 3.3 from the &lt;a href="http://www.packtpub.com/jboss-richfaces-3-3/mid/031109dmdusq?utm_source=Demetrio812.blogspot.com&amp;utm_medium=affiliate&amp;utm_content=authorsite&amp;utm_campaign=mdb_001310" target="_blank"&gt;Packt Publishing website&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Free shipping to the US, UK, Europe and selected Asian countries. For more information, please read the &lt;a href="http://www.packtpub.com/Shippingpolicy" target="_blank"&gt;Packt Publishing shipping policy&lt;/a&gt;.&lt;br /&gt;Alternatively, you can buy the book from Amazon, BN.com, Computer Manuals and most internet book retailers.&lt;br /&gt;&lt;br /&gt;Thank you!&lt;br /&gt;&lt;br /&gt;Demetrio&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1939506572663687826-2678974836885799758?l=demetrio812.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://demetrio812.blogspot.com/feeds/2678974836885799758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1939506572663687826&amp;postID=2678974836885799758' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/2678974836885799758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/2678974836885799758'/><link rel='alternate' type='text/html' href='http://demetrio812.blogspot.com/2009/11/jboss-richfaces-33-my-book-has-been.html' title='JBoss RichFaces 3.3 - My book has been published!'/><author><name>demetrio.it</name><uri>http://www.blogger.com/profile/16850243001843176521</uri><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-1939506572663687826.post-2306555975305480252</id><published>2009-04-03T03:28:00.000+02:00</published><updated>2009-04-03T03:29:17.768+02:00</updated><title type='text'>One-to-one relationship with auto-generated key using JPA/Hibernate using annotations</title><content type='html'>New &lt;a href="http://blog.demetrio.it/2009/04/03/one-to-one-relationship-with-auto-generated-key-using-jpahibernate-using-annotations/"&gt;post&lt;/a&gt; in my new &lt;a href="http://blog.demetrio.it/"&gt;blog&lt;/a&gt;!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Demetrio&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1939506572663687826-2306555975305480252?l=demetrio812.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.demetrio.it/2009/04/03/one-to-one-relationship-with-auto-generated-key-using-jpahibernate-using-annotations/' title='One-to-one relationship with auto-generated key using JPA/Hibernate using annotations'/><link rel='replies' type='application/atom+xml' href='http://demetrio812.blogspot.com/feeds/2306555975305480252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1939506572663687826&amp;postID=2306555975305480252' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/2306555975305480252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/2306555975305480252'/><link rel='alternate' type='text/html' href='http://demetrio812.blogspot.com/2009/04/one-to-one-relationship-with-auto.html' title='One-to-one relationship with auto-generated key using JPA/Hibernate using annotations'/><author><name>demetrio.it</name><uri>http://www.blogger.com/profile/16850243001843176521</uri><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-1939506572663687826.post-555393809714956220</id><published>2009-04-03T03:21:00.002+02:00</published><updated>2009-04-03T03:26:57.764+02:00</updated><title type='text'>Hibernate hbm2java and generated BigDecimal from MySQL decimal(10,2) type</title><content type='html'>Click on the link to read the &lt;a href="http://blog.demetrio.it/2009/02/02/hibernate-hbm2java-and-generated-bigdecimal-from-mysql-decimal102-type/"&gt;article&lt;/a&gt; in my new &lt;a href="http://blog.demetrio.it/"&gt;blog&lt;/a&gt;!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;dem&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/1939506572663687826-555393809714956220?l=demetrio812.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.demetrio.it/2009/02/02/hibernate-hbm2java-and-generated-bigdecimal-from-mysql-decimal102-type/' title='Hibernate hbm2java and generated BigDecimal from MySQL decimal(10,2) type'/><link rel='replies' type='application/atom+xml' href='http://demetrio812.blogspot.com/feeds/555393809714956220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1939506572663687826&amp;postID=555393809714956220' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/555393809714956220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/555393809714956220'/><link rel='alternate' type='text/html' href='http://demetrio812.blogspot.com/2009/04/hibernate-hbm2java-and-generated.html' title='Hibernate hbm2java and generated BigDecimal from MySQL decimal(10,2) type'/><author><name>demetrio.it</name><uri>http://www.blogger.com/profile/16850243001843176521</uri><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-1939506572663687826.post-4925845004751525302</id><published>2009-04-03T03:14:00.001+02:00</published><updated>2009-04-03T03:21:00.343+02:00</updated><title type='text'>Adding Cache support to a seam-gen generated EAR project</title><content type='html'>Check out my new &lt;a href="http://blog.demetrio.it/2009/04/03/adding-cache-support-to-a-seam-gen-generated-ear-project/"&gt;post&lt;/a&gt; on my new &lt;a href="http://blog.demetrio.it/"&gt;blog&lt;/a&gt;!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Demetrio&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1939506572663687826-4925845004751525302?l=demetrio812.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.demetrio.it/2009/04/03/adding-cache-support-to-a-seam-gen-generated-ear-project/' title='Adding Cache support to a seam-gen generated EAR project'/><link rel='replies' type='application/atom+xml' href='http://demetrio812.blogspot.com/feeds/4925845004751525302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1939506572663687826&amp;postID=4925845004751525302' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/4925845004751525302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/4925845004751525302'/><link rel='alternate' type='text/html' href='http://demetrio812.blogspot.com/2009/04/adding-cache-support-to-seam-gen.html' title='Adding Cache support to a seam-gen generated EAR project'/><author><name>demetrio.it</name><uri>http://www.blogger.com/profile/16850243001843176521</uri><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-1939506572663687826.post-3249757634110248188</id><published>2008-07-30T12:36:00.003+02:00</published><updated>2008-07-31T18:23:36.885+02:00</updated><title type='text'>La mia odissea con Areaserver (da quando è stata acquistata da Tiscali)</title><content type='html'>Salve,&lt;br /&gt;sono appena uscito (si fà per dire dato che ho dovuto spostare il mio server dedicato presso un'altra azienda, ovviamente spendendo tempo e soldi) da un incubo iniziato questo mese di luglio 2008 con il passaggio dei server di Areaserver presso Tiscali.&lt;br /&gt;&lt;br /&gt;Ecco l'email/fax/raccomandata che alla fine ho inviato per protestare e raccontare la mia storia, è importante che tutti sappiano come funziona l'assitenza di Areaserver in epoca Tiscali (ho modificato i nomi dei domini dei clienti per correttezza).&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Oggetto: &lt;span style="font-weight: bold;"&gt;COMUNICAZIONE DISSERVIZI E PREANNUNCIO DI DISDETTA SERVER DEDICATO FILOCAMO.AREASERVER.IT &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Mi chiamo Demetrio Filocamo, sono cliente di areaserver dal 2000: nel corso degli anni ho usato i vostri servizi, in particolare i server virtuali.&lt;br /&gt;Lo scorso anno ho acquistato un server dedicato e fino al passaggio a Tiscali tutto è andato bene e non ho avuto alcun problema, dopotutto l’utilizzo dello stesso era per l’hosting di siti Internet (Apache e JBoss AS), cvs e MySQL quindi nulla di particolarmente complesso.&lt;br /&gt;Nel corrente mese (&lt;span style="font-style: italic;"&gt;Luglio 2008, ndr&lt;/span&gt;), dopo il passaggio fisico dei server presso le strutture Tiscali, ho dovuto fronteggiare numerosi problemi tecnici a cui è seguita assistenza inefficace e discontinua. Il passaggio di Areaserver sotto il controllo di Tiscali è stato realizzato senza garantire la continuità del servizio, con conseguenti danni alla mia attività di business e a quella dei miei clienti.&lt;br /&gt;I primi problemi si sono presentati il 6/07/2008, data nella quale la disabilitazione temporanea del sito internet di areaserver non mi ha consentito di riavviare il server dedicato, che risultava bloccato, e di pagare l’aggiornamento del dominio xyz.org (la cui scadenza era prevista per il giorno successivo). Tra l’altro, sempre nello stesso periodo, le email inviate all’indirizzo areaserver@tiscalibusiness.it sono tornate indietro (quindi non vi sono neppure arrivate).&lt;br /&gt;&lt;br /&gt;Le e-mail scritte nel corso della giornata, per evidenziare i disagi, non hanno quindi ricevuto risposta; le informazioni ricevute nel corso delle telefonate effettuate il giorno successivo hanno evidenziato che la nuova gestione ha introdotto procedure spesso incompatibili con un servizio di business, soprattutto data la non tempestività delle risposte (che spesso impiegavano alcuni giorni ad arrivare) e il fatto che non si riesce a parlare direttamente con un tecnico ma bisogna “lasciare i dati e aspettare di essere ricontattati”: in alcuni casi ho aspettato giorni.&lt;br /&gt;&lt;br /&gt;Per un semplice riavvio ci sono voluti 2 giorni.&lt;br /&gt;&lt;br /&gt;Nonostante il 9 luglio sarebbero dovuti essere riattivati i servizi del sito (compresa la gestione e il servizio di riavvio dei server ), il 14 luglio ancora era tutto bloccato.&lt;br /&gt;&lt;br /&gt;Oltre questi problemi, nel corso del mese ho dovuto affrontarne un altro in merito alla registrazione del dominio yzx.it : il dominio è stato bloccato dal 14 luglio, e per procedere al rinnovo ho dovuto effettuare un trasferimento di dominio finalizzato a tale pagamento e ho provveduto subito a comunicarvi che era un rinnovo e non un trasferimento (ho sempre fatto questa procedura senza problemi prima che subentrasse Tiscali).&lt;br /&gt;Il 21 luglio ho inoltrato ripetute e-mail e fax per risolvere il problema del rinnovo del dominio e alla fine, dopo una settimana, il dominio è stato finalmente rinnovato. Una settimana per un rinnovo e un disservizio per il cliente (oltretutto un B&amp;amp;B che lavora proprio in questo periodo)!!&lt;br /&gt;&lt;br /&gt;Il 22 luglio credevo fosse tutto finito e invece ho dovuto nuovamente riscontrare che il server dedicato era bloccato. Ho ripetutamente inoltrato e-mail e fax al fine di ottenere una reale assistenza e informazioni circa lo stato del server, che era bloccato senza nessun motivo (non mi avete mai comunicato nulla) e non si poteva riavviare neppure dalla gestione perché quest’ultima non era funzionante (il riavvio del server dedicato dalla gestione non funziona neppure adesso mentre sto scrivendo).&lt;br /&gt;Il 23 luglio alle 12,51 era ancora bloccato!!! Nel pomeriggio “magicamente” è riapparso.&lt;br /&gt;&lt;br /&gt;Ma ovviamente non era finita qui, il 25 luglio nel pomeriggio alle ore 16,30 mi arriva una vostra telefonata che mi comunica che sono state chiuse "tutte le porte tranne la porta 22 di ssh" perché si è verificato un "attacco".&lt;br /&gt;Contemporaneamente ricevevo un'email che mi indicava quali porte fossero aperte sul server, praticamente tutte le porte che sono state aperte fin'ora da più di 6 mesi senza nessun problema, e guarda caso l' "attacco" si verifica proprio in questo periodo di passaggio.&lt;br /&gt;Comunque provo ad accedere via ssh e la porta è bloccata, comunico il fatto ma non ricevo nessuna risposta per 2 ore e 45 minuti finché non mi arriva un'altra telefonata che mi dice praticamente le stesse cose e che ci risentiamo LUNEDI'!!&lt;br /&gt;LUNEDI'??? Ma questo è un servizio BUSINESS?!?!?!?&lt;br /&gt;&lt;br /&gt;Quando dico così mi dite che il “primo tecnico di turno” avrebbe riavviato il server al più presto, peccato che alle 2 di notte di sabato 26 luglio ancora era tutto bloccato, domenica alle 1,18 di notte (grazie a voi non sto dormendo neppure la notte per lo stress e per il pensiero) per un po’ ho potuto accedere al server ma dopo più nulla, di nuovo bloccato.&lt;br /&gt;&lt;br /&gt;Arriva il lunedì (28 luglio, ricordo che il server è stato bloccato venerdì pomeriggio del 25 luglio) e ricevo una chiamata in un momento in cui parlavo con un cliente, bastava riprovare 5 minuti dopo, invece ho dovuto chiamare io il numero che mi aveva chiamato per sentirmi dire che non potete verificare le chiamate in uscita e di attendere la richiamata, alle 12,03 mi arriva una vostra email che mi dice che avete chiamato (una volta!! Non potevate richiamare dopo 10 minuti? Dovevate aspettare un’ora per mandare l’email?) e di richiamare, ho richiamato l’assistenza che mi ha detto di attendere una chiamata al più presto perché l’operatore che si occupava della pratica era “fuori” (hanno parlato addirittura di 10-15 minuti!!), ho aspettato ma invano, e così ho richiamato per l’ennesima volta, ogni volta vi ho spiegato che non accedo neppure via ssh al server quindi non posso ripristinare eventuali servizi danneggiati (ma non è chiaro neppure cosa sia stato questo “attacco” quindi in assenza di informazioni e non potendo neppure accedere al server che posso fare?).&lt;br /&gt;&lt;br /&gt;Fatto sta che alle 7,30 di pomeriggio del 28 luglio mi arriva un email dicendo che avete provato a contattarmi ma invano (se avete dubbi sulla mia reperibilità nella giornata possiamo sempre richiedere i tabulati a Wind) e che avete bisogno di sapere se ho ripristinato il funzionamento del sistema sul mio server!!! Ma se ho chiamato più volte nel pomeriggio ed ogni volta ho spiegato che NON POTEVO ACCEDERE AL SISTEMA NEPPURE VIA SSH!!! Come potevo aver ripristinato il sistema? Tutte le comunicazioni fatte nel pomeriggio a cosa sono servite?&lt;br /&gt;&lt;br /&gt;Questa non è un’assistenza seria, tra l’altro a parte il problema del server che può non essere colpa vostra ma di un “attacco” (lo dite voi ma non mi avete spiegato cosa sia successo) la cosa grave è che non mi avete neppure messo in condizione di risolvere il problema o comunque verificare cosa fosse successo. Senza contare i ritardi delle comunicazioni e delle informazioni!&lt;br /&gt;&lt;br /&gt;E arriviamo ad oggi 29 luglio 2008. Il server risulta ancora bloccato.&lt;br /&gt;&lt;br /&gt;Chiamo la mattina e mi dite che “Federico” arriva nel pomeriggio, io faccio notare che già sono passati molti giorni e non posso fare passare un’altra mattinata e mi dite che “capite” e che la priorità è alta e mi farete sapere.&lt;br /&gt;&lt;br /&gt;Aspetto ma fino alle 15:00 non ricevo nessuna telefonata, allora chiamo io per l’ennesima volta.&lt;br /&gt;&lt;br /&gt;Risponde Simona che mi dice che loro fanno solo da “tramite” con il supporto di secondo livello che ha comunicato che il problema non dipende da voi ma da me perché ho subito degli “attacchi”.&lt;br /&gt;&lt;br /&gt;Premesso che con la stessa configurazione dal 1 ottobre scorso, data di attivazione del server dedicato, non ho MAI, e ripeto MAI, subito un blocco, MAI, ripeto MAI, un problema, ora invece dopo i ripetuti problemi ricevo pure un “attacco” (guarda caso tutto dopo il trasferimento dei server presso Tiscali), e quindi è colpa mia. Non mi avete detto cosa può essere successo, avete bloccato tutte le porte e non solo quelle “attaccate” e comunque non avete dimostrato la volontà di voler risolvere un problema di un vostro cliente. Inoltre se il terminale era bloccato come faccio a sapere cosa sia successo e a ripristinare e/o modificare i servizi??&lt;br /&gt;&lt;br /&gt;Simona mi dice che il supporto di secondo livello conferma che la porta 22 è aperta ma io in tempo reale confermo che NON E’ COSI’, allora lei mi dice che le comunicano che posso anche usare la porta xxx per connettermi, e me lo dite solo adesso?!?!?!?!?!!?!?&lt;br /&gt;&lt;br /&gt;A questo punto, come ho spiegato a Simona, non sto usufruendo del servizio e voglio rescindere dal contratto, mi state facendo perdere troppi soldi e tempo! Quindi potete anche evitare di risolvere il problema...&lt;br /&gt;&lt;br /&gt;Alle 18,21 ricevo un’email in cui mi dite che “le porte del server sono state bloccate in quanto, essendo stato attaccato e bucato il server, stavano creando problemi molto seri a i sistemi e al gateway stesso su cui escono altre decine di server” (questa è la serietà del vostro servizio? Un altro server può creare questo tipo di problemi al mio? Mah…)&lt;br /&gt;&lt;br /&gt;Inoltre mi dite che “Naturalmente prima di avere subito questo attacco non era stato necessario bloccare nessuna porta in quanto non vi era nessuna emergenza e nessuna minaccia verso i sistemi.”&lt;br /&gt;&lt;br /&gt;Che cosa significa secondo voi questa frase? Devo bloccare qualche porta? Non mi avete specificato che porte bloccare e perché, non ho potuto effettuare nessun ripristino lato cliente perché non avevo accesso via SSH, ma poi se non mi avete spiegato bene cosa sia successo come faccio a capire che interventi devo effettuare?&lt;br /&gt;&lt;br /&gt;Inoltre il server fin'ora ha sempre funzionato quindi per quanto mi riguardo potrebbe anche essere un problema della vostra rete, ma poi quali porte devo bloccare?!?! e perché le devo bloccare? la porta 80 ha subito un attacco? se no perché l'avete bloccata?&lt;br /&gt;&lt;br /&gt;Non mi avete mai spiegato, fino a questo momento, cos'è stato questo attacco, non solo non mi avete detto quali servizi sono stati attaccati in particolare.&lt;br /&gt;&lt;br /&gt;Poi se un attacco genera questo tipo di problemi vi ritenete affidabili? Io non posso rischiare che per un non bene specificato attacco mi vengano chiusi tutti i servizi e mi venga detto di effettuare un "ripristino" senza spiegarmi in particolare cosa sia successo.&lt;br /&gt;&lt;br /&gt;Alle 19,28, guarda caso le comunicazioni aumentano solo dopo 4 giorni dal blocco e dopo le mie ripetute proteste, arriva un risposta da voi in cui mi dite che la porta 22 è sbloccata ma “filtrata solo per un IP sul mio firewall” (mai impostata) e che “voi non potete saperlo” (non mi dite che non avete accesso alla mia macchina perché non ci credo). Inoltre mi dite che è stato individuato traffico UDP in uscita verso un indirizzo ma ancora mancano informazioni importanti per individuare il problema quali ad esempio la porta.&lt;br /&gt;&lt;br /&gt;Un’altra cosa strana è che io ho avuto accesso alla porta 22 nella giornata di domenica e quindi domenica avrei dovuto subire un altro “attacco” che ha cambiato le regole del firewall, il che mi sembra una cosa più che strana.&lt;br /&gt;&lt;br /&gt;Il quadro risulta comunque incompleto e le informazioni arrivano a pezzettini: solo oggi, dopo 4 giorni dal blocco, ho potuto sapere che la porta xxx era aperta per accedere al server via SSH e solo oggi ho avuto qualche informazione in più relative al famigerato attacco che ha rischiato di distruggere la vostra rete (mah!).&lt;br /&gt;&lt;br /&gt;Da quanto ho capito dopo aver rivisto le regole del firewall faremo la “prova” per vedere se regge, è questo un servizio serio? Che dovrei dire ai miei clienti? Che sto facendo “le prove”?&lt;br /&gt;&lt;br /&gt;Ho dovuto acquistare un altro server dedicato presso un'azienda più seria. Cosa me ne faccio adesso del server? Giusto per perdere altro tempo, come se ne avessi perso poco fin'ora...per non parlare dei soldi e dell’immagine persi in sole 2 settimane.&lt;br /&gt;&lt;br /&gt;Manderò al più presto una raccomandata per la disdetta del servizio, riservandomi di quantificare i danni dovuti ai vostri ritardi nelle comunicazioni che mi hanno procurato più di un problema.&lt;br /&gt;&lt;br /&gt;Inoltre state sicuri che farò molta pubblicità ai vostri servizi BUSINESS (&lt;span style="font-style: italic;"&gt;come promesso :), ndr&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;Potete capire quali e quanti disservizi mi avete creato in questo mese, dopo il passaggio dei server presso Tiscali.&lt;br /&gt;&lt;br /&gt;Da quest’esperienza ho anche capito quanto poco siate interessati a risolvere i problemi dei clienti e quanto siate poco affidabili.&lt;br /&gt;&lt;br /&gt;Qualora ne abbiate bisogno, posso inviarvi la documentazione stampata delle email e dei fax inviati. Purtroppo mancano le telefonate, ma si capisce comunque la mole di richieste da me effettuate e le poche risposte da voi pervenute.&lt;br /&gt;&lt;br /&gt;Utilizzo servizi di Areaserver dal 2000, siete riusciti a rovinare un’azienda seria, complimenti!!&lt;br /&gt;&lt;br /&gt;Reggio Calabria, 29 luglio 2008&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                Demetrio Filocamo&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Aggiornamento&lt;/span&gt;: il 30 pomeriggio mi scrivono dicendomi che "&lt;span style="font-style: italic;"&gt;Si puntualizza il fatto che la macchina non è stata vittima di un attacco ma, al contrario, è dalla macchina del cliente che sono partiti gli attacchi (la prima volta verso  l'ip xxxx, la seconda verso l'ip yyyy). In questi casi solitamente la causa del problema è da ricercarsi in software bacato installato sul server e nella maggior parte delle casistiche la violazione avviene tramite la porta 80.&lt;/span&gt;"!!&lt;br /&gt;&lt;br /&gt;Questa motivazione "nel dettaglio" me la danno solo il giorno 30 (dal 25) e dopo avermi più volte scritto via email che "il server ha subito un attacco" mentre quello che dicono adesso è l'opposto...praticamente non solo non mi hanno aiutato a risolvere il problema ma non mi hanno neppure messo in condizioni di risolverlo per conto mio non avendomi dato le informazioni necessarie, e quelle poche date in maniera sbagliata e fuorviante!!&lt;br /&gt;&lt;br /&gt;Poi continuano con il discorso che la porta 22 è filtrata da venerdì ma non può essere assolutamente dato che domenica mi sono collegato...&lt;br /&gt;&lt;br /&gt;Senza parole :-|&lt;br /&gt;&lt;br /&gt;Demetrio&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1939506572663687826-3249757634110248188?l=demetrio812.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://demetrio812.blogspot.com/feeds/3249757634110248188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1939506572663687826&amp;postID=3249757634110248188' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/3249757634110248188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/3249757634110248188'/><link rel='alternate' type='text/html' href='http://demetrio812.blogspot.com/2008/07/la-mia-odissea-con-areaserver-da-quando.html' title='La mia odissea con Areaserver (da quando è stata acquistata da Tiscali)'/><author><name>demetrio.it</name><uri>http://www.blogger.com/profile/16850243001843176521</uri><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>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1939506572663687826.post-7725292978876128</id><published>2007-10-13T20:38:00.001+02:00</published><updated>2008-07-06T15:52:55.635+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java cdk richfaces skypecall howto jsf component'/><title type='text'>Creating a JSF component using RichFaces CDK</title><content type='html'>&lt;p&gt;Hi,&lt;br /&gt;this time I will explain how to create a simple output component using the Ajax4Jsf/Richfaces CDK framework.&lt;/p&gt;&lt;p&gt; CDK is a framework that simplifies the JSF component creation process so you can concentrate on developing the component functionalities instead of thinking to all the boiler code that this kind of work need.  &lt;/p&gt;&lt;p&gt;There isn't an official manual on how to use it (it's still on development) so you have to look on richfaces forum and wiki, and some article you can find on net (see the links at the end of this post).  &lt;/p&gt;&lt;p&gt;Before starting I want to point that I'm learning this stuff too and I'm not an expert on jsf component making and I'm still learning. Every suggestion is welcome.  &lt;/p&gt;&lt;p&gt;Also you have to assure to have &lt;a href="http://maven.apache.org/"&gt;maven&lt;/a&gt; installed and working on your system, you have also to configure it for Ajax4Jsf/RichFaces CDK as it is written &lt;a href="http://labs.jboss.com/wiki/Ajax4jsfMaven"&gt;here&lt;/a&gt;.  &lt;/p&gt;&lt;p&gt;We are going to make a &lt;span style="font-style: italic;"&gt;skypecall&lt;/span&gt; component: it insert a link that permit to call a person from the web page via skype. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Let's start! &lt;/strong&gt;&lt;/p&gt;&lt;p&gt;First of all create a new directory to start from (use a short and without space path);  &lt;/p&gt;&lt;p&gt;After that create a file named &lt;span style="font-style: italic;"&gt;pom.xml&lt;/span&gt; and put this content (modify values with your data if you want):  &lt;/p&gt;   &lt;pre&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;?xml version=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"1.0" &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;encoding=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"UTF-8"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;project xmlns=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"http://maven.apache.org/POM/4.0.0" &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;xmlns:xsi=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"http://www.w3.org/2001/XMLSchema-instance" &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;xsi:schemaLocation=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;modelVersion&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;4.0.0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;/modelVersion&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;groupId&amp;gt;it.novaware&amp;lt;/groupId&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;artifactId&amp;gt;ui&amp;lt;/artifactId&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;url&amp;gt;http:&lt;/span&gt;&lt;span style="color: rgb(63, 127, 95);"&gt;//www.novaware.it&amp;lt;/url&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;1.0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;-SNAPSHOT&amp;lt;/version&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;packaging&amp;gt;pom&amp;lt;/packaging&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;name&amp;gt;Novaware JSF components library&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    &amp;lt;dependencies&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        &amp;lt;dependency&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;            &amp;lt;groupId&amp;gt;javax.servlet&amp;lt;/groupId&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;            &amp;lt;artifactId&amp;gt;servlet-api&amp;lt;/artifactId&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;            &amp;lt;version&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;2.4&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;            &amp;lt;scope&amp;gt;provided&amp;lt;/scope&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        &amp;lt;/dependency&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        &amp;lt;dependency&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;            &amp;lt;groupId&amp;gt;javax.servlet&amp;lt;/groupId&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;            &amp;lt;artifactId&amp;gt;jsp-api&amp;lt;/artifactId&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;            &amp;lt;version&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;2.0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;            &amp;lt;scope&amp;gt;provided&amp;lt;/scope&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        &amp;lt;/dependency&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    &amp;lt;/dependencies&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    &amp;lt;modules&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    &amp;lt;/modules&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;/project&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Now open a shell, go in the root directory and execute this command: &lt;/p&gt;&lt;pre&gt;mvn archetype:create -DarchetypeGroupId=org.richfaces.cdk -DarchetypeArtifactId=maven-archetype-jsf-component -DarchetypeVersion=3.1.5-GA -DgroupId=it.novaware -DartifactId=skypecall&lt;/pre&gt;with &lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;skypecall&lt;/span&gt;&lt;/span&gt; as the name of your component.&lt;br /&gt;&lt;br /&gt;In the new generated directory there is a &lt;span style="font-style: italic;"&gt;pom.xml&lt;/span&gt; file. Open it and add this code after the &lt;em&gt;&amp;lt;/build&amp;gt;&lt;/em&gt; tag:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;dependencies&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;groupid&amp;gt;junit&amp;lt;/groupid&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;artifactid&amp;gt;junit&amp;lt;/artifactid&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;3.8.1&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;groupid&amp;gt;org.richfaces.framework&amp;lt;/groupid&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;artifactid&amp;gt;richfaces-impl&amp;lt;/artifactid&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;3.1.1&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;-GA&amp;lt;/version&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;/dependencies&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;Using the shell, enter in the new directory (&lt;span style="font-style: italic;"&gt;cd skypecall&lt;/span&gt;)&lt;span style="font-style: italic;"&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Execute this command to create the new component structure:&lt;br /&gt;&lt;pre&gt;mvn cdk:create -Dname=skypecall&lt;/pre&gt;Now you can try it compiling it and making the jar:&lt;br /&gt;&lt;pre&gt;mvn install&lt;/pre&gt;&lt;p&gt;(To clean the build you can execute: mvn clean) &lt;/p&gt;&lt;p&gt;&lt;span style="font-style: italic;"&gt;Mvn install&lt;/span&gt; must say &lt;em&gt;BUILD SUCCESSFUL&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Now we are ready to personalize the new component!  &lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Go in the generated &lt;em&gt;src/main&lt;/em&gt; directory of skypecall directory: you will find 4 new subfolders with generated files.  &lt;/p&gt;&lt;p&gt;Let's start from the config: edit the &lt;span style="font-style: italic;"&gt;skypecall/src/main/config/component/skypecall.xml&lt;/span&gt; file to insert the component attributes. We are going to insert 5 attributes:&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;img&lt;/strong&gt;: the kind of image to insert. You can use the "&lt;em&gt;default&lt;/em&gt;" value to show the default image (see color and size attributes),&lt;br /&gt;the "&lt;em&gt;none&lt;/em&gt;" value to show no image, or directly put the &lt;em&gt;URL&lt;/em&gt; to show the image you like. So possible value are: &lt;em&gt;default, none, url_of_image&lt;/em&gt;. Default is "&lt;em&gt;default&lt;/em&gt;".&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;color&lt;/strong&gt;: the color of the default image. It works if "&lt;em&gt;image&lt;/em&gt;" attribute is "&lt;em&gt;default&lt;/em&gt;". It can be "&lt;em&gt;green&lt;/em&gt;" or "&lt;em&gt;blue&lt;/em&gt;". Default is "&lt;em&gt;blue&lt;/em&gt;".&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;size&lt;/strong&gt;: the size of the default image. It works if "&lt;em&gt;image&lt;/em&gt;" attribute is "&lt;em&gt;default&lt;/em&gt;". Possible values are:&lt;em&gt; small, medium, big&lt;/em&gt;. Default is "&lt;em&gt;medium&lt;/em&gt;".&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;number&lt;/strong&gt;: skype number to call. Default is &lt;em&gt;null&lt;/em&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;type&lt;/strong&gt;: the type of skype link to create. Possible values are: &lt;em&gt;call, chat, voicemail, add, userinfo, sendfile&lt;/em&gt;. Default is &lt;em&gt;call&lt;/em&gt;.    &lt;/li&gt;&lt;/ol&gt;&lt;p&gt;So the final code of &lt;em&gt;skypecall.xml&lt;/em&gt; is:&lt;/p&gt;&lt;pre&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE components PUBLIC "-//AJAX4JSF//CDK Generator config/EN"  "https://ajax4jsf.dev.java.net/nonav/dtds/component-config.dtd" &amp;gt;&lt;br /&gt;&amp;lt;components&amp;gt;&lt;br /&gt;&amp;lt;component&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;org.richfaces.Skypecall&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;family&amp;gt;org.richfaces.Skypecall&amp;lt;/family&amp;gt;&lt;br /&gt;&amp;lt;classname&amp;gt;org.richfaces.component.html.HtmlSkypecall&amp;lt;/classname&amp;gt;&lt;br /&gt;&amp;lt;superclass&amp;gt;org.richfaces.component.UISkypecall&amp;lt;/superclass&amp;gt;&lt;br /&gt;&amp;lt;description&amp;gt;&lt;br /&gt;&amp;lt;![CDATA[&lt;br /&gt;A component that insert a link that permit to call a person from the web via skype.&lt;br /&gt;]]&amp;gt;&lt;br /&gt;&amp;lt;/description&amp;gt;&lt;br /&gt;&amp;lt;renderer generate="true" override="true"&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;org.richfaces.SkypecallRenderer&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;template&amp;gt;org/richfaces/htmlSkypecall.jspx&amp;lt;/template&amp;gt;&lt;br /&gt;&amp;lt;/renderer&amp;gt;&lt;br /&gt;&amp;lt;tag&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;skypecall&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;classname&amp;gt;org.richfaces.taglib.SkypecallTag&amp;lt;/classname&amp;gt;&lt;br /&gt;&amp;lt;superclass&amp;gt;&lt;br /&gt;org.ajax4jsf.webapp.taglib.HtmlComponentTagBase&lt;br /&gt;&amp;lt;/superclass&amp;gt;&lt;br /&gt;&amp;lt;/tag&amp;gt;&lt;br /&gt;&amp;lt;!--&lt;br /&gt;&amp;lt;taghandler&amp;gt;&lt;br /&gt;&amp;lt;classname&amp;gt;org.ajax4jsf.tag.TestHandler&amp;lt;/classname&amp;gt;&lt;br /&gt;&amp;lt;/taghandler&amp;gt;&lt;br /&gt;--&amp;gt;&lt;br /&gt;&amp;amp;ui_component_attributes;&lt;br /&gt;&amp;amp;html_events;&lt;br /&gt;&amp;amp;html_style_attributes;&lt;br /&gt;&amp;lt;property&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;img&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;classname&amp;gt;java.lang.String&amp;lt;/classname&amp;gt;&lt;br /&gt;&amp;lt;description&amp;gt;The kind of image to insert. You can use the "default" value to show the default image (see color and size attributes),&lt;br /&gt;the "none" value to show no image, or directly put the URL to show the image you like. So possible value are: default, none, url_of_image. Default is "default".&lt;br /&gt;&amp;lt;/description&amp;gt;&lt;br /&gt;&amp;lt;defaultvalue&amp;gt;"default"&amp;lt;/defaultvalue&amp;gt;&lt;br /&gt;&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;property&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;color&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;classname&amp;gt;java.lang.String&amp;lt;/classname&amp;gt;&lt;br /&gt;&amp;lt;description&amp;gt;The color of the default image. It works if "image" attribute is "default". It can be "green" or "blue". Default is "blue".&lt;br /&gt;&amp;lt;/description&amp;gt;&lt;br /&gt;&amp;lt;defaultvalue&amp;gt;"blue"&amp;lt;/defaultvalue&amp;gt;&lt;br /&gt;&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;property&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;size&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;classname&amp;gt;java.lang.String&amp;lt;/classname&amp;gt;&lt;br /&gt;&amp;lt;description&amp;gt;The size of the default image. It works if "image" attribute is "default". Possible values are: small, medium, big. Default is "medium".&lt;br /&gt;&amp;lt;/description&amp;gt;&lt;br /&gt;&amp;lt;defaultvalue&amp;gt;"medium"&amp;lt;/defaultvalue&amp;gt;&lt;br /&gt;&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;property&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;number&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;classname&amp;gt;java.lang.String&amp;lt;/classname&amp;gt;&lt;br /&gt;&amp;lt;description&amp;gt;Skype number to call. Default is null.&lt;br /&gt;&amp;lt;/description&amp;gt;&lt;br /&gt;&amp;lt;defaultvalue&amp;gt;""&amp;lt;/defaultvalue&amp;gt;&lt;br /&gt;&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;property&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;type&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;classname&amp;gt;java.lang.String&amp;lt;/classname&amp;gt;&lt;br /&gt;&amp;lt;description&amp;gt;The type of skype link to create. Possible values are: call, chat, voicemail, add, userinfo, sendfile. Default is call.&lt;br /&gt;&amp;lt;/description&amp;gt;&lt;br /&gt;&amp;lt;defaultvalue&amp;gt;"call"&amp;lt;/defaultvalue&amp;gt;&lt;br /&gt;&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;!--&lt;br /&gt;&amp;lt;property&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;param&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;classname&amp;gt;java.lang.String&amp;lt;/classname&amp;gt;&lt;br /&gt;&amp;lt;description&amp;gt;&lt;br /&gt;&amp;lt;/description&amp;gt;&lt;br /&gt;&amp;lt;defaultvalue&amp;gt;"default"&amp;lt;/defaultvalue&amp;gt;&lt;br /&gt;&amp;lt;/property&amp;gt;&lt;br /&gt;--&amp;gt;&lt;br /&gt;&amp;lt;/component&amp;gt;&lt;br /&gt;&amp;lt;/components&amp;gt; &lt;/pre&gt;&lt;p&gt;Now we have to modify the jspx template that will generate the renderer, edit &lt;em&gt;src/main/templates/it/novaware/htmlSkypecall.jspx&lt;/em&gt;, it might look like that:&lt;/p&gt;   &lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;?xml version=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"1.0" &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;encoding=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"UTF-8"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;f:root &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    xmlns:f=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"http://ajax4jsf.org/cdk/template" &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    xmlns:c=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;" http://java.sun.com/jsf/core" &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    xmlns:ui=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;" http://ajax4jsf.org/cdk/ui"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    xmlns:u=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;" http://ajax4jsf.org/cdk/u"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    xmlns:x=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;" http://ajax4jsf.org/cdk/x"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;&lt;b&gt;    class&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"it.novaware.renderkit.html.SkypecallRenderer"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    baseclass=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"org.ajax4jsf.renderkit.AjaxComponentRendererBase"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    component=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"it.novaware.component.UISkypecall" &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    &amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    &amp;lt;f:clientid var=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"clientId"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt; &lt;/span&gt;&lt;span class="style1"&gt; &lt;/span&gt;&lt;span class="style1"&gt;    &amp;lt;!--&lt;br /&gt;  I can't use &lt;b&gt;this &lt;/b&gt;because I can't use parameter inside the name attribute&lt;br /&gt;  &amp;lt;f:resource var="skypeImage2" name="/images/green-medium.png" /&amp;gt;--&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        &amp;lt;jsp:scriptlet&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;     &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        &amp;lt;!&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;CDATA&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;[&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;       &lt;/span&gt;&lt;span style="color: rgb(63, 127, 95);"&gt;            /* See what I have to do with internal image */&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;       &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;            String skypeImage = &lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;       &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;            String image=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;) &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;component.getAttributes&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.get&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"img"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;       &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;       &lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;&lt;b&gt;            if &lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;image.compareToIgnoreCase&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"default"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;==&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(63, 127, 95);"&gt;                /* dynamically compose the default image name */ &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;                skypeImage = getResource&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;( &lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"images/"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;component.getAttributes&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.get&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"color"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"-"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;component.getAttributes&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.get&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"size"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;".png" &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.getUri&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;context, component&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;      &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;            } &lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;&lt;b&gt;else if &lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;image.compareToIgnoreCase&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"none"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;==&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;          &lt;/span&gt;&lt;span style="color: rgb(63, 127, 95);"&gt;                /* skypeImage stays null */&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;      &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;            } &lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;&lt;b&gt;else &lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(63, 127, 95);"&gt;                /* put the url of the image */&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;                skypeImage=image;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;      &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;            }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;      &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;      &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;            variables.setVariable&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"skypeImage"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,skypeImage&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        ]]&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;     &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        &amp;lt;/jsp:scriptlet&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    &amp;lt;a id=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"#{clientId}"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        name=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"#{clientId}"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        x:passThruWithExclusions=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"value,name,type,id,number,size,color"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        href=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"skype:#{component.attributes['number']}?#{component.attributes['type']}"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        &amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        &amp;lt;jsp:scriptlet&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;     &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        &amp;lt;!&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;CDATA&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;[&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;       &lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;&lt;b&gt;            if &lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;variables.getVariable&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"skypeImage"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;!=&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;     &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        ]]&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        &amp;lt;/jsp:scriptlet&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;      &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;            &amp;lt;img src=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"#{skypeImage}" &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;border=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"0"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        &amp;lt;jsp:scriptlet&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;     &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        &amp;lt;!&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;CDATA&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;[&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;       &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;            }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;     &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        ]]&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        &amp;lt;/jsp:scriptlet&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        &amp;lt;vcp:body&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;                  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;f:call name=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"renderChildren" &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        &amp;lt;/vcp:body&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    &amp;lt;/a&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;/f:root&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;   &lt;p&gt;Notice that I have to point a dynamic named image (it is composed by the color and the size, look at the code) so I can't use the &lt;em&gt;f:resource&lt;/em&gt; tag and I have to use a scriptlet. &lt;/p&gt;I also called &lt;span style="font-style: italic;"&gt;renderChilder &lt;/span&gt;using the &lt;span style="font-style: italic;"&gt;f:call&lt;/span&gt; tag to be able to put other components inside the skypecall &lt;span style="font-style: italic;"&gt;anchor &lt;/span&gt;tag.&lt;br /&gt;&lt;p&gt;I think that it is clear what the code do: if the &lt;em&gt;img&lt;/em&gt; attribute of the component is none it doesn't put the &lt;em&gt;img&lt;/em&gt; tag; if it is &lt;em&gt;default&lt;/em&gt; or omitted it uses the &lt;em&gt;color&lt;/em&gt; and&lt;em&gt; size&lt;/em&gt; attribute to find a default image (that we'll copy in the resource directory in the next final step); if not it uses the passed value as URL for the &lt;em&gt;src&lt;/em&gt; attribute of the &lt;em&gt;img &lt;/em&gt;tag.&lt;/p&gt;   &lt;p&gt;As I said, the final step is to copy the resources images in the appropriate directory so go to &lt;em&gt;skypecall/src/main/resources&lt;/em&gt; and insert the &lt;em&gt;it&lt;/em&gt;/&lt;em&gt;novaware/renderkit/html/images &lt;/em&gt;directories: go inside and copy the default image files that you can find &lt;a href="http://www.demetrio.it/files/cdk_skypecall/images.zip"&gt;here&lt;/a&gt;. &lt;/p&gt;   &lt;p&gt;&lt;strong&gt;You have finished! &lt;/strong&gt;&lt;/p&gt;   &lt;p&gt;After that you can come back to your shell at &lt;em&gt;skypecallskypecall directory and launch &lt;/em&gt;mvn install.&lt;/p&gt;   &lt;p&gt;&lt;strong&gt;Let's try it!&lt;/strong&gt;&lt;/p&gt;   &lt;p&gt;If you look inside the generated&lt;em&gt;skypecall/target&lt;/em&gt; directory you will find a jar library called &lt;em&gt;skypecall-1.0-SNAPSHOT.jar&lt;/em&gt;: you have to copy it in the &lt;em&gt;WEB-INF/lib&lt;/em&gt;directory of your project.&lt;/p&gt;   &lt;p&gt;To use it in an xhtml page just use the following namespace:&lt;/p&gt;   &lt;pre&gt;http://www.novaware.it/skypecall&lt;/pre&gt; So if you are using Facelets add:&lt;br /&gt;&lt;pre&gt;&amp;lt;xmlns:nw="http://www.novaware.it/skypecall"&amp;gt;&lt;br /&gt;&lt;/pre&gt;If you are using JSP add:&lt;br /&gt;&lt;pre&gt;&amp;lt;%@ taglib uri="http://www.novaware.it/skypecall" prefix="nw"%&amp;gt;&lt;br /&gt;&lt;/pre&gt;to each page that uses the component.&lt;br /&gt;&lt;p&gt;Here some example of use:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;nw:skypecall img=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"default" &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;color=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"blue" &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;number=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"echo123" &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;type=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"call" &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;size=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"small" &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;&amp;lt;/nw:skypecall&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;nw:skypecall size=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"big" &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;color=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"green" &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;number=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"echo123" &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;&amp;lt;/nw:skypecall&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;nw:skypecall size=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"medium" &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;color=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"green" &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;number=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"echo123" &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;&amp;lt;/nw:skypecall&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;nw:skypecall img=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"default" &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;color=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"green" &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;number=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"echo123" &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;type=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"call" &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;size=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"small" &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;&amp;lt;/nw:skypecall&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;nw:skypecall img=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"none" &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;number=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"echo123" &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;type=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"call" &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;call me!&amp;lt;/nw:skypecall&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;That would produce the following:&lt;br /&gt;&lt;p&gt;&lt;img src="http://www.demetrio.it/files/cdk_skypecall/skypecall_screenshot.gif" style="border: 1px solid black;" /&gt;&lt;/p&gt;&lt;br /&gt;Use can also download the source files from &lt;a href="http://www.demetrio.it/files/cdk_skypecall/skypecall-src.zip"&gt;here&lt;/a&gt; and the compiled library from &lt;a href="http://www.demetrio.it/files/cdk_skypecall/skypecall-1.0-SNAPSHOT.jar"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Here some &lt;span style="font-weight: bold;"&gt;links &lt;/span&gt;you can start from:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a target="_blank" href="http://labs.jboss.com/wiki/Ajax4jsfCDK"&gt;The Ajax4jsf Component Developer Kit&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_blank" href="http://pmuir.bleepbleep.org.uk/2007/04/porting-seam-jsf-controls-to-a4js-cdk.html"&gt;Porting the Seam JSF controls to A4J's CDK&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;As I said, every suggestion is welcome!!&lt;br /&gt;&lt;br /&gt;Demetrio&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1939506572663687826-7725292978876128?l=demetrio812.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://demetrio812.blogspot.com/feeds/7725292978876128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1939506572663687826&amp;postID=7725292978876128' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/7725292978876128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/7725292978876128'/><link rel='alternate' type='text/html' href='http://demetrio812.blogspot.com/2007/10/creating-jsf-component-using-richfaces.html' title='Creating a JSF component using RichFaces CDK'/><author><name>demetrio.it</name><uri>http://www.blogger.com/profile/16850243001843176521</uri><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>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1939506572663687826.post-125942459563372531</id><published>2007-10-03T21:11:00.000+02:00</published><updated>2007-10-03T21:57:01.922+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='install howto &quot;jboss as&quot; jboss debian system init linux'/><title type='text'>Install JBoss AS 4.2.1.GA on Debian</title><content type='html'>Hi,&lt;br /&gt;I just got a new server and I installed Debian Linux. I wanted to install JBoss AS 4.2.1.GA and it's really simple: just download the file, unzip, copy in /usr/local, make jboss user, and chown the jboss directory and it's subdirectories (you can find a good explanation &lt;a href="http://www.debian-administration.org/users/andershedstrom/weblog/2"&gt;here&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;After that I wanted to use the jboss_init_redhat.sh script to automatically starts the server as service, so I just had to modify a little bit the file:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;I wanted to bind the server to an ip address so before the JBOSS_BIND_ADDR I added the following line (XX.XX.XX.XX is the server address):&lt;br /&gt;&lt;pre&gt;JBOSS_HOST=${JBOSS_HOST:-"XX.XX.XX.XX"}&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Coz of an error running the script I had to modify the SUBIT variable adding the &lt;span style="font-style: italic;"&gt;--preserve-environment&lt;/span&gt; option, so the line now look like that:&lt;br /&gt;&lt;pre&gt;SUBIT="su - $JBOSS_USER --preserve-environment -c "&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Because of a bug of JBoss I had to modify the stop script adding the bind address and the port of JNP server, so the JBOSS_CMD_STOP now look like this:&lt;br /&gt;&lt;pre&gt;JBOSS_CMD_STOP=${JBOSS_CMD_STOP:-"java -classpath $JBOSSCP org.jboss.Shutdown --shutdown -s $JBOSS_HOST:1099"}&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;After that, to install the script as a service do that:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Copy the &lt;span style="font-style: italic;"&gt;jboss_init_redhat.sh&lt;/span&gt; script to /etc/init.d/ directory;&lt;/li&gt;&lt;li&gt;Esecute the following command: &lt;pre&gt;update-rc.d jboss_init_redhat.sh defaults&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;The output of the last command is:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt; Adding system startup for /etc/init.d/jboss_init_redhat.sh ...&lt;br /&gt;   /etc/rc0.d/K20jboss_init_redhat.sh -&gt; ../init.d/jboss_init_redhat.sh&lt;br /&gt;   /etc/rc1.d/K20jboss_init_redhat.sh -&gt; ../init.d/jboss_init_redhat.sh&lt;br /&gt;   /etc/rc6.d/K20jboss_init_redhat.sh -&gt; ../init.d/jboss_init_redhat.sh&lt;br /&gt;   /etc/rc2.d/S20jboss_init_redhat.sh -&gt; ../init.d/jboss_init_redhat.sh&lt;br /&gt;   /etc/rc3.d/S20jboss_init_redhat.sh -&gt; ../init.d/jboss_init_redhat.sh&lt;br /&gt;   /etc/rc4.d/S20jboss_init_redhat.sh -&gt; ../init.d/jboss_init_redhat.sh&lt;br /&gt;   /etc/rc5.d/S20jboss_init_redhat.sh -&gt; ../init.d/jboss_init_redhat.sh&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;It means that the command added the script as startup script for all the defaults runlevels.&lt;br /&gt;&lt;br /&gt;You can find more informations about System V Init (Unix systems init) functionalities &lt;a href="http://www.debian.org/doc/manuals/reference/ch-system.en.html#s-init"&gt;here&lt;/a&gt; and &lt;a href="http://www.debian.org/doc/debian-policy/ch-opersys#s-sysvinit"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Demetrio&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1939506572663687826-125942459563372531?l=demetrio812.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://demetrio812.blogspot.com/feeds/125942459563372531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1939506572663687826&amp;postID=125942459563372531' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/125942459563372531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/125942459563372531'/><link rel='alternate' type='text/html' href='http://demetrio812.blogspot.com/2007/10/install-jboss-as-421ga-on-debian.html' title='Install JBoss AS 4.2.1.GA on Debian'/><author><name>demetrio.it</name><uri>http://www.blogger.com/profile/16850243001843176521</uri><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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1939506572663687826.post-3181219411495848390</id><published>2007-09-13T15:22:00.000+02:00</published><updated>2007-09-26T11:04:35.958+02:00</updated><title type='text'>Upgrade RichFaces library from 3.0.X to 3.1.0 in a seam-gen generated project</title><content type='html'>Hi,&lt;br /&gt;to upgrade a seam-gen generated project to the new RichFaces version (&lt;a href="http://livedemo.exadel.com/richfaces-demo/"&gt;here&lt;/a&gt; the demo) you have to modify the build.xml file.&lt;br /&gt;&lt;br /&gt;Here the steps:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Download the latest version of RichFaces library (3.1.0) from &lt;a href="http://labs.jboss.com/jbossrichfaces/downloads"&gt;here&lt;/a&gt;;&lt;/li&gt;&lt;li&gt;Delete ajax4jsf*.jar and richfaces*.jar in the project lib directory;&lt;/li&gt;&lt;li&gt;Copy the new richfaces jars to the project lib directory (those are 3 jar files: api, impl and ui)&lt;/li&gt;&lt;li&gt;Open build.xml of the project&lt;/li&gt;&lt;li&gt;In the &lt;span style="font-weight: bold;"&gt;war&lt;/span&gt; target, delete the following 2 lines:&lt;br /&gt;&amp;lt;include name="ajax4jsf*.jar" /&amp;gt;&lt;br /&gt;&amp;lt;include name="richfaces*.jar" /&amp;gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;At the same place put those lines:&lt;br /&gt;&amp;lt;include name="richfaces-impl*.jar" /&amp;gt;&lt;br /&gt;&amp;lt;include name="richfaces-ui*.jar" /&amp;gt;&lt;/li&gt;&lt;li&gt;Staying in build-xml, go to &lt;span style="font-weight: bold;"&gt;ear&lt;/span&gt; target and put this line inside the &amp;lt;fileset dir="${basedir}"&amp;gt; tag:&lt;br /&gt;&amp;lt;include name="richfaces-api*.jar" /&amp;gt;&lt;/li&gt;&lt;/ol&gt;You are done, execute &lt;span style="font-style: italic; font-weight: bold;"&gt;ant clean&lt;/span&gt; and redeploy the project :)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Update: &lt;/span&gt;there are some problems with page parameter propagation with Seam and RichFaces 3.1.0.GA. This has been fixed in RichFaces 3.1.1 snapshots since 18/09/2007. The RichFaces snapshot distributed with Seam 2.0.0.CR1 is also the fixed version.&lt;br /&gt;&lt;br /&gt;Demetrio&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1939506572663687826-3181219411495848390?l=demetrio812.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://demetrio812.blogspot.com/feeds/3181219411495848390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1939506572663687826&amp;postID=3181219411495848390' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/3181219411495848390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/3181219411495848390'/><link rel='alternate' type='text/html' href='http://demetrio812.blogspot.com/2007/09/upgrade-richfaces-library-from-30x-to.html' title='Upgrade RichFaces library from 3.0.X to 3.1.0 in a seam-gen generated project'/><author><name>demetrio.it</name><uri>http://www.blogger.com/profile/16850243001843176521</uri><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>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1939506572663687826.post-3894104091502397736</id><published>2007-09-05T13:57:00.000+02:00</published><updated>2007-09-05T14:01:21.421+02:00</updated><title type='text'>Exception sending context initialized event to listener instance of class com.sun.faces.config.ConfigureListener</title><content type='html'>I got this exception moving a (working) web application from Tomcat to JBoss AS 4.2.1.GA.&lt;br /&gt;&lt;br /&gt;The problem is caused by different version of JSF library so I resolved the problem just removing some jars from WEB-INF/lib path of the application and leaving it use the ones from JBoss AS.&lt;br /&gt;&lt;br /&gt;The Jars I removed are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;el-api.jar&lt;/li&gt;&lt;li&gt;el-ri.jar&lt;/li&gt;&lt;li&gt;jsf-api.jar&lt;/li&gt;&lt;li&gt;jsf-impl.jar&lt;/li&gt;&lt;li&gt;jsf-tlds.jar&lt;/li&gt;&lt;/ul&gt;Now it is perfectly working...&lt;br /&gt;&lt;br /&gt;Demetrio Filocamo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1939506572663687826-3894104091502397736?l=demetrio812.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://demetrio812.blogspot.com/feeds/3894104091502397736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1939506572663687826&amp;postID=3894104091502397736' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/3894104091502397736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/3894104091502397736'/><link rel='alternate' type='text/html' href='http://demetrio812.blogspot.com/2007/09/exception-sending-context-initialized.html' title='Exception sending context initialized event to listener instance of class com.sun.faces.config.ConfigureListener'/><author><name>demetrio.it</name><uri>http://www.blogger.com/profile/16850243001843176521</uri><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>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1939506572663687826.post-835156663072791073</id><published>2007-08-26T12:03:00.001+02:00</published><updated>2007-08-26T12:10:29.503+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jboss as'/><category scheme='http://www.blogger.com/atom/ns#' term='log4j'/><category scheme='http://www.blogger.com/atom/ns#' term='how to'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>Configuring JBoss AS logging level using Log4j</title><content type='html'>Loggin during the development phase is really important, but when you go in production it can be a problem: in my case my application add about 6MB of log for a single request and this can be a real problem if you have a lot of users. More, writing so much stuff would decrease performance of the application.&lt;br /&gt;&lt;br /&gt;If you use JBoss Application Server (that use &lt;span style="font-weight:bold;"&gt;log4j&lt;/span&gt;) it's simple to configure it to do not write a lot of debug stuff for the classes of my applications (that generally are written using JSF + Ajax4Jsf + Richfaces + Seam technologies).&lt;br /&gt;&lt;br /&gt;To do that, modify the &lt;span style="font-weight:bold;"&gt;jboss-log4j.xml&lt;/span&gt; file that you find in &lt;span style="font-style:italic;"&gt;/&lt; jboss_home_dir &gt;/server/&lt; your_conf &gt;/conf/&lt;/span&gt; and add this code inside the &lt;span style="font-style:italic;"&gt;log4j:configuration&lt;/span&gt; section:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  &lt; category name="org.jboss"&gt;&lt;br /&gt;      &lt; priority value="INFO"/&gt;&lt;br /&gt;   &lt; /category&gt;&lt;br /&gt;&lt;br /&gt;  &lt; category name="javax.faces"&gt;&lt;br /&gt;      &lt; priority value="INFO"/&gt;&lt;br /&gt;   &lt; /category&gt;&lt;br /&gt;&lt;br /&gt;  &lt; category name="org.ajax4jsf"&gt;&lt;br /&gt;      &lt; priority value="INFO"/&gt;&lt;br /&gt;   &lt; /category&gt;&lt;br /&gt;&lt;br /&gt;  &lt; category name="org.hibernate"&gt;&lt;br /&gt;      &lt; priority value="INFO"/&gt;&lt;br /&gt;   &lt; /category&gt; &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;As you can see it's simple to adapt for other libraries you are using.&lt;br /&gt;&lt;br /&gt;Other than INFO you can use other logging levels, they are ordered in that order:&lt;br /&gt;&lt;br /&gt;DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; FATAL.&lt;br /&gt;&lt;br /&gt;So using the INFO level log4j will skip DEBUG logs but it will write WARN, ERROR and FATAL logs, using ERROR level it will only write ERROR and FATAL logs an so on.&lt;br /&gt;&lt;br /&gt;Demetrio Filocamo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1939506572663687826-835156663072791073?l=demetrio812.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://demetrio812.blogspot.com/feeds/835156663072791073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1939506572663687826&amp;postID=835156663072791073' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/835156663072791073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/835156663072791073'/><link rel='alternate' type='text/html' href='http://demetrio812.blogspot.com/2007/08/configuring-jboss-as-logging-level.html' title='Configuring JBoss AS logging level using Log4j'/><author><name>demetrio.it</name><uri>http://www.blogger.com/profile/16850243001843176521</uri><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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1939506572663687826.post-945591662263529996</id><published>2007-08-25T12:39:00.000+02:00</published><updated>2007-09-13T15:21:08.330+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='how to'/><category scheme='http://www.blogger.com/atom/ns#' term='seam'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='tomahawk'/><title type='text'>Install Tomahawk in a seam-gen generated project</title><content type='html'>Hi,&lt;br /&gt;installing Tomahawk in a Facelets + Seam + JSF project (generated by seam-gen) is really simple:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Add library &lt;span style="font-weight: bold;"&gt;tomahawk*.jar&lt;/span&gt; in &lt;span style="font-weight: bold;"&gt;lib&lt;/span&gt; directory (download from &lt;a href="http://myfaces.apache.org/tomahawk/"&gt;http://&lt;/a&gt;&lt;span style=""&gt;&lt;span class="a"&gt;&lt;a href="http://myfaces.apache.org/tomahawk/"&gt;myfaces.apache.org/tomahawk/&lt;/a&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Also add those dependencies:&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;commons-fileupload (&lt;a href="http://commons.apache.org/fileupload/"&gt;http://&lt;span style=""&gt;&lt;span class="a"&gt;commons.apache.org/fileupload/&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;);&lt;/li&gt;&lt;li&gt;common-codec (&lt;a href="http://commons.apache.org/codec/"&gt;http://&lt;span style=""&gt;&lt;span class="a"&gt;commons.apache.org/codec/&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;);&lt;/li&gt;&lt;li&gt;commons-el (&lt;a href="http://commons.apache.org/el/"&gt;http://&lt;span style=""&gt;&lt;span class="a"&gt;commons.apache.org/el/&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;);&lt;/li&gt;&lt;li&gt;commons-lang (&lt;a href="http://commons.apache.org/lang/"&gt;http://&lt;span style=""&gt;&lt;span class="a"&gt;commons.apache.org/lang/&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;);&lt;/li&gt;&lt;li&gt;commons-logging (&lt;a href="http://commons.apache.org/logging/"&gt;http://&lt;span style=""&gt;&lt;span class="a"&gt;commons.apache.org/logging/&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;);&lt;/li&gt;&lt;li&gt;jakarta-oro (&lt;a href="http://jakarta.apache.org/oro/"&gt;http://&lt;span style=""&gt;&lt;span class="a"&gt;jakarta.apache.org/oro/&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;);&lt;/li&gt;&lt;li&gt;commons-validator (&lt;a href="http://commons.apache.org/validator/"&gt;http://&lt;span style=""&gt;&lt;span class="a"&gt;commons.apache.org/validator/&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Inside directory &lt;span style="font-weight: bold;"&gt;resources/WEB-INF&lt;/span&gt; create a file named &lt;span style="font-weight: bold;"&gt;tomahawk.taglib.xml&lt;/span&gt; and fill in with contents that you find in the example section to this address: &lt;a href="http://wiki.apache.org/myfaces/Use_Facelets_with_Tomahawk"&gt;http://wiki.apache.org/myfaces/Use_Facelets_with_Tomahawk&lt;/a&gt;&lt;br /&gt;or you can download it from &lt;a href="http://www.demetrio.it/filesBlog/tomahawk.taglib.xml"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;in &lt;span style="font-weight: bold;"&gt;web.xml &lt;/span&gt;add:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;context-param&amp;gt;&lt;br /&gt; &amp;lt;param-name&amp;gt;facelets.LIBRARIES&amp;lt;/param-name&amp;gt;&lt;br /&gt; &amp;lt;param-value&amp;gt;/WEB-INF/tomahawk.taglib.xml&amp;lt;/param-value&amp;gt;&lt;br /&gt;&amp;lt;/context-param&amp;gt;&lt;br /&gt;&amp;lt;!-- Tomahawk --&amp;gt; &lt;br /&gt;&amp;lt;filter&amp;gt;&lt;br /&gt;   &amp;lt;filter-name&amp;gt;MyFacesExtensionsFilter&amp;lt;/filter-name&amp;gt;&lt;br /&gt;   &amp;lt;filter-class&amp;gt;org.apache.myfaces.webapp.filter.ExtensionsFilter&amp;lt;/filter-class&amp;gt;&lt;br /&gt;   &amp;lt;init-param&amp;gt;&lt;br /&gt;       &amp;lt;param-name&amp;gt;maxFileSize&amp;lt;/param-name&amp;gt;&lt;br /&gt;       &amp;lt;param-value&amp;gt;20m&amp;lt;/param-value&amp;gt;&lt;br /&gt;   &amp;lt;/init-param&amp;gt;&lt;br /&gt;&amp;lt;/filter&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!-- extension mapping for adding &amp;lt;script/&amp;gt;, &amp;lt;link/&amp;gt;, and other resource tags to JSF-pages  --&amp;gt;&lt;br /&gt;&amp;lt;filter-mapping&amp;gt;&lt;br /&gt;   &amp;lt;filter-name&amp;gt;MyFacesExtensionsFilter&amp;lt;/filter-name&amp;gt;&lt;br /&gt;   &amp;lt;!-- servlet-name must match the name of your javax.faces.webapp.FacesServlet entry --&amp;gt;&lt;br /&gt;   &amp;lt;servlet-name&amp;gt;Faces Servlet&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;&amp;lt;/filter-mapping&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!-- extension mapping for serving page-independent resources (javascript, stylesheets, images, etc.)  --&amp;gt;&lt;br /&gt;&amp;lt;filter-mapping&amp;gt;&lt;br /&gt;   &amp;lt;filter-name&amp;gt;MyFacesExtensionsFilter&amp;lt;/filter-name&amp;gt;&lt;br /&gt;   &amp;lt;url-pattern&amp;gt;/faces/myFacesExtensionResource/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;&amp;lt;/filter-mapping&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In &lt;span style="font-weight: bold;"&gt;build.xml&lt;/span&gt;, in &lt;i&gt;&lt;span style="font-weight: bold;"&gt;&lt; todir="${war.dir}/WEB-INF/lib"&gt; &lt;/span&gt;section&lt;/i&gt; , inside the &lt;i&gt;&lt;span style="font-weight: bold;"&gt;&lt; dir="${lib.dir}"&gt;&lt;/span&gt; tag&lt;/i&gt;, add:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;name="tomahawk*.jar"&amp;gt;&lt;br /&gt;&amp;lt;name="commons-codec*.jar"&amp;gt;&lt;br /&gt;&amp;lt;name="commons-el*.jar"&amp;gt;&lt;br /&gt;&amp;lt;name="commons-fileupload*.jar"&amp;gt;&lt;br /&gt;&amp;lt;name="commons-lang*.jar"&amp;gt;&lt;br /&gt;&amp;lt;name="commons-logging*.jar"&amp;gt;&lt;br /&gt;&amp;lt;name="commons-validator*.jar"&amp;gt;&lt;br /&gt;&amp;lt;name="commons-validator*.js"&amp;gt;&lt;br /&gt;&amp;lt;name="jakarta-oro*.jar"&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;copy todir="${war.dir}/WEB-INF/lib"&gt;&lt;fileset dir="${lib.dir}"&gt;To use the library in xhtml pages:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;xmlns:t="http://myfaces.apache.org/tomahawk"&lt;/span&gt;&lt;/fileset&gt;&lt;/copy&gt;&lt;/li&gt;&lt;/ol&gt;Btw &lt;span style="font-weight: bold;"&gt;THERE IS A PROBLEM&lt;/span&gt;: I just found that after adding Tomahawk library the Seam file upload doesn't work, I will tell you more in another post...&lt;br /&gt;&lt;br /&gt;Demetrio Filocamo&lt;br /&gt;&lt;br /&gt;P.S.: sorry for bad code posting (I putted a space to make tag visibles), I have to find the time to configure an appropriate css  style for code showing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1939506572663687826-945591662263529996?l=demetrio812.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://demetrio812.blogspot.com/feeds/945591662263529996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1939506572663687826&amp;postID=945591662263529996' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/945591662263529996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/945591662263529996'/><link rel='alternate' type='text/html' href='http://demetrio812.blogspot.com/2007/08/install-tomahawk-in-seam-gen-generated.html' title='Install Tomahawk in a seam-gen generated project'/><author><name>demetrio.it</name><uri>http://www.blogger.com/profile/16850243001843176521</uri><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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1939506572663687826.post-4750917540434344686</id><published>2007-03-09T22:29:00.001+01:00</published><updated>2007-08-27T10:11:23.702+02:00</updated><title type='text'>First post</title><content type='html'>Hi,&lt;br /&gt;I'm Demetrio, I'm a computer science engineer and I like development, expecially in Java platform. I hope I can be usefull to the community posting something I learned or I will learn about programming.&lt;br /&gt;&lt;br /&gt;I also like photography, you can visit my website at &lt;a href="http://www.demetrio.it"&gt;www.demetrio.it&lt;/a&gt; to see some picture I have done.&lt;br /&gt;&lt;br /&gt;Bye!&lt;br /&gt;&lt;br /&gt;Demetrio&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1939506572663687826-4750917540434344686?l=demetrio812.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://demetrio812.blogspot.com/feeds/4750917540434344686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1939506572663687826&amp;postID=4750917540434344686' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/4750917540434344686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1939506572663687826/posts/default/4750917540434344686'/><link rel='alternate' type='text/html' href='http://demetrio812.blogspot.com/2007/03/primo-post.html' title='First post'/><author><name>demetrio.it</name><uri>http://www.blogger.com/profile/16850243001843176521</uri><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>
