<?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>Valdemar Jr.net</title>
	<atom:link href="http://valdemarjr.net/feed" rel="self" type="application/rss+xml" />
	<link>http://valdemarjr.net</link>
	<description>Só mais um blog do WordPress</description>
	<lastBuildDate>Sat, 21 Aug 2010 15:20:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Video inspirador</title>
		<link>http://valdemarjr.net/2010/08/21/video-inspirador.html</link>
		<comments>http://valdemarjr.net/2010/08/21/video-inspirador.html#comments</comments>
		<pubDate>Sat, 21 Aug 2010 15:20:45 +0000</pubDate>
		<dc:creator>Valdemar</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Empreendedorismo]]></category>

		<guid isPermaLink="false">http://valdemarjr.net/?p=176</guid>
		<description><![CDATA[Essa dica foi dada pelo blog de empreendedorismo Saia do Lugar no post Características de um líder inovador: inspirar a ação. O video foi uma apresentação realizada por Simon Sinek no famoso congresso TED. Ele mostra exemplos de sucesso e que a fórmula do sucesso não é simplesmente ter muito dinheiro, trabalhar com pessoas experientes [...]]]></description>
			<content:encoded><![CDATA[<p>Essa dica foi dada pelo blog de empreendedorismo <a href="http://www.saiadolugar.com.br/" target="_blank">Saia do Lugar</a> no post <a href="http://www.saiadolugar.com.br/2010/06/24/caracteristicas-de-um-lider-inovador-inspirar-a-acao/" target="_blank">Características de um líder inovador: inspirar a ação</a>.<br/><br/></p>
<p>O video foi uma apresentação realizada por Simon Sinek no famoso congresso <a href="http://www.ted.com/talks" target="_blank">TED</a>. Ele mostra exemplos de sucesso e que a fórmula do sucesso não é simplesmente ter muito dinheiro, trabalhar com pessoas experientes ou ter um bom investidor para que seu negócio dê certo e sim trabalhar com pessoas inspiradoras e que te inspirem.<br/><br/></p>
<p>Trabalhar pelo que você acredita e não trabalhar para ser rico. As pessoas que trabalham pelo que acreditam, dão o sangue, o suor e a vida pelo que acreditam, pessoas que trabalham por objetivos que não acreditam, trabalham apenas pelo contra-cheque, apenas pelo dinheiro.<br/><br/></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="446" height="326" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="wmode" value="transparent" /><param name="bgColor" value="#ffffff" /><param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/SimonSinek_2009X-medium.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/SimonSinek-2009X.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=848&amp;introDuration=15330&amp;adDuration=4000&amp;postAdDuration=830&amp;adKeys=talk=simon_sinek_how_great_leaders_inspire_action;year=2009;theme=new_on_ted_com;theme=unconventional_explanations;theme=not_business_as_usual;event=TEDxPuget+Sound+;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /><param name="src" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" /><param name="bgcolor" value="#ffffff" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="446" height="326" src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" flashvars="vu=http://video.ted.com/talks/dynamic/SimonSinek_2009X-medium.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/SimonSinek-2009X.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=848&amp;introDuration=15330&amp;adDuration=4000&amp;postAdDuration=830&amp;adKeys=talk=simon_sinek_how_great_leaders_inspire_action;year=2009;theme=new_on_ted_com;theme=unconventional_explanations;theme=not_business_as_usual;event=TEDxPuget+Sound+;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" bgcolor="#ffffff" wmode="transparent" allowscriptaccess="always" allowfullscreen="true"></embed></object><br />
(Para assistir o vídeo com legendas, clique em Subtitles e escolha a opção “Portuguese”. <a href="http://www.ted.com/talks/simon_sinek_how_great_leaders_inspire_action.html">Link direto</a>)<br />
<br/><br/><br />
Abraços,<br />
Valdemar Jr (Buscando a cada dia trabalhar pelo que acredito)</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;">
<h2><a href="http://www.saiadolugar.com.br/2010/06/24/caracteristicas-de-um-lider-inovador-inspirar-a-acao/">Características de um líder inovador: inspirar a ação</a></h2>
</div>
]]></content:encoded>
			<wfw:commentRss>http://valdemarjr.net/2010/08/21/video-inspirador.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Preparação para o SCEA</title>
		<link>http://valdemarjr.net/2010/03/14/preparao-para-o-scea.html</link>
		<comments>http://valdemarjr.net/2010/03/14/preparao-para-o-scea.html#comments</comments>
		<pubDate>Sun, 14 Mar 2010 03:33:19 +0000</pubDate>
		<dc:creator>Valdemar</dc:creator>
				<category><![CDATA[Notícias]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[scea]]></category>

		<guid isPermaLink="false">http://valdemarjr.net/?p=156</guid>
		<description><![CDATA[Foi dado o &#8220;start&#8221; para a preparação para Sun Certified Enterprise Architect (SCEA), mais um desafio a ser enfrentado(e espero que conquistado). Terei como material de estudo o livro SCEA &#8211; GUIA DE ESTUDO &#8211; EXAME 310-051, mesmo a certificação que irei fazer sendo a mais nova que a tratada no livro, mas foi o [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://valdemarjr.net/wp-content/uploads/2010/03/scea.png"><img style="display: inline; border: 0px;" title="scea" src="http://valdemarjr.net/wp-content/uploads/2010/03/scea_thumb.png" border="0" alt="scea" width="640" height="113" /></a></p>
<p>Foi dado o &#8220;start&#8221; para a preparação para <a href="http://in.sun.com/training/certification/java/scea.xml" target="_blank"><strong>Sun Certified Enterprise Architect (SCEA)</strong></a>, mais um desafio a ser enfrentado(e espero que conquistado).</p>
<p><br class="spacer_" /></p>
<p>Terei como material de estudo o livro <a href="http://www.ciadoslivros.com.br/produtos.asp?desc=SCEA--GUIA-DE-ESTUDO--EXAME-310-051&amp;produtoid=106565" target="_blank">SCEA &#8211; GUIA DE ESTUDO &#8211; EXAME 310-051</a>, mesmo a certificação que irei fazer sendo a mais nova que a tratada no livro, mas foi o conteúdo mais atualizado(e confiável talvez?) que encontrei e também o site <a href="http://java.boot.by/scea5-guide/index.html" target="_blank">Java.boot.by</a> possuindo referências para a versão mais nova do exame (310-052).</p>
<p><br class="spacer_" /></p>
<p>A parte prática que farei será através do <a href="http://whizlabs.com/scea/mock-exam.html" target="_blank">SCEA Mocks Exam</a> da <a href="http://whizlabs.com/" target="_blank">Whizlabs</a>. Adquiri anteriormente para me preparar para o exame <a href="http://in.sun.com/training/certification/java/scbcd.xml" target="_blank">SCBCD</a> e recomendo fortemente, possuindo várias questões que inclusive caíram no exame. Além de ler conteúdo de pessoas que já passaram e disponibilizam seus resumos.ca</p>
<p><br class="spacer_" /></p>
<p>Bom agora é estudar, aguardar o dia da prova e comemorar(ou não!).  Let&#8217;s Rock!!! ou melhor Let&#8217;s Study!!!</p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
]]></content:encoded>
			<wfw:commentRss>http://valdemarjr.net/2010/03/14/preparao-para-o-scea.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Uma forma de dizer que algo aconteceu errado</title>
		<link>http://valdemarjr.net/2010/03/07/uma-forma-de-dizer-que-algo-aconteceu-errado.html</link>
		<comments>http://valdemarjr.net/2010/03/07/uma-forma-de-dizer-que-algo-aconteceu-errado.html#comments</comments>
		<pubDate>Sun, 07 Mar 2010 18:16:33 +0000</pubDate>
		<dc:creator>Valdemar</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Humor]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Tudo]]></category>

		<guid isPermaLink="false">http://valdemarjr.net/?p=148</guid>
		<description><![CDATA[Uma forma de mostrar que podem acontecer coisas inexplicáveis no mundo do desenvolvimento de software, que o desenvolvedor não consegue explicar. Certa vez eu estava usando o Notepad++ (um ótimo editor, recomendo!), ele me lança a seguinte Exception: No momento lembro que estava fazendo uma busca de um diretório que tinham vários tipos de arquivos [...]]]></description>
			<content:encoded><![CDATA[<p>Uma forma de mostrar que podem acontecer coisas inexplicáveis no mundo do desenvolvimento de software, que o desenvolvedor não consegue explicar.</p>
<p><br class="spacer_" /></p>
<p>Certa vez eu estava usando o <a href="http://notepad-plus.sourceforge.net/uk/download.php" target="_blank">Notepad++</a> (um ótimo editor, recomendo!), ele me lança a seguinte Exception:</p>
<p><a rel="”lightbox”" href="http://valdemarjr.net/wp-content/uploads/2010/03/god_damn_exception.jpg"><img style="display: inline; border-width: 0px;" title="god_damn_exception" src="http://valdemarjr.net/wp-content/uploads/2010/03/god_damn_exception_thumb.jpg" border="0" alt="god_damn_exception" width="640" height="406" /></a></p>
<p>No momento lembro que estava fazendo uma busca de um diretório que tinham vários tipos de arquivos diferentes como Java, Xml, SQL e o <a href="http://notepad-plus.sourceforge.net/uk/download.php" target="_blank">notepad++</a> encontrou milhares de referências, acontecendo essa exception.</p>
<p><br class="spacer_" /></p>
<p>É uma ótima forma de dizer que aconteceu algo errado.</p>
]]></content:encoded>
			<wfw:commentRss>http://valdemarjr.net/2010/03/07/uma-forma-de-dizer-que-algo-aconteceu-errado.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[mini-post] Profiles com JDK 6</title>
		<link>http://valdemarjr.net/2010/02/23/mini-post-profiles-com-jdk-6.html</link>
		<comments>http://valdemarjr.net/2010/02/23/mini-post-profiles-com-jdk-6.html#comments</comments>
		<pubDate>Tue, 23 Feb 2010 03:52:27 +0000</pubDate>
		<dc:creator>Valdemar</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[mini-post]]></category>
		<category><![CDATA[Profiling]]></category>
		<category><![CDATA[VisualVM]]></category>

		<guid isPermaLink="false">http://valdemarjr.net/?p=135</guid>
		<description><![CDATA[Mais um mini-post, agora com uma dica que pode ser bastante útil. VisualVM é uma ferramenta de monitoramento para aplicações desenvolvidas em Java. Executado com JDK 6 mas pode monitorar aplicações desenvolvidas em aplicações JDK 1.4 ou superior, tendo uma feature de “lightweigth Profiling”, que foi a feature que mais utilizei, além de ser free, [...]]]></description>
			<content:encoded><![CDATA[<p>Mais um <a href="http://valdemarjr.net/categorias/mini-post">mini-post</a>, agora com uma dica que pode ser bastante útil. <a href="https://visualvm.dev.java.net/" target="_blank">VisualVM</a> é uma ferramenta de monitoramento para aplicações desenvolvidas em Java.</p>
<p><br class="spacer_" /></p>
<p>Executado com <a href="http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-6u18-windows-i586.exe?BundledLineItemUUID=lotIBe.lxTEAAAEmEbkRJvjJ&amp;OrderID=WfBIBe.lrX8AAAEmB7kRJvjJ&amp;ProductID=Vh5IBe.pm2QAAAElRytRSbJV&amp;FileName=/jdk-6u18-windows-i586.exe" target="_blank">JDK 6</a> mas pode monitorar aplicações desenvolvidas em aplicações JDK 1.4 ou superior, tendo uma feature de “lightweigth <a href="http://en.wikipedia.org/wiki/Profiling_%28computer_programming%29" target="_blank">Profiling</a>”, que foi a feature que mais utilizei, além de ser free, já que tem ferramentas de <a href="http://www.ej-technologies.com/products/jprofiler/overview.html" target="_blank">profiling pagas</a>.</p>
<p><br class="spacer_" /></p>
<p><a href="https://visualvm.dev.java.net/" target="_blank">VisualVM</a> foi produzido para ser utilizado por desenvolvedores de aplicações, administradores de sistemas e usuários de aplicações desenvolvidas em Java. Localizado no diretório <strong>%JAVA_HOME%\bin\jvisualvm.exe</strong><em> </em>no meu caso que estou utilizando o windows.</p>
<p><br class="spacer_" /></p>
<p>Segue uma imagem quando executado:</p>
<p><br class="spacer_" /></p>
<p><a href="http://valdemarjr.net/wp-content/uploads/2010/02/visualVM.jpg"><img style="display: inline; border-width: 0px;" title="visualVM" src="http://valdemarjr.net/wp-content/uploads/2010/02/visualVM_thumb.jpg" border="0" alt="VisualVM - All-in-One Java Troubleshooting Tool" width="644" height="422" /></a></p>
<p><br class="spacer_" /></p>
<p>Veja mais <a href="https://visualvm.dev.java.net/" target="_blank">Screenshots</a> e <a href="http://blip.tv/file/1582849" target="_blank">Screencast</a> sobre o <a href="https://visualvm.dev.java.net/" target="_blank">VisualVM</a>. <a href="https://visualvm.dev.java.net/gettingstarted.html" target="_blank">Como começar</a>.</p>
<p><br class="spacer_" /></p>
<p>Bom fica a dica de uma ótima ferramenta de <a href="http://en.wikipedia.org/wiki/Profiling_%28computer_programming%29" target="_blank">Profiling</a></p>
]]></content:encoded>
			<wfw:commentRss>http://valdemarjr.net/2010/02/23/mini-post-profiles-com-jdk-6.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hibernate Interceptor para auditar entidades</title>
		<link>http://valdemarjr.net/2010/02/21/hibernate-interceptor-para-auditar-entidades.html</link>
		<comments>http://valdemarjr.net/2010/02/21/hibernate-interceptor-para-auditar-entidades.html#comments</comments>
		<pubDate>Sun, 21 Feb 2010 23:48:22 +0000</pubDate>
		<dc:creator>Valdemar</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[hibernate]]></category>
		<category><![CDATA[interceptor]]></category>

		<guid isPermaLink="false">http://valdemarjr.net/?p=120</guid>
		<description><![CDATA[Buscando uma solução para um problema, acabei achando uma coisa interessante, bastante útil e que muito projetos poderiam utilizar. Às vezes se quer realizar alguma auditoria em tabelas antes que as operações sejam efetivadas(comitadas). Operações antes de inserts, updates, deletes, geração de logs e etc. Isso é possível implementando um Interceptor com a vantagem de [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://valdemarjr.net/wp-content/uploads/2010/02/hibernate_interceptor.jpg"><img style="display: inline; border-width: 0px;" title="hibernate_interceptor" src="http://valdemarjr.net/wp-content/uploads/2010/02/hibernate_interceptor_thumb.jpg" border="0" alt="hibernate_interceptor" width="640" height="115" /></a></p>
<p><br class="spacer_" /></p>
<p>Buscando uma solução para um problema, acabei achando uma coisa interessante, bastante útil e que muito projetos poderiam utilizar.</p>
<p><br class="spacer_" /></p>
<p>Às vezes se quer realizar alguma auditoria em tabelas antes que as operações sejam efetivadas(comitadas). Operações antes de inserts, updates, deletes, geração de logs e etc. Isso é possível implementando um <a href="http://www.hibernate.org/hib_docs/v3/api/org/hibernate/Interceptor.html" target="_blank">Interceptor</a> com a vantagem de não ser necessário alterar seu código.</p>
<p>Para um exemplo simples, iremos adicionar a entidade, as propriedades para que seja feita a auditoria.</p>
<p><br class="spacer_" /></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
</pre></td><td class="code"><pre class="java" style="font-family:monospace;">@<span style="color: #003399;">Entity</span>
<span style="color: #000000; font-weight: bold;">public</span> EntidadeAuditada <span style="color: #000000; font-weight: bold;">implements</span> <span style="color: #003399;">Serializable</span> <span style="color: #009900;">&#123;</span>
&nbsp;
  @Id
  @GeneratedValue <span style="color: #009900;">&#40;</span>strategy <span style="color: #339933;">=</span> GenerationType.<span style="color: #006633;">IDENTITY</span><span style="color: #009900;">&#41;</span>
  <span style="color: #003399;">Long</span> id
&nbsp;
  @Version
  <span style="color: #003399;">Long</span> version
&nbsp;
  @Column <span style="color: #009900;">&#40;</span>name <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;entry_text&quot;</span><span style="color: #009900;">&#41;</span>
  <span style="color: #003399;">String</span> text
&nbsp;
  @Temporal <span style="color: #009900;">&#40;</span>TemporalType.<span style="color: #006633;">TIMESTAMP</span><span style="color: #009900;">&#41;</span><span style="color: #003399;">Date</span> publishedOn
&nbsp;
  <span style="color: #003399;">String</span> createdBy
  <span style="color: #003399;">Date</span> createdOn
  <span style="color: #003399;">String</span> updatedBy
  <span style="color: #003399;">Date</span> updatedOn
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p><br class="spacer_" /></p>
<p>Utilizando a estratégia <a href="http://www.hibernate.org/hib_docs/v3/api/org/hibernate/cfg/ImprovedNamingStrategy.html" target="_blank">ImprovedNamingStrategy</a> os para nomes de atributos, que serão traduzidos de <em>createdBy</em> para <em>created_by</em>.</p>
<p><br class="spacer_" /></p>
<p>Para criar um interceptor é preciso implementar um <a href="http://www.hibernate.org/hib_docs/v3/api/org/hibernate/Interceptor.html" target="_blank">Interceptor</a> ou melhor estender <a href="http://www.hibernate.org/hib_docs/v3/api/org/hibernate/EmptyInterceptor.html" target="_blank">EmptyInterceptor</a> para implementar apenas os métodos que realmente interessam.</p>
<p><br class="spacer_" /></p>
<p>Como exemplo, utilizo para quando uma entidade for inserida(save) e deletada(delete), sejam alterados as propriedades createBy, createdOn e updatedBy, updatedOn respectivamente, conforme mostrado no código abaixo:</p>
<p><br class="spacer_" /></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
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> EntidadeInterceptor <span style="color: #000000; font-weight: bold;">extends</span> EmptyInterceptor <span style="color: #009900;">&#123;</span>
&nbsp;
  <span style="color: #000066; font-weight: bold;">boolean</span> onDelete<span style="color: #009900;">&#40;</span><span style="color: #003399;">Object</span> entity, <span style="color: #003399;">Serializable</span> id, <span style="color: #003399;">Object</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> currentState,
                      <span style="color: #003399;">Object</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> previousState, <span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> propertyNames,
                      Type<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> types<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    setValue<span style="color: #009900;">&#40;</span>currentState, propertyNames, <span style="color: #0000ff;">&quot;updatedBy&quot;</span>, UserUtils.<span style="color: #006633;">getCurrentUsername</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    setValue<span style="color: #009900;">&#40;</span>currentState, propertyNames, <span style="color: #0000ff;">&quot;updatedOn&quot;</span>, <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Date</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #000066; font-weight: bold;">boolean</span> onSave<span style="color: #009900;">&#40;</span><span style="color: #003399;">Object</span> entity, <span style="color: #003399;">Serializable</span> id, <span style="color: #003399;">Object</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> state,
                 <span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> propertyNames, Type<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> types<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    setValue<span style="color: #009900;">&#40;</span>state, propertyNames, <span style="color: #0000ff;">&quot;createdBy&quot;</span>, UserUtils.<span style="color: #006633;">getCurrentUsername</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    setValue<span style="color: #009900;">&#40;</span>state, propertyNames, <span style="color: #0000ff;">&quot;createdOn&quot;</span>, <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Date</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">void</span> setValue<span style="color: #009900;">&#40;</span><span style="color: #003399;">Object</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> currentState, <span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> propertyNames,
                        <span style="color: #003399;">String</span> propertyToSet, <span style="color: #003399;">Object</span> value<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    def index <span style="color: #339933;">=</span> propertyNames.<span style="color: #006633;">toList</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">indexOf</span><span style="color: #009900;">&#40;</span>propertyToSet<span style="color: #009900;">&#41;</span>
    <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>index <span style="color: #339933;">&gt;=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      currentState<span style="color: #009900;">&#91;</span>index<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> value
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p><br class="spacer_" /></p>
<p>E depois implementamos o método <em>setValue</em> para fazer realmente o “trabalho” de setar o valor(<em>UserUtils.getCurrentUsername()</em>) na propriedade(<em>createdBy</em>), por exemplo.</p>
<p><br class="spacer_" /></p>
<p>Para configurar o interceptor é preciso habilitá-lo no Hibernate <a href="http://www.hibernate.org/hib_docs/v3/api/org/hibernate/Session.html" target="_blank">Session</a>, podendo ser habilitado globalmente através do <a href="http://www.hibernate.org/hib_docs/v3/api/org/hibernate/SessionFactory.html" target="_blank">SessionFactory</a> ou para uma Session específica como no código a seguir:</p>
<p><br class="spacer_" /></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// Configure interceptor globally (applies to all Sessions)</span>
sessionFactory <span style="color: #339933;">=</span>
  <span style="color: #000000; font-weight: bold;">new</span> AnnotationConfiguration<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    .<span style="color: #006633;">configure</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    .<span style="color: #006633;">setNamingStrategy</span><span style="color: #009900;">&#40;</span>ImprovedNamingStrategy.<span style="color: #006633;">INSTANCE</span><span style="color: #009900;">&#41;</span>
    .<span style="color: #006633;">setInterceptor</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> EntidadeInterceptor<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    .<span style="color: #006633;">buildSessionFactory</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Enable per Session</span>
Session session <span style="color: #339933;">=</span> getSessionFactory<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">openSession</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> EntidadeInterceptor<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span></pre></td></tr></table></div>

<p><br class="spacer_" /></p>
<p>Se estiver utilizando o framework como <a href="http://www.springsource.org/" target="_blank">Spring</a> fica ainda mais simples de habilitar o interceptor globalmente, adicionado ao applicationContext.xml(arquivo de configuração do Spring):</p>
<p><br class="spacer_" /></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;">&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;bean</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;sessionFactory&quot;</span></span>
<span style="color: #009900;">      <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;entityInterceptor&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;bean</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;net.valdemarjr.interceptors.EntidadeInterceptor&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/property<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #808080; font-style: italic;">&lt;!-- additional Hibernate configuration properties --&gt;</span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/bean<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Bom fica a dica aí, esse post tem como fonte <a href="http://java.dzone.com/articles/using-a-hibernate-interceptor-" target="_blank">dzone.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://valdemarjr.net/2010/02/21/hibernate-interceptor-para-auditar-entidades.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Mini-post] ShutDown Hooks</title>
		<link>http://valdemarjr.net/2010/02/11/mini-post-shutdown-hooks.html</link>
		<comments>http://valdemarjr.net/2010/02/11/mini-post-shutdown-hooks.html#comments</comments>
		<pubDate>Thu, 11 Feb 2010 22:02:39 +0000</pubDate>
		<dc:creator>Valdemar</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[mini-post]]></category>
		<category><![CDATA[dica]]></category>
		<category><![CDATA[shutdownhooks]]></category>
		<category><![CDATA[útil]]></category>

		<guid isPermaLink="false">http://valdemarjr.net/?p=96</guid>
		<description><![CDATA[A sessão mini-post serão post rápidos que farei para movimentar um pouco o blog e serão (ou pelo menos tentarei) postar dicas, boas práticas, novos frameworks e notícias de Java. Começo essa sessão postando sobre uma dica que pode ser útil. ShutDown Hooks API é utilizado para registrar uma Thread, que não é executado imediatamente, [...]]]></description>
			<content:encoded><![CDATA[<p>A sessão mini-post serão post rápidos que farei para movimentar um pouco o blog e serão (ou pelo menos tentarei) postar dicas, boas práticas, novos frameworks e notícias de Java.</p>
<p><br class="spacer_" /></p>
<p>Começo essa sessão postando sobre uma dica que pode ser útil. <a href="http://java.sun.com/j2se/1.5.0/docs/guide/lang/hook-design.html" target="_blank">ShutDown Hooks API</a> é utilizado para registrar uma <a href="http://java.sun.com/javase/6/docs/api/java/lang/Thread.html" target="_blank">Thread</a>, que não é executado imediatamente, mas quando a JVM inicia o processo de “desligamento” em uma ordem não específicada e todos os seus ShutDown Hooks registrados são executados.</p>
<p><br class="spacer_" /></p>
<p>Bastante útil quando se quer fechar/limpar recursos que foram previamente abertos/instanciados, como conexões de banco de dados. Para utilizar esse recurso é bastante simples:</p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></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
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">net.valdemarjr</span><span style="color: #339933;">;</span>
   <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> ShutDownHook <span style="color: #009900;">&#123;</span>
     <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
       <span style="color: #003399;">System</span>.<span style="color: #006633;">err</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Iniciando programa&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #003399;">Runtime</span> rt <span style="color: #339933;">=</span> <span style="color: #003399;">Runtime</span>.<span style="color: #006633;">getRuntime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #003399;">System</span>.<span style="color: #006633;">err</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Main: adicionado shutdown hook&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       rt.<span style="color: #006633;">addShutdownHook</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Thread</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
          <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> run<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
             <span style="color: #666666; font-style: italic;">// In real life this might close a Connection or something.</span>
             <span style="color: #003399;">System</span>.<span style="color: #006633;">err</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;ShutDown Hook Executado!&quot;</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;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #003399;">System</span>.<span style="color: #006633;">err</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Main: executando Runtime.exit(0)&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       rt.<span style="color: #006633;">exit</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><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>

<p><br class="spacer_" /></p>
<p>Bom fica essa pequena dica e um recurso que pode ser bastante útil.</p>
]]></content:encoded>
			<wfw:commentRss>http://valdemarjr.net/2010/02/11/mini-post-shutdown-hooks.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>T&#227;o simples quanto criar um teste: TestNG</title>
		<link>http://valdemarjr.net/2010/02/02/tao-simples-quanto-criar-um-teste-testng.html</link>
		<comments>http://valdemarjr.net/2010/02/02/tao-simples-quanto-criar-um-teste-testng.html#comments</comments>
		<pubDate>Wed, 03 Feb 2010 02:30:18 +0000</pubDate>
		<dc:creator>Valdemar</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Testes]]></category>
		<category><![CDATA[testNG]]></category>

		<guid isPermaLink="false">http://valdemarjr.net/?p=50</guid>
		<description><![CDATA[TestNG é um framework inspirado no JUnit e NUnit, mas que foram adicionado novas funcionalidades que deixam o framework mais poderoso e fácil de usar. Algumas delas já foram implementadas em outros frameworks, mas as vantagens são: - Suporte a annotation &#8211; Configurações flexíveis &#8211; Permite a distribuíção de testes &#8211; Plugins para as principais [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://valdemarjr.net/wp-content/uploads/2009/11/testNG.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="testNG" src="http://valdemarjr.net/wp-content/uploads/2009/11/testNG_thumb.jpg" border="0" alt="testNG" width="640" height="113" /></a></p>
<p>TestNG é um framework inspirado no <a href="http://www.junit.org/" target="_blank">JUnit</a> e <a href="http://www.nunit.org/" target="_blank">NUnit,</a> mas que foram adicionado novas funcionalidades que deixam o framework mais poderoso e fácil de usar. Algumas delas já foram implementadas em outros frameworks, mas as vantagens são:</p>
<p><br class="spacer_" /></p>
<p>- Suporte a annotation<br />
 &#8211; Configurações flexíveis<br />
 &#8211; Permite a distribuíção de testes<br />
 &#8211; Plugins para as principais IDE’s (netbeans, eclipse, IDEA…)</p>
<ul>
</ul>
<p><br class="spacer_" /></p>
<p><a href="http://testng.org/" target="_blank">TestNG</a> foi projetado para cobrir todas as categorias de testes: <a href="http://pt.wikipedia.org/wiki/Teste_de_unidade" target="_blank">unidade</a>, <a href="http://pt.wikipedia.org/wiki/Teste_de_integra%C3%A7%C3%A3o" target="_blank">integração</a>, <a href="http://pt.wikipedia.org/wiki/Teste_de_regress%C3%A3o" target="_blank">regressão </a>e etc, permitindo separar seu código Java dos testes a serem executados.  Podendo também especificar arbitrariamente métodos que poderão ser executados, em um momento específico dos testes, como “executar esse método antes de cada teste” ou “executar depois de todos os testes executarem”.</p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p>Outras features que gosto bastante é <strong>dependência de métodos e grupos de métodos,</strong> que garante que um grupo de testes sejam executados antes de outros. <strong>Grupos de grupos</strong>, quando você específica que um teste é de um grupo, podendo esse grupo ser inserido dentro de outro grupo maior. Os <strong>Relatórios </strong>podem ser gerados para mostrar os testes executados, o tempo gasto, status e etc. A Geração de relatório dos testes realizados que também é compatível com o <a href="http://ant.apache.org/manual/OptionalTasks/junitreport.html" target="_blank">JUnitReport</a>. Veja um <a href="http://beust.com/testng/test-report/junit-noframes.html" target="_blank">exemplo</a>.</p>
<p><br class="spacer_" /></p>
<p>Os testes possuem 3 tipos de dados:</p>
<p><strong>Parameters</strong>, são parâmetros passados para os métodos dos testes. <strong>Groups</strong>, dividido em duas partes, <em>definição </em>(quando você quer criar grupos que contêm outros grupos) e <em>execução</em> (específica o grupo de testes a serem executados). <strong>Classes</strong>, que definem quais classes farão parte do teste em execução.</p>
<p><br class="spacer_" /></p>
<p>Bom, existem diversas vantagens em se utilizar o <a href="http://testng.org/" target="_blank">TestNG</a>, mas a lista é muito longa, então se você não conhece, faça o download e experimente! Existe um artigo fazendo uma comparação entre o <a href="http://www.mkyong.com/unittest/junit-4-vs-testng-comparison/" target="_blank">JUnit e o TestNG</a> bem interessante. Que outras vantagens você consegue identificar que são realmente úteis aos testes que o TestNG proporciona?</p>
<p><br class="spacer_" /></p>
<p>Fiz um <a href="http://valdemarjr.net/wp-content/uploads/2010/02/testng-demo.rar">projeto exemplo</a> bem simples no <a href="http://maven.apache.org/" target="_blank">Maven2</a> mostrando uma classe de testes e alguns annotations.</p>
]]></content:encoded>
			<wfw:commentRss>http://valdemarjr.net/2010/02/02/tao-simples-quanto-criar-um-teste-testng.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conquista do Sun Certified Specialist for NetBeans</title>
		<link>http://valdemarjr.net/2010/01/02/conquista-do-sun-certified-specialist-for-netbeans.html</link>
		<comments>http://valdemarjr.net/2010/01/02/conquista-do-sun-certified-specialist-for-netbeans.html#comments</comments>
		<pubDate>Sun, 03 Jan 2010 02:21:05 +0000</pubDate>
		<dc:creator>Valdemar</dc:creator>
				<category><![CDATA[Notícias]]></category>

		<guid isPermaLink="false">http://valdemarjr.net/?p=79</guid>
		<description><![CDATA[Uma supresa foi a SCSNI beta exam, mesmo com o tempo muito curto deu para estudar todo o conteúdo e por ter trabalhado 5 meses com o netbeans me ajudaram a conquistar essa certificação na versão Beta. Por volta de 161 questões e 3 horas e meia de prova, muito cansativo, devido a tantas questões [...]]]></description>
			<content:encoded><![CDATA[<p>Uma supresa foi a SCSNI beta exam, mesmo com o tempo muito curto<br />
 deu para estudar todo o conteúdo e por ter trabalhado 5 meses<br />
 com o netbeans me ajudaram a conquistar essa certificação na versão Beta.</p>
<p><br class="spacer_" /></p>
<p>Por volta de 161 questões e 3 horas e meia de prova, muito cansativo,</p>
<p>devido a tantas questões e pelo tempo de prova.</p>
<p>Mas os estudos me fizeram com que eu admirasse ainda mais essa IDE</p>
<p>tão poderosa com diversos plugins e funcionalidades inclusas em um único lugar.</p>
<p><br class="spacer_" /></p>
<p>Tanto que o slogan do Netbeans é &#8220;The only IDE you need&#8221; e to começando a <br />
 achar que eles tem razão&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://valdemarjr.net/2010/01/02/conquista-do-sun-certified-specialist-for-netbeans.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Assassin´s Creed II para Xbox360</title>
		<link>http://valdemarjr.net/2009/11/02/assassin%c2%b4s-creed-ii-para-xbox360.html</link>
		<comments>http://valdemarjr.net/2009/11/02/assassin%c2%b4s-creed-ii-para-xbox360.html#comments</comments>
		<pubDate>Mon, 02 Nov 2009 11:29:28 +0000</pubDate>
		<dc:creator>Valdemar</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Xbox360]]></category>

		<guid isPermaLink="false">http://valdemarjr.net/?p=39</guid>
		<description><![CDATA[Lançado a segunda versão da série Assissin´s Creed, com um novo personagem e mais poderoso do que o primeiro. Joe Resenha Video Games &#124; Assassin&#8217;s Creed II &#124; From Altair To Ezio Developer Diary]]></description>
			<content:encoded><![CDATA[<p>Lançado a segunda versão da série Assissin´s Creed, com um novo personagem e mais poderoso do que o primeiro. Joe</p>
<p>Resenha</p>
<p>
<object id="gtembed" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="392" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowScriptAccess" value="sameDomain" /><param name="allowFullScreen" value="true" /><param name="quality" value="high" /><param name="src" value="http://www.gametrailers.com/remote_wrap.php?mid=58450" /><param name="name" value="gtembed" /><param name="align" value="middle" /><param name="allowfullscreen" value="true" /><embed id="gtembed" type="application/x-shockwave-flash" width="480" height="392" src="http://www.gametrailers.com/remote_wrap.php?mid=58450" align="middle" name="gtembed" quality="high" allowfullscreen="true" allowscriptaccess="sameDomain"></embed></object>
</p>
<p><br class="spacer_" /></p>
<div style="font-size: 10px; font-family: Verdana; text-align: center; width: 480px; padding-top: 2px; padding-bottom: 2px; background-color: black; height: 32px;">
<div><a style="color:#FFFFFF;" title="GameTrailers.com" href="http://www.gametrailers.com">Video Games</a> | <a style="color:#FFFFFF;" title="Assassin's Creed II" href="/game//">Assassin&#8217;s Creed II</a> | <a style="color:#FFFFFF;" title="From Altair To Ezio Developer Diary">From Altair To Ezio Developer Diary</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://valdemarjr.net/2009/11/02/assassin%c2%b4s-creed-ii-para-xbox360.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>G.I. Joe: O Filme</title>
		<link>http://valdemarjr.net/2009/08/10/g-i-joe-o-filme.html</link>
		<comments>http://valdemarjr.net/2009/08/10/g-i-joe-o-filme.html#comments</comments>
		<pubDate>Mon, 10 Aug 2009 04:47:35 +0000</pubDate>
		<dc:creator>Valdemar</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Filmes]]></category>
		<category><![CDATA[Filme]]></category>
		<category><![CDATA[G.I. Joe]]></category>

		<guid isPermaLink="false">http://valdemarjr.net/2009/08/g-i-joe-o-filme.html</guid>
		<description><![CDATA[Acabei de chegar do cinema e fui ver o G.I Joe o filme, grande clássico dos desenhos animados dos anos 80, o antigo Comandos em Ação. Quem nunca viu ou teve os bonecos dos G.I Joe desses quando criança? O filme assim como o desenho, é a luta contra os terroristas do grupo Cobra. Já [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-4" src="http://valdemarjr.net/wp-content/uploads/2009/08/gi_joe.jpg" alt="gi_joe.jpg" width="640" height="85" /></p>
<p>Acabei de chegar do cinema e fui ver o G.I Joe o filme, grande clássico dos desenhos animados dos anos 80, o antigo Comandos em Ação. Quem nunca viu ou teve os bonecos dos G.I Joe desses quando criança?</p>
<p>O filme assim como o desenho, é a luta contra os terroristas do grupo Cobra. Já que o título do filme é “A origem de Cobra”, não é muito parecido com o desenho, assim como todos filmes que foram baseados de jogos, de desenhos e vice-versa. Mas com certeza esse filme ficou bem melhor do que o desenho.</p>
<p><img class="aligncenter size-full wp-image-6" title="Snake-Eyes vs. Storm Shadow" src="http://valdemarjr.net/wp-content/uploads/2009/08/ninjas.jpg" alt="ninjas.jpg" rel=”lightbox” width="617" height="247" /></p>
<p>Esse filme foi feito para quem não gosta de muita história, mas que curte muito efeitos especiais, lutas com ninjas, muita destruíção e tecnologia. A cena da perseguição em Paris e da Torre Eiffel sendo destruída pelos micro-rôbos, que conseguem corroer metal, foram as mais impressionantes que achei no filme (cena vista também no trailer do filme).</p>
<p><img class="aligncenter size-full wp-image-8" title="Sienna Miller em G.I. Joe e em Alfie" src="http://valdemarjr.net/wp-content/uploads/2009/08/siennamiller.png" alt="siennamiller.png" rel=”lightbox” width="617" height="247" /></p>
<p>Mas por mim só de ter visto a bela Sienna Miller morena nesse filme, já valeu o preço do ingresso. A vi a primeira vez no filme Alfie, principalmente na cena quando ela aparece Christmas Miracle.</p>
<p>“G.I. Joe: A Origem da Cobra” estreou nessa sexta-feira(07/08) e eu não poderia perder de ver o filme no cinema. Assista o trailer.</p>
<p><a href="http://valdemarjr.net/2009/08/10/g-i-joe-o-filme.html"><em>Clique aqui para assistir o vídeo inserido.</em></a></p>
]]></content:encoded>
			<wfw:commentRss>http://valdemarjr.net/2009/08/10/g-i-joe-o-filme.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
