Voltando a vida normal após o susto, e ter perdido várias implementações de ESB e de Seam, resolvi concentrar em algo novo para distrair, o esbgen module.
Quando você baixa o JBoss ESB, talvez pelos conceitos, ou por certa complexidade nas inúmeras possibilidades de protocolos, ações e etc, nos perdemos por onde começar quando queremos criar um projeto ESB. Sendo assim, inspirado em várias ferramentas similares, criei um módulo para o ESB que é um assistente para criação de projetos usando um utilitário de linha de comando. Veja os exemplos aqui:
Figura 1- Criando o Projeto inicial.
Projeto ESB com todos os arquivos necessários criados. Se você trabalhar com os QuickStarts, você terá toda a estrutura para deploy e testes de seus projetos.
Se você ficou curioso, veja o design e estágio atual da ferramenta clicando aqui.
Desculpem os RSS Readers! Desculpem a revolta, mas é revoltante algumas coisas em nossas vidas. Vocês que estudaram como desgraçados, comeram em bandeijão, pegaram onibus lotados, daqueles que é tanta gente que você pode dormir em pé que as Leis de Newton não farão efeito!
Você orgulha seus pais e a si mesmo, vai, estuda engenharia, estuda seja lá o que ou até onde for, e nesse caso, não adianta nada, você ainda vai ganhar mal, e você sabe o por quê? Porque você é um burro e honesto, que ao invés de roubar, você resolveu estudar…. Você é um burro!
Quanto é sua hora de trabalho? 100, 200, 300 reais? E você se acha o cara?! Você é um bosta, assim como eu, pois veja: Em 1 minuto eu fui assaltado, e me levaram:
Mochila com vários acessórios(do JavaOne para os nerds de plantão): 200,00
Isto totaliza cerca de 8.500 Reais, em cerca de 1 minuto de trabalho por parte dos grandes profissionais de mercado de São Paulo, se você multiplicar por 60(1 hora), a hora deles então custa: 510.000 Reais. E você se achando seu bosta!
O pior, é você ir fazer um BO (Boletim de Otário), e os servidores públicos no momento da sua descrição do fato, vê a funcionária fumar a merda de um FREE vagabundo, e entre uma pergunta e outra, baforar uma nuvem de fumaça na sua cara! E no final, depois de várias piadinhas, do tipo: “Os caras fizeram a feira com você”, tu pegas seus míseros papéis e começa a rezar para o próximo dia no PoupaTempo, onde 2 horas na fila consegue-se apenas comprando lugares na mesma…
Este é um desabafo de um otário como eu, que ama a merda desse país, que desde 1999 morando em São Paulo, nunca havia presenciado nada de violento, e eis que tudo veio num pacote único, o que nos deixa apenas revoltados, frustrados, sem ação….
E ai como descedente de Judeus que droga eu fui fazer na vida… Estudar, os caras ganham mais que os bostas da TV Brasileira! Tá vendo? Somos uns bostas! E eles são os Mickeys, só nos resta ser os “patetas”.
Desculpem o desabafo!
Edgar
ps- Local do Assalto: Vila Olimpia, em frente ao Ceasar Park. Atenção: Roubos na Berrini são frequentes em São Paulo, como as empresas de TI ficam grande parte nessa região cuidado nunca é pouco.
Calma, isso nada tem a ver com a linguagem Ruby, uma linguagem que respeito, mas que pouco usei na vida, e sim apenas fazer uma pequena homenagem a este rítimo que quem vai a Belém e não faz questão de ser fechado e se permite apreciar o que é local acaba no mínimo respeitando. Eu como um paraense apaixonado e saudoso da minha terra, tinha que aproveitar esse tema da minha área para fazer essa “brincadeira”. Ora, o Rio tem funk, vários lugares do interior de SP, Goiás, Minas tem o Sertanejo, o sul tem o vanerão, o nordeste tem o forró, o Amazonas tem o Boi, o Maranhão tem Reggae da jamaica brasileira, o Pará tem o que é conhecido como Techno brega, um ritimo engraçado, mas que mobiliza pessoas humildes, de posses, cultas outras sem tantas oportunidades, mas que se tornam comum numa festa onde o rítimo seja este, apenas uma homenagem, fruto das mini-férias que tive passando com a minha familia e mulher em Belém :).
Lyoto Machida, filho do lendário e respeitado mundialmente professor de Karatê Machida de Belém, é um paraense que vai longe veja a última luta dele no UFC.
Quando ele fala de Belém, claro que o orgulho vem todo a tona. Parabéns Lyoto!
O JBoss Seam de fato é um framework que enche os olhos de qualquer um, mesmo tendo trabalhando em geradores de códigos/aplicações, me rendi ao JBoss Seam desde a primeira vez que o vi, mais precisamente no final de 2006, de lá pra cá, os projetos que trabalhei usavam muito mais questões de integrações do que aplicações de usuários finais. Porém, desde que comecei a avaliar o Seam com um maior cuidado para utilizá-lo como framework JSF por trás do Console do novo JBoss Profiler, percebi que realmente o framework vale muito a pena.Não é pra menos, um time de talentosos desenvolvedores está por trás do Seam, logo, tal resultado já era esperado. Mas chega de papo, e vamos a algumas dicas interessantes:
Forçando o Login para Determinadas Páginas JSF
Muitas vezes você quer que determinadas Páginas sejam protegidas por Login, para resolver isso, o Seam possui todo um framework de segurança baseado em JAAS, e para ativar tal requisito para uma determinada página, basta adicionar a seguinte string no arquivo pages.xml :
[xml]
[/xml]
Adicionando novas Consultas baseadas na Extensão do EntityQuery
Quando você extende a classe EntityQuery você tem acesso a vários componentens que o Seam injeta dinamicamente para nós, entre eles o EntityManager do JPA, que pemite que criemos Queries dinamicas, veja no exemplo o método que adicionei em uma das classes que extende o EntityQuery:
[java]
public Employee getUserByEmail(String email) {
return (Employee) this.getEntityManager().createQuery
(”from Employee where email=:email”)
.setParameter(”email”, email)
.getSingleResult();
}
[/java]
Implementando uma Autenticação no Seam e salvando dados no Contexto
Imagine que seus dados de usuários serão buscados via JPA, o exemplo a seguir mostra o Autenticator em ação, que é um SessionBean que o Seam executa toda a vez que a Aplicação precisa autenticar alguém. O Autenticator é um recurso que também faz parte do Seam. (No exemplo abaixo não há encriptação de senha, por favor leve isso em consideração no mundo real):
[java]
@Name(”authenticator”)
public class Authenticator
{
@Logger Log log;
@In Identity identity;
@In FacesMessages facesMessages;
public boolean authenticate()
{
log.info(”authenticating #0″, identity.getUsername());
identity.addRole(”admin”);
Employee employee = new
EmployeeList().getUserByEmail
(identity.getUsername());
boolean ok = employee.getPassword().
equalsIgnoreCase(identity.getPassword());
facesMessages.add
(String.format(”We allow the user %s request a Travel”,
employee.getName()));
}
return ok;
}
}
[/java]
EntityListeners nossos! E por que não?
Mesmo com o suporte a Inteceptors do Seam, não faz mal criarmos os nossos algumas vezes, eis então um exemplo de inteceptação de eventos
na EntityClass: TravelRequest, onde antes de persistirmos uma informação, podemos promover uma avaliação e tomar alguma ação antes da ação ser executada,
os famosos Eventos, presentes em frameworks de persistências muito antigos como o TFieldDataLink no Borland Delphi desde 1995. Veja o exemplo:
@PrePersist
public void beforePost(TravelRequest request) {
if (request.getStatus()!=null &&
request.getStatus().equalsIgnoreCase(”")) {
request.setStatus(”NEW”);
}
}
}
[/java]
Registro do EntityListener:
[java]
@Entity
@EntityListeners({TravelRequestListener.class})
public class TravelRequest implements Serializable {
…
[/java]