1. Java EE 6 no JBoss AS 6
Paulo Jerônimo @ Lado Servidor
Festival Latino-Americano de Software Livre
(FLISOL)
Goiânia/GO
24/Abr/2010
2. Paulo Jerônimo
http://paulojeronimo.com
Especialista em Sistemas Distribuídos e OO (UnB/2002)
Consultor em servidores de aplicações
Trabalhando com JBoss AS desde 2002
Certified JBoss Administrator (CJA) (2007)
Certified JBoss Developer (CJD) (2007)
Vasta experiência em:
Ensino p/ equipes corporativas
Arquitetura e desenvolvimento de aplicações Java
Vários projetos desenvolvidos para órgãos do governo, empresas de
telecomunicações e istituições financeiras
SCJP, SCBCD, SCBCD
Suporte a ambientes com carga balanceada, clusterizados e tolerante a falhas
3. Lado Servidor
http://ladoservidor.com
Notícias, idéias, soluções e serviços:
Instalação, configuração, administração,
monitoramento, resolução de problemas e ajustes
de performance
Para produtos de virtualização
Para servidores de aplicações (principalmente os
baseados na plataforma Java)
Foco em software livre!
Mas sem deixar de veicular as notícias do lado
negro da força ;-)
4. Agenda
Um pouco de Java EE 6
Motivação, Adoção, Evolução
Objetivos, APIs
Um pouco de JBoss AS 6
Histórico
Status atual
Baixa dos fontes, compilação e instalação ;-)
Execução de um projeto Weld
5. Java EE - Motivação
Requisitos não funcionais
Escalabilidade, processamento em paralelo de
grande número de requisições
Segurança
Transações
No passado: cada aplicação implementava tais
requisitos
Desfocava a aplicação das regras do negócio
Hoje (a algum tempinho ;-): tais requisitos são
implementados por um servidor de aplicações
9. Java EE 6 – Implementação de
Referência
GlassFish v3
10. Java EE 6 no JBoss AS 6
Em desenvolvimento, mas já com várias
funcionalidades prontas... Testaremos algumas
mais a frente!
11. Java EE 6 - Objetivos
Right-sizing
Adaptar-se a aplicações de diferentes tamanhos
Simplificação de tecnologias
Implementação de profiles
Extensibilidade
Facilidades p/ plugar frameworks e bibiliotecas
Produtividade
Aprimoramento de facilidades conquistadas no
Java EE 5 (com o uso de anotações)
13. Java EE 6 – Dependency Injection
(DI) - JSR 330
Líderes: Bob Lee (Google Guice), Rod Johnson
(Spring)
Objetivo: definir uma semântica básica para
injeção de dependências em Java EE
Anotações:
@Inject, @Named, @Qualifier, @Scope,
@Singleton
14. Java EE 6 – Context and Dependency
Injection (CDI) - JSR 330
Líderes: Gavin King, Pete Muir (JBoss)
Conhecida anteriormente por WebBeans
Implementação de referência: Weld
Define um conjunto de serviços E permite
injeção de dependências
Integra componentes. Ex.: JSF e EJB
Trata todos os componentes como Managed
Beans
15. Java EE 6 – Servlets 3.0
Mapeamento das servlets e filtros via
anotações
web.xml opcional
Suporte a servlets assíncronos
Evita o bloqueio de requisições enquanto ainda é
produzido algum resultado para o cliente
Fácil integração de componentes de terceiros
Basta plugar a uma biblioteca em WEB-INF/lib, que
já contenha um arquivo META-INF/web-
fragments.xml
17. Java EE 6 – EJB 3.1
Avanços na facilidade de uso
Um código fonte por Bean (interface
desnecessária)
EJBs podem ser implantados em Web Archives
(wars)
Sem ejb-jar
Dentro de WEB-INF/classes
Compartilhando informações de ambiente
JNDI portável e global
19. Java EE 6 – EJB 3.1
Singletons EJBs
@Singleton
Uma instância por Bean por JVM
Segurança gerenciada pelo container ou pelo Bean
@ConcurrencyManagement
Uso Embeddable/Standalone
Possibilidade de se utilizar EJB's em um Java SE
Timer Service aprimorado com @Schedule
Invocações assíncronas através de
@Asynchronous
20. Java EE 6 – EJB 3.1
EJB Lite – subconjunto das principais
funcionalidades da versão EJB completa
21. Java EE 6 – JPA 2.0 – JSR 317
Desacoplada de EJBs
Inclusão da API criteria (inspirada no
Hibernate)
Suporte a mapeamento de coleções e tipos
primitivos
Lock pessimista
API de cache
Melhor suporte a mapas
22. Java EE 6 – JSF 2.0
Utilização da anotação @ManagedBean p/ o
registro de componentes
faces-config.xml opcional
Melhorias na navegação
Suporte a AJAX
Componentes compostos
23. Java EE 6 – Bean Validation 1.0
Idéias trazidas do Hibernate Validation
Possibilita a inclusão de regras de validação
em um JavaBean
Todas as camadas da aplicação entendem
uma mesma linguagem que expressa as regras
de validação
Integrado a JSF e JPA
Extensível
24. Java EE 6 - Profiles
Segmentam a plataforma Java EE (e
servidores de aplicações) em categorias de
aplicações
Permitem o uso de um subconjunto das APIs, com
garantias de compatibilidade
Exemplo de profile: Web Profile
25. Java EE 6 – Web Profile
Apresentação Frameworks p/
Servlet 3.0 componentes
JSP 2.2 EJB 3.1 Lite
EL 2.0 CDI
JSTL 1.2 Persistência
JSF 2.0 JPA 2.0
Common Annotations JTA 1.1
1.1
DI 1.0
26. JBoss AS 6
Servidor de aplicações Java EE 6
Suporte atual para diversas APIs Java EE:
Servlet 3.0
Web Profile
EJB 3.1
Mensageria (HornetQ)
Interface de gerenciamento aprimorada
Performance aprimorada
Microcontainer baseado POJOs e AOP
27. Java EE 6 no Jboss AS 6 -
Tecnologias
JBoss Web 3.0 (Servlet 3.0, JSP 2.2, EL 2.2)
Weld 1.0 (Impl. Ref. P/ CDI 1.0)
EJB 3.1
Hibernate 3.5 (JPA 2.0)
Hibernate Validator 4.0.2 (Impl. Ref. P/ Bean
Validation 1.0
JBoss Web Services 3.3.0 (JAX-WS 2.2)
JSF 2.0
28. JBoss AS 6 – Instalação a partir dos
fontes
Do que você irá precisar:
Subversion: para baixar os fontes do repositório
JDK e Maven: para construir o projeto
Demonstrações!
Construção (build) do JBoss AS
Inicialização e parada
Interface de gerenciamento
Construção, implantação e execução de um projeto
Weld (CDI 1.0)
29. Fim ;-) Obrigado por vir!
Contatos:
@paulojeronimo
@ladoservidor
(Twitter)
paulojeronimo@ladoservidor.com