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
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]
10. 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
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)
21. 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.
22.
23. 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)
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.