Your SlideShare is downloading. ×
0
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

GlassFish e Maven: Java EE sem dor!

3,039

Published on

Aprenda um pouco sobre GlassFish, Java EE e também Apache Maven

Aprenda um pouco sobre GlassFish, Java EE e também Apache Maven

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,039
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
34
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Aplicacoes isoladas Usuarios querem acesso a todas as funcoes e dados. Nao importa onde estejam. Requer aplicacoes integradas. Nao existe receita de bolo para integrar aplicacoes, nem a solucao ideal. Se a arquitetura escolhida foi boa ou nao, só com o tempo pra saber. Solucoes de fornecedores sao metodologias e praticas voltadas a produtos. Arquiteturas de mensagens assincronas mostram ser a melhor opcao por desacoplar diferentes sistemas. Padroes de integracao sao voltados a problemas especificos de design. Criados a partir de solucoes que se repetiram e mostraram ter resultado positivo
  • Aplicacoes isoladas Usuarios querem acesso a todas as funcoes e dados. Nao importa onde estejam. Requer aplicacoes integradas. Nao existe receita de bolo para integrar aplicacoes, nem a solucao ideal. Se a arquitetura escolhida foi boa ou nao, só com o tempo pra saber. Solucoes de fornecedores sao metodologias e praticas voltadas a produtos. Arquiteturas de mensagens assincronas mostram ser a melhor opcao por desacoplar diferentes sistemas. Padroes de integracao sao voltados a problemas especificos de design. Criados a partir de solucoes que se repetiram e mostraram ter resultado positivo
  • Aplicacoes isoladas Usuarios querem acesso a todas as funcoes e dados. Nao importa onde estejam. Requer aplicacoes integradas. Nao existe receita de bolo para integrar aplicacoes, nem a solucao ideal. Se a arquitetura escolhida foi boa ou nao, só com o tempo pra saber. Solucoes de fornecedores sao metodologias e praticas voltadas a produtos. Arquiteturas de mensagens assincronas mostram ser a melhor opcao por desacoplar diferentes sistemas. Padroes de integracao sao voltados a problemas especificos de design. Criados a partir de solucoes que se repetiram e mostraram ter resultado positivo
  • Transcript

    • 1. GlassFish e Maven: Java EE sem dorBruno Borgesbruno.borges@oracle.com @brunoborges
    • 2. Agenda GlassFish História Futuro Java EE Versão 6 Futuro: Java EE 7 Apache Maven Embedded GlassFish Maven Plugin
    • 3. 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)
    • 4. GlassFish - História V 3.1 – Fevereiro 2011 Load Balancing Centralised Admin V 3.1.1 – Julho 2011 Correção de bugs V 3.1.2 – Fevereiro 2012 Correção de bugs Novo console administrativo Melhorias no Thread Pool Transaction Recovery
    • 5. GlassFish - Futuro Versão 4.0 - Roadmap Java EE 7 Suporte a virtualização PaaS oriented
    • 6. 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
    • 7. 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 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íncronas
    • 8. Do JEE6 para o JEE7
    • 9. Java EE 7 Java EE 7
    • 10. 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 Servlet 3.1 – JSR 340 Suporte a WebSockets JPA 2.1 – JSR 338 Introdução da interface StoredProcedureQuery
    • 11. Java EE 7 JSF 2.2 – JSR 344 Mais fácil de criar componentes HTML5 O mais esperado 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
    • 12. Apache Maven
    • 13. Apache Maven Ferramenta de build Convention over configuration Arquivos POMs Repositório de artefatos Plugins Perfeito para Integração Contínua Aceleração na ambientação de novos desenvolvedores
    • 14. Apache Maven Principais Plugins para projetos Java EE 6 WAR plugin EAR plugin GlassFish Embedded Plugin Dependency plugin Assembly plugin Groovy Maven Plugin Archetype Plugin
    • 15. WAR plugin Cria um arquivo WAR de um projeto do tipo WAR |-- pom.xml<project> `-- src `-- main <groupId>com.myproject</groupId> |-- java <artifactId>myproject</artifactId> | `-- com <packaging>war</packaging> | `-- example <version>1.0-SNAPSHOT</version> | `-- projects | `-- SampleAction.java <build> |-- resources <plugins> | `-- images <plugin> | `-- sampleimage.jpg <groupId>org.apache.maven.plugins</groupId> `-- webapp <artifactId>maven-war-plugin</artifactId> |-- WEB-INF <version>2.2</version> | `-- web.xml <configuration> |-- index.jsp <failOnMissingWebXml>false</failOnMissingWebXml> `-- jsp </configuration> `-- websource.jsp </plugin> </plugins> </build></project> $ mvn package //ou entao// $ mvn compile war:war $ mvn war:exploded
    • 16. 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> </plugin> default 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
    • 17. EAR plugin Cria um arquivo EAR de um projeto modularizado<plugin> |-- pom.xml <groupId>org.apache.maven.plugins</groupId> |-- module-ear <artifactId>maven-ear-plugin</artifactId> | `-- pom.xml <version>2.7</version> |-- module-ejb</plugin> | |-- pom.xml | `-- src | `-- main | |-- java | | `-- com | | `-- myproject <configuration> | | `-- MyStatelessBean.java <modules> `-- module-web <ejbModule> |-- pom.xml <groupId>com.myproject</groupId> `-- src <artifactId>module-ejb</artifactId> `-- main </ejbModule> |-- java <webModule> |-- resources <groupId>com.myproject</groupId> `-- webapp <artifactId>module-web</artifactId> <contextRoot>myproject</contextRoot> </webModule> </modules> </configuration>
    • 18. 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:undeploy
    • 19. 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:admin
    • 20. GlassFish Embedded plugin Como configurar? Artefatos no repositório central (#win o/) Dependências necessárias e seus escopos <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>
    • 21. GlassFish Embedded plugin Como configurar? Plugin domain.xml (para DataSource e outras configurações de container) <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>
    • 22. 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-offline
    • 23. 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> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.3</version> </plugin>
    • 24. 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>
    • 25. Exemplo GMaven <configuration> <source> new File("target").mkdir() 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>
    • 26. 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 projetos
    • 27. 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/gmaven Blog http://blog.brunoborges.com.br
    • 28. Obrigado Bruno Borges bruno.borges@oracle.com @brunoborges

    ×