<?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:blogger='http://schemas.google.com/blogger/2008' 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-5409509891600954773</id><updated>2024-08-28T06:14:34.242+02:00</updated><category term="RichFaces"/><category term="java"/><category term="JSF"/><category term="Linux"/><category term="Java Server Faces"/><category term="NetBeans"/><category term="Arquillian"/><category term="Google"/><category term="KDE"/><category term="Microsoft"/><category term="testing"/><category term="AdSence"/><category term="Amazon"/><category term="Android"/><category term="Ant"/><category term="Glassfish"/><category term="JBDS"/><category term="JBoss Developer Studio"/><category term="JSF2"/><category term="Mercurial"/><category term="MySQL"/><category term="Opera"/><category term="Oracle"/><category term="Qt"/><category term="Qt Jambi"/><category term="Red Hat Developer Conference"/><category term="Selenium"/><category term="Sun"/><category term="Suse"/><category term="VirtualBox"/><category term="Vista"/><category term="Windows"/><category term="Yahoo"/><category term="cloud"/><category term="economics"/><category term="funny"/><category term="money"/><category term="news"/><category term="tips"/><category term="video"/><title type='text'>Pavol Pitoňák&#39;s Blog</title><subtitle type='html'>Blog about Java, programming, Linux and more...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.pavol.pitonak.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://blog.pavol.pitonak.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08169226777979643808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5409509891600954773.post-5857562332110402477</id><published>2013-03-08T13:15:00.000+01:00</published><updated>2013-03-08T13:15:19.509+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Arquillian"/><category scheme="http://www.blogger.com/atom/ns#" term="JSF"/><category scheme="http://www.blogger.com/atom/ns#" term="RichFaces"/><category scheme="http://www.blogger.com/atom/ns#" term="testing"/><title type='text'>Running RichFaces tests on EAP 6.1</title><content type='html'>&lt;div&gt;
Hi, you might notice that binaries of EAP 6.1 are &lt;a href=&quot;https://community.jboss.org/blogs/mark.little/2013/03/07/eap-binaries-available-for-all-developers&quot;&gt;available for all developers&lt;/a&gt; from &amp;nbsp;yesterday. In this post I want to show you how to run RichFaces Selenium test suite with EAP.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
As I wrote in one of my previous posts, we have a special application called Metamer used for Selenium testing. All you need to do is to clone our Git repository and run this simple Maven command and it will start JBoss AS 7.1.1, deploy Metamer, launch Firefox and executes the test suite.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;gistLoad&quot; data-id=&quot;5115530&quot; id=&quot;gist-5115530&quot;&gt;
Loading ....&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
It works in a similar way also for EAP. The only difference is that our Arquillian profile isn&#39;t set up to download EAP distribution zip from the download server so you need to perform this step manually. Let&#39;s run the test suite with EAP 6.1.0.Alpha:&lt;/div&gt;
&lt;div class=&quot;gistLoad&quot; data-id=&quot;5116011&quot; id=&quot;gist-5116011&quot;&gt;
Loading ....&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
That&#39;s it. Now nothing stops you from running your test suite on both JBoss AS and EAP. Should you have any questions about EAP, see &lt;a href=&quot;http://www.jboss.org/jbossas/faq&quot;&gt;Frequently Asked Questions&lt;/a&gt;.
&lt;/div&gt;
&lt;script src=&quot;https://raw.github.com/moski/gist-Blogger/master/public/gistLoader.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pavol.pitonak.com/feeds/5857562332110402477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5409509891600954773/5857562332110402477' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/5857562332110402477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/5857562332110402477'/><link rel='alternate' type='text/html' href='http://blog.pavol.pitonak.com/2013/03/running-richfaces-tests-on-eap-61.html' title='Running RichFaces tests on EAP 6.1'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08169226777979643808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>Brno, Czech Republic</georss:featurename><georss:point>49.1950602 16.606837100000007</georss:point><georss:box>49.0290597 16.284113600000008 49.3610607 16.929560600000006</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5409509891600954773.post-3610505583691185754</id><published>2012-09-03T12:27:00.000+02:00</published><updated>2012-09-03T12:27:01.887+02:00</updated><title type='text'>Meet RichFaces QE Team</title><content type='html'>RichFaces Quality Engineering (QE) team at Red Hat is dedicated to performing Quality Assurance for the project. We also prepare RichFaces for inclusion in the &lt;a href=&quot;http://www.redhat.com/products/jbossenterprisemiddleware/web-framework-kit&quot;&gt;JBoss Web Framework Ki&lt;/a&gt;t. In this blog post I’d like to explain what we do for RichFaces to improve its quality and what tools we develop for you to help you with testing your web applications.&lt;br /&gt;
&lt;h2&gt;
About team&lt;/h2&gt;
Since 2009, when I was hired by Red Hat, QE team has grown to 5 people. Let me introduce my team:
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://community.jboss.org/people/jhuska&quot;&gt;Juraj Húska&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://community.jboss.org/people/jjamrich&quot;&gt;Ján Jamrich&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://community.jboss.org/people/jpapouse&quot;&gt;Jan Papoušek&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://community.jboss.org/people/jstefek&quot;&gt;Jiří Štefek&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
What we do&lt;/h2&gt;
The QE team is primarily responsible for ensuring that RichFaces meets the standards that our community and our customers expect. Much of this work involves developing automated tests for RichFaces, which are kept public on &lt;a href=&quot;https://github.com/richfaces/qa&quot;&gt;Github&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
We create functional tests for RichFaces examples, such as &lt;a href=&quot;http://showcase.richfaces.org/&quot;&gt;Showcase&lt;/a&gt;, &lt;a href=&quot;https://github.com/richfaces/as-quickstarts&quot;&gt;Kitchensink&lt;/a&gt;, &lt;a href=&quot;http://blog.pavol.pitonak.com/2012/01/richrates-even-better-with-richfaces-4.html&quot;&gt;RichRates&lt;/a&gt;. We test it not only in local environment but also on OpenShift (a Red Hat’s PaaS).&lt;br /&gt;
&lt;br /&gt;
Big part of our work is creating functional tests for each component using our testing application &lt;a href=&quot;https://github.com/richfaces/qa/tree/master/metamer&quot;&gt;Metamer&lt;/a&gt;. Using this app, we can easily reproduce almost any bug. If you find a bug in RichFaces, you are welcome to send a pull request on Github with reproducer for us.&lt;br /&gt;
&lt;br /&gt;
We test every release of RichFaces before it is published which includes executing automated tests on various browsers, mobile devices, application servers and operating systems and performing manual testing on selected platforms.&lt;br /&gt;
&lt;br /&gt;
We maintain over 100 RichFaces Jenkins builds which continually build RichFaces and run unit, functional, integration and regression tests. The most important builds are published to&lt;a href=&quot;https://hudson.jboss.org/hudson/view/Richfaces/&quot;&gt; jboss.org Jenkins instance&lt;/a&gt;. We are working hard on polishing all other builds so that they can be published, too.&lt;br /&gt;
&lt;br /&gt;
Me and my team contribute to several other projects. In my opinion, the most significant contributions are those to Arquillian project. Jan Papoušek helped with implementing Android extension for Arquillian which is able to create an Android Emulator instance for you and then you can run your Selenium tests in emulator. We didn’t like a few things in Selenium 1 so we created &lt;a href=&quot;http://rik-ansikter.blogspot.cz/2010/03/new-richfaces-selenium-library-for.html&quot;&gt;RichFaces Selenium&lt;/a&gt; back in 2010 which laid the foundation for Arquillian Graphene.&lt;br /&gt;
&lt;br /&gt;
Jan now works on Graphene which will provide a lot of useful extensions for Selenium 2. To name few, there will be request guards using which you can check that Selenium action performed exactly that kind of request which you need (HTTP request, AJAX request or no request). There will be also a waiting API which builds on top of Selenium Wait API but covers more common use-cases.&lt;br /&gt;
&lt;br /&gt;
Juraj created Arquillian container adapters for Tomcat 6 and Tomcat 7. He is also a contributor to Arquillian Graphene. Sooner this year he defended his &lt;a href=&quot;https://is.muni.cz/auth/th/359345/fi_b/thesis.pdf&quot;&gt;thesis&lt;/a&gt; about automatic testing of component-based web application which is basis for Component Objects (we are still not sure about &lt;a href=&quot;https://community.jboss.org/message/757401&quot;&gt;name&lt;/a&gt;) feature in Graphene.&lt;br /&gt;
&lt;br /&gt;
The Component objects are basically encapsulation of web components (widgets) like calendar, autocomplete, etc. Their purpose is very similar to &lt;a href=&quot;http://code.google.com/p/selenium/wiki/PageObjects&quot;&gt;Page Objects pattern&lt;/a&gt;, i.e. to encapsulate HTML code in one place to make UI tests more robust and reusable. However, component objects are going a little bit deeper. They are encapsulation across whole web UI framework (e.g. encapsulation for all RichFaces components) instead of just web pages typical for one web application. This makes them reusable in all RichFaces functional tests. Juraj’s work was already merged into Graphene so it will be in 2.0.0-alpha2.&lt;br /&gt;
&lt;br /&gt;
Ján Jamrich spent last couple of days working on Arquillian RushEye which is tool for automated bulk or on-the-fly inspecting of browser screen images and comparison with predefined image suite. If implemented in our test suite, it would enable automated visual testing and would minimize efforts for manual visual testing of applications. Jakub Dunia created RushEye Manager during his &lt;a href=&quot;http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/jakub_d/11002&quot;&gt;Google Summer of Code&lt;/a&gt;. It’s a GUI application for semiautomatic comparison of screenshots which we want to develop further.&lt;br /&gt;
&lt;br /&gt;
Another exciting part of our job is testing on mobile devices. We test RichFaces continuously in Jenkins using Android emulator and for each release, we test also on several physical devices such as iPhone, iPad, Motorola Xoom and Google Nexus S.&lt;br /&gt;
&lt;br /&gt;
The QE team participates in the JBoss Testing initiative where we are trying to align the testing tools inside of JBoss so that we create a testing stack instead of everyone having to cobble together their own setup. For instance, Arquillian will support JSFUnit, integrate with Selenium, etc. You can find &lt;a href=&quot;http://community.jboss.org/wiki/ArquillianIntegrationIdeas&quot;&gt;integration ideas&lt;/a&gt; in the Arquillian space.&lt;br /&gt;
&lt;br /&gt;
We also try to actively help dev team by sending pull requests, especially for sample applications and with configuration both on Jenkins and on OpenShift. Did you know that &lt;a href=&quot;http://bootstrap-richfaces.rhcloud.com/&quot;&gt;RichFaces Bootstrap demo&lt;/a&gt; is continuously built on Jenkins and automatically deployed to OpenShift? …we helped with that.&lt;br /&gt;
&lt;h2&gt;
What’s next?&lt;/h2&gt;
In the upcoming months we want to focus on three areas. First, we want to automate our tests for iOS devices using simulators. Second, we want to create full set of Component Object for RichFaces components. Using RichFaces component objects and Arquillian you could start testing your RichFaces applications with almost no effort. The last big focus area is tools development, especially finish Arquillian Graphene 2.0.0.&lt;br /&gt;
&lt;h2&gt;
How can you help?&lt;/h2&gt;
We do our best to find and fix as many issues in RichFaces as possible but it’s still not enough. We rely on our community to help us. Please &lt;a href=&quot;https://community.jboss.org/wiki/SubmittingEffectiveIssueReports&quot;&gt;report all issues that you find&lt;/a&gt; in our JIRA and assist us with reproducing bugs.&lt;br /&gt;
&lt;br /&gt;
Should you have any questions or ideas how to make RichFaces better, please feel free to contact us. You can find us on IRC channel &lt;i&gt;#richfaces&lt;/i&gt; on irc.freenode.org, on our &lt;a href=&quot;https://community.jboss.org/en/richfaces?view=discussions&quot;&gt;user forums&lt;/a&gt; or simply comment in this blog post.</content><link rel='replies' type='application/atom+xml' href='http://blog.pavol.pitonak.com/feeds/3610505583691185754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5409509891600954773/3610505583691185754' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/3610505583691185754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/3610505583691185754'/><link rel='alternate' type='text/html' href='http://blog.pavol.pitonak.com/2012/09/meet-richfaces-qe-team.html' title='Meet RichFaces QE Team'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08169226777979643808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5409509891600954773.post-8444993397359236481</id><published>2012-08-31T18:30:00.000+02:00</published><updated>2012-09-01T22:02:19.496+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Arquillian"/><category scheme="http://www.blogger.com/atom/ns#" term="Java Server Faces"/><category scheme="http://www.blogger.com/atom/ns#" term="JSF"/><category scheme="http://www.blogger.com/atom/ns#" term="Opera"/><category scheme="http://www.blogger.com/atom/ns#" term="RichFaces"/><title type='text'>Testing with Opera Mobile emulator</title><content type='html'>&lt;p&gt;Hi! Sooner this month Opera published an &lt;a href=&quot;http://dev.opera.com/articles/view/introducing-mobile-browser-automation/&quot;&gt;introduction to mobile browser automation&lt;/a&gt;. I wondered if it would be possible to use Opera Mobile emulator to run RichFaces tests.&lt;/p&gt;

&lt;p&gt;I suppose that you have Opera 12 installed on your desktop and that you downloaded and extracted &lt;a href=&quot;http://www.opera.com/developer/tools/mobile/&quot;&gt;Opera Mobile Emulator&lt;/a&gt; to &amp;lt;EMULATOR_HOME&amp;gt;.&lt;/p&gt;

&lt;h2&gt;Running Selenium tests&lt;/h2&gt;
&lt;p&gt;Since Arquillian Drone supports Selenium capabilities API, running automated tests in Opera Mobile Emulator is just a matter of configuring few properties.&lt;/p&gt;

&lt;p&gt;You can try it with RichRates tests. First clone RichRates git repository and then run the tests with desktop version of Opera:&lt;/p&gt;

&lt;pre class=&quot;brush: xml;&quot;&gt;
git clone https://github.com/ppitonak/richrates
cd richrates
mvn clean verify -P jbossas-managed-71,all-tests -Darquillian.webdriver.browser.capabilities=opera
&lt;/pre&gt;

&lt;p&gt;If you want to test with Opera Mobile emulator, you need to specify also path to operamobile binary:&lt;/p&gt;

&lt;pre class=&quot;brush: xml;&quot;&gt;
mvn clean verify -P jbossas-managed-71,all-tests -Darquillian.webdriver.browser.capabilities=opera -Darquillian.webdriver.capability.opera.binary=&amp;lt;EMULATOR_HOME&amp;gt;/operamobile
&lt;/pre&gt;

&lt;h2&gt;Debugging in Opera Mobile emulator&lt;/h2&gt;

&lt;p&gt;As I showed you, running tests in emulator is very easy but what about creating tests? You probably need to access page DOM, play with CSS and debug JavaScript. Fortunately, Opera browser provides advanced developer tools called &lt;a href=&quot;http://www.opera.com/dragonfly/&quot;&gt;Opera Dragonfly&lt;/a&gt; which support connecting to a remote browser.&lt;/p&gt;

&lt;p&gt;To start, lauch your Opera, open Dragonfly (e.g. by clicking on &quot;Inspect Element&quot; menu item anywhere on the page) and click on &quot;Remote debug configuration&quot; button. Select a port (e.g. default 7001) and click Apply.&lt;/p&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZAeEw-se8xoLFqzChu_kQgn4RG2gqQOThLC6hE4cyX_5ZK6tPKlB7Mob2WtgrqeSnzpZayITsLMa7CwlOkKIX-w8f3oIfpPvFpDTgtXH8eVK_F_mBHUt43rFKhyphenhyphen7r9uCUv4eaKzaa_6hZ/s1600/opera03.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;218&quot; width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZAeEw-se8xoLFqzChu_kQgn4RG2gqQOThLC6hE4cyX_5ZK6tPKlB7Mob2WtgrqeSnzpZayITsLMa7CwlOkKIX-w8f3oIfpPvFpDTgtXH8eVK_F_mBHUt43rFKhyphenhyphen7r9uCUv4eaKzaa_6hZ/s320/opera03.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Then, launch Opera Mobile emulator and navigate to the page &lt;a href=&quot;opera:debug&quot;&gt;opera:debug&lt;/a&gt;. Set up the same port number and click &quot;Connect&quot;.&lt;/p&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9RmDDz0vH_SUejt-ny0gtEooGcn_7R7gq_fEFGYdsDgAQea_DuLGuRn1dVZ_GHtL-KEP-S7t3P0xIDre8DherY_wNzZCWMnrpS8Fkc9drK-l56MyJydfqjq2WDrqQCkUqyntNUYuw15cA/s1600/opera01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;264&quot; width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9RmDDz0vH_SUejt-ny0gtEooGcn_7R7gq_fEFGYdsDgAQea_DuLGuRn1dVZ_GHtL-KEP-S7t3P0xIDre8DherY_wNzZCWMnrpS8Fkc9drK-l56MyJydfqjq2WDrqQCkUqyntNUYuw15cA/s320/opera01.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;

Now your Opera Mobile should be connected with developer tools and you can start debugging. Opera&#39;s developer tools are very similar to developer tools for Chrome, IE or Firefox.&lt;/p&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhSVotBSlrtZR__ssTlV3mKtdMNI-yAXm76SYsIGUXS21ERQH8y38TnGTsrm3U2wMYMCNSu66QddOPnkW48looRqixz9WaalhxthmP2vdgGcyUzUfjmSCxfFm3vhIEuoju0ZR2kiH79i0-/s1600/opera02.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;225&quot; width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhSVotBSlrtZR__ssTlV3mKtdMNI-yAXm76SYsIGUXS21ERQH8y38TnGTsrm3U2wMYMCNSu66QddOPnkW48looRqixz9WaalhxthmP2vdgGcyUzUfjmSCxfFm3vhIEuoju0ZR2kiH79i0-/s320/opera02.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;


&lt;script src=&quot;http://highlighter.s3.amazonaws.com/highlightLoader.js&quot;  &gt;&lt;/script&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pavol.pitonak.com/feeds/8444993397359236481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5409509891600954773/8444993397359236481' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/8444993397359236481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/8444993397359236481'/><link rel='alternate' type='text/html' href='http://blog.pavol.pitonak.com/2012/08/testing-with-opera-mobile-emulator.html' title='Testing with Opera Mobile emulator'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08169226777979643808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZAeEw-se8xoLFqzChu_kQgn4RG2gqQOThLC6hE4cyX_5ZK6tPKlB7Mob2WtgrqeSnzpZayITsLMa7CwlOkKIX-w8f3oIfpPvFpDTgtXH8eVK_F_mBHUt43rFKhyphenhyphen7r9uCUv4eaKzaa_6hZ/s72-c/opera03.png" height="72" width="72"/><thr:total>0</thr:total><georss:featurename>Brno, Czech Republic</georss:featurename><georss:point>49.1950602 16.6068371</georss:point><georss:box>49.0290367 16.2909801 49.3610837 16.9226941</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5409509891600954773.post-6254592118549310425</id><published>2012-03-27T21:05:00.000+02:00</published><updated>2012-03-27T21:05:53.386+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cloud"/><category scheme="http://www.blogger.com/atom/ns#" term="Java Server Faces"/><category scheme="http://www.blogger.com/atom/ns#" term="JBDS"/><category scheme="http://www.blogger.com/atom/ns#" term="JBoss Developer Studio"/><category scheme="http://www.blogger.com/atom/ns#" term="JSF"/><category scheme="http://www.blogger.com/atom/ns#" term="RichFaces"/><title type='text'>Deploying RichFaces Applications in 15 Minutes</title><content type='html'>&lt;p&gt;Hi! Today I&#39;ll show you how to import &lt;a href=&quot;http://blog.pavol.pitonak.com/2012/01/richrates-even-better-with-richfaces-4.html&quot;&gt;RichRates&lt;/a&gt; application to the JBoss Developer Studio (JBDS) and how to deploy it to the local JBoss AS 7.1.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;If you don&#39;t already have one installed, you will need to download and install Sun/Oracle JDK 6.0 or OpenJDK 6.0.&lt;/li&gt;
&lt;li&gt;Download the installer of JBDS for your &lt;a href=&quot;https://devstudio.jboss.com/earlyaccess/&quot;&gt;platform&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Double-click the installer file to run it, or open a terminal and type &lt;i&gt;java -jar jbdevstudio-*.jar&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Follow instruction in installer wizard.&lt;/li&gt;
&lt;li&gt;Start JBDS and select some directory on your disk which will serve as a workspace.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Now we will import the &lt;a href=&quot;http://blog.pavol.pitonak.com/2012/01/richrates-even-better-with-richfaces-4.html&quot;&gt;RichRates&lt;/a&gt; application to our newly installed JBDS.&lt;/p&gt;

&lt;p&gt;
First, you need to select &lt;i&gt;File -&gt; Import...&lt;/i&gt; and then select &lt;i&gt;Check out Maven Projects from SCM&lt;/i&gt;.
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjquTYHNpTN0yzdsUKXD0uY28ecTtu3TAKNbTLtxSHcxSllv5tW-N1LvbyTYpXO0XRIkDhntdxfnzYbTVaBZuJKgyx_vkS9uncMS0wBpYCbDaDr4l2gp8y3kfyXeTYUMJYjI3x7bd6Pvi1w/s1600/jbds01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;241&quot; width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjquTYHNpTN0yzdsUKXD0uY28ecTtu3TAKNbTLtxSHcxSllv5tW-N1LvbyTYpXO0XRIkDhntdxfnzYbTVaBZuJKgyx_vkS9uncMS0wBpYCbDaDr4l2gp8y3kfyXeTYUMJYjI3x7bd6Pvi1w/s320/jbds01.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;
When you click &lt;i&gt;Next&lt;/i&gt;, you&#39;ll get to the dialog asking you for your SCM type and URL of your repository. Unfortunately, JBDS doesn&#39;t contain any SCM connectors by default so we need to install one (in our case egit). Click on the &lt;i&gt;Find more SCM connectors in the m2e Marketplace&lt;/i&gt;.
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEji9DnlCCwR8P8utrA3Kt3yMsdYJ6KSXGbozMqGjZpSQvXIxAXwIiAFo1X_FwUoUSFa6XBOeB8p3zCqRs8ARbCNkjdauULOkaw50a_XvA7HjT1eZXZRYN_NrKSDWEB1L93b72jxCIUEIHIp/s1600/jbds02.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;241&quot; width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEji9DnlCCwR8P8utrA3Kt3yMsdYJ6KSXGbozMqGjZpSQvXIxAXwIiAFo1X_FwUoUSFa6XBOeB8p3zCqRs8ARbCNkjdauULOkaw50a_XvA7HjT1eZXZRYN_NrKSDWEB1L93b72jxCIUEIHIp/s320/jbds02.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/p&gt;

&lt;p&gt;
Select &lt;i&gt;m2e-egit&lt;/i&gt; connector. In the next steps you need to confirm your selection, accept license agreement and confirm that you want to install unsigned plugins. You will be asked to restart JBDS after installation is done.
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixt2MILRBPtIkW4dtV3vBiS5zTg263q-cjAo9xtaSaq0rTHjbzqigVyV0-EVb0DHBcxDTWxchQHX6iapJctF6XSz9GClb6aUD51EpAt7rukqlhaY31RqUD8ue_L1c8D1cHAOMJRd50CkOM/s1600/jbds03.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;306&quot; width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixt2MILRBPtIkW4dtV3vBiS5zTg263q-cjAo9xtaSaq0rTHjbzqigVyV0-EVb0DHBcxDTWxchQHX6iapJctF6XSz9GClb6aUD51EpAt7rukqlhaY31RqUD8ue_L1c8D1cHAOMJRd50CkOM/s320/jbds03.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/p&gt;

&lt;p&gt;
Once again, select &lt;i&gt;File -&gt; Import...&lt;/i&gt; and then select &lt;i&gt;Check out Maven Projects from SCM&lt;/i&gt;. In the SCM URL field, select git and input URL &lt;i&gt;https://github.com/qa/richrates.git&lt;/i&gt;. After clicking on &lt;i&gt;Finish&lt;/i&gt; button, the project will be checked out from the git repository and will appear in the list of projects. 
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuraBK-9olN6-h_6YrrPojpf5xpA-oS3Pg2KjNfzyfWUT9cAi3aO7lOCVtLlwbBGF6qd-d0BptrBFDJicTez4bBF96H4fRZ9Ye-PQ98Jj0Ovt1XJE1vv4UGs36k5dcPf5rTwBgEA6bTVvp/s1600/jbds04.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; width=&quot;306&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuraBK-9olN6-h_6YrrPojpf5xpA-oS3Pg2KjNfzyfWUT9cAi3aO7lOCVtLlwbBGF6qd-d0BptrBFDJicTez4bBF96H4fRZ9Ye-PQ98Jj0Ovt1XJE1vv4UGs36k5dcPf5rTwBgEA6bTVvp/s320/jbds04.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/p&gt;

&lt;p&gt;
JBoss Developer Studio detects the type of the imported project. In our case it detects a web project so it sorts your resources so that you can easily find them. E.g. you can find all Java classes in &lt;i&gt;Java Resources&lt;/i&gt;, all XHTML pages, JavaScript and CSS in &lt;i&gt;Deployed Resources&lt;/i&gt; and JSF tag libraries, resource bundles and configuration files in &lt;i&gt;Web Resources&lt;/i&gt;.
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdOSTaF-3KiuJY933BFrO5SDDsat5bSDNuXV8aHy1WMr3xTWXoLcmQf7f7RRchlnE120fnz63e_IX0m1o2YnZoPcgoW3o5RFzwpf6QaHorov_URFVE0OvRTeTKwi-jjuSxzUT2_8w9gqtw/s1600/jbds05.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; width=&quot;299&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdOSTaF-3KiuJY933BFrO5SDDsat5bSDNuXV8aHy1WMr3xTWXoLcmQf7f7RRchlnE120fnz63e_IX0m1o2YnZoPcgoW3o5RFzwpf6QaHorov_URFVE0OvRTeTKwi-jjuSxzUT2_8w9gqtw/s320/jbds05.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/p&gt;

&lt;p&gt;
Now we will deploy our application to JBoss AS 7.1.1.Final. First, &lt;a href=&quot;http://download.jboss.org/jbossas/7.1/jboss-as-7.1.1.Final/jboss-as-7.1.1.Final.zip&quot;&gt;download&lt;/a&gt; the binary with application server and extract it somewhere on your disk. In the JBDS open the &lt;i&gt;Servers&lt;/i&gt; window and click on &lt;i&gt;new server wizard&lt;/i&gt; link. In the dialog that will open, select &lt;i&gt;JBoss AS 7.1&lt;/i&gt;.
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjv3pZIJiHqlNZm538x4JDylmpIvDoPICdgaynLFJV_WiAVlYWLW0xW3iwvi0GfgKD83aHkgU0hJEyd5lJxJLfQyOEFFOMTi9Jqe8k7NW2Dd-vXt7CMAEzCrjapf3IBjeNFFPDXCkt5WJdd/s1600/jbds06.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; width=&quot;292&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjv3pZIJiHqlNZm538x4JDylmpIvDoPICdgaynLFJV_WiAVlYWLW0xW3iwvi0GfgKD83aHkgU0hJEyd5lJxJLfQyOEFFOMTi9Jqe8k7NW2Dd-vXt7CMAEzCrjapf3IBjeNFFPDXCkt5WJdd/s320/jbds06.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/p&gt;

&lt;p&gt;
Click &lt;i&gt;Next&lt;/i&gt; and type in the path to your extracted JBoss AS 7.1.1.Final. Click &lt;i&gt;Finish&lt;/i&gt;. Now you can deploy RichRates to the JBoss AS. To do so, click on RichRates project with right button and select &lt;i&gt;Run As -&gt; Run on Server&lt;/i&gt;. Select your JBoss AS and click &lt;i&gt;Finish&lt;/i&gt;. JBoss AS will be started automatically and a web browser window will be launched with application loaded. Although the built-in web browser is an useful tool, it&#39;s better to test web applications in real browsers. Open your favorite web browser and open &lt;a href=&quot;http://localhost:8080/richrates/&quot;&gt;http://localhost:8080/richrates&lt;/a&gt;. As a bonus, you can open RichRates using your mobile phone, tablet or using built-in mobile web browser. All you need to do is to click on &lt;i&gt;Run BrowserSim&lt;/i&gt; button inside JBDS.
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqq-bs-Jvoa0r0kEq4EXPfzQ5RLfSrt1a4T31e0f3W8NxlcmhgwoTwq32-07llhPADhw8AlhyphenhyphenBxoaBzhuD-2uAlTxKwYmloJX6uUnEsY-OoviJZ2Z63jk6DZlbc8WZ2LLdB68r3726qxQr/s1600/jbds07.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;190&quot; width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqq-bs-Jvoa0r0kEq4EXPfzQ5RLfSrt1a4T31e0f3W8NxlcmhgwoTwq32-07llhPADhw8AlhyphenhyphenBxoaBzhuD-2uAlTxKwYmloJX6uUnEsY-OoviJZ2Z63jk6DZlbc8WZ2LLdB68r3726qxQr/s320/jbds07.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/p&gt;

&lt;p&gt;That&#39;s it! With JBoss Developer Studio it&#39;s really easy to start developing. Just remember what we did... we installed JBDS, checked out a JSF project from Git repository, deployed it to newest JBoss AS 7.1.1 and browsed the application in both desktop and mobile browser. You could do the same with &lt;a href=&quot;http://www.eclipse.org/indigo&quot;&gt;Eclipse Indigo&lt;/a&gt; and &lt;a href=&quot;http://www.jboss.org/tools&quot;&gt;JBoss Tools&lt;/a&gt; but why to spend your precious time?&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pavol.pitonak.com/feeds/6254592118549310425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5409509891600954773/6254592118549310425' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/6254592118549310425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/6254592118549310425'/><link rel='alternate' type='text/html' href='http://blog.pavol.pitonak.com/2012/03/deploying-richfaces-applications-in-15.html' title='Deploying RichFaces Applications in 15 Minutes'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08169226777979643808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjquTYHNpTN0yzdsUKXD0uY28ecTtu3TAKNbTLtxSHcxSllv5tW-N1LvbyTYpXO0XRIkDhntdxfnzYbTVaBZuJKgyx_vkS9uncMS0wBpYCbDaDr4l2gp8y3kfyXeTYUMJYjI3x7bd6Pvi1w/s72-c/jbds01.png" height="72" width="72"/><thr:total>0</thr:total><georss:featurename>Brno, Czech Republic</georss:featurename><georss:point>49.1920506 16.6131909</georss:point><georss:box>49.1090351 16.4552624 49.275066100000004 16.7711194</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5409509891600954773.post-7717836981291699028</id><published>2012-02-29T00:07:00.000+01:00</published><updated>2012-02-29T00:07:21.103+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Red Hat Developer Conference"/><category scheme="http://www.blogger.com/atom/ns#" term="RichFaces"/><title type='text'>Red Hat Developer Conference 2012</title><content type='html'>&lt;p&gt;Hi! I was talking on &lt;a href=&quot;http://devconf.cz&quot;&gt;Red Hat Developer Conference&lt;/a&gt; in Brno about how we test RichFaces on mobile devices. For this, I updated RichRates application:

&lt;ul&gt;
&lt;li&gt;template was changed to generate HTML 5 pages;&lt;/li&gt;
&lt;li&gt;mobile version of RichRates was created;&lt;/li&gt;
&lt;li&gt;Arquillian tests were created; and&lt;/li&gt;
&lt;li&gt;application was tested with newest JBoss AS 7.1.0.Final (released just one day before conference).
&lt;/ul&gt;
&lt;/p&gt;

&lt;p&gt;
I uploaded my slides to slideshare.net for anyone interested in testing web apps on Android.&lt;/p&gt;

&lt;div style=&quot;width:425px&quot; id=&quot;__ss_11783443&quot;&gt; &lt;strong style=&quot;display:block;margin:12px 0 4px&quot;&gt;&lt;a href=&quot;http://www.slideshare.net/pitonak1/richfaces-testing-on-mobile-devices&quot; title=&quot;RichFaces - Testing on Mobile Devices&quot; target=&quot;_blank&quot;&gt;RichFaces - Testing on Mobile Devices&lt;/a&gt;&lt;/strong&gt; &lt;iframe src=&quot;http://www.slideshare.net/slideshow/embed_code/11783443&quot; width=&quot;425&quot; height=&quot;355&quot; frameborder=&quot;0&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot;&gt;&lt;/iframe&gt; &lt;div style=&quot;padding:5px 0 12px&quot;&gt; View more &lt;a href=&quot;http://www.slideshare.net/&quot; target=&quot;_blank&quot;&gt;presentations&lt;/a&gt; from &lt;a href=&quot;http://www.slideshare.net/pitonak1&quot; target=&quot;_blank&quot;&gt;Pavol Pitoňák&lt;/a&gt; &lt;/div&gt; &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pavol.pitonak.com/feeds/7717836981291699028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5409509891600954773/7717836981291699028' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/7717836981291699028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/7717836981291699028'/><link rel='alternate' type='text/html' href='http://blog.pavol.pitonak.com/2012/02/red-hat-developer-conference-2012.html' title='Red Hat Developer Conference 2012'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08169226777979643808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>Brno, Czech Republic</georss:featurename><georss:point>49.1920506 16.6131909</georss:point><georss:box>49.1090351 16.4552624 49.275066100000004 16.7711194</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5409509891600954773.post-1071078304248956127</id><published>2012-01-11T23:04:00.001+01:00</published><updated>2012-01-11T23:57:06.863+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java Server Faces"/><category scheme="http://www.blogger.com/atom/ns#" term="JSF"/><category scheme="http://www.blogger.com/atom/ns#" term="RichFaces"/><title type='text'>RichRates - Even Better with RichFaces 4</title><content type='html'>&lt;p&gt;Hi!

It&#39;s over a year since I &lt;a href=&quot;http://blog.pavol.pitonak.com/2010/03/new-richfaces-sample-applications.html&quot;&gt;blogged&lt;/a&gt; about our RichFaces sample application RichRates converting various currencies from/to Euros. Since then RichFaces 4.0 and 4.1 were &lt;a href=&quot;http://blog.bleathem.ca/2011/12/richfaces-410final-release-announcement.html&quot;&gt;released&lt;/a&gt; and so I updated the application to JSF 2, RichFaces 4 and CDI. Moreover, I migrated the application to &lt;a href=&quot;https://github.com/qa/richrates&quot;&gt;Github&lt;/a&gt;. I tried to preserve application&#39;s look and feel as much as possible. Most of things that should be considered when migrating from RichFaces 3 to 4 are described in &lt;a href=&quot;http://community.jboss.org/wiki/RichFacesMigrationGuide33x-4xMigration&quot;&gt;RichFaces Migration Guide&lt;/a&gt;.
&lt;/p&gt;

&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLju28YRBZuRkoOU-iL92gKxF0lcL6J4z2bE7Sko6gHV4Q1iuwJIUeEQIF8jJOAfqV7xqmQD75IKLg-gOTEKGwuynReB2_BLAyqnvd9TylWV_FXwPFg-bRFmvRRxnNX0rUqhmnURGV7JXC/s1600/richrates4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;171&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLju28YRBZuRkoOU-iL92gKxF0lcL6J4z2bE7Sko6gHV4Q1iuwJIUeEQIF8jJOAfqV7xqmQD75IKLg-gOTEKGwuynReB2_BLAyqnvd9TylWV_FXwPFg-bRFmvRRxnNX0rUqhmnURGV7JXC/s320/richrates4.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;
Although the original application was using JSF 2, there were some limitations when using RichFaces 3.3.3.Final with JSF 2. E.g. it was not possible to use VDL (Facelets) built in JSF 2. Since RichFaces 4 is a JSF 2 framework, it&#39;s possible to use all features introduced in JSF 2, such as new f:ajax tag, implicit navigation, and bean annotations to name few. Moreover, there are many more options when you&#39;re building your application using CDI.
&lt;/p&gt;

&lt;p&gt;
I’d like to publish a series of blog posts on various technologies used in the application. Especially I&#39;d like to show how to enhance JSF applications using CDI extensions, show you how to test your application and how to deploy it to the cloud. Until a following post is published, you can try the application and play with it a bit.
&lt;/p&gt;

&lt;p&gt;
You need to clone RichRates&#39; git repository and checkout the 4.1.0.Final tag.The following commands builds the project and produces richrates.war artifact that can be deployed into &lt;a href=&quot;http://download.jboss.org/jbossas/7.0/jboss-as-7.0.2.Final/jboss-as-7.0.2.Final.zip&quot;&gt;JBoss AS 7.0.2&lt;/a&gt; or &lt;a href=&quot;http://download.jboss.org/jbossas/7.1/jboss-as-7.1.0.CR1/jboss-as-7.1.0.CR1.zip&quot;&gt;JBoss AS 7.1.0.CR1&lt;/a&gt;.
&lt;/p&gt;

&lt;pre class=&quot;brush: java;&quot;&gt;
git clone git@github.com:qa/richrates.git
cd richrates
git checkout 4.1.0.Final
mvn package
&lt;/pre&gt;

&lt;p&gt;
Unzip JBoss AS distribution ZIP and deploy the application:
&lt;/p&gt;

&lt;pre class=&quot;brush: java;&quot;&gt;
unzip jboss-as-7.1.0.CR1.zip
cp &amp;lt;richrates-home&amp;gt;/target/richrates.war &amp;lt;jboss-home&amp;gt;/standalone/deployments
sh &amp;lt;jboss-home&amp;gt;/bin/standalone.sh
&lt;/pre&gt;

&lt;p&gt;
Now you just need to open you web browser and point it to &lt;i&gt;localhost:8080/richrates&lt;/i&gt;. Enjoy!
&lt;/p&gt;

&lt;script src=&quot;http://highlighter.s3.amazonaws.com/highlightLoader.js&quot;  &gt;&lt;/script&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pavol.pitonak.com/feeds/1071078304248956127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5409509891600954773/1071078304248956127' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/1071078304248956127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/1071078304248956127'/><link rel='alternate' type='text/html' href='http://blog.pavol.pitonak.com/2012/01/richrates-even-better-with-richfaces-4.html' title='RichRates - Even Better with RichFaces 4'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/08169226777979643808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLju28YRBZuRkoOU-iL92gKxF0lcL6J4z2bE7Sko6gHV4Q1iuwJIUeEQIF8jJOAfqV7xqmQD75IKLg-gOTEKGwuynReB2_BLAyqnvd9TylWV_FXwPFg-bRFmvRRxnNX0rUqhmnURGV7JXC/s72-c/richrates4.png" height="72" width="72"/><thr:total>1</thr:total><georss:featurename>Brno, Czech Republic</georss:featurename><georss:point>49.1920506 16.6131909</georss:point><georss:box>49.1090351 16.4552624 49.275066100000004 16.7711194</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5409509891600954773.post-5030933663636916688</id><published>2010-05-21T22:07:00.000+02:00</published><updated>2011-11-04T20:23:56.736+01:00</updated><title type='text'>Syntax Highlighting Test</title><content type='html'>Java &lt;br /&gt;
&lt;pre class=&quot;brush: java;&quot;&gt;
int add(int x, int y) {
    return x + y;
}
&lt;/pre&gt;
&lt;br /&gt;
XML&lt;br /&gt;
&lt;pre class=&quot;brush: xml;&quot;&gt;&amp;lt;pre class=&quot;brush: java;&quot;&amp;gt; 
int add(int x, int y) {
    return x + y;
}
&amp;lt;/pre&amp;gt; 
&lt;/pre&gt;

&lt;script src=&quot;http://highlighter.s3.amazonaws.com/highlightLoader.js&quot;  &gt;&lt;/script&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pavol.pitonak.com/feeds/5030933663636916688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5409509891600954773/5030933663636916688' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/5030933663636916688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/5030933663636916688'/><link rel='alternate' type='text/html' href='http://blog.pavol.pitonak.com/2010/05/syntax-highlighting-test.html' title='Syntax Highlighting Test'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5409509891600954773.post-3119353139280213456</id><published>2010-03-05T09:50:00.010+01:00</published><updated>2010-03-05T11:26:43.984+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="JSF"/><category scheme="http://www.blogger.com/atom/ns#" term="JSF2"/><category scheme="http://www.blogger.com/atom/ns#" term="RichFaces"/><title type='text'>New RichFaces Sample Applications</title><content type='html'>Yesterday, three new RichFaces sample applications were published (&lt;a href=&quot;http://sensiblerationalization.blogspot.com/2010/03/new-richfaces-examples.html&quot;&gt;Prabhat&#39;s announcement here&lt;/a&gt;). Tic-tac-toe and RichRates were created by me and jabber client Ribber was created by my colleague Lukáš Fryč.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://anonsvn.jboss.org/repos/qa/people/ppitonak/tictactoe/&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;Tic-Tac-Toe&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Tic-Tac-Toe is a simple implementation of a well known game for two players. It shows usage of graphic image, ajax, tab panel, inplace input and some standard JSF components. It allows to play two humans, human vs. computer or you can let two computer players play. For simplicity it contains only one strategy for computer.  If you are interested in portals, a &lt;a href=&quot;http://anonsvn.jboss.org/repos/qa/prabhat/tictactoe-portlet/&quot;&gt;portlet&lt;/a&gt; was created from this application.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://2.bp.blogspot.com/_9Ij88JrLvbY/S5DTJzWAKgI/AAAAAAAAFM4/2vbbW2070fE/s1600-h/tictactoe.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 204px;&quot; src=&quot;http://2.bp.blogspot.com/_9Ij88JrLvbY/S5DTJzWAKgI/AAAAAAAAFM4/2vbbW2070fE/s320/tictactoe.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5445084114845706754&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://anonsvn.jboss.org/repos/qa/people/ppitonak/richrates/&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;RichRates&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;RichRates is a currency convertor which converts Euros to about 30 foreign currencies and vice versa. It shows how to use 25 different RichFaces components. This application is fully skinable as you can see on the following screenshots.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://4.bp.blogspot.com/_9Ij88JrLvbY/S5DT4f4wGnI/AAAAAAAAFNA/iQda8RP8U-c/s1600-h/richrates1.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 298px;&quot; src=&quot;http://4.bp.blogspot.com/_9Ij88JrLvbY/S5DT4f4wGnI/AAAAAAAAFNA/iQda8RP8U-c/s320/richrates1.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5445084917076597362&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The application consists of three pages. Since the application is based on JSF2, it uses JSF&#39;s new feature - implicit navigation. On the first page there is a convertor for currencies and the second page contains a table with all exchange rates on given day. It uses a data table with data scroller so that the table is paginated and all columns are sortable.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://4.bp.blogspot.com/_9Ij88JrLvbY/S5DUYgwLNjI/AAAAAAAAFNk/SrMa4OPA9w8/s1600-h/richrates2.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 298px;&quot; src=&quot;http://4.bp.blogspot.com/_9Ij88JrLvbY/S5DUYgwLNjI/AAAAAAAAFNk/SrMa4OPA9w8/s320/richrates2.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5445085467064874546&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The last page renders a chart for selected currency and date. The currency can be changed by dragging and dropping a flag from the list on the right. The chart is based on JavaScript library Flot which is wrapped to JSF components by JSFlot (&lt;a href=&quot;http://code.google.com/p/jsflot/&quot;&gt;http://code.google.com/p/jsflot&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://3.bp.blogspot.com/_9Ij88JrLvbY/S5DUkTufXpI/AAAAAAAAFNs/NIIrGPMhfrA/s1600-h/richrates3.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 299px;&quot; src=&quot;http://3.bp.blogspot.com/_9Ij88JrLvbY/S5DUkTufXpI/AAAAAAAAFNs/NIIrGPMhfrA/s320/richrates3.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5445085669726576274&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As you can see, the application is highly dependent on calendar component. Internally the application uses as many JSF2 features as possible. Unfortunatelly, there are some limitations in RichFaces 3.3.3 when used with JSF2 (&lt;a href=&quot;http://community.jboss.org/wiki/RichFaces333andJSF20&quot;&gt;see JBoss wiki&lt;/a&gt;). I would like to thank &lt;a href=&quot;http://relation.to/Bloggers/Ilya&quot;&gt;Ilya Shaikovsky&lt;/a&gt; who  found some bugs in this application.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://anonsvn.jboss.org/repos/qa/people/lfryc/ribber/trunk/&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;Ribber&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The last application is a simple Jabber client. Ribber demonstrates the usage of JSF2, RichFaces 3.3.3 and &lt;a href=&quot;http://seamframework.org/Weld&quot;&gt;Weld&lt;/a&gt;, reference implementation of a new Java specification - &lt;a href=&quot;http://jcp.org/en/jsr/detail?id=299&quot;&gt;Contexts and Dependency Injection&lt;/a&gt;.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We plan to port all these applications to RichFaces 4 as soon as it contains all needed visual components. Since RichFaces 4 will fully implement Java Server Faces 2, application will be able to use all new features of JSF2.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pavol.pitonak.com/feeds/3119353139280213456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5409509891600954773/3119353139280213456' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/3119353139280213456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/3119353139280213456'/><link rel='alternate' type='text/html' href='http://blog.pavol.pitonak.com/2010/03/new-richfaces-sample-applications.html' title='New RichFaces Sample Applications'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_9Ij88JrLvbY/S5DTJzWAKgI/AAAAAAAAFM4/2vbbW2070fE/s72-c/tictactoe.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5409509891600954773.post-750125537745623197</id><published>2009-10-06T10:16:00.004+02:00</published><updated>2009-10-06T10:22:15.540+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="Java Server Faces"/><category scheme="http://www.blogger.com/atom/ns#" term="JSF"/><category scheme="http://www.blogger.com/atom/ns#" term="RichFaces"/><title type='text'>RichFaces 3.3.2.GA Released</title><content type='html'>Yesterday &lt;a href=&quot;http://www.jboss.org/richfaces&quot;&gt;Richfaces&lt;/a&gt; 3.3.2.GA was released. You can download it &lt;a href=&quot;http://jboss.org/richfaces/download/stable.html&quot;&gt;here&lt;/a&gt;. Full changelog can be found in project&#39;s &lt;a href=&quot;https://jira.jboss.org/jira/secure/ReleaseNote.jspa?version=12313513&amp;styleName=Html&amp;projectId=12310341&amp;Create=Create&quot;&gt;Jira&lt;/a&gt;. More info can be found in &lt;a href=&quot;http://in.relation.to/Bloggers/RichFaces332GAReleased&quot;&gt;Jay Balunas&#39; blog&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://blog.pavol.pitonak.com/feeds/750125537745623197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5409509891600954773/750125537745623197' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/750125537745623197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/750125537745623197'/><link rel='alternate' type='text/html' href='http://blog.pavol.pitonak.com/2009/10/richfaces-332ga-released.html' title='RichFaces 3.3.2.GA Released'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5409509891600954773.post-9129893979482597608</id><published>2009-06-29T15:49:00.007+02:00</published><updated>2009-06-29T15:58:22.448+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Selenium"/><category scheme="http://www.blogger.com/atom/ns#" term="testing"/><category scheme="http://www.blogger.com/atom/ns#" term="tips"/><title type='text'>Clicking an input with Selenium</title><content type='html'>Today I needed to click an input of type &lt;span style=&quot;font-style:italic;&quot;&gt;image&lt;/span&gt; with Selenium.&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;html&quot;&gt;&lt;br /&gt;&amp;lt;input type=&#39;image&#39; ...&amp;gt&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I tried Selenium&#39;s &lt;span style=&quot;font-style:italic;&quot;&gt;click&lt;/span&gt; and &lt;span style=&quot;font-style:italic;&quot;&gt;clickAt&lt;/span&gt; methods. It didn&#39;t work. Nor firing an &lt;span style=&quot;font-style:italic;&quot;&gt;click&lt;/span&gt; event helped. However, it works when you fire a &lt;span style=&quot;font-style:italic;&quot;&gt;mousedown&lt;/span&gt; event.&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;&lt;br /&gt;selenium.fireEvent(&quot;mylocator&quot;, &quot;mousedown&quot;);&lt;br /&gt;&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pavol.pitonak.com/feeds/9129893979482597608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5409509891600954773/9129893979482597608' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/9129893979482597608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/9129893979482597608'/><link rel='alternate' type='text/html' href='http://blog.pavol.pitonak.com/2009/06/clicking-input-with-selenium.html' title='Clicking an input with Selenium'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5409509891600954773.post-5130135078926133659</id><published>2009-04-02T22:55:00.002+02:00</published><updated>2009-04-02T23:00:00.849+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="funny"/><title type='text'>Tomáš Hudák&#39;s World</title><content type='html'>Do you want to learn something about Slovakia and what&#39;s happening at the moment? There is one funny video...&lt;br /&gt;&lt;br /&gt;&lt;iframe width=&quot;442&quot; height=&quot;374&quot; border=&quot;0&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; style=&quot;padding:0px; margin:0px; border: 0px;&quot; src=&quot;http://www.sme.sk/vp/8832/&quot;&gt;&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pavol.pitonak.com/feeds/5130135078926133659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5409509891600954773/5130135078926133659' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/5130135078926133659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/5130135078926133659'/><link rel='alternate' type='text/html' href='http://blog.pavol.pitonak.com/2009/04/tomas-hudaks-world.html' title='Tomáš Hudák&#39;s World'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5409509891600954773.post-5779401119055881587</id><published>2009-03-10T14:05:00.002+01:00</published><updated>2009-03-10T14:08:49.288+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="economics"/><category scheme="http://www.blogger.com/atom/ns#" term="money"/><category scheme="http://www.blogger.com/atom/ns#" term="video"/><title type='text'>Money As Debt</title><content type='html'>Yesterday I decided I would expand my economic knowledge. Don&#39;t you know where do money come from? Neither did I...&lt;br /&gt;&lt;br /&gt;&lt;embed id=&quot;VideoPlayback&quot; src=&quot;http://video.google.com/googleplayer.swf?docid=-6274137397037686344&amp;amp;hl=en&amp;amp;fs=true&quot; style=&quot;width:400px;height:326px&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;/embed&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pavol.pitonak.com/feeds/5779401119055881587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5409509891600954773/5779401119055881587' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/5779401119055881587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/5779401119055881587'/><link rel='alternate' type='text/html' href='http://blog.pavol.pitonak.com/2009/03/money-as-debt.html' title='Money As Debt'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5409509891600954773.post-8717149884495034251</id><published>2008-10-10T13:07:00.020+02:00</published><updated>2008-10-11T13:37:39.227+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ant"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="Mercurial"/><category scheme="http://www.blogger.com/atom/ns#" term="NetBeans"/><category scheme="http://www.blogger.com/atom/ns#" term="Suse"/><title type='text'>Building NetBeans IDE</title><content type='html'>To build NetBeans IDE you need JDK 1.5, Apache Ant 1.7.0 and Mercurial 1.0 or newer. To download sources type &lt;span style=&quot;font-style: italic;&quot;&gt;hg clone http://hg.netbeans.org/main&lt;/span&gt;. To download changes in sourcer type &lt;span style=&quot;font-style: italic;&quot;&gt;hg pull&lt;/span&gt; in &#39;main&#39; directory. After that you need to type &lt;span style=&quot;font-style: italic;&quot;&gt;hg update&lt;/span&gt; to get your working copy.&lt;br /&gt;&lt;br /&gt;Now you can start building. To start building you just type &#39;ant&#39; (it will automatically use&lt;br /&gt;build.xml). I had several problems during the installation.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;No supported regular expression matcher found: java.lang.ClassNotFoundException:&lt;br /&gt;org.apache.tools.ant.util.regexp.Jdk14RegexpMatcher&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;To fix this problem in Suse you have to install a package called &lt;span style=&quot;font-style: italic;&quot;&gt;ant-apache-regexp&lt;/span&gt;. It is&lt;br /&gt;dependent on package &lt;span style=&quot;font-style: italic;&quot;&gt;regexp&lt;/span&gt; which will be installed automatically.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;BUILD FAILED&lt;br /&gt;/data/src/NetBeans/main/nbbuild/build.xml:720: The following error occurred while executing this line:&lt;br /&gt;/data/src/NetBeans/main/nbbuild/build.xml:715: The following error occurred while executing this line:&lt;br /&gt;/data/src/NetBeans/main/nbbuild/build.xml:750: The following error occurred while executing this line:&lt;br /&gt;/data/src/NetBeans/main/nbbuild/build.xml:733: The following error occurred while executing this line:&lt;br /&gt;/data/src/NetBeans/main/nbbuild/build.xml:715: The following error occurred while executing this line:&lt;br /&gt;/data/src/NetBeans/main/nbbuild/build.xml:761: The following error occurred while executing this line:&lt;br /&gt;/data/src/NetBeans/main/nbbuild/default.xml:127: Problem: failed to create task or type propertyfile&lt;br /&gt;Cause: the class org.apache.tools.ant.taskdefs.optional.PropertyFile was not found.&lt;br /&gt;This looks like one of Ant&#39;s optional components.&lt;br /&gt;Action: Check that the appropriate optional JAR exists in&lt;br /&gt;  -/usr/share/ant/lib&lt;br /&gt;  -/home/paliboy/.ant/lib&lt;br /&gt;  -a directory added on the command line with the -lib argument&lt;br /&gt;&lt;br /&gt;Do not panic, this is a common problem.&lt;br /&gt;The commonest cause is a missing JAR.&lt;br /&gt;&lt;br /&gt;This is not a bug; it is a configuration problem&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This problem can be fixed by installing optional ant tasks. It can be found in package &lt;span style=&quot;font-style: italic;&quot;&gt;ant-nodeps&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;The last problem was with JDK 1.5. There is also JDK 6 in my computer and ant uses it to build&lt;br /&gt;projects. If you want to use JDK 1.5 for building NetBeans you should put&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;nbjdk.home=&amp;lt;path_to_jdk_15&amp;gt;&lt;/span&gt; into NetBeans/main/nbbuild/user.build.properties. In my computer, JDK 1.5 is installed in /usr/java/jdk1.5.0_15.&lt;br /&gt;&lt;br /&gt;Now it should start compiling. Be prepared it takes a (longer) while the first time. More information can be found on &lt;a href=&quot;http://wiki.netbeans.org/&quot;&gt;wiki.netbeans.org&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://blog.pavol.pitonak.com/feeds/8717149884495034251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5409509891600954773/8717149884495034251' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/8717149884495034251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/8717149884495034251'/><link rel='alternate' type='text/html' href='http://blog.pavol.pitonak.com/2008/10/building-netbeans-ide.html' title='Building NetBeans IDE'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5409509891600954773.post-5970776437137871824</id><published>2008-09-27T21:00:00.043+02:00</published><updated>2008-09-27T23:52:42.781+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Glassfish"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="MySQL"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle"/><title type='text'>Creating database pools in Glassfish</title><content type='html'>In most web applications, each request needs a database connection. You can create a &lt;a href=&quot;http://java.sun.com/javase/6/docs/api/java/sql/Connection.html&quot;&gt;Connection&lt;/a&gt; object directly, but it is very expensive and exhausts system resources. Solution for this problems is called &#39;connection pooling&#39;. It is a technology for &#39;recycling&#39; database connections. Application server creates more connections and when servlet needs a connection, it gets it from this pool. When servlet finishes its work it returns the connection back to pool and it can be used by another object. This improves application performance significantly.&lt;br /&gt;&lt;br /&gt;I assume you have Glassfish v2 installed and configured. If you haven&#39;t copied database drivers to Glassfish&#39;s lib directory yet do it now.  Driver for Oracle 10 XE is in file /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/jdbc/lib/ojdbc14.jar. Driver fo MySQL can be found &lt;a href=&quot;http://dev.mysql.com/downloads/connector/j/5.0.html&quot;&gt;here&lt;/a&gt;. I don&#39;t use the newest driver because there are some problems with it. You need to copy jar to lib directory. On my computer it is /usr/local/glassfish-v2ur2/lib. After copying it is advisable to restart Glassfish.&lt;br /&gt;&lt;br /&gt;Now you are ready to login to Glassfish&#39;s admin console. You can usually find it on address &lt;a href=&quot;http://localhost:4848/&quot;&gt;localhost:4848&lt;/a&gt;. In the case you didn&#39;t set password during the installation name is &#39;admin&#39; and password &#39;adminadmin&#39;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://4.bp.blogspot.com/_9Ij88JrLvbY/SN6XV-TsDbI/AAAAAAAAFDs/mOakmD2cE7o/s1600-h/adminconsole1&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;http://4.bp.blogspot.com/_9Ij88JrLvbY/SN6XV-TsDbI/AAAAAAAAFDs/mOakmD2cE7o/s400/adminconsole1&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5250800619319201202&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;Go to Resources -&gt; JDBC -&gt; Connection Pools as shown on the following picture:&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://4.bp.blogspot.com/_9Ij88JrLvbY/SN6ZGm9R4QI/AAAAAAAAFD0/yQuG6aTpHW8/s1600-h/adminconsole2.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;http://4.bp.blogspot.com/_9Ij88JrLvbY/SN6ZGm9R4QI/AAAAAAAAFD0/yQuG6aTpHW8/s400/adminconsole2.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5250802554376413442&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Click on New and fill in the following form. Choose name according to your naming conventions. For Oracle you need also change Database Vendor. Click Next.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://3.bp.blogspot.com/_9Ij88JrLvbY/SN6fyuu8O7I/AAAAAAAAFEE/2x-xOji0DMI/s1600-h/adminconsole3.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;http://3.bp.blogspot.com/_9Ij88JrLvbY/SN6fyuu8O7I/AAAAAAAAFEE/2x-xOji0DMI/s400/adminconsole3.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5250809909447769010&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;On the following page you can set minimum and maximum pool size, idle timeout, transaction isolation... For small project default values should be OK. Scroll down to additional properties. Assuming you have database installed on computer where Glassfish is installed, you need to set databaseName, user and password for MySQL. For Oracle you have to specify also URL, e.g. jdbc:oracle:thin:@localhost:1521:XE. Click Finish.&lt;br /&gt;&lt;br /&gt;Go to Resources -&gt; JDBC -&gt; Connection Pools and click on name of created pool. On the top there is a button &#39;Ping&#39;. If you configured everything right you should see &#39;Ping Succeeded&#39;.&lt;br /&gt;&lt;br /&gt;Now we will create a JNDI name for our pool. Go to Resources -&gt; JDBC -&gt; JDBC Resources and click on New. Choose a JNDI name. It should start with jdbc, e.g. jdbc/oracle, jdbc/mysql... In pool name choose the pool you have just created. Now only click OK and you have a new database connection pool accessible using its JNDI.</content><link rel='replies' type='application/atom+xml' href='http://blog.pavol.pitonak.com/feeds/5970776437137871824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5409509891600954773/5970776437137871824' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/5970776437137871824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/5970776437137871824'/><link rel='alternate' type='text/html' href='http://blog.pavol.pitonak.com/2008/09/creating-database-pools-in-glassfish.html' title='Creating database pools in Glassfish'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_9Ij88JrLvbY/SN6XV-TsDbI/AAAAAAAAFDs/mOakmD2cE7o/s72-c/adminconsole1" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5409509891600954773.post-585697350400054392</id><published>2008-04-03T18:09:00.014+02:00</published><updated>2008-04-03T19:08:45.481+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="java"/><title type='text'>Syntax highlighting</title><content type='html'>Today I was googling syntax highlighting usable here in blogger. After a while I found an interesting Java Script. It&#39;s called SyntaxHighlighter and &lt;a href=&quot;http://developertips.blogspot.com/2007/08/syntaxhighlighter-on-blogger.html&quot;&gt;here&lt;/a&gt; is a howto. It supports C, C++, C#, Delphi, Pascal, Java, Java Script, XML and some other languages.&lt;br /&gt;&lt;br /&gt;An example in Java&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;&lt;br /&gt;class Hello {&lt;br /&gt;    public static void main(String [] args) {&lt;br /&gt;        System.out.println(&quot;Hello World!&quot;);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;And the same thing in C++&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;cpp&quot;&gt;&lt;br /&gt;#include &amp;lt;iostream&gt;&lt;br /&gt;&lt;br /&gt;int main(int argc, char * argv[]) {&lt;br /&gt;    std::cout &amp;lt;&amp;lt; &quot;Hello World!&quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;    return 0;&lt;br /&gt;}&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pavol.pitonak.com/feeds/585697350400054392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5409509891600954773/585697350400054392' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/585697350400054392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/585697350400054392'/><link rel='alternate' type='text/html' href='http://blog.pavol.pitonak.com/2008/04/syntax-highlighting.html' title='Syntax highlighting'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5409509891600954773.post-7848637061609753010</id><published>2008-03-17T10:54:00.003+01:00</published><updated>2008-03-17T11:18:12.610+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="NetBeans"/><category scheme="http://www.blogger.com/atom/ns#" term="Qt Jambi"/><title type='text'>Qt Jambi&#39;s documentation in NetBeans</title><content type='html'>Yesterday I didn&#39;t know how to use Trolltech&#39;s documentation in NetBeans IDE. Today I found out it is as simple as adding new library to your project. To be able to use documentation you only need to click Tools-&gt;Libraries, then select QtJambi from the list on the left. Select the Javadoc tab and click Add Zip/Folder. Choose the directory &#39;doc&#39; from Qt Jambi&#39;s directory. Enjoy.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://4.bp.blogspot.com/_9Ij88JrLvbY/R95FFakayQI/AAAAAAAAANA/5idWZ9LdZsQ/s1600-h/jambi06.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;http://4.bp.blogspot.com/_9Ij88JrLvbY/R95FFakayQI/AAAAAAAAANA/5idWZ9LdZsQ/s320/jambi06.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5178652580856383746&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://1.bp.blogspot.com/_9Ij88JrLvbY/R95FLqkayRI/AAAAAAAAANI/7ZmdkNL7R5o/s1600-h/jambi07.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;http://1.bp.blogspot.com/_9Ij88JrLvbY/R95FLqkayRI/AAAAAAAAANI/7ZmdkNL7R5o/s320/jambi07.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5178652688230566162&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pavol.pitonak.com/feeds/7848637061609753010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5409509891600954773/7848637061609753010' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/7848637061609753010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/7848637061609753010'/><link rel='alternate' type='text/html' href='http://blog.pavol.pitonak.com/2008/03/qt-jambis-documentation-in-netbeans.html' title='Qt Jambi&#39;s documentation in NetBeans'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_9Ij88JrLvbY/R95FFakayQI/AAAAAAAAANA/5idWZ9LdZsQ/s72-c/jambi06.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5409509891600954773.post-8656541420183781445</id><published>2008-03-16T15:12:00.013+01:00</published><updated>2008-03-16T17:58:20.077+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="NetBeans"/><category scheme="http://www.blogger.com/atom/ns#" term="Qt"/><title type='text'>Hello Qt Jambi in NetBeans</title><content type='html'>Qt is a multiplatform C++ GUI development framework. For java developers who like Qt and don&#39;t like Swing programs&#39; look in Linux, Qt Jambi could be a good choice. It hasn&#39;t been developed as long as Qt but Trolltech&#39;s sites claim it provides all the functionality of Qt. The latest version was released on March 13 and &lt;a href=&quot;http://labs.trolltech.com/blogs/2008/03/12/qt-jambi-44-preview-released/&quot;&gt;version 4.4&lt;/a&gt; is on the way.&lt;br /&gt;&lt;br /&gt;There is a plugin for Eclipse IDE. It should provide access to the Qt Jambi documentation and Qt Designer from within the Eclipse. But what about NetBeans? I&#39;ve just installed NetBeans 6.1 Beta which is &lt;a href=&quot;http://www.netbeans.org/community/releases/61/&quot;&gt;much better&lt;/a&gt; than 6.0.1 I was using before. It would be fine to have full integration of Qt Jambi in NetBeans but it&#39;s still possible to use it for everything except designing GUI. You simply run Qt Designer, create UI and write code in NetBeans. You will probably also miss a resources manager (for adding pictures, sound files ... to your project). I don&#39;t know how to use Trolltech&#39;s documentation in NetBeans.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://doc.trolltech.com/qtjambi-4.3.2_01/com/trolltech/qt/qtjambi-examples.html&quot;&gt;There&lt;/a&gt; are quite a lot of examples and tutorials on Trolltech&#39;s sites (as part of documentation). So let&#39;s try to write a &#39;Hello World!&#39;  program.  Launch  NetBeans and create a new project (Java -&gt; Java Application) called e.g. HelloWorld.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://1.bp.blogspot.com/_9Ij88JrLvbY/R91FI6kayLI/AAAAAAAAAMA/pee4XUrWg6Q/s1600-h/jambi01.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;http://1.bp.blogspot.com/_9Ij88JrLvbY/R91FI6kayLI/AAAAAAAAAMA/pee4XUrWg6Q/s320/jambi01.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5178371166009215154&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;Let&#39;s write method main:&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://2.bp.blogspot.com/_9Ij88JrLvbY/R91HtKkayMI/AAAAAAAAAMI/clY2KCJ-1YQ/s1600-h/jambi02.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;http://2.bp.blogspot.com/_9Ij88JrLvbY/R91HtKkayMI/AAAAAAAAAMI/clY2KCJ-1YQ/s320/jambi02.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5178373987802728642&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Now we can see NetBeans does not know Qt&#39;s classes. Download Qt Jambi from &lt;a href=&quot;http://trolltech.com/downloads/opensource&quot;&gt;here&lt;/a&gt; and extract it. Select Tools-&gt;Libraries from NetBeans&#39; menu. Click &#39;New Library ...&#39; and choose and type the name of library, e.g. QtJambi. Now click &#39;Add JAR/Folder ...&#39;, navigate to the directory where you extracted the library and choose file qtjambi.jar. Now click on Libraries in your project and choose Add Library. In following dialog choose QtJambi.&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://2.bp.blogspot.com/_9Ij88JrLvbY/R91LoKkayNI/AAAAAAAAAMQ/Ld-1wWWRuYk/s1600-h/jambi03.png&quot;&gt;&lt;img style=&quot;cursor: pointer;&quot; src=&quot;http://2.bp.blogspot.com/_9Ij88JrLvbY/R91LoKkayNI/AAAAAAAAAMQ/Ld-1wWWRuYk/s320/jambi03.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5178378299949893842&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Now we can add imports in usual way.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://2.bp.blogspot.com/_9Ij88JrLvbY/R91NEKkayOI/AAAAAAAAAMY/ozairDpWJeA/s1600-h/jambi04.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;http://2.bp.blogspot.com/_9Ij88JrLvbY/R91NEKkayOI/AAAAAAAAAMY/ozairDpWJeA/s320/jambi04.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5178379880497858786&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Now we are prepared to run our first java program using Qt. In Linux (KDE) it will look like this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://4.bp.blogspot.com/_9Ij88JrLvbY/R91N2qkayPI/AAAAAAAAAMg/wqE9WSydQnk/s1600-h/jambi05.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;http://4.bp.blogspot.com/_9Ij88JrLvbY/R91N2qkayPI/AAAAAAAAAMg/wqE9WSydQnk/s320/jambi05.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5178380748081252594&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pavol.pitonak.com/feeds/8656541420183781445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5409509891600954773/8656541420183781445' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/8656541420183781445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/8656541420183781445'/><link rel='alternate' type='text/html' href='http://blog.pavol.pitonak.com/2008/03/hello-qt-jambi-in-netbeans.html' title='Hello Qt Jambi in NetBeans'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_9Ij88JrLvbY/R91FI6kayLI/AAAAAAAAAMA/pee4XUrWg6Q/s72-c/jambi01.png" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5409509891600954773.post-5541206933570856416</id><published>2008-03-01T10:13:00.002+01:00</published><updated>2008-03-01T10:25:49.412+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Amazon"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>Amazon MP3 Downloader</title><content type='html'>Amazon finally released Linux version of its MP3 Downloader. You can download it &lt;a href=&quot;http://www.amazon.com/gp/dmusic/help/amd.html&quot;&gt;here&lt;/a&gt;. There are packages for openSUSE, Ubuntu, Debian, and Fedora.&lt;br /&gt;&lt;br /&gt;Now it has only one bug &lt;span class=&quot;tiny&quot;&gt;&lt;blockquote&gt;Amazon MP3 Purchases are limited to U.S. customers.&lt;/blockquote&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pavol.pitonak.com/feeds/5541206933570856416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5409509891600954773/5541206933570856416' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/5541206933570856416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/5541206933570856416'/><link rel='alternate' type='text/html' href='http://blog.pavol.pitonak.com/2008/03/amazon-mp3-downloader.html' title='Amazon MP3 Downloader'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5409509891600954773.post-4260686030670157792</id><published>2008-02-27T23:33:00.002+01:00</published><updated>2008-02-27T23:40:36.559+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="KDE"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>Celebration</title><content type='html'>&lt;a href=&quot;http://pavol.pitonak.com/2008/02/new-keyboard-layouts-for-ktouch.html&quot;&gt;Here&lt;/a&gt; I wrote about new keyboard layouts for KTouch. It lasted longer than I expected but after some communication problems it became part of KDE4. It is SVN commit 780062 by annma - my first bigger contribution to OSS.</content><link rel='replies' type='application/atom+xml' href='http://blog.pavol.pitonak.com/feeds/4260686030670157792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5409509891600954773/4260686030670157792' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/4260686030670157792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/4260686030670157792'/><link rel='alternate' type='text/html' href='http://blog.pavol.pitonak.com/2008/02/celebration.html' title='Celebration'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5409509891600954773.post-5854600113818169223</id><published>2008-02-27T14:44:00.002+01:00</published><updated>2008-02-27T14:44:52.578+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows"/><title type='text'>A Windows Break-up Letter</title><content type='html'>Dear Windows Professional Service Pack 2:I didn&#39;t want to tell you this in person, because I thought it might be too complicated, and might take too long. After all, we&#39;ve been together for a long time, almost five years and running now ...&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://ubuntuforums.org/showthread.php?p=4411307&quot;&gt;read more&lt;/a&gt; | &lt;a href=&quot;http://www.blogger.com/linux_unix/A_Windows_Break_up_Letter&quot;&gt;digg story&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pavol.pitonak.com/feeds/5854600113818169223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5409509891600954773/5854600113818169223' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/5854600113818169223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/5854600113818169223'/><link rel='alternate' type='text/html' href='http://blog.pavol.pitonak.com/2008/02/windows-break-up-letter.html' title='A Windows Break-up Letter'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5409509891600954773.post-4114627270442307730</id><published>2008-02-26T19:35:00.002+01:00</published><updated>2008-02-26T19:36:17.683+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="Vista"/><title type='text'>Linux user in Vista land.</title><content type='html'>5+ year Linux user (straight Linux, no Windows on the desktop) spends 4 months with Vista as his desktop.  Read how he got comfy (Getting Konsole running, WinMover and booting out Outlook) and his disappointments.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://blog.indigio.com/index.php/2008/02/24/re-windows-vista-vs-linux/&quot;&gt;read more&lt;/a&gt; | &lt;a href=&quot;http://www.blogger.com/linux_unix/Linux_user_in_Vista_land&quot;&gt;digg story&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pavol.pitonak.com/feeds/4114627270442307730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5409509891600954773/4114627270442307730' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/4114627270442307730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/4114627270442307730'/><link rel='alternate' type='text/html' href='http://blog.pavol.pitonak.com/2008/02/linux-user-in-vista-land.html' title='Linux user in Vista land.'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5409509891600954773.post-6744514453769722331</id><published>2008-02-18T12:40:00.009+01:00</published><updated>2008-02-18T13:22:28.279+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="KDE"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>New keyboard layouts for KTouch</title><content type='html'>KTouch is a program for learning how to type. I use version 1.7.1 which use KDE4. It is pretty usable but it misses a lot of keyboard layouts. Last weekend I had some time so I did Slovak, Czech and Russian keyboard layouts. I made both qwerty and qwertz Slovak and Czech layouts.&lt;br /&gt;&lt;br /&gt;I hope it will be in svn soon but till then you can download it &lt;a href=&quot;http://www.box.net/shared/9re1udxesw&quot;&gt;here&lt;/a&gt;. How to use it:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;su&lt;br /&gt;#type your password&lt;br /&gt;cp ktouch-layouts.tar.bz2  /usr/share/kde4/apps/ktouch&lt;br /&gt;cd /usr/share/kde4/apps/ktouch&lt;br /&gt;tar -xvjf ktouch-layouts.tar.bz2&lt;br /&gt;rm ktouch-layouts.tar.bz2&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://1.bp.blogspot.com/_9Ij88JrLvbY/R7l2Bh6XlyI/AAAAAAAAALg/ZXEL0FPCUfk/s1600-h/ktouch3.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;http://1.bp.blogspot.com/_9Ij88JrLvbY/R7l2Bh6XlyI/AAAAAAAAALg/ZXEL0FPCUfk/s320/ktouch3.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5168291816039487266&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://3.bp.blogspot.com/_9Ij88JrLvbY/R7l1nB6XlwI/AAAAAAAAALQ/Th_2_xCerDE/s1600-h/ktouch1.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;http://3.bp.blogspot.com/_9Ij88JrLvbY/R7l1nB6XlwI/AAAAAAAAALQ/Th_2_xCerDE/s320/ktouch1.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5168291360772953858&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://2.bp.blogspot.com/_9Ij88JrLvbY/R7l1vx6XlxI/AAAAAAAAALY/xftTkp1xwAs/s1600-h/ktouch2.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;http://2.bp.blogspot.com/_9Ij88JrLvbY/R7l1vx6XlxI/AAAAAAAAALY/xftTkp1xwAs/s320/ktouch2.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5168291511096809234&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pavol.pitonak.com/feeds/6744514453769722331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5409509891600954773/6744514453769722331' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/6744514453769722331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/6744514453769722331'/><link rel='alternate' type='text/html' href='http://blog.pavol.pitonak.com/2008/02/new-keyboard-layouts-for-ktouch.html' title='New keyboard layouts for KTouch'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_9Ij88JrLvbY/R7l2Bh6XlyI/AAAAAAAAALg/ZXEL0FPCUfk/s72-c/ktouch3.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5409509891600954773.post-3994599622398472510</id><published>2008-02-15T02:50:00.002+01:00</published><updated>2008-02-15T02:51:02.914+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>Google Sponsors Wine Improvements</title><content type='html'>&quot;Perhaps the biggest news is that we hired Codeweavers to make Photoshop CS and CS2 work better under Wine. Photoshop is one of those applications that Desktop linux users are constantly clamoring for, and we&#39;re happy to say they work pretty well now. Perhaps not coincidentally, apps like Flash 8 are now starting to work in Wine, too.&quot;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://google-opensource.blogspot.com/2008/02/google-sponsors-wine-improvements.html&quot;&gt;read more&lt;/a&gt; | &lt;a href=&quot;http://digg.com/linux_unix/Google_Sponsors_Wine_Improvements&quot;&gt;digg story&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pavol.pitonak.com/feeds/3994599622398472510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5409509891600954773/3994599622398472510' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/3994599622398472510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/3994599622398472510'/><link rel='alternate' type='text/html' href='http://blog.pavol.pitonak.com/2008/02/google-sponsors-wine-improvements.html' title='Google Sponsors Wine Improvements'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5409509891600954773.post-9181626542632089982</id><published>2008-02-13T21:04:00.002+01:00</published><updated>2008-02-13T21:06:39.317+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AdSence"/><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><title type='text'>37% of Google AdSense Publishers Earned Over a $1,000 in 07</title><content type='html'>An interesting survey about AdSence. Using AdSence, 70% of people make either less than $50 or more than $1000.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.seroundtable.com/archives/016231.html&quot;&gt;read more&lt;/a&gt; | &lt;a href=&quot;http://digg.com/tech_news/37_of_Google_AdSense_Publishers_Earned_Over_a_1_000_in_07&quot;&gt;digg story&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pavol.pitonak.com/feeds/9181626542632089982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5409509891600954773/9181626542632089982' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/9181626542632089982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/9181626542632089982'/><link rel='alternate' type='text/html' href='http://blog.pavol.pitonak.com/2008/02/37-of-google-adsense-publishers-earned.html' title='37% of Google AdSense Publishers Earned Over a $1,000 in 07'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5409509891600954773.post-7664185820135454384</id><published>2008-02-12T23:08:00.001+01:00</published><updated>2008-02-12T23:18:18.414+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="news"/><category scheme="http://www.blogger.com/atom/ns#" term="Yahoo"/><title type='text'>Microsoft Responds to Yahoo! Announcement</title><content type='html'>It is unfortunate that Yahoo! has not embraced our full and fair proposal to combine our companies. Based on conversations with stakeholders of both companies, we are confident that moving forward promptly to consummate a transaction is in the best interests of all parties.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://biz.yahoo.com/prnews/080211/aqm241.html?.v=2&quot;&gt;read more&lt;/a&gt; | &lt;a href=&quot;http://digg.com/microsoft/Microsoft_Responds_to_Yahoo_Announcement&quot;&gt;digg story&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.pavol.pitonak.com/feeds/7664185820135454384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5409509891600954773/7664185820135454384' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/7664185820135454384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5409509891600954773/posts/default/7664185820135454384'/><link rel='alternate' type='text/html' href='http://blog.pavol.pitonak.com/2008/02/microsoft-responds-to-yahoo.html' title='Microsoft Responds to Yahoo! Announcement'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>