Java EE 6 e JBoss 6.0

Embed Size (px)

DESCRIPTION

Slides do Evento Java&Net SP 2010

Text of Java EE 6 e JBoss 6.0

  • 1. Tema 1 Viso geral da plataforma e servidores de aplicao Viso geral da Plataforma Java no presente JBoss Application Server 6 Edgar Silva Manager, Solutions Architects Red Hat Brasil edgar@redhat.com @jedgarsilva
  • 2. Agenda Plataforma Java (Passado, Presente e Futuro) Java EE 6.0 Em breve final: JBoss 6.0 Em breve: M1 do JBoss 7.0 Tecnologias Auxiliares Mercado 3 3
  • 3. Plataforma Java EE (Passado, Presente e Futuro) Objetivo: Mercado de Componentes Players do Passado: HP BlueStone, IPlanet, Oracle, WebLogic, Borland, IBM, JBoss e outros, Players do Presente: Oracle, IBM, JBoss/RedHat Realidade: Primeiras implementaes com pouco pragmatismo! Resultado: Contribuies da Comunidade / JCP Spring Framework, Hibernate, Seam Adies de solicitaes da comunidade como a evoluo das Specs. 4 4
  • 4. Java Enterprise Edition 6 Resultado da JSR316 http://jcp.org/en/jsr/detail?id=316 Principais Novidades: Servlets 3.0 JSF 2.0 JPA 2.0 Bean Validation 1.0 EJB 3.1 EJB Lite JAX-RS CDI Profiles 5
  • 5. Servlet 3.0 JSR-315: http://jcp.org/en/jsr/detail?id=315 Principais novidades: Uso de Anotaes para Definir Servlets, Listeners e Filters Fragmentao do web.xml Chamada Assync (Comet), objetivo Ajax 6
  • 6. @Servlet(urlMappings={"/MyApp"}) public class MyServlet { @GET public void handleGet(HttpServletRequest req, HttpServletResponse res) { .... } @ServletFilter @FilterMapping("/foo") public class MyFilter { public void doFilter(HttpServletRequest req, HttpServletResponse res) { ..... } } @Servlet(urlMappings={"/MyApp"}, initParams ={@InitParam(name="lang", value="english")}) public class MyServlet { @GET public void handleGet(HttpServletRequest req, HttpServletResponse res) { .... } } 7
  • 7. JSF 2.0 JSR-314: http://jcp.org/en/jsr/detail?id=314 Anotaes Facelets como parte do padro Expression Language ExceptionHandlers Escpos de Usurios 8
  • 8. @ManagedBean(name="scriptService") @RequestScoped public class ScriptServiceBean { @ManagedProperty(value = "script") private String scriptName; } 9
  • 9. JPA 2.0 JSR-317: http://jcp.org/en/jsr/detail?id=317 Second-Level Cache Criteria Muitas adies baseadas no Hibernate dentro do padro JPA. 10
  • 10. EJB 3.1 JSR-318: http://jcp.org/en/jsr/detail?id=318 Interfaces opcionais EJB Lite Deploy War 11
  • 11. JAX-RS JSR-311: http://jcp.org/en/jsr/detail?id=311 RESTful WebServices Anotaes MediaTypes REST WOA (se isto existir) 12
  • 12. @Provider @Path("/") public class RootService implements java.io.Serializable { @GET @Path("/") @Produces("text/plain") public String homePlain(){ return "Welcome to RestEasy running on Google App - Client Plain/Text"; } @GET @Path("/") @Produces("text/html") public String homeHTML(){ return "Welcome to RestEasy running on Google App - Client HTML"; } @GET @Path("/{name}/{vars:.*}") @Produces("application/xml") public String executeWithGetXML(@PathParam("name") String serviceName, @PathParam("vars") String vars){ 13
  • 13. Bean Validation JSR-303: http://jcp.org/en/jsr/detail?id=303 Lembra do Hibernate Validator Agora isto padro JEE 14
  • 14. public class Address { @NotNull @Size(max = 50) private String street1; @NotNull @ZipCode private String zipcode; @NotNull @Size(max = 30) private String city; Leitura recomendada: http://musingsofaprogrammingaddict.blogspot.com/2009/02/getting-started-with-jsr-303-bean.html 15
  • 15. CDI 1.0 JSR-299: http://jcp.org/en/jsr/detail?id=299 Context Dependency Injection Uso de Factories Interceptors Injeo de Dependncias Agora isto tambm padro 16
  • 16. Profiles Um perfil para cada propsito: Full Web No futuro, quem sabe outros profiles: Teste Telco (SIP) SOA 17
  • 17. JBoss Application Server 6.0 http://www.jboss.org/jbossas 18
  • 18. JBoss AS 6.0 e a Comunidade Influencia direta JSR 299 CDI for the JSR 314 Java Server Java EE Platform Faces 2.0 Gavin King JSR 316 JavaEE 6 JSR 303 Bean JSR 317 JPA 2.0 Validation JSR 318 EJB 3.1 Emanuel Bernard JSR 330 Dependency JSR 311 JAX-RS Injection
  • 19. Novidades Otimizaes do desempenho J2EE6, OSGi Novos projetos Novo modelo de releases Projeto totalmente mavenizado
  • 20. Otimizando o servidor Uma srie de esforos realizados nesse sentido VFS 3.0 Nova API Montagem explcita + ciclo de vida associado aos Structure Deployers Sincronizado com o sistema de arquivos Otimizao no acesso a arquivos zipados
  • 21. Otimizando o servidor JBoss Microcontainer Diversas otimizaes realizadas no kernel Busca de dependncias Mquina de estados Em desenvolvimento JBoss Reflection: substituio de reflexo por Javassist com cache de bytecodes, sem carga de classes necessria Manipulao direta de Flavia Rainone