<?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>Rodrigo Lazoti Blog</title>
	<atom:link href="http://rodrigolazoti.com.br/feed/" rel="self" type="application/rss+xml" />
	<link>http://rodrigolazoti.com.br</link>
	<description>Software development and technology in general</description>
	<lastBuildDate>Mon, 30 May 2011 17:42:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>How to install htop on MacOS</title>
		<link>http://rodrigolazoti.com.br/2011/05/30/how-to-install-htop-on-macos/</link>
		<comments>http://rodrigolazoti.com.br/2011/05/30/how-to-install-htop-on-macos/#comments</comments>
		<pubDate>Mon, 30 May 2011 15:06:11 +0000</pubDate>
		<dc:creator>Rodrigo Lazoti</dc:creator>
				<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[operational system]]></category>
		<category><![CDATA[Sistema Operacional]]></category>
		<category><![CDATA[Terminal]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[htop]]></category>
		<category><![CDATA[Leopard]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[os]]></category>
		<category><![CDATA[terminal]]></category>

		<guid isPermaLink="false">http://rodrigolazoti.com.br/?p=555</guid>
		<description><![CDATA[htop is a great interactive process viewer in text-mode, but unfortunately it works only on Linux. Fortunately I found in Github a htop version for OSX and it works perfectly. To install it, before you&#8217;ll need to have git (if you already don&#8217;t have git installed ). So, below you can see how to install it. [...]]]></description>
			<content:encoded><![CDATA[<p><a title="htop" href="http://htop.sourceforge.net/" target="_blank">htop</a> is a great interactive process viewer in text-mode, but unfortunately it works only on <a title="Linux" href="http://wikipedia.org/wiki/Linux" target="_blank">Linux</a>.<br />
Fortunately I found in <a title="Github" href="http://github.com" target="_blank">Github</a> a htop version for <a title="Mac OS" href="http://www.apple.com/br/macosx/" target="_blank">OSX</a> and it works perfectly.</p>
<p>To install it, before you&#8217;ll need to have <a title="Git" href="http://git-scm.com/" target="_blank">git</a> (if you already don&#8217;t have git installed <img src='http://www.rodrigolazoti.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ).<br />
So, below you can see how to install it.</p>
<pre class="brush: bash; title: ; notranslate">
git clone git://github.com/AndyA/htop-osx.git
cd htop-osx
git checkout -b osx origin/osx
export CFLAGS=&quot;-m32&quot;
./autogen.sh
./configure
make
sudo make install
</pre>
<p>To run it, just execute <strong>htop</strong> in your terminal. <img src='http://www.rodrigolazoti.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<pre><img class="alignnone size-full wp-image-558" title="htop screenshot" src="http://www.rodrigolazoti.com.br/wp-content/uploads/2011/05/Screen-shot-2011-05-28-at-1.09.54-AM.png" alt="htop screenshot" width="521" height="435" /></pre>
]]></content:encoded>
			<wfw:commentRss>http://rodrigolazoti.com.br/2011/05/30/how-to-install-htop-on-macos/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Some tips about Ubuntu 11.04 Natty Narwhal</title>
		<link>http://rodrigolazoti.com.br/2011/05/02/some-tips-about-ubuntu-11-04-natty-narwhal/</link>
		<comments>http://rodrigolazoti.com.br/2011/05/02/some-tips-about-ubuntu-11-04-natty-narwhal/#comments</comments>
		<pubDate>Mon, 02 May 2011 18:03:52 +0000</pubDate>
		<dc:creator>Rodrigo Lazoti</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sistema Operacional]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Natty Narwhal]]></category>
		<category><![CDATA[operational system]]></category>
		<category><![CDATA[os]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[unity]]></category>

		<guid isPermaLink="false">http://rodrigolazoti.com.br/?p=516</guid>
		<description><![CDATA[In April 28th, the Canonical released the version 11.04 (Natty Narwhal) of Ubuntu. On the same day I downloaded it to install on my workstation and I was surprised with Unity UI, the launcher and the dash. In this post I gathered some tips to customize/adjust it. &#160; How to add terminal applications to launcher For example, if [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">In April 28th, the <a title="Canonical" href="http://www.canonical.com" target="_blank">Canonical</a> released the version 11.04 (Natty Narwhal) of <a title="Ubuntu" href="http://www.ubuntu.com/" target="_blank">Ubuntu</a>. On the same day I downloaded it to install on my workstation and I was surprised with <a title="Unity UI" href="http://unity.ubuntu.com/" target="_blank">Unity UI</a>, the launcher and the dash.</p>
<p style="text-align: left;">In this post I gathered some tips to customize/adjust it. <img src='http://www.rodrigolazoti.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p style="text-align: left;">&nbsp;</p>
<ul>
<li class="subtitle">How to add terminal applications to launcher</li>
</ul>
<p style="text-align: left;">For example, if you want to add the <a title="Eclipse" href="http://www.eclipse.org/" target="_blank">Eclipse IDE</a> into your launcher, you need to create a file with <strong>&#8220;.desktop&#8221;</strong> extension and add the following content:</p>
<pre class="brush: bash; title: ; notranslate">
#Eclipse.desktop
[Desktop Entry]
Version=3.6
Name=Eclipse
Comment=
Exec=/home/rodrigo/Programs/eclipse/eclipse
StartupWMClass=
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=/home/rodrigo/Programs/eclipse/icon.xpm
StartupNotify=true
</pre>
<p style="text-align: left;">Then, drag and drop this file into the launcher.</p>
<p style="text-align: left;">&nbsp;</p>
<ul>
<li class="subtitle">How to show all icons in the system tray</li>
</ul>
<p style="text-align: left;">By default, only a few icons are displayed in the tray. To show all icons, you need to open your terminal and type:</p>
<pre class="brush: bash; title: ; notranslate">
gsettings set com.canonical.Unity.Panel systray-whitelist &quot;['all']&quot;
</pre>
<p style="text-align: left;">Then, restart Ubuntu.</p>
<p style="text-align: left;">&nbsp;</p>
<ul>
<li class="subtitle">How to remove the launcher auto-hide behavior</li>
</ul>
<p style="text-align: left;">For it, you need to install the Advanced Desktop Effects Settings (ccsm)</p>
<pre class="brush: bash; title: ; notranslate">
sudo apt-get install compizconfig-settings-manager
</pre>
<p style="text-align: left;">Then, use Alt+F2 shortcut key to open the &#8220;Run a command&#8221; dialog, type <strong>about:config</strong> and run it, change the property <strong>Hide Launcher</strong> to <strong>Never.</strong></p>
<p style="text-align: left;">&nbsp;</p>
<ul>
<li class="subtitle">How to change the launcher icon size</li>
</ul>
<p style="text-align: left;">Here, you also need install the Advanced Desktop Effects Settings (ccsm).</p>
<p style="text-align: left;">In the same window you used above, change the property <strong>Laucher icon size</strong> to another value.</p>
<p style="text-align: left;">&nbsp;</p>
<ul>
<li class="subtitle">How to add a CPU/memory monitor int the system tray</li>
</ul>
<p style="text-align: left;">Just type in your terminal:</p>
<pre class="brush: bash; title: ; notranslate">
sudo add-apt-repository ppa:alexeftimie/ppa
sudo apt-get update
sudo apt-get install indicator-sysmonitor
indicator-sysmonitor
</pre>
<p style="text-align: left;">You can put it (incidator-sysmonitor) in your Startup Application Preferences.</p>
]]></content:encoded>
			<wfw:commentRss>http://rodrigolazoti.com.br/2011/05/02/some-tips-about-ubuntu-11-04-natty-narwhal/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Programas úteis para o Mac OS &#8211; 2011</title>
		<link>http://rodrigolazoti.com.br/2011/01/08/programas-uteis-para-o-mac-os-2011/</link>
		<comments>http://rodrigolazoti.com.br/2011/01/08/programas-uteis-para-o-mac-os-2011/#comments</comments>
		<pubDate>Sun, 09 Jan 2011 02:58:39 +0000</pubDate>
		<dc:creator>Rodrigo Lazoti</dc:creator>
				<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Sistema Operacional]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Leopard]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Macbook]]></category>

		<guid isPermaLink="false">http://www.rodrigolazoti.com.br/pt/?p=473</guid>
		<description><![CDATA[No começo de 2009 eu escrevi um post sobre este tema relatando alguns aplicativos que na época eu gostava e agora quase 2 anos depois resolvi (re)escrever um novo post com novos aplicativos que uso quase que diarimente e costumo recomendar. Desta vez irei apresentar uma lista contendo 13 aplicativos onde alguns substituiram outros aplicativos [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-461 alignleft" title="apps" src="http://rodrigolazoti.com.br/wp-content/uploads/2011/01/apps.png" alt="" width="300" height="264" /><br />
No começo de 2009 eu escrevi um <a title="Programas úteis para seu Mac OS X" href="http://www.rodrigolazoti.com.br/pt/2009/03/05/programas-uteis-para-seu-mac-os-x/" target="_blank">post sobre este tema</a> relatando alguns aplicativos que na época eu gostava e agora quase 2 anos depois resolvi (re)escrever um novo post com novos aplicativos que uso quase que diarimente e costumo recomendar.<br />
<br class="spacer_" /><br />
Desta vez irei apresentar uma lista contendo 13 aplicativos onde alguns substituiram outros aplicativos que eu usava e alguns são novos mesmo.</p>
<p><br class="spacer_" /></p>
<ol>
<li>
<div><strong><a href="http://www.fraiseapp.com/" target="_blank">Fraise:</a></strong> não sei se todos sabem mas o aplicativo opensouce Smultron foi descontinuado (parece que agora ele voltou a ser atualizado e inclusive está a venda na Mac App Store), e isto só não se tornou um perda enorme porque um fork do projeto chamado Fraise apareceu. O Fraise seria algo similar ao notepad++ ou gedit. Simples mas funcional.</div>
</li>
<p><br class="spacer_" /></p>
<li>
<div><strong><a href="http://www.sparrowmailapp.com/" target="_blank">Sparrow:</a></strong> no começo eu usava o Mail.app como cliente de emails, depois que centralizei todas as minhas contas de email no GMail passei a utilizar apenas o GMail através do Fluid (<a title="Como criar um aplicativo do GMail para Mac OS" href="http://www.rodrigolazoti.com.br/pt/2010/09/23/como-criar-um-aplicativo-do-gmail-para-mac-os/" target="_blank">escrevi um post sobre isso</a>). Mas agora estou utilizando o Sparrow como cliente de email do GMail e estou gostando da interface simples dele e do seu consumo de memória que é bem menor que a do aplicativo que criei pelo Fluid.</div>
</li>
<p><br class="spacer_" /></p>
<li>
<div><strong><a href="http://sites.google.com/site/yorufukurou/" target="_blank">YoruFukurou:</a></strong> Ok, esse nome é péssimo! <img src='http://www.rodrigolazoti.com.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Mas depois de muito tempo utilizando o Tweetie e aguardando atualizações que nunca aconteciam, resolvi testar outros clientes para twitter até que encontrei este e foi o que mais gostei até o momento. E Sim, já testei o Twitter for Mac, mas por enquanto ainda prefiro o YoruFukurou.</div>
</li>
<p><br class="spacer_" /></p>
<li>
<div><strong><a href="http://madeatgloria.com/brewery/silvio/reeder" target="_blank">Reeder:</a></strong> Um ótimo cliente para Google Reader com uma interface bem elegante.</div>
</li>
<p><br class="spacer_" /></p>
<li>
<div><strong><a href="http://ps3mediaserver.blogspot.com/" target="_blank">PS3 Media Server:</a></strong> Esse aqui é para quem tem Playstation 3 e quer compartilhar fotos, músicas e vídeos com o PS3 via rede Wifi ou por cabo mesmo.</div>
</li>
<p><br class="spacer_" /></p>
<li>
<div><strong><a href="http://blog.boastr.net/" target="_blank">Better Touch Tool:</a></strong> Só quem já experimentou o Multi-touch do trackpad de algum Macbook sabe como é. Mas mesmo o trackpad possuindo várias opções de toques e configurações, ainda assim você pode querer criar seus próprios toques e é aí que entra em cena o Better Touch Tool. Com ele você aumenta a quantidade de toques possíveis para o Trackpad, Magic Mouse e Magic Trackpad.</div>
</li>
<p><br class="spacer_" /></p>
<li>
<div><strong><a href="http://cyberduck.ch/" target="_blank">CyberDuck:</a></strong> Um bom cliente de FTP/SFTP. Antes utilizava o FileZilla mas comecei a ter alguns probleminhas com ele e por isso comecei a usar o CyberDuck.</div>
</li>
<p><br class="spacer_" /></p>
<li>
<div><strong><a href="http://www.google.com/chrome" target="_blank">Google Chrome:</a></strong> Usei durante um bom tempo o Safari e gostava bastante, mas passei a usar o Chrome como browser padrão depois que vi alguns recursos como a sincronização de bookmasks e plugins instalados.</div>
</li>
<p><br class="spacer_" /></p>
<li>
<div><strong><a href="http://www.sequentialx.com/" target="_blank">Sequential:</a></strong> Se você costuma ler gibi, quadrinhos ou mangá pelo computador, esse aplicativo é para você. <img src='http://www.rodrigolazoti.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </div>
</li>
<p><br class="spacer_" /></p>
<li>
<div><strong><a href="http://code.google.com/p/ichm/" target="_blank">iChm:</a></strong> Leitor de arquivo CHM. Costumo evitar sempre que posso arquivos nesse formato, mas nem sempre é possível.</div>
</li>
<p><br class="spacer_" /></p>
<li>
<div><strong><a href="http://bjango.com/mac/istatmenus/" target="_blank">iStat Menus:</a></strong> Este aplicativo é muito útil, com ele consigo ter várias informações no Menu Bar como: Memória usada/livre, atividade de rede, sensor de temperatura e consumo de cpu.</div>
</li>
<p><br class="spacer_" /></p>
<li>
<div><strong><a href="http://www.apple.com/macosx/what-is-macosx/time-machine.html" target="_blank">Time Machine:</a></strong> Só quem já perdeu um ou mais arquivos importantes sabe o quanto fazer backup é necessário e embora este aplicativo já venha instalado por padrão no Mac OS resolvi citá-lo, pois considero a melhor ferramenta de backup que já usei para Mac.</div>
</li>
<p><br class="spacer_" /></p>
<li>
<div><strong><a href="http://www.dropbox.com/" target="_blank">Dropbox:</a></strong> Uma outra ótima opcão de backup, mas online. Além de uma forma simples e rápida de compartilhar arquivos com outros computadores, smartphones e pessoas.</div>
</li>
</ol>
<p><br class="spacer_" /></p>
<div>Então é isso, #fikdik desses aplicativos! <img src='http://www.rodrigolazoti.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </div>
<p><br class="spacer_" /></p>
]]></content:encoded>
			<wfw:commentRss>http://rodrigolazoti.com.br/2011/01/08/programas-uteis-para-o-mac-os-2011/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Como criar um aplicativo do GMail para Mac OS</title>
		<link>http://rodrigolazoti.com.br/2010/09/23/como-criar-um-aplicativo-do-gmail-para-mac-os/</link>
		<comments>http://rodrigolazoti.com.br/2010/09/23/como-criar-um-aplicativo-do-gmail-para-mac-os/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 04:17:43 +0000</pubDate>
		<dc:creator>Rodrigo Lazoti</dc:creator>
				<category><![CDATA[GMail]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Sistema Operacional]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[macos]]></category>
		<category><![CDATA[mail]]></category>

		<guid isPermaLink="false">http://www.rodrigolazoti.com.br/pt/?p=430</guid>
		<description><![CDATA[O Mail.app é um ótimo aplicativo para acessar emails assim como sua integração com o Mac OS, mas eu particularmente tenho preferido utilizar diretamente a interface web do GMail para acessar meus emails (sim, todos meus emails são redirecionados para minha conta do GMail). Porém o fato de ter que reserver uma aba do browser [...]]]></description>
			<content:encoded><![CDATA[<p>O <a href="http://www.apple.com/macosx/what-is-macosx/mail-ical-address-book.html" target="_blank">Mail.app</a> é um ótimo aplicativo para acessar emails assim como sua integração com o Mac OS, mas eu particularmente tenho preferido utilizar diretamente a interface web do GMail para acessar meus emails (sim, todos meus emails são redirecionados para minha conta do GMail).</p>
<p>Porém o fato de ter que reserver uma aba do browser para o GMail me incomodava e também sentia falta de um ícone no Dock com a quantidade de emails não lidos.</p>
<p>Isso me motivou a procurar uma solução e foi aí que encontrei o aplicativo <a href="http://fluidapp.com/" target="_blank">Fluid</a>.</p>
<p>Com o <a href="http://fluidapp.com/" target="_blank">Fuild</a>, você consegue criar um aplicativo nativo para o Mac (.app) a partir de uma URL qualquer, adicioná-lo ao Dock e até mesmo exibir labels com informações (como a quantidade de emails não lidos do GMail).</p>
<p><a href="http://rodrigolazoti.com.br/wp-content/uploads/2010/09/Screen-shot-2010-09-23-at-12.53.35-AM.png"><img class="alignnone size-full wp-image-431" title="GMail.app" src="http://rodrigolazoti.com.br/wp-content/uploads/2010/09/Screen-shot-2010-09-23-at-12.53.35-AM.png" alt="" width="395" height="152" /></a></p>
<p>Seu uso é bem simples, basta informar uma URL, um nome qualquer, local onde o aplicativo será criado e um ícone (no <a href="http://www.google.com.br/imghp?hl=pt-BR&amp;tab=wi" target="_blank">Google Images</a> existem diversos ícones para GMail <img src='http://www.rodrigolazoti.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ).</p>
<p><a href="http://rodrigolazoti.com.br/wp-content/uploads/2010/09/Screen-shot-2010-09-23-at-12.52.34-AM.png"><img class="alignnone size-full wp-image-432" title="Screen shot 2010-09-23 at 12.52.34 AM" src="http://rodrigolazoti.com.br/wp-content/uploads/2010/09/Screen-shot-2010-09-23-at-12.52.34-AM.png" alt="" width="516" height="283" /></a></p>
<p>Uma desvantagem ao usar essa abordagem é que se perde o recurso de pesquisa nos emails via Spotlight, porém raramente precisei usar o spotlight para fazer alguma busca nos meus emails, então não considero um alto preço a se pagar.</p>
<p>Então é isso, fica a dica a todos usuários do GMail e Mac OS! <img src='http://www.rodrigolazoti.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://rodrigolazoti.com.br/2010/09/23/como-criar-um-aplicativo-do-gmail-para-mac-os/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Oracle Certified Enterprise Architect for JEE 5, passei!</title>
		<link>http://rodrigolazoti.com.br/2010/09/16/oracle-certified-enterprise-architect-for-jee-5-passei/</link>
		<comments>http://rodrigolazoti.com.br/2010/09/16/oracle-certified-enterprise-architect-for-jee-5-passei/#comments</comments>
		<pubDate>Fri, 17 Sep 2010 02:54:31 +0000</pubDate>
		<dc:creator>Rodrigo Lazoti</dc:creator>
				<category><![CDATA[Certicações]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[architect]]></category>
		<category><![CDATA[arquiteto]]></category>
		<category><![CDATA[Certificacao]]></category>
		<category><![CDATA[ocea]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[scea]]></category>
		<category><![CDATA[Sun]]></category>

		<guid isPermaLink="false">http://www.rodrigolazoti.com.br/pt/?p=418</guid>
		<description><![CDATA[Hoje realizei a primeira etapa da certificação Sun Oracle Certified Enterprise Architect for J2EE 5, também conhecida como SCEA 5. Embora o nome da certificação tenha mudado, o seu conteúdo cobrado na prova continua o mesmo. A prova em si é bem abrangente com muitas perguntas de enunciados grandes e muitas com duas ou três [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje realizei a primeira etapa da certificação <del>Sun</del> Oracle Certified Enterprise Architect for J2EE 5, também conhecida como SCEA 5.</p>
<p>Embora o nome da certificação tenha mudado, o seu conteúdo cobrado na prova continua o mesmo.</p>
<p>A prova em si é bem abrangente com muitas perguntas de enunciados grandes e muitas com duas ou três alternativas corretas para selecionar. Tiveram poucas (3 ou 4) alternativas de drag-and-drop.</p>
<p>Um dos pontos que sempre vejo comentarem é sobre o tempo da prova (02:15) que é pouco e realmente é verdade, quando terminei a prova tive pouco mais de 10 minutos para rever as questões que tinha marcado para revisão.</p>
<p>O material de estudo que utilizei foi:</p>
<div id="_mcePaste">
<ul>
<li>Design patterns: elements of reuseable object-oriented software;</li>
<li>Core J2EE Patterns: Best Practices and Design Strategies, 2nd Edition;</li>
<li>Enterprise JavaBeans 3.0.</li>
<li>Java Web Services &#8211; Up and Running.</li>
<li>McGraw Hill &#8211; SCEA Sun Certified Enterprise Architect for Java EE Study Guide Exam.310-051 &#8211; Capítulos 2, 4, 6 e 10.</li>
<li>JEE 5 Tutorial;</li>
</ul>
</div>
<div></div>
<div>Não cheguei a fazer nenhum simulado porque a maioria dos que vi era para versão antiga.</div>
<div></div>
<div>Bom, agora vou descansar um pouco e começar a pensar na próxima etapa. <img src='http://www.rodrigolazoti.com.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </div>
]]></content:encoded>
			<wfw:commentRss>http://rodrigolazoti.com.br/2010/09/16/oracle-certified-enterprise-architect-for-jee-5-passei/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Desenvolvendo com JRuby e Rails 3</title>
		<link>http://rodrigolazoti.com.br/2010/09/11/desenvolvendo-com-jruby-e-rails-3/</link>
		<comments>http://rodrigolazoti.com.br/2010/09/11/desenvolvendo-com-jruby-e-rails-3/#comments</comments>
		<pubDate>Sat, 11 Sep 2010 17:28:55 +0000</pubDate>
		<dc:creator>Rodrigo Lazoti</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[JRuby]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[jee platform]]></category>
		<category><![CDATA[jruby]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[rails3]]></category>

		<guid isPermaLink="false">http://www.rodrigolazoti.com.br/pt/?p=396</guid>
		<description><![CDATA[A versão final do Rails 3 foi liberada faz pouco tempo e mesmo assim já tenho visto bastante material demonstrando as novidades dessa versão. Mas particularmente não vi muita coisa demonstrando como utilizar o JRuby com essa nova versão do Rails e isso me motivou a escrever esse post. Antes de começar efetivamente este post, [...]]]></description>
			<content:encoded><![CDATA[<p>A versão final do <a href="http://rubyonrails.org/" target="_blank">Rails 3</a> foi liberada faz pouco tempo e mesmo assim já tenho visto bastante material demonstrando as novidades dessa versão. Mas particularmente não vi muita coisa demonstrando como utilizar o <a href="http://jruby.org/" target="_blank">JRuby</a> com essa nova versão do Rails e isso me motivou a escrever esse post.</p>
<p>Antes de começar efetivamente este post, irei recomendar a <a title="Limpando meu Ambiente de Desenvolvimento" href="http://akitaonrails.com/2010/01/01/limpando-meu-ambiente-de-desenvolvimento" target="_blank">leitura do post do Fábio Akita sobre RVM</a>, nesse post ele mostra como instalar, configurar e utilizar o <a href="http://rvm.beginrescueend.com/" target="_blank">RVM</a>. Eu recomendo muito utilizar o RVM, pois ele facilita bastante o gerenciamento e utilização de várias versões do ruby, rails e gems.</p>
<p>Nesse post irei utilizar as seguintes tecnologias:</p>
<p><strong><br />
OS: Mac OS 10.6.4/Linux Ubuntu 10.04<br />
RVM: 1.0.1<br />
JRuby: 1.5.2<br />
Rails: 3.0.0<br />
MySQL Server: 5.1.45<br />
</strong></p>
<p><em>O exemplo completo do post pode ser visto no github:</em> <strong><a href="http://github.com/rlazoti/jruby-on-rails-3-example" target="_blank">http://github.com/rlazoti/jruby-on-rails-3-example</a></strong></p>
<p>Agora voltando ao post, vou começar instalando a versão atual do JRuby disponível no RVM que é a <strong>jruby-1.5.2</strong>, para instalar esta versão basta executar o comando a seguir (depois de ter instalado o RVM):</p>
<pre class="brush: bash; title: ; notranslate">
rvm install jruby
</pre>
<p>Agora vou definir o JRuby como a versão Ruby corrente no RVM através do comando:</p>
<pre class="brush: bash; title: ; notranslate">
rvm use jruby
</pre>
<p>Feito isso já posso instalar as gems necessárias para desenvolver com o Rails 3, inicialmente vou instalar apenas o Rails, pois as outras gem serão definidas na própria aplicação e instaladas pelo <a href="http://gembundler.com/" target="_blank">Bundler</a>:</p>
<pre class="brush: bash; title: ; notranslate">
gem install rails
</pre>
<p>Com o MySQL, RVM, JRuby e Rails instalados já tenho um ambiente pronto para iniciar o desenvolvimento da aplicação.</p>
<p>A aplicação será criada quase que da mesma forma que uma aplicação em rails 3, onde informarei o nome da aplicação, qual o banco de dados ela usará e um parâmetro adicional que define o template para criar a aplicação (repare que esse template serve para definir a base da aplicação como JRuby já baseado na versão 3 do framework Rails).</p>
<pre class="brush: bash; title: ; notranslate">
rails new contacts -d mysql -m http://jruby.org/rails3.rb
</pre>
<p>Com o comando executado com sucesso, o passo seguinte é definir as gems que a aplicação precisa para ser executada, a definição das gem é feita no arquivo Gemfile.</p>
<pre class="brush: bash; title: ; notranslate">
cd contacts
vi Gemfile
</pre>
<p>O conteúdo do arquivo Gemfile já com as gems necessárias para a aplicação é o seguinte:</p>
<pre class="brush: ruby; title: ; notranslate">
source 'http://rubygems.org'

gem 'rails', '3.0.0'

# Bundle edge Rails instead:
# gem 'rails', :git =&gt; 'git://github.com/rails/rails.git'

if defined?(JRUBY_VERSION)
  gem 'activerecord-jdbc-adapter'
  gem 'activerecord-jdbcmysql-adapter'
  gem 'jdbc-mysql'
  gem 'jruby-openssl'
  gem 'trinidad'
else
  gem 'mysql2'
end

# Use unicorn as the web server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger
# gem 'ruby-debug'

# Bundle the extra gems:
# gem 'bj'
# gem 'nokogiri'
# gem 'sqlite3-ruby', :require =&gt; 'sqlite3'
# gem 'aws-s3', :require =&gt; 'aws/s3'

# Bundle gems for the local environment. Make sure to
# put test-only gems in this group so their generators
# and rake tasks are available in development mode:
# group :development, :test do
#   gem 'webrat'
# end
</pre>
<p>A gem <a href="http://github.com/calavera/trinidad" target="_blank">Trinidad</a> serve para rodar a aplicação em uma versão embedded do Apache Tomcat, existe também a possibilidade de usar a gem <a href="http://github.com/nicksieger/warbler" target="_blank">Warbler</a> que serve para empacotar a aplicação em um arquivo WAR para que posteriormente o deploy seja feito em um web container ou application server java. As outras gem são necessárias para conexão JDBC com o MySQL.</p>
<p>Repare também que o arquivo Gemfile utiliza a variável de ambiente <strong>JRUBY_VERSION</strong> mas essa variável não é definida pelo RVM, então para que esse arquivo funcione de forma correta é necessário definí-la.</p>
<p>O RVM configura uma variável de ambiente chamada <strong>RUBY_VERSION</strong>, com isso fica fácil definir a variável que preciso conforme o comando a seguir:</p>
<pre class="brush: bash; title: ; notranslate">
JRUBY_VERSION=$RUBY_VERSION
</pre>
<p>Ok, as gems foram definidas na aplicação mas ainda não foram instaladas. Esta tarefa é feita pelo <a href="http://gembundler.com/" target="_blank">Bundler</a> utilizando o comando:</p>
<pre class="brush: bash; title: ; notranslate">
bundle install
</pre>
<p>O arquivo config/database.yml contém a configuração com o bando de dados MySQL, e por padrão é definido o usuario <strong>root</strong> e uma senha vazia. Caso você tenha um usuário ou senha diferente é precisa editar esse arquivo.</p>
<p>Embora o uso de scaffold não seja recomendado, irei utilizá-lo para encurtar o post.<br />
O passo seguinte é criar o banco de dados, criar um scaffold para contact e gerar a tabela no MySQL conforme comandos abaixo:</p>
<pre class="brush: bash; title: ; notranslate">
rake db:create
rails g scaffold contact name:string email:string birthdate:date bio:text
rake db:migrate
</pre>
<p>Pronto! <img src='http://www.rodrigolazoti.com.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
A aplicação já pode ser executada e para isso vou usar a gem Trinidad e subir um Tomcat já com a aplicação inclusa.</p>
<pre class="brush: bash; title: ; notranslate">
trinidad
</pre>
<p>Para acessar a aplicação basta abrir a url <strong>http://localhost:3000/contacts</strong> no browser.</p>
<p>Com isso finalizo esse post que demonstra como utilizar JRuby com Rails 3. <img src='http://www.rodrigolazoti.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://rodrigolazoti.com.br/2010/09/11/desenvolvendo-com-jruby-e-rails-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dominando o Spring Roo, publicado na Java Magazine 79</title>
		<link>http://rodrigolazoti.com.br/2010/05/06/dominando-o-spring-roo-publicado-na-java-magazine-79/</link>
		<comments>http://rodrigolazoti.com.br/2010/05/06/dominando-o-spring-roo-publicado-na-java-magazine-79/#comments</comments>
		<pubDate>Thu, 06 May 2010 16:35:35 +0000</pubDate>
		<dc:creator>Rodrigo Lazoti</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java Magazine]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Spring Roo]]></category>
		<category><![CDATA[artigo]]></category>
		<category><![CDATA[JEE]]></category>
		<category><![CDATA[Revista]]></category>
		<category><![CDATA[Spring]]></category>

		<guid isPermaLink="false">http://www.rodrigolazoti.com.br/pt/?p=384</guid>
		<description><![CDATA[Sim é verdade, faz tempo que não escrevo nada para o blog. Infelizmente tenho andado bem ocupado com estudos, trabalho e família, mas hoje trago nesse post uma boa notícia. Hoje a revista Java Magazine publicou a versão digital da edição 79 e muito em breve deverá publicar também a sua versão impressa. Estou escrevendo este [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.devmedia.com.br/javamagazine/"><img class="alignleft size-full wp-image-385" title="Java Magazine 79" src="http://rodrigolazoti.com.br/wp-content/uploads/2010/05/capaOnline_79.jpg" alt="Java Magazine 79" width="240" height="281" /></a></p>
<p>Sim é verdade, faz tempo que não escrevo nada para o blog. Infelizmente tenho andado bem ocupado com estudos, trabalho e família, mas hoje trago nesse post uma boa notícia. <img src='http://www.rodrigolazoti.com.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Hoje a revista Java Magazine publicou a versão digital da edição 79 e muito em breve deverá publicar também a sua versão impressa.</p>
<p>Estou escrevendo este post no meu blog sobre esta revista e principalmente sobre esta edição, porque ela contém meu primeiro artigo para esta revista.</p>
<p>O artigo aborda de uma forma teórica e prática o uso do Spring Roo que é classificado como uma ferramenta para desenvolvimento ágil de aplições web utilizando a linguagem Java.</p>
<p>Infelizmente não vou colocar todo o conteúdo do artigo aqui <img src='http://www.rodrigolazoti.com.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> , então por favor, leiam a revista para conferir o artigo completo e depois me mandem suas opiniões, críticas e sugestões <img src='http://www.rodrigolazoti.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  para que os próximos artigos sejam melhores.</p>
<p>Para ver o site da revista, clique na imagem da capa da revista e para ver a revista no formato digital, clique no link a seguir:</p>
<p><a href="http://www.devmedia.com.br/post-16801-Revista-Java-Magazine-79.html"> Clique aqui para acessar a revista online </a></p>
<p>Veja abaixo um resumo do que você vai encontrar no artigo:</p>
<blockquote><p>Neste artigo você vai entender o que é o Spring Roo, sua arquitetura, como ele funciona para proporcionar mais agilidade no desenvolvimento, suas principais características e funcionalidades, e como utilizá-lo para desenvolver aplicativos de forma mais rápida e sem perder qualidade.</p>
<p>O exemplo prático desse artigo, embora simples, utilizará frameworks como Spring IOC/DI e MVC, Hibernate, Tiles e Bean Validation, envolverá também testes de integração baseados em JUnit, internacionalização, rotinas em AspectJ e controle de dependências via Maven.</p>
<p>Vale ressaltar que a utilização da maioria destes frameworks/ferramentas acontecerá de forma transparente para o desenvolvedor, e não se espante ao ver que o exemplo será gerado com a execução de aproximadamente 15 linhas.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://rodrigolazoti.com.br/2010/05/06/dominando-o-spring-roo-publicado-na-java-magazine-79/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Nova versão do Cocos2d v0.99.0 liberada!</title>
		<link>http://rodrigolazoti.com.br/2010/02/18/nova-versao-do-cocos2d-v0-99-0-liberada/</link>
		<comments>http://rodrigolazoti.com.br/2010/02/18/nova-versao-do-cocos2d-v0-99-0-liberada/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 19:17:47 +0000</pubDate>
		<dc:creator>Rodrigo Lazoti</dc:creator>
				<category><![CDATA[Notícias]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[2d]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[cocos2d]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iPhone SDK]]></category>

		<guid isPermaLink="false">http://www.macdevelopers.com.br/?p=244</guid>
		<description><![CDATA[Depois de 123 dias a equipe de desenvolvimento do framework para desenvolvimento de jogos em 2D para iPhone SDK liberou uma nova versão, a verão 0.99.0 teve várias mudanças, correções e melhorias feitas no framework. Esta nova versão já oferece suporte ao novo iPad mas para isto é preciso ter instalado o SDK 3.2 beta [...]]]></description>
			<content:encoded><![CDATA[<p>Depois de 123 dias a equipe de desenvolvimento do framework para desenvolvimento de jogos em 2D para iPhone SDK liberou uma nova versão, a verão 0.99.0 teve várias mudanças, correções e melhorias feitas no framework.</p>
<p>Esta nova versão já oferece suporte ao novo iPad mas para isto é preciso ter instalado o SDK 3.2 beta que possui o simulador para iPad.</p>
<p>Aqui você pode ver o post original sobre a nova versão:</p>
<p><a href="http://www.cocos2d-iphone.org/archives/598" target="_blank">http://www.cocos2d-iphone.org/archives/598</a></p>
<p>E aqui você pode ver tudo que mudou nessa nova versão:</p>
<p><a href="http://www.cocos2d-iphone.org/wiki/doku.php/release_notes:0_99_0" target="_blank">http://www.cocos2d-iphone.org/wiki/doku.php/release_notes:0_99_0</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rodrigolazoti.com.br/2010/02/18/nova-versao-do-cocos2d-v0-99-0-liberada/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Criando jogos em 2D para iPhone &#8211; Parte 1</title>
		<link>http://rodrigolazoti.com.br/2010/02/05/criando-jogos-em-2d-para-iphone-parte-1/</link>
		<comments>http://rodrigolazoti.com.br/2010/02/05/criando-jogos-em-2d-para-iphone-parte-1/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 00:43:47 +0000</pubDate>
		<dc:creator>Rodrigo Lazoti</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[2d]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[cocos2d]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[IPhone]]></category>
		<category><![CDATA[iPhone SDK]]></category>
		<category><![CDATA[iPod Touch]]></category>
		<category><![CDATA[jogos]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[XCode]]></category>

		<guid isPermaLink="false">http://www.macdevelopers.com.br/?p=228</guid>
		<description><![CDATA[Sem dúvida o iPhone é uma ótima plataforma para criar jogos e não é por menos que a maioria dos aplicativos mais vendidos na app store são jogos. Os recursos como multi-touch, acelerômetro, GPS e etc contribuem para cada vez mais termos jogos mais criativos e divertidos. Nesta primeira parte do artigo irei falar um [...]]]></description>
			<content:encoded><![CDATA[<p>Sem dúvida o iPhone é uma ótima plataforma para criar jogos e não é por menos que a maioria dos aplicativos mais vendidos na app store são jogos. Os recursos como multi-touch, acelerômetro, GPS e etc contribuem para cada vez mais termos jogos mais criativos e divertidos.</p>
<p>Nesta primeira parte do artigo irei falar um pouco sobre o framework cocos2d e como utilizá-lo no XCode. Na segunda parte do artigo tentarei mostrar em um pequeno exemplo como explorar este framework para criar jogos em 2D para o iPhone SDK.</p>
<p>O cocos2d é um framework open source para desenvolvimento de jogos 2d baseado no OpenGL ES 1.1 e ele suporta gerenciamento de cenas, transição entre cenas, sprites, actions (comportamentos), menus e botões, renderização de textura, suporta a sons e muitas outras opções.</p>
<p>O primeiro passo é ter o XCode instalado no seu mac, para este tutorial estou utilizando a versao 3.2.1.</p>
<p>Continuando, seguirei para o <a href="http://www.cocos2d-iphone.org/" target="_blank">site do cocos2d</a> e farei o <a href="http://www.cocos2d-iphone.org/download" target="_blank">download</a> da versão 0.8.2 do framework. Apos o arquivo ser baixado vamos instalá-lo para utilizarmos ele dentro do XCode.</p>
<p>Começarei descompactando o arquivo, depois abra o Terminal.app e va ao diretório do framework descompactado, lá tera um arquivo chamado install_template.sh e este deve ser executado para instalar os templates do cocos2d no XCode. Então ainda no Terminal e na pasta citada anteriormente execute o arquivo da seguinte forma:</p>
<pre class="brush: xml; title: ; notranslate">./install_template.sh</pre>
<p>Pronto, com isso o cocos2d já pode ser utilizado dentro do XCode. Abra o XCode e veja que agora existem templates disponíveis para criar aplicativos para iPhone SDK utilizando cocos2d.</p>
<p><a href="http://www.macdevelopers.com.br/wp-content/uploads/2010/02/Screen-shot-2010-02-05-at-9.39.33-AM.png"><img class="alignnone size-medium wp-image-233" title="cocos2d template" src="http://www.macdevelopers.com.br/wp-content/uploads/2010/02/Screen-shot-2010-02-05-at-9.39.33-AM-300x243.png" alt="cocos2d template" width="300" height="243" /></a></p>
<p>Agora crie uma cocos2d Application, esse template irá criar uma pequena aplicação de demonstração (hello world) do framework. Basta executá-la no simulador e ver o resultado.</p>
<p><a href="http://www.macdevelopers.com.br/wp-content/uploads/2010/02/Screen-shot-2010-02-05-at-10.34.58-PM.png"><img class="alignnone size-medium wp-image-237" title="Cocos2d Hello World" src="http://www.macdevelopers.com.br/wp-content/uploads/2010/02/Screen-shot-2010-02-05-at-10.34.58-PM-300x158.png" alt="Cocos2d Hello World" width="300" height="158" /></a></p>
<p>No próximo artigo iremos explorar alguns recursos do cocos2d e criar uma aplicação de exemplo.<br />
Até o próximo artigo! <img src='http://www.rodrigolazoti.com.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://rodrigolazoti.com.br/2010/02/05/criando-jogos-em-2d-para-iphone-parte-1/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Alteração de feed RSS</title>
		<link>http://rodrigolazoti.com.br/2009/12/23/alteracao-de-feed-rss/</link>
		<comments>http://rodrigolazoti.com.br/2009/12/23/alteracao-de-feed-rss/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 21:00:36 +0000</pubDate>
		<dc:creator>Rodrigo Lazoti</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[novidades]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://www.rodrigolazoti.com.br/pt/?p=378</guid>
		<description><![CDATA[Galera, a todos que utilizam o RSS para ver as novidades do meu blog, peço que por gentileza atualizem para os novos endereços: Blog em português: http://feeds.feedburner.com/RodrigoLazotiBlog Blog em inglês: http://feeds.feedburner.com/RodrigoLazotiBlog2 Fiz algumas mudanças no meu blog e agora ele está dividido em três partes, sendo um com o blog em português, uma outra com [...]]]></description>
			<content:encoded><![CDATA[<p>Galera, a todos que utilizam o RSS para ver as novidades do meu blog, peço que por gentileza atualizem para os novos endereços:</p>
<p><strong>Blog em português:</strong> <a href="http://feeds.feedburner.com/RodrigoLazotiBlog" target="_blank">http://feeds.feedburner.com/RodrigoLazotiBlog</a></p>
<p><strong>Blog em inglês</strong>: <a href="http://feeds.feedburner.com/RodrigoLazotiBlog2" target="_blank">http://feeds.feedburner.com/RodrigoLazotiBlog2</a></p>
<p>Fiz algumas mudanças no meu blog e agora ele está dividido em três partes, sendo um com o blog em português, uma outra com o blog em inglês e uma para meus aplicativos para iphone/ipod touch disponíveis na apple app store.</p>
<p>As urls ficaram assim:</p>
<p><a href="http://www.rodrigolazoti.com.br/pt/" target="_blank">http://www.rodrigolazoti.com.br/pt/</a><br />
<a href="http://www.rodrigolazoti.com.br/en/" target="_blank">http://www.rodrigolazoti.com.br/en/</a><br />
<a href="http://www.rodrigolazoti.com.br/iphone/" target="_blank">http://www.rodrigolazoti.com.br/iphone/</a></p>
<p>Também criei um página inicial para que o usuário possa escolher entre uma das três possibilidades. Esta página pode ser vista em:</p>
<p><a href="http://www.rodrigolazoti.com.br/" target="_blank">http://www.rodrigolazoti.com.br/</a></p>
<p><strong><em>Agradeço a compreensão de todos e que venha 2010.</em></strong><br />
 <img src='http://www.rodrigolazoti.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://rodrigolazoti.com.br/2009/12/23/alteracao-de-feed-rss/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testando JavaEE 6 com Glassfish e Eclipse</title>
		<link>http://rodrigolazoti.com.br/2009/12/14/testando-javaee-6-com-glassfish-e-eclipse/</link>
		<comments>http://rodrigolazoti.com.br/2009/12/14/testando-javaee-6-com-glassfish-e-eclipse/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 17:39:33 +0000</pubDate>
		<dc:creator>Rodrigo Lazoti</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[EJB]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[annotation]]></category>
		<category><![CDATA[EJB3]]></category>
		<category><![CDATA[glassfish]]></category>
		<category><![CDATA[javaee6]]></category>
		<category><![CDATA[JEE]]></category>
		<category><![CDATA[servlet]]></category>

		<guid isPermaLink="false">http://www.rodrigolazoti.com.br/pt/?p=367</guid>
		<description><![CDATA[Neste post, vou mostrar algumas novidades do Java EE 6. Eu vou usar os seguintes softwares: Glassfish v3 Eclipse Galileo JEE Edition Depois de instalá-los, vou criar um Dynamic Web Project no Eclipse chamado de FirstProjectJEE6: Agora vou substituir o conteúdo do arquivo web.xml por este abaixo: Para compilar nosso projeto, precisamos adicionar um jar [...]]]></description>
			<content:encoded><![CDATA[<p>Neste post, vou mostrar algumas novidades do Java EE 6.<br />
Eu vou usar os seguintes softwares:</p>
<p><a href="http://java.sun.com/javaee/downloads/index.jsp" target="_blank">Glassfish v3</a><br />
<a href="www.eclipse.org/" target="_blank"> Eclipse Galileo JEE Edition</a></p>
<p>Depois de instalá-los, vou criar um Dynamic Web Project no Eclipse chamado de FirstProjectJEE6:</p>
<p>Agora vou substituir o conteúdo do arquivo web.xml por este abaixo:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;web-app xmlns=&quot;http://java.sun.com/xml/ns/javaee&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
	xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd&quot;
	version=&quot;3.0&quot;&gt;
	&lt;welcome-file-list&gt;
		&lt;welcome-file&gt;index.html&lt;/welcome-file&gt;
		&lt;welcome-file&gt;index.htm&lt;/welcome-file&gt;
		&lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;
	&lt;/welcome-file-list&gt;
&lt;/web-app&gt;
</pre>
<p>Para compilar nosso projeto, precisamos adicionar um jar externo chamado javaee.jar ao projeto (Build Path),  o arquivo jar pode ser encontrado em <strong>[glassfish_directory]/glassfish/lib/javaee.jar</strong></p>
<p>Criei também um script ant para fazer o deploy da nossa aplicação diretamente no glassfish. Este script deve ser salvo na raiz do projeto, salvei ele com o nome de build.xml. A seguir segue seu conteúdo:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;project name=&quot;FirstProject JavaEE 6&quot; basedir=&quot;.&quot; default=&quot;deploy&quot;&gt;
	&lt;property name=&quot;warfile&quot; value=&quot;FirstProject&quot; /&gt;
	&lt;target name=&quot;create&quot;&gt;
		&lt;war destfile=&quot;${warfile}.war&quot; webxml=&quot;WebContent/WEB-INF/web.xml&quot; update=&quot;true&quot;&gt;
			&lt;classes dir=&quot;build/classes&quot; /&gt;
			&lt;fileset dir=&quot;WebContent&quot;&gt;
				&lt;exclude name=&quot;WEB-INF/web.xml&quot; /&gt;
			&lt;/fileset&gt;
		&lt;/war&gt;
	&lt;/target&gt;
	&lt;target name=&quot;copy&quot;&gt;
		&lt;copy todir=&quot;/Users/rodrigolazoti/Programs/glassfishv3/glassfish/domains/domain1/autodeploy&quot; overwrite=&quot;true&quot;&gt;
			&lt;fileset dir=&quot;.&quot;&gt;
				&lt;include name=&quot;*.war&quot; /&gt;
			&lt;/fileset&gt;
		&lt;/copy&gt;
	&lt;/target&gt;
	&lt;target name=&quot;deploy&quot;&gt;
		&lt;antcall target=&quot;create&quot; /&gt;
		&lt;antcall target=&quot;copy&quot; /&gt;
	&lt;/target&gt;
&lt;/project&gt;
</pre>
<p>Note que esse local:<br />
/Users/rodrigolazoti/Programs/glassfishv3/glassfish/domains/domain1/autodeploy<br />
Deve ser substituído por:<br />
[your glassfish]/glassfish/domains/domain1/autodeploy</p>
<p>Agora, vamos codificar um pouco, primeiro vamos criar dois EJB&#8217;s usando um pouco da nova especificação.<br />
Vou criar um EJB Stateless e um EJB Staleful, o stateful servirá apenas para representar o número de requisições feitas e o stateless servirá para retornar alguma mensagem para o usuário.</p>
<p>Esse é o código do EJB Stateless:</p>
<pre class="brush: java; title: ; notranslate">
package br.com.rodrigolazoti.firstproject.service;

import javax.ejb.Stateless;

@Stateless
public class MyStatelessSessionBean {

	public String createMessage( String username ) {
		String message = &quot;Hello World, &quot;;

		if ( username != null &amp;&amp; !&quot;&quot;.equals( username.trim() ) ) {
			message += username + &quot;!&quot;;
		}
		else {
			message += &quot;stranger!&quot;;
		}

		return message;
	}

}
</pre>
<p>E este é o código do EJB Stateful:</p>
<pre class="brush: java; title: ; notranslate">
package br.com.rodrigolazoti.firstproject.service;

import javax.ejb.Stateful;

@Stateful
public class MyStatefulSessionBean {

	private int amountOfrequests = 0;

	public int getAmountOfrequests() {
		return ++amountOfrequests;
	}

}
</pre>
<p>Note que em ambos EJB&#8217;s, não foi necessário criar interfaces locais ou remotas. <img src='http://www.rodrigolazoti.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Com nossos  EJB&#8217;s prontos, vamos criar um servlet para responder ao seguintes métodos http GET e POST.</p>
<pre class="brush: java; title: ; notranslate">
package br.com.rodrigolazoti.firstproject.controller;

import java.io.IOException;

import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.rodrigolazoti.firstproject.service.MyStatefulSessionBean;
import br.com.rodrigolazoti.firstproject.service.MyStatelessSessionBean;

@WebServlet( name = &quot;MyServlet&quot;, urlPatterns = { &quot;/hello&quot; } )
public class MyServlet extends HttpServlet {

	private static final long serialVersionUID = -2206981309178199835L;

	@EJB
	private MyStatefulSessionBean myStatefulSessionBean;

	@EJB
	private MyStatelessSessionBean myStatelessSessionBean;

	@Override
	protected void doGet( HttpServletRequest request, HttpServletResponse response )
			throws ServletException, IOException {
		String message = myStatelessSessionBean.createMessage( null );
		request.setAttribute( &quot;message&quot;, message );

		int amountOfRequests = myStatefulSessionBean.getAmountOfrequests();
		request.setAttribute( &quot;amountOfRequests&quot;, amountOfRequests );

		request.getRequestDispatcher( &quot;/hello.jsp&quot; ).forward( request, response );
	}

	@Override
	protected void doPost( HttpServletRequest request, HttpServletResponse response )
			throws ServletException, IOException {
		String username = request.getParameter( &quot;username&quot; );
		String message = myStatelessSessionBean.createMessage( username );
		request.setAttribute( &quot;message&quot;, message );

		int amountOfRequests = myStatefulSessionBean.getAmountOfrequests();
		request.setAttribute( &quot;amountOfRequests&quot;, amountOfRequests );

		request.getRequestDispatcher( &quot;/hello.jsp&quot; ).forward( request, response );
	}

}
</pre>
<p>E finalmente, vamos criar os arquivos jsp. O arquivo index.jsp servirá pra fazer as chamados ao servlet e o arquivo hello.jsp irá mostrar o resultado do servlet.</p>
<p>Conteúdo do arquivo index.jsp:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot; ?&gt;
&lt;%@ page language=&quot;java&quot; contentType=&quot;text/html; charset=ISO-8859-1&quot; pageEncoding=&quot;ISO-8859-1&quot;%&gt;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;
  &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
  &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=ISO-8859-1&quot; /&gt;
  &lt;meta name=&quot;author&quot; content=&quot;Rodrigo Lazoti&quot;/&gt;
  &lt;title&gt;First Java EE 6 Example&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;p&gt;&lt;a href=&quot;hello&quot;&gt;Execute Servlet (GET)&lt;/a&gt;&lt;/p&gt;

  &lt;hr width=&quot;100%&quot; noshade=&quot;noshade&quot;/&gt;

  &lt;form action=&quot;hello&quot; method=&quot;post&quot;&gt;
    &lt;p&gt;Name:&lt;input type=&quot;text&quot; name=&quot;username&quot;/&gt;&lt;/p&gt;
    &lt;p&gt;&lt;button type=&quot;submit&quot;&gt;Execute Servlet (POST)&lt;/button&gt;&lt;/p&gt;
  &lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>E o conteúdo do arquivo hello.jsp:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot; ?&gt;
&lt;%@ page language=&quot;java&quot; contentType=&quot;text/html; charset=ISO-8859-1&quot; pageEncoding=&quot;ISO-8859-1&quot;%&gt;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;
  &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
  &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=ISO-8859-1&quot; /&gt;
  &lt;meta name=&quot;author&quot; content=&quot;Rodrigo Lazoti&quot;/&gt;
  &lt;title&gt;First Java EE 6 Example&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;h2&gt;Result: ${requestScope.message}&lt;/h2&gt;&lt;br/&gt;
  &lt;h3&gt;This servlet was executed ${requestScope.amountOfRequests} time(s).&lt;/h3&gt;&lt;br/&gt;
  &lt;hr width=&quot;100%&quot; noshade=&quot;noshade&quot;/&gt;
  &lt;h4&gt;&lt;a href=&quot;index.jsp&quot;&gt;Back to main page&lt;/a&gt;&lt;/h4&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Pronto, nosso exemplo já esta pronto e pode ser testado. Com vimos algumas novidades como:</p>
<ul>
<li>Interface local e remota são opcionais no EJB 3.1.</li>
<li>No EJB 3.1, vôce pode empacotar seus EJB&#8217;s em arquivos WAR junto com componentes da camada web. Você não precisa ter sua classes EJB definidas em um arquivo ejb-jar.</li>
<li>Agora as annotations podem ser usadas em mais tipos de componentes Java EE e o conjunto de anotações usados para injeção de dependência foi padronizada.</li>
<li>Ao invés de criar deployment descriptors, você pode anotar as classes para especificar que ela é um servlet.</li>
</ul>
<p>Este exemplo criado está disponível no github: <a href="http://github.com/rlazoti/tutorial-javaee6-first-project" target="_blank">http://github.com/rlazoti/tutorial-javaee6-first-project</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rodrigolazoti.com.br/2009/12/14/testando-javaee-6-com-glassfish-e-eclipse/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Testing JavaEE 6 with Glassfish and Eclipse</title>
		<link>http://rodrigolazoti.com.br/2009/12/12/testing-javaee-6-with-glassfish-and-eclipse/</link>
		<comments>http://rodrigolazoti.com.br/2009/12/12/testing-javaee-6-with-glassfish-and-eclipse/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 13:36:33 +0000</pubDate>
		<dc:creator>Rodrigo Lazoti</dc:creator>
				<category><![CDATA[Application Server]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaEE 6]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[EJB]]></category>
		<category><![CDATA[glassfish]]></category>
		<category><![CDATA[javaee]]></category>
		<category><![CDATA[javaee6]]></category>
		<category><![CDATA[servlet]]></category>
		<category><![CDATA[stateful]]></category>
		<category><![CDATA[stateless]]></category>

		<guid isPermaLink="false">http://www.rodrigolazoti.com.br/en/?p=41</guid>
		<description><![CDATA[In this post, I&#8217;ll show some news of the Java EE 6. I&#8217;ll use the following softwares: Glassfish v3 Eclipse Galileo JEE Edition After install them, we go create a dynamic web project in the Eclipse called FirstProjectJEE6: Now, I&#8217;ll replace the contents of the web.xml file for this: To compile our project, we need [...]]]></description>
			<content:encoded><![CDATA[<p>In this post, I&#8217;ll show some news of the Java EE 6.<br />
I&#8217;ll use the following softwares:</p>
<p><a href="http://java.sun.com/javaee/downloads/index.jsp" target="_blank">Glassfish v3</a><br />
<a href="www.eclipse.org/" target="_blank"> Eclipse Galileo JEE Edition</a></p>
<p>After install them, we go create a dynamic web project in the Eclipse called FirstProjectJEE6:</p>
<p>Now, I&#8217;ll replace the contents of the web.xml file for this:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;web-app xmlns=&quot;http://java.sun.com/xml/ns/javaee&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
	xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd&quot;
	version=&quot;3.0&quot;&gt;
	&lt;welcome-file-list&gt;
		&lt;welcome-file&gt;index.html&lt;/welcome-file&gt;
		&lt;welcome-file&gt;index.htm&lt;/welcome-file&gt;
		&lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;
	&lt;/welcome-file-list&gt;
&lt;/web-app&gt;
</pre>
<p>To compile our project, we need to add a external jar (javaee.jar) to the project, the jar file is in the path <strong>[glassfish_directory]/glassfish/lib/javaee.jar</strong></p>
<p>I&#8217;ll create a ant script to make the deploy of our application in glassfish. It must be saved in the project root and should be called build.xml</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;project name=&quot;FirstProject JavaEE 6&quot; basedir=&quot;.&quot; default=&quot;deploy&quot;&gt;
	&lt;property name=&quot;warfile&quot; value=&quot;FirstProject&quot; /&gt;
	&lt;target name=&quot;create&quot;&gt;
		&lt;war destfile=&quot;${warfile}.war&quot; webxml=&quot;WebContent/WEB-INF/web.xml&quot; update=&quot;true&quot;&gt;
			&lt;classes dir=&quot;build/classes&quot; /&gt;
			&lt;fileset dir=&quot;WebContent&quot;&gt;
				&lt;exclude name=&quot;WEB-INF/web.xml&quot; /&gt;
			&lt;/fileset&gt;
		&lt;/war&gt;
	&lt;/target&gt;
	&lt;target name=&quot;copy&quot;&gt;
		&lt;copy todir=&quot;/Users/rodrigolazoti/Programs/glassfishv3/glassfish/domains/domain1/autodeploy&quot; overwrite=&quot;true&quot;&gt;
			&lt;fileset dir=&quot;.&quot;&gt;
				&lt;include name=&quot;*.war&quot; /&gt;
			&lt;/fileset&gt;
		&lt;/copy&gt;
	&lt;/target&gt;
	&lt;target name=&quot;deploy&quot;&gt;
		&lt;antcall target=&quot;create&quot; /&gt;
		&lt;antcall target=&quot;copy&quot; /&gt;
	&lt;/target&gt;
&lt;/project&gt;
</pre>
<p>Note that this path:<br />
/Users/rodrigolazoti/Programs/glassfishv3/glassfish/domains/domain1/autodeploy<br />
Should be replaced by the:<br />
[your glassfish]/glassfish/domains/domain1/autodeploy</p>
<p>Now, we let&#8217;s code a little, first we let&#8217;s create two EJB using the new specification.<br />
I&#8217;ll create one stateless and one staleful EJB, the stateful ejb will serve only to represent the number of requests and the stateless will serve to return a message to the User.</p>
<p>The code of stateless ejb:</p>
<pre class="brush: java; title: ; notranslate">
package br.com.rodrigolazoti.firstproject.service;

import javax.ejb.Stateless;

@Stateless
public class MyStatelessSessionBean {

	public String createMessage( String username ) {
		String message = &quot;Hello World, &quot;;

		if ( username != null &amp;&amp; !&quot;&quot;.equals( username.trim() ) ) {
			message += username + &quot;!&quot;;
		}
		else {
			message += &quot;stranger!&quot;;
		}

		return message;
	}

}
</pre>
<p>And the code of the stateful ejb:</p>
<pre class="brush: java; title: ; notranslate">
package br.com.rodrigolazoti.firstproject.service;

import javax.ejb.Stateful;

@Stateful
public class MyStatefulSessionBean {

	private int amountOfrequests = 0;

	public int getAmountOfrequests() {
		return ++amountOfrequests;
	}

}
</pre>
<p>Note that in both ejb, was not necessary to create a local or remote interface. <img src='http://www.rodrigolazoti.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>With our EJBs ready, we&#8217;ll create a servlet to respond to http methods: GET and POST.</p>
<pre class="brush: java; title: ; notranslate">
package br.com.rodrigolazoti.firstproject.controller;

import java.io.IOException;

import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.rodrigolazoti.firstproject.service.MyStatefulSessionBean;
import br.com.rodrigolazoti.firstproject.service.MyStatelessSessionBean;

@WebServlet( name = &quot;MyServlet&quot;, urlPatterns = { &quot;/hello&quot; } )
public class MyServlet extends HttpServlet {

	private static final long serialVersionUID = -2206981309178199835L;

	@EJB
	private MyStatefulSessionBean myStatefulSessionBean;

	@EJB
	private MyStatelessSessionBean myStatelessSessionBean;

	@Override
	protected void doGet( HttpServletRequest request, HttpServletResponse response )
			throws ServletException, IOException {
		String message = myStatelessSessionBean.createMessage( null );
		request.setAttribute( &quot;message&quot;, message );

		int amountOfRequests = myStatefulSessionBean.getAmountOfrequests();
		request.setAttribute( &quot;amountOfRequests&quot;, amountOfRequests );

		request.getRequestDispatcher( &quot;/hello.jsp&quot; ).forward( request, response );
	}

	@Override
	protected void doPost( HttpServletRequest request, HttpServletResponse response )
			throws ServletException, IOException {
		String username = request.getParameter( &quot;username&quot; );
		String message = myStatelessSessionBean.createMessage( username );
		request.setAttribute( &quot;message&quot;, message );

		int amountOfRequests = myStatefulSessionBean.getAmountOfrequests();
		request.setAttribute( &quot;amountOfRequests&quot;, amountOfRequests );

		request.getRequestDispatcher( &quot;/hello.jsp&quot; ).forward( request, response );
	}

}
</pre>
<p>And finally, we&#8217;ll create our jsp files. The index.jsp file will make the calls to the servlet and the hello.jsp file will show the result of calls.</p>
<p>The index.jsp file:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot; ?&gt;
&lt;%@ page language=&quot;java&quot; contentType=&quot;text/html; charset=ISO-8859-1&quot; pageEncoding=&quot;ISO-8859-1&quot;%&gt;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;
  &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
  &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=ISO-8859-1&quot; /&gt;
  &lt;meta name=&quot;author&quot; content=&quot;Rodrigo Lazoti&quot;/&gt;
  &lt;title&gt;First Java EE 6 Example&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;p&gt;&lt;a href=&quot;hello&quot;&gt;Execute Servlet (GET)&lt;/a&gt;&lt;/p&gt;

  &lt;hr width=&quot;100%&quot; noshade=&quot;noshade&quot;/&gt;

  &lt;form action=&quot;hello&quot; method=&quot;post&quot;&gt;
    &lt;p&gt;Name:&lt;input type=&quot;text&quot; name=&quot;username&quot;/&gt;&lt;/p&gt;
    &lt;p&gt;&lt;button type=&quot;submit&quot;&gt;Execute Servlet (POST)&lt;/button&gt;&lt;/p&gt;
  &lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>And the hello.jsp file:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot; ?&gt;
&lt;%@ page language=&quot;java&quot; contentType=&quot;text/html; charset=ISO-8859-1&quot; pageEncoding=&quot;ISO-8859-1&quot;%&gt;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;
  &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
  &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=ISO-8859-1&quot; /&gt;
  &lt;meta name=&quot;author&quot; content=&quot;Rodrigo Lazoti&quot;/&gt;
  &lt;title&gt;First Java EE 6 Example&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;h2&gt;Result: ${requestScope.message}&lt;/h2&gt;&lt;br/&gt;
  &lt;h3&gt;This servlet was executed ${requestScope.amountOfRequests} time(s).&lt;/h3&gt;&lt;br/&gt;
  &lt;hr width=&quot;100%&quot; noshade=&quot;noshade&quot;/&gt;
  &lt;h4&gt;&lt;a href=&quot;index.jsp&quot;&gt;Back to main page&lt;/a&gt;&lt;/h4&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Some news that I used this example:</p>
<ul>
<li>Local business interfaces are optional in EJB 3.1.</li>
<li>In EJB 3.1, you can place enterprise bean classes in the .war file along with web tier components. You don&#8217;t have to put EJB classes in the ejb-jar file.</li>
<li>Annotations can now be used in more types of Java EE components. And the set of annotations used for dependency injection has been standardized.</li>
<li>Instead of creating deployment descriptors, you can annotate classes to specify servlet-related deployment information.</li>
</ul>
<p>This example is available at github: <a href="http://github.com/rlazoti/tutorial-javaee6-first-project" target="_blank">http://github.com/rlazoti/tutorial-javaee6-first-project</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rodrigolazoti.com.br/2009/12/12/testing-javaee-6-with-glassfish-and-eclipse/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

