1. Instituição Federal do Rio Grande do Norte
JBOSS SEAM
Framework para Java EE5
www.cefetrn.br
2. JBOSS SEAM
Framework para Java EE5
Grupo: Raquel do Carmo,
Rafael Freire
3. Conceitos
Necessários
JSF, EJB 3.0, ORM, Web 2.0,
POJO, RAD
4. Conceitos Necessários
JSF – Java Server Faces
Framework para “front end” em aplicações web
EJB 3.0 – Enterprise Java Beans
Framework para lógica de negócio
ORM – Object Relational Mapping
Persistir dados utilizando programação orientada
a objetos
5. Conceitos Necessários
Web 2.0
Segunda geração da World Wide Web
POJO – Plain Old of Java Objects
Objetos Java que seguem um desenho simplifica-
do . Exemplo: JavaBean
RAD (Rapid Application Development)
Desenvolvimento rápido, criação e reutilização de
componentes, custo reduzido
7. Introdução
Desenvolvido por Gaving King, criador do Hibernate
Projeto do JBOSS
Ainda pouco usado
Framework para desenvolvimento de aplicações
JEE baseado na integração de JSF e EJB3, rico em
recursos AJAX
Enquanto que a maioria dos frameworks é focado
em uma camada específica, Seam integra todas as
camadas.
8. Objetivo
Tornar o desenvolvimento deste tipo de
aplicação (Java EE) em um processo visual,
com a ajuda do JBOSS, no estilo RAD
(Rapid Application Development)
9. Características
Integra JSF com EJB 3.0
Integra AJAX
Bi-injeção
POJOs anotados por todo lugar
Evita abuso de XML
Projetado para Teste
10. Características
Integra JSF com EJB 3.0
Através de anotações o Seam integra interface
(visão), lógica de negócio e persistência
Integra AJAX
ICEfaces
Ajax4JSF
11. Características
Bi-injeção
Gerenciamento de dependência bidirecional
POJOs anotados por todo lugar
Seam estende as anotações fornecidas pelo EJB
3.0 com um conjunto de anotações para
declarativa de gerenciamento de estado e
declarativa de demarcação de contexto
12. Características
Evita abuso de XML
No Seam, muita coisa é feita a partir de
anotações, evitando uso excessivo de XML
Projetado para Teste
Testes integrados em aplicações web Java têm
sido difíceis e confusas
Seam prevê testabilidade como um recurso
interno do framework
14. Componentes Contextuais
Contextos
Criados e destruídos pelo Seam
Em alguns casos, demarcados via anotação.
Componentes
São POJOs (JavaBeans ou EJB 3.0)
A instância de um componente é associado a um
contexto
16. Contextos
Stateless
Não mantém o estado
Event (ou request)
Disponibiliza os objetos durante um
evento
Page
Associado ao processo de renderização
e carregamento de uma página.
17. Contextos
Conversation
•Diferencia o Seam de qualquer outro
framework;
•Permite criar unidades de conversação e
registrar nestas unidades todos os objetos e
serviços que a aplicação vai necessitar usar
quando a mesma estiver sendo executada
sobre este contexto.
18. Contextos
Session
Conceito já visto.
Business process
Permite trabalhar com fluxo de trabalho.
Garante que o objeto ou serviço registrado
neste contexto vai estar disponível até o fim
do fluxo.
Application
Tudo que registrarmos neste contexto fica
disponível para todos que acessarem a
aplicação
20. Componentes
EJB 3.0 stateless session beans
Não mantêm estado. A cada nova invocação, um
novo estado é criado.
EJB 3.0 stateful session beans
Mantém estado por múltiplas invocações
EJB 3.0 entity beans
Beans persistens que armazenam dados da
aplicação
JavaBeans
São usados como stateless ou stateful session
beans
21. Componentes
EJB 3.0 message-driven beans
Ao invés de serem invocados por variáveis de
contexto, escutam mensagens enviadas para uma
Fila JMS(Java Message Service)
22. SEAM HELLO WORLD
Crie um modelo de dados
Mapeie o modelo para web
Manipule eventos da Web
23. Seam Hello World
Crie um modelo de dados
@Entity
@Name(person)
public class Person implements Serializable {
private long id;
private String name;
@Id @GeneratedValue
public long getId() { return id;}
public void setId(long id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) {
this.name = name;
}
}
24. Seam Hello World
Mapeie o modelo para Web
<h:form>
•Please enter your name:<br/>
•<h:inputText value=#{person.name} size=15/><br/>
•<h:commandButton type=submit value=Say Hello
•action=#{manager.sayHello}/>
</h:form>
<h:dataTable value=#{fans} var=fan>
•<h:column>
•<h:outputText value=#{fan.name}/>
•</h:column>
</h:dataTable>
25. Seam Hello World
Manipule eventos da Web
@Stateless
@Name(manager)
public class ManagerAction implements Manager {
•@In @Out
•private Person person;
•@Out
•private List <Person> fans;
•@PersistenceContext
•private EntityManager em;
•public String sayHello () {
•em.persist (person);
•person = new Person ();
•fans = em.createQuery(select p from Person p)
•.getResultList();
•return null;
}
27. Anotações
@Name
Informa o nome do componente
@Scope
Informa o contexto do componente
@ In
Marca o atributo como injetável
@Out
Marca o atributo como ejetável
@Logger
Injetar instância do componente Log
28. Configure o Ambiente
ANT instalado e $ANT_HOME definida
$JAVA_HOME definida
Jboss AS instalado com perfil EJB 3.0
API Jboss Seam descompactada
Configuração do Eclipse para referenciar a
API do Seam
PostgreSQL instalado e funcionando
29. Conclusão
Base para o padrão web beans( padrão de frameworks da
web 2.0) JSR 299
Integração de tecnologias padrão de mercado como EJB3,
JSF, jBPM
Contexto web e da aplicação( EJB ) integrados
Uso constante de anotações para configuração das
aplicações
Aprendizagem fácil por já usar frameworks conhecidos como
JSF, EJB3, Hibernate e JBPM
Necessidade de conhecermos a fundo das tecnologias Java 5
JEE 5
30. Referências
JAVA MAGAZINE – Projetos Jboss – Edição
50, Ano VI. DevMedia Group
WikiPédia
Apresentação...
http://blog.mgjug.com.br/2006/12/12/jbpm-2006-1
http://www.jboss.com/products/jbpm/overvie
w