Transcript
Page 1: Explorando o Jboss Seam: A nova geração de aplicações web 2.0

Explorando o Jboss Seam

A nova geração de aplicações web 2.0

Marcos [email protected] http://www.marcossousa.com

Page 2: Explorando o Jboss Seam: A nova geração de aplicações web 2.0

23/08/08 Explorando o Seam Framework 2

Agenda Contexto

Conceitos Básicos Seam

Demonstração Seam-Gen

Seam Extras Demonstração Geração PDF

Demonstração Envio de e-mails

Futuro

Perguntas

Page 3: Explorando o Jboss Seam: A nova geração de aplicações web 2.0

23/08/08 Explorando o Seam Framework 3

Sobre o Autor Desenvolvedor Java a mais 5 anos

Desenvolve aplicações JSF desde 2005

2 aplicações desenvolvidas em Seam

Colaborador do Java Vídeo Magazine

Mantém o Blog: http://www.marcossousa.com

Page 4: Explorando o Jboss Seam: A nova geração de aplicações web 2.0

23/08/08 Explorando o Seam Framework 4

Problemas embarcados do JSF Não suporta camada de negócios

EJB3 – Não pode ser usada diretamente

EJB3 – Não há conceito de escopo

Excesso de configurações em XML Dificulta Refactory

Complexidade na validação

Não tem suporte a requisições GET

Não tem controle de transações

Persistência de estado de alguns componentes

Page 5: Explorando o Jboss Seam: A nova geração de aplicações web 2.0

23/08/08 Explorando o Seam Framework 5

Alguns problemas para resolver Navegação

O botão voltar não é suportado

Como manter estado de componentes

Não oferece suporte a abas múltiplas Operações ocorrem na sessão

Não suporta contextos de conversação

Memory leak – falta de gerenciamento de objetos

Page 6: Explorando o Jboss Seam: A nova geração de aplicações web 2.0

23/08/08 Explorando o Seam Framework 6

O que é SEAM? Framework de integração de camadas

Conecta JSF + EJB3

Suporte a transações

Integração com objetos Groovy, Hibernate e Spring

Não requer container Java EE.

Page 7: Explorando o Jboss Seam: A nova geração de aplicações web 2.0

23/08/08 Explorando o Seam Framework 7

JSF + EJB3: várias camadas Como o Seam simplifica a integração?

Página JSFPágina JSF Backing Backing BeanBean EJB3EJB3

Page 8: Explorando o Jboss Seam: A nova geração de aplicações web 2.0

23/08/08 Explorando o Seam Framework 8

Hello World: JSF + EJB3 Um Session Bean anotado@Stateless@Name("helloWorld")public class HelloWorldBean implements HelloWorld { public String getSayHello() { return "Hello World"; }}

Configuração ejb-jar<interceptors><interceptor> <interceptor-class>org.jboss.seam.ejb.SeamInterceptor</interceptor-class></interceptor></interceptors> <assembly-descriptor> <interceptor-binding> <ejb-name>*</ejb-name> <interceptor-class>org.jboss.seam.ejb.SeamInterceptor</interceptor-class> </interceptor-binding> </assembly-descriptor> Chamar diretamente na página JSF: Simples!<h:outputText value="#{helloWorld.sayHello}"/>

Page 9: Explorando o Jboss Seam: A nova geração de aplicações web 2.0

23/08/08 Explorando o Seam Framework 9

Contextos Seam Event

– Criado durante a restauração da página até renderização (similar ao Request)

Page – Usado em chamadas de uma mesma página

– Útil para callbacks de páginas

Conversation– Suporte a múltiplas abas

– Gerencia estado de diversas chamadas de uma mesma janela

– Iniciado e parado via componente ou página

Page 10: Explorando o Jboss Seam: A nova geração de aplicações web 2.0

23/08/08 Explorando o Seam Framework 10

Mais contextos Seam Session

– Armazena dados de estado da autenticação/visita

Business Process– Controla o armazenamento de processos

– Usado para suportar o jBPM

Application– Gerencia os dados usados ao longo da execução

Page 11: Explorando o Jboss Seam: A nova geração de aplicações web 2.0

23/08/08 Explorando o Seam Framework 11

Page Actions Evento que ocorre antes da Renderização

– Executa ações

– Faz bind de parâmetros GET

– Controla Navegação e contexto de conversação

Configuração modular ou centralizada Possibilita a criação de URL Restfull Facilita a criação de URL User Friendly

Integração com o URL Rewrite

Page 12: Explorando o Jboss Seam: A nova geração de aplicações web 2.0

23/08/08 Explorando o Seam Framework 12

Segurança Gerencia a autenticação de usuários<security:identity authenticate-method="#{authenticator.authenticate}"/>

E a autorização baseada em rules<page view-id="/protected/*"> <restrict>#{s:hasRole('admin')}</restrict></page>

A partir da versão 2.1.0

– Integração com OpenId e JbossSSO

– API de Gerenciamento de Autententicação

– Possibilidade de adicionar resolvers para permissões

Page 13: Explorando o Jboss Seam: A nova geração de aplicações web 2.0

23/08/08 Explorando o Seam Framework 13

Gerador de códigos Seam Possui plugin visual Eclipse – Jboss Tools

Engenharia reversa do banco de dados

Deploy incremental Requer configuração

Saídas nos formatos WAR e EAR Recursos de autocompletar

Page 14: Explorando o Jboss Seam: A nova geração de aplicações web 2.0

23/08/08 Explorando o Seam Framework 14

Demostração Seam-Gen Criar aplicação de cadastro de notícias

Fazer engenharia reversa dos componentes para: Persistir, remover e pesquisar notícias, usuários, tags e

anexos

Page 15: Explorando o Jboss Seam: A nova geração de aplicações web 2.0

23/08/08 Explorando o Seam Framework 15

Seam Extras Onde o Seam mais impressiona!

Geração de PDFs Envio de e-mails Integração com Spring

Integração com GWT

URL User Friendly

Agendamento de tarefas

Gerenciamento de temas

E muito mais!

Page 16: Explorando o Jboss Seam: A nova geração de aplicações web 2.0

23/08/08 Explorando o Seam Framework 16

Geração de PDF Integração com o iText – PDF Generator

Possibilita criar tabelas, incluir imagens, quebrar páginas, etc.

<p:document xmlns:p="http://jboss.com/products/seam/pdf"> <p:image alignment="right" wrap="true" resource="/myimage.jpg" /> <p:font size="24"> <p:paragraph spacingAfter="50">Document Title</p:paragraph> </p:font> <p:paragraph alignment="justify"> This is a simple document. See Seam documentation and do more! </p:paragraph></p:document>

Page 17: Explorando o Jboss Seam: A nova geração de aplicações web 2.0

23/08/08 Explorando o Seam Framework 17

Envio de E-mails Usa a JavaMail para envio

Permite o envio de anexos

Os arquivos de mensagens são XHTML:<m:message xmlns="http://www.w3.org/1999/xhtml"xmlns:m="http://jboss.com/products/seam/mail"xmlns:h="http://java.sun.com/jsf/html"><m:from name="Marcos Sousa" address="[email protected]" /><m:to name="#{contact.firstname}">#{contact.email}</m:to><m:subject>My first Seam E-mail!</m:subject><m:body><p><h:outputText value="Dear #{contact.firstname}" />,</p><p>This is my first e-mail with seam, you can seen more in the office web

site:<ahref="http://www.seamframwork.org">http://www.seamframwork.org</a>.</p><p>Best Regards,</p><p>Marcos Sousa<br/><a href="http://www.marcossousa.com">www.marcossousa.com</a>.</p></m:body></m:message>

Page 18: Explorando o Jboss Seam: A nova geração de aplicações web 2.0

23/08/08 Explorando o Seam Framework 18

O que virá no futuro? Web Beans!!

Friendly URLs

Adobe Flex suporte

Suporte ao Wicket

Integração refinada com o Jboss Portal

Mais informações: http://java.dzone.com/articles/whats-new-seam-21-an-interview?mz=3006-jboss

Page 19: Explorando o Jboss Seam: A nova geração de aplicações web 2.0

23/08/08 Explorando o Seam Framework 19

Dúvidas?

Page 20: Explorando o Jboss Seam: A nova geração de aplicações web 2.0

23/08/08 Explorando o Seam Framework 20

Referências e links Documentação:

http://docs.jboss.com/seam/latest/reference/en-US/htm

Blogs: http://www.marcossousa.com/tag/jboss-seam

http://in.relation.to/Bloggers/Pete

Livros: Beginning Jboss Seam – Joseph Faisal

Pratical Jboss Seam Projects – Jim Farley

Jboss Seam: Simplicity and power beyond JavaEE – Tomas e Michael

Page 21: Explorando o Jboss Seam: A nova geração de aplicações web 2.0

23/08/08 Explorando o Seam Framework 21

Obriagado!

Marcos [email protected]


Top Related