<?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>Zona J &#187; eclipse</title>
	<atom:link href="http://www.zonaj.org/category/eclipse/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.zonaj.org</link>
	<description>Zona Java - Um blog português sobre java.</description>
	<lastBuildDate>Wed, 26 May 2010 17:23:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Explicações de Excepções Java</title>
		<link>http://www.zonaj.org/2009/02/24/explicacoes-de-excepcoes-java/</link>
		<comments>http://www.zonaj.org/2009/02/24/explicacoes-de-excepcoes-java/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 02:46:04 +0000</pubDate>
		<dc:creator>Ruben Badaró</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[geral]]></category>
		<category><![CDATA[funny]]></category>

		<guid isPermaLink="false">http://www.zonaj.org/?p=201</guid>
		<description><![CDATA[Gostaria apenas de deixar um link para uma excelente e detalhada explicação das mais comuns excepções java, com um pouco de humor.
Explanations of Common Java Exceptions
]]></description>
			<content:encoded><![CDATA[<p>Gostaria apenas de deixar um link para uma excelente e detalhada explicação das mais comuns excepções java, com um pouco de humor.</p>
<p><a href="http://rymden.nu/exceptions.html">Explanations of Common Java Exceptions</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zonaj.org/2009/02/24/explicacoes-de-excepcoes-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaOne &#8211; dia 2 em grande</title>
		<link>http://www.zonaj.org/2008/05/08/javaone-dia-2-em-grande/</link>
		<comments>http://www.zonaj.org/2008/05/08/javaone-dia-2-em-grande/#comments</comments>
		<pubDate>Thu, 08 May 2008 08:13:31 +0000</pubDate>
		<dc:creator>Ruben Badaró</dc:creator>
				<category><![CDATA[dwr]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[evento]]></category>
		<category><![CDATA[gwt]]></category>
		<category><![CDATA[indústria]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[javaone]]></category>
		<category><![CDATA[jug]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[spring]]></category>
		<category><![CDATA[web2.0]]></category>

		<guid isPermaLink="false">http://www.zonaj.org/2008/05/08/javaone-dia-2-em-grande/</guid>
		<description><![CDATA[O dia dois do JavaOne foi na sua generalidade melhor que o primeiro dia. Ultrapassada a desorientação inicial própria de quem está na primeira vez num evento com mais de 15.000 pessoas todas em filas de um lado para o outro, relaxei mais neste dia e aproveitei as apresentações a que fui.
Todos os dias a [...]]]></description>
			<content:encoded><![CDATA[<p>O dia dois do JavaOne foi na sua generalidade melhor que o primeiro dia. Ultrapassada a desorientação inicial própria de quem está na primeira vez num evento com mais de 15.000 pessoas todas em filas de um lado para o outro, relaxei mais neste dia e aproveitei as apresentações a que fui.</p>
<p>Todos os dias a primeira sessão do dia no JavaOne é uma General Session e começa às 8h30 da manhã. Tendo em conta que normalmente são vendor talks (Oracle, AMD, etc.) ficou oficialmente decidido que essa hora será sempre gasta na noite anterior no consumo de cerveja.</p>
<h3>The Script Bowl: A Rapid-Fire Comparison of Scripting Languages</h3>
<p>O dia começou com um painel muito muito interessante sobre linguagens de scripting ou, como prefiro chamá-las genericamente, dinâmicas. O painel consistiu de 4 linguagens (Groovy, JRuby, Jython e Scala) cada uma com um seu defensor a quem cabia o papel de defender a sua linguagem preferida em 3 rounds. Os defensores eram os seguintes:</p>
<ul>
<li><a href="http://glaforge.free.fr/weblog/">Guillaume Laforge</a> pelo Groovy</li>
<li><a href="http://headius.blogspot.com/">Charles Nutter</a> pelo JRuby</li>
<li><a href="http://fwierzbicki.blogspot.com/">Frank Wierzbicki</a> pelo Jython</li>
<li>Jorge Ortiz pelo Scala</li>
</ul>
<p>A sessão consistiu em 3 rounds, em que o público podia votar por sms em tempo real. Os rounds eram os seguintes:</p>
<ol>
<li>Criar uma aplicação cliente de twitter (applet)</li>
<p>Aqui tanto a aplicação em groovy como em jruby destacaram-se pelo aspecto gráfico polido. A solução em jython foi bastante básica e em cima do joelho e a de Scala mostrou muito bem como usar closures para tratar de eventos e deixou uma impressão muito boa.</p>
<li>Criar uma aplicação web que gerisse países e cidades, com integração com mapa</li>
<p>Aqui o groovy dominou totalmente com o Grails. Além de o código ser muito mais perceptível do que o de jruby com o rails, usou uma tag custom para a integração do mapa que deixou a audiência com os olhos a brilhar. A solução do jython foi com django e limitou-se a demonstrar a geração automática da secção de admin sem grandes costumizações, nem mesmo com o mapa. O moço do Scala deitou tudo a perder não tendo implementado a aplicação web porque perdeu muito tempo na applet &#8211; e ele é um dos core developers do Lift, uma web framework escrita em Scala!. Aproveitou para demonstrar as funcionalidades de comet / reverse ajax / data push de uma forma simples.</p>
<li>O último round foi um vale tudo &#8211; basicamente pediram para mostrarem e defenderem o que a linguagem deles </li>
<p>fazia melhor que as outras.<br />
O defensor do Groovy optou por defender a integração com Java; o Charles Nutter mostrou uma aplicação muito interessante em que uma aplicação de visualização respondia ao som e pitch da voz dele; o do jython não me lembro realmente do que disse; o do Scala defendeu a forma como o Scala trata da questão de concorrência com os actors.
</ol>
<p>Foi uma sessão com um ambiente descontraído, com demonstrações giras. A idea com que fiquei foi muito favorável para o Groovy/Grails e para o Scala, para coisas mais server-side.<br />
Na votaçao do público, o JRuby recebeu os votos dos seus fãs e ficou em primeiro, seguido do Groovy, Scala e Jython em último.</p>
<h3>Improving Application Performance with Monitoring and Profiling Tools</h3>
<p>De seguida fui para uma apresentação que foca no meu outro tema de preferência além da área web: performance/concorrênca. Falou-se de ferramentas de CPU, de memória e de uso genérico.<br />
Esta apresentação consistiu numa apresentação de uma enormidade de aplicações que se podem usar para monitorizar e fazer profiling de aplicações java. Foram elas:</p>
<ul>
<li>DTrace</li>
<p>O <a href="http://www.sun.com/bigadmin/content/dtrace/">DTrace</a> é interessantíssimo e já tinha lido alguma coisas sobre o mesmo, especialmente do pessoal dos Macs. E aí reside a sua principal limitação: apenas está disponível em Solaris e OS X no JDK 6 e eu não conheço nenhum sistema de produção que tenha esta configuração.<br />
Permite obter informações muito importantes como seja a contenção de locks, o tempo de garbage collecting ou os tempos de invocaçao por método. Tudo isto é obtido de forma live, em que se faz attach ao processo java que está a correr e se retiram os dados enquanto ele executa.<br />
No entanto, DTrace é relativamente complexo pois implica a criação de scripts próprios (chamados DScripts). Foram indicadas duas ferramentas auxiliares: <a href="http://opensolaris.org/os/project/dtrace-chime/">Chime</a> para formatar o output e D-Light, que é um UI para criar DScripts facilmente.</p>
<li>Sun Studio Collector/Analyser</li>
<p>Ao contrário do DTrace, o <a href="http://developers.sun.com/sunstudio/overview/topics/analyzer_index.html">Collector</a> não faz attach a um processo e funciona por sampling. Ou seja, temos de correr um processo num outro ambiente, que vai recolher dados para analisar e depois para o processor e usar o Sun Studio. Está disponível tanto em Solaris como em Linux.<br />
Serve como substituto do DTrace para quando não se usa Solaris ou OS X.</p>
<li>JPS, JInfo e JStack</li>
<p>Estas aplicações são bastante simples e disponível nas versões 1.4.2+. O <a href="http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jps.html">JPS</a> permite listar process IDs de aplicaçoes java a correr; o <a href="http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jinfo.html">JInfo</a> permite ver informações como propriedades de sistema, flags da VM e inclusivamente mudar as flags da VM (Permite-nos retirar estas informações a partir de um core dump); <a href="http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jstack.html">JStack</a> permite-nos gerar stack traces de forma simples e é bastante útil para identificar deadlocks.</p>
<li>BTrace</li>
<p>O <a href="https://btrace.dev.java.net/">BTrace</a> não é bem uma aplicação mas mais uma framework. Permite-nos criar os nossos proprios scripts, que tiram partido de anotações, para obtermos as informações desejadas através de bytecode intrumentalization. Está disponível apenas na versão JDK 6 e em Solaris, Linux e OS X.</p>
<li>GCHisto</li>
<p>Esta <a href="https://gchisto.dev.java.net/">pequena aplicação</a> permite-nos detectar o comportamento do garbage collector visualmente. Requer que a aplicação seja executada com as flags -XX:+PrintGCTimeStamps e -XX+PrintGCDetails pois desenha os histogramas baseado nos logs do GC.</p>
<li>JMap</li>
<p>Esta <a href="http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jmap.html">aplicação</a> permite listar os objectos existentes na heap. Disponível na versão 1.4.2+ mas apenas em Solaris.</p>
<li>JHat</li>
<p>O <a href="http://java.sun.com/javase/6/docs/technotes/tools/share/jhat.html">JHat</a> permite, a partir de um binary heap file (que pode ser criado com o JMap), pesquisar por objectos na heap. Para tal, usa algo a que chamam OQL (Object Query Language), que não é mais que Javascipt com uns objectos especiais para pesquisar na heap. Está disponível a partir da versão 6 do JDK, sendo que para versões anteriores o projecto chamava-se simplesmente <a href="https://hat.dev.java.net/">Hat</a>.</p>
<li>JConsole</li>
<p>A <a href="http://java.sun.com/developer/technicalArticles/J2SE/jconsole.html">JConsole</a> era a única aplicação que eu conhecia de todas as que foram faladas. Disponível desde a versão 1.4.2, permite consultar dados sobre memória, threads, MBeans e outras informações a partir de uma simples applet.</p>
<li>Netbeans Profiling Tools</li>
<p>Incluído com o IDE Netbeans, vem este <a href="http://profiler.netbeans.org/">pacote de profiling tools</a> que usa o motor <a href="http://research.sun.com/projects/jfluid/index.html">JFluid</a> para retirar dados de CPU, memória e threads. A integração com o IDE pareceu interessante embora não tenha sido demonstrada, mas pode-se marcar pontos de profiling como se se marcassem breakpoints directamente no IDE. Certamente a testar, com este hype todo à volta do Netbeans.</p>
<li>VisualVM</li>
<p>O produto <a href="https://visualvm.dev.java.net/">VisualVM</a> foi o culminar da apresentação, o ponto a que eles queriam chegar. Inclui funcionalidades do JPS, JInfo, JStack, Jconsole e JStat. Além disso é extensível com plugins para o Btrace, GCHisto ou mesmo Glassfish ou Terracotta.
</ul>
<h3>Java Persistense API 2.0</h3>
<p>A sessão sobre JPA foi definitivamente a mais fraca dos dois dias até agora. Foi um debitar das alterações existentes na especificação do <a href="http://jcp.org/en/jsr/detail?id=317">JSR 317</a> pela spec leader e muito pouco pedagógica. As pessoas ficaram com sono e não captei realmente nada assim de importante além da ideia que se está a complicar um bocado a coisas. Coisas como o Doctrine para php têm implementações bem fáceis de entender para os mesmos problemas, ou então a sessão conseguiu complica o simples.<br />
O que valeu foi ter podido falar um pouco com o <a href="http://weblogs.java.net/blog/mister__m/">Michael Santos</a> que além de Java Champion, é co-lead do <a href="http://jcp.org/en/jsr/detail?id=310">JSR 310</a> (Date &#038; Time API). Tive a oportunidade de ele referir as relações deste JSR como o de JPA, bem como o do J2EE 6 (<a href="http://jcp.org/en/jsr/detail?id=316">JSR 316</a>)que deverá também usar o JSR 310. Foi uma boa companhia para a sessão.</p>
<h3>Transactional Memory in Java Technology-Based Systems</h3>
<p>Esta foi provavelmente a sessão mais trabalhosa do JavaOne até ao momento. Foi apresentada por dois membros da Intel e um deles tinha um sotaque completamente russo o que tornou quase impossível perceber metade da apresentação. Foi no entanto bastante divertido pois sempre que ele falava saia 5% da sala.<br />
A apresentação em si focou-se nos pontos de atomicidade que já tinha visto ontem nas apresentações de Fortress e do Brian Goetz. Falou-se memória transaccional por software (STM) e também por hardware (HTM), que desconhecia por completo. Dentro da STM, focaram o <a href="http://blogs.intel.com/research/2007/08/terascaleitj.php">McRT</a> que é o Multi-core runtime da intel que oferece funcionalidades de memória transaccional por software. Por enquanto apenas está disponível em C++, mas prometeram a versão para Java num dia de são nunca à tarde.</p>
<h3>JSR 303: From a World of Constraints to Constrain the World</h3>
<p>Sessão bastante interessante apresentado pelo leader do <a href="http://jcp.org/en/jsr/detail?id=303">JSR 303</a>, funcionário da JBoss. Falou-se sobre como e onde definir constraints no nosso modelo de domínio de forma a que seja independente de camada &#8211; uma validação deve ser homogénea desde a apresentação à base de dados.<br />
O que esta especificação permite é a especificação de constraints de validação sobre beans/pojos de diversos tipos &#8211; simples e built-in, custom made, com dependências entre campos, etc. &#8211; e que fornece uma forma de cada camada poder executar as validações. Não define como essas camadas tratam o resultado das validações, portanto é bastante genérico, tem apoio de todos os quadrantes da indústria e rapidamente se vai tornar standard.<br />
Além disso o speaker foi bastante acessível e simpático.</p>
<h3>Comet: The Rise of Highly Interactive Web Sites</h3>
<p>Eu já há bastante tempo que sei o que é Comet, o conceito é bastante simples: permitir que uma acção num cliente (tipicamente página web) seja reflectido em todos os clientes que estão na mesma vista sem que estes tenham que fazer nada. Mas não tinha a noção das diferentes aproximações do problema.<br />
Esta sessão foi apresentada pelo <a href="http://getahead.org/blog/joe/">Joe Walker</a> do <a href="http://getahead.org">DWR</a>, que explicou como o DWR usa o comet para fazer push de dados para o cliente; e pelo <a href="http://alex.dojotoolkit.org/">Alex Russell</a>, o homem do <a href="http://www.dojotoolkit.org/">Dojo Toolkit</a> e do <a href="http://cometd.com/">Cometd</a>. Falaram de duas aproximações distintas: enquanto o DWR tem o Comet embutido e o push de dados para o cliente faz parte da lógica de apresentação da aplicação; o cometd é como que um servidor proxy, muito útil para aplicações já existentes pois os clientes ligam-se é ao servidor Cometd para receberem os updates.<br />
Foi uma apresentação muito esclarecedora de duas pessoas que demonstraram serem mesmo os speakers ideais para o assunto.</p>
<h3>Real World, Not Hello World: GWT Development for Java™ Technology Shops</h3>
<p>Tinha planeado ir ver uma apresentação sobre JRuby pelo <a href="http://ola-bini.blogspot.com/">Ola Bini</a> mas acabei por ficar na mesma sala para a apresentação seguinte. Por um lado, fiquei com menos entusiasmo pela as apresentações jruby depois do script bowl; por outro, conheci o <a href="http://weblogs.java.net/blog/alegomes/">Alexandre Gomes</a> no jantar dos JUG Leaders e fiquei também para o ver a palestrar.<br />
Esta apresentação foi tripartida: o Alexandre falou sobre GWT, um membro da equipa do IceFaces falou sobre o Comet deles e o líder do <a href="https://grizzly.dev.java.net/">project Grizzly</a> falou sobre o projecto em si e a integração com GWT.<br />
Eu pessoalmente continuo a não estar totalmente convencido com a solução GWT mas estou a dar a oportunidade de ser surpreendido. O modelo de desenvolvimento à lá Swing com definição de layout e widgets no código java não me cai bem.<br />
De qualquer modo, gostei bastante da apresentação do Alexandre e dos colegas dele.</p>
<p>No fim do dia, decidi ir até à festa de Eclipse onde supostamente havia cerveja gratis mas nada disso. Pelo caminho conhecemos um texano muito simpático que nos acompanhou numas cervejas e que pensava que Portugal era na América do Sul. Simpáticamente explicámos onde ficava no mapa o que mesmo assim não impediu que ele ficasse realmente envergonhado com a bacorada. Mas foi uma conversa excelente mesmo no que toca a empreendorismo.<br />
O interessante da festa da eclipse foram na realidade 2 outros factos: em primeiro lugar, o director de marketing da Jetbrains, criadores do IntelliJ IDEA estava por lá, esse mesmo que oferece as licensas de IntelliJ que podemos distribuir nos eventos do nosso PT.JUG; também por lá estava o <a href="http://blog.springsource.com/main/author/rodj/">Rod Johnson</a>, criador do Spring a assinar autógrafos e com raparigas giras à volta à procura de festa: é mais uma razão para participar em projectos open-source.</p>
<p>E assim foi, mais um dia cansativo mas a tentar aproveitar ao máximo a experiência do JavaOne.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zonaj.org/2008/05/08/javaone-dia-2-em-grande/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Meta-Frameworks Java</title>
		<link>http://www.zonaj.org/2008/03/13/meta-frameworks-java/</link>
		<comments>http://www.zonaj.org/2008/03/13/meta-frameworks-java/#comments</comments>
		<pubDate>Thu, 13 Mar 2008 12:11:33 +0000</pubDate>
		<dc:creator>Ruben Badaró</dc:creator>
				<category><![CDATA[Ferramentas]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[dwr]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[spring]]></category>

		<guid isPermaLink="false">http://www.zonaj.org/?p=88</guid>
		<description><![CDATA[Afinal o que é, genericamente, uma Meta-Framework, ou melhor, um Meta-&#8221;Qualquer coisa&#8221;?
A palavra &#8220;meta&#8221;, para o efeito desta fantástica anologia, pode ser definida pela seguinte rigorosa proposição/teorema/axioma/lema/etc:
Meta-"Qualquer coisa" é ("Qualquer coisa")2
Ou seja, 
Meta-"Qualquer coisa" é "Qualquer coisa sobre "Qualquer coisa""
Assim, podemos ter coisas como Meta-dados (Dados sobre dados), Meta-Teoremas, Meta-Matemática e Meta-Frameworks.
Temos, portanto, uma Framework [...]]]></description>
			<content:encoded><![CDATA[<p>Afinal o que é, genericamente, uma Meta-Framework, ou melhor, um Meta-&#8221;Qualquer coisa&#8221;?<br />
A palavra &#8220;meta&#8221;, para o efeito desta fantástica anologia, pode ser definida pela seguinte rigorosa proposição/teorema/axioma/lema/etc:</p>
<pre>Meta-"Qualquer coisa" é ("Qualquer coisa")<sup>2</sup></pre>
<p>Ou seja, </p>
<pre>Meta-"Qualquer coisa" é "Qualquer coisa sobre "Qualquer coisa""</pre>
<p>Assim, podemos ter coisas como Meta-dados (Dados sobre dados), Meta-Teoremas, Meta-Matemática e Meta-Frameworks.</p>
<p>Temos, portanto, uma Framework sobre Framework(s). Mais precisamente, o sentido dado é de uma framework agregadora de outras frameworks, ao invés de um framework que descreve outras frameworks, algo que o prefixo meta poderia sugerir. </p>
<p>Epistemologia à parte, de que raio é que estou aqui a falar?</p>
<p>Estou a falar de agregadores de frameworks, neste caso em java, que conjugam um conjunto de frameworks base, ligando as diversas peças, e facilitando o uso por parte do utilizador. Desta forma os diversos componentes estão agregados de uma forma minimamente provada ou testada e o tempo de configuração do projecto é incrivelmente reduzido. Podem inclusivé servir como objecto de estudo para observar boas práticas.<br />
Embora seja contra tudo o que seja ideia de criar frameworks base internas a empresas e usar sempre produtos open-source, meta-frameworks são uteis  e não são mais que uma definição formal da pilha tecnológica do projecto ou, se a empresa trabalhar dessa forma, da pilha tecnológica da empresa.</p>
<p>Arrancar com um projecto deverá ser tão simples como gerar uma estrutura base do projecto, já com todos os componentes wired up e pronta a compilar. Também deve ser possível importar o projecto do IDE de eleição da pessoa. Repito, da pessoa. Ao contrário do que acontece em muitas empresas, na minha opinião o IDE deve ser uma , sendo que a maioria das frameworks disponibilizam pelo menos para Eclipse e Netbeans.</p>
<p>No paradigma web, poderiamos pois ter uma framework que junta uma tecnologia de mapeamento OR, uma de caching, uma de Dependency Injection/Inversion of Control, uma de apresentação, uma de templating e mais quantas sejam necessárias; mas podemos aplicar isto a qualquer paradigma que queiramos.</p>
<p>Destaco as seguintes frameworks (que são as que conheço):</p>
<ul>
<li>Keel</li>
<p>O <a href="http://www.keelframework.org/index.shtml">projecto Keel</a> está morto (não há actividade aparente desde 2004). Apenas é interessante por ter sido a primeira framework deste género com que tive contacto.</p>
<li>Appfuse</li>
<p>O <a href="http://appfuse.org/display/APF/Home">Appfuse</a> é provavelmente o projecto deste género com maior sucesso e maior disseminação. Liderado pelo <a href="http://raibledesigns.com/">Matt Raible</a>, reconhecido especialista em tecnologias web, o Appfuse é na realidade uma colectânea de meta-frameworks.<br />
Basea-se no <a href="http://maven.apache.org/">Maven</a>, usando <a href="http://maven.apache.org/guides/introduction/introduction-to-archetypes.html">archetypes</a>, para rapidamente criar esqueletos de projectos. Depois é possível gerar o projecto para o IntelliJ IDEA, Eclipse ou Netbeans e usar qualquer uma das bibliotecas disponíveis no <a href="http://appfuse.org/display/APF/Reference+Guide">Reference Guide</a> &#8211; é possível rapidamente montar um sistema com muito pouco trabalho.<br />
O Appfuse, como usa POJOs e Spring, possibilita criar CRUDs rapidamente com uma simples acção Maven.</p>
<li>IWebMvc</li>
<p>O <a href="http://code.google.com/p/internna/">IWebMvc</a> é a mais recente meta-framework de que tomei conhecimento. É criada por um senhor chamado Jose Noheda, que é o responsável pela integração com Spring no projecto DWR. É com naturalidade então que ele criou uma meta-framework que agrega <a href="http://getahead.org/">DWR</a> + <a href="http://dojotoolkit.org/">Dojo</a> + <a href="http://www.springframework.org/">Spring</a> + <a href="www.hibernate.org/">Hibernate</a>/JPA.<br />
Ainda está na sua <a href="http://internna.blogspot.com/2008/03/iwebmvc-first-preview-version-available.html">primeira versão</a>, mas dada a qualidade do DWR isto promete. Certamente uma meta-framework a analisar.</p>
<li>Parancoe</li>
<p><a href="http://www.parancoe.org/">Parancoe</a> é uma meta-framework criada pelo <a href="http://benfante.blogspot.com/">Lucio Benfante</a>, líder do <a href="www.jugpadova.it/">JUG Padova</a>.<br />
A pilha tecnológica de Parancoe é <a href="http://getahead.org/">DWR</a> + <a href="http://www.springframework.org/projects">Spring MVC</a> + <a href="http://www.springframework.org/">Spring</a> + <a href="www.hibernate.org/">Hibernate</a>/JPA que é uma solução que considero ser muito prática e uma excelente conjugação de tecnologias.<br />
A característica técnica mais destacada são os DAOs genéricos que não requerem implementação. Para quem gosta de DAOs, pode ser bastante útil.<br />
Para verem um site feito em Parancoe, podem consultar o <a href="http://www.jugevents.org/">JUGEvents</a> que usámos para os registos no PTJUG.
</ul>
<p>Penso que qualquer uma destas últimas vale a pena uma voltinha <img src='http://www.zonaj.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.zonaj.org/2008/03/13/meta-frameworks-java/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Ganhar dinheiro com open-source: Netbeans Innovators Grant</title>
		<link>http://www.zonaj.org/2008/02/08/ganhar-dinheiro-com-open-source-netbeans-innovators-grant/</link>
		<comments>http://www.zonaj.org/2008/02/08/ganhar-dinheiro-com-open-source-netbeans-innovators-grant/#comments</comments>
		<pubDate>Fri, 08 Feb 2008 18:30:39 +0000</pubDate>
		<dc:creator>Ruben Badaró</dc:creator>
				<category><![CDATA[Ferramentas]]></category>
		<category><![CDATA[Sem categoria]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[opensource]]></category>

		<guid isPermaLink="false">http://www.zonaj.org/?p=78</guid>
		<description><![CDATA[Li o post do Bruno Souza no DZone e achei uma excelente ideia. 
Quantas vezes não nos queixámos de esta ou aquela feature no nosso IDE favorito, sem no entanto fazer nada para a melhorar. Ou aquele plugin que gostavamos mesmo de ter.
A Sun criou a Netbeans Innovators Grant que permite que membros da comunidade [...]]]></description>
			<content:encoded><![CDATA[<p>Li o <a href="http://java.dzone.com/news/announcing-netbeans-innovators">post</a> do <a href="http://www.javaman.com.br/">Bruno Souza</a> no DZone e achei uma excelente ideia. </p>
<p>Quantas vezes não nos queixámos de esta ou aquela feature no nosso IDE favorito, sem no entanto fazer nada para a melhorar. Ou aquele plugin que gostavamos mesmo de ter.<br />
A Sun criou a <a href="http://www.netbeans.org/grant/">Netbeans Innovators Grant</a> que permite que membros da comunidade open-source ganhem dinheiro vivo com contributos para o projecto Netbeans. O que a Sun ganha são novas features implementadas para a plataforma a um custo bastante baixo e uma visibilidade pela publicidade que isto dos prémios por desenvolvimento atrai. Aliás, a jetbrains, criadores do fantástico IntelliJ IDEA, <a href="http://plugins.intellij.net/contest/prizes/">fizeram o mesmo há algum tempo atrás com sucesso</a>.</p>
<p>Resumidamente, serão atribuídas as seguintes bolsas:</p>
<ul>
<li>10x bolsas de $11.500 cada, para projectos &#8220;grandes&#8221;</li>
<li>10x bolsas de $2.000 cada, para projectos menores</li>
<li>2x gold awards no valor de $11.000, para atribuir a 2 projectos dos 20 anteriores que tenham muito sucesso</li>
<li>2x silver awards no valor de $5.000, para atribuir a 2 projectos dos 20 anteriores que tenham sucesso</li>
</ul>
<p>Para isto será necessário ter boas ideias. Uma vez escolhidas as 20 ideias, são atribuídas as bolsas às mesmas sendo que só se recebe o dinheiro no fim, se o projecto for concluído com sucesso. Ou seja, não será dinheiro fácil.</p>
<p>A submissão de propostas dura até dia 3 de Março. Podem consultar mais detalhes no <a href="http://www.netbeans.org/grant">site do Netbeans</a>.</p>
<p>Mesmo para gajos do Eclipse como eu isto pode vir a ser motivador <img src='http://www.zonaj.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.zonaj.org/2008/02/08/ganhar-dinheiro-com-open-source-netbeans-innovators-grant/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ctrl+Tab para alternar entre janelas do Eclipse</title>
		<link>http://www.zonaj.org/2007/11/08/69/</link>
		<comments>http://www.zonaj.org/2007/11/08/69/#comments</comments>
		<pubDate>Wed, 07 Nov 2007 23:15:14 +0000</pubDate>
		<dc:creator>Ricardo Antunes</dc:creator>
				<category><![CDATA[Ferramentas]]></category>
		<category><![CDATA[eclipse]]></category>

		<guid isPermaLink="false">http://www.zonaj.org/?p=69</guid>
		<description><![CDATA[Tenho por hábito usar o conjunto de teclas Ctrl+Tab para alternar entre tabs em várias aplicações que uso (Firefox, NetBeans, etc.)
No Eclipse, por omissão, esta funcionalidade está configurada para as teclas Ctrl+F6.
Para alterarem a configuração deste atalho no Eclipse (Europa) eis o que devem fazer :

Acedam ao menú do eclipse Window &#62; Preferences
 Seleccionem na [...]]]></description>
			<content:encoded><![CDATA[<p>Tenho por hábito usar o conjunto de teclas <code>Ctrl+Tab</code> para alternar entre <em>tabs</em> em várias aplicações que uso (Firefox, NetBeans, etc.)</p>
<p>No Eclipse, por omissão, esta funcionalidade está configurada para as teclas <code>Ctrl+F6</code>.</p>
<p>Para alterarem a configuração deste atalho no Eclipse (Europa) eis o que devem fazer :</p>
<ul>
<li>Acedam ao menú do eclipse <code>Window &gt; Preferences</code></li>
<li> Seleccionem na árvore <code>General &gt; Keys</code></li>
<li> Substituam &#8216;<em>type filter text</em>&#8216; por &#8216;<code>Next Editor</code>&#8216;</li>
<li> Seleccionem a opção que surge na lista de resultados</li>
<li> Seleccionem a caixa de texto <em>Bindings</em> e executem a combinação de teclas correspondentes ao atalho (<code>Ctrl+Tab</code>).</li>
<li>Podem continuar a adicionar mais atalhos bastando para isso que carreguem em mais combinações de teclas (ou seja, podem manter o <code>Ctrl+F6</code> original, caso pretendam)</li>
<li> Confirmem as alterações e já podem usar o vosso novo atalho.</li>
</ul>
<p>É claro que poderão usar este mesmo método para mudar outros atalhos do Eclipse.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zonaj.org/2007/11/08/69/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Liferay Portal &#8211; Configuração da ligação a uma base de dados MySQL</title>
		<link>http://www.zonaj.org/2007/10/22/todo/</link>
		<comments>http://www.zonaj.org/2007/10/22/todo/#comments</comments>
		<pubDate>Mon, 22 Oct 2007 20:37:49 +0000</pubDate>
		<dc:creator>Ricardo Antunes</dc:creator>
				<category><![CDATA[Ferramentas]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[portal]]></category>

		<guid isPermaLink="false">http://www.zonaj.org/?p=67</guid>
		<description><![CDATA[Tal como prometido no meu último artigo, aqui ficam as instruções para configurar o Liferay Portal para aceder a uma base de dados MySQL usando o ambiente de desenvolvimento com o eclipse.
1 &#8211; Criação da Base de Dados MySQL
Criem a base de dados com o nome lportal.
Poderão fazer isto utilizando o MySQL Administrator (a ferramenta [...]]]></description>
			<content:encoded><![CDATA[<p>Tal como prometido no meu <a href="http://www.zonaj.org/?p=59" target="_blank">último artigo</a>, aqui ficam as instruções para configurar o Liferay Portal para aceder a uma base de dados MySQL usando o ambiente de desenvolvimento com o eclipse.</p>
<h3>1 &#8211; Criação da Base de Dados MySQL</h3>
<p>Criem a base de dados com o nome <em>lportal</em>.</p>
<p>Poderão fazer isto utilizando o MySQL Administrator (a ferramenta de administração do MySQL) ou usando a seguinte linha de comando:<br />
<code>mysqladmin --default-character-set=utf8 create lportal</code></p>
<h3>2 &#8211; Configuração do acesso  à base de dados com o eclipse</h3>
<p>Abram o Data Source Explorer do eclipse (<code>Window -&gt; Show view -&gt; Data Source Explorer</code>).</p>
<p>Seleccionem o icon &#8216;New Connection Profile&#8217; ou usem o botão direito do rato do sobre &#8216;Databases&#8217; e depois seleccionem &#8216;New&#8217;.</p>
<p>Na janela &#8216;New Connection Profile&#8217; seleccionem o tipo <code>SQL Model-JDBC Connection.</code></p>
<p>No quadro seguinte indiquem um nome para o perfil (ex: &#8216;Liferay &#8211; Mysql&#8217;).</p>
<p>No último quadro, usem o botão de procura (&#8217;&#8230;&#8217;) na lista &#8220;Select a browser&#8221;.</p>
<ul> Adicionem uma nova definição:</p>
<li>localizem o template para bases de dados MySQL na árvore (<code>Database -&gt; MySQL -&gt; 5.0 -&gt; MySQL JDBC Driver</code>).</li>
<li>Alterem as definições do driver:
<ul>
<li>Alterem o nome para &#8216;Liferay MySQL Driver&#8217;;</li>
<li>Removam o driver  &#8216;default&#8217; e adicionem um novo Jar correspondente ao ficheiro <code>$WORKSPACE/ext/lib/development/mysql.jar</code> (<code>$WORKSPACE</code> corresponde à localização da pasta do vosso <em>workspace</em> no sistema de ficheiros);</li>
<li>Configurem o valor das propriedades de acesso (username, password, etc&#8230;) tendo em atenção que o valor do &#8216;Database Name&#8217; (e por consequência o final da linha do &#8216;Connection URL&#8217; deverá ser &#8216;<code>lportal</code>&#8216;.</li>
</ul>
</li>
<li> Confirmem as alterações e seleccionem agora este driver nas definições do driver  (<code>Database -&gt; MySQL -&gt; 5.0 -&gt; Liferay MySQL Driver</code>).</li>
</ul>
<p>Voltem de novo à janela de criação do perfil e validem que todas as informações estão de acordo com a vossa configuração (podem testar a ligação a partir desta janela).</p>
<h3>3 &#8211; Criação do modelo de dados</h3>
<p>Editem o ficheiro  <code>create-mysql.sql</code> na pasta <code>/sql/create</code> do projecto &#8216;ext&#8217;.<br />
Caso não tenham memoria para desperdiçar (é o meu caso) respondam afirmativamente quando o eclipse perguntar se pretendem desligar a validação de sintaxe do ficheiro.</p>
<p>No topo da janela de edição do ficheiro encontram a configuração do &#8216;Connection profile&#8217;. Seleccionem o tipo <code>Generic JDBC_1.x</code>, o driver  &#8216;<code>Liferay - Mysql</code>&#8216;  e a base de dados <code>lportal</code>.</p>
<p><strong>Nota</strong>: caso o status não seja &#8216;<code>Connected</code>&#8216; não vão conseguir ver o nome da base de dados.<br />
Neste caso devem aceder ao Data Source Explorer ( <code>Window -&gt; Show View -&gt; Data Source Explorer</code>), seleccionar a Database &#8216;Liferay &#8211; MySQL&#8217; e fazer connect (botão direito do rato)</p>
<p>Comentem as três primeiras linhas do ficheiro, uma vez que a base de dados já foi criada</p>
<p><code>-- drop database if exists lportal;<br />
-- create database lportal character set utf8;<br />
-- use lportal;</code></p>
<p>Gravem e executem o sql (ctrl+alt+X ou Execute All no menu contextual).</p>
<h3>4 &#8211; Configuração do datasource no tomcat</h3>
<p>Editem o ficheiro <code>Root.xml</code> localizado na pasta<code> servers/tomcat/conf/Catalina/localhost</code> do projecto &#8216;ext&#8217;.</p>
<p>Comentem o datasource do Hypersonic e  descomentem o datasource do MySQL.</p>
<p>Preencham os atributos <code>username</code> e <code>password</code> e, caso não estejam a usar os valores <em>default</em> do MySQL, editem tambem o valor do atributo <code>url</code>, de acordo com a vossa configuração.</p>
<p>Gravem as alterações.</p>
<h3>5 &#8211; Deploy da configuração para o servidor</h3>
<p>Copiem o ficheiro <code>Root.xml</code> para a pasta <code>conf/Catalina/localhost</code> do tomcat.</p>
<p>Copiem e o ficheiro <code>mysql.jar</code> para para a pasta <code>lib/ext</code> do tomcat.</p>
<p>Voltarei a falar sobre a forma correcta de fazer deploy destes ficheiros no meu próximo artigo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zonaj.org/2007/10/22/todo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Liferay Portal 4.3.1 &#8211; Instalação do ambiente de desenvolvimento no eclipse 3.3 (Europa)</title>
		<link>http://www.zonaj.org/2007/09/19/liferay-portal-instalacao-eclipse/</link>
		<comments>http://www.zonaj.org/2007/09/19/liferay-portal-instalacao-eclipse/#comments</comments>
		<pubDate>Wed, 19 Sep 2007 21:08:39 +0000</pubDate>
		<dc:creator>Ricardo Antunes</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[portal]]></category>

		<guid isPermaLink="false">http://www.zonaj.org/?p=59</guid>
		<description><![CDATA[ O Liferay Portal é uma solução empresarial de portal, open-source, desenvolvida em Java.
Precisei recentemente de instalar o ambiente de desenvolvimento. A documentação disponível refere-se à versão 4.2, está desactualizada e por isso contem bastantes incorrecções.
Como o processo não é lá muito intuitivo resolvi fazer uma lista dos passos necessários para concluir a instalação. Aqui [...]]]></description>
			<content:encoded><![CDATA[<p> O <a href="http://www.liferay.com" target="_blank">Liferay Portal</a> é uma solução empresarial de portal, open-source, desenvolvida em Java.</p>
<p>Precisei recentemente de instalar o ambiente de desenvolvimento. A documentação disponível refere-se à versão 4.2, está desactualizada e por isso contem bastantes incorrecções.</p>
<p>Como o processo não é lá muito intuitivo resolvi fazer uma lista dos passos necessários para concluir a instalação. Aqui fica:</p>
<h3>1 &#8211; Instalar o Liferay Portal</h3>
<ul>
<li>Comecem por fazer o download de um dos <em>bundles</em> do Liferay disponíveis no endereço <a href="http://www.liferay.com/web/guest/downloads" target="_blank">http://www.liferay.com/web/guest/downloads</a>. Eu optei pela versão recomendada, ou seja, com o Tomcat.</li>
<li>Criem uma pasta no vosso filesystem para servir como base da instalação &#8211; <code>$LIFERAY_HOME</code>. Dêem-lhe um nome sugestivo como por exemplo &#8216;liferay-portal&#8217;.</li>
<li>Dentro desta pasta, criem mais duas pastas, uma para conter a instalação do <em>bundle</em> do Liferay e outra para servir como <em>workspace</em> do eclipse (ex: <code>$LIFERAY_HOME/tomcat</code> e <code>$LIFERAY_HOME/workspace</code>).</li>
<li>Descompactem o conteúdo do ficheiro do <em>bundle</em> para a pasta <code>$LIFERAY_HOME</code><code>/tomcat</code>.</li>
</ul>
<h3>2 &#8211; Testar a instalação</h3>
<ul>
<li>Executem o ficheiro <code>$LIFERAY_HOME</code><code>/tomcat/bin/startup.bat</code> (ou <code>startup.sh</code>).</li>
<li>Abram um browser e apontem para o endereço <code>http://localhost:8080/</code>. Se tudo estiver bem devem conseguir ver a página inicial do <em>liferay-portal</em>.</li>
<li>Testar o login com as seguintes credenciais:<br />
[<code>user</code>]: <code>test@liferay.com</code><br />
[<code>pass</code>]: <code>test</code></li>
</ul>
<h3>3 &#8211; Importar o projecto para o eclipse a partir do repositório SVN</h3>
<ul>
<li>Abram o eclipse.</li>
<li>Criem um novo <em>workspace</em> na pasta <code>$LIFERAY_HOME/workspace</code> &#8211; <code>$WORKSPACE</code><br />
<code>File</code> &gt; <code>Switch Workspace</code> &gt; <code>Other </code> (indiquem a pasta <code>$WORKSPACE</code> e confirmem).</li>
<li> Importem o projecto a partir do SVN : <code>File</code> &gt; <code>Import</code> &gt; <code>SVN </code>&gt; <code>Projects from SVN</code>.
<ul>
<li>Como URL indiquem o endereço <code>https://lportal.svn.sourceforge.net/svnroot/lportal</code>.</li>
<li>Seleccionem o projecto &#8216;<code>portal</code>&#8216; e dentro deste o ramo &#8216;<code>trunk</code>&#8216;.</li>
<li>Seleccionem a opção &#8216;<code>Check out as a project with the name specified:</code>&#8216; e indiquem como nome do projecto &#8216;<code>liferay-portal</code>&#8216;.</li>
<li>Deixem a opção &#8216;<code>Checkout recursively</code>&#8216; seleccionada.</li>
<li>Aproveitem agora para fazer uma pausa enquanto o eclipse faz o <em>checkout</em> do projecto. No final deverá aparecer o projecto &#8216;<code>portal</code>&#8216; no <em>Project Explorer</em> do eclipse.</li>
</ul>
<p>Nota: Se tiverem problemas no checkout voltem a repetir os passos anteriores mas desta vez desseleccionem a recursividade (<code>Checkout recursively</code>). O checkout termina rapidamente. Depois usem a opção <em>team syncronize/update</em> para obterem o projecto completo. Isto permite ter mais controlo sobre a operação pois, neste caso, é possível interromper o processo a qualquer altura e retomar posteriormente  desde o ponto onde ficou.</li>
<li>Fechem o eclipse.</li>
</ul>
<h3>4 &#8211; Gerar e configurar o ambiente de desenvolvimento</h3>
<p>Antes de dar inicio a este passo devem verificar se têm o <a href="http://ant.apache.org/"><code>ant 1.7.0</code></a> instalado. O build não funciona com versões anteriores.</p>
<p>O <em>Liferay</em> usa o <a href="http://jikes.sourceforge.net/"><code>Jikes</code></a> como compilador <em>default</em>. Se o pretendem usar e ainda não o têm instalado, agora é a altura ideal para o fazerem <img src='http://www.zonaj.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .<br />
No meu caso, a natural preguiça levou-me a optar pelo habitual <code>javac</code>.</p>
<ul>
<li>Abram uma consola de linha de comando na pasta <code>$WORKSPACE/portal</code>.</li>
<li>Criem o ficheiro <code>build.$USER.properties</code>, onde <code>$USER</code> deve ser substituido pelo vosso username na máquina ou, alternativamente, o nome da própria máquina, com o seguinte conteúdo:<br />
<code>lp.ext.dir=$WORKSPACE/ext<br />
lp.eclipse.project.name=liferay-ext<br />
javac.fork=true<br />
javac.memoryMaximumSize=512m<br />
javac.compiler=modern</code> (ignorem esta se estiverem a usar o <code>jikes</code> e não se esqueçam de substituir <code>$WORKSPACE</code> pelo <em>path </em>correspondente).</li>
<li>Executem o comando:<br />
<code>ant clean start build-ext</code></li>
<li>Aproveitem para fazer mais uma pausa <img src='http://www.zonaj.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  .<br />
Após a conclusão do <em>build</em>, deve existir uma pasta <code>ext</code> no vosso <em>workspace</em>.</li>
<li>Nesta pasta (<code>$WORKSPACE/ext</code>) criem o ficheiro<br />
<code>app.server.$USER.properties</code> onde, mais uma vez, <code>$USER</code> deve ser substituido pelo vosso username na máquina ou, alternativamente, o nome da própria máquina, e com o seguinte conteúdo :<br />
<code>app.server.parent.dir=    $LIFERAY_HOME<br />
app.server.tomcat.dir=${app.server.parent.dir}/tomcat</code><br />
(se estiverem a instalar um <em>bundle</em> diferente devem consultar os nomes das <em>properties </em>no ficheiro <code>app.server.properties</code>).</li>
<li>Caso <strong>não </strong>estejam a usar o <code>jikes</code> como compilador devem ainda criar o ficheiro <code>build.$USER.properties</code>, com o conteúdo:<br />
<code>javac.compiler=modern<br />
javac.fork=true<br />
javac.memoryMaximumSize=256m<br />
</code></li>
<li>Ainda na mesma pasta (<code>$WORKSPACE/ext</code>), executem o comando:<br />
<code>ant deploy</code>.</li>
<li>Mais uma pausa (esta mais pequena).</li>
</ul>
<h3>5 &#8211; Importar o ambiente de desenvolvimento para o eclipse</h3>
<ul>
<li>Voltem a abrir o eclipse.</li>
<li>Importem o projecto ext (<code>File</code> &gt; <code>Import</code> &gt; <code>Other</code> &gt; <code>Existing Folder As New Project</code>). Seleccionem a pasta <code>$LIDERAY_HOME/ext</code>.</li>
<li>Devem ter agora dois projectos no vosso <em>workspace</em> &#8211; <code>portal</code> e <code>ext</code>.</li>
<li>Seleccionem o projecto <code>ext</code> e acedam às suas <code>properties</code>.</li>
<li>Seleccionem a <em>tab</em> &#8216;<em>builders</em>&#8216;.
<ul>
<li>criem um novo <em>builder </em> (botão <em>new</em>).</li>
<li>Seleccionem o <code>Ant Builder</code>.</li>
<li>Nas propriedades do <em>builder</em> indiquem como <em>buildfile</em> o ficheiro <code>build.xml</code> que se encontra na pasta raiz do projecto <code>ext</code> (<code>$WORKSPACE/ext</code>).</li>
<li>De volta à <em>tab</em> &#8216;<em>builder</em>&#8216; desseleccionem o &#8216;<code>Java Builder</code>&#8216;. O eclipse pede uma confirmação: aceitem!</li>
</ul>
</li>
<li>Se tiverem a opção de &#8216;<em>auto-build</em>&#8216; do eclipse activada, o eclipse deve dar inicio à compilação do projecto e&#8230; mais uma pausa.</li>
</ul>
<h3>6 &#8211; Configurar o ambiente de execução</h3>
<ul>
<li>Acedam novamente às <em>properties</em> do projecto <code>ext</code>.</li>
<li>Seleccionem a <em>tab</em> &#8216;<em>Run/Debug Settings</em>&#8216;.</li>
<li>No quadro &#8216;<code>Create, manage and run configurations</code>&#8216; seleccionem a opção &#8216;<code>Run on Server</code>&#8216; e depois o <em>icon</em> &#8216;<code>new</code>&#8216;.</li>
<li>Seleccionem a configuração &#8216;<code>tomcat</code>&#8216; (ou outra, dependendo do <em>bundle</em> que estão a instalar).</li>
<li>Nas propriedades da configuração seleccionem a <em>tab</em> <em>Arguments</em>.
<ul>
<li>Substituam o valor dos argumentos<br />
<code>-Djava.endorsed.dirs=${workspace_loc:ext/servers/tomcat/common/endorsed} -Dcatalina.base=${workspace_loc:ext/servers/tomcat}<br />
-Dcatalina.home=${workspace_loc:ext/servers/tomcat} -Djava.io.tmpdir=${workspace_loc:ext/servers/tomcat/temp}<br />
</code>por<br />
<code>-Djava.endorsed.dirs=${workspace_loc}/../tomcat/common/endorsed -Dcatalina.base=${workspace_loc}/../tomcat<br />
-Dcatalina.home=${workspace_loc}/../tomcat -Djava.io.tmpdir=${workspace_loc}/../tomcat/temp<br />
</code></li>
<li>No &#8216;<em>Working Directory</em>&#8216; indiquem o <em>path</em> para o directorio &#8216;bin&#8217; do tomcat (<code>$LIFERAY_HOME/tomcat/bin</code>).</li>
</ul>
</li>
<li>Ainda nas propriedades da configuração, seleccionem a <em>tab </em><em>Classpath</em>
<ul>
<li>Removam a entrada que está marcada como erro (<code>tools.jar</code>).</li>
<li>Adicionem o <code>bootstrap.jar</code> do <code>tomcat/bin</code> como <em>jar externo</em> e removam a entrada existente para o mesmo ficheiro.</li>
</ul>
</li>
<li>Confirmem as alterações.</li>
<li>Executem o projecto (<em>Run</em>). Devem ver o output do tomcat a ser dirigido para a consola do eclipse.</li>
</ul>
<p>Confirmem que tudo está a funcionar seguindo os passos indicados no ponto 2. É claro que não precisam de executar o tomcat, o eclipse já tratou disso.</p>
<p>O próximo passo será configurar a base de dados, mas isso ficará para um outro post <img src='http://www.zonaj.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.zonaj.org/2007/09/19/liferay-portal-instalacao-eclipse/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Webcast Mylyn</title>
		<link>http://www.zonaj.org/2007/07/20/webcast-mylyn/</link>
		<comments>http://www.zonaj.org/2007/07/20/webcast-mylyn/#comments</comments>
		<pubDate>Fri, 20 Jul 2007 17:44:41 +0000</pubDate>
		<dc:creator>Ruben Badaró</dc:creator>
				<category><![CDATA[Ferramentas]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[gtd]]></category>

		<guid isPermaLink="false">http://www.zonaj.org/?p=46</guid>
		<description><![CDATA[Tenho tido pouco tempo e tinha intenções falar do Eclipse Mylyn (ex-Mylar) que é uma ferramenta excelente e que pode aumentar muito &#8211; mas mesmo muito &#8211; a produtividade.
Mais fácil do que ser eu a explicar, é ver mesmo o webcast que é superficial mas porreiro.

]]></description>
			<content:encoded><![CDATA[<p>Tenho tido pouco tempo e tinha intenções falar do <a href="http://www.eclipse.org/mylyn/">Eclipse Mylyn</a> (ex-Mylar) que é uma ferramenta excelente e que pode aumentar muito &#8211; mas mesmo muito &#8211; a produtividade.<br />
Mais fácil do que ser eu a explicar, é ver mesmo o webcast que é superficial mas porreiro.</p>
<p><embed type="application/x-shockwave-flash" src="http://www.podtech.net/player/podtech-player.swf?bc=ec074a30954f4eff87139b19547ace32" flashvars="content=http://media1.podtech.net/media/2007/07/PID_011810/Podtech_eclipse_europa_mylyn_demo.flv&#038;totalTime=1092000&#038;permalink=http://www.podtech.net/home/3514/europa-mylyn-demo-task-management-and-context-filtering-for-teams&#038;breadcrumb=ec074a30954f4eff87139b19547ace32" height="299" width="480" allowScriptAccess="always" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zonaj.org/2007/07/20/webcast-mylyn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
