<?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>Bruno Pereira &#187; open source</title>
	<atom:link href="http://brunopereira.org/category/open-source/feed/" rel="self" type="application/rss+xml" />
	<link>http://brunopereira.org</link>
	<description>Open source, Java, web, python, client-side e outros hobbies :)</description>
	<lastBuildDate>Thu, 20 Oct 2011 00:47:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>A importância do open source profissional</title>
		<link>http://brunopereira.org/2009/05/18/a-importancia-do-open-source-profissional/</link>
		<comments>http://brunopereira.org/2009/05/18/a-importancia-do-open-source-profissional/#comments</comments>
		<pubDate>Mon, 18 May 2009 05:28:23 +0000</pubDate>
		<dc:creator>blpsilva</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[posts em português]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[jboss]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[spring source]]></category>

		<guid isPermaLink="false">http://brunopereira.org/?p=340</guid>
		<description><![CDATA[Continuando o tema do meu artigo anterior, agora quero falar sobre a importância do open source profissional.
Na última quinta-feira eu fui na palestra do Bruno Borges no RioJUG, sobre Apache Camel. A palestra em si foi bem legal, pois eu já conhecia um pouco do Apache Camel e pude ver algumas coisas a mais. Mas [...]]]></description>
			<content:encoded><![CDATA[<p>Continuando o tema do <a href="http://brunopereira.org/2009/05/18/as-diferentes-culturas-open-source-ubuntu-x-debian/" target="_blank">meu artigo anterior</a>, agora quero falar sobre a importância do open source profissional.</p>
<p>Na última quinta-feira eu fui na palestra do <a href="http://blog.brunoborges.com.br/" target="_blank">Bruno Borges</a> no <a href="http://www.riojug.org" target="_blank">RioJUG</a>, <a href="http://www.riojug.org/blog/?p=79" target="_blank">sobre Apache Camel</a>. A palestra em si foi bem legal, pois eu já conhecia um pouco do <a href="http://camel.apache.org/" target="_blank">Apache Camel</a> e pude ver algumas coisas a mais. Mas o ponto específico que eu quero abordar é um comentário que o Bruno fez, que diverge da minha postura em relação a open source.</p>
<p>Ele comentou que tenta sempre utilizar produtos <a href="http://www.apache.org" target="_blank">Apache</a>, evitando produtos open source que tenham vínculo com alguma empresa, como <a href="http://www.jboss.org/" target="_blank">JBoss</a>, <a href="http://www.springsource.com/" target="_blank">SpringSource</a>, entre outras. Não me recordo do motivo exato, mas a razão principal que ele explicou é o fato da Apache Software Foundation ser uma fundação composta de pessoas, em vez de ser uma empresa com fins comerciais.</p>
<p>Eu tenho uma postura diferente da dele em relação a open source. Eu gosto muito e tenho um respeito enorme pela fundação Apache. Já usei inúmeros produtos Apache e certamente continuarei usando por muito tempo. Entretanto, já usei vários produtos <a href="http://www.jboss.org" target="_blank">JBoss</a> e vários componentes do <a href="http://www.springsource.org/" target="_blank">Spring</a>, e acho muito importante e saudável a existência dessas empresas.</p>
<p>A história do movimento open source tem vários elementos &#8220;românticos&#8221; e &#8220;filosóficos&#8221;, e essa característica ainda é muito presente em várias comunidades hoje em dia. Entretanto, com o crescimento do Linux, Java, Python, Ruby e outras tecnologias, existe hoje um mercado enorme de trabalho e negócios em torno do software livre.</p>
<p>O surgimento desse mercado naturalmente trouxe a participação de muitas empresas que vivem de software livre atualmente. Sei que há pessoas que enxergam open source e capitalismo como coisas opostas, mas na minha opinião essa visão é míope. Open source é um modelo de desenvolvimento de software e oferta de produtos e serviços. A busca do lucro é o que move nossas empresas, e isso não é diferente para quem atua com software livre.</p>
<p>O surgimento das empresas profissionais open source foi importantíssimo para o amadurecimento das tecnologias e dos profissionais. Se o movimento open source continuasse restrito ao meio acadêmico, o nível de competição no mercado de software seria muito menor, e o avanço tecnológico teria sido bem mais lento.</p>
<p>Além disso, minha postura profissional é de tentar sempre entregar os melhores resultados para os clientes e para a empresa em que trabalho. Em algumas situações pode ser mais adequado usar open source, em outras pode ser necessário usar software proprietário. Temos que nos adequar às necessidades dos clientes, em vez de esperar que eles se adeqüem às nossas preferências.</p>
<p>No meu ponto de vista, empresas como JBoss e SpringSource contribuíram e contribuem muito no processo de profissionalização do software livre. A existência delas criou um mercado fortíssimo em torno do software livre, e eu só tenho a agradecer por isso.</p>
]]></content:encoded>
			<wfw:commentRss>http://brunopereira.org/2009/05/18/a-importancia-do-open-source-profissional/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>As diferentes culturas open source &#8211; Ubuntu x Debian</title>
		<link>http://brunopereira.org/2009/05/18/as-diferentes-culturas-open-source-ubuntu-x-debian/</link>
		<comments>http://brunopereira.org/2009/05/18/as-diferentes-culturas-open-source-ubuntu-x-debian/#comments</comments>
		<pubDate>Mon, 18 May 2009 04:20:34 +0000</pubDate>
		<dc:creator>blpsilva</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[posts em português]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian lenny]]></category>
		<category><![CDATA[kubuntu]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://brunopereira.org/?p=339</guid>
		<description><![CDATA[Eu sempre gostei muito de open source, e durante a maior parte da minha carreira trabalhei com open source em vários níveis. Com freqüência eu penso sobre vários aspectos da cultura open source, e recentemente tive contato com 2 coisas em particular que eu gostaria de destacar. Falarei sobre uma delas nesse artigo, e sobre [...]]]></description>
			<content:encoded><![CDATA[<p>Eu sempre gostei muito de open source, e durante a maior parte da minha carreira trabalhei com open source em vários níveis. Com freqüência eu penso sobre vários aspectos da cultura open source, e recentemente tive contato com 2 coisas em particular que eu gostaria de destacar. Falarei sobre uma delas nesse artigo, e sobre a outra <a href="http://brunopereira.org/2009/05/18/a-importancia-do-open-source-profissional/" target="_blank">no artigo seguinte</a>.</p>
<p>A primeira delas diz respeito à diferença de filosofia entre o <a href="http://www.ubuntu.com" target="_blank">Ubuntu</a> e o <a href="http://www.debian.org" target="_blank">Debian</a>. Eu uso <a href="http://www.kubuntu.org" target="_blank">Kubuntu</a> em casa há quase 3 anos. É a minha distribuição preferida, depois de já ter usado várias desde 2003, quando comecei a usar Linux em casa.</p>
<p>Na sexta-feira chegou na <a href="http://www.concretesolutions.com.br" target="_blank">Concrete</a> o meu laptop para uso diário, um <a href="http://www1.la.dell.com/content/products/productdetails.aspx?c=br&amp;cs=brbsdt1&amp;id=vostronb_1510&amp;l=pt&amp;s=bsd" target="_blank">Dell Vostro 1510</a>, e nesse fim de semana eu instalei nele o <a href="http://wiki.debian.org/DebianLenny" target="_blank">Debian Lenny</a> e configurei tudo que eu precisava para já começar a trabalhar com ele na segunda-feira. Instalei o Debian porque ele foi definido como distribuição padrão da empresa, então tive que abrir mão do Kubuntu.</p>
<p>O Kubuntu é baseado no Debian, então a grande maioria das coisas não muda entre os 2. Contudo, como diz o ditado: &#8220;O diabo está nos detalhes&#8221;. As notáveis diferenças entre o Debian e o Kubuntu são as coisas que o Kubuntu facilita demais, como configuração de conexão wireless, drivers multimídia do teclado, entre outras coisas. Nesses detalhes você consegue perceber claramente a diferença de cultura, pois o Debian tem uma postura quase religiosa quanto ao uso de softwares que não sejam &#8220;totalmente open source&#8221;.</p>
<p>Já no Ubuntu, a postura é de usar open source ao máximo, mas facilitando a vida dos usuários. Assim, quando você precisa de um driver ou componente proprietário, o Ubuntu te avisa que não é totalmente open source, mas já prepara tudo para que você tenha o mínimo de aborrecimento. Isso faz toda a diferença, pois muita gente (como eu) quer usar um desktop Linux que &#8220;simplesmente funcione&#8221;.</p>
<p>Quando eu comecei a usar Linux em casa eu gostava de fuçar e conhecer cada detalhe, como aprendizado mesmo. Isso foi ótimo para mim, e certamente me ajuda muito profissionalmente. Porém, hoje meu foco é outro, e eu quero que minha máquina &#8220;simplesmente funcione&#8221;, sem ter que estudar para configurar coisas cotidianas. O Ubuntu ganhou uma fatia enorme dos usuários Linux porque oferece isso. Já o Debian te oferece ricas aulas sobre o &#8220;pensamento verdadeiramente open source&#8221; e sobre os detalhes das entranhas do Linux. Mas a contrapartida é que você vai ter que estudar muito pra fazer coisas que no Ubuntu são triviais.</p>
<p>Cada um tem a sua própria visão e postura sobre open source, e devemos respeitar as diferentes formas de pensar. Eu particularmente me identifico muito mais com a visão &#8220;open source profissional&#8221;, sobre a qual falarei no próximo artigo.</p>
]]></content:encoded>
			<wfw:commentRss>http://brunopereira.org/2009/05/18/as-diferentes-culturas-open-source-ubuntu-x-debian/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>As diferentes facetas de vendor lock-in</title>
		<link>http://brunopereira.org/2009/03/26/as-diferentes-facetas-de-vendor-lock-in/</link>
		<comments>http://brunopereira.org/2009/03/26/as-diferentes-facetas-de-vendor-lock-in/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 01:37:15 +0000</pubDate>
		<dc:creator>blpsilva</dc:creator>
				<category><![CDATA[carreira]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[posts em português]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[concrete solutions]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[Sun]]></category>
		<category><![CDATA[vendor lock-in]]></category>

		<guid isPermaLink="false">http://brunopereira.org/?p=301</guid>
		<description><![CDATA[Durante muito tempo trabalhei com desenvolvimento de software customizado, principalmente utilizando componentes open source. Nos últimos meses venho tendo uma experiência intensa com produtos comerciais, de código fechado.
Uma questão muito importante no mercado de software é o lock-in de fornecedores, no qual os clientes às vezes se vêem obrigados a manter um fornecedor de software [...]]]></description>
			<content:encoded><![CDATA[<p>Durante muito tempo trabalhei com desenvolvimento de software customizado, principalmente utilizando componentes open source. Nos últimos meses venho tendo uma experiência intensa com produtos comerciais, de código fechado.</p>
<p>Uma questão muito importante no mercado de software é o lock-in de fornecedores, no qual os clientes às vezes se vêem obrigados a manter um fornecedor de software mesmo sem estarem satisfeitos com o serviço/produto oferecido. Discussões em torno disso são muito freqüentes quando comparamos o modelo de desenvolvimento customizado com o trabalho em torno de produtos.</p>
<p>Além destas duas opções já antigas, há uma terceira na moda: <a href="http://en.wikipedia.org/wiki/Cloud_computing" target="_blank">Cloud Computing</a>.</p>
<p>Embora eu tenha certas preferências pessoais em alguns cenários, não aponto nenhum desses modelos como o mais indicado de uma maneira geral.</p>
<p>Quando você compra serviços de software customizado, teoricamente o seu investimento inicial será mais baixo do que comprando um produto, mas deve-se avaliar o quão produtivo é o produto, o quanto de esforço você terá para desenvolver de forma customizada, qual é o &#8220;time-to-market&#8221; desejado, <a href="http://pt.wikipedia.org/wiki/Retorno_sobre_investimento" target="_blank">ROI</a>, entre outros fatores. Isso varia demais de um tipo de projeto para o outro, e depende do grau de commoditização dos produtos e do conhecimento do domínio.</p>
<p>Além destes fatores, o lock-in é uma característica importantíssima que deve estar sempre na cabeça das pessoas. Existe uma tendência a achar que o fato de você comprar software proprietário vai necessariamente te prender a um fornecedor. Dependendo do cenário realmente existe uma dificuldade enorme em trocar, mas em outros casos isso é bem mais tranqüilo.</p>
<p>A questão é que com software customizado isso também ocorre muito. Software customizado pode amarrar o cliente até mais do que um produto comercial, dependendo de como for construído, e da participação do cliente no processo.</p>
<p>Sobre Cloud Computing, existe uma enorme febre nesse momento. Todo mundo falando em colocar aplicações &#8220;na nuvem&#8221;, nos ganhos de custo-benefício, na escalabilidade, e muitas outras &#8220;ilidades&#8221;. A proposta realmente é tentadora. Você rodar suas aplicações numa infra-estrutura gerenciada por experts do <a href="http://www.google.com" target="_blank">Google</a>, da <a href="http://www.amazon.com" target="_blank">Amazon</a> ou da <a href="http://www.sun.com" target="_blank">Sun</a> parece um sonho realizado. Se você pensar que eles compram hardware muito mais barato que a gente e já têm enormes parques tecnológicos com capacidade ociosa, praticamente fica impossível argumentar contra isso.</p>
<p>Para muitas empresas isso pode realmente fazer sentido. Colocar &#8220;na nuvem&#8221; serviços que não sejam muito críticos, para empresas de porte limitado. Agora, vamos pensar em empresas que já têm uma enorme gama de aplicações em produção, em datacenters existentes, com políticas de segurança, privacidade, etc.</p>
<p>Será que seria fácil e conveniente ligar a sua empresa &#8220;na nuvem&#8221;, expondo vários dados críticos e sigilosos, e trazendo riscos de segurança para seu ambiente? Pensem num cliente que já tem um site, uma intranet, ERP, e várias outras aplicações em produção atendendo a fins distintos.</p>
<p>Será que um diretor de tecnologia se sente seguro em abrir sua infra-estrutura para se integrar com redes, computadores e pessoas que ninguém sabe afirmar ao certo onde estão? Você teria certeza de que aqueles dcumentos valiosíssimos da sua proposta comercial não estariam acessíveis pelos concorrentes? Pense em quantas VPNs e configurações complexas de segurança seriam necessárias para adequação a esta nova topologia. Já não é tão sexy, não é mesmo?</p>
<p>Além deste aspecto, o hype em torno de Cloud Computing é tão grande que já estão sendo discutidas possibilidades de interoperabilidades entre Clouds. O mercado ainda está longe de amadurecer, e já vemos discussões comuns em mercados consolidados. Do meu ponto de vista, Cloud Computing pode ser muito interessante, mas é necessário um grau de confiança no fornecedor em níveis que eu raras vezes vi entre pessoas, e muito menos entre empresas.</p>
<p>Depois de tantos anos, comprar software continua muito difícil, e exige um conhecimento cada vez mais sofisticado. O segredo dos projetos melhor sucedidos que eu já vi é a parceria verdadeira entre os fornecedores e os clientes. Projetos de software que dão certo são os que têm pessoas competentes, bem intencionadas e ambiciosas em ambos os lados.</p>
<p>Os melhores fornecedores de software aproveitam cada projeto para trazer o máximo ROI para o cliente, e então conquistar sua confiança e parceria para mais projetos no futuro. E os melhores clientes são os que agem como donos do negócio de suas empresas. Eles buscam todas as oportunidades de melhorar os resultados das empresas, e com isso alavancar suas próprias carreiras.</p>
<p>A <a href="http://www.concretesolutions.com.br" target="_blank">Concrete</a>, modéstia à parte, é um baita fornecedor de software. E eu estou tendo a chance de atuar em projetos diferenciados e não há nada mais contagiante para um profissional de software. Estou tendo a chance e a responsabilidade de trazer resultados expressivos para a empresa, e se eu for realmente competente isso trará muitas vitórias para a empresa e para mim (bom, pelo menos eu espero.. <img src='http://brunopereira.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ).</p>
<p>Faca nos dentes, sempre em frente <img src='http://brunopereira.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://brunopereira.org/2009/03/26/as-diferentes-facetas-de-vendor-lock-in/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Funcionamento do Lazy Load no Ibatis</title>
		<link>http://brunopereira.org/2008/12/04/funcionamento-do-lazy-load-no-ibatis/</link>
		<comments>http://brunopereira.org/2008/12/04/funcionamento-do-lazy-load-no-ibatis/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 23:22:36 +0000</pubDate>
		<dc:creator>blpsilva</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[posts em português]]></category>
		<category><![CDATA[banco de dados]]></category>
		<category><![CDATA[cglib]]></category>
		<category><![CDATA[ibatis]]></category>
		<category><![CDATA[lazy load]]></category>

		<guid isPermaLink="false">http://brunopereira.org/?p=260</guid>
		<description><![CDATA[A documentação do Ibatis não explica adequadamente como funciona o mecanismo de Lazy Load do framework, e como este conhecimento é importante e útil, resolvi explicar brevemente por aqui.
Para habilitar o mecanismo de lazy load, é necessário declarar o elemento settings no sql-map-config, como o exemplo a seguir:

&#60;sqlMapConfig&#62;
	&#60;settings
		cacheModelsEnabled=&#34;true&#34;
		enhancementEnabled=&#34;true&#34;
		lazyLoadingEnabled=&#34;true&#34;
		maxRequests=&#34;128&#34;
		maxSessions=&#34;10&#34;
		maxTransactions=&#34;5&#34;
		useStatementNamespaces=&#34;false&#34;
		defaultStatementTimeout=&#34;5&#34;	/&#62;
&#60;/sqlMapConfig&#62;

Nestas configurações, dois elementos são importantes. O parâmetro [...]]]></description>
			<content:encoded><![CDATA[<p>A documentação do <a href="http://ibatis.apache.org" target="_blank">Ibatis</a> não explica adequadamente como funciona o mecanismo de Lazy Load do framework, e como este conhecimento é importante e útil, resolvi explicar brevemente por aqui.</p>
<p>Para habilitar o mecanismo de lazy load, é necessário declarar o elemento <strong><em>settings</em></strong> no sql-map-config, como o exemplo a seguir:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;sqlMapConfig<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;settings</span></span>
<span style="color: #009900;">		<span style="color: #000066;">cacheModelsEnabled</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span>
<span style="color: #009900;">		<span style="color: #000066;">enhancementEnabled</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span>
<span style="color: #009900;">		<span style="color: #000066;">lazyLoadingEnabled</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span>
<span style="color: #009900;">		<span style="color: #000066;">maxRequests</span>=<span style="color: #ff0000;">&quot;128&quot;</span></span>
<span style="color: #009900;">		<span style="color: #000066;">maxSessions</span>=<span style="color: #ff0000;">&quot;10&quot;</span></span>
<span style="color: #009900;">		<span style="color: #000066;">maxTransactions</span>=<span style="color: #ff0000;">&quot;5&quot;</span></span>
<span style="color: #009900;">		<span style="color: #000066;">useStatementNamespaces</span>=<span style="color: #ff0000;">&quot;false&quot;</span></span>
<span style="color: #009900;">		<span style="color: #000066;">defaultStatementTimeout</span>=<span style="color: #ff0000;">&quot;5&quot;</span>	<span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/sqlMapConfig<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Nestas configurações, dois elementos são importantes. O parâmetro <strong><em>lazyLoadingEnabled</em></strong> habilita globalmente o uso de lazy loading no framework. Sem declarar esse parâmetro, todas as buscas serão <strong><em>eager</em></strong>, possivelmente gerando uma grande quantidade de acessos ao banco, dependendo da estrutura de classes.</p>
<p>O outro parâmetro importante é o <strong><em>enhancementEnabled</em></strong>. Com ele habilitado, o Ibatis usa proxies <a href="http://cglib.sourceforge.net/">cglib</a> no mecanismo de carregamento das classes, e ele aumenta o escopo do carregamento lazy. </p>
<p>Com o enhancement desligado, serão carregadas de forma lazy apenas as coleções de um objeto, como a lista de produtos de um pedido. Com o enhancement ligado, é feito também o carregamento lazy de atributos complexos de um objeto, como o endereço de entrega do pedido.</p>
<p>Este mecanismo é bem simples de utilizar, e ajuda bastante, pois não precisamos tratar disso no código da aplicação. </p>
]]></content:encoded>
			<wfw:commentRss>http://brunopereira.org/2008/12/04/funcionamento-do-lazy-load-no-ibatis/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>m2eclipse is the most unstable Eclipse plugin I&#8217;ve ever used</title>
		<link>http://brunopereira.org/2008/11/16/m2eclipse-is-the-most-unstable-eclipse-plugin-ive-ever-used/</link>
		<comments>http://brunopereira.org/2008/11/16/m2eclipse-is-the-most-unstable-eclipse-plugin-ive-ever-used/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 01:16:05 +0000</pubDate>
		<dc:creator>blpsilva</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[eclipse europa]]></category>
		<category><![CDATA[eclipse ganymede]]></category>
		<category><![CDATA[m2eclipse]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[pom]]></category>

		<guid isPermaLink="false">http://brunopereira.org/?p=257</guid>
		<description><![CDATA[I gave up using m2eclipse with Eclipse Ganymede. That&#8217;s not premature. I tried my best to figure out a way to use the plugin in a reliable way. However, that&#8217;s over now, I quit!
The plugin would be great and extremely useful if it worked. Really, I&#8217;d love to have this plugin as an everyday tool, [...]]]></description>
			<content:encoded><![CDATA[<p>I gave up using <a href="http://m2eclipse.codehaus.org/" target="_blank">m2eclipse</a> with <a href="http://www.eclipse.org/ganymede/" target="_blank">Eclipse Ganymede</a>. That&#8217;s not premature. I tried my best to figure out a way to use the plugin in a reliable way. However, that&#8217;s over now, I quit!</p>
<p>The plugin would be great and extremely useful if it worked. Really, I&#8217;d love to have this plugin as an everyday tool, helping me deliver software. It offers a very productive way to work with <a href="http://maven.apache.org" target="_blank">Maven</a> in <a href="http://www.eclipse.org" target="_blank">Eclipse</a>, except that it brakes Eclipse in such an unbearable way that I cannot afford to think about using it anymore.</p>
<p>Initially I was using m2eclipse with an external Maven installation, instead of the embedded one. With this setup, I was facing many (and I mean MANY) NullPointerExceptions doing some Maven stuff in the IDE. It was impossible to work with that much errors, so I tried using the embedded Maven installation.</p>
<p>Initially it seemed like I was gonna be able to work without problems, but I was wrong. Instead of all the NullPointerExceptions, now Eclipse itself would crash hard when I used the POM editor. Adding a dependency, adding a new build plugin. I was frequently having Eclipse crashes doing this stuff.</p>
<p>I first thought that it could be just an issue in the &#8220;graphical&#8221; POM editor, so I tried using the simple XML editor. The errors kept occuring, and I got mad.</p>
<p>I could live with this problem if my Eclipse crashed 2 or 3 times a day. I&#8217;d gladly restart it, and keep working. However, facing Eclipse crashes every 5-10 minutes can make you crazy before you deliver any piece of software.</p>
<p>I am a man of faith, so I&#8217;ll try using it with Eclipse Europa and with minimal features, to see if it hangs on. I use this setup at work, and although it doesn&#8217;t work perfectly, at least it stands a whole day without crashing.</p>
<p>Maven is such a widespread Java tool. It&#8217;s far from unanymous among developers, but it&#8217;s a very valuable tool for me. I think it deserves much better tooling support, so I hope this Ganymede mess is fixed someday. But maybe the Eclipse ecosystem got so complex that it&#8217;s becoming impossible to keep everything stable.</p>
<p>I&#8217;ve tried using Netbeans before, but I couldn&#8217;t be nearly as productive as I am with Eclipse. So please Eclipse, please don&#8217;t let me down!</p>
]]></content:encoded>
			<wfw:commentRss>http://brunopereira.org/2008/11/16/m2eclipse-is-the-most-unstable-eclipse-plugin-ive-ever-used/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Ubuntu virando cada vez mais a distribuição Linux padrão</title>
		<link>http://brunopereira.org/2008/11/12/ubuntu-virando-cada-vez-mais-a-distribuicao-linux-padrao/</link>
		<comments>http://brunopereira.org/2008/11/12/ubuntu-virando-cada-vez-mais-a-distribuicao-linux-padrao/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 03:17:34 +0000</pubDate>
		<dc:creator>blpsilva</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[posts em português]]></category>
		<category><![CDATA[cce]]></category>
		<category><![CDATA[itautec]]></category>
		<category><![CDATA[kubuntu]]></category>
		<category><![CDATA[positivo]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://brunopereira.org/?p=255</guid>
		<description><![CDATA[Li recentemente uma matéria que fez um estudo interessante sobre a situação atual do uso de algumas das principais distribuições Linux. O estudo não utilizou uma metodologia exatamente científica, mas as conclusões não deixam de ser válidas.
O estudo observa uma tendência de que o Ubuntu seja cada vez mais a cara do Linux. Na verdade [...]]]></description>
			<content:encoded><![CDATA[<p>Li recentemente <a href="http://codingexperiments.com/archives/149" target="_blank">uma matéria</a> que fez um estudo interessante sobre a situação atual do uso de algumas das principais distribuições Linux. O estudo não utilizou uma metodologia exatamente científica, mas as conclusões não deixam de ser válidas.</p>
<p>O estudo observa uma tendência de que o <a href="http://www.ubuntu.com" target="_blank">Ubuntu</a> seja cada vez mais a cara do Linux. Na verdade parece que a &#8220;marca&#8221; Ubuntu está com um progresso muito mais vigoroso do que a &#8220;marca&#8221; Linux, e provavelmente em breve a &#8220;marca&#8221; Ubuntu será a mais forte das duas.</p>
<p>Eu particularmente acho isso muito bom. Durante muitos anos o percentual de uso das principais distribuições Linux foi muito pulverizado. Havia uma gama enorme de opções, e não havia uma concentração tão forte em torno de nenhuma delas. É verdade que o <a href="http://www.redhat.com" target="_blank">Red Hat</a> teve uns momentos muito bons até a versão 9 (última versão gratuita), mas depois que eles mudaram o modelo comercial, perderam muitos usuários caseiros.</p>
<p>Com a concentração em torno do Ubuntu/<a href="http://www.kubuntu.org" target="_blank">Kubuntu</a>, acho que as chances de sucesso do Linux no desktop de usuários comuns aumentam muito. Um facilitador muito importante no rápido crescimento do Windows foi que muitas pessoas o conheciam, e então eram capazes de orientar novos usuários e ajudar na solução de problemas de forma rápida. Isso é muito mais fácil quando se tem um sistema operacional e interfaces de usuário com o mesmo padrão.</p>
<p>Se tivéssemos a grande maioria dos usuários Linux usando Ubuntu/Kubuntu, ficaria muito mais fácil que novos usuários tivessem facilidade em encontrar ajuda. Isso diminuiria muito as barreiras de entrada no uso do Linux em computadores caseiros por pessoas leigas.</p>
<p>É claro que continuarão existindo outras distribuições, mas com um foco direcionado em públicos específicos, ou finalidades específicas. Não há nada de errado em ter muitas opções, mas a adoção do Ubuntu como padrão facilitaria muito as coisas.</p>
<p>Uma coisa que eu não consigo entender é o que fazem algumas montadoras de computadores no Brasil. Já cansei de ver computadores com Linux à venda em supermercados e lojas em geral. Isso é legal de se ver. Porém, cada fabricante diferente (e são vários) usa uma distribuição diferente, e pouco comum. Isso com certeza dificulta muito o aprendizado de novos usuários Linux, e o que acaba acontecendo é que as pessoas mais humildes compram cópias piratas do Windows e instalam em suas máquinas que vieram com Linux.</p>
<p>Será que não seria mais fácil a Itautec, Positivo, CCE, etc etc etc, simplesmente usarem o Ubuntu/Kubuntu e customizarem só uma ou outra coisinha? Porque instalar umas distribuições que ninguém nunca viu, e que dificultam muito mais a vida dos usuários?</p>
<p>Será que isso é para conseguir vender suporte? Se for, acho que isso é um tremendo tiro no pé, pois as empresas correm um enorme risco de que as pessoas nem comprem os seus produtos ou então simplesmente troquem o Linux que veio instalado por um Windows piratão.</p>
<p>O sucesso do Linux no desktop do povão pode ser muito ajudado pelo sucesso do Ubuntu, então eu fico muito feliz com o crescimento vigoroso que este vem tendo. Só torço para que as montadoras de PCs nacionais acordem e passem a disponibilizar o Ubuntu em vez de umas distribuições sem-vergonha que ninguém conhece e que ninguém vai usar.</p>
<p>Ajude o Linux e o Open Source no Brasil. Use e divulgue uma distribuição que até o nosso presidente saiba falar! Ubuntu! <img src='http://brunopereira.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://brunopereira.org/2008/11/12/ubuntu-virando-cada-vez-mais-a-distribuicao-linux-padrao/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>KDE 4 now ready for prime time</title>
		<link>http://brunopereira.org/2008/11/02/kde-4-now-ready-for-prime-time/</link>
		<comments>http://brunopereira.org/2008/11/02/kde-4-now-ready-for-prime-time/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 01:45:22 +0000</pubDate>
		<dc:creator>blpsilva</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[hardy heron]]></category>
		<category><![CDATA[intrepid ibex]]></category>
		<category><![CDATA[kde 3.5]]></category>
		<category><![CDATA[kde 4]]></category>
		<category><![CDATA[kde 4.1]]></category>
		<category><![CDATA[kde plasmoids]]></category>
		<category><![CDATA[kde widgets]]></category>
		<category><![CDATA[kubuntu 8.04]]></category>
		<category><![CDATA[kubuntu 8.10]]></category>
		<category><![CDATA[kubuntu 8.10 review]]></category>
		<category><![CDATA[kubuntu hardy heron]]></category>
		<category><![CDATA[kubuntu Intrepid ibex]]></category>
		<category><![CDATA[wikipedia]]></category>
		<category><![CDATA[windows vista]]></category>

		<guid isPermaLink="false">http://brunopereira.org/?p=245</guid>
		<description><![CDATA[This Saturday I installed Kubuntu 8.10 (Intrepid Ibex) on my home desktop, and finally got my hands on KDE 4.1.
This is not the first time I tried KDE 4, as I had installed Kubuntu 8.04 (Hardy Heron) with KDE 4 several months ago, but I didn&#8217;t like it by that time. Kubuntu 8.04 had a [...]]]></description>
			<content:encoded><![CDATA[<p>This Saturday I installed <a href="http://www.kubuntu.org/news/8.10-release" target="_blank">Kubuntu</a><a href="http://www.kubuntu.org/news/8.10-release" target="_blank"> 8.10 (Intrepid Ibex)</a> on my home desktop, and finally got my hands on <a href="http://www.kde.org" target="_blank">KDE</a> <a href="http://www.kde.org/announcements/announce-4.1.2.php" target="_blank">4.1</a>.</p>
<p>This is not the first time I tried KDE 4, as I had installed Kubuntu 8.04 (Hardy Heron) with KDE 4 several months ago, but I didn&#8217;t like it by that time. <a href="http://www.kubuntu.org/news/8.04-release" target="_blank">Kubuntu 8.04</a> had a version with KDE 4.0, but at that version, KDE 4 looked more like a new concept than a &#8220;real deal&#8221; window manager. KDE 4.0 was released to gather feedback and to help developments on top of it. It wasn&#8217;t meant to be used by end users, so I sticked with rock solid <a href="http://www.kde.org/announcements/announce-3.5.10.php" target="_blank">KDE 3.5</a> for some more time.</p>
<p>Well, with KDE 4, we now have the real deal. Although it took me a couple of hours to do the mental shift from the previous version to this new one, I&#8217;m now enjoying it a lot. Regarding usability, the most noticeable feature consists in the &#8220;<a href="http://techbase.kde.org/Projects/Plasma/Plasmoids" target="_blank">Plasmoids</a>&#8220;, which are desktop widgets. These widgets are very similar to those present in <a href="http://www.kubuntu.org/news/8.10-release" target="_blank">Windows Vista</a>, except that they don&#8217;t weigh a ton like its Vista brothers. Actually, KDE 4 performance seems to be similar to KDE 3, which is nice, since it&#8217;s better than <a href="http://www.gnome.org" target="_blank">Gnome</a>&#8217;s and much better than Vista&#8217;s. KDE performance is similar to Windows XP desktop, so it runs pretty well in any machine built in the last 5 or 6 years.</p>
<p>In the picture below, you can see that I&#8217;m using some Plasmoids, like the Notes, the folder view (featuring my Desktop content) and a useful Dictionary plasmoid. I could think of several useful plasmoids, like <a href="http://www.wikipedia.org" target="_blank">Wikipedia</a> and calendar plasmoids, and I&#8217;m pretty sure they&#8217;ll be avaiable some time from now. There are many plasmoids already avaiable at <a href="http://www.kde-look.org" target="_blank">KDE-look</a>, but from what I could see they&#8217;re still mostly beta and need a bit more work. But it&#8217;s indeed promising.<br />
<a href="http://brunopereira.org/wp-content/uploads/2008/11/kde41_desktop.jpeg"><img class="alignnone size-medium wp-image-247" title="kde41_desktop" src="http://brunopereira.org/wp-content/uploads/2008/11/kde41_desktop-300x240.jpg" alt="" width="300" height="240" /></a></p>
<p>If you&#8217;re already a KDE user, I definitely recommend you take a look at this new version of the window manager. If you&#8217;re still a Gnome user, waste no time and get yourself a KDE desktop! <img src='http://brunopereira.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   If you&#8217;re not using Linux yet, well&#8230; nevermind.</p>
]]></content:encoded>
			<wfw:commentRss>http://brunopereira.org/2008/11/02/kde-4-now-ready-for-prime-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JSR-311 finally approved!</title>
		<link>http://brunopereira.org/2008/09/24/jsr-311-finally-approved/</link>
		<comments>http://brunopereira.org/2008/09/24/jsr-311-finally-approved/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 02:10:44 +0000</pubDate>
		<dc:creator>blpsilva</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[java ee]]></category>
		<category><![CDATA[jboss]]></category>
		<category><![CDATA[jboss resteasy]]></category>
		<category><![CDATA[jersey]]></category>
		<category><![CDATA[jsr-311]]></category>
		<category><![CDATA[rest]]></category>

		<guid isPermaLink="false">http://brunopereira.org/?p=214</guid>
		<description><![CDATA[Yesterday the JSR-311 (Java API for RESTFul Web Services &#8211; JAX-RS) was finally approved!
I&#8217;m using Jersey (the JSR&#8217;s reference implementation) for more than 6 months and I was anxious to have the specification approved.
In my team we&#8217;re currently using Jersey 0.7 in production, and were waiting for the JSR to be approved to analyse the [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday the <a href="https://jsr311.dev.java.net/" target="_blank">JSR-311</a> (Java API for RESTFul Web Services &#8211; JAX-RS) was finally <a href="http://jcp.org/en/jsr/results?id=4715" target="_blank">approved</a>!</p>
<p>I&#8217;m using <a href="https://jersey.dev.java.net/" target="_blank">Jersey</a> (the JSR&#8217;s reference implementation) for more than 6 months and I was anxious to have the specification approved.</p>
<p>In my team we&#8217;re currently using Jersey 0.7 in production, and were waiting for the JSR to be approved to analyse the final version of its implementations. Now we&#8217;ll wait for both Jersey and <a href="http://wiki.jboss.org/wiki/RESTeasyJAXRS" target="_blank">JBoss RESTEasy</a> to release their final versions and we&#8217;ll analyse both to see which one we&#8217;ll use in our RESTFul services.</p>
<p>If anyone wants to give me good reasons to use either one of the implementations, now it&#8217;s the perfect time! I&#8217;m hearing&#8230; <img src='http://brunopereira.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://brunopereira.org/2008/09/24/jsr-311-finally-approved/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WSO2 Registry now working in JBoss 4.0.5</title>
		<link>http://brunopereira.org/2008/09/24/wso2-registry-now-working-in-jboss-405/</link>
		<comments>http://brunopereira.org/2008/09/24/wso2-registry-now-working-in-jboss-405/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 01:26:56 +0000</pubDate>
		<dc:creator>blpsilva</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[jboss]]></category>
		<category><![CDATA[log4j]]></category>
		<category><![CDATA[web services]]></category>
		<category><![CDATA[wso2]]></category>
		<category><![CDATA[wso2 registry]]></category>

		<guid isPermaLink="false">http://brunopereira.org/?p=213</guid>
		<description><![CDATA[After some extra effort today, I did manage to get WSO2 Registry working in JBoss 4.0.5
The huge amount of jdbc error messages in the server logs were not actually errors. JBoss datasources have a configuration element called &#60;track-statements&#62;. When this option is turned on, JBoss logs massively when there are Statements or ResultSets that are [...]]]></description>
			<content:encoded><![CDATA[<p>After some extra effort today, I did manage to get <a href="http://wso2.org/projects/registry" target="_blank">WSO2 Registry</a> working in <a href="http://www.jboss.org/jbossas/" target="_blank">JBoss 4.0.5</a></p>
<p>The huge amount of jdbc error messages in the server logs were not actually errors. <a href="http://wiki.jboss.org/wiki/ConfigDataSources" target="_blank">JBoss datasources</a> have a configuration element called <span>&lt;track-statements</span>&gt;. When this option is turned on, JBoss logs massively when there are Statements or ResultSets that are left open. The application server closes the Statements and the ResultSets, and shows many many logs indicating this. The log messages I was seeing were not errors in the Registry, they were only JBoss warnings.</p>
<p>All our datasources in my team have this option turned on, and we always take care to close the ResultSets and Statements in all our applications. But since the server closes the ResultSets and Statements, I can live with the way the Registry does <img src='http://brunopereira.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I had to do some things to get the Registry working in JBoss. First, I had to remove the log4j the Registry had packed inside its war file. Our JBoss servers use the <a href="http://wiki.jboss.org/wiki/ClassLoadingConfiguration" target="_blank">Unified Classloader</a>, for several years already. This setup was there before I even joined the company, and it&#8217;d complicated to change this now, because it&#8217;d make us modify several applications. Not being able to change the Classloader, the log4j packed inside the Registry (1.2.13) would conflict with the one present in JBoss itself (1.2.8), so I had to remove it from the Registry&#8217;s war. The application worked just fine using log4j 1.2.8, so it&#8217;s ok to do this.</p>
<p>After fixing this, I had to enable Java 1.5 code in the jsps. JBoss by default does not allow Java 1.5 code in the jsps, and to modify this, I had to uncomment the code below inside JBOSS_HOME/server/default/deploy/jbossweb-tomcat55.sar/conf/web.xml:</p>
<p><code>&lt;init-param&gt;<br />
&lt;param-name&gt;compilerSourceVM&lt;/param-name&gt;<br />
&lt;param-value&gt;1.5&lt;/param-value&gt;<br />
&lt;/init-param&gt;</code></p>
<p>This init-param belongs to &lt;servlet-class&gt;org.apache.jasper.servlet.JspServlet&lt;/servlet-class&gt;, and solves the jsp compilation problem.</p>
<p>Well, that&#8217;s what I had to do to make WSO2 Registry work in JBoss. Most of the problems I faced were not Registry&#8217;s fault, so I&#8217;m sorry for having a wrong impression after some setup problems this week.</p>
<p>I&#8217;m currently integrating WSO2 Registry in our architecture and once I finish, I&#8217;ll document our architecture here, so that other people can see what uses we&#8217;re making of the product.</p>
]]></content:encoded>
			<wfw:commentRss>http://brunopereira.org/2008/09/24/wso2-registry-now-working-in-jboss-405/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>RESTFul Registry update</title>
		<link>http://brunopereira.org/2008/09/23/restful-registry-update/</link>
		<comments>http://brunopereira.org/2008/09/23/restful-registry-update/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 02:25:54 +0000</pubDate>
		<dc:creator>blpsilva</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[atom]]></category>
		<category><![CDATA[atompub]]></category>
		<category><![CDATA[dan diephouse]]></category>
		<category><![CDATA[jboss]]></category>
		<category><![CDATA[mule]]></category>
		<category><![CDATA[mule galaxy]]></category>
		<category><![CDATA[mulesource]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[tomcat]]></category>
		<category><![CDATA[wso2]]></category>
		<category><![CDATA[wso2 registry]]></category>

		<guid isPermaLink="false">http://brunopereira.org/?p=212</guid>
		<description><![CDATA[Well, as I said recently, we want to use a registry to keep URIs of our services and also some configurations that are currently in properties files.
After looking better at WSO2 Registry, I figured out how to do what I need with the product. I had a very short time to evaluate properly WSO2 Registry [...]]]></description>
			<content:encoded><![CDATA[<p>Well, as <a href="http://brunopereira.org/2008/09/08/restful-services-registry/" target="_self">I said recently</a>, we want to use a registry to keep URIs of our services and also some configurations that are currently in properties files.</p>
<p>After looking better at <a href="http://wso2.org/projects/registry" target="_blank">WSO2 Registry</a>, I figured out how to do what I need with the product. I had a very short time to evaluate properly WSO2 Registry and <a href="http://www.mulesource.org/display/GALAXY/Home" target="_blank">Mule Galaxy</a> before my last post, but after another evaluation of them, I concluded I can use them in this case.</p>
<p>Last week I developed a Java client to consume my publications from WSO2 Registry. It wasn&#8217;t much fun to develop, because I had to make it compatible with JDK 1.4. This prevented me from using their client API, which runs only on JDK 1.5 and above.</p>
<p>Since I had to use JDK 1.4, I used <a href="http://xstream.codehaus.org/" target="_blank">XStream</a> for my Java &lt;-&gt; XML mappings. Not being able to use the Registry&#8217;s Java client, I also had to consume data from their <a href="http://www.atompub.org/" target="_blank">AtomPub</a> API. I used <a href="http://incubator.apache.org/abdera/" target="_blank">Apache Abdera</a> 0.3 for this task, which was their last version supporting JDK 1.4 (through retroweaver).</p>
<p>So far so good. Last week I had a prototype client consuming stuff from the Registry, so I moved on to some other tasks. Well, today I started integrating the Registry in my application. That meant moving from Tomcat 6 to JBoss 4.0.5. And that&#8217;s when I got in trouble.</p>
<p>Unfortunately I hadn&#8217;t seen <a href="http://wso2.org/wiki/display/registry/Registry+1.1" target="_blank">this page</a> before. It turns out that the only application server they have tested enough is Tomcat. And not any Tomcat, only Tomcat 6. Since their distribution format is a .war file, I never would think they support only Tomcat. In their <a href="http://wso2.org/downloads/registry/" target="_blank">download page</a> it says: <strong>&#8220;This distribution includes the Webapp module with relevant JAR files and other resources to be deployed in the servlet container, providing a Web UI and an APP interface.&#8221;</strong></p>
<p>Well, I&#8217;m probably just dumb. They didn&#8217;t say &#8220;<strong>a servlet container</strong>&#8220;. They said &#8220;<strong>the servlet container</strong>&#8220;. This certainly means &#8220;the servlet container we support, which is Tomcat 6&#8243;. But this is not written there, so dumb people like me will be subject to mistakes.</p>
<p>&#8220;Heck, this is open source, I&#8217;m gonna make it work on JBoss!&#8221;. This was my first thought. And then I started setting up the Registry in JBoss, right after lunch today.</p>
<p>The first thing I noticed is that the Registry packs a newer version (1.2.13) of log4j than the one present in JBoss (1.2.8). This shouldn&#8217;t be a problem, but anyone who has experienced some of the JBoss Classloader Hell knows that it&#8217;s not a wise decision to bring a newer version of log4j inside your application if you&#8217;re going to run on JBoss. This is not a Registry fault, so I gladly fixed the problem by removing the log4j they had packed inside the .war file.</p>
<p>After fixing this, I was gettings errors trying to open the Registry&#8217;s index page on JBoss. I quickly found out that their jsps had scriptlets using JDK 1.5 code, and JBoss was not able to compile the jsps. This was easy to fix by uncommenting a init-param in the web.xml in the Tomcat module inside JBoss. However, the amount of scriplets inside their pages was the first symptom that something didn&#8217;t smell right.</p>
<p>After fixing the jsp problem, I configured the Registry to connect to MySql through a JBoss datasource. I then could open their index page and even use some features. However, when I started checking the server logs I was shocked. A huge amount of errors in jdbc operations. I had no clue of what was going wrong, because the UI was apparently working normally and the database was being manipulated.</p>
<p>Well, since it&#8217;s an open source product, I promptly checked out their code and started looking for problems. Most errors occured in simple jdbc operations like the creation of a prepared statement. The application logs were not very helpful, and I couldn&#8217;t figure out where the problem was.</p>
<p>However, something scared me a lot. Between the zillions of jdbc errors, I saw JBoss screaming for help, saying that the PreparedStatements were left open. I went to look at their jdbc code, and it definitely needs care. There were a LOT of jdbc operations inside <strong>try/catch</strong> blocks, where they treated SQLExceptions. I didn&#8217;t see the <strong>finally</strong> blocks closing the PreparedStatements and the ResultSets. This explains JBoss&#8217;s complaints about the PreparedStatements.</p>
<p>After several hours trying to use WSO2 Registry inside JBoss and looking at their code, I must say I am VERY discouraged to put anything in production right now using the product.</p>
<p>I just downloaded Mule Galaxy and now I&#8217;m gonna try to integrate it in my application. A very good sign is that they say I can use it with ANY servlet container, including Tomcat and Jetty. I think it&#8217;ll be a successful effort, but it&#8217;s hard to say anything after my problems with WSO2 Registry today.</p>
<p>But knowing <a href="http://netzooid.com/blog/" target="_blank">Dan Diephouse</a>&#8217;s work for several years, I&#8217;m pretty confident in this new attempt. I&#8217;ll post the results later this week.</p>
]]></content:encoded>
			<wfw:commentRss>http://brunopereira.org/2008/09/23/restful-registry-update/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

