<?xml version="1.0" encoding="UTF-8"?>
<page>
  <created-at type="datetime">2009-10-30T15:21:05Z</created-at>
  <description></description>
  <id type="integer">7064</id>
  <name>Arena-dev</name>
  <number type="integer">68</number>
  <person-id type="integer">1783</person-id>
  <text>'''Arena PUJ - Development Environment Configuration'''

[http://fgaucho.dyndns.org:8080/hudson/job/arena-puj/ [[image: title.png|right]]]
[https://www.ohloh.net/p/arena-puj [[image: project_partner_badge.gif|right]]]

__TOC__
=Where is the project specification?=
Would you like to know more about the project before to ''put your hands in the code jar''? Here are the docs:

* [http://kenai.com/projects/puj The PUJ Competition] (the business case).
* [http://kenai.com/projects/puj/pages/Arena The Arena Project Specification].

=QuickStart -  The code up and running in ~10 minutes=
The following instructions were tested in [http://www.ubuntu.com/ Linux Ubuntu 9.10], but we assume it will work in other operational systems as well. If you have questions or problems during your local setup, please feel free to send an email to fgaucho@gmail.com

==Environment Setup==

* Check if you have all software you need:
*# [http://java.sun.com/ Java 6.x]
*# [http://maven.apache.org/ Maven 2.x]
*# [http://www.mysql.com/ MySql 5.x]
*# [http://mercurial.selenic.com/wiki/ Mercurial] (if you are under some proxy try the mercurial 1.3.1 or newer)
*# [http://download.java.net/glassfish/v3/nightly/ Glassfish v3] (glassfish b69 at least)

* Put the $GLASSFISH_HOME/bin in your $PATH (%path% on windows). It is required by the Maven script;

* Create a file called $HOME/.passwords directory, containing the following properties:

 ASADMIN_USER=admin
 
 MAIL_HOST=''smtp.some email.com''
 MAIL_USER=''user''
 MAIL_FROM=''user@somemail.com''
 MAIL_SMTP_USER=''user@somemail.com''
 MAIL_SMTP_PORT=465
 MAIL_SMTP_PASSWORD=''some_password''
 
 MYSQL_USER=root
 MYSQL_PASSWORD=adminadmin
 DB_URL=jdbc\\:mysql\\://localhost\\:3306/arena

* If you are using Windows, create the file %USERPROFILE%\.passwords and copy the above properties, but please change the DB_URL to:
 DB_URL=jdbc\:mysql\://localhost\:3306/arena

==Adding permissions to Reflection based frameworks==
==Adding the permissions to Reflection based frameworks ==
Add the below lines to the file $AS_HOME/domains/domain1/config/server.policy

 grant codeBase &quot;file:${com.sun.aas.installRoot}/domains/domain1/applications/arena-dwr/-&quot; {
     permission java.lang.reflect.ReflectPermission &quot;suppressAccessChecks&quot;;
 };
 grant codeBase &quot;file:${com.sun.aas.installRoot}/domains/domain1/applications/arena-vaadin/-&quot; {
     permission java.lang.reflect.ReflectPermission &quot;suppressAccessChecks&quot;;
 };

==Install MySql driver in Glassfish==
You need to copy the [http://dev.mysql.com/downloads/connector/j/5.1.html MySql Connector/J jar file] to the folder $AS_HOME/domains/domain1/lib/ext

This should be done manually and you should restart the server after copying the file. [http://docs.sun.com/app/docs/doc/820-4496/beaml?a=view more...]

* ''Please check if you are using the default domain1, otherwise modify the above command according your Server domain name''.

==Checkout and build the source code==
  hg clone https://kenai.com/hg/puj~arena 
  cd puj~arena 
  mvn clean install eclipse:eclipse

Done! Now you can import the project in your preferred IDE and play around the source code.

==Start the MySql database==

If  the MySql database is not yet running, please turn it on:

* '''Linux Users''': /etc/rc.d/init.d/mysqld start
* '''Windows Users''': C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld

==Building and deploying the application==

* '''Linux Users''': use the profile -Phudson:
  cd puj~arena 
  asadmin start-domain
  mvn clean install -Phudson

* '''Windows Users''': use the profile -PhudsonWin:
  cd puj~arena 
  asadmin start-domain
  mvn clean install -PhudsonWin

==Testing the application==
If everything worked fine, you should be able to access the following URLs:
* [http://localhost:8080/arena-http/application.wadl the service contract] 
* [http://localhost:8080/arena-jsf20 the JSF web gui] 
* [http://localhost:8080/arena-dwr the DWR web gui] 
* [http://localhost:8080/arena-vaadin the Vaadin web gui] 

=Quality assurance=
===Java Quality Assurance &amp; Continuous integration===
Our project has a [http://fgaucho.dyndns.org:8080/hudson/job/arena-puj/ Continuous Integration Server] configured to check the quality of our work continuously. If there is any commit in the last hour, this server will build a clean copy of the source code and generates quality reports  based on Findbugs and PMD. Please visit that server regularly to check if your code is sound and considered good quality.

Also, please be sure to have the following plugins installed in your preferred IDE:

* [http://findbugs.sourceforge.net FindBugs]
* [http://pmd.sourceforge.net/integrations.html PMD]

===Encoding===
Always use UTF-8 as the file encoding. If you will include HTML code in Java files, or other resources that will generate HTML output, please [http://www.stringfunction.com/html-encode.html convert special characters to HTML encoding].

===Web Resources Quality Assurance===
If you are producing a web-application, please install YSlow in the browser you use to validate the quality of your code. And other good practice is to do a functional test of your web-gui against the major browsers on the market (at least Firefox, IExplorer and Chrome). There are some online services to test a web application on different machine configurations and browser versions, like the popular ''browsershots.org''.

* [http://developer.yahoo.com/yslow/ YSlow]
* [http://browsershots.org/ browsershots.org] (or [http://litmusapp.com/ Litmus], or [http://www.thumbalizr.com/ thumbalizr])

'''Web resources validation''': a good quality indicator about our web resources are the W3C validations. Please apply your documents for validation and review the W3C warnings and recommendations before to commit the files:

[http://validator.w3.org/check?uri=http%3A%2F%2Ffgaucho.dyndns.org%3A8080%2Farena-jsf20%2F [[image: valid-xhtml10-blue.png]]] [http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Ffgaucho.dyndns.org%3A8080%2Farena-jsf20%2Fresources%2Fcss%2Fpuj.css&amp;profile=css3&amp;usermedium=all&amp;warning=2 [[image: vcss-blue.gif]]] [http://validator.w3.org/feed/check.cgi?url=fgaucho.dyndns.org%3A8080%2Farena-http%2Fatom [[image: valid-atom.png]]]

Other good tools for cleanup &amp; enhance the quality of your web resources are:
* [http://services.immike.net/css-checker/ CSS Redundancy Checker]
* [http://csstidy.sourceforge.net/example.php CSSTidy]
* [http://www.jslint.com/ JSLint] (javascript validator)
* [http://websiteoptimization.com/services/analyze/ Web Page Analyzer]

=References=
==HTTP Protocol==
* [http://www.mnot.net/cache_docs/ Caching Tutorial ''for Web Authors and Webmasters'']
* [http://www.atomenabled.org/developers/syndication/ Atom Syndication Format]
* [http://www.ibm.com/developerworks/library/x-atompp1/ Getting to know the Atom Publishing Protocol]

==RESTful Web-Services==
* [http://www.infoq.com/articles/webber-rest-workflow How to GET a Cup of Coffee]
* [http://jcalcote.wordpress.com/2008/10/16/put-or-post-the-rest-of-the-story/ PUT or POST: The REST of the Story]
* [http://www.prescod.net/rest/mistakes/ Common REST Mistakes]
* [http://www.xfront.com/REST-Web-Services.html Building Web Services the REST Way]

==Java EE==
* [http://java.sun.com/javaee/6/docs/tutorial/doc/ The Java EE 6 Tutorial]
* [http://wikis.sun.com/display/Jersey/Main Jersey Framework]
* [https://www.sun.com/offers/details/Java_Jersey_Client.xml Jersey Client Programming]

==Tools==
* [http://www.sonatype.com/books/maven-book/reference/ Maven: The Definitive Guide]
* [http://wiki.glassfish.java.net/Wiki.jsp?page=GlassFishDocs Glassfish Documentation]
* [http://refcardz.dzone.com/refcardz/getting-started-glassfish?oid=hom14321 Glassfish V3 RefCard]
* [http://dev.mysql.com/doc/ MySql Documentation]
* [http://mercurial.selenic.com/wiki/MercurialBook The Mercurial Book]
</text>
  <text-as-html>&lt;p&gt;&lt;b&gt;Arena PUJ - Development Environment Configuration&lt;/b&gt;

&lt;/p&gt;&lt;p&gt;&lt;a class='external' href=&quot;http://fgaucho.dyndns.org:8080/hudson/job/arena-puj/&quot;&gt;&lt;?link_for_image title.png|right?&gt;&lt;/a&gt;&lt;a class='external' href=&quot;https://www.ohloh.net/p/arena-puj&quot;&gt;&lt;?link_for_image project_partner_badge.gif|right?&gt;&lt;/a&gt;

&lt;/p&gt;&lt;div id='toc' class='toc'&gt;
           &lt;div id='toctitle' class='toc-title'&gt;
             &lt;span&gt;Contents&lt;/span&gt;
           &lt;/div&gt;
           &lt;div id='toccontents' class='toc-contents'&gt;&lt;ul&gt;&lt;li&gt;1 &lt;a href='#Where_is_the_project_specification?'&gt;Where is the project specification?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2 &lt;a href='#QuickStart_-_The_code_up_and_running_in_~10_minutes'&gt;QuickStart -  The code up and running in ~10 minutes&lt;/a&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;2.1 &lt;a href='#Environment_Setup'&gt;Environment Setup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2.2 &lt;a href='#Adding_permissions_to_Reflection_based_frameworks'&gt;Adding permissions to Reflection based frameworks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2.3 &lt;a href='#Adding_the_permissions_to_Reflection_based_frameworks'&gt;Adding the permissions to Reflection based frameworks &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2.4 &lt;a href='#Install_MySql_driver_in_Glassfish'&gt;Install MySql driver in Glassfish&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2.5 &lt;a href='#Checkout_and_build_the_source_code'&gt;Checkout and build the source code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2.6 &lt;a href='#Start_the_MySql_database'&gt;Start the MySql database&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2.7 &lt;a href='#Building_and_deploying_the_application'&gt;Building and deploying the application&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2.8 &lt;a href='#Testing_the_application'&gt;Testing the application&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;3 &lt;a href='#Quality_assurance'&gt;Quality assurance&lt;/a&gt;&lt;/li&gt;
&lt;ul&gt;&lt;ul&gt;&lt;li&gt;3.1 &lt;a href='#Java_Quality_Assurance_&amp;amp;_Continuous_integration'&gt;Java Quality Assurance &amp;amp; Continuous integration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;3.2 &lt;a href='#Encoding'&gt;Encoding&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;3.3 &lt;a href='#Web_Resources_Quality_Assurance'&gt;Web Resources Quality Assurance&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;4 &lt;a href='#References'&gt;References&lt;/a&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;4.1 &lt;a href='#HTTP_Protocol'&gt;HTTP Protocol&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;4.2 &lt;a href='#RESTful_Web-Services'&gt;RESTful Web-Services&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;4.3 &lt;a href='#Java_EE'&gt;Java EE&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;4.4 &lt;a href='#Tools'&gt;Tools&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/ul&gt;&lt;/div&gt;
         &lt;/div&gt;&lt;h1&gt;&lt;a name='Where_is_the_project_specification?'&gt;&lt;/a&gt;Where is the project specification?&lt;/h1&gt;
&lt;p&gt;Would you like to know more about the project before to &lt;i&gt;put your hands in the code jar&lt;/i&gt;? Here are the docs:

&lt;/p&gt;&lt;ul&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://kenai.com/projects/puj&quot;&gt;The PUJ Competition&lt;/a&gt; (the business case).
&lt;/li&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://kenai.com/projects/puj/pages/Arena&quot;&gt;The Arena Project Specification&lt;/a&gt;.
&lt;/li&gt;&lt;/ul&gt;&lt;h1&gt;&lt;a name='QuickStart_-_The_code_up_and_running_in_~10_minutes'&gt;&lt;/a&gt;QuickStart -  The code up and running in ~10 minutes&lt;/h1&gt;
&lt;p&gt;The following instructions were tested in &lt;a class='external' href=&quot;http://www.ubuntu.com/&quot;&gt;Linux Ubuntu 9.10&lt;/a&gt;, but we assume it will work in other operational systems as well. If you have questions or problems during your local setup, please feel free to send an email to fgaucho@gmail.com

&lt;/p&gt;&lt;h2&gt;&lt;a name='Environment_Setup'&gt;&lt;/a&gt;Environment Setup&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt; Check if you have all software you need:
&lt;ol&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://java.sun.com/&quot;&gt;Java 6.x&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://maven.apache.org/&quot;&gt;Maven 2.x&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://www.mysql.com/&quot;&gt;MySql 5.x&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://mercurial.selenic.com/wiki/&quot;&gt;Mercurial&lt;/a&gt; (if you are under some proxy try the mercurial 1.3.1 or newer)
&lt;/li&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://download.java.net/glassfish/v3/nightly/&quot;&gt;Glassfish v3&lt;/a&gt; (glassfish b69 at least)
&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt; Put the $GLASSFISH_HOME/bin in your $PATH (%path% on windows). It is required by the Maven script;
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt; Create a file called $HOME/.passwords directory, containing the following properties:
&lt;/li&gt;&lt;/ul&gt;&lt;pre&gt; ASADMIN_USER=admin
 
 MAIL_HOST=&lt;i&gt;smtp.some email.com&lt;/i&gt;
 MAIL_USER=&lt;i&gt;user&lt;/i&gt;
 MAIL_FROM=&lt;i&gt;user@somemail.com&lt;/i&gt;
 MAIL_SMTP_USER=&lt;i&gt;user@somemail.com&lt;/i&gt;
 MAIL_SMTP_PORT=465
 MAIL_SMTP_PASSWORD=&lt;i&gt;some_password&lt;/i&gt;
 
 MYSQL_USER=root
 MYSQL_PASSWORD=adminadmin
 DB_URL=jdbc\\:mysql\\://localhost\\:3306/arena
&lt;/pre&gt;&lt;ul&gt;&lt;li&gt; If you are using Windows, create the file %USERPROFILE%\.passwords and copy the above properties, but please change the DB_URL to:
&lt;/li&gt;&lt;/ul&gt;&lt;pre&gt; DB_URL=jdbc\:mysql\://localhost\:3306/arena
&lt;/pre&gt;&lt;h2&gt;&lt;a name='Adding_permissions_to_Reflection_based_frameworks'&gt;&lt;/a&gt;Adding permissions to Reflection based frameworks&lt;/h2&gt;
&lt;h2&gt;&lt;a name='Adding_the_permissions_to_Reflection_based_frameworks'&gt;&lt;/a&gt;Adding the permissions to Reflection based frameworks &lt;/h2&gt;
&lt;p&gt;Add the below lines to the file $AS_HOME/domains/domain1/config/server.policy

&lt;/p&gt;&lt;pre&gt; grant codeBase &amp;quot;file:${com.sun.aas.installRoot}/domains/domain1/applications/arena-dwr/-&amp;quot; {
     permission java.lang.reflect.ReflectPermission &amp;quot;suppressAccessChecks&amp;quot;;
 };
 grant codeBase &amp;quot;file:${com.sun.aas.installRoot}/domains/domain1/applications/arena-vaadin/-&amp;quot; {
     permission java.lang.reflect.ReflectPermission &amp;quot;suppressAccessChecks&amp;quot;;
 };
&lt;/pre&gt;&lt;h2&gt;&lt;a name='Install_MySql_driver_in_Glassfish'&gt;&lt;/a&gt;Install MySql driver in Glassfish&lt;/h2&gt;
&lt;p&gt;You need to copy the &lt;a class='external' href=&quot;http://dev.mysql.com/downloads/connector/j/5.1.html&quot;&gt;MySql Connector/J jar file&lt;/a&gt; to the folder $AS_HOME/domains/domain1/lib/ext

&lt;/p&gt;&lt;p&gt;This should be done manually and you should restart the server after copying the file. &lt;a class='external' href=&quot;http://docs.sun.com/app/docs/doc/820-4496/beaml?a=view&quot;&gt;more...&lt;/a&gt;

&lt;/p&gt;&lt;ul&gt;&lt;li&gt; &lt;i&gt;Please check if you are using the default domain1, otherwise modify the above command according your Server domain name&lt;/i&gt;.
&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;&lt;a name='Checkout_and_build_the_source_code'&gt;&lt;/a&gt;Checkout and build the source code&lt;/h2&gt;
&lt;pre&gt;  hg clone &lt;a class='external' href=&quot;https://kenai.com/hg/puj~arena&quot;&gt;https://kenai.com/hg/puj~arena&lt;/a&gt; 
  cd puj~arena 
  mvn clean install eclipse:eclipse
&lt;/pre&gt;&lt;p&gt;
Done! Now you can import the project in your preferred IDE and play around the source code.

&lt;/p&gt;&lt;h2&gt;&lt;a name='Start_the_MySql_database'&gt;&lt;/a&gt;Start the MySql database&lt;/h2&gt;
&lt;p&gt;
If  the MySql database is not yet running, please turn it on:

&lt;/p&gt;&lt;ul&gt;&lt;li&gt; &lt;b&gt;Linux Users&lt;/b&gt;: /etc/rc.d/init.d/mysqld start
&lt;/li&gt;&lt;li&gt; &lt;b&gt;Windows Users&lt;/b&gt;: C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld
&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;&lt;a name='Building_and_deploying_the_application'&gt;&lt;/a&gt;Building and deploying the application&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt; &lt;b&gt;Linux Users&lt;/b&gt;: use the profile -Phudson:
&lt;/li&gt;&lt;/ul&gt;&lt;pre&gt;  cd puj~arena 
  asadmin start-domain
  mvn clean install -Phudson
&lt;/pre&gt;&lt;ul&gt;&lt;li&gt; &lt;b&gt;Windows Users&lt;/b&gt;: use the profile -PhudsonWin:
&lt;/li&gt;&lt;/ul&gt;&lt;pre&gt;  cd puj~arena 
  asadmin start-domain
  mvn clean install -PhudsonWin
&lt;/pre&gt;&lt;h2&gt;&lt;a name='Testing_the_application'&gt;&lt;/a&gt;Testing the application&lt;/h2&gt;
&lt;p&gt;If everything worked fine, you should be able to access the following URLs:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://localhost:8080/arena-http/application.wadl&quot;&gt;the service contract&lt;/a&gt; 
&lt;/li&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://localhost:8080/arena-jsf20&quot;&gt;the JSF web gui&lt;/a&gt; 
&lt;/li&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://localhost:8080/arena-dwr&quot;&gt;the DWR web gui&lt;/a&gt; 
&lt;/li&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://localhost:8080/arena-vaadin&quot;&gt;the Vaadin web gui&lt;/a&gt; 
&lt;/li&gt;&lt;/ul&gt;&lt;h1&gt;&lt;a name='Quality_assurance'&gt;&lt;/a&gt;Quality assurance&lt;/h1&gt;
&lt;h3&gt;&lt;a name='Java_Quality_Assurance_&amp;amp;_Continuous_integration'&gt;&lt;/a&gt;Java Quality Assurance &amp;amp; Continuous integration&lt;/h3&gt;
&lt;p&gt;Our project has a &lt;a class='external' href=&quot;http://fgaucho.dyndns.org:8080/hudson/job/arena-puj/&quot;&gt;Continuous Integration Server&lt;/a&gt; configured to check the quality of our work continuously. If there is any commit in the last hour, this server will build a clean copy of the source code and generates quality reports  based on Findbugs and PMD. Please visit that server regularly to check if your code is sound and considered good quality.

&lt;/p&gt;&lt;p&gt;Also, please be sure to have the following plugins installed in your preferred IDE:

&lt;/p&gt;&lt;ul&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://findbugs.sourceforge.net&quot;&gt;FindBugs&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://pmd.sourceforge.net/integrations.html&quot;&gt;PMD&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;&lt;a name='Encoding'&gt;&lt;/a&gt;Encoding&lt;/h3&gt;
&lt;p&gt;Always use UTF-8 as the file encoding. If you will include HTML code in Java files, or other resources that will generate HTML output, please &lt;a class='external' href=&quot;http://www.stringfunction.com/html-encode.html&quot;&gt;convert special characters to HTML encoding&lt;/a&gt;.

&lt;/p&gt;&lt;h3&gt;&lt;a name='Web_Resources_Quality_Assurance'&gt;&lt;/a&gt;Web Resources Quality Assurance&lt;/h3&gt;
&lt;p&gt;If you are producing a web-application, please install YSlow in the browser you use to validate the quality of your code. And other good practice is to do a functional test of your web-gui against the major browsers on the market (at least Firefox, IExplorer and Chrome). There are some online services to test a web application on different machine configurations and browser versions, like the popular &lt;i&gt;browsershots.org&lt;/i&gt;.

&lt;/p&gt;&lt;ul&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://developer.yahoo.com/yslow/&quot;&gt;YSlow&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://browsershots.org/&quot;&gt;browsershots.org&lt;/a&gt; (or &lt;a class='external' href=&quot;http://litmusapp.com/&quot;&gt;Litmus&lt;/a&gt;, or &lt;a class='external' href=&quot;http://www.thumbalizr.com/&quot;&gt;thumbalizr&lt;/a&gt;)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;b&gt;Web resources validation&lt;/b&gt;: a good quality indicator about our web resources are the W3C validations. Please apply your documents for validation and review the W3C warnings and recommendations before to commit the files:

&lt;/p&gt;&lt;p&gt;&lt;a class='external' href=&quot;http://validator.w3.org/check?uri=http%3A%2F%2Ffgaucho.dyndns.org%3A8080%2Farena-jsf20%2F&quot;&gt;&lt;?link_for_image valid-xhtml10-blue.png?&gt;&lt;/a&gt; &lt;a class='external' href=&quot;http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Ffgaucho.dyndns.org%3A8080%2Farena-jsf20%2Fresources%2Fcss%2Fpuj.css&amp;profile=css3&amp;usermedium=all&amp;warning=2&quot;&gt;&lt;?link_for_image vcss-blue.gif?&gt;&lt;/a&gt; &lt;a class='external' href=&quot;http://validator.w3.org/feed/check.cgi?url=fgaucho.dyndns.org%3A8080%2Farena-http%2Fatom&quot;&gt;&lt;?link_for_image valid-atom.png?&gt;&lt;/a&gt;

&lt;/p&gt;&lt;p&gt;Other good tools for cleanup &amp;amp; enhance the quality of your web resources are:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://services.immike.net/css-checker/&quot;&gt;CSS Redundancy Checker&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://csstidy.sourceforge.net/example.php&quot;&gt;CSSTidy&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://www.jslint.com/&quot;&gt;JSLint&lt;/a&gt; (javascript validator)
&lt;/li&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://websiteoptimization.com/services/analyze/&quot;&gt;Web Page Analyzer&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h1&gt;&lt;a name='References'&gt;&lt;/a&gt;References&lt;/h1&gt;
&lt;h2&gt;&lt;a name='HTTP_Protocol'&gt;&lt;/a&gt;HTTP Protocol&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://www.mnot.net/cache_docs/&quot;&gt;Caching Tutorial &lt;i&gt;for Web Authors and Webmasters&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://www.atomenabled.org/developers/syndication/&quot;&gt;Atom Syndication Format&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://www.ibm.com/developerworks/library/x-atompp1/&quot;&gt;Getting to know the Atom Publishing Protocol&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;&lt;a name='RESTful_Web-Services'&gt;&lt;/a&gt;RESTful Web-Services&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://www.infoq.com/articles/webber-rest-workflow&quot;&gt;How to GET a Cup of Coffee&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://jcalcote.wordpress.com/2008/10/16/put-or-post-the-rest-of-the-story/&quot;&gt;PUT or POST: The REST of the Story&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://www.prescod.net/rest/mistakes/&quot;&gt;Common REST Mistakes&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://www.xfront.com/REST-Web-Services.html&quot;&gt;Building Web Services the REST Way&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;&lt;a name='Java_EE'&gt;&lt;/a&gt;Java EE&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://java.sun.com/javaee/6/docs/tutorial/doc/&quot;&gt;The Java EE 6 Tutorial&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://wikis.sun.com/display/Jersey/Main&quot;&gt;Jersey Framework&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a class='external' href=&quot;https://www.sun.com/offers/details/Java_Jersey_Client.xml&quot;&gt;Jersey Client Programming&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;&lt;a name='Tools'&gt;&lt;/a&gt;Tools&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://www.sonatype.com/books/maven-book/reference/&quot;&gt;Maven: The Definitive Guide&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://wiki.glassfish.java.net/Wiki.jsp?page=GlassFishDocs&quot;&gt;Glassfish Documentation&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://refcardz.dzone.com/refcardz/getting-started-glassfish?oid=hom14321&quot;&gt;Glassfish V3 RefCard&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://dev.mysql.com/doc/&quot;&gt;MySql Documentation&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a class='external' href=&quot;http://mercurial.selenic.com/wiki/MercurialBook&quot;&gt;The Mercurial Book&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</text-as-html>
  <updated-at type="datetime">2010-01-24T08:55:37Z</updated-at>
  <wiki-id type="integer">11683</wiki-id>
</page>
