<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Rule of Tech</title>
	<atom:link href="http://ruleoftech.com/feed" rel="self" type="application/rss+xml" />
	<link>http://ruleoftech.com</link>
	<description>Everything and nothing but still something about Tech</description>
	<lastBuildDate>Sat, 24 Mar 2012 20:01:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Exclude JQuery libraries from Eclipse&#8217;s JavaScript Validation</title>
		<link>http://ruleoftech.com/2012/exclude-jquery-libraries-from-eclipses-javascript-validation</link>
		<comments>http://ruleoftech.com/2012/exclude-jquery-libraries-from-eclipses-javascript-validation#comments</comments>
		<pubDate>Sat, 24 Mar 2012 20:01:48 +0000</pubDate>
		<dc:creator>Marko</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[ide]]></category>

		<guid isPermaLink="false">http://ruleoftech.com/?p=210</guid>
		<description><![CDATA[<p>Eclipse likes to validate JavaScript when doing Dynamic Web Modules and thus may give you false positive validation errors on 3rd party JavaScript libraries like JQuery. Although you can turn off the validation altogether but better solution is to configure it to exclude files as <a href="http://stackoverflow.com/a/7931839">Alexander shows us at Stackoverflow</a>.&#8230; <a href="http://ruleoftech.com/2012/exclude-jquery-libraries-from-eclipses-javascript-validation" class="read_more">Continue reading <span class=\\\"meta-nav\\\">&#8594;</span></a></p>]]></description>
			<content:encoded><![CDATA[<p>Eclipse likes to validate JavaScript when doing Dynamic Web Modules and thus may give you false positive validation errors on 3rd party JavaScript libraries like JQuery. Although you can turn off the validation altogether but better solution is to configure it to exclude files as <a href="http://stackoverflow.com/a/7931839">Alexander shows us at Stackoverflow</a>.</p>
<p>Eclipse Indigo (3.7) has the option to selectively remove some JavaScript sources from validation. The information about JavaScript source inclusion/exclusion is saved into .settings/.jsdtscope file.</p>
<ol>
<li>Right click your project</li>
<li>Select Properties &rarr; JavaScript &rarr; Include Path</li>
<li>Select Source tab</li>
<li>Expand JavaScript source folder</li>
<li>Highlight Excluded pattern</li>
<li>Click Edit button</li>
<li>Click Add button next to Exclusion patterns box</li>
<li>You may use wildcard pattern, or click Browse button to add the source by name.
<ul>
<li>Exclude all JQuery files with pattern like: <em>js/jquery-*</em></li>
</ul>
</li>
</ol>
<p>The configuration with JQuery files excluded from validation looks like this:</p>
<div class="img-center">
<a href="http://ruleoftech.com/files/2011/12/eclipse_exclude-javascript.jpg"><img class="alignnone size-full wp-image-218 colorbox-210" title="Eclipse and Project settings: Exclude JQuery library from Validation" src="http://ruleoftech.com/files/2011/12/eclipse_exclude-javascript.jpg" alt="eclipse_exclude-javascript" width="732" height="734" /></a>
</div>
<h2  class="related_post_title">Related journal entries</h2><ul class="related_post"><li><a href="http://ruleoftech.com/2009/eclipse-class-file-name-must-end-with-class-exception-in-search" title="Eclipse: Class file name must end with .class exception in search">Eclipse: Class file name must end with .class exception in search</a></li><li><a href="http://ruleoftech.com/2012/eclipse-and-maven-console" title="Eclipse and Maven Console">Eclipse and Maven Console</a></li><li><a href="http://ruleoftech.com/2012/using-cacert-org-signed-certificates-for-tls" title="Using CAcert.org signed certificates for TLS">Using CAcert.org signed certificates for TLS</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://ruleoftech.com/2012/exclude-jquery-libraries-from-eclipses-javascript-validation/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse and Maven Console</title>
		<link>http://ruleoftech.com/2012/eclipse-and-maven-console</link>
		<comments>http://ruleoftech.com/2012/eclipse-and-maven-console#comments</comments>
		<pubDate>Thu, 02 Feb 2012 14:58:18 +0000</pubDate>
		<dc:creator>Marko</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://ruleoftech.com/?p=261</guid>
		<description><![CDATA[<p>Eclipse 3.7 Indigo has integrated Maven m2e plugin but is missing some expected functionality which was previously present in Sonatype releases by default. If you want your Maven Console to show something you must also install the optional &#8220;m2e &#8211; slf4j over logback logging&#8221; plugin.</p>
<p>When installing the m2e plugin there is an optional feature &#8220;m2e &#8211; slf4j over logback logging&#8221; which is needed for the Maven Console to work.&#8230; <a href="http://ruleoftech.com/2012/eclipse-and-maven-console" class="read_more">Continue reading <span class=\\\"meta-nav\\\">&#8594;</span></a></p>]]></description>
			<content:encoded><![CDATA[<p>Eclipse 3.7 Indigo has integrated Maven m2e plugin but is missing some expected functionality which was previously present in Sonatype releases by default. If you want your Maven Console to show something you must also install the optional &#8220;m2e &#8211; slf4j over logback logging&#8221; plugin.</p>
<p>When installing the m2e plugin there is an optional feature &#8220;m2e &#8211; slf4j over logback logging&#8221; which is needed for the Maven Console to work. Without it the plugin produces no output to Eclipse&#8217;s Maven Console view so that it is impossible to track plugin&#8217;s activity (background maven builds, source and javadoc downloads, etc).</p>
<p><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=351144">There is a bug filed</a> about it but it is resolved with comment <em>&#8220;As a tool, m2e is not in the position to impose any specific slf4j logging backend on the host Eclipse installation.&#8221;</em> That seems kinda strange as without the optional component the plugin is missing useful parts.</p>
<p>Just <em>&#8220;Install new sofware > Indigo > Collaboration > &#8220;m2e &#8211; slf4j over logback logging (Optional)&#8221;</em> and your Maven Console is back in business.</p>
<h2  class="related_post_title">Related journal entries</h2><ul class="related_post"><li><a href="http://ruleoftech.com/2012/exclude-jquery-libraries-from-eclipses-javascript-validation" title="Exclude JQuery libraries from Eclipse&#8217;s JavaScript Validation">Exclude JQuery libraries from Eclipse&#8217;s JavaScript Validation</a></li><li><a href="http://ruleoftech.com/2009/eclipse-class-file-name-must-end-with-class-exception-in-search" title="Eclipse: Class file name must end with .class exception in search">Eclipse: Class file name must end with .class exception in search</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://ruleoftech.com/2012/eclipse-and-maven-console/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using CAcert.org signed certificates for TLS</title>
		<link>http://ruleoftech.com/2012/using-cacert-org-signed-certificates-for-tls</link>
		<comments>http://ruleoftech.com/2012/using-cacert-org-signed-certificates-for-tls#comments</comments>
		<pubDate>Mon, 09 Jan 2012 19:26:56 +0000</pubDate>
		<dc:creator>Marko</dc:creator>
				<category><![CDATA[Howto]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[certs]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://ruleoftech.wordpress.com/?p=31</guid>
		<description><![CDATA[<p>Setting up Transport Layer Security (TLS), or as previously known as Secure Sockets Layer (SSL), for Apache, Postfix and IMAP like Dovecot is fairly easy. You just need some digital certificates and configuration. If you don&#8217;t want to pay for certificates from trusted sources like Thawte or you just don&#8217;t need that kind of trust (for development purposes), you can always produce your own certificates.&#8230; <a href="http://ruleoftech.com/2012/using-cacert-org-signed-certificates-for-tls" class="read_more">Continue reading <span class=\\\"meta-nav\\\">&#8594;</span></a></p>]]></description>
			<content:encoded><![CDATA[<p>Setting up Transport Layer Security (TLS), or as previously known as Secure Sockets Layer (SSL), for Apache, Postfix and IMAP like Dovecot is fairly easy. You just need some digital certificates and configuration. If you don&#8217;t want to pay for certificates from trusted sources like Thawte or you just don&#8217;t need that kind of trust (for development purposes), you can always produce your own certificates. But there is also a middle way: using <a href="http://www.cacert.org/">CAcert.org</a> signed certificates.</p>
<p><strong>Background</strong><br />
<a href="http://en.wikipedia.org/wiki/CAcert.org">Wikipedia tells us that CAcert.org is</a> a community-driven certificate authority that issues free public key certificates. CAcert automatically signs certificates for email addresses controlled by the requester and for domains for which certain addresses (such as &#8220;hostmaster@example.com&#8221;) are controlled by the requester. Thus it operates as a robot certificate authority. CAcert certificates can be used like any other SSL certificates although they are considered weak because CAcert does not emit any information in the certificates other than the domain name or email address. To create higher-trust certificates, users can participate in a web of trust system whereby users physically meet and verify each other&#8217;s identities. They are also not as useful in web browsers as certificates issued by commercial CAs such as VeriSign, because most installed web browsers do not distribute CAcert&#8217;s root certificate. Thus, for most web users, a certificate signed by CAcert behaves like a self-signed certificate. </p>
<p><strong>Generating Certificates</strong><br />
The procedure to sign your certificate at CAcert is rather simple. This guide assumes that the certificates are in <em>/etc/ssl/cacert/</em> and you are as <em>root</em>.</p>
<p>0. <a href="https://wiki.cacert.org/HELP/6">Join CAcert.org</a> and fill in your details. After email verification and login, add domain and service will try to verify that you can read mail on one of following accounts: root, hostmaster, postmaster, admin, webmaster or email addresses that can be found on whois data of domain that you provided.</p>
<p>1. Generate a private key that is not file encrypted:</p>
<pre>
<code>openssl genrsa -out domainname.key 1024
chown root:root domainname.key
chmod 0400 domainname.key</code>
</pre>
<p>Private keys should belong to &#8220;root&#8221; and be readable only by root.</p>
<p>You could also create a private key that is encrypted: <code>openssl genrsa -des3 -out domainname.key 1024</code></p>
<p>2. Create a CSR with the RSA private key (output will be PEM format). Do not enter extra attributes at the prompt and leave the challenge password blank (press enter): </p>
<pre>
<code>openssl req -new -key domainname.key -out domainname.csr</code>
</pre>
<p>3. Verify the contents of the CSR or private key:</p>
<pre>
<code>openssl req -noout -text -in domainname.csr</code>
<code>openssl rsa -noout -text -in domainname.key</code>
</pre>
<p>4. Send your public key to be signed by and request new server certificate from CAcert.org web site (Class 1 certificate). When you are asked for CSR paste content of <em>domainname.csr</em>. It should look like this:</p>
<pre>
-----BEGIN CERTIFICATE REQUEST-----
MIIB3TCCAUYCAQAwgZwxCzAJBgNVBAYTAkZJMRAwDgYDVQQIEwdVdXNpbWFhMQ8w
...clip...
MQ==
-----END CERTIFICATE REQUEST-----
</pre>
<p>You can verify the content of request before sending it</p>
<pre>
<code>openssl req -in domainname.csr -text -verify -noout</code>
</pre>
<p>5. Copy the Server Certificate from the CAcert.org webpage and put it in <em>domainname.crt</em> file and add permissions.</p>
<pre>
<code>chmod a=r domainname.crt</code>
</pre>
<p>Check at least the contents of Validity and Subject fields:</p>
<pre>
<code>openssl x509 -in domainname.crt -text -noout</code>
</pre>
<p>6. Get CAcert.org root certificate</p>
<pre>
<code>wget -nv https://www.cacert.org/certs/root.crt -O cacert-org.crt
chmod a=r cacert-org.crt</code>
</pre>
<p>Check the contents:</p>
<pre>
<code>openssl x509 -in cacert-org.crt -text -noout</code>
</pre>
<p>After that you&#8217;re ready to configure your services like Apache, Postfix and Dovecot to use the new certificate. Read about it later.</p>
<h2  class="related_post_title">Related journal entries</h2><ul class="related_post"><li><a href="http://ruleoftech.com/2010/installing-sun-jdk-1-6-on-centos" title="Installing Sun JDK 1.6 on CentOS">Installing Sun JDK 1.6 on CentOS</a></li><li><a href="http://ruleoftech.com/2012/exclude-jquery-libraries-from-eclipses-javascript-validation" title="Exclude JQuery libraries from Eclipse&#8217;s JavaScript Validation">Exclude JQuery libraries from Eclipse&#8217;s JavaScript Validation</a></li><li><a href="http://ruleoftech.com/2011/wordpress-mod_rewrite-rules-taking-over-mod_status-and-mod_info" title="WordPress mod_rewrite rules taking over mod_status and mod_info">WordPress mod_rewrite rules taking over mod_status and mod_info</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://ruleoftech.com/2012/using-cacert-org-signed-certificates-for-tls/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>For year 2012</title>
		<link>http://ruleoftech.com/2011/for-year-2012</link>
		<comments>http://ruleoftech.com/2011/for-year-2012#comments</comments>
		<pubDate>Sat, 31 Dec 2011 10:55:04 +0000</pubDate>
		<dc:creator>Marko</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[blog]]></category>

		<guid isPermaLink="false">http://ruleoftech.com/?p=221</guid>
		<description><![CDATA[<p>The year 2011 has been pretty quiet in this blog as I managed to write just one <a href="http://ruleoftech.com/journal/wordpress-mod_rewrite-rules-taking-over-mod_status-and-mod_info">post</a>. In the backlog I have had for some time a couple of articles almost done and several topics to write about but as it sometimes happens, the time runs out.</p>
<p>For the coming year 2012 I have made a promise to myself to research technology related issues and also write about them to this blog and to my <a href="http://verteksi.net/" title="Se on kiva sillo">Finnish blog</a>.&#8230; <a href="http://ruleoftech.com/2011/for-year-2012" class="read_more">Continue reading <span class=\\\"meta-nav\\\">&#8594;</span></a></p>]]></description>
			<content:encoded><![CDATA[<p>The year 2011 has been pretty quiet in this blog as I managed to write just one <a href="http://ruleoftech.com/journal/wordpress-mod_rewrite-rules-taking-over-mod_status-and-mod_info">post</a>. In the backlog I have had for some time a couple of articles almost done and several topics to write about but as it sometimes happens, the time runs out.</p>
<p>For the coming year 2012 I have made a promise to myself to research technology related issues and also write about them to this blog and to my <a href="http://verteksi.net/" title="Se on kiva sillo">Finnish blog</a>. Now I have just done the former and kept the new information to myself :) Including the articles in the backlog I also have some new topics to write. So <a href="http://ruleoftech.com/feed">subscribe to the RSS feed</a> and stay tuned.</p>
<p>Happy New Year!</p>
<div class="img-center">
<a href="http://ruleoftech.com/files/2011/12/rule-of-tech_happynewyear2012.png"><img src="http://ruleoftech.com/files/2011/12/rule-of-tech_happynewyear2012.png" alt="" title="Happy New Year 2012!" width="706" height="624" class="alignnone size-full wp-image-223 colorbox-221" /></a>
</div>
<h2  class="related_post_title">Related journal entries</h2><ul class="related_post"><li>No Related Post</li></ul>]]></content:encoded>
			<wfw:commentRss>http://ruleoftech.com/2011/for-year-2012/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress mod_rewrite rules taking over mod_status and mod_info</title>
		<link>http://ruleoftech.com/2011/wordpress-mod_rewrite-rules-taking-over-mod_status-and-mod_info</link>
		<comments>http://ruleoftech.com/2011/wordpress-mod_rewrite-rules-taking-over-mod_status-and-mod_info#comments</comments>
		<pubDate>Thu, 16 Jun 2011 17:53:31 +0000</pubDate>
		<dc:creator>Marko</dc:creator>
				<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://ruleoftech.com/?p=191</guid>
		<description><![CDATA[<p>After moving <em>Rule of Tech</em> to a new server and setting up monitoring I noticed that server-status and server-info Apache modules weren&#8217;t working as expected. As usual a little bit of Googling <a href="http://www.ducea.com/2009/03/01/wordpress-mod_rewrite-rules-taking-over-mod_status/">solved this problem</a>.</p>
<p>The problem was that the .htaccess rules in WordPress were taking over non-existing server-info and server-status urls given in Apache&#8217;s config and were returning a page not found error.&#8230; <a href="http://ruleoftech.com/2011/wordpress-mod_rewrite-rules-taking-over-mod_status-and-mod_info" class="read_more">Continue reading <span class=\\\"meta-nav\\\">&#8594;</span></a></p>]]></description>
			<content:encoded><![CDATA[<p>After moving <em>Rule of Tech</em> to a new server and setting up monitoring I noticed that server-status and server-info Apache modules weren&#8217;t working as expected. As usual a little bit of Googling <a href="http://www.ducea.com/2009/03/01/wordpress-mod_rewrite-rules-taking-over-mod_status/">solved this problem</a>.</p>
<p>The problem was that the .htaccess rules in WordPress were taking over non-existing server-info and server-status urls given in Apache&#8217;s config and were returning a page not found error. The rewrite rules by WordPress were setup to handle all the permalinks on the site and for any non-existing file send it to index.php. It really wasn&#8217;t a WordPress problem and should happen with any application that uses the same type of catch-all rewrite rules to handle all the urls inside the application.</p>
<p>The solution was to specifically add a rewrite rule to not have the server-status and server-info urls processed by adding a rule like: <code>RewriteCond %{REQUEST_URI} !=/server-status</code>. The other way is to stop the rewriting process when the urls are found by adding a rule like: <code>RewriteRule ^(server-info|server-status) - [L]</code>.</p>
<p>The WordPress rewrite rules should look like this:</p>
<pre>
<code># BEGIN WordPress
&lt;IfModule mod_rewrite.c&gt;
RewriteEngine On
RewriteBase /
# server info and status
RewriteRule ^(server-info|server-status) - [L]
# RewriteCond %{REQUEST_URI} !=/server-status
# /server info and status
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . index.php [L]
&lt;/IfModule&gt;
# END WordPress</code>
</pre>
<h2  class="related_post_title">Related journal entries</h2><ul class="related_post"><li><a href="http://ruleoftech.com/2012/using-cacert-org-signed-certificates-for-tls" title="Using CAcert.org signed certificates for TLS">Using CAcert.org signed certificates for TLS</a></li><li><a href="http://ruleoftech.com/2010/installing-sun-jdk-1-6-on-centos" title="Installing Sun JDK 1.6 on CentOS">Installing Sun JDK 1.6 on CentOS</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://ruleoftech.com/2011/wordpress-mod_rewrite-rules-taking-over-mod_status-and-mod_info/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Installing Apache Tomcat 6 on CentOS</title>
		<link>http://ruleoftech.com/2010/installing-apache-tomcat-6-on-centos</link>
		<comments>http://ruleoftech.com/2010/installing-apache-tomcat-6-on-centos#comments</comments>
		<pubDate>Thu, 15 Jul 2010 14:49:53 +0000</pubDate>
		<dc:creator>Marko</dc:creator>
				<category><![CDATA[Howto]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[tomcat]]></category>

		<guid isPermaLink="false">http://ruleoftech.wordpress.com/?p=40</guid>
		<description><![CDATA[<p>CentOS is great substitute for Red Hat Enterprise Linux but is missing some useful packages like Apache Tomcat 6. Installing Apache Tomcat 6 on CentOS 5 from gzip-package is fairly easy. The following guide is at least for CentOS 5.4.</p>
<p><strong>Pre-Requirements</strong><br />
First you need to install Sun JDK and you can follow the instructions given in <a href="http://ruleoftech.com/journal/installing-sun-jdk-1-6-on-centos">Installing Sun JDK 1.6 on CentOS</a></p>
<p>After Java is on place it&#8217;s time to get ready for Tomcat.&#8230; <a href="http://ruleoftech.com/2010/installing-apache-tomcat-6-on-centos" class="read_more">Continue reading <span class=\\\"meta-nav\\\">&#8594;</span></a></p>]]></description>
			<content:encoded><![CDATA[<p>CentOS is great substitute for Red Hat Enterprise Linux but is missing some useful packages like Apache Tomcat 6. Installing Apache Tomcat 6 on CentOS 5 from gzip-package is fairly easy. The following guide is at least for CentOS 5.4.</p>
<p><strong>Pre-Requirements</strong><br />
First you need to install Sun JDK and you can follow the instructions given in <a href="http://ruleoftech.com/journal/installing-sun-jdk-1-6-on-centos">Installing Sun JDK 1.6 on CentOS</a></p>
<p>After Java is on place it&#8217;s time to get ready for Tomcat.</p>
<p><strong>Download Apache Ant and Tomcat</strong></p>
<ol>
<li>Download <a href="http://ant.apache.org/">apache-ant</a> and <a href="http://tomcat.apache.org/">apache-tomcat</a> -packages.
<li>Extract those packages to <code>/opt/</code>
<ul class="listcodeblock">
<li>
<pre>
#[root@srv ~]# cd /opt
# tar -xzf apache-tomcat-6.0.26.tar.gz
# tar -xzf apache-ant-1.7.1-bin.tar.gz
</pre>
</li>
</ul>
</li>
<li>Create a symbolic link for Ant
<ul class="listcodeblock">
<li>
<pre>
# ln -s /opt/apache-ant-1.7.1/bin/ant /usr/bin/
</pre>
</li>
</ul>
</li>
</ol>
<p><strong>Create start script</strong></p>
<ol>
<li>Create a tomcat user so that we don&#8217;t need root privileges for Tomcat
<ul class="listcodeblock">
<li>
<pre>
# useradd -d /opt/apache-tomcat-6.0.26/ tomcat
</pre>
</li>
</ul>
</li>
<li>Create start script to /etc/init.d for starting and stopping Tomcat
<ul class="listcodeblock">
<li>
<pre>
#  vim /etc/init.d/tomcat
</pre>
</li>
</ul>
</li>
<li>The script is (via <a href="http://www-128.ibm.com/developerworks/java/library/l-secjav.html">Build a safe cage for Tomcat</a>)
<ul class="listcodeblock">
<li>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># tomcat       Starts Tomcat Java server.</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># chkconfig: 345 88 12</span>
<span style="color: #666666; font-style: italic;"># description: Tomcat is the server for </span>
<span style="color: #666666; font-style: italic;"># Java servlet applications.</span>
<span style="color: #666666; font-style: italic;">### BEGIN INIT INFO</span>
<span style="color: #666666; font-style: italic;"># Provides: $tomcat</span>
<span style="color: #666666; font-style: italic;">### END INIT INFO</span>
&nbsp;
<span style="color: #007800;">JAVA_HOME</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>java<span style="color: #000000; font-weight: bold;">/</span>jdk1.6.0_18
<span style="color: #7a0874; font-weight: bold;">export</span> JAVA_HOME
<span style="color: #007800;">TOMCAT_HOME</span>=<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>apache-tomcat-6.0.26<span style="color: #000000; font-weight: bold;">/</span>bin
<span style="color: #007800;">START_TOMCAT</span>=<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>apache-tomcat-6.0.26<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>startup.sh
<span style="color: #007800;">STOP_TOMCAT</span>=<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>apache-tomcat-6.0.26<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>shutdown.sh
&nbsp;
<span style="color: #666666; font-style: italic;"># Source function library.</span>
. <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>functions
&nbsp;
<span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-f</span> <span style="color: #007800;">$START_TOMCAT</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">||</span> <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-f</span> <span style="color: #007800;">$STOP_TOMCAT</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">||</span> <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span>
&nbsp;
<span style="color: #007800;">RETVAL</span>=<span style="color: #000000;">0</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">umask</span> 077
&nbsp;
start<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-n</span> $<span style="color: #ff0000;">&quot;Starting Tomcat Java server: &quot;</span>
        daemon <span style="color: #c20cb9; font-weight: bold;">su</span> <span style="color: #660033;">-c</span> <span style="color: #007800;">$START_TOMCAT</span> tomcat
        <span style="color: #7a0874; font-weight: bold;">echo</span>
        <span style="color: #7a0874; font-weight: bold;">return</span> <span style="color: #007800;">$RETVAL</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
stop<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-n</span> $<span style="color: #ff0000;">&quot;Shutting down Tomcat Java server: &quot;</span>
        daemon <span style="color: #c20cb9; font-weight: bold;">su</span> <span style="color: #660033;">-c</span> <span style="color: #007800;">$STOP_TOMCAT</span> tomcat
        <span style="color: #7a0874; font-weight: bold;">echo</span>
        <span style="color: #7a0874; font-weight: bold;">return</span> <span style="color: #007800;">$RETVAL</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
restart<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
        stop
        start
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #ff0000;">&quot;$1&quot;</span> <span style="color: #000000; font-weight: bold;">in</span>
  start<span style="color: #7a0874; font-weight: bold;">&#41;</span>
        start
        <span style="color: #000000; font-weight: bold;">;;</span>
  stop<span style="color: #7a0874; font-weight: bold;">&#41;</span>
        stop
        <span style="color: #000000; font-weight: bold;">;;</span>
  restart<span style="color: #000000; font-weight: bold;">|</span>reload<span style="color: #7a0874; font-weight: bold;">&#41;</span>
        restart
        <span style="color: #000000; font-weight: bold;">;;</span>
  <span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> $<span style="color: #ff0000;">&quot;Usage: $0 {start|stop|restart}&quot;</span>
        <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">1</span>
<span style="color: #000000; font-weight: bold;">esac</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #007800;">$?</span></pre></td></tr></table></div>

</li>
</ul>
</li>
<li>Give executable rights for that script
<ul class="listcodeblock">
<li>
<pre>
# chmod 755 /etc/init.d/tomcat
</pre>
</li>
</ul>
</li>
<li>Add the script to CentOS services
<ul class="listcodeblock">
<li>
<pre>
# chkconfig --add tomcat
</pre>
</li>
</ul>
</li>
<li>Check the changes
<ul class="listcodeblock">
<li>
<pre>
# chkconfig --level 234 tomcat on
# chkconfig --list tomcat

tomcat 0:off 1:off 2:on 3:on 4:on 5:off 6:off
</pre>
</li>
</ul>
</li>
<li>You should see that the service uses levels 2, 3 and 4</li>
<li>Test that the script is working and it gives no errors
<ul class="listcodeblock">
<li>
<pre>
# service tomcat start
# service tomcat stop
</pre>
</li>
</ul>
</li>
<li>Everythings ready</li>
</ol>
<h2  class="related_post_title">Related journal entries</h2><ul class="related_post"><li><a href="http://ruleoftech.com/2009/redirecting-http-and-https-traffic-to-tomcats-ports" title="Redirect HTTP and HTTPS traffic to Tomcat&#8217;s ports">Redirect HTTP and HTTPS traffic to Tomcat&#8217;s ports</a></li><li><a href="http://ruleoftech.com/2012/exclude-jquery-libraries-from-eclipses-javascript-validation" title="Exclude JQuery libraries from Eclipse&#8217;s JavaScript Validation">Exclude JQuery libraries from Eclipse&#8217;s JavaScript Validation</a></li><li><a href="http://ruleoftech.com/2012/using-cacert-org-signed-certificates-for-tls" title="Using CAcert.org signed certificates for TLS">Using CAcert.org signed certificates for TLS</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://ruleoftech.com/2010/installing-apache-tomcat-6-on-centos/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing Sun JDK 1.6 on CentOS</title>
		<link>http://ruleoftech.com/2010/installing-sun-jdk-1-6-on-centos</link>
		<comments>http://ruleoftech.com/2010/installing-sun-jdk-1-6-on-centos#comments</comments>
		<pubDate>Thu, 15 Jul 2010 14:28:52 +0000</pubDate>
		<dc:creator>Marko</dc:creator>
				<category><![CDATA[Howto]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://ruleoftech.com/?p=138</guid>
		<description><![CDATA[<p>CentOS doesn&#8217;t have a package for Sun JDK so it has to installed manually. It&#8217;s fairly easy but there are some steps to do that. This guide has been tested on CentOS 5.4 x64_86.</p>
<p><strong>Step 1. Initial setup for building RPM</strong><br />
-!- Do this with a non-root user</p>
<ol>
<li>Create ~/.rpmmacros
<ul class="listcodeblock">
<li>
<pre>
$ vim ~/.rpmmacros
%_topdir /home/<username>/rpmbuild
%_tmppath %{_topdir}/tmp
</username></pre>
</li>
</ul>
</li>
<li>Create needed folders:
<ul class="listcodeblock">
<li>
<pre>
$ mkdir -p ~/rpmbuild/{SOURCES,SRPMS,SPECS,RPMS,tmp,BUILD}
</pre>
</li>
</ul>
</li>
<li>Build environment needs to be complete.</li>&#8230; <a href="http://ruleoftech.com/2010/installing-sun-jdk-1-6-on-centos" class="read_more">Continue reading <span class=\\\"meta-nav\\\">&#8594;</span></a></ol>]]></description>
			<content:encoded><![CDATA[<p>CentOS doesn&#8217;t have a package for Sun JDK so it has to installed manually. It&#8217;s fairly easy but there are some steps to do that. This guide has been tested on CentOS 5.4 x64_86.</p>
<p><strong>Step 1. Initial setup for building RPM</strong><br />
-!- Do this with a non-root user</p>
<ol>
<li>Create ~/.rpmmacros
<ul class="listcodeblock">
<li>
<pre>
$ vim ~/.rpmmacros
%_topdir /home/<username>/rpmbuild
%_tmppath %{_topdir}/tmp
</pre>
</li>
</ul>
</li>
<li>Create needed folders:
<ul class="listcodeblock">
<li>
<pre>
$ mkdir -p ~/rpmbuild/{SOURCES,SRPMS,SPECS,RPMS,tmp,BUILD}
</pre>
</li>
</ul>
</li>
<li>Build environment needs to be complete. Some needed packages are:
<ul class="listcodeblock">
<li>
<pre>
$ sudo yum install -y rpm-build gcc gcc-c++ redhat-rpm-config
</pre>
</li>
</ul>
</li>
</ol>
<p><strong>Step 2. Installing your favorite JDK</strong></p>
<ol>
<li>Download Sun JDK 1.6 update 14 from Sun Java download or the <a href="http://java.sun.com/products/archive/">Sun JDK archive</a>.
<ul>
<li>Choose the correct platform (for me it&#8217;s Linux x64) and download jdk-6u18-linux-x64-rpm.bin</li>
</ul>
</li>
<li>Give it executable rights: <code>$ chmod 755 jdk-6u18-linux-x64-rpm.bin</code></li>
<li>Run the binary to extract it into RPM form: <code>$ ./jdk-6u18-linux-x64-rpm.bin</code></li>
<li>Install it:
<ul class="listcodeblock">
<li>
<pre>
$ sudo rpm -Uvh jdk-6u18-linux-amd64.rpm
</pre>
</li>
</ul>
</li>
<li>Log out and in again to make the changes in the paths take effect</li>
<li>Check the install
<ul class="listcodeblock">
<li>
<pre>
$ java -version
java version "1.6.0_18"
Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
Java HotSpot(TM) 64-Bit Server VM (build 16.0-b13, mixed mode)
</pre>
</li>
</ul>
</li>
<li>Java is now installed on <code>/usr/bin/java</code></li>
</ol>
<h2  class="related_post_title">Related journal entries</h2><ul class="related_post"><li><a href="http://ruleoftech.com/2012/using-cacert-org-signed-certificates-for-tls" title="Using CAcert.org signed certificates for TLS">Using CAcert.org signed certificates for TLS</a></li><li><a href="http://ruleoftech.com/2012/exclude-jquery-libraries-from-eclipses-javascript-validation" title="Exclude JQuery libraries from Eclipse&#8217;s JavaScript Validation">Exclude JQuery libraries from Eclipse&#8217;s JavaScript Validation</a></li><li><a href="http://ruleoftech.com/2011/wordpress-mod_rewrite-rules-taking-over-mod_status-and-mod_info" title="WordPress mod_rewrite rules taking over mod_status and mod_info">WordPress mod_rewrite rules taking over mod_status and mod_info</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://ruleoftech.com/2010/installing-sun-jdk-1-6-on-centos/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using RichFaces 3 dataScroller and dataTable -components</title>
		<link>http://ruleoftech.com/2009/using-richfaces-3-datascroller-and-datatable-components</link>
		<comments>http://ruleoftech.com/2009/using-richfaces-3-datascroller-and-datatable-components#comments</comments>
		<pubDate>Tue, 10 Nov 2009 10:59:47 +0000</pubDate>
		<dc:creator>Marko</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jsf]]></category>
		<category><![CDATA[richfaces]]></category>

		<guid isPermaLink="false">http://ruleoftech.wordpress.com/?p=54</guid>
		<description><![CDATA[<p><a href="http://www.jboss.org/richfaces">RichFaces</a> provides some nice AJAX-components for Java Server Faces but the documentation and examples could be better. RichFaces has great documentation compared to some other frameworks but it could be better with adding a little bit of real world and down to earth examples. So here is one example of using RichFaces <a href="http://docs.jboss.org/richfaces/latest_3_3_X/en/devguide/html/rich_datascroller.html">dataScroller</a> and <a href="http://docs.jboss.org/richfaces/latest_3_3_X/en/devguide/html/rich_dataTable.html">dataTable </a>-components with custom CSS-styling, backingBean and JSF-page snippets using Richfaces 3.3.2.SR1 and JSF 1.2_12.&#8230; <a href="http://ruleoftech.com/2009/using-richfaces-3-datascroller-and-datatable-components" class="read_more">Continue reading <span class=\\\"meta-nav\\\">&#8594;</span></a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.jboss.org/richfaces">RichFaces</a> provides some nice AJAX-components for Java Server Faces but the documentation and examples could be better. RichFaces has great documentation compared to some other frameworks but it could be better with adding a little bit of real world and down to earth examples. So here is one example of using RichFaces <a href="http://docs.jboss.org/richfaces/latest_3_3_X/en/devguide/html/rich_datascroller.html">dataScroller</a> and <a href="http://docs.jboss.org/richfaces/latest_3_3_X/en/devguide/html/rich_dataTable.html">dataTable </a>-components with custom CSS-styling, backingBean and JSF-page snippets using Richfaces 3.3.2.SR1 and JSF 1.2_12.</p>
<p>Using RichFaces dataScroller and dataTable components has a big negative property: they work nicely if the amount of data is small but when the row count reaches to thousands they become sluggish or stop working.  The rich:dataScroller needs the complete datamodel being loaded into memory and only displays a part of it. Not very efficient if the rowcount exceeds 1000 or so.</p>
<p>Anyways here is some real world example. The icons used in the examples for dataScroller are from <a href="http://www.everaldo.com/crystal/">Crystal Project Icons</a>.</p>
<h3>JSF-page</h3>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h:form</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;myForm&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;rich:dataScroller</span> <span style="color: #000066;">styleClass</span>=<span style="color: #ff0000;">&quot;dataScroller&quot;</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;scroller&quot;</span> </span>
<span style="color: #009900;">        <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;resultTable&quot;</span> <span style="color: #000066;">maxPages</span>=<span style="color: #ff0000;">&quot;15&quot;</span> <span style="color: #000066;">fastStep</span>=<span style="color: #ff0000;">&quot;3&quot;</span></span>
<span style="color: #009900;">        <span style="color: #000066;">renderIfSinglePage</span>=<span style="color: #ff0000;">&quot;false&quot;</span> <span style="color: #000066;">immediate</span>=<span style="color: #ff0000;">&quot;false&quot;</span> </span>
<span style="color: #009900;">        <span style="color: #000066;">binding</span>=<span style="color: #ff0000;">&quot;#{backingBean.scroller}&quot;</span> <span style="color: #000066;">page</span>=<span style="color: #ff0000;">&quot;#{backingBean.scrollerPage}&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;f:facet</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;first&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h:graphicImage</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;firstImage&quot;</span> <span style="color: #000066;">styleClass</span>=<span style="color: #ff0000;">&quot;scroller&quot;</span> </span>
<span style="color: #009900;">            <span style="color: #000066;">url</span>=<span style="color: #ff0000;">&quot;images/crystal/tab_first.png&quot;</span> <span style="color: #000066;">alt</span>=<span style="color: #ff0000;">&quot;first&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/f:facet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;f:facet</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;last&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h:graphicImage</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;lastImage&quot;</span> <span style="color: #000066;">styleClass</span>=<span style="color: #ff0000;">&quot;scroller&quot;</span> </span>
<span style="color: #009900;">                <span style="color: #000066;">url</span>=<span style="color: #ff0000;">&quot;images/crystal/tab_last.png&quot;</span> <span style="color: #000066;">alt</span>=<span style="color: #ff0000;">&quot;last&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/f:facet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;f:facet</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;previous&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h:graphicImage</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;prevImage&quot;</span> <span style="color: #000066;">styleClass</span>=<span style="color: #ff0000;">&quot;scroller&quot;</span> </span>
<span style="color: #009900;">                <span style="color: #000066;">url</span>=<span style="color: #ff0000;">&quot;images/crystal/tab_left.png&quot;</span> <span style="color: #000066;">alt</span>=<span style="color: #ff0000;">&quot;previous&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/f:facet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;f:facet</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;next&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h:graphicImage</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;nextImage&quot;</span> <span style="color: #000066;">styleClass</span>=<span style="color: #ff0000;">&quot;scroller&quot;</span> </span>
<span style="color: #009900;">                <span style="color: #000066;">url</span>=<span style="color: #ff0000;">&quot;images/crystal/tab_right.png&quot;</span> <span style="color: #000066;">alt</span>=<span style="color: #ff0000;">&quot;previous&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/f:facet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;f:facet</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;fastforward&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h:graphicImage</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;ffImage&quot;</span> <span style="color: #000066;">styleClass</span>=<span style="color: #ff0000;">&quot;scroller&quot;</span> </span>
<span style="color: #009900;">                <span style="color: #000066;">url</span>=<span style="color: #ff0000;">&quot;images/crystal/tab_fastf.png&quot;</span> <span style="color: #000066;">alt</span>=<span style="color: #ff0000;">&quot;next&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/f:facet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;f:facet</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;fastrewind&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h:graphicImage</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;frImage&quot;</span> <span style="color: #000066;">styleClass</span>=<span style="color: #ff0000;">&quot;scroller&quot;</span> </span>
<span style="color: #009900;">                <span style="color: #000066;">url</span>=<span style="color: #ff0000;">&quot;images/crystal/tab_fastr.png&quot;</span> <span style="color: #000066;">alt</span>=<span style="color: #ff0000;">&quot;next&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/f:facet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;f:facet</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;first_disabled&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h:graphicImage</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;firstImage_d&quot;</span> <span style="color: #000066;">styleClass</span>=<span style="color: #ff0000;">&quot;scroller&quot;</span> </span>
<span style="color: #009900;">                <span style="color: #000066;">url</span>=<span style="color: #ff0000;">&quot;images/crystal/tab_first.png&quot;</span> <span style="color: #000066;">alt</span>=<span style="color: #ff0000;">&quot;first&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/f:facet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;f:facet</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;last_disabled&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h:graphicImage</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;lastImage_d&quot;</span> <span style="color: #000066;">styleClass</span>=<span style="color: #ff0000;">&quot;scroller&quot;</span> </span>
<span style="color: #009900;">                <span style="color: #000066;">url</span>=<span style="color: #ff0000;">&quot;images/crystal/tab_last.png&quot;</span> <span style="color: #000066;">alt</span>=<span style="color: #ff0000;">&quot;last&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/f:facet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;f:facet</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;previous_disabled&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h:graphicImage</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;prevImage_d&quot;</span> <span style="color: #000066;">styleClass</span>=<span style="color: #ff0000;">&quot;scroller&quot;</span> </span>
<span style="color: #009900;">                <span style="color: #000066;">url</span>=<span style="color: #ff0000;">&quot;images/crystal/tab_left.png&quot;</span> <span style="color: #000066;">alt</span>=<span style="color: #ff0000;">&quot;previous&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/f:facet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;f:facet</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;next_disabled&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h:graphicImage</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;nextImage_d&quot;</span> <span style="color: #000066;">styleClass</span>=<span style="color: #ff0000;">&quot;scroller&quot;</span> </span>
<span style="color: #009900;">                <span style="color: #000066;">url</span>=<span style="color: #ff0000;">&quot;images/crystal/tab_right.png&quot;</span> <span style="color: #000066;">alt</span>=<span style="color: #ff0000;">&quot;next&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/f:facet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;f:facet</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;fastforward_disabled&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h:graphicImage</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;ffImage_d&quot;</span> <span style="color: #000066;">styleClass</span>=<span style="color: #ff0000;">&quot;scroller&quot;</span> </span>
<span style="color: #009900;">                <span style="color: #000066;">url</span>=<span style="color: #ff0000;">&quot;images/crystal/tab_fastf.png&quot;</span> <span style="color: #000066;">alt</span>=<span style="color: #ff0000;">&quot;next&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/f:facet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;f:facet</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;fastrewind_disabled&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h:graphicImage</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;frImage_d&quot;</span> <span style="color: #000066;">styleClass</span>=<span style="color: #ff0000;">&quot;scroller&quot;</span> </span>
<span style="color: #009900;">                <span style="color: #000066;">url</span>=<span style="color: #ff0000;">&quot;images/crystal/tab_fastr.png&quot;</span> <span style="color: #000066;">alt</span>=<span style="color: #ff0000;">&quot;previous&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/f:facet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;f:facet</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;controlsSeparator&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h:outputText</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;sep&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot; &quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/f:facet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/rich:dataScroller<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;rich:dataTable</span> <span style="color: #000066;">styleClass</span>=<span style="color: #ff0000;">&quot;resultTable&quot;</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;resultTable&quot;</span> </span>
<span style="color: #009900;">    <span style="color: #000066;">rows</span>=<span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #000066;">rowClasses</span>=<span style="color: #ff0000;">&quot;,odd&quot;</span>  <span style="color: #000066;">columnClasses</span>=<span style="color: #ff0000;">&quot;col&quot;</span>  </span>
<span style="color: #009900;">    <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;#{backingBean.resultList}&quot;</span> <span style="color: #000066;">binding</span>=<span style="color: #ff0000;">&quot;#{backingBean.resultData}&quot;</span> </span>
<span style="color: #009900;">    <span style="color: #000066;">var</span>=<span style="color: #ff0000;">&quot;h&quot;</span> <span style="color: #000066;">sortMode</span>=<span style="color: #ff0000;">&quot;multi&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;rich:column</span> <span style="color: #000066;">sortBy</span>=<span style="color: #ff0000;">&quot;#{h.desc}&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;f:facet</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;header&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h:outputText</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;description&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/f:facet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h:commandLink</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;#{h.desc}&quot;</span></span>
<span style="color: #009900;">            <span style="color: #000066;">action</span>=<span style="color: #ff0000;">&quot;#{backingBean.showRowData}&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;f:param</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;selectedRow&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;#{h.desc&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/h:commandLink<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/rich:column<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;rich:column</span> <span style="color: #000066;">sortBy</span>=<span style="color: #ff0000;">&quot;#{h.value}&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;f:facet</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;header&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h:outputText</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;value&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/f:facet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h:outputText</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;#{h.value}&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/rich:column<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/rich:dataTable<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/h:form<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<h3>Backing Bean</h3>
<p>Create some variables for dataScroller and getters and setters for them:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="java5" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// RichFaces dataScroller variables</span>
<span style="color: #000000; font-weight: bold;">private</span> HtmlDatascroller scroller = <span style="color: #000000; font-weight: bold;">new</span> HtmlDatascroller<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399; font-weight: bold;">String</span> scrollerPage = <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Getting the clicked row's data</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399; font-weight: bold;">String</span> showRowdata<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  MyDataModel current = <span style="color: #009900;">&#40;</span>myDataModel<span style="color: #009900;">&#41;</span> getResultData<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getRowData</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<h3>CSS styling</h3>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/* =RichFaces DataScroller
----------------------------------------------- */</span>
<span style="color: #6666ff;">.rich-datascr</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1.1em</span><span style="color: #00AA00;">;</span>border<span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
.rich-<span style="color: #993333;">table-cell</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1.0em</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.rich-table-sortable-header</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1.1em</span><span style="color: #00AA00;">;</span>font-weight<span style="color: #00AA00;">:</span> <span style="color: #993333;">bold</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
td<span style="color: #6666ff;">.rich-datascr-button</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">;</span>border<span style="color: #00AA00;">:</span> <span style="color: #933;">0px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#ccc</span><span style="color: #00AA00;">;</span>text-decoration<span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
td<span style="color: #6666ff;">.rich-datascr-button-dsbld</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.rich-datascr-ctrls-separator</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">padding-right</span><span style="color: #00AA00;">:</span> <span style="color: #933;">5px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.rich-dtascroller-table</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">;</span>border<span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.scroller</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">block</span><span style="color: #00AA00;">;</span>background-<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">;</span>border<span style="color: #00AA00;">:</span> <span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#ccc</span><span style="color: #00AA00;">;</span>padding<span style="color: #00AA00;">:</span> <span style="color: #933;">3px</span> <span style="color: #933;">3px</span><span style="color: #00AA00;">;</span>margin<span style="color: #00AA00;">:</span> <span style="color: #933;">0px</span> <span style="color: #933;">5px</span> <span style="color: #933;">5px</span> <span style="color: #933;">5px</span><span style="color: #00AA00;">;</span>text-decoration<span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.scroller</span><span style="color: #3333ff;">:hover </span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#eee</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
td<span style="color: #6666ff;">.rich-datascr-button-dsbld</span> <span style="color: #6666ff;">.scroller</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#eee</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
td<span style="color: #6666ff;">.rich-datascr-inact</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1.2em</span><span style="color: #00AA00;">;</span>color<span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#000</span><span style="color: #00AA00;">;</span>border<span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
td<span style="color: #6666ff;">.rich-datascr-inact</span><span style="color: #3333ff;">:hover </span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">text-decoration</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">underline</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
td<span style="color: #6666ff;">.rich-datascr-act</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1.2em</span><span style="color: #00AA00;">;</span>text-decoration<span style="color: #00AA00;">:</span> <span style="color: #993333;">underline</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
td<span style="color: #6666ff;">.rich-datascr-act</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>font-weight<span style="color: #00AA00;">:</span> <span style="color: #993333;">bold</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h3>Selecting All rows with JavaScript</h3>
<p>Add to the JSF-page a new column which has the checkbox. We are using JavaScript to loop through the input fields which are after :tu -ending id-field.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">&lt;rich:column&gt;
  &lt;f:facet name=&quot;header&quot;&gt;
    &lt;h:panelGroup layout=&quot;block&quot;&gt;
      <span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
        <span style="color: #006600; font-style: italic;">//&lt;![CDATA[</span>
        <span style="color: #006600; font-style: italic;">// RichFaces datatable select all -checkbox</span>
        <span style="color: #003366; font-weight: bold;">function</span> checkAllCheckboxesInTable<span style="color: #009900;">&#40;</span> inputId<span style="color: #339933;">,</span> state <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
          <span style="color: #003366; font-weight: bold;">var</span> commonIdPart <span style="color: #339933;">=</span> inputId.<span style="color: #660066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> inputId.<span style="color: #660066;">lastIndexOf</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">':'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
          <span style="color: #003366; font-weight: bold;">var</span> tableId <span style="color: #339933;">=</span> commonIdPart <span style="color: #339933;">+</span> <span style="color: #3366CC;">':tu'</span>
          <span style="color: #003366; font-weight: bold;">var</span> tableElement <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span> tableId <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
          <span style="color: #003366; font-weight: bold;">var</span> inputs <span style="color: #339933;">=</span> tableElement.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'input'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
          <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;=</span> inputs.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #003366; font-weight: bold;">var</span> input <span style="color: #339933;">=</span> inputs<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>input <span style="color: #339933;">!=</span> undefined<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
              <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span> input.<span style="color: #660066;">getAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'type'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">'checkbox'</span> <span style="color: #339933;">&amp;&amp;</span> state<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                input.<span style="color: #660066;">setAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'checked'</span><span style="color: #339933;">,</span> state<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
              <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
                input.<span style="color: #660066;">setAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'checked'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                input.<span style="color: #660066;">removeAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'checked'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
              <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span>
          <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #006600; font-style: italic;">//]]&gt;</span>
      <span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span>
      &lt;h:selectBooleanCheckbox id=&quot;t0&quot; onclick=&quot;checkAllCheckboxesInTable( this.id, this.checked );&quot;&gt;
        &lt;a4j:support event=&quot;onchange&quot; reRender=&quot;resultTable&quot;/&gt;
      &lt;/h:selectBooleanCheckbox&gt;
    &lt;/h:panelGroup&gt;
  &lt;/f:facet&gt;
  &lt;h:selectBooleanCheckbox id=&quot;t1&quot; value=&quot;#{h.selected}&quot; /&gt;
&lt;/rich:column&gt;</pre></td></tr></table></div>

<h3>Selecting All rows in backing bean</h3>
<p>You can also check all the checkboxes from the backingBean but it has problems with table ordering and when the lists order changes the selection goes wrong.</p>
<p>Add to the JSF-page a new column:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;rich:column<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;f:facet</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;header&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h:selectBooleanCheckbox</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;t0&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;#{backingBean.selectedAll}&quot;</span> <span style="color: #000066;">onclick</span>=<span style="color: #ff0000;">&quot;this.blur()&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;a4j:support</span> <span style="color: #000066;">event</span>=<span style="color: #ff0000;">&quot;onchange&quot;</span> <span style="color: #000066;">actionListener</span>=<span style="color: #ff0000;">&quot;#{backingBean.selectAll}&quot;</span> <span style="color: #000066;">reRender</span>=<span style="color: #ff0000;">&quot;resultTable, t0, t1&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/h:selectBooleanCheckbox<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/f:facet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h:selectBooleanCheckbox</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;t1&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;#{h.selected}&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/rich:column<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Make a new method to your backingBean:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
</pre></td><td class="code"><pre class="java5" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #006600; font-weight: bold;">void</span> selectAll<span style="color: #009900;">&#40;</span><span style="color: #003399; font-weight: bold;">ActionEvent</span> event<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	logger.<span style="color: #006633;">info</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;*** backingBean.selectAll(): &quot;</span> + scrollerPage + <span style="color: #0000ff;">&quot; ***&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// get the current scroller page</span>
	<span style="color: #006600; font-weight: bold;">int</span> page = <span style="color: #003399; font-weight: bold;">Integer</span>.<span style="color: #006633;">valueOf</span><span style="color: #009900;">&#40;</span>scrollerPage<span style="color: #009900;">&#41;</span>.<span style="color: #006633;">intValue</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000;  font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>page <span style="color: #339933;">!</span>= <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	    page = page - <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #006600; font-weight: bold;">int</span> start = page <span style="color: #339933;">*</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">;</span>
	<span style="color: #006600; font-weight: bold;">int</span> stop = <span style="color: #009900;">&#40;</span>page <span style="color: #339933;">*</span> <span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span> + <span style="color: #cc66cc;">10</span><span style="color: #339933;">;</span>
	<span style="color: #000000;  font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>stop <span style="color: #339933;">&gt;</span> getResultList<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">size</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	    stop = getResultList<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">size</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	logger.<span style="color: #006633;">debug</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;&gt; page: &quot;</span> + page + <span style="color: #0000ff;">&quot;; start: &quot;</span> + start + <span style="color: #0000ff;">&quot;; stop: &quot;</span> + stop<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// check the boxes on the active page</span>
	<span style="color: #000000;  font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #006600; font-weight: bold;">int</span> i = start<span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> stop<span style="color: #339933;">;</span> i++<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	    logger.<span style="color: #006633;">debug</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;&gt; valitaan: &quot;</span> + i + <span style="color: #0000ff;">&quot;; &quot;</span> + selectedAll<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	    getResultList<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span>.<span style="color: #006633;">setSelected</span><span style="color: #009900;">&#40;</span>selectedAll<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<h2  class="related_post_title">Related journal entries</h2><ul class="related_post"><li><a href="http://ruleoftech.com/2012/exclude-jquery-libraries-from-eclipses-javascript-validation" title="Exclude JQuery libraries from Eclipse&#8217;s JavaScript Validation">Exclude JQuery libraries from Eclipse&#8217;s JavaScript Validation</a></li><li><a href="http://ruleoftech.com/2010/installing-sun-jdk-1-6-on-centos" title="Installing Sun JDK 1.6 on CentOS">Installing Sun JDK 1.6 on CentOS</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://ruleoftech.com/2009/using-richfaces-3-datascroller-and-datatable-components/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Eclipse: Class file name must end with .class exception in search</title>
		<link>http://ruleoftech.com/2009/eclipse-class-file-name-must-end-with-class-exception-in-search</link>
		<comments>http://ruleoftech.com/2009/eclipse-class-file-name-must-end-with-class-exception-in-search#comments</comments>
		<pubDate>Wed, 04 Nov 2009 10:50:03 +0000</pubDate>
		<dc:creator>Marko</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[ide]]></category>
		<category><![CDATA[problems]]></category>

		<guid isPermaLink="false">http://ruleoftech.wordpress.com/?p=52</guid>
		<description><![CDATA[<p>Eclipse is nice IDE but it has it&#8217;s own problems. This time the Java Search and Open Type -search produced an error saying &#8220;Class file name must end with .class&#8221;. Very helpfull. Fortunately almost all the answers in the world can be found in the Internet and so with a quick googling the solution to this annoying problem was found on <a href="http://stackoverflow.com/questions/6816/eclipse-class-file-name-must-end-with-class-exception-in-java-search">Stack Overflow</a>.&#8230; <a href="http://ruleoftech.com/2009/eclipse-class-file-name-must-end-with-class-exception-in-search" class="read_more">Continue reading <span class=\\\"meta-nav\\\">&#8594;</span></a></p>]]></description>
			<content:encoded><![CDATA[<p>Eclipse is nice IDE but it has it&#8217;s own problems. This time the Java Search and Open Type -search produced an error saying &#8220;Class file name must end with .class&#8221;. Very helpfull. Fortunately almost all the answers in the world can be found in the Internet and so with a quick googling the solution to this annoying problem was found on <a href="http://stackoverflow.com/questions/6816/eclipse-class-file-name-must-end-with-class-exception-in-java-search">Stack Overflow</a>.</p>
<p>I had already tried Project -&gt; Clean&#8230; and closing Eclipse, deleting all the built class files and restarting Eclipse to no avail as was the original question author. The right answer lies in deleting the corrupted search index which is explained in <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=269820#c9">Eclipse bug&#8217;s #269820 comment</a>.</p>
<p>How to delete the search index:</p>
<ol>
<li>Close Eclipse</li>
<li>Delete workspace/.metadata/.plugins/org.eclipse.jdt.core/*.index</li>
<li>Delete workspace/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt</li>
<li>Start Eclipse again</li>
</ol>
<p>This fixed the issue for me.</p>
<h2  class="related_post_title">Related journal entries</h2><ul class="related_post"><li><a href="http://ruleoftech.com/2012/exclude-jquery-libraries-from-eclipses-javascript-validation" title="Exclude JQuery libraries from Eclipse&#8217;s JavaScript Validation">Exclude JQuery libraries from Eclipse&#8217;s JavaScript Validation</a></li><li><a href="http://ruleoftech.com/2012/eclipse-and-maven-console" title="Eclipse and Maven Console">Eclipse and Maven Console</a></li><li><a href="http://ruleoftech.com/2007/samba-performance-problem-after-kernel-update" title="Samba performance problem after kernel update">Samba performance problem after kernel update</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://ruleoftech.com/2009/eclipse-class-file-name-must-end-with-class-exception-in-search/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Redirect HTTP and HTTPS traffic to Tomcat&#8217;s ports</title>
		<link>http://ruleoftech.com/2009/redirecting-http-and-https-traffic-to-tomcats-ports</link>
		<comments>http://ruleoftech.com/2009/redirecting-http-and-https-traffic-to-tomcats-ports#comments</comments>
		<pubDate>Thu, 11 Jun 2009 18:47:17 +0000</pubDate>
		<dc:creator>Marko</dc:creator>
				<category><![CDATA[Howto]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[tomcat]]></category>
		<category><![CDATA[webserver]]></category>

		<guid isPermaLink="false">http://ruleoftech.wordpress.com/?p=38</guid>
		<description><![CDATA[<p>Apache Tomcat likes with default settings to listen to requests on 8080 and 8443 ports but it is more enjoyable to use the more common 80 and 443 ports for HTTP and HTTPS traffic. This way the user don&#8217;t have to put those pesky port numbers after the address. Of course you could just tell Tomcat to listen to those ports but it has some negative sides: hassle with the startup and running Tomcat as root.&#8230; <a href="http://ruleoftech.com/2009/redirecting-http-and-https-traffic-to-tomcats-ports" class="read_more">Continue reading <span class=\\\"meta-nav\\\">&#8594;</span></a></p>]]></description>
			<content:encoded><![CDATA[<p>Apache Tomcat likes with default settings to listen to requests on 8080 and 8443 ports but it is more enjoyable to use the more common 80 and 443 ports for HTTP and HTTPS traffic. This way the user don&#8217;t have to put those pesky port numbers after the address. Of course you could just tell Tomcat to listen to those ports but it has some negative sides: hassle with the startup and running Tomcat as root.</p>
<p>Luckily it is easy to tell the system to redirect the traffic from some port to other. Just define some new xinetd services in <em>/etc/xinetd.d/tomcat</em>.</p>
<pre>
# vim /etc/xinetd.d/tomcat

# Redirects any requests on port 80 to port 8080 (where Tomcat is listening)
service tomcat-http
{
        disable                 = no
        flags                   = REUSE
        wait                    = no
        user                    = root
        socket_type         = stream
        protocol                = tcp
        port                    = 80
        redirect                = localhost 8080
        log_on_success  -= PID HOST DURATION EXIT

        #per_source = UNLIMITED
        #instances = UNLIMITED
}

# Redirects any requests on port 443 to port 8443 (where Tomcat is listening)
service tomcat-https
{
        disable                 = no
        flags                   = REUSE
        wait                    = no
        user                    = root
        socket_type         = stream
        protocol                = tcp
        port                    = 443
        redirect                = localhost 8443
        log_on_success  -= PID HOST DURATION EXIT

        #per_source = UNLIMITED
        #instances = UNLIMITED
}
</pre>
<p>(via <a href="http://www.ibm.com/developerworks/java/library/l-secjav.html#h5">Securing Linux for Java services: The port dilemma</a>)</p>
<p>Xinetd puts a connection limit per source IP, by default and this causes the service to become unresponsive when there are dozens of queries a second. You see the following kind of line in your messages log file: &#8220;xinetd[2049]: FAIL: tomcat-https per_source_limit from=123.456.789.123&#8243;. To correct this, uncomment the per_source and instances lines in your xinet.d file and restart it.</p>
<p>Also add those xinetd services to <em>/etc/services</em>.</p>
<pre>
# vim /etc/services
http        80/tcp     www www-http tomcat-http # WorldWideWeb http
http        80/udp     www www-http tomcat-http # WorldWideWeb HTTP
http        443/tcp    tomcat-https # WorldWideWeb HTTPS
http        443/udp    tomcat-https # WorldWideWeb HTTPS
</pre>
<p>And now just restart the xinetd and admire how your traffic is redirected to Tomcat&#8217;s ports.</p>
<pre>
# service xinetd restart
</pre>
<p><strong>Force everything to transmit through HTTPS</strong><br />
If you also want to redirect all HTTP traffic to HTTPS you can add the following section to you Tomcat <em>web.xml</em>:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;web-resource-collection<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;web-resource-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Protected Context<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/web-resource-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url-pattern<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/*<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url-pattern<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/web-resource-collection<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #808080; font-style: italic;">&lt;!-- auth-constraint goes here if you requre authentication --&gt;</span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;user-data-constraint<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;transport-guarantee<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>CONFIDENTIAL<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/transport-guarantee<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/user-data-constraint<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>If you are using this redirection of all traffic to HTTPS with JIRA and want to attachments working also with Internet Explorer then you must add the following to your <em>jira.xml</em> (f. ex. /opt/tomcat/conf/Catalina/localhost/jira.xml). This is a Internet Explorer bug, for more information see <a href="http://jira.atlassian.com/browse/JRA-8179">http://jira.atlassian.com/browse/JRA-8179</a>.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Context</span> ...<span style="color: #000000; font-weight: bold;">&gt;</span></span>
...
<span style="color: #808080; font-style: italic;">&lt;!-- for IE bug, see http://jira.atlassian.com/browse/JRA-8179--&gt;</span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Valve</span> <span style="color: #000066;">className</span>=<span style="color: #ff0000;">&quot;org.apache.catalina.authenticator.NonLoginAuthenticator&quot;</span></span>
<span style="color: #009900;"><span style="color: #000066;">disableProxyCaching</span>=<span style="color: #ff0000;">&quot;false&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
...
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Context<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<h2  class="related_post_title">Related journal entries</h2><ul class="related_post"><li><a href="http://ruleoftech.com/2010/installing-apache-tomcat-6-on-centos" title="Installing Apache Tomcat 6 on CentOS">Installing Apache Tomcat 6 on CentOS</a></li><li><a href="http://ruleoftech.com/2012/exclude-jquery-libraries-from-eclipses-javascript-validation" title="Exclude JQuery libraries from Eclipse&#8217;s JavaScript Validation">Exclude JQuery libraries from Eclipse&#8217;s JavaScript Validation</a></li><li><a href="http://ruleoftech.com/2012/using-cacert-org-signed-certificates-for-tls" title="Using CAcert.org signed certificates for TLS">Using CAcert.org signed certificates for TLS</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://ruleoftech.com/2009/redirecting-http-and-https-traffic-to-tomcats-ports/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

