Java ee com apache tom ee e tomee+ tdc - 2014

33
Java EE com Apache TomEE/TomEE+ Daniel Cunha (soro) [email protected] http://www.danielsoro.com.br

description

Apresentação TDC 2014

Transcript of Java ee com apache tom ee e tomee+ tdc - 2014

Page 1: Java ee com apache tom ee e tomee+   tdc - 2014

Java EE com Apache TomEE/TomEE+

Daniel Cunha (soro)[email protected]://www.danielsoro.com.br

Page 2: Java ee com apache tom ee e tomee+   tdc - 2014

Daniel Cunha (soro)soro – irc.freenode.nethttp://danielsoro.com.br

http://github.com/danielsorohttp://twitter.com/[email protected]

Page 3: Java ee com apache tom ee e tomee+   tdc - 2014

Como tudo começou?

Page 4: Java ee com apache tom ee e tomee+   tdc - 2014

Como tudo começou?

● Tomcat– Sem suporte a trasação

– Não dava suporte a pool de conexão● Pools devem ser transacional

– Sem segurança integrada

– Sem suporte a JNDI globais● java:module● java:app● java:global

– Sem suporte a @DataSourceDefinition

Page 5: Java ee com apache tom ee e tomee+   tdc - 2014

Como tudo começou?

– Sem @Resource● UserTransaction● BeanManager● Validator● ValidatorFactory● Topic/Queue● ConnectionFactory

– Sem @PersistenceUnit

– Sem @PersistenceContext

– Sem @Inject

– Sem @EJB

– Sem @WebService

Page 6: Java ee com apache tom ee e tomee+   tdc - 2014

Resolvendo o problema

Page 7: Java ee com apache tom ee e tomee+   tdc - 2014

Resolvendo o problema

● Incluindo API de jars no meu webapp– JPA Api

– JSF Api

– etc

● Incluindo implementações no meu webapp– Mojarra

– etc

● JPA e DataSource nada simples– Muitos anos de: faça você mesmo.

– Faço do meu jeito [Nada de padrão]

Page 8: Java ee com apache tom ee e tomee+   tdc - 2014

As coisas não eram tão simples.

Page 9: Java ee com apache tom ee e tomee+   tdc - 2014
Page 10: Java ee com apache tom ee e tomee+   tdc - 2014

OpenEJB● Java Transaction API (JTA)● Java Persistence API (JPA)● Java Contexts and Dependency Injection (CDI)● Java Authentication and Authorization Service

(JAAS)● Java Authorization Contract for Containers

(JACC)● JavaMail API

Page 11: Java ee com apache tom ee e tomee+   tdc - 2014

OpenEJB● Bean Validation● Enterprise JavaBeans● Java API for RESTful Web Services (JAX-RS)● Java API for XML Web Services (JAX-WS)● Java EE Connector Architecture● Java Messaging Service (JMS)

Page 12: Java ee com apache tom ee e tomee+   tdc - 2014

Mas, cadê a API de Servlet?

Page 13: Java ee com apache tom ee e tomee+   tdc - 2014

Nada de JSP e JSF?

Page 14: Java ee com apache tom ee e tomee+   tdc - 2014

TOMCAT

Page 15: Java ee com apache tom ee e tomee+   tdc - 2014

Tomcat + OpenEJB

Page 16: Java ee com apache tom ee e tomee+   tdc - 2014

Mesmo assim, a integração não era transparente e fácil

Page 17: Java ee com apache tom ee e tomee+   tdc - 2014

Eu ainda precisava adicionar o JSF.

Page 18: Java ee com apache tom ee e tomee+   tdc - 2014

JSR 316: Java Platform, Enterprise Edition 6

(Java EE 6) Specification

Page 19: Java ee com apache tom ee e tomee+   tdc - 2014

Vamos implementar Java EE

Page 20: Java ee com apache tom ee e tomee+   tdc - 2014

Reaproveitando o passado

Page 21: Java ee com apache tom ee e tomee+   tdc - 2014

Apache OpenEJB e Apache TomEE nasceram a partir do mesmo projeto e comunidade. Eles diferem em dois principais modo, apenas um deles é técnico:

TomEE incorpora dois projetos adicionais; Tomcat e MyFaces TomEE, como o nome, facilmente demontra é um conjuto de tecnologias embutidas. Efetivamente, TomEE é um superconjunto do OpenEJB. Eles compartilham o mesmo código. TomEE surgiu do OpenEJB.

Page 22: Java ee com apache tom ee e tomee+   tdc - 2014
Page 23: Java ee com apache tom ee e tomee+   tdc - 2014

Tomcat + Java EE = TomEE● Certificado Java EE 6 Web Profile● Tomcat por completo● Todos os componentes são da Apache

– MyFaces (JSF)

– OpenWebBeans (CDI)

– OpenEJB (EJB)

– OpenJPA (JPA)

– Bval (Bean Validation)

Page 24: Java ee com apache tom ee e tomee+   tdc - 2014

Valores do TomEE● Ser pequeno● Ser Tomcat● Ser certificado

Page 25: Java ee com apache tom ee e tomee+   tdc - 2014

Status básicos● Tamanho: todo o webprofile é apenas 24MB● Uso de memória: requerimento muito pequeno,

passou no TCK sem alterar as configurações de memória padrão da JVM

● Agilidade: o servidor pode passar por um ciclo de start/deploy/test/undeploy/stop em 2-3 segundos, quando executado no modo embedded.

Page 26: Java ee com apache tom ee e tomee+   tdc - 2014

Tomcat / TomEE

Page 27: Java ee com apache tom ee e tomee+   tdc - 2014

DEMO

Page 28: Java ee com apache tom ee e tomee+   tdc - 2014

Como contribuir?

Page 29: Java ee com apache tom ee e tomee+   tdc - 2014

public void contributeToOpenSource() { boolean stillInterestedAndHavingFun = true; int taskSize = 1; // start small! contributing: while (stillInterestedAndHavingFun) { Task task = findSomethingInteresting(taskSize++); if (!task.hasJira()) { createJira(task); } else { requestToBeAssignedToJira(task.jiraId()); } while (task.inProgress()) { chatOnListALittleGetCleverIdeas(task, new Ideas(task)); hackALittle(task); if (task.tooHard() || task.notFun()) { // no big deal, try again with something else taskSize--; continue contributing; } } File patchFile = createSvnOrGitPatch(task); attachToJira(task.jiraId(), patchFile); askForReviewOnList(task.jiraId()); while (!committed(patchFile)) { try { pokeAtSometingElse(); helpOnUserList(); dayDream(); } catch (MoreThanAWeekException e) { // Assume it fell off the radar -- happens. // Evidence we need more committers. bumpThreadOnList(task); } } }}

Page 30: Java ee com apache tom ee e tomee+   tdc - 2014

Apache TomEE● http://tomee.apache.org/

● http://tomee.apache.org/documentation.html

● http://tomee.apache.org/examples-trunk/index.html

● http://tomee.apache.org/support.html

● http://svn.apache.org/viewvc/tomee/tomee/trunk/

● #OpenEJB – irc.freenode.net

Page 31: Java ee com apache tom ee e tomee+   tdc - 2014

Perguntas?

Page 32: Java ee com apache tom ee e tomee+   tdc - 2014

Obrigado

Page 33: Java ee com apache tom ee e tomee+   tdc - 2014

Java EE com Apache TomEE/TomEE+

Daniel Cunha (soro)[email protected]://www.danielsoro.com.br