Java EE com Apache
TomEE/TomEE+
Daniel Cunha (soro)
danielsoro@gmail.com
http://www.danielsoro.com.br
Daniel Cunha (soro)
soro – irc.freenode.net
http://danielsoro.com.br
http://github.com/danielsoro
http://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.com
http://www.danielsoro.com.br

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

  • 1.
    Java EE comApache TomEE/TomEE+ Daniel Cunha (soro) danielsoro@gmail.com http://www.danielsoro.com.br
  • 2.
    Daniel Cunha (soro) soro– irc.freenode.net http://danielsoro.com.br http://github.com/danielsoro http://twitter.com/dvlc_ danielsoro@gmail.com
  • 3.
  • 4.
    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
  • 5.
    Como tudo começou? –Sem @Resource ● UserTransaction ● BeanManager ● Validator ● ValidatorFactory ● Topic/Queue ● ConnectionFactory – Sem @PersistenceUnit – Sem @PersistenceContext – Sem @Inject – Sem @EJB – Sem @WebService
  • 6.
  • 7.
    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]
  • 8.
    As coisas nãoeram tão simples.
  • 10.
    OpenEJB ● Java TransactionAPI (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
  • 11.
    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)
  • 12.
    Mas, cadê aAPI de Servlet?
  • 13.
  • 14.
  • 15.
  • 16.
    Mesmo assim, a integraçãonão era transparente e fácil
  • 17.
  • 18.
    JSR 316: JavaPlatform, Enterprise Edition 6 (Java EE 6) Specification
  • 19.
  • 20.
  • 21.
    Apache OpenEJB eApache 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.
  • 23.
    Tomcat + JavaEE = 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)
  • 24.
    Valores do TomEE ●Ser pequeno ● Ser Tomcat ● Ser certificado
  • 25.
    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.
  • 26.
  • 27.
  • 28.
  • 29.
    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); } } } }
  • 30.
    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
  • 31.
  • 32.
  • 33.
    Java EE comApache TomEE/TomEE+ Daniel Cunha (soro) danielsoro@gmail.com http://www.danielsoro.com.br