<?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>Messias Bittencourt</title>
	<atom:link href="http://www.messiasbittencourt.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.messiasbittencourt.com</link>
	<description></description>
	<lastBuildDate>Tue, 22 Nov 2011 13:32:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Software Da Silva</title>
		<link>http://www.messiasbittencourt.com/282/software-da-silva/</link>
		<comments>http://www.messiasbittencourt.com/282/software-da-silva/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 15:25:13 +0000</pubDate>
		<dc:creator>Bittencourt</dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Acessibilidade]]></category>
		<category><![CDATA[Da Silva]]></category>
		<category><![CDATA[Deficiência Visual]]></category>
		<category><![CDATA[Deficiente Visual]]></category>
		<category><![CDATA[Leitores de Tela]]></category>

		<guid isPermaLink="false">http://www.messiasbittencourt.com/?p=282</guid>
		<description><![CDATA[Um software com que tive contato graças ao projeto que comentei foi o Da Silva. Ele auxilia na validação de páginas HTML que serão utilizadas por leitores de tela de deficientes visuais, entre outras coisas. Pelo que vi, ele não funciona muito bem com sistemas 64 bits(se usa Windows 7, provavelmente pode esquecer de rodar). [...]]]></description>
			<content:encoded><![CDATA[<p>Um software com que tive contato graças ao projeto que comentei foi o Da Silva. Ele auxilia na validação de páginas HTML que serão utilizadas por leitores de tela de deficientes visuais, entre outras coisas.</p>
<p>Pelo que vi, ele não funciona muito bem com sistemas 64 bits(se usa Windows 7, provavelmente pode esquecer de rodar). Mas se você usa o bom e velho Windows XP, conseguirá executar facilmente esse aplicativo, que por sinal é gratuito.</p>
<p>Na última versão disponível no site http://www.dasilva.org.br o download feito traz como versão um executável que aparentemente não é atualizado desde 2007.</p>
<p>O maior problema que tive foi o fato de que as páginas não estão abertas a público, e por isso para que eu consiga avaliá-las, eu precisei salvar as .HTML geradas e só depois rodar o programa na pasta para testar todas ou rodar em arquivo por arquivo(testando apenas os .HTML).</p>
<p>Os passos para avaliar com o Da Silva uma HTML que já está no seu computador são:</p>
<p>1) Menu &#8220;Avaliadores&#8221;<br />
2) Opção &#8220;Avaliador de Acessibilidade&#8221;<br />
3) Trocar o combo &#8220;Nível&#8221; de &#8220;página&#8221; para &#8220;arquivo&#8221;<br />
4) Selecionar o arquivo &#8220;.html&#8221; desejado.</p>
<p>Obs.: Existem algumas limitações nessa versão, como por exemplo, se você usar uma &#8220;página.html&#8221; que seja muito grande, então o &#8220;Da Silva&#8221; exibe a mensagem: &#8220;o arquivo é muito grande para ser avaliado&#8221; e exibe a tela em branco.</p>
<p>Após o Da Silva avaliar o sistema, ele retornará uma lista com os arquivos avaliados e os erros e avisos encontrados.</p>
<div id="attachment_290" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.messiasbittencourt.com/wp-content/uploads/2011/11/imagem-1.png"><img class="size-medium wp-image-290" title="Da Silva - Imagem 1" src="http://www.messiasbittencourt.com/wp-content/uploads/2011/11/imagem-1-300x187.png" alt="" width="300" height="187" /></a><p class="wp-caption-text">Tela exibida após selecionar o arquivo - 01</p></div>
<p>&nbsp;</p>
<p>Ao clicar na linha que deseja ver mais detalhes, uma tela com os erros detalhados aparecerão.</p>
<p>Nessa tela(<em>Listagem dos erros &#8211; 02</em>) existirá uma tabela com as seguintes informações:</p>
<ol>
<li>P.V (Ponto de Verificação): Ponto de referência que deveria usado para encontrar maiores detalhes sobre o erro ou aviso no site. Porém não encontrei um detalhamento de cada tipo de erro através do site oficial.</li>
<li>Casos Gerais: Breve descrição do problema.</li>
<li>Ocorrências: Quantidade de vezes em que o problema acontece.</li>
<li>Linhas: Linhas onde o problema acontece.</li>
</ol>
<p>Ao se clicar na linha de erro, o sistema aparentemente iria mostrar na janela “Saiba Mais”</p>
<div id="attachment_291" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.messiasbittencourt.com/wp-content/uploads/2011/11/Imagem-2.png"><img class="size-medium wp-image-291" title="Imagem 2" src="http://www.messiasbittencourt.com/wp-content/uploads/2011/11/Imagem-2-300x187.png" alt="" width="300" height="187" /></a><p class="wp-caption-text">Listagem dos erros - 02</p></div>
<p>Mas infelizmente isso não acontece. Procurei também no próprio <a title="www.dasilva.org.br " href="http://www.dasilva.org.br " target="_blank">site do Da Silva</a> e não encontrei uma descrição mais detalhada sobre os erros que o software encontra. Apesar de fraca, a descrição informada auxilia a encontrar o possível erro.</p>
<p>Existem 3 tipos de erros, que segundo o site oficial são classificados como:</p>
<p><strong>Prioridade 1</strong></p>
<p>Pontos que os criadores de conteúdo Web devem satisfazer inteiramente. Se não o fizerem, um ou mais grupos de usuários ficarão impossibilitados de acessar as informações contidas no documento. A satisfação desse tipo de pontos é um requisito básico para que determinados grupos possam acessar documentos disponíveis na Web.</p>
<p><strong>Prioridade 2</strong></p>
<p>Pontos que os criadores de conteúdos na Web deveriam satisfazer. Se não o fizerem, um ou mais grupos de usuários terão dificuldades em acessar as informações contidas no documento. A satisfação desse tipo de pontos promoverá a remoção de barreiras significativas ao acesso a documentos disponíveis na Web.</p>
<p><strong>Prioridade 3</strong></p>
<p>Pontos que os criadores de conteúdos na Web podem satisfazer. Se não o fizerem, um ou mais grupos poderão se deparar com algumas dificuldades em acessar informações contidas nos documentos. A satisfação deste tipo de pontos irá melhorar o acesso a documentos armazenados na Web.</p>
<p>&nbsp;</p>
<p>Quanto aos avisos, não encontrei informações sobre eles no site oficial.</p>
<p>Minha dica é:</p>
<p>Fique atento aos erros informados pelo software, pois coisas como campos com <em>value=&#8221;"</em> o software aponta como um possível erro, com a informação de que leitores de tela ou browsers podem não dar suporte para value vazio, algo que torna-se essencial em diversos aplicativos.</p>
<p>Infelizmente o site encontra-se aparentemente abandonado e com poucas informações relevantes. Por hora o que tenho pra falar sobre o Da Silva é isso. Caso queiram, usem os comentários pra dúvidas, críticas ou sugestões.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.messiasbittencourt.com/282/software-da-silva/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Acessibilidade</title>
		<link>http://www.messiasbittencourt.com/280/acessibilidade/</link>
		<comments>http://www.messiasbittencourt.com/280/acessibilidade/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 15:24:03 +0000</pubDate>
		<dc:creator>Bittencourt</dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Acessibilidade]]></category>
		<category><![CDATA[Da Silva]]></category>
		<category><![CDATA[Deficiência Visual]]></category>
		<category><![CDATA[Deficiente Visual]]></category>
		<category><![CDATA[Leitores de Tela]]></category>

		<guid isPermaLink="false">http://www.messiasbittencourt.com/?p=280</guid>
		<description><![CDATA[Já faz algum tempo que estou tendo que lidar com alguns casos de uso que devem ser desenvolvidos de forma que deficientes visuais possam interagir com o sistema. O cenário que tenho é o seguinte: Temos um software WEB desenvolvido usando JSF, de uma grande Universidade, e ela precisa que alguns de seus casos de [...]]]></description>
			<content:encoded><![CDATA[<p>Já faz algum tempo que estou tendo que lidar com alguns casos de uso que devem ser desenvolvidos de forma que deficientes visuais possam interagir com o sistema.</p>
<p>O cenário que tenho é o seguinte:</p>
<blockquote><p>Temos um software WEB desenvolvido usando JSF, de uma grande Universidade, e ela precisa que alguns de seus casos de uso estejam acessíveis para alunos com deficiência visual.</p></blockquote>
<p>Infelizmente o conteúdo que encontro na web que trata desse assunto é vago e fraco, principalmente se tratando da língua portuguesa.</p>
<p>Pretendo passar um pouco do que vivi(e ainda vivo) nesse projeto, e outras coisas que venho descobrindo a medida que vou aprofundando no assunto.</p>
<p>Recomendo também a leitura completa do artigo http://internativa.com.br/artigo_acessibilidade_06.html antes de se desenvolver ou prototipar qualquer tela acessível, para saber se nosso objetivo é passar no teste de acessibilidade ou realmente tornar nossas páginas acessíveis.</p>
<p>Essa página será fixa, pois pretendo ir atualizando os links e afins que eu for encontrando.</p>
<p>&nbsp;</p>
<p><a title="Software Da Silva" href="http://www.messiasbittencourt.com/282/software-da-silva/">Da Silva(link para um artigo que eu fiz sobre o software Da Silva</a>:</p>
<p>Site: <a href="http://www.dasilva.org.br" target="_blank">www.dasilva.org.br</a> &#8211; O site está parado desde 2007, e contém pouca informação/documentação sobre o sistema que eles desenvolveram.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.messiasbittencourt.com/280/acessibilidade/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Isso vai dar merda capitão</title>
		<link>http://www.messiasbittencourt.com/262/isso-vai-dar-merda/</link>
		<comments>http://www.messiasbittencourt.com/262/isso-vai-dar-merda/#comments</comments>
		<pubDate>Wed, 09 Nov 2011 19:52:12 +0000</pubDate>
		<dc:creator>Bittencourt</dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[Banco de Horas]]></category>
		<category><![CDATA[Equipes]]></category>
		<category><![CDATA[Foco]]></category>
		<category><![CDATA[Gerente]]></category>
		<category><![CDATA[Gestão]]></category>
		<category><![CDATA[Gestor]]></category>
		<category><![CDATA[Hora Extra]]></category>
		<category><![CDATA[Motivação]]></category>

		<guid isPermaLink="false">http://www.messiasbittencourt.com/?p=262</guid>
		<description><![CDATA[Depois de muito conversar com vários amigos e pessoas da área, ví que praticamente todos já passaram ou passam pelos mesmos problemas. Seja na empresa X ou Y, uma hora você vai passar por isso em sua carreira. Antes de julgar o texto note que ele foi construído com base em experiências próprias e de [...]]]></description>
			<content:encoded><![CDATA[<p>Depois de muito conversar com vários amigos e pessoas da área, ví que praticamente todos já passaram ou passam pelos mesmos problemas. Seja na empresa X ou Y, uma hora você vai passar por isso em sua carreira.</p>
<p><strong><em>Antes de julgar o texto note que ele foi construído com base em experiências próprias e de diversos amigos e colegas da área de Tecnologia da Informação, não sendo direcionado a empresa K ou L, nem ao gerente Z ou W.</em></strong></p>
<h2>1) Foco da equipe</h2>
<p>(sempre que alguém fala Foco da equipe, Foco no trabalho ou Foco nos &#8220;bugs xyz&#8221;, me vem na cabeça a imagem de uma FOCA graças a um <em>meme</em> ai)</p>
<p>No projeto em que você trabalha, qual é o foco que seu gerente passa? Em geral existem dois:</p>
<ol>
<li>Atender o que está em contrato</li>
<li>Atender ao que o cliente quer E satisfazer ao contrato</li>
</ol>
<p>Se o foco da equipe em que você trabalha tem como objetivo apenas atender ao que está no contrato, saibam que a empresa de vocês pode até receber no final do contrato, mas certamente vai ficar com o nome ruim na praça e se o cliente tiver a opção de não trabalhar mais com vocês, então isso vai acontecer.</p>
<p>O primeiro método é sempre o mais desmotivador, pois ele corta a possibilidade de se entregar aquilo na qualidade em que se pretende. O importante é atingir o contrato, e gerar conhecimento ou fazer da melhor forma só vai acontecer se o gerente não souber que existe outra forma de se fazer mais rápido.</p>
<p>Agora se o seu objetivo é o segundo item, existe alguma chance de se receber no final E manter o cliente satisfeito, com um possível novo contrato, significando mais rendimentos para a empresa que você trabalha, garantindo empregabilidade e condições de melhores salários(não que isso vá realmente acontecer, mas isso é outra história).</p>
<h2> 2) Cronogramas</h2>
<p>A única coisa realmente certa nesse tópico é que:</p>
<blockquote><p><em>Cronograma não entrega projeto.</em></p></blockquote>
<p>Além disso, temos outros pontos a observar, como:</p>
<p>Como seus cronogramas são montados? Pra isso existem diversas formas de se fazer, cada uma aplicável a um tipo de equipe e/ou projeto. Vou citar apenas 3.</p>
<ol>
<li>Baseia-se única e exclusivamente no PF (ponto de função)</li>
<li>Um arquiteto ou desenvolvedor sênior avalia todos os CSUs</li>
<li>Cada desenvolvedor avalia o próprio CSU</li>
</ol>
<p>Apesar de muitos estudiosos insistirem que esse método funciona por se tratar da média, ainda não vi o sucesso acontecendo, ou talvez seja apenas uma desculpa geral a velha frase: &#8220;o projeto não está dando lucro&#8221;. Talvez se essa frase fosse modificada para: &#8220;o projeto não está dando o lucro <strong>esperado</strong>&#8220;, então estaríamos bem.</p>
<p>Para que esse primeiro método funcione, o gestor deve ter um conhecimento profundo sobre a produtividade dos membros da equipe, o comercial deve saber exatamente como VENDER esses pontos de função para não ter gente fazendo hora extra(banco de horas, em geral).</p>
<p>O segundo e terceiro método conseguem te dar um prazo mais próximo da realidade, se isso vai tornar seu projeto rentável ou não, isso é outra história.</p>
<p>Para que um arquiteto consiga avaliar o CSU para outras pessoas, ele deve conhecer muito bem do problema(CSU) em questão e do desenvolvedor, pois ele pode subestimar o problema e causar dores de cabeça para o desenvolvedor conseguir atingir o prazo definido.</p>
<p>Para o terceiro método a realidade se torna mais possível, porém sempre existe o fator humano em questão. Em equipes desmotivadas e desestimuladas isso pode ser um tiro no pé para prazos longos. Mas se a equipe em que você trabalha está empenhada e todos estão motivados, essa é uma forma de estimular a participação e mostrar que o membro da equipe tem poder de fala.</p>
<p>Não entrei em detalhes sobre quando se trabalha com homens/hora, pois nos casos em que isso é usado para terceirizar mão de obra o tempo é o que menos importa para a empresa que &#8220;aluga&#8221; o funcionário, e a perspectiva do cliente não é o meu foco nesse texto, apesar de ser de extrema importância e citada diversas vezes.</p>
<p>Uma forma interessante para o terceiro método é usar a <strong>Metodologia de Estimativas PERT</strong>, onde se faz um calculo simples com a estimativa pessimista, mais provável e otimista. Já trabalhei usando-as e foi interessante ver que elas se aproximam da realidade.</p>
<h2>3) Motivação</h2>
<p>De onde vem a motivação? De dentro do próprio funcionário, mas é claro que existem outros fatores que colaboram para que ela se fortaleça ou desapareça.</p>
<p>Pessoas que se dizem desmotivadas por causa do salário devem procurar outro emprego. Afinal, <a title="CEVIU" href="http://www.ceviu.com.br" target="_blank">vagas existem</a>.Todo mundo quer ganhar mais, em todas as áreas. Então isso nunca pode ser o fator decisivo pra você estar ou não motivado.</p>
<p>O que motiva uma pessoa pode não motivar outras.</p>
<p>Estar atualizado e trabalhando com tecnologias de ponta na área de TI é vontade de praticamente todo mundo com quem converso. Mas muitos projetos já existem e o custo/risco de se migrar é alto ao ponto de cortar essa possibilidade. E para isso <a title="Palestra @ PDCase – 04/11/11 – JBoss AS 7" href="http://www.messiasbittencourt.com/245/palestra-pdcase-041111-jboss-7/" target="_blank">existem alternativas de manter sua equipe atualizada</a> mesmo quando não se pode &#8220;mexer&#8221; nos projetos.</p>
<p>Atenção as idéias de sua equipe, quando você apenas escuta e depois ignora a sugestão, você pode estar cortando futuras sugestões, pois as pessoas se cansam.</p>
<p>Flexibilidade de horários já é um ponto forte na política de muitas empresas, mas será que isso realmente acontece? Se está na política da empresa, o gerente pode até querer que isso não aconteça em determinados dias, mas o ideal é que a política da empresa é que seja seguida. Muita gente se vê atraída por esse benefício que o RH <strong>vende</strong> para o possível novo funcionário e quando ele entra, descobre que ela existe mas ninguém nunca viu, estilo cabeça de bacalhau.</p>
<p>Feedback é algo que pode motivar um funcionário a melhorar ou a continuar fazendo bem o que ele já faz. Mas saber como dar esse feedback é algo que muitos gestores não tem habilidade. Você pode até achar que está falando pra ajudar, mas se não souber como dizer, você pode estar prejudicando. Entre as principais funções de um gestor está o fato de <em>saber lidar com pessoas</em>, quando isso não acontece, pode esperar que cedo ou tarde pessoas desmotivadas vão se tornar um prejuízo ou um desgaste para a empresa.</p>
<p>Políticas de premiações são um ponto interessante e pouco explorado, talvez pelo fato de que uma métrica eficiente para dizer quem se destacou ainda não seja fácil de se achar. E quando o fator humano entra para ajudar a escolher quem se destacou ou não, vários murmurinhos sobre o motivo pelo qual a pessoa se destacou podem surgir, então escolham consciente a(s) pessoa(s) que irá(ão) receber o &#8220;prêmio&#8221;.</p>
<h2>4 ) O mito do técnico virar gerente</h2>
<p>Não leve o título do tópico muito a sério. Existem os casos em que isso acontece e vai bem. Eu concordo que um gerente precisa conhecer do território que ele está pisando para poder facilitar os caminhos. Mas achar que seu melhor técnico vai ser o seu melhor gestor não é uma verdade.</p>
<p>As qualidades de um excelente gestor são diferentes das qualidades esperadas em um excelente técnico.</p>
<p>Um gestor que já foi técnico é importante para a equipe, para saber com o que está lidado e para não se mostrar despreparado diante do cliente. Mas quando esse gestor começa a dizer como as coisas devem ser implementadas começamos a correr um sério risco de falhar e a culpa ainda cair sobre o desenvolvedor que por estar conversando com um gestão não teve coragem de dizer que esse não era o melhor caminho.</p>
<p><em>Saber o lugar de cada um é importante para o bom andamento do projeto.</em></p>
<p>Existem metodologias e certificações que definem um padrão de como um gestor deve ser/agir, mas isso deve ser adaptado para a realidade da equipe/empresa/projeto, ou estará fadado ao fracasso.</p>
<h2>5) Hora Extra/Banco de Horas</h2>
<p>Não pretendo entrar no mérito do que é o certo perante a lei no que diz respeito ao que define uma hora extra ou ao que define o banco de horas.</p>
<p>Acontece muito de alguns membros(ou até mesmo toda a equipe) ter a disponibilidade para trabalhar quando se fala que suas horas serão pagas, e quando essas horas começam a se tornar banco de horas essa disponibilidade desaparece.</p>
<p>Isso é normal e deve ser compreendido. Ninguém quer trabalhar de graça, assim como ninguém quer ter que trabalhar para lotar o banco de horas e quando for para esvaziar o banco de horas, ter problemas.</p>
<p><em>O problema de tudo é o abuso.</em> Em casos em que a hora extra é liberada, certos indivíduos chegam a ficar na empresa apenas para completar as &#8220;X&#8221; horas que precisa a mais para &#8220;Y&#8221; de dinheiro no fim do mês. E é isso que faz com que as coisas sejam cortadas. O abuso da liberdade que possui. (Fato muito parecido com a liberdade do acesso a internet, mas acho que seja assunto pra outro tópico)</p>
<p>Já vi gente reclamando de não conseguir usar o banco de horas quando bem quis. E isso deve ser aceito quando se tratar de uma fase de projeto delicada, como fase de entrega e afins. Mas é dever do gerente conseguir equilibrar as atividades de forma que em algum momento essas horas sejam usadas. Mas será que isso acontece?</p>
<h2> 6) Informação Aberta</h2>
<p>Isso é algo que pode incomodar muito uma equipe. Muitos desenvolvedores com quem conversei não sabem exatamente como está o projeto em que trabalha, para onde ele vai, nem de onde ele veio.</p>
<p>É interessante que quando possível a equipe seja informada de qual o feedback do cliente com relação que eles entregaram, além de também ser importante saber quais serão os próximos módulos que a equipe irá participar. Ví muito de você não saber o que vai ter de atividade quando acabar o que está fazendo, seja por não saber se virão novos módulos, ou até mesmo se você será remanejado. A falta de informação já fez gente procurar por novas oportunidades, então manter sua equipe bem informada pode ser algo que te traga um bom retorno.</p>
<p>&nbsp;</p>
<p>&#8212;</p>
<p>Nada do que foi falado aqui é novidade, e muitos dos gerentes de hoje sabem e/ou já tiveram até as mesmas opiniões que vários funcionários tem, mas por algum motivo não aplicam isso na prática. E é a prática quem pode fazer a diferença para que tudo caminhe bem do início ao fim.</p>
<p>Seria gratificante que vocês participassem nos comentários, com seus pontos de vista, críticas ou seja lá o que for. E ainda se possível, compartilhem!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.messiasbittencourt.com/262/isso-vai-dar-merda/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Palestra @ PDCase &#8211; 04/11/11 &#8211; JBoss AS 7</title>
		<link>http://www.messiasbittencourt.com/245/palestra-pdcase-041111-jboss-7/</link>
		<comments>http://www.messiasbittencourt.com/245/palestra-pdcase-041111-jboss-7/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 16:16:00 +0000</pubDate>
		<dc:creator>Bittencourt</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[HSQL]]></category>
		<category><![CDATA[JBoss AS 7]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Palestra Java]]></category>
		<category><![CDATA[PDCase]]></category>

		<guid isPermaLink="false">http://www.messiasbittencourt.com/?p=245</guid>
		<description><![CDATA[Abaixo o PPT da palestra que eu e meu amigo Weberton demos na empresa PDCase Informática LTDA no dia 04/11 às 13h sobre JBoss AS 7. É muito bacana quando a empresa incentiva a troca de conhecimento entre os funcionários. Vídeo upado no Youtube: Download da apresentação JBoss AS 7 (Apresentação) Link relacionado: JBoss AS [...]]]></description>
			<content:encoded><![CDATA[<p>Abaixo o PPT da palestra que eu e meu amigo <a href="http://webertonfaria.wordpress.com/" target="_blank">Weberton</a> demos na empresa PDCase Informática LTDA no dia 04/11 às 13h sobre JBoss AS 7.</p>
<p>É muito bacana quando a empresa incentiva a troca de conhecimento entre os funcionários.</p>
<p>Vídeo upado no Youtube:<br />
<iframe width="420" height="315" src="http://www.youtube.com/embed/Vzd8xLU9In0" frameborder="0" allowfullscreen></iframe></p>
<p>Download da apresentação <a href="http://www.messiasbittencourt.com/wp-content/uploads/2011/11/jboss7.ppt">JBoss AS 7</a> (Apresentação)</p>
<p>Link relacionado:</p>
<p><a title="JBoss AS 7 + MySQL" href="http://www.messiasbittencourt.com/168/jboss-7-mysql/">JBoss AS 7 + MySQL</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.messiasbittencourt.com/245/palestra-pdcase-041111-jboss-7/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Observer &#8211; Como criar e usar o Pattern Observer em Java usando jBoss Seam</title>
		<link>http://www.messiasbittencourt.com/81/observer-como-criar-usar-pattern-observer-em-java/</link>
		<comments>http://www.messiasbittencourt.com/81/observer-como-criar-usar-pattern-observer-em-java/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 19:50:12 +0000</pubDate>
		<dc:creator>Bittencourt</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Exemplo Java Observer]]></category>
		<category><![CDATA[Java Observer]]></category>
		<category><![CDATA[Jboss Seam]]></category>
		<category><![CDATA[Observer]]></category>
		<category><![CDATA[Observer Jboss Seam]]></category>
		<category><![CDATA[Observer Seam]]></category>
		<category><![CDATA[Pattern Observer]]></category>
		<category><![CDATA[Seam]]></category>

		<guid isPermaLink="false">http://www.messiasbittencourt.com/?p=81</guid>
		<description><![CDATA[Criei um exemplo bem simples aqui pra ilustrar o funcionamento de um Observer em Java utilizando jBoss Seam. &#160; Para isso eu criei um botão que vai chamar a função &#8220;teste&#8221; em minha Action: &#60;a4j:commandButton value="Juntar ao Processo" actionListener="#{minhaAction.teste}" ajaxSingle="true" /&#62; Na minha Action criei a função e através do Events.instance().raiseEvent( &#8220;hunrumclaudia&#8221;); eu chamei o [...]]]></description>
			<content:encoded><![CDATA[<p>Criei um exemplo bem simples aqui pra ilustrar o funcionamento de um Observer em Java utilizando jBoss Seam.<br />
&nbsp;<br />
Para isso eu criei um botão que vai chamar a função &#8220;teste&#8221; em minha Action:</p>
<pre class="brush:xhtml">&lt;a4j:commandButton value="Juntar ao Processo"
actionListener="#{minhaAction.teste}"
ajaxSingle="true" /&gt;</pre>
<p>Na minha Action criei a função e através do Events.instance().raiseEvent(<br />
&#8220;hunrumclaudia&#8221;); eu chamei o evento &#8220;hunrumclaudia&#8221;, assim:</p>
<pre class="brush:java">public void teste(){
System.out.println("asdfvvv");
Events.instance().raiseEvent(
"hunrumclaudia");
}
</pre>
<p>Para criar o Observer eu usei o import &#8220;org.jboss.seam.annotations.Observer&#8221; e criei um método com a anotação @Observer e o nome do evento que chamará este observer, no meu caso &#8220;hunrumclaudia&#8221;.</p>
<pre class="brush:java">@Observer("hunrumclaudia")
public void observadorObservanteObservacao(){
System.out.println("ie ie, pegadinha do malandro");
}</pre>
<p>A saída do console será:<br />
11:02:53,333 INFO  [STDOUT] asdfvvv<br />
11:02:53,334 INFO  [STDOUT] ie ie, pegadinha do malandro</p>
]]></content:encoded>
			<wfw:commentRss>http://www.messiasbittencourt.com/81/observer-como-criar-usar-pattern-observer-em-java/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Como evitar Modo de Compatibilidade do IE 8 para IE 7</title>
		<link>http://www.messiasbittencourt.com/219/como-evitar-modo-de-compatibilidade-8-para-7/</link>
		<comments>http://www.messiasbittencourt.com/219/como-evitar-modo-de-compatibilidade-8-para-7/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 14:20:44 +0000</pubDate>
		<dc:creator>Bittencourt</dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[Compatibilidade]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[IE 7]]></category>
		<category><![CDATA[IE 8]]></category>
		<category><![CDATA[IE 8 compatibilidade]]></category>
		<category><![CDATA[Internet Explorer]]></category>

		<guid isPermaLink="false">http://www.messiasbittencourt.com/?p=219</guid>
		<description><![CDATA[Uma dica rápida para o modo de compatibilidade do Internet Explorer. Dependendo da forma como seu sistema foi escrito, ele pode ter comportamentos diferentes para o IE 7 ou IE 8. Em alguns casos, o sistema já foi homologado no Internet Explorer 7 e o cliente resolve usar o Internet Explorer 8, e eis então [...]]]></description>
			<content:encoded><![CDATA[<p>Uma dica rápida para o modo de compatibilidade do Internet Explorer.</p>
<p>Dependendo da forma como seu sistema foi escrito, ele pode ter comportamentos diferentes para o IE 7 ou IE 8.</p>
<p>Em alguns casos, o sistema já foi homologado no Internet Explorer 7 e o cliente resolve usar o Internet Explorer 8, e eis então que o Internet Explorer fica solicitando para que você navegue em modo de compatibilidade para que a tela não fique toda desconfigurada. Porém, o usuário pode se sentir incomodado ao ter que ficar selecionando essa opção, ou mesmo você pode querer que o browser já identifique que é necessário o modo de compatibilidade por padrão.</p>
<p>Para isso basta colocar a linha abaixo na HEAD de sua página.</p>
<pre class="brush:xhtml">&lt;meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/&gt;</pre>
<p>Na página oficial da Microsoft vocês podem encontrar mais detalhes sobre essa funcionalidade:<br />
<a href="http://msdn.microsoft.com/en-us/library/cc817570.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/cc817570.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.messiasbittencourt.com/219/como-evitar-modo-de-compatibilidade-8-para-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exemplo Composite + JSF2</title>
		<link>http://www.messiasbittencourt.com/194/exemplo-composite-jsf2/</link>
		<comments>http://www.messiasbittencourt.com/194/exemplo-composite-jsf2/#comments</comments>
		<pubDate>Wed, 03 Aug 2011 15:31:21 +0000</pubDate>
		<dc:creator>Bittencourt</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[componentes]]></category>
		<category><![CDATA[Composite]]></category>
		<category><![CDATA[criando componentes]]></category>
		<category><![CDATA[JSF]]></category>
		<category><![CDATA[JSF2]]></category>

		<guid isPermaLink="false">http://www.messiasbittencourt.com/?p=194</guid>
		<description><![CDATA[Para criar um componente usando Composite no JSF2 é bem simples. Abaixo vou mostrar um componente que criei para um caso em específico, basta abstrair e usar para o que precisar. No meu caso, o meu projeto fazia uso do primefaces, então caso você use alguma outra biblioteca, basta substituir pelos componentes correspondentes aos que [...]]]></description>
			<content:encoded><![CDATA[<p>Para criar um componente usando Composite no JSF2 é bem simples. Abaixo vou mostrar um componente que criei para um caso em específico, basta abstrair e usar para o que precisar.</p>
<p>No meu caso, o meu projeto fazia uso do primefaces, então caso você use alguma outra biblioteca, basta substituir pelos componentes correspondentes aos que eu usei do primefaces.</p>
<p>Mãos a obra:</p>
<p>Pra começar, existe um padrão em que deve ser criado uma pasta chamada &#8220;resources&#8221; dentro da &#8220;webapp&#8221;, e dentro dela a pasta que será a base de sua lib de componentes, no nosso caso: &#8220;telefone&#8221;.</p>
<p>Dentro da pasta &#8220;telefone&#8221; crie uma xhtml que será o seu componente em sí, telefone.xhtml:</p>
<pre class="brush:xhtml">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:cc="http://java.sun.com/jsf/composite"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.prime.com.tr/ui"&gt;

&lt;cc:interface&gt;
	&lt;cc:attribute name="telefoneExclusao" required="true" /&gt;
	&lt;cc:attribute name="propertyListaTelefone" required="true" /&gt;
	&lt;cc:attribute name="actionNovoTelefone"
		method-signature="void action()" /&gt;
	&lt;cc:attribute name="actionExcluirTelefone"
		method-signature="void action()" /&gt;
&lt;/cc:interface&gt;

&lt;cc:implementation&gt;

	&lt;p:panel header="#{msg['label_componente_telefone_listaTelefones']}"&gt;

		&lt;f:facet name="options"&gt;
			&lt;p:menu&gt;
				&lt;p:menuitem value="#{msg['label_novo']}"
					action="#{cc.attrs.actionNovoTelefone}" ajax="false" /&gt;
			&lt;/p:menu&gt;
		&lt;/f:facet&gt;

		&lt;p:dataTable value="#{cc.attrs.propertyListaTelefone}" var="item"
			id="listaTelefone" update="@form" &gt;

			&lt;p:column&gt;
				&lt;f:facet name="header"&gt;

				&lt;/f:facet&gt;
				&lt;p:inputMask mask="9999-9999" value="#{item.numero}" /&gt;
			&lt;/p:column&gt;
			&lt;p:column&gt;
				&lt;f:facet name="header"&gt;
					&lt;h:outputText value="#{msg['label_ramal']}" /&gt;
				&lt;/f:facet&gt;
				&lt;p:inputMask mask="9999" value="#{item.ramal}" /&gt;
			&lt;/p:column&gt;
			&lt;p:column&gt;
				&lt;f:facet name="header"&gt;
					&lt;h:outputText value="#{msg['label_observacao']}" /&gt;
				&lt;/f:facet&gt;
				&lt;p:inputText value="#{item.observacao}" /&gt;
			&lt;/p:column&gt;
			&lt;p:column&gt;
				&lt;f:facet name="header"&gt;
					&lt;h:outputText value="#{msg['label_excluir']}" /&gt;
				&lt;/f:facet&gt;
				&lt;p:commandButton value="#{msg['label_excluir']}"
					action="#{cc.attrs.actionExcluirTelefone}"&gt;
					&lt;f:setPropertyActionListener
						target="#{cc.attrs.telefoneExclusao}" value="#{item}" /&gt;
				&lt;/p:commandButton&gt;
			&lt;/p:column&gt;
		&lt;/p:dataTable&gt;
	&lt;/p:panel&gt;
&lt;/cc:implementation&gt;
&lt;/html&gt;</pre>
<p>Algumas considerações devem ser feitas sobre meu componente acima, por exemplo:</p>
<p>value=#{msg['label_novo']}</p>
<p>Essa variável msg é um Helper que eu criei para buscar valores do meu Bundle, no caso de quem estiver fazendo isso do zero, basta usar value=&#8221;Novo&#8221; que vai funcionar perfeitamente.</p>
<p>Quanto a minha interface:</p>
<pre class="brush:java">&lt;cc:interface&gt;
	&lt;cc:attribute name="idTelefoneExclusao" required="true" /&gt;
	&lt;cc:attribute name="propertyListaTelefone" required="true" /&gt;
	&lt;cc:attribute name="actionNovoTelefone"
		method-signature="void action()" /&gt;
	&lt;cc:attribute name="actionExcluirTelefone"
		method-signature="void action()" /&gt;
&lt;/cc:interface&gt;</pre>
<p>Você irá precisar passar para o componente &lt;telefone:telefone&gt; os seguintes atributos:</p>
<p>telefoneExclusaoactionNovoTelefoneactionExcluirTelefone</p>
<pre class="brush:java">&lt;f:setPropertyActionListener target="#{cc.attrs.telefoneExclusao}" value="#{item}" /&gt;</pre>
<p>No meu TesteMBean.java criei as entidades e métodos a seguir:</p>
<pre class="brush:java">	private List&lt;TelefoneEntity&gt; listaTelefone;
	private TelefoneEntity telefoneExclusao;

	@PostConstruct
	public void initialize() {
		if(conversation.isTransient())
			conversation.begin();

		listaTelefone = new ArrayList();
		TelefoneEntity o = new TelefoneEntity();

		o.setId(1L);
		o.setNumero("1231-2223");
		o.setObservacao("obs");
		listaTelefone.add(o);
	}

	public void excluirTelefone(){
		telefoneExclusao.getId(); // crie aqui seu metodo de excluir o telefone
	}

	public void novoTelefone(){
		if(listaTelefone == null){
			listaTelefone = new ArrayList();
		}
		TelefoneEntity o = new TelefoneEntity();

		o.setId(2L);
		o.setObservacao("novo");
		listaTelefone.add(o);
	}</pre>
<p>Meu TesteMBean é apenas um exemplo, pois cada um deve implementar conforme as suas necessidades.</p>
<p>Por fim, para usar o componente basta apenas chamá-lo passando os parametros correspondentes aos que criamos.</p>
<pre class="brush:xhtml">
&lt;telefone:telefone
   propertyListaTelefone="#{testeMBean.listaTelefone}"
   actionExcluirTelefone="#{testeMBean.excluirTelefone}"
   actionNovoTelefone="#{testeMBean.novoTelefone}"
   telefoneExclusao="#{testeMBean.telefoneExclusao}" />
</pre>
<p>Não esquecendo de importar o componente lá no cabeçalho do xhtml:</p>
<pre class="brush:xhtml">
&lt;ui:composition xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:p="http://primefaces.prime.com.tr/ui"
	xmlns:telefone="http://java.sun.com/jsf/composite/telefone">
</pre>
<p>Ele ficará assim:<br />
<div id="attachment_204" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.messiasbittencourt.com/wp-content/uploads/2011/08/componente.png"><img class="size-medium wp-image-204" title="Componente telefone" src="http://www.messiasbittencourt.com/wp-content/uploads/2011/08/componente-300x36.png" alt="Componente telefone" width="300" height="36" /></a><p class="wp-caption-text">Componente Telefone</p></div></p>
]]></content:encoded>
			<wfw:commentRss>http://www.messiasbittencourt.com/194/exemplo-composite-jsf2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exception &#8211; org.hibernate.PersistentObjectException: detached entity passed to persist</title>
		<link>http://www.messiasbittencourt.com/185/erro-org-hibernate-persistentobjectexception-detached-entity-passed-persist/</link>
		<comments>http://www.messiasbittencourt.com/185/erro-org-hibernate-persistentobjectexception-detached-entity-passed-persist/#comments</comments>
		<pubDate>Mon, 01 Aug 2011 19:50:18 +0000</pubDate>
		<dc:creator>Bittencourt</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Exception]]></category>
		<category><![CDATA[Hibernate]]></category>

		<guid isPermaLink="false">http://www.messiasbittencourt.com/?p=185</guid>
		<description><![CDATA[Ao usar meu entityManager para persistir alguma entidade, o Hibernate lançava a seguinte exceção: org.hibernate.PersistentObjectException: detached entity passed to persist: bla bla bla bla bla Pesquisando nas internets descobri que essa exceção é lançada pelo Hibernate quando você está trabalhando em uma entidade que ele ACHA que não está persistida no banco de dados. Ou [...]]]></description>
			<content:encoded><![CDATA[<p>Ao usar meu entityManager para persistir alguma entidade, o Hibernate lançava a seguinte exceção:<br />
<b>org.hibernate.PersistentObjectException: detached entity passed to persist: bla bla bla bla bla</b></p>
<p>Pesquisando nas <a href="http://www.google.com" target="_blank">internets</a> descobri que essa exceção é lançada pelo Hibernate quando você está trabalhando em uma entidade que ele ACHA que não está persistida no banco de dados. Ou que ao menos, se está no banco, não foi ele quem gravou.</p>
<p>O fato é que isso só acontecia quando eu mandava persistir uma entidade em que eu gostaria de efetuar um &#8220;UPDATE&#8221;.</p>
<p>Como todas as minhas classes de entidade extendem de AppEntity, foi só ajustar meu método genérico pra ficar como o abaixo:</p>
<pre class="brush:java">
@PersistenceContext
EntityManager entityManager;

public T persist(T entidade) {
   if(((AppEntity)entidade).getId()!=null){
      getEntityManager().merge(entidade);
   }else{
      getEntityManager().persist(entidade);
   }
   return entidade;
}
</pre>
<p>Simples, quando for uma nova entidade use o persist(entidade), quando for update use o merge(entidade).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.messiasbittencourt.com/185/erro-org-hibernate-persistentobjectexception-detached-entity-passed-persist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JBoss AS 7 + MySQL</title>
		<link>http://www.messiasbittencourt.com/168/jboss-7-mysql/</link>
		<comments>http://www.messiasbittencourt.com/168/jboss-7-mysql/#comments</comments>
		<pubDate>Fri, 29 Jul 2011 13:11:45 +0000</pubDate>
		<dc:creator>Bittencourt</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Driver]]></category>
		<category><![CDATA[JBoss]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PersistenceContext]]></category>

		<guid isPermaLink="false">http://www.messiasbittencourt.com/?p=168</guid>
		<description><![CDATA[Se você quer rodar sua aplicação no JBoss AS 7 e quer usar MySQL você precisa seguir alguns poucos passos. Por exemplo, no persistence.xml você configura sua persistence-unit assim: &#60;?xml version="1.0" encoding="UTF-8"?> &#60;persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"> &#60;persistence-unit name="imobiliaria" transaction-type="JTA"> &#60;provider>org.hibernate.ejb.HibernatePersistence&#60;/provider> &#60;jta-data-source>java:/imobiliaria&#60;/jta-data-source> &#60;properties> &#60;property name="hibernate.show_sql" value="true" /> &#60;property name="hibernate.format_sql" value="false" /> &#60;property name="hibernate.hbm2ddl.auto" value="create-drop" [...]]]></description>
			<content:encoded><![CDATA[<p>Se você quer rodar sua aplicação no JBoss AS 7 e quer usar MySQL você precisa seguir alguns poucos passos.</p>
<p>Por exemplo, no persistence.xml você configura sua persistence-unit assim:</p>
<pre class="brush:xml">
&lt;?xml version="1.0" encoding="UTF-8"?>
&lt;persistence xmlns="http://java.sun.com/xml/ns/persistence"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
	version="1.0">
	&lt;persistence-unit name="imobiliaria" transaction-type="JTA">
		&lt;provider>org.hibernate.ejb.HibernatePersistence&lt;/provider>
		&lt;jta-data-source>java:/imobiliaria&lt;/jta-data-source>
		&lt;properties>
			&lt;property name="hibernate.show_sql" value="true" />
			&lt;property name="hibernate.format_sql" value="false" />
			&lt;property name="hibernate.hbm2ddl.auto" value="create-drop" />
			&lt;property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
		&lt;/properties>
	&lt;/persistence-unit>
&lt;/persistence>
</pre>
<p>Sendo assim, com apenas um persistence-unit você não precisa configurar seu @PersistenceContext, ficando assim:</p>
<pre class="brush:java">@PersistenceContext
EntityManager entityManager;</pre>
<p>Caso você tenha mais de um persistence-unit em seu persistence.xml, você deverá usá-lo dessa forma:</p>
<pre class="brush:java">@PersistenceContext(name="meu_persistence_unit_name")
EntityManager entityManager;</pre>
<p>Além disso, também é necessário colocar o Driver como módulo pro JBoss AS 7.<br />
Dentro da pasta onde você instalou o JBoss AS 7, existe a pasta &#8220;modules&#8221;, dentro dela existe a pasta &#8220;com&#8221;, dentro dela você criará a pasta &#8220;mysql&#8221;, e dentro dela, a pasta &#8220;main&#8221;.<br />
Dentro da pasta main, você criará um arquivo chamado &#8220;module.xml&#8221; com o conteúdo:</p>
<pre class="brush:xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;module xmlns="urn:jboss:module:1.0" name="com.mysql"&gt;
  &lt;resources&gt;
    &lt;resource-root path="mysql-connector-java-5.1.17-bin.jar"/&gt;
  &lt;/resources&gt;
  &lt;dependencies&gt;
    &lt;module name="javax.api"/&gt;
  &lt;/dependencies&gt;
&lt;/module&gt;</pre>
<p>Onde em path=&#8221;mysql-connector-java-5.1.17-bin.jar&#8221; será o nome do seu mysql-connector. Este arquivo também deverá estar dentro da pasta: &#8220;modules/mysql/main&#8221;</p>
<p>Por fim, basta configurar o arquivo standalone.xml que está na pasta &#8220;jboss/standalone/configuration&#8221; adicionando o seu datasource, como abaixo:</p>
<pre class="brush:xml">&lt;datasource jndi-name="java:/imobiliaria" pool-name="imobiliaria" enabled="true" jta="true" use-java-context="true" use-ccm="true"&gt;
   &lt;connection-url&gt;
      jdbc:mysql://localhost/imobiliaria
   &lt;/connection-url&gt;
   &lt;driver&gt;
      com.mysql
   &lt;/driver&gt;
   &lt;security&gt;
      &lt;user-name&gt;
         root
      &lt;/user-name&gt;
   &lt;password&gt;

   &lt;/password&gt;
   &lt;/security&gt;
&lt;/datasource&gt;</pre>
<p>E adicionar o driver dentro do nó &lt;drivers&gt;:</p>
<pre class="brush:xml">&lt;driver name="com.mysql" module="com.mysql"&gt;
   &lt;xa-datasource-class&gt;
      com.mysql.jdbc.jdbc2.optional.MysqlXADataSource
   &lt;/xa-datasource-class&gt;
&lt;/driver&gt;</pre>
<p>Como podem ver, é bem tranquilo. Segue abaixo um link relacionado ao assunto:</p>
<p><a href="http://kousikraj.wordpress.com/tag/jboss-as-7-server-adapter-for-eclipse/">http://kousikraj.wordpress.com/tag/jboss-as-7-server-adapter-for-eclipse/</a> &lt;- Instalando o adaptador do JBoss 7 no Eclipse</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.messiasbittencourt.com/168/jboss-7-mysql/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Eclipse: There are no resources that can be added or removed from the server</title>
		<link>http://www.messiasbittencourt.com/139/eclipse-resources-added-removed-server/</link>
		<comments>http://www.messiasbittencourt.com/139/eclipse-resources-added-removed-server/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 12:29:14 +0000</pubDate>
		<dc:creator>Bittencourt</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Adicionar projeto]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Glassfish]]></category>
		<category><![CDATA[JBoss]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Tomcat]]></category>

		<guid isPermaLink="false">http://www.messiasbittencourt.com/?p=139</guid>
		<description><![CDATA[Se você criou um projeto via maven ou importou esse projeto e ele não está sendo reconhecido pelo eclipse como um Dynamic Web Project, isso vai fazer com que o plugin WTP do Eclipse não consiga adicionar seu projeto aos servers: Glassfish ou JBoss Server. Eu tive esse problema usando Glassfish v3 e Eclipse Indigo, [...]]]></description>
			<content:encoded><![CDATA[<p>Se você criou um projeto via maven ou importou esse projeto e ele não está sendo reconhecido pelo eclipse como um Dynamic Web Project, isso vai fazer com que o plugin WTP do Eclipse não consiga adicionar seu projeto aos servers: Glassfish ou JBoss Server.</p>
<p>Eu tive esse problema usando Glassfish v3 e Eclipse Indigo, depois de encontrar uma solução, resolvi compartilhar essa dica rápida, segue abaixo.</p>
<p>A mensagem que estava sendo listada pra mim era:</p>
<p>&nbsp;</p>
<div id="attachment_141" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.messiasbittencourt.com/wp-content/uploads/2011/07/sem-projeto.png"><img class="size-medium wp-image-141" title="Eclipse: There are no resources that can be added or removed from the server" src="http://www.messiasbittencourt.com/wp-content/uploads/2011/07/sem-projeto-300x81.png" alt="" width="300" height="81" /></a><p class="wp-caption-text">Eclipse: There are no resources that can be added or removed from the server</p></div>
<p>Encontrei <a href="http://victorhogemann.blogspot.com/2009/07/comecando-com-o-maven.html" target="_blank">aqui</a> esse tutorial que passa esse comando:</p>
<pre>mvn -Dwtpversion=2.0 eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true</pre>
<p>Update, se você usa m2eclipse você pode usar também:</p>
<pre>import maven project</pre>
<p>ps: Não fiz o teste.</p>
<p>Clique em seu projeto com o botão direito, vá em Run: Maven Build e cole o comando acima.</p>
<p><a href="http://www.messiasbittencourt.com/wp-content/uploads/2011/07/run.png"><img class="aligncenter size-medium wp-image-143" title="run" src="http://www.messiasbittencourt.com/wp-content/uploads/2011/07/run-283x300.png" alt="" width="283" height="300" /></a></p>
<p>Esse comando vai pegar o POM do projeto e adicionar as dependencias em seu classpath, além de converter o seu projeto em um projeto web.<br />
Pra que isso funcione, você precisará ter o plugin M2 do Maven devidamente instalado.</p>
<p>Funcionou comigo e agora o eclipse reconhece meu projeto como um projeto web normalmente e caso eu precise adicionar ou remover novas dependências, basta usar novamente este comando. Uma grande vantagem do projeto ser gerenciado via Eclipse é o fato que seu HOTDEPLOY vai funcionar perfeitamente.</p>
<p>Além disso sua estrutura e seu pom não foram modificados, então você poderá continuar utilizando seu projeto via Maven (com o HUDSON), ou facilitando a configuração do projeto em uma outra máquina (ambientes corporativos que precisam de vários desenvolvedores no projeto.<strong> Dica: evitem commitar o .classpath <img src='http://www.messiasbittencourt.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.messiasbittencourt.com/139/eclipse-resources-added-removed-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

