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

Post on 24-May-2015

1.739 views 6 download

description

Apresentação TDC 2014

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

Java EE com Apache TomEE/TomEE+

Daniel Cunha (soro)danielsoro@gmail.comhttp://www.danielsoro.com.br

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

http://github.com/danielsorohttp://twitter.com/dvlc_danielsoro@gmail.com

Como tudo começou?

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

Como tudo começou?

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

– Sem @PersistenceUnit

– Sem @PersistenceContext

– Sem @Inject

– Sem @EJB

– Sem @WebService

Resolvendo o problema

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]

As coisas não eram tão simples.

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

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)

Mas, cadê a API de Servlet?

Nada de JSP e JSF?

TOMCAT

Tomcat + OpenEJB

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

Eu ainda precisava adicionar o JSF.

JSR 316: Java Platform, Enterprise Edition 6

(Java EE 6) Specification

Vamos implementar Java EE

Reaproveitando o passado

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.

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)

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

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.

Tomcat / TomEE

DEMO

Como contribuir?

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); } } }}

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

Perguntas?

Obrigado

Java EE com Apache TomEE/TomEE+

Daniel Cunha (soro)danielsoro@gmail.comhttp://www.danielsoro.com.br