<?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/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>LoboMetal</title>
	<atom:link href="http://lobometal.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://lobometal.wordpress.com</link>
	<description></description>
	<lastBuildDate>Sat, 24 Oct 2009 01:15:08 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='lobometal.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/27c2a05f2d80d2cc89917394a0c5d1cd?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>LoboMetal</title>
		<link>http://lobometal.wordpress.com</link>
	</image>
			<item>
		<title>Esmeril Programming</title>
		<link>http://lobometal.wordpress.com/2009/10/22/esmeril-programming/</link>
		<comments>http://lobometal.wordpress.com/2009/10/22/esmeril-programming/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 23:44:32 +0000</pubDate>
		<dc:creator>heliofrota</dc:creator>
				<category><![CDATA[sem categoria]]></category>

		<guid isPermaLink="false">http://lobometal.wordpress.com/?p=60</guid>
		<description><![CDATA[Bom&#8230; EnJói (Enjoy)
Ríder    (header)
Origem (source code)
Ruliúde (hollywood)
Têxtpád (textpad)
Iran máidi (Iron Maiden)
Facête (Facade pattern)
Ricuesti paramíter (request parameter)
Déprékatédi (deprecated)
Privêiti (private)
Urubuntu (Ubuntu)
Avorrad (RAD 7)
WebEsfirra (Websphere)
kapabílitis (capabilities)
Píu Rabo (Pearl Harbor)
Rilísi (Release)

       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lobometal.wordpress.com&blog=1857219&post=60&subd=lobometal&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Bom&#8230; EnJói (Enjoy)</p>
<p>Ríder    (header)<br />
Origem (source code)<br />
Ruliúde (hollywood)<br />
Têxtpád (textpad)<br />
Iran máidi (Iron Maiden)<br />
Facête (Facade pattern)<br />
Ricuesti paramíter (request parameter)<br />
Déprékatédi (deprecated)<br />
Privêiti (private)<br />
Urubuntu (Ubuntu)<br />
Avorrad (RAD 7)<br />
WebEsfirra (Websphere)<br />
kapabílitis (capabilities)<br />
Píu Rabo (Pearl Harbor)<br />
Rilísi (Release)<br />
<img src="http://lobometal.files.wordpress.com/2009/10/esmeril.jpg" alt="" /></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lobometal.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lobometal.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lobometal.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lobometal.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lobometal.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lobometal.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lobometal.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lobometal.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lobometal.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lobometal.wordpress.com/60/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lobometal.wordpress.com&blog=1857219&post=60&subd=lobometal&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lobometal.wordpress.com/2009/10/22/esmeril-programming/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4b65fe93df1fb1e9b4aff4457d1c3b8c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">heliofrota</media:title>
		</media:content>

		<media:content url="http://lobometal.files.wordpress.com/2009/10/esmeril.jpg" medium="image" />
	</item>
		<item>
		<title>XhtmlRenderer HTML to PDF</title>
		<link>http://lobometal.wordpress.com/2009/09/13/xhtmlrenderer-html-to-pdf/</link>
		<comments>http://lobometal.wordpress.com/2009/09/13/xhtmlrenderer-html-to-pdf/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 15:38:29 +0000</pubDate>
		<dc:creator>heliofrota</dc:creator>
				<category><![CDATA[to PDF]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://lobometal.wordpress.com/?p=48</guid>
		<description><![CDATA[Sem muita enrolação (como de costume aqui no blog),  certo dia em um projeto eu precisava montar
um documento no formato de uma carta e precisava fazer isso de forma rápida&#8230;
Em mãos eu tinha: POI, iText, jasperReports (com iReport).
Usei uma fração do meu tempo para procurar um projeto que:
-Usaria como entrada um texto;
-Dinamicamente modificasse o [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lobometal.wordpress.com&blog=1857219&post=48&subd=lobometal&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Sem muita enrolação (como de costume aqui no blog),  certo dia em um projeto eu precisava montar<br />
um documento no formato de uma carta e precisava fazer isso de forma rápida&#8230;<br />
Em mãos eu tinha: POI, iText, jasperReports (com iReport).</p>
<p>Usei uma fração do meu tempo para procurar um projeto que:<br />
-Usaria como entrada um texto;<br />
-Dinamicamente modificasse o texto via java;<br />
-Transformasse a saída no formato pdf;</p>
<p>Por sorte encontrei o <a href="http://xhtmlrenderer.dev.java.net/">http://xhtmlrenderer.dev.java.net</a></p>
<p>A idéia era pegar um html com certa formatação e obter um pdf resultante desse html modificado via java.<br />
Ex.: &#8220;Caro Sr. <strong>variavelNomeCliente</strong>,<br />
          O contrato de número <strong>variavelNumeroDoContrato</strong><br />
          etc etc etc etc etc etc etc etc etc etc etc etc<br />
          etc etc etc etc etc etc etc etc etc etc etc etc<br />
          etc etc etc etc etc etc etc etc etc etc etc etc<br />
          etc etc etc etc etc etc etc etc etc etc etc etc&#8230;&#8221; </p>
<p>Eu não queria usar nenhum template .doc para modificar via POI muito menos brincar com formatação no iReport muito menos fazer formatação de texto com iText na mão (apesar de achar isso bacana).</p>
<p><strong>O que você vai precisar ?!</strong><br />
-xhtmlrenderer<br />
-itext<br />
-xml-apis-xerces</p>
<p>O código..<br />
Criei uma classe utilitária para cuidar da renderização.</p>
<pre class="brush: java;">
package util;

import java.io.ByteArrayInputStream;
import java.io.OutputStream;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xhtmlrenderer.pdf.ITextRenderer;

public class XhtmlRendererUtil {

	public static void build(String sb, OutputStream os) throws Exception {

		DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
		ByteArrayInputStream bais = new ByteArrayInputStream(sb.getBytes());
		Document document = docBuilder.parse(bais);
		ITextRenderer itextRenderer = new ITextRenderer();
		itextRenderer.setDocument(document, null);
		OutputStream outputStream = os;
		itextRenderer.layout();
		itextRenderer.createPDF(outputStream);
		os.close();
	}

}
</pre>
<p>Abaixo um servlet simples pra testar a classe utilitária de renderização:</p>
<pre class="brush: java;">
package servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import util.XhtmlRendererUtil;

public class HtmlToPdfServlet extends HttpServlet {

	public void service(HttpServletRequest request, HttpServletResponse response)
	    throws ServletException, IOException {

		response.setContentType(&quot;application/pdf&quot;);
		response.setHeader(&quot;Content-Disposition&quot;, &quot;attachment; filename=test.pdf&quot;);
		response.setHeader(&quot;Pragma&quot;, &quot;public&quot;);
		response.setHeader(&quot;Cache-Control&quot;, &quot;max-age=0&quot;);

		try {
		   XhtmlRendererUtil.build(buildHTML(), response.getOutputStream());
		} catch(Exception e) {
			e.printStackTrace();
		}

	}

	private String buildHTML() {

		StringBuilder stringBuilder = new StringBuilder();
		stringBuilder.append(&quot;&lt;html&gt;&quot;);
		stringBuilder.append(&quot;&lt;body&gt;&quot;);
		stringBuilder.append(&quot;&lt;h1&gt;Bom, ta transformando...&lt;/h1&gt;&quot;);
		stringBuilder.append(&quot;&lt;h2&gt;O problema agora eh como pegar essa Tripa HTML&lt;/h2&gt;&quot;);
		stringBuilder.append(&quot;&lt;h3&gt;diretamente da pagina renderizada&lt;/h3&gt;&quot;);
		stringBuilder.append(&quot;&lt;h4&gt;via javascript puro no submit, ajax sei la o que&lt;/h4&gt;&quot;);
		stringBuilder.append(&quot;&lt;h5&gt;pra transformar uma pagina (layout com tudo nem sei se da)&lt;/h5&gt;&quot;);
		stringBuilder.append(&quot;&lt;h5&gt;num pdf.&lt;/h5&gt;&quot;);
		stringBuilder.append(&quot;&lt;/body&gt;&lt;/html&gt;&quot;);
		return stringBuilder.toString();
	}

}
</pre>
<p><a href="http://lobometal.files.wordpress.com/2009/09/lobometal_xhtmlrenderer.odt">lobometal_xhtmlrenderer.odt</a><br />
(renomear para .zip)</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lobometal.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lobometal.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lobometal.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lobometal.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lobometal.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lobometal.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lobometal.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lobometal.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lobometal.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lobometal.wordpress.com/48/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lobometal.wordpress.com&blog=1857219&post=48&subd=lobometal&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lobometal.wordpress.com/2009/09/13/xhtmlrenderer-html-to-pdf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4b65fe93df1fb1e9b4aff4457d1c3b8c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">heliofrota</media:title>
		</media:content>
	</item>
		<item>
		<title>Eu prefiro programaticamente&#8230;</title>
		<link>http://lobometal.wordpress.com/2009/05/08/eu-prefiro-programaticamente/</link>
		<comments>http://lobometal.wordpress.com/2009/05/08/eu-prefiro-programaticamente/#comments</comments>
		<pubDate>Fri, 08 May 2009 11:35:50 +0000</pubDate>
		<dc:creator>heliofrota</dc:creator>
				<category><![CDATA[Mentawai]]></category>

		<guid isPermaLink="false">http://lobometal.wordpress.com/?p=38</guid>
		<description><![CDATA[Um dia desses resolvi migrar uma pequena aplicação Struts 1x para Mentawai quando me deparei com o struts-config.xml&#8230;
Bom, depois de 1 cigarro a ficha caiu, e sem mais delongas olhem o resultado:
struts-config.xml 

&#60;action-mappings&#62;
    &#60;action
      path=&#34;/WSTestMethod1Action&#34;
      type=&#34;com.coral.ws.test.web.action.WSTestAction&#34;
      name=&#34;WSTestForm&#34;
 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lobometal.wordpress.com&blog=1857219&post=38&subd=lobometal&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Um dia desses resolvi migrar uma pequena aplicação Struts 1x para Mentawai quando me deparei com o struts-config.xml&#8230;</p>
<p>Bom, depois de 1 cigarro a ficha caiu, e sem mais delongas olhem o resultado:</p>
<p>struts-config.xml </p>
<pre class="brush: xml;">
&lt;action-mappings&gt;
    &lt;action
      path=&quot;/WSTestMethod1Action&quot;
      type=&quot;com.coral.ws.test.web.action.WSTestAction&quot;
      name=&quot;WSTestForm&quot;
      scope=&quot;request&quot;
      input=&quot;/tenant/method1.jsp&quot;
      parameter=&quot;method&quot;
      unknown=&quot;false&quot;
      validate=&quot;false&quot; &gt;
    &lt;/action&gt;
    &lt;action
      path=&quot;/WSTestMethod2Action&quot;
      type=&quot;com.coral.ws.test.web.action.WSTestAction&quot;
      name=&quot;WSTestForm&quot;
      scope=&quot;request&quot;
      input=&quot;/tenant/method2.jsp&quot;
      parameter=&quot;method&quot;
      unknown=&quot;false&quot;
      validate=&quot;false&quot; &gt;
    &lt;/action&gt;
    &lt;action
      path=&quot;/WSTestMethod4Action&quot;
      type=&quot;com.coral.ws.test.web.action.WSTestAction&quot;
      name=&quot;WSTestForm&quot;
      scope=&quot;request&quot;
      input=&quot;/tenant/method4.jsp&quot;
      parameter=&quot;method&quot;
      unknown=&quot;false&quot;
      validate=&quot;false&quot; &gt;
    &lt;/action&gt;
    &lt;action
      path=&quot;/WSTestMethod5Action&quot;
      type=&quot;com.coral.ws.test.web.action.WSTestAction&quot;
      name=&quot;WSTestForm&quot;
      scope=&quot;request&quot;
      input=&quot;/tenant/method5.jsp&quot;
      parameter=&quot;method&quot;
      unknown=&quot;false&quot;
      validate=&quot;false&quot; &gt;
    &lt;/action&gt;
    &lt;action
      path=&quot;/WSTestMethod6Action&quot;
      type=&quot;com.coral.ws.test.web.action.WSTestAction&quot;
      name=&quot;WSTestForm&quot;
      scope=&quot;request&quot;
      input=&quot;/tenant/method6.jsp&quot;
      parameter=&quot;method&quot;
      unknown=&quot;false&quot;
      validate=&quot;false&quot; &gt;
    &lt;/action&gt;
    &lt;action
      path=&quot;/WSTestMethod7Action&quot;
      type=&quot;com.coral.ws.test.web.action.WSTestAction&quot;
      name=&quot;WSTestForm&quot;
      scope=&quot;request&quot;
      input=&quot;/tenant/method7.jsp&quot;
      parameter=&quot;method&quot;
      unknown=&quot;false&quot;
      validate=&quot;false&quot; &gt;
    &lt;/action&gt;
    &lt;action
      path=&quot;/WSTestMethod8Action&quot;
      type=&quot;com.coral.ws.test.web.action.WSTestAction&quot;
      name=&quot;WSTestForm&quot;
      scope=&quot;request&quot;
      input=&quot;/tenant/method8.jsp&quot;
      parameter=&quot;method&quot;
      unknown=&quot;false&quot;
      validate=&quot;false&quot; &gt;
    &lt;/action&gt;
    &lt;action
      path=&quot;/WSTestMethod9Action&quot;
      type=&quot;com.coral.ws.test.web.action.WSTestAction&quot;
      name=&quot;WSTestForm&quot;
      scope=&quot;request&quot;
      input=&quot;/tenant/method9.jsp&quot;
      parameter=&quot;method&quot;
      unknown=&quot;false&quot;
      validate=&quot;false&quot; &gt;
    &lt;/action&gt;
    &lt;action
      path=&quot;/WSTestMethod10Action&quot;
      type=&quot;com.coral.ws.test.web.action.WSTestAction&quot;
      name=&quot;WSTestForm&quot;
      scope=&quot;request&quot;
      input=&quot;/tenant/method10.jsp&quot;
      parameter=&quot;method&quot;
      unknown=&quot;false&quot;
      validate=&quot;false&quot; &gt;
    &lt;/action&gt;
    &lt;action
      path=&quot;/WSTestMethod11Action&quot;
      type=&quot;com.coral.ws.test.web.action.WSTestAction&quot;
      name=&quot;WSTestForm&quot;
      scope=&quot;request&quot;
      input=&quot;/tenant/method11.jsp&quot;
      parameter=&quot;method&quot;
      unknown=&quot;false&quot;
      validate=&quot;false&quot; &gt;
    &lt;/action&gt;
    &lt;action
      path=&quot;/WSTestMethod12Action&quot;
      type=&quot;com.coral.ws.test.web.action.WSTestAction&quot;
      name=&quot;WSTestForm&quot;
      scope=&quot;request&quot;
      input=&quot;/tenant/method12.jsp&quot;
      parameter=&quot;method&quot;
      unknown=&quot;false&quot;
      validate=&quot;false&quot; &gt;
    &lt;/action&gt;
    &lt;action
      path=&quot;/WSTestMethod13Action&quot;
      type=&quot;com.coral.ws.test.web.action.WSTestAction&quot;
      name=&quot;WSTestForm&quot;
      scope=&quot;request&quot;
      input=&quot;/tenant/method13.jsp&quot;
      parameter=&quot;method&quot;
      unknown=&quot;false&quot;
      validate=&quot;false&quot; &gt;
    &lt;/action&gt;
    &lt;action
      path=&quot;/WSTestMethod14Action&quot;
      type=&quot;com.coral.ws.test.web.action.WSTestAction&quot;
      name=&quot;WSTestForm&quot;
      scope=&quot;request&quot;
      input=&quot;/tenant/method14.jsp&quot;
      parameter=&quot;method&quot;
      unknown=&quot;false&quot;
      validate=&quot;false&quot; &gt;
    &lt;/action&gt;
    &lt;action
      path=&quot;/WSTestMethod15Action&quot;
      type=&quot;com.coral.ws.test.web.action.WSTestAction&quot;
      name=&quot;WSTestForm&quot;
      scope=&quot;request&quot;
      input=&quot;/tenant/method15.jsp&quot;
      parameter=&quot;method&quot;
      unknown=&quot;false&quot;
      validate=&quot;false&quot; &gt;
    &lt;/action&gt;
    &lt;action
      path=&quot;/WSTestMethod16Action&quot;
      type=&quot;com.coral.ws.test.web.action.WSTestAction&quot;
      name=&quot;WSTestForm&quot;
      scope=&quot;request&quot;
      input=&quot;/tenant/method16.jsp&quot;
      parameter=&quot;method&quot;
      unknown=&quot;false&quot;
      validate=&quot;false&quot; &gt;
    &lt;/action&gt;
    &lt;action
      path=&quot;/WSTestMethod17Action&quot;
      type=&quot;com.coral.ws.test.web.action.WSTestAction&quot;
      name=&quot;WSTestForm&quot;
      scope=&quot;request&quot;
      input=&quot;/tenant/method17.jsp&quot;
      parameter=&quot;method&quot;
      unknown=&quot;false&quot;
      validate=&quot;false&quot;  &gt;
    &lt;/action&gt;
    &lt;action
      path=&quot;/WSTestMethod18Action&quot;
      type=&quot;com.coral.ws.test.web.action.WSTestAction&quot;
      name=&quot;WSTestForm&quot;
      scope=&quot;request&quot;
      input=&quot;/tenant/method18.jsp&quot;
      parameter=&quot;method&quot;
      unknown=&quot;false&quot;
      validate=&quot;false&quot; &gt;
    &lt;/action&gt;
  &lt;/action-mappings&gt;
</pre>
<p>ApplicationManager utilizando Convention over Configuration</p>
<pre class="brush: java;">
for (int i = 1; i &lt;= 18; i++) {
    action(&quot;/WSTestMethod&quot; + i + &quot;Action&quot;, WSTestAction.class)
    .fwdOk(&quot;/wstest/method&quot; + i + &quot;.jsp&quot;);
}
</pre>
<p>Eu prefiro programaticamente&#8230;</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lobometal.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lobometal.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lobometal.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lobometal.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lobometal.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lobometal.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lobometal.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lobometal.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lobometal.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lobometal.wordpress.com/38/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lobometal.wordpress.com&blog=1857219&post=38&subd=lobometal&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lobometal.wordpress.com/2009/05/08/eu-prefiro-programaticamente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4b65fe93df1fb1e9b4aff4457d1c3b8c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">heliofrota</media:title>
		</media:content>
	</item>
		<item>
		<title>Detectando java plugin de maneira simples</title>
		<link>http://lobometal.wordpress.com/2009/02/04/detectando-java-plugin-de-maneira-simples/</link>
		<comments>http://lobometal.wordpress.com/2009/02/04/detectando-java-plugin-de-maneira-simples/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 12:38:58 +0000</pubDate>
		<dc:creator>heliofrota</dc:creator>
				<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://lobometal.wordpress.com/?p=33</guid>
		<description><![CDATA[Após algumas tentativas (com certo sucesso) de implementar algo com applet e javascript para detectar a versão do plugin do java instalado no browser cliente, descobri esse dectector não intrusivo:
http://www.pinlady.net/PluginDetect/
O autor fez um trabalho muito bacana e é realmente simples agora detectar o java no browser do cliente veja
só:

&#60;script type=&#34;text/javascript&#34;&#62;
//verifica se tem java instalado
var status [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lobometal.wordpress.com&blog=1857219&post=33&subd=lobometal&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Após algumas tentativas (com certo sucesso) de implementar algo com applet e javascript para detectar a versão do plugin do java instalado no browser cliente, descobri esse dectector não intrusivo:<br />
http://www.pinlady.net/PluginDetect/</p>
<p>O autor fez um trabalho muito bacana e é realmente simples agora detectar o java no browser do cliente veja<br />
só:</p>
<pre class="brush: jscript;">
&lt;script type=&quot;text/javascript&quot;&gt;
//verifica se tem java instalado
var status = PluginDetect.isMinVersion('Java', '0', 'getJavaInfo.jar');
var installed = status &gt;=0 ? true : false;
//verifica se a versão do java é no mínimo 1.5
var vstatus = PluginDetect.isMinVersion('Java', '1.5', 'getJavaInfo.jar');
var vinstalled = vstatus == 1 ? true : false;
if (!installed) {
    alert('Seu browser não tem o plugin do java instalado');
}

if (!vinstalled) {
    alert('A versão do plugin do java instalado é inferior a 1.5');
}
&lt;/script&gt;
</pre>
<p>Você vai precisar também de dois arquivos: &#8220;PluginDetect.js&#8221; e &#8220;getJavaInfo.jar&#8221; que você pode obter no próprio site do projeto.</p>
<p>Basta importar o PluginDetect.js no header da página</p>
<pre class="brush: jscript;">
&lt;script type=&quot;text/javascript&quot; src=&quot;PluginDetect.js&quot;&gt;&lt;/script&gt;
</pre>
<p>e jogar o jar na mesma pasta da página.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lobometal.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lobometal.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lobometal.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lobometal.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lobometal.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lobometal.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lobometal.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lobometal.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lobometal.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lobometal.wordpress.com/33/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lobometal.wordpress.com&blog=1857219&post=33&subd=lobometal&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lobometal.wordpress.com/2009/02/04/detectando-java-plugin-de-maneira-simples/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4b65fe93df1fb1e9b4aff4457d1c3b8c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">heliofrota</media:title>
		</media:content>
	</item>
		<item>
		<title>Displaytag formatando datas e números</title>
		<link>http://lobometal.wordpress.com/2008/11/20/displaytag-formatando-datas-e-numeros/</link>
		<comments>http://lobometal.wordpress.com/2008/11/20/displaytag-formatando-datas-e-numeros/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 12:19:01 +0000</pubDate>
		<dc:creator>heliofrota</dc:creator>
				<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://lobometal.wordpress.com/?p=13</guid>
		<description><![CDATA[Formatando datas e números rapidamente com Displaytag.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lobometal.wordpress.com&blog=1857219&post=13&subd=lobometal&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a title="Displaytag" href="http://displaytag.sourceforge.net/11/" target="_blank">Displaytag</a> é um componente bem interessante que trata a parte de grids.</p>
<p>O que vou mostrar aqui é uma maneira rápida de formatar datas e números sem que você precise fazer isso nos seus objetos.</p>
<p>Basicamente você irá utilizar o atributo <strong>format</strong>:</p>
<p>format=&#8221;{0,date,dd/MM/yyyy}&#8221;<br />
format=&#8221;{0.number.0.000,00} R$&#8221;</p>
<p>Aqui um exemplo completo para data</p>
<pre class="brush: xml;">
&lt;display:column format=&quot;{0,date,dd/MM/yyyy}&quot; title=&quot;Início&quot; property=&quot;startDate&quot; /&gt;
</pre>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lobometal.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lobometal.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lobometal.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lobometal.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lobometal.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lobometal.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lobometal.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lobometal.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lobometal.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lobometal.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lobometal.wordpress.com&blog=1857219&post=13&subd=lobometal&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lobometal.wordpress.com/2008/11/20/displaytag-formatando-datas-e-numeros/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4b65fe93df1fb1e9b4aff4457d1c3b8c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">heliofrota</media:title>
		</media:content>
	</item>
		<item>
		<title>Gerando relatórios do Schemaspy via Maven</title>
		<link>http://lobometal.wordpress.com/2008/07/13/gerando-relatorios-do-schemaspy-via-maven/</link>
		<comments>http://lobometal.wordpress.com/2008/07/13/gerando-relatorios-do-schemaspy-via-maven/#comments</comments>
		<pubDate>Sun, 13 Jul 2008 17:55:31 +0000</pubDate>
		<dc:creator>heliofrota</dc:creator>
				<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://lobometal.wordpress.com/?p=7</guid>
		<description><![CDATA[Antes de mais nada, para um melhor entendimento sobre o SchemaSpy e um startup mais rápido visite : Boaglio.com
Pra quem não conhece o Maven: Maven Home
Então, agora já que você conhece o SchemaSpy vamos partir pra configuração do mesmo com o Maven para aproveitar &#8220;a carona&#8221; do comando &#8220;mvn site&#8221; na criação dos relatórios do [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lobometal.wordpress.com&blog=1857219&post=7&subd=lobometal&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Antes de mais nada, para um melhor entendimento sobre o SchemaSpy e um startup mais rápido visite : <a href="http://www.boaglio.com/index.php/2008/07/12/criando-documentacao-do-seu-banco-de-dados-com-schemaspy/">Boaglio.com</a></p>
<p>Pra quem não conhece o Maven: <a href="http://maven.apache.org/">Maven Home</a></p>
<p>Então, agora já que você conhece o <strong>SchemaSpy</strong> vamos partir pra configuração do mesmo com o Maven para aproveitar &#8220;a carona&#8221; do comando &#8220;<strong>mvn site</strong>&#8221; na criação dos relatórios do <strong>SchemaSpy</strong>.</p>
<p>Criei um projeto blank apenas para mostrar a configuração em si, no caso iremos atentar apenas para os arquivos de configuração.</p>
<p>Estrutura padrão Maven criada no eclipse utilizando o plugin <a href="http://m2eclipse.codehaus.org/update-dev">M2</a> (http://m2eclipse.codehaus.org/update-dev)</p>
<p>Update site para plugin:</p>
<p><a href="http://lobometal.files.wordpress.com/2008/07/m2_plugin.jpg"><img class="alignnone size-medium wp-image-8" src="http://lobometal.files.wordpress.com/2008/07/m2_plugin.jpg?w=300&#038;h=125" alt="" width="300" height="125" /></a></p>
<p>Estrutura:</p>
<p><a href="http://lobometal.files.wordpress.com/2008/07/estrutura.jpg"><img class="alignnone size-medium wp-image-9" src="http://lobometal.files.wordpress.com/2008/07/estrutura.jpg?w=189&#038;h=196" alt="" width="189" height="196" /></a></p>
<p>Quando você instala o Maven ele cria no diretório do usuário uma pasta &#8220;.m2&#8243;. Nessa pasta  ficará o repositório das dependências (jars) bem como um arquivo de configuração chamado  &#8220;settings.xml&#8221; entre outras coisas.</p>
<p>Como o SchemaSpy ainda não possui plugin pra maven (pelo menos eu não encontrei nenhum)  precisamos &#8220;Rodá-lo&#8221; de alguma forma e para isso editaremos esse arquivo <strong>settings.xml </strong>com a seguinte configuração:</p>
<pre class="brush: xml;">
&lt;settings&gt;
&lt;profiles&gt;
&lt;profile&gt;
&lt;development&gt;
&lt;activation&gt;
&lt;activeByDefault&gt;true&lt;/activeByDefault&gt;
&lt;activation&gt;
&lt;properties&gt;
&lt;!-- O arquivo jar do schemaspy foi colocado nesse diretório &quot;d:\java&quot; --&gt;
&lt;schemaspy.home&gt;d:\java\&lt;/schemaspy.home&gt;
&lt;schemaspy.version&gt;3.1.1&lt;/schemaspy.version&gt;
&lt;!-- Aqui indicamos onde ficarão os arquivos de documentação gerados --&gt;
&lt;!-- Notem que ficará dentro do site gerado pelo Maven --&gt;
&lt;schemaspy.report.dir&gt;${project.build.directory}/site/schemaspy&lt;/schemaspy.report.dir&gt;
&lt;!--Você deve fornecer o driver do seu banco, aqui no caso o Mysql--&gt;
&lt;schemaspy.jdbc.driver&gt;c:\java\mysql-connector-java-5.0.4.jar&lt;/schemaspy.jdbc.driver&gt;
&lt;!-- A seguir configurações comuns para acesso ao banco de dados--&gt;
&lt;schemaspy.database&gt;spytes&lt;/schemaspy.database&gt;
&lt;schemaspy.driverClassName&gt;com.mysql.jdbc.Driver&lt;/schemaspy.driverClassName&gt;
&lt;schemaspy.username&gt;spytest&lt;/schemaspy.username&gt;
&lt;schemaspy.password&gt;1234&lt;/schemaspy.password&gt;
&lt;schemaspy.database.host&gt;localhost&lt;/schemaspy.database.host&gt;
&lt;/properties&gt;
&lt;/profile&gt;
&lt;/profiles&gt;
&lt;/settings&gt;
</pre>
<p>Ok. Agora vamos para o POM:</p>
<pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd&quot;&gt;

&lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
&lt;groupId&gt;spytest&lt;/groupId&gt;
&lt;artifactId&gt;spytest&lt;/artifactId&gt;
&lt;packaging&gt;war&lt;/packaging&gt;
&lt;version&gt;0.0.1&lt;/version&gt;
&lt;!--Note que todas as variáveis ${algumaCoisa} são as mesmas--&gt;
&lt;!--definidas no arquivo settings.xml visto anteriormente.--&gt;
&lt;build&gt;
&lt;plugins&gt;
&lt;plugin&gt;
&lt;artifactId&gt;maven-antrun-plugin&lt;/artifactId&gt;
&lt;executions&gt;
&lt;execution&gt;
&lt;phase&gt;site&lt;/phase&gt;
&lt;configuration&gt;
&lt;tasks&gt;
&lt;echo&gt;Gerando relatorio sobre o banco em: ${schemaspy.report.dir}&lt;/echo&gt;
&lt;java jar=&quot;${schemaspy.home}/schemaSpy_${schemaspy.version}.jar&quot; output=&quot;${schemaspy.report.dir}/schemaspy-out.log&quot; error=&quot;${schemaspy.report.dir}/schemaspy-error.log&quot; fork=&quot;true&quot;&gt;

&lt;arg line=&quot;-t=mysql&quot; /&gt;
&lt;arg line=&quot;-db=${schemaspy.database}&quot; /&gt;
&lt;arg line=&quot;-u=${schemaspy.username}&quot; /&gt;
&lt;arg line=&quot;-p=${schemaspy.password}&quot; /&gt;
&lt;arg line=&quot;-cp=${schemaspy.jdbc.driver}&quot; /&gt;
&lt;arg line=&quot;-host=${schemaspy.database.host}&quot; /&gt;
&lt;arg line=&quot;-o=${schemaspy.report.dir}&quot; /&gt;
&lt;/java&gt;
&lt;/tasks&gt;
&lt;/configuration&gt;
&lt;goals&gt;
&lt;goal&gt;run&lt;/goal&gt;
&lt;/goals&gt;
&lt;/execution&gt;
&lt;/executions&gt;
&lt;/plugin&gt;
&lt;/plugins&gt;
&lt;/build&gt;
&lt;!--Adicione a mesma dependência do connector que você declarou no arquivo settings.xml--&gt;
&lt;dependencies&gt;
&lt;dependency&gt;
&lt;groupId&gt;mysql&lt;/groupId&gt;
&lt;artifactId&gt;mysql-connector-java&lt;/artifactId&gt;
&lt;version&gt;5.0.4&lt;/version&gt;
&lt;/dependency&gt;
&lt;/dependencies&gt;
&lt;/project&gt;
</pre>
<p>Bom agora vem a parte mais complicada:</p>
<p>Abra o shell/cmd acesse a pasta do projeto onde se encontra o arquivo pom.xml e execute o comando  &#8220;mvn site&#8221;.</p>
<p>Se tudo deu certo você verá dentro da pasta &#8220;target/site&#8221; do seu projeto a pasta &#8220;schemaspy&#8221; com os relatórios gerados.</p>
<p>Abaixo você poderá efetuar o download do &#8220;projeto blank&#8221; (projeto usando a estrutura do Maven no eclipse) bem como o arquivo &#8220;settings.xml&#8221; (que deverá ficar na pasta .m2).</p>
<p>OBS: Após download favor renomear o arquivo <span style="color:#ff0000;"><strong>spytest.odt</strong></span> para <strong><span style="color:#008000;">spytest.zip</span></strong> e <span style="color:#ff0000;"><strong>settings.odt</strong></span> para <strong><span style="color:#008000;">settings.xml</span></strong></p>
<p><a href="http://lobometal.files.wordpress.com/2008/07/spytest.odt">spytest.odt</a><br />
<a href="http://lobometal.files.wordpress.com/2008/07/settings.odt">settings.odt</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lobometal.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lobometal.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lobometal.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lobometal.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lobometal.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lobometal.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lobometal.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lobometal.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lobometal.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lobometal.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lobometal.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lobometal.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lobometal.wordpress.com&blog=1857219&post=7&subd=lobometal&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lobometal.wordpress.com/2008/07/13/gerando-relatorios-do-schemaspy-via-maven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4b65fe93df1fb1e9b4aff4457d1c3b8c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">heliofrota</media:title>
		</media:content>

		<media:content url="http://lobometal.files.wordpress.com/2008/07/m2_plugin.jpg?w=300" medium="image" />

		<media:content url="http://lobometal.files.wordpress.com/2008/07/estrutura.jpg?w=189" medium="image" />
	</item>
		<item>
		<title>GridPaging com Mentawai Paginator Tag e MentaAjax</title>
		<link>http://lobometal.wordpress.com/2007/10/18/gridpaging-com-mentawai-paginator-tag-e-mentaajax/</link>
		<comments>http://lobometal.wordpress.com/2007/10/18/gridpaging-com-mentawai-paginator-tag-e-mentaajax/#comments</comments>
		<pubDate>Thu, 18 Oct 2007 12:02:21 +0000</pubDate>
		<dc:creator>heliofrota</dc:creator>
				<category><![CDATA[Mentawai]]></category>

		<guid isPermaLink="false">http://lobometal.wordpress.com/2007/10/18/gridpaging-com-mentawai-paginator-tag-e-mentaajax/</guid>
		<description><![CDATA[Exemplo mostrando como mesclar a tag paginator do Mentawai com a feature MentaAjax resultando em um gridPaging com navegação via ajax.

No seu ApplicationManager você não precisa fazer nada de diferente veja:

//Forward para city.jsp que contém o formulário de busca
action(CityAction.class).fwdOk(&#34;/city.jsp&#34;);
//Forward para city_list.jsp, que contém a tag paginator que irá construir o grid
action(CityAction.class, &#34;loadAll&#34;) .fwdOk(&#34;/city_list.jsp&#34;);

Na action tudo [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lobometal.wordpress.com&blog=1857219&post=4&subd=lobometal&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Exemplo mostrando como mesclar a tag paginator do Mentawai com a feature MentaAjax resultando em um gridPaging com navegação via ajax.</p>
<p><a href="http://lobometal.files.wordpress.com/2007/10/gridpaging.png" title="GridPaging"><img src="http://lobometal.files.wordpress.com/2007/10/gridpaging.png" alt="GridPaging" /></a></p>
<p>No seu ApplicationManager você não precisa fazer nada de diferente veja:</p>
<pre class="brush: java;">
//Forward para city.jsp que contém o formulário de busca
action(CityAction.class).fwdOk(&quot;/city.jsp&quot;);
//Forward para city_list.jsp, que contém a tag paginator que irá construir o grid
action(CityAction.class, &quot;loadAll&quot;) .fwdOk(&quot;/city_list.jsp&quot;);
</pre>
<p>Na action tudo o que você precisa é enviar para o output uma lista com os valores:</p>
<pre class="brush: java;">
//Neste exemplo estou usando MentaBeans para obter a lista de objetos City do banco
public String loadAll() throws Exception {
    output.setValue(&quot;list&quot;, beanSession.loadList(new City()));
    return SUCCESS;
}
</pre>
<p>Agora o arquivo city.jsp que contém o formulário de busca com MentaAjax:</p>
<pre class="brush: xml;">
&lt;%@ taglib uri=&quot;/WEB-INF/mentawai.tld&quot; prefix=&quot;mtw&quot; %&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;GridPaging&lt;/title&gt;
&lt;mtw:ajaxConfig /&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
function find(pg) {
    var req = new mtw.request();
    req.setUrl(&quot;CityAction.loadAll.mtw&quot;);
    req.onSuccess(function(trans) {
        var res = new mtw.response(trans);
        $(&quot;grid&quot;).innerHTML = res.getString();
    });
    req.addParameter(&quot;page&quot;, pg);
    req.send();
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;a href=&quot;javascript:void(0)&quot; onclick=&quot;find(1)&quot;&gt;Show !&lt;/a&gt;
&lt;div id=&quot;grid&quot;&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>No arquivo city_list.jsp iremos usar o PaginatorTag do Mentawai:</p>
<pre class="brush: xml;">
&lt;%@ taglib uri=&quot;/WEB-INF/mentawai.tld&quot; prefix=&quot;mtw&quot; %&gt;
&lt;table&gt;
&lt;tr&gt;
 &lt;td&gt;
  &lt;mtw:paginator size=&quot;5&quot; value=&quot;list&quot;&gt;
     &lt;mtw:isEmpty negate=&quot;true&quot;&gt;
        Resultados &lt;mtw:resultFrom /&gt; - &lt;mtw:resultTo /&gt; de: &lt;mtw:resultTotal /&gt;&lt;br /&gt;
     &lt;/mtw:isEmpty&gt;
     &lt;mtw:hasPrevious&gt;
        &lt;a href=&quot;javascript:void(0)&quot; onclick=&quot;find(&lt;mtw:out /&gt;);&quot;&gt;Anterior&lt;/a&gt;
     &lt;/mtw:hasPrevious&gt;
     &lt;mtw:pageNumbers pagesToShow=&quot;2&quot;&gt;
        &lt;mtw:isCurrPage&gt;&lt;mtw:out /&gt;&lt;/mtw:isCurrPage&gt;
        &lt;mtw:isCurrPage negate=&quot;true&quot;&gt;
          &lt;a href=&quot;javascript:void(0)&quot; onclick=find(&lt;mtw:out /&gt;);&gt;&lt;mtw:out /&gt;&lt;/a&gt;
        &lt;/mtw:isCurrPage&gt;
     &lt;/mtw:pageNumbers&gt;
     &lt;mtw:hasNext&gt;
       &lt;a href=&quot;javascript:void(0)&quot; onclick=find(&lt;mtw:out /&gt;);&gt;Próximo&lt;/a&gt;
     &lt;/mtw:hasNext&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;mtw:loop&gt;
&lt;tr&gt;
  &lt;td&gt;&lt;mtw:out value=&quot;id&quot; /&gt;&lt;/td&gt;
  &lt;td&gt;&lt;mtw:out value=&quot;name&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/mtw:loop&gt;
&lt;/mtw:paginator&gt;
&lt;/table&gt;
</pre>
<p>Versão do Mentawai 1.11</p>
<p><a href="http://lobometal.files.wordpress.com/2007/10/gridpaging.png" title="GridPaging"></a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lobometal.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lobometal.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lobometal.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lobometal.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lobometal.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lobometal.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lobometal.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lobometal.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lobometal.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lobometal.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lobometal.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lobometal.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lobometal.wordpress.com&blog=1857219&post=4&subd=lobometal&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lobometal.wordpress.com/2007/10/18/gridpaging-com-mentawai-paginator-tag-e-mentaajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4b65fe93df1fb1e9b4aff4457d1c3b8c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">heliofrota</media:title>
		</media:content>

		<media:content url="http://lobometal.files.wordpress.com/2007/10/gridpaging.png" medium="image">
			<media:title type="html">GridPaging</media:title>
		</media:content>
	</item>
		<item>
		<title>Sutilezas do Maven</title>
		<link>http://lobometal.wordpress.com/2007/10/06/sutilezas-do-maven/</link>
		<comments>http://lobometal.wordpress.com/2007/10/06/sutilezas-do-maven/#comments</comments>
		<pubDate>Sat, 06 Oct 2007 14:13:02 +0000</pubDate>
		<dc:creator>heliofrota</dc:creator>
				<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://lobometal.wordpress.com/2007/10/06/sutilezas-do-maven/</guid>
		<description><![CDATA[1) Deploy:
Sabemos que para acessar a sessão “Manager” do tomcat, o browser aponta para a url “/manager/html”. Pois bem se você pretende usar o Maven Tomcat Plugin preste bem atenção para não vacilar como eu

&#60;plugin&#62;
&#60;groupId&#62;org.codehaus.mojo&#60;/groupId&#62;
&#60;artifactId&#62;tomcat-maven-plugin&#60;/artifactId&#62;
&#60;configuration&#62;
&#60;server&#62;tomcat&#60;/server&#62;
&#60;update&#62;true&#60;/update&#62;
&#60;url&#62;http://192.168.0.2:8080/manager/html&#60;/url&#62;
&#60;/configuration&#62;
&#60;/plugin&#62;

Bastante óbvio não acham ? Para o deploy até que funciona, agora se você usar “mvn tomcat:undeploy” vai receber “de Grátis” [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lobometal.wordpress.com&blog=1857219&post=3&subd=lobometal&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>1) Deploy:<br />
Sabemos que para acessar a sessão “Manager” do tomcat, o browser aponta para a url “/manager/html”. Pois bem se você pretende usar o Maven Tomcat Plugin preste bem atenção para não vacilar como eu</p>
<pre class="brush: xml;">
&lt;plugin&gt;
&lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
&lt;artifactId&gt;tomcat-maven-plugin&lt;/artifactId&gt;
&lt;configuration&gt;
&lt;server&gt;tomcat&lt;/server&gt;
&lt;update&gt;true&lt;/update&gt;
&lt;url&gt;http://192.168.0.2:8080/manager/html&lt;/url&gt;
&lt;/configuration&gt;
&lt;/plugin&gt;
</pre>
<p>Bastante óbvio não acham ? Para o deploy até que funciona, agora se você usar “mvn tomcat:undeploy” vai receber “de Grátis” um errão bem bacana. Para resolver isso remova o “/html” no fim ficando dessa forma:</p>
<pre class="brush: xml;">
&lt;plugin&gt;
&lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
&lt;artifactId&gt;tomcat-maven-plugin&lt;/artifactId&gt;
&lt;configuration&gt;
&lt;server&gt;tomcat&lt;/server&gt;
&lt;update&gt;true&lt;/update&gt;
&lt;url&gt;http://192.168.0.2:8080/manager&lt;/url&gt;
&lt;/configuration&gt;
&lt;/plugin&gt;
</pre>
<p>2) Problema com OutOfMemory Java Heap Space:<br />
Crie uma variável de ambiente (um JAVA_HOME por exemplo) chamada MAVEN_OPTS<br />
Ficando no seguinte formato (exemplo no linux):</p>
<p>export MAVEN_OPTS=”-Xms256m -Xmx512m -XX:PermSize=512m -XX:MaxPermSize=512m”</p>
<p>Se você tem 1gb de memória logicamente você não irá trocar os valores de 512 por 1024.<br />
Essa configuração pode variar dependendo do tamanho do seu projeto, nas chamadas de comandos do tipo mvn compiler:compile , mvn package, mvn tomcat:deploy etc…</p>
<p>3) JAR Fantasma<br />
Não sei se você já reparou mas…<br />
Usando o Eclipse WTP e criando um projeto web dinâmico a IDE cria dentro do workspace o seguinte diretório oculto “metadata”. Dentro dele temos vários outros mas a atenção especial fica para esse aqui:<br />
“.metadata/.plugins/org.eclipse.wst.server.core/tmp0/webapps”</p>
<p>Ele guarda o seu projeto web dinâmico para que você possa utilizar aquele “plugin” para iniciar/parar o tomcat e o mais incrível e emocionante foi que o Maven ao inves de pegar o JAR do repositório local<br />
resolveu adotar essa pasta como bicho de estimação para pegar os JARS e compor o WAR :]</p>
<p>Mandei o comando no slack “find -iname meujar.jar” dentro do workspace abri todos os jars encontrados e o único jar que não havia sido alterado era o que estava nesse diretório.</p>
<p>Sim isso aconteceu porque o projeto em questão não é um novo projeto Maven do zero e sim um projeto já existente com estrutura de diretórios própria no qual o Maven foi incorporado.</p>
<p>E agora como eu faço para “rodar” minha APP sem os JARS que estão na WEB-INF/lib então ??</p>
<p>mvn jetty:run</p>
<p>4) Desabilitar testes </p>
<p>use -Dmaven.test.skip=true</p>
<p>Exemplo:<br />
mvn package -Dmaven.test.skip=true</p>
<p>5) Remover jars sem uso do WAR para deploy</p>
<p>Adicione no pom.xml :</p>
<pre class="brush: xml;">
&lt;plugin&gt;
&lt;artifactId&gt;maven-war-plugin&lt;/artifactId&gt;
&lt;configuration&gt;
&lt;warSourceExcludes&gt;WEB-INF/lib/algumacoisa-1.0.1.jar, WEB-INF/lib/outra_coisa_que_nao_quero-3.1.0.jar&lt;/warSourceExcludes&gt;
&lt;/configuration&gt;
&lt;/plugin&gt;
</pre>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lobometal.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lobometal.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lobometal.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lobometal.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lobometal.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lobometal.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lobometal.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lobometal.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lobometal.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lobometal.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lobometal.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lobometal.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lobometal.wordpress.com&blog=1857219&post=3&subd=lobometal&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://lobometal.wordpress.com/2007/10/06/sutilezas-do-maven/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4b65fe93df1fb1e9b4aff4457d1c3b8c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">heliofrota</media:title>
		</media:content>
	</item>
	</channel>
</rss>