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
#What #hashtags ?
               #TDC2012

               #JBOSS

               #JDF

                      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
Desenvolvedor
    JEE




   Globalcode – Open4education
Resolvendo Integração
 CDI
   Forte tipificação
   Baixo acoplamento
     @Interceptor
     @Decorator
     @Observer




                        Globalcode – Open4education
Resolvendo
inconsistências
 É necessário:
   Experiência, exemplos
   Uma comunidade centralizada para
   compartilhar conhecimento




                                 Globalcode – Open4education
Fragmentação




               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
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
É suportado ?




                Globalcode – Open4education
Contribua
 Website: http://www.jboss.org/jdf/
 Github: https://github.com/jboss-jdf
 IRC: #jboss-jdf / irc.freenode.net




                     Perguntas ?

                                        Globalcode – Open4education

TDC 2012 - JDF

  • 1.
    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
  • 2.
    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
  • 3.
    #What #hashtags ? #TDC2012 #JBOSS #JDF Globalcode – Open4education
  • 4.
    Agenda Introdução Oque é O JDF Quickstarts JBoss Stacks Ticket Monster (use case) Contribua / WFK Perguntas Globalcode – Open4education
  • 5.
    Introdução: Java EE6 (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
  • 6.
    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
  • 7.
    Introdução: Especificação CDI Oque 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
  • 8.
    Introdução: Especificação CDI Oque o CDI fornece: Contextos Injeção dependências notificação de eventos para a plataforma Java EE Globalcode – Open4education
  • 9.
    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
  • 10.
    Desenv. Java EEhoje 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
  • 11.
    Desenvolvedor JEE Globalcode – Open4education
  • 12.
    Resolvendo Integração CDI Forte tipificação Baixo acoplamento @Interceptor @Decorator @Observer Globalcode – Open4education
  • 13.
    Resolvendo inconsistências É necessário: Experiência, exemplos Uma comunidade centralizada para compartilhar conhecimento Globalcode – Open4education
  • 14.
    Fragmentação Globalcode – Open4education
  • 15.
    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
  • 16.
    Quickstarts 54 Quickstarts,focados em um único caso de uso ou API 64 Quickstarts para o JDF 2.0 (foco em Mobile) Globalcode – Open4education
  • 17.
    Ticket Monster Showcase 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
  • 18.
  • 19.
    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
  • 20.
    JBoss Stacks Emmais 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
  • 21.
    Roadmap JDF 2.0 Outubro de 2012 Mobile Hibrido JDF 2.1 Janeiro 2013 (tentativa) Segurança (Picketlink) Deltaspike Globalcode – Open4education
  • 22.
    É suportado ? Globalcode – Open4education
  • 23.
    Contribua Website: http://www.jboss.org/jdf/ Github: https://github.com/jboss-jdf IRC: #jboss-jdf / irc.freenode.net Perguntas ? Globalcode – Open4education

Notas do Editor

  • #7 Seam estendia o Java EE 5 Integrava Web (JSF) com Business (EJB) Ciclo de vida único Conceito unificado de componente Contextos (Conversation) Bijeção
  • #8 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.
  • #9 Resumo do CDI
  • #10 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.
  • #15 Fragmentação é um problema Não é todo ruim Liberdade Evolução É uma onda que não se pode parar
  • #16 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
  • #18 Exemplo que abrange diversas tecnologias e como elas se integram
  • #20 Explicar os conceitos Explicar também que estas informações estão disponíveis para diversos clientes