Saiu há alguns dias o Netbeans 6 M10. Eu já havia feito alguns testes com a M9 e estava ávido pelo lançamento da M10!
A lista de coisas novas é relativamente extensa, mas eu queria saber basicamente como estava a performance, porque na última tentativa deixou a desejar. Atualmente estou usando o 5.5.1 e o que se diz é que a versão 6 foi totalmente reconstruída.
Como sou preguiçoso para ler o que foi feito, fui direto na IDE e comecei um projeto JEE para ver como se comportava o brinquedo!
Adicionei o driver do Oracle, crie uma conexão com o servidor... So far, so good! Criei uma nova Persistence Unit e... wow, agora ele traz certinho o "java:/" na frente do meu Oracle-DS previamente configurado no meu JBoss velho de guerra! Sim, porque na M9 ele não trazia e depois, obviamente, não conseguia fazer lookup!
Pedi para ele criar um entity bean e... espera, espera, espera... ok, meu banco é relativamente grande! Pronto, conseguiu montar o scheme do banco! Selecionei uma, duas, três tabelas relacionadas... e pronto, lá estavam meus entities criados com anotações e relacionamentos. Agora vou criar a facade. Novo session bean a partir de uma entitie, certo? Hummm... não foi desta vez. Ainda não está funcionando, a lista de entities está vazia e não há como selecionar. Bem, é por isso que se chama milestone, né? Gerei um session bean no old style e implementei um método dummy para ver o que acontece.
Deploy e... parece bom!
Caindo na aplicação web, de cara percebo que ficou mais simples de se utilizar o Visual Web Pack. Da para simplesmente adicionar como framework no projeto. Até a versão 5.5.1 eu precisava criar uma nova aplicação visual, excluir a aplicação web default e incluir a visual... não era muito inteligente, mas funcionava. Bem, de cara tem a velha situaçao que eu tinha na M9. O JBoss usa a versao 1.2 do JSF, mas a IDE tem a 1.1. Sabe o que acontece se empacotar a 1.1 e executar deploy? Crash, boom, bang! Uma opção seria, no web.xml, setar o parâmetro org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL para true, mas eu prefiro simplesmente excluir a JSF 1.1 RI Runtime do deploy e deixar o JBoss usar as dele. Para acessar o método dummy da minha facade eu preciso de um service locator e aí o netbeans mostra a cara. Basta pedir um novo CachedServiceLocator e ele te presenteia com uma bela classe com um map para manter cache dos caras solicitados! Melhor que a encomenda! Criei uma nova página e simplesmente jogo na tela o que retorna do meu método invocado lááá da minha facade. Executar projeto e... funciona! O ear gerado ficou horrorosamente grande, porque incluiu o schema do banco. Daria para excluir aquele JBOSS-DS.xml também, uma vez que estou usando um datasource no JBoss. Mas de uma forma geral consegui terminar meu teste com sucesso!
Concluo dizendo que, embora o editor pareça um pouco mais esperto, não senti um grande ganho de desempenho. Gostei dos refactorings adicionais, mas acho que ainda falta um pouco para chegar ao nível do Eclipse ou do IntelliJ. Ainda falta habilitar algumas das coisas que eu uso diariamente, como a geração de Session Beans a partir de Entities (as famigeradas Facades), mas ja tem os menus de contexto de EJB Methods que não tinha na M9. Obviamente não se pode esperar funcionalidade total porque se trata de uma milestone, mas mandou muito bem! Fico no aguardo de uma beta! A previsão para final é novembro! Se tudo funcionar como previsto, essa versão 6 do Netbeans tem tudo para se tornar o "the one ring" do desenvolvimento java pelos próximos tempos!
Salvando e compilando.