sexta-feira, junho 23, 2006

Trabalhando com Dominios Virtuais no GlassFish

Este artigo demonstra como trabalhar com dominios virtuais no GlassFish , muito interesssante para aquelas pessoas que estao acostumadas a mesclar Aache com Tomcat só por preguissa de aprender como realizar dominios virtuais no mesmo :P


ps: O GlassFish utiliza uma implementacao do Tomcat modificada ( trocaram o suporte de I/O nativo por um suporte totalmente reescrito usando java.nio) chamado Grizzly

quarta-feira, junho 21, 2006

Java EE 5 virou musica :P

Banaca a iniciativa... meio ridicula , admito... mas neste mundo voce morre a nao vê tudo...

The Java EE 5 Music !

Ladies and gentlemen, this is Java EE 5!

One, two, three, four, five
There's a technology I use day and night
For my application with a web frontend
They told me to use .Net
But I really don´t wanna

So many bugs I fixed last week.
My code is neat and talk is a cheap
I like Glassfish, JSF, persistence API
And as I continue you know they´re gettin´ sweeter

So what can I do I really beg you my Lord
To me codin' it´s just like a sport
All the bad code from the past, let me dump it
Please set in the trumpet

A little bit of injection in my life
A little bit of persistence by my side
A little bit of NetBeans is all I need
A little bit of EJB's what I see
A little bit of standards in the sun
A little bit of XML all night long
A little bit web services here I am
A little bit of code makes me real man

This is Java EE 5!

Jump up and down and move your code around
Shake your head to the sound bury bad code under ground
Move one step left and one step right
One to the front and one to the side
Refactor it once and refactor it twice
If it looks like this you're doin´ it right

A little bit of injection in my life
A little bit of persistence by my side
A little bit of NetBeans is all I need
A little bit of EJB's is what I see
A little bit of standards in the sun
A little bit of XML all night long
A little bit web services here I am
A little bit of code makes me real man

This is Java EE 5!

NetBeans 5.5 Enterprise Pack e UML

Este é um demo de como funciona a parte de UML no NetBeans 5.5 utilizando o Enterprise Pack 5.5 Beta, simplemente emocionante...

Quem usou alguma vez o EclipseUML sabe do que estou falando...

NetBeans e Ajax !

Neste demo é demonstrado o uso do plugin para a biblioyrvs jMaki, ele possibilita trabalhar com ajax com alguns componentes prontos e de forma MUITO simples (e integrada ao NetBeans)... deem uma olhada...

NetBeans 6 mais colorido !

Um artigo demonstrando uma das novidades do NetBeans 6 ( que está por vir ) , neste artigo é demonstrado o novo sistema de cores para os projetos.

NetBeans Mobility Pack Demo

Quem gosta de JME vai achar este demo algo simplemente espetacular... Interessante é ver como
não é um bicho de sete cabeças... Demo bastante completo...

Porque desenolvedores Eclipse estão tentados a ir para o NetBeans ?

Bem , tenho aqui três belos motivos:

Motivo 1
Motivo 2
Motivo 3

Resumindo... a plataforma NetBeans e o IDE NetBeans está evoluindo a passos BEM LARGOS, enquanto as novidades do Eclipse estão sempre amarradas ao "editor de codigo" , Estes tres motivos mostrao bem o intuito do NetBeans em ser o MELHOR IDE JAVA. Hoje NetBeans só não é melhor que o editor de codigo do eclipse , o resto... ganha com uma bela diferenca...

Google Web Toolkit agora com Suporte no NetBeans

Adicionado suporte ao GWT para o NetBeans , vide mais explicações aqui e baixe aqui

domingo, junho 18, 2006

Mais um louco no pário

O pessoal da TMaxSoft conseguiu passar no teste de compatibilidade do JEE 5 , é o segundo container ( depois do GlassFish , R.I. ) a estar na lista de containers certificados pela Sun. Muito interessante saber que o mercado esta respondendo muito rapidamente a implementação do JEE 5 , muitos comentarios são escritos criticando a simplicidade da plataforma JEE 5 ( alguns até com uma certa razão ) , é bom saber que pelo visto são apenas comentarios e não refletem o mercado. Uma coisa que me deixou bastante triste é saber que a JBoss não anda muito empolgada em lançar a versão 5 de seu AS de forma rápida , o que eles tem hoje é um container PESADO e misturado com EJB 3 e um suporte horrível no IDE Eclipse, quando será que eles vão acordar ? A egemonia da JBoss no campo OpenSource está com seus dias contados , containers livres e mais leves que o JBoss estão nascendo de forma incrivel ( JOnAs , GlassFish , etc.. ). Estou testando o GlassFish a cerca de um mês e posso dizer uma coisa , além de mais leve ( MUITO MAIS LEVE ) ele é mais facil de mecher e tem um desempenho melhor que o JBoss , fora a BugTrack que é um show de bola, o pessoal responde MUITO rapidamente as questões/bugs.

What's New in Java SE 6 Beta 2 (Mustang)

Muito se fala em .Net 2.0 no mercado, qual seria a resposta da Sun ? Armada até os dentes a Sun responde com JEE 5 + Java SE 6 + NetBeans 6 , mostrando assim a força da comunidade OpenSource aliada com a interminal lista de adoradores da plataforma Java. O Java SE 6 chega a sua versão beta 2, com várias novidades :

WebServices

Java SE 6 virá com um suporte inovador a WebServices diretamente no CORE ( antes apenas disponivel com WSDP) Geração de aplicações client vão se tornar muito mais faceis , por exemplo, você poderá expor suas api's de forma fácil com uma simples anotação.

Scripting

Java SE 6 tem consigo a implementação da JSR que regulamenta a utilizacao de linguagens de scripting para a plataforma Java , Nesta versão esta esperada implementação da linguagem ECMA Script (JavaScript). JavaScript é apenas uma das linguagens possiveis , caso vc seja um cabeção poderá implementar a sua propria engine ;)

DataBase

Java SE 6 SDK trará o JavaDB inbutido. JavaDB é uma "cópia turbinada" do banco de dados da Apache chamada Derby. Interessante , o driver JDBC já estará incluso tambem , porem apenas no JDK , o JRE continuará sem. Issó é interessante para aquelas horas em que você quer rodar um exemplo e nao tem nenhum DB instalado para isto. Outra coisa empolgante é o JDBC 4.0 , a nova especificação do JDBC deixou tudo muito mais interessante, várias funcionalidades "a lá entity" foram adicionadas, deixando cada vez mais pratica a programação JDBC direta ( o pessoal fã de DAO vai adorar)

Novas API's para Desktop

Splash Screen , Filtros e ordenação com JTable , suporte mais apurado para Drag and Drop, eficiencia da HotSpot Client VM de até 58% superior em apps com Swing e SwingWorker no CORE são apenas alguns exemplos das novidades contidas nesta versão do Java SE.

Uma lista mais apurada pode ser encontrada aqui. O que é o mais interessante é que enquanto .Net tras um monte de baboseiras que TODO MUNDO JÁ VIU e chama isso de NOVIDADE , a plataforma Java chega a sua versão 6 de forma madura e estável, com novidades plausiveis e aprovadas por quem mais entende de software no MUNDO , os desenvolvedores.

sábado, junho 17, 2006

Férias...

Diretamente de salvador , estou curtindo minhas micro-ferias de 2 dias :P , porem estou armado com um notebook e minha instalacao do NetBeans... e por incrivel que pareca... estou trabalhando algumas horas por dia.... EH MOLE ?

quinta-feira, junho 08, 2006

WebBeans !

Aprovado a proposta de Gavin King para a padronização de seus WebBeans ( JBoss Seam Framework , uma mistura de JSF + EJB ) , interessante como o Gavin aprendeu que nao existe aceitação universao sem existir um padrão claro para o mercado...parabens Gavin !

quarta-feira, junho 07, 2006

Why GlassFish ?



Achei um artigo ( talvez o primeiro ) mostrando alguns motivos para você usar GlassFish , confesso que alguns deles são bem forçados... mas no geral até que vale a pena ;D

• GF is an Open Source, Community Based implementation of Java EE 5.
• Java EE 5 is a huge improvement over earlier J2EE versions (J1 Keynotes).
• GF is Production Quality and has very Good Performance.
• GF is delivered in SJS AS 9.0, Java EE 5 SDK, and NetBeans 5.5.
• GF has already affected adoption and is getting analyst attention [1], [2].
• GF is used by other groups like in JEUS 6 Preview from TMaxSoft.
• GF has many goodies, including Java DB and Java Blueprints.
• GF is committed to your favorite framework.
• GF is at the forefront of JPA adoption.
• GF Web Services stack is very good and it is getting better and better.
• GF's Grizzly delivers top Web Tier performance and flexibility.
• GF has Developer Support, Training and more.
• GF supports AJAX and Scripting.
• GF has platform and tool SOA support, including JBI and BPEL.
• GF is used directly for the official Reference Implementation of Java EE 5.
• GF is the code base for the Sun Java System Application Server.
• GF will incorporate the enterprise features available today in SJS AS 8.x.
• Many components are in the Maven Repository; and more soon.
• We are already working on the next releases (more).

segunda-feira, junho 05, 2006

IoC em JSF Custom Validators/Converters

Bem , como todos já sabem , estou brincando de EJB 3 neste ultimo mês , naturalmente descobri algumas coisas empolgantes , outras nem tanto... um coisa meio boba que eu descobri ( e tive a confirmação ) foi que se você tem um validador personalizado ou um conversor personalizado , o IoC do container não vai funcionar, você terá que fazer lookup manualmente , coisa mais besta né ? tá tudo dentro do mesmo container deveria ter da mesma forma...

Bom , fui informado por um pessoal da lista do GlassFish de como "burlar" este problema , funciona legal se você não tiver mais que um validador no campo em questão... o truque consiste em emular um "session bean" passando o bean como validator... ex:

h:inputText value="#{bean.prop}" validator="#{biz.validate}"

public class Biz {

@EJB
private MyLittleLocal localBean;

public void validate(FacesContext, UIComponent, Object)
throws ValidationException {
if (!localBean.bizTest((BizObject) obj)) {
throw new ValidationException(...);
}
}
}

E viva o JEE 5 hehe :P

sexta-feira, junho 02, 2006

Hibernate 3 & EJB 3

Tive alguns probleminhas utilizando o Hibernate 3.2 Cr2 como persistencia para meus Entity Beans 3, bom... o problema não está BEM no hibernate , e sim na nova versão do EhCache Provider ( versao 1.2 ) , ao fazer redeploy de seu app ou de algum outro app no mesmo container que esteja usando entidades , vc vai ter um erro do tipo:
Caused by: javax.persistence.PersistenceException:
org.hibernate.cache.CacheException: Attempt to
restart an already started EhCacheProvider.
Use sessionFactory.close() between repeated calls
to buildSessionFactory. Consider using
net.sf.ehcache.hibernate.SingletonEhCacheProvider.
Error from ehcache was: Cannot parseConfiguration
CacheManager. Attempt to create a new instance of
CacheManager using the diskStorePath "/tmp" which
is already used by an existing CacheManager.


Pois bem , apartir disso nada mais funciona. Até
arrumarem essa desgrama do
EhCache 1.2 eu resolvi o problema trocando ele
por outro provedor de cache mais simples,
vá até seu persistence.xml e adicione esta linha:
property name="hibernate.cache.provider_class"
value="org.hibernate.cache. HashtableCacheProvider"
Agora a coisa toda volta a funcionar , espero que arrumem isso logo...
pois o EhCache é um provider bem completo.

quinta-feira, junho 01, 2006

Resources no JEE 5

Você já deve ter perdido tempo fazendo diversos lookups em resources (JDBC entre outros) , pois bem , com JEE 5 você consegue usar algo chamado IoC , Inverse of Control ( já presente em framework como SpringFramework a ANOS , porem nunca padronizado, e cheio de XML's ) , vc pode fazer que o proprio container JEE insira o objeto diretamente em sua propriedade ( via reflection é CLARO ) , vamos a um exemplo:

Suponhamos que você tenha um resource JDBC chamado "jdbc/ConexaoSistemaUsuarios" e quer usar esta conexao dentro de um bean... normalmente vc precisaria fazer um lookup deste resource e fazer um CAST para DataSource, em JEE 5 fica:

@Resource(name="jdbc/ConexaoSistemaUsuarios")
private DataSource dsUsSys;

Pronto , logo que ouver a criação do seu bean o container vai inserir o resource diretamente na sua propriedade dsUsSys , sem haver a necessidade de codigo de lookup entre outros. Veja outros exemplos:

Resource de JMS
@Resource(name="jms/MinhaQueue")
private Queue minhaQueue;
Resource de Email
@Resource(name="mail/MyMail") 
private javax.mail.Session ms;

Resource de Contexto do EJB
@Resource
javax.ejb.SessionContext ctx
Resource de TimerService
@Resource
javax.ejb.TimerService ts;
O IoC do JEE 5 tem bastante particularidades , veja aqui algo mais completo sobre esse recurso.

Utilizando Hibernate no GlassFish

Bem , como eu havia comentado no post anterior , eu consegui usar o Hibernate no GlassFish de forma muito facil, vou descrever os passos que eu fiz (tutorial traduzido):

  1. Realize o Download e Instale o GlassFish v2 b05 ( ou mais atual , eu testei com o b03)
  2. Realize o Download do Hibernate 3.2Cr2 ( ou mais atual )
  3. Realize o Download do Hibernate EntityManager 3.2Cr2 ( ou mais atual )
  4. Copie os arquivos para o diretorio "lib"do glassfish , este script ajuda você a saber quais arquivos copiar, mas atenção , alguns arquivos podem estar atualizados e você deve copiar na mão aqueles que derem erro no script
  5. Acerte seu arquivo persistence.xml como neste exemplo
  6. Reinicie o GlassFish e faça o redeploy de sua aplicação
Simples não ?

quarta-feira, maio 31, 2006

Glasfish v2 build 04


GlassFish v2 b04
Building an Open Source Java EE 5 Application Server

Saiu o novo build do servidor de aplicações GlassFish ( JEE 5 R.I.) , bem , como todos já sabem estou trabalhando com o GlassFish a 3 semanas , bem , passado a animação inicial eu tenho pontos positivos e negativos sobre este container:

Enterprise Java Beans 3
Realmente eu tinha motivos para estar animado com a nova versão do trio parada dura... se mostraram MUITO tranquilos de se mecher , e o IoC provido pelo container é extremamente funcional, nao me deixou na mao ainda :P Trabalhar com JTA + Entity Beans é simplesmente perfeito , o EntityManager provem uma interação transparente para a persistencia ( o EntityMAnager é uma especie de "session"do hibernate que é injetada via IoC no bean , é só colocar @PersistentContext private EntityManager em , pronto , é só sair usando). Uma coisa boa tambem das Entity Beans é o mapeamento ser feito totalmente via Annotations, outra vantagem disso é que existem Tools bem avançados para engenharia reversa JDBC->Entiy Beans , tem o HibearnateTools e o NetBeans 5.5. Tive alguns probleminhas para me adaptar com o TopLink (um "hibernate"da Oracle que vem por padrao no GlassFish) , as mensagens de erro dele são muito confusas, entao fiz o que parecisa impossivel hj em dia , troquei o TopLink por Hibernate 3.2, isso mudando uma linha no persistence.xml , puft ! tudo funcionando e consegui pegar a mensagem de erro e arrumar( sim o Hibernate funciona perfeitamente no GlassFish , afinal o Hibernate 3.2 e a implementação da JSR 220). Um ponto negativo é que o mapeamento tornou-se um pouco mais complicado que os hbm.xml , ainda mais prq o help ainda é muito escasso ( e eu nao to afim de ler a spec da jsr 220)

Oracle TopLink (ORM)
Tirando as mensagens de erro muito pouco explicativas , ele se mostrou bastante estavel. Acho que é uma questao de costume até adaptar-se com sua forma de expressar os problemas. O que me deixou muito feliz foi o fato de poder substituir o sistema de persistencia INTEIRO apenas trocando uma linha de um XML ( que ao contrario dos XML do EJB 2.1 , tinha apenas 5 linhas).

Grizzy (Web Server)
Se mostrou estavel e performatico(se eh que esta palavra existe) , fiquei feliz em saber que o pessoal da Sun pegou o tomcat e recodificou a parte de I/O usando a java.nio , deixando assim mais turbinado, mas nao usei MUITOS recursos dele... o legal é a configuração , que é feita pelo adminConsole , MUITO BOM, experimente.

NetBeans 5.5 Beta Integration
Tirando alguns problemas com o utilitario de engenharia reversa JDBC->EntityBeans dele , o resto foi muito bom , e estavel... Baixei o Build Noturno de hoje e percebi que o pequeno "probleminha"já foi resolvido... menos mal. A integração é perfeita , além do Deployment remoto , ele oferece uma administração parcial via IDE mesmo , sem a necessidade de entrar no adminConsole via web.

JavaServer Faces 1.2
Bem , não testei muito , mas o pouco que testei se mostrou estavel... estou usando ele com o Tomahawk 1.1.2 , esta perfeito, mas os testes definitivos vou começar a realizar esta semana.

WebServices
Ainda nao testei o suficiente.

Resumindo , esta valendo bastante a pena.... mas fiquem de olho , problemas existem e estarei relatando aqui logo que encontrar eles. JEE 5 esta se mostrando muito produtivo e ao mesmo tempo empolgante, afinal , onde antes existiam quilos de codigo repetitivo , agora isso sumiu , e para quem integrava EJB 2.1 com Hibernate , tem uma felicidade maior , afinal , session.getCurrentSession() nunca mais.

Para aqueles que tem hibernate e estao pesando em migrar para Entiy Beans 3 , a sintaxe muda bastante, principalmente nos mapeamentos ( se vc usar hibernate Annotations fica igual) , mas o que mais muda são a remoção de codigo que antes era necessario e agora não é mais... Isso pode exigir as vezes até um refactoring do seu projeto inteiro ( pelo menos para mim precisou., no meu caso eu separei o que antes era só JSF para EJB + JSF )




segunda-feira, maio 29, 2006

Código fonte do Java Disponível

A Sun disponibilizou o codigo do J2SE 5 ( sob licenca SCSL) , será o começo do fim ? acho que não , se Deus permitir , o Java continuara controlado pela JCP.

domingo, maio 28, 2006

Eclipse 3.2



Bem , ae estao as novidades do Eclipse 3.2, nao existe NENHUMA grande vantagem em migrar para o 3.2 , minha recomendação é que se você tem zilhares de plugins para o 3.1 , fique nele mesmo. Para variar... milhoes de frescuras na parte do editor.... facilidade para a vida do desenolvedor de aplicações enterprse NENHUMA, NENHUMA facilidade... sempre empurrando para os plugins de terceiros o trabalho.... como eu sempre digo , está ae a diferenca de uma IDE feita em Java (Eclipse) e uma feita PARA o Java (NetBeans).

Espero sinceramente que o pessoal do JBossIDE tome vergonha na cara e aprenda a desenvolver um plugin menos inutil.