JBoss Developer Framework
Java EE 6 feito do modo certo !
Rafael Benevides
Senior Software Engineer – JBoss by Red Hat
benevides@redhat.com
Twitter: @rafabene
Globalcode – Open4education
Quem sou eu?
Goiano com orgulho!
JBoss Software Engineer
JDF Core Developer
Apaixonado por OSS
Fã de Android
Fã de Agile
Obcecado por arquitetura e
produtividade
Globalcode – Open4education
Agenda
Introdução
O que é O JDF
Quickstarts
JBoss Stacks
Ticket Monster (use case)
Contribua / WFK
Perguntas
Globalcode – Open4education
Introdução: Java EE 6
(O apogeu)
A era dos frameworks acabaram
Começa a era das extensões (OCP)
Especificações: 10 atualizadas e 5 novas: Total de 28
Atualizaçoes: Novidades:
EJB 3.1 DI 1.0
JPA 2.0 CDI 1.0
Interceptos 1.1 Bean Validation 1.0
Connector 1.1 Managed Beans 1.0
JAX-WS 2.2 JAX-RS 1.1
Enterprise Web Services
Servlet 3.0
JSP 2.2
EL 2.2
Annotations 1.1
Globalcode – Open4education
Introdução: Como
tudo começou
Java EE 5 (JSF / EJB / JPA – ciclo de vida independentes)
Seam 2.x (Facelets / SMPC / Bijeção)
Printscreen de uma
apresentação do Seam
Globalcode – Open4education
Introdução:
Especificação CDI
O que o CDI fornece:
Contextos bem definidos
Injeção de dependências “type-safe”
Interação via notificação de eventos
Unificação do conceito de “Beans”
Integração via EL unificada (nomes dos Beans)
SPI para criar extensões para a plataforma Java EE
Arquitetura Java EE -> Flexível, portável, extensível
Globalcode – Open4education
Introdução:
Especificação CDI
O que o CDI fornece:
Contextos
Injeção dependências
notificação de eventos
para a plataforma Java EE
Globalcode – Open4education
Introdução: Extensões /
Deltaspike
Deltaspike fecha as lacunas do Java EE 6
“Nós acreditamos que a
comunidade pode criar
excelentes extensões
CDI e facilmente
compartilha-las”
http://incubator.apache.org/deltaspike/
Globalcode – Open4education
Desenv. Java EE hoje
Inconsistências
Dialeto: A linguagem é Java, mas cada uma programa
de um jeito
Integração
O problema de alto acoplamento ainda existe apesar de
anos lutando esta “guerra”
Fragmentação
Diversos Frameworks
Globalcode – Open4education
O que é o JDF ?
JBoss Developer Framework mostra como
escrever aplicações usando tecnologias JBoss
Sabor de Java EE 6 (CDI Everywhere)
Consistente
Integrado
Quickstarts criados pelos times JBoss (richfaces,
aerogear, picketlink, hibernate)
Como lidar com diferentes produtos dentro do JAVA EE 6
Foco em boas práticas e divulgação de conhecimento
Globalcode – Open4education
Quickstarts
54 Quickstarts, focados em um único caso de uso
ou API
64 Quickstarts para o JDF 2.0 (foco em Mobile)
Globalcode – Open4education
Ticket Monster
Show case JDF
Pronto para mobile
Pronto para Cloud
Aprenda
Customize
Fork no github: https://github.com/jboss-jdf/ticket-monster
Cloud: http://ticketmonster-jdf.rhcloud.com/
Globalcode – Open4education
JBoss Stacks
BOMs
Java EE com GWT
Java EE 6 com Richfaces
Java EE 6 com Segurança
Java EE 6 com Infinispan
Archetypes
Webapp
EAR
Richfaces
Runtimes
JBoss AS
EDG
BRMS
Globalcode – Open4education
JBoss Stacks
Em mais 1 ou 2 semanas:
JDF 2.0.0.Final
Web page
Forge Plugin (jdf use-stack –runtime –bom ...)
JBoss Tools 4 (download runtime, new project, etc)
Stacks Client (use você mesmo)
Globalcode – Open4education
Roadmap
JDF 2.0
Outubro de 2012
Mobile Hibrido
JDF 2.1
Janeiro 2013 (tentativa)
Segurança (Picketlink)
Deltaspike
Globalcode – Open4education
Seam estendia o Java EE 5 Integrava Web (JSF) com Business (EJB) Ciclo de vida único Conceito unificado de componente Contextos (Conversation) Bijeção
CDI é a especificação do Java EE 6 que cuida da parte de injeção de dependências. E, além de ser oficial e estar incluída em todos os servidores de aplicação, é tão boa e produtiva que já tem gente questionando o papel do Spring nos dias de hoje.
Resumo do CDI
Deltaspike é uma coleção de componentes CDI (esforço semelhante de toda comunidade) - fragmentação / trabalho duplicado / localização? Contribuição das equipes do Seam, Apache MyFaces CODI, CDISource e comunidade Java EE We will also ensure true portability! We are testing DeltaSpike on different CDI implementations like Apache OpenWebBeans and JBoss Weld, and also on different Java EE servers like Apache Tomcat and TomEE, JBoss-AS7, Oracle GlassFish 3.1+, IBM Websphere 8.x, Oracle Weblogic Server 12c, Jetty, and others.
Fragmentação é um problema Não é todo ruim Liberdade Evolução É uma onda que não se pode parar
A própria equipe (time) do produto criar o exemplo de como usar as features dentro do Java EE 6 Começou com Java EE 6 Apesar do nome framework, não possui entregável
Exemplo que abrange diversas tecnologias e como elas se integram
Explicar os conceitos Explicar também que estas informações estão disponíveis para diversos clientes