1   Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
GlassFish, Maven, Cloud e o futuro do Java EE           Bruno Borges | Fusion Middleware | Product Management2          br...
The following is intended to outline our general product direction.    It is intended for information purposes only, and m...
Agenda    ●       Java EE               –       Versão 6               –       Futuro: Java EE 7    ●       GlassFish     ...
O que o mercado procura?5   Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
Spring vs Java EE ?    ●        Java EE evoluiu graças ao Spring    ●        Full e Web profiles – lightweight!    ●      ...
Desenvolvimento Moderno com Java EE 6            Flexível & Leve                                                          ...
Mais produtividade, menos código: Java EE 6         25%                                                                   ...
Java EE 6●       Java EE 6 – JSR 316          –        Profiles          –        EJB 3.1          –        JSF 2.0       ...
Java EE 6     ●              As coisas boas do Java EE 6                 –        Não precisa mais de web.xml             ...
Java EE 6     ●              As coisas boas do Java EE 6                 –        EJB do jeito que todo mundo queria      ...
Do JEE 6 para o JEE 712   Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
Java EE 7       Java EE 7
Java EE 7     ●     EJB 3.2 – JSR 345              –       Suporte a multi-tenancy              –       Melhora no uso de ...
Java EE 7     ●     Servlet 3.1 – JSR 340              –       Suporte a WebSockets     ●     JSF 2.2 – JSR 344           ...
Java EE 7           O mais esperado (IMO)     ●           JMS – Java Messaging Service 2.0 – JSR 343                      ...
Java EE 7           O mais esperado (IMO)     ●           JMS – Java Messaging Service 2.0 – JSR 343                      ...
Java EE 7 – Plataforma ideal para Cloud18   Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
Oracle GlassFish Server        Java EE 7
GlassFish - História●         Criado pela Sun em 2005●         2006 (v1), RI do JEE 5           –        para desenvolvedo...
GlassFish - História●        V 3.1 – Fevereiro 2011           –        Load Balancing           –        Centralised Admin...
GlassFish - História●         V 3.1.2 – Fevereiro 2012           –        Correção de bugs           –        Novo console...
GlassFish - Futuro●         Versão 4.0 - Roadmap           –        Java EE 7           –        Suporte a virtualização  ...
GlassFish 4.0Servidor de Aplicação Enterprise ReadyReferência de Implementação Java EE 7 24   Oracle Technical Workshop | ...
Migração simples do GlassFish para o Oracle     WebLogic 12c25   Oracle Technical Workshop | WebLogic 12c & Fusion Middlew...
Desenvolvimento JEE + leve c/ WebLogic 12c                                                                     1GB●     Me...
5
O que é?         • Projeto Open Source da Apache         • O Maven é:                    –      Um sistema de build automa...
Apache Maven●    Ferramenta de build       –        Convention over configuration       –        Arquivos POMs       –    ...
Apache Maven●    Perfeito para       –        Integração Contínua       –        Aceleração na ambientação de novos desenv...
Apache Maven●    Principais Plugins para projetos Java EE 6       –        WAR plugin       –        EAR plugin       –   ...
WAR plugin<project>                                    |-- pom.xml                                              `-- src  <...
Definição das dependências                                                                            <plugin>●   Como con...
EAR plugin                                                     |--   pom.xml                                              ...
GlassFish Embedded plugin●    Permite rodar o GlassFish (tanto Web quanto Full profile)     a partir do Maven       –     ...
GlassFish Embedded plugin     ●        Permite iniciar ou parar uma instância remota ou local              (embedded)     ...
GlassFish Embedded plugin     ●        Como configurar?                 –        Artefatos no repositório central (#win o/...
GlassFish Embedded plugin     <dependency>       <groupId>org.glassfish.main.extras</groupId>       <artifactId>glassfish-...
GlassFish Embedded plugin     ●        Como configurar?                 –        Plugin                 –        domain.xm...
GlassFish Embedded plugin     <plugin>       <groupId>org.glassfish.embedded</groupId>       <artifactId>maven-embedded-gl...
WebLogic também tem Maven Plugin     ●        Goals disponíveis:                 –        install                 –       ...
Integração com Servidores de IC                                                                       Servidor de         ...
Outros plugins interessantes     ●        Dependency                 –        Visualizar as dependencias                  ...
Outros plugins interessantes●    Assembly       –        Agregar artefatos e dependencias do projeto em um arquivo ou dire...
Outros plugins interessantes●    GMaven - Groovy       –        Scripting no build usando linguagem Groovy                ...
Exemplo GMaven     <configuration> <source>               def sw = new FileWriter(new File("target/module.xml"))          ...
Outros plugins interessantes     ●        Archetype                 –        Auxilia na definição de “esqueletos” de proje...
Links     ●        GlassFish                                             @glassfish              http://www.glassfish.org ...
GlassFish, Maven, Cloud e o futuro do Java EE
Upcoming SlideShare
Loading in …5
×

GlassFish, Maven, Cloud e o futuro do Java EE

2,570 views

Published on

Slides apresentados no #TDC2012 edição Florianópolis, no dia 24/08

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,570
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
17
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

GlassFish, Maven, Cloud e o futuro do Java EE

  1. 1. 1 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  2. 2. GlassFish, Maven, Cloud e o futuro do Java EE Bruno Borges | Fusion Middleware | Product Management2 bruno.borges@oracle.com Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  3. 3. The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.3 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  4. 4. Agenda ● Java EE – Versão 6 – Futuro: Java EE 7 ● GlassFish – História – Futuro ● Apache Maven ● Embedded GlassFish Maven Plugin4 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  5. 5. O que o mercado procura?5 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  6. 6. Spring vs Java EE ? ● Java EE evoluiu graças ao Spring ● Full e Web profiles – lightweight! ● Spring utiliza recursos EE ● Java as a language / Java as a platform ● Java EE as a platform / Java EE as a framework6 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  7. 7. Desenvolvimento Moderno com Java EE 6 Flexível & Leve Estensível• API Java EE mais enxuta • Integre frameworks open source• DI (Dependency Injection) • Habilite a instalação “Drag & Drop” agora é um padrão Java EE de frameworks open source• Manipule cenários simples e • Extensões padrões para DI não complexos sem dependências criam mais lock-ins proprietários externas Produtividade no Desenvolvimento • Modelo de programação em POJOs • Mais anotações, melhor suporte de IDE • Menos config. XML, mais convenções • Anotações e não deployment descriptors 7 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  8. 8. Mais produtividade, menos código: Java EE 6 25% 50% 80% Menos Classes Menos Linhas Menos Linhas Java* de Código* de XML*• Menos XML, Menos Código • Simplificação, Produtividade • Modernização • Java Server Faces 2.0 • Managed Beans 1.0 • Context & Dependency • Java Servlets 3.0 • Bean Validation 1.0 Injection 1.0 • Java Persistence 2.0 • JAX-WS 2.2 • Bean Validation 1.0 • Enterprise Java Beans 3.1 • Java API for RESTful & Interceptors 1.1 Web Services * Baseado em um aplicativo criado no JavaOne usando POJO / JPA / REST 8 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  9. 9. Java EE 6● Java EE 6 – JSR 316 – Profiles – EJB 3.1 – JSF 2.0 – JSP 2.2 / Servlets 3.0 – JAX-RS – JAX-WS 2.2 – JPA 2.0 – Java EE Connectors 1.6 9 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  10. 10. Java EE 6 ● As coisas boas do Java EE 6 – Não precisa mais de web.xml – Melhora na API de Servlets para tratar FileUpload – Validation (JSR 303) no JPA – CDI @Inject #FWT o/10 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  11. 11. Java EE 6 ● As coisas boas do Java EE 6 – EJB do jeito que todo mundo queria ● Não precisa mais de um ejb-jar.xml ● Anotações ● @Singleton e @Startup beans ● @Schedule beans methods ● Operações assíncronas11 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  12. 12. Do JEE 6 para o JEE 712 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  13. 13. Java EE 7 Java EE 7
  14. 14. Java EE 7 ● EJB 3.2 – JSR 345 – Suporte a multi-tenancy – Melhora no uso de anotações para simplificar o modelo de programação – Alinhamento com outras especificações como CDI, JMS e BeanValidation ● JPA 2.1 – JSR 338 – Introdução da interface StoredProcedureQuery14 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  15. 15. Java EE 7 ● Servlet 3.1 – JSR 340 – Suporte a WebSockets ● JSF 2.2 – JSR 344 – Mais fácil de criar componentes – HTML5 – Novos componentes – Mobile devices15 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  16. 16. Java EE 7 O mais esperado (IMO) ● JMS – Java Messaging Service 2.0 – JSR 343 ● Melhora no modelo de programação ● Integração com CDI ● Mudanças na API para permitir maior integração entre vendors de JMS com qualquer container JEE ● “Cloud-friendly”: suporte a multi-tenancy e outras funcionalidades relacinadas a Cloud16 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  17. 17. Java EE 7 O mais esperado (IMO) ● JMS – Java Messaging Service 2.0 – JSR 343 ● Melhora no modelo de programação ● Integração com CDI ● Mudanças na API para permitir maior integração entre vendors de JMS com qualquer container JEE ● “Cloud-friendly”: suporte a multi-tenancy e outras funcionalidades relacinadas a Cloud17 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  18. 18. Java EE 7 – Plataforma ideal para Cloud18 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  19. 19. Oracle GlassFish Server Java EE 7
  20. 20. GlassFish - História● Criado pela Sun em 2005● 2006 (v1), RI do JEE 5 – para desenvolvedores● 2007 (v2), adicionou Clustering e outras funções – para enterprise● 2009, (v3) RI do JEE 6 – Nova arquitetura (OSGi, fast-startup, etc) 20 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  21. 21. GlassFish - História● V 3.1 – Fevereiro 2011 – Load Balancing – Centralised Admin● V 3.1.1 – Julho 2011 – Correção de bugs 21 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  22. 22. GlassFish - História● V 3.1.2 – Fevereiro 2012 – Correção de bugs – Novo console administrativo – Melhorias no Thread Pool – Transaction Recovery 22 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  23. 23. GlassFish - Futuro● Versão 4.0 - Roadmap – Java EE 7 – Suporte a virtualização – PaaS oriented 23 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  24. 24. GlassFish 4.0Servidor de Aplicação Enterprise ReadyReferência de Implementação Java EE 7 24 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  25. 25. Migração simples do GlassFish para o Oracle WebLogic 12c25 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  26. 26. Desenvolvimento JEE + leve c/ WebLogic 12c 1GB● Melhoría de 2X à 6X do tamanho do download para os desenvolvedores● Sem instaladores, faça unzip e inicie o uso dentro do Windows, Linux ou OSX (Mac) 6X 318MB● Inicie uma instância com o parâmetro -Dservertype=wlx para carregar o WebLogic 168MB 12c sem os contêiners de EJB, JMS e JCA 2X● Faça download e utilize o produto sem custo (estudos), sem chaves de ativação ou datas de expiração dos produtos. Use a vasta documentação Distribuição 11g Distribuição 11g (Formato Zip) Distribuição 12c online da Oracle26 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  27. 27. 5
  28. 28. O que é? • Projeto Open Source da Apache • O Maven é: – Um sistema de build automatizado + – Um sistema de gestão de projetos + – Um sistema para gerir dependências + – Um sistema de descrição de projetos + – Um sistema de geração de sites + ...28 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  29. 29. Apache Maven● Ferramenta de build – Convention over configuration – Arquivos POMs – Repositório de artefatos – Plugins29 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  30. 30. Apache Maven● Perfeito para – Integração Contínua – Aceleração na ambientação de novos desenvolvedores30 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  31. 31. Apache Maven● Principais Plugins para projetos Java EE 6 – WAR plugin – EAR plugin – GlassFish Embedded Plugin – Dependency plugin – Assembly plugin – Groovy Maven Plugin – Archetype Plugin31 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  32. 32. WAR plugin<project> |-- pom.xml `-- src <groupId>com.myproject</groupId> `-- main <artifactId>myproject</artifactId> |-- java <packaging>war</packaging> | `-- com <version>1.0-SNAPSHOT</version> | `-- example | `-- projects <build> | `-- SampleAction.java <plugins> |-- resources <plugin> | `-- images <groupId>org.apache.maven.plugins</groupId> | `-- sampleimage.jpg <artifactId>maven-war-plugin </artifactId> `-- webapp <version>2.2</version> |-- WEB-INF <configuration> | `-- web.xml <failOnMissingWebXml>false</failOnMissingWebXml> |-- index.jsp </configuration> `-- jsp </plugin> `-- websource.jsp </plugins> </build></project> 32 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  33. 33. Definição das dependências <plugin>● Como controlar <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> quais dependências <version>2.2</version> <configuration> vão para o MANIFEST <archive> <manifest> e/ou para o WEB-INF <addClasspath>true</addClasspath> </manifest> /lib? </archive> </configuration> – default </plugin> vai para o MANIFEST, e no WEB-INF/lib – <optional>true</optional> vai para o MANIFEST, mas não no WEB-INF/lib – <scope>provided</scope> não vai para o MANIFEST, nem para o WEB-INF/lib 33 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  34. 34. EAR plugin |-- pom.xml |-- module-ear | `-- pom.xml<plugin> |-- module-ejb <groupId>org.apache.maven.plugins</groupId> | |-- pom.xml <artifactId>maven-ear-plugin </artifactId> | `-- src <version>2.7</version> | `-- main</plugin> | |-- java | | `-- com<configuration> | | `-- myproject <modules> | | `-- MyStatelessBean.java <ejbModule> `-- module-web <groupId>com.myproject</groupId> |-- pom.xml <artifactId>module-ejb</artifactId> `-- src `-- main </ejbModule> |-- java <webModule> |-- resources <groupId>com.myproject</groupId> `-- webapp <artifactId>module-web</artifactId> <contextRoot>myproject</contextRoot> </webModule> </modules></configuration> 34 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  35. 35. GlassFish Embedded plugin● Permite rodar o GlassFish (tanto Web quanto Full profile) a partir do Maven – $ mvn embedded-glassfish:run● Permite fazer deploy e undeploy em uma instância remota – $ mvn embedded-glassfish:deploy – $ mvn embedded-glassfish:undeploy35 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  36. 36. GlassFish Embedded plugin ● Permite iniciar ou parar uma instância remota ou local (embedded) – $ mvn embedded-glassfish:start – $ mvn embedded-glassfish:stop ● Permite administrar uma instância remote ou local (embedded) – $ mvn embedded-glassfish:admin36 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  37. 37. GlassFish Embedded plugin ● Como configurar? – Artefatos no repositório central (#win o/) – Dependências necessárias e seus escopos37 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  38. 38. GlassFish Embedded plugin <dependency> <groupId>org.glassfish.main.extras</groupId> <artifactId>glassfish-embedded-all</artifactId> <!-- ou web para projetos q nao usam todo o profile JEE --> <version>3.1.2</version> <scope>test</scope> </dependency> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>6.0</version> <scope>provided</scope> </dependency>38 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  39. 39. GlassFish Embedded plugin ● Como configurar? – Plugin – domain.xml (para DataSource e outras configurações de container)39 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  40. 40. GlassFish Embedded plugin <plugin> <groupId>org.glassfish.embedded</groupId> <artifactId>maven-embedded-glassfish-plugin</artifactId> <version>3.1.2</version> <configuration> <goalPrefix>embedded-glassfish</goalPrefix> <configFile>src/test/resources/domain.xml</configFile> <contextRoot>/</contextRoot> <app>${project.build.directory}/${build.finalName}.war</app> <port>8080</port> <autoDelete>true</autoDelete> </configuration> </plugin>40 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  41. 41. WebLogic também tem Maven Plugin ● Goals disponíveis: – install – create-domain – start-server – wlst – appc – deploy41 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  42. 42. Integração com Servidores de IC Servidor de IntegraçãoRepositório Contínua Servidordo Código Compila & WebLogic Empacota GlassFish 42 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  43. 43. Outros plugins interessantes ● Dependency – Visualizar as dependencias $ mvn dependency:tree – Copiar as dependencias para algum diretório $ mvn dependency:copy-dependencies – Criar um ClassPath $ mvn dependency:build-classpath – Modo offline $ mvn dependency:go-offline43 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  44. 44. Outros plugins interessantes● Assembly – Agregar artefatos e dependencias do projeto em um arquivo ou diretório, por exemplo: ● Criar um ZIP com todas as dependências ● Criar um ZIP com todos os fontes ● Criar um JAR (big-fat) executável <plugin>44 <groupId>org.apache.maven.plugins</groupId> Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  45. 45. Outros plugins interessantes● GMaven - Groovy – Scripting no build usando linguagem Groovy ● Em alguns servidores, pode ser necessário criar arquivos XML específicos (como deployment descriptors) ● Com o GMaven, é mais fácil de gerar esses arquivos <plugin> <groupId>org.codehaus.gmaven</groupId> <artifactId>gmaven-plugin</artifactId> <version>1.3</version> </plugin>45 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  46. 46. Exemplo GMaven <configuration> <source> def sw = new FileWriter(new File("target/module.xml")) def xml = new groovy.xml.MarkupBuilder(sw) xml.module(xmlns:urn:jboss:module:1.0, name:com.bemobi.infosender) { resources { project.runtimeClasspathElements.each { def path = it.find(".*?([w.-]*.jar)") { it[1] } !path?:resource-root(path:path) } } dependencies { module(name:org.hibernate, export:true) module(name:org.slf4j, export:true) module(name:org.apache.commons.logging, export:true) module(name:com.sun.xml.bind, export:true) module(name:javaee.api, export:true) } } </source> </configuration>46 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  47. 47. Outros plugins interessantes ● Archetype – Auxilia na definição de “esqueletos” de projetos reutilizáveis – Grandes empresas podem se beneficiar, quando possuem arquitetura padrão para todos os projetos47 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware
  48. 48. Links ● GlassFish @glassfish http://www.glassfish.org ● Embedded GlassFish (3.1.2 docs) http://bit.ly/eg312 ● Apache Maven http://maven.apache.org ● Groovy Magen Plugin http://bit.ly/gmaven48 Oracle Technical Workshop | WebLogic 12c & Fusion Middleware

×