SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
Apache TomEE
                              Java EE 6 Web Profile
                          David Blevins
                          @dblevins
                          #TomEE




Friday, October 7, 2011
What is Apache TomEE?
                          • Java EE 6 Web Profile certified stack
                          • Tomcat through and through
                          • Tomcat + Java EE = TomEE (pronounced “Tommy”)
                          • All Apache components
                           • MyFaces
                           • OpenWebBeans
                           • OpenEJB
                           • OpenJPA
                           • Bean Validation
                          • Core Values
                           • Be Small
                           • Be Tomcat
                           • Be Certified



                                                      2

Friday, October 7, 2011
Aren’t there enough of those already?
                          • Still seem to be a lot of “just” Tomcat users
                          • Tomcat still the recommended server for most Apache projects
                            • MyFaces
                            • OpenWebBeans
                            • CXF
                            • OpenEJB
                            • etc. etc.
                          • We truly believe Java EE is not “heavy”
                            • OpenEJB, strong desire to disprove “heavy”
                            • No one else was going to do it
                          • The Web Profile? Perfect!
                            • had our name on it
                            • too perfect not to try



                                                         3

Friday, October 7, 2011
Flavors of TomEE
                          • Apache TomEE Web Profile (Java EE 6 Certified)
                           • OpenWebBeans
                           • OpenEJB
                           • OpenJPA
                           • MyFaces
                           • Bean Validation
                          • Apache TomEE Plus (NOT Java EE 6 Certified)
                           • CXF (JAX-RS, JAX-WS)
                           • ActiveMQ (JMS)
                           • Geronimo Connector
                          • Embedded Apache TomEE




                                                     4

Friday, October 7, 2011
Basic Stats
                          • Size: the entire Web Profile is only 24Mb
                          • Memory usage: very little required, passed the TCK without
                            changing any default JVM memory settings
                          • Agility: the server can go through a start/deploy/test/undeploy/stop
                            cycle in 2-3 seconds, when run in embedded mode




                                                        5

Friday, October 7, 2011
So do other app servers suck?




                               Of Course Not




                                     6

Friday, October 7, 2011
When did it start?
                          • Years ago.... or this year. Depends on your perspective.
                          • My answer: this year.
                          • Heavy certification work began in February this year
                           • Wow, we were not nearly as close as we thought we were
                          • Particularly big months
                           • March
                           • April... (sorry for breaking EC2)
                           • May
                           • June
                           • July .. brutal
                           • August.. yep
                           • oh and ... September
                           • what day is it now?



                                                           7

Friday, October 7, 2011
How did we do it?
                          • Certified on Amazon EC2
                           • t1.micro linux images, lot’s of them
                           • 100 spot instances going at once!
                           • Each has 613MB memory max
                           • Pass complete Web Profile TCK with default jvm memory (tiny!)
                          • Current certified OSs
                           • Amazon Linux AMI 2011.09, EBS boot, 32-bit EC2 t1.micro
                           • Amazon Linux AMI 2011.09, EBS boot, 32-bit EC2 m1.small
                           • Amazon Linux AMI 2011.09, EBS boot, 32-bit EC2 c1.medium
                          • Got a Cloud? Donate time!




                                                         8

Friday, October 7, 2011
The Same Old Argument




Friday, October 7, 2011
“We Just Use Tomcat”
                          • We just use Tomcat and....
                            • all the extra parts we like
                            • integrated in a custom fashion
                          • Battle standard for Java EE “haters”
                            • Tomcat used as an argument Java EE is unnecessary
                          • What is unnecessary?
                            • Compliance testing?
                            • Portability?
                            • Completeness in implementation?
                            • Consistency of integration?
                          • “It’s unnecessary at the cost of ....”
                            • Let’s remove that cost




                                                            10

Friday, October 7, 2011
Redefining “worth it”
                          • “Oh yeah, we’ll our home grown stack is just like yours but”
                            • not tested
                            • not certified
                            • costs us to create and maintain
                            • missing major features
                            • not tuned
                          • “... we ROCK!!!”
                          • Hard to make the same old argument and not look foolish
                          • Truly do have some valid reason for not using a certified stack?
                            • tell us, we’ll fix it




                                                         11

Friday, October 7, 2011
Tomcat: What’s not there




Friday, October 7, 2011
Gaps in plain Tomcat
                          • No Transaction support
                          • No Connection Pooling support
                           • Connection pooling support should be transaction aware
                          • No @Resource
                           • UserTransaction
                           • BeanManager
                           • Validator
                           • ValidatorFactory
                          • No @PersistenceUnit
                          • No @PersistenceContext
                          • No @Inject
                          • No @EJB




                                                       13

Friday, October 7, 2011
Gaps in plain Tomcat
                          • No support for Global JNDI
                           • java:module
                           • java:app
                           • java:global
                          • No support for @Resource(lookup=”...”)
                          • No support for @DataSourceDefinition
                          • No support for new <env-entry> types:
                           • java.lang.Class
                           • Enums
                          • No Integrated Security




                                                         14

Friday, October 7, 2011
How long can you
                            do without?




Friday, October 7, 2011
Demo




Friday, October 7, 2011
Technical Goals
                          • How small can it get?
                            • Binary: 24MB download... can we get below 20MB?
                            • Memory: 6,000 classes loaded ... can we get to 2,000?
                          • Nail down the embedded setup
                            • Shave 2-3 second cycles down to 1 second
                          • So many optimizations
                            • Class scope filtering
                            • JAXB Overhead
                            • Duplicate classes
                          • Certify more parts
                            • JAX-RS
                            • Connector
                            • JAX-WS



                                                         17

Friday, October 7, 2011
Technical Goals (cont.)
                          • Flush out validation (not the JSR-303 kind)
                            • Servlet
                            • JSF
                            • CDI
                          • Improve Logging
                            • Too verbose
                            • Not as informative is it could be
                          • Refactor and clean code
                            • Mad dash to certify
                            • Simplify and trim
                          • Polish, Polish, Polish...




                                                          18

Friday, October 7, 2011
Questions?




Friday, October 7, 2011
thank you!
                          openejb.apache.org




Friday, October 7, 2011

Más contenido relacionado

La actualidad más candente

UCLUG TorqueBox - 03/08/2011
UCLUG TorqueBox - 03/08/2011UCLUG TorqueBox - 03/08/2011
UCLUG TorqueBox - 03/08/2011
tobiascrawley
 
Conquistando el Servidor con Node.JS
Conquistando el Servidor con Node.JSConquistando el Servidor con Node.JS
Conquistando el Servidor con Node.JS
Caridy Patino
 

La actualidad más candente (20)

UCLUG TorqueBox - 03/08/2011
UCLUG TorqueBox - 03/08/2011UCLUG TorqueBox - 03/08/2011
UCLUG TorqueBox - 03/08/2011
 
Migration tales from java ee 5 to 7
Migration tales from java ee 5 to 7Migration tales from java ee 5 to 7
Migration tales from java ee 5 to 7
 
Social Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and DominoSocial Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and Domino
 
EhTrace -- RoP Hooks
EhTrace -- RoP HooksEhTrace -- RoP Hooks
EhTrace -- RoP Hooks
 
Iwmn architecture
Iwmn architectureIwmn architecture
Iwmn architecture
 
HH.JS - State of the Automation
HH.JS - State of the AutomationHH.JS - State of the Automation
HH.JS - State of the Automation
 
Exceptable
ExceptableExceptable
Exceptable
 
Dockercon EU 2015
Dockercon EU 2015Dockercon EU 2015
Dockercon EU 2015
 
Eureka moment
Eureka momentEureka moment
Eureka moment
 
Java EE 7 meets Java 8
Java EE 7 meets Java 8Java EE 7 meets Java 8
Java EE 7 meets Java 8
 
ColdFusion builder plugins
ColdFusion builder pluginsColdFusion builder plugins
ColdFusion builder plugins
 
Build Fail-Proof Tests in Any Browser with Selenium
Build Fail-Proof Tests in Any Browser with SeleniumBuild Fail-Proof Tests in Any Browser with Selenium
Build Fail-Proof Tests in Any Browser with Selenium
 
Building MapAttack
Building MapAttackBuilding MapAttack
Building MapAttack
 
Creating airplane mode proof (Xamarin) applications
Creating airplane mode proof (Xamarin) applicationsCreating airplane mode proof (Xamarin) applications
Creating airplane mode proof (Xamarin) applications
 
Plone Deployment (PloneConf Edition)
Plone Deployment (PloneConf Edition)Plone Deployment (PloneConf Edition)
Plone Deployment (PloneConf Edition)
 
Full-Stack Plone Deployment with Ansible
Full-Stack Plone Deployment with AnsibleFull-Stack Plone Deployment with Ansible
Full-Stack Plone Deployment with Ansible
 
Conquistando el Servidor con Node.JS
Conquistando el Servidor con Node.JSConquistando el Servidor con Node.JS
Conquistando el Servidor con Node.JS
 
Nexcess Magento Imagine 2014 Performance Breakout
Nexcess Magento Imagine 2014 Performance BreakoutNexcess Magento Imagine 2014 Performance Breakout
Nexcess Magento Imagine 2014 Performance Breakout
 
PHP 5.4 - Begin your love affair with traits
PHP 5.4 - Begin your love affair with traitsPHP 5.4 - Begin your love affair with traits
PHP 5.4 - Begin your love affair with traits
 
CollabSphere SC 103 : Domino on the Web : Yes, It's (Probably) Hackable
CollabSphere SC 103 : Domino on the Web : Yes, It's (Probably) HackableCollabSphere SC 103 : Domino on the Web : Yes, It's (Probably) Hackable
CollabSphere SC 103 : Domino on the Web : Yes, It's (Probably) Hackable
 

Similar a 2011 JavaOne Apache TomEE Java EE 6 Web Profile

Apache Tomcat + Java EE = Apache TomEE
Apache Tomcat + Java EE = Apache TomEEApache Tomcat + Java EE = Apache TomEE
Apache Tomcat + Java EE = Apache TomEE
Jacek Laskowski
 
JVM for Dummies - OSCON 2011
JVM for Dummies - OSCON 2011JVM for Dummies - OSCON 2011
JVM for Dummies - OSCON 2011
Charles Nutter
 
2011 JavaOne Fun with EJB 3.1 and OpenEJB
2011 JavaOne Fun with EJB 3.1 and OpenEJB2011 JavaOne Fun with EJB 3.1 and OpenEJB
2011 JavaOne Fun with EJB 3.1 and OpenEJB
David Blevins
 
20110903 candycane
20110903 candycane20110903 candycane
20110903 candycane
Yusuke Ando
 
Automating JavaScript testing with Jasmine and Perl
Automating JavaScript testing with Jasmine and PerlAutomating JavaScript testing with Jasmine and Perl
Automating JavaScript testing with Jasmine and Perl
nohuhu
 
A Case Study of NoSQL Adoption: What Drove Wordnik Non-Relational?
A Case Study of NoSQL Adoption: What Drove Wordnik Non-Relational?A Case Study of NoSQL Adoption: What Drove Wordnik Non-Relational?
A Case Study of NoSQL Adoption: What Drove Wordnik Non-Relational?
DATAVERSITY
 
Sean coates fifty things and tricks, confoo 2011
Sean coates fifty things and tricks, confoo 2011Sean coates fifty things and tricks, confoo 2011
Sean coates fifty things and tricks, confoo 2011
Bachkoutou Toutou
 

Similar a 2011 JavaOne Apache TomEE Java EE 6 Web Profile (20)

Apache Tomcat + Java EE = Apache TomEE
Apache Tomcat + Java EE = Apache TomEEApache Tomcat + Java EE = Apache TomEE
Apache Tomcat + Java EE = Apache TomEE
 
JVM for Dummies - OSCON 2011
JVM for Dummies - OSCON 2011JVM for Dummies - OSCON 2011
JVM for Dummies - OSCON 2011
 
Perl Testing Consideration (seen from other languages)
Perl Testing Consideration (seen from other languages)Perl Testing Consideration (seen from other languages)
Perl Testing Consideration (seen from other languages)
 
Inside Wordnik's Architecture
Inside Wordnik's ArchitectureInside Wordnik's Architecture
Inside Wordnik's Architecture
 
AppScale Talk at SBonRails
AppScale Talk at SBonRailsAppScale Talk at SBonRails
AppScale Talk at SBonRails
 
Ruby Midwest 2010 jRuby by Charles Nutter
Ruby Midwest 2010 jRuby by Charles NutterRuby Midwest 2010 jRuby by Charles Nutter
Ruby Midwest 2010 jRuby by Charles Nutter
 
2011 JavaOne Fun with EJB 3.1 and OpenEJB
2011 JavaOne Fun with EJB 3.1 and OpenEJB2011 JavaOne Fun with EJB 3.1 and OpenEJB
2011 JavaOne Fun with EJB 3.1 and OpenEJB
 
20110903 candycane
20110903 candycane20110903 candycane
20110903 candycane
 
Using The Page Object Pattern
Using The Page Object PatternUsing The Page Object Pattern
Using The Page Object Pattern
 
Java to Scala: Why & How
Java to Scala: Why & HowJava to Scala: Why & How
Java to Scala: Why & How
 
Selenium
SeleniumSelenium
Selenium
 
Fun with EJB 3.1 and Open EJB
Fun with EJB 3.1 and Open EJBFun with EJB 3.1 and Open EJB
Fun with EJB 3.1 and Open EJB
 
Ohoh
OhohOhoh
Ohoh
 
Using Apache Camel as AKKA
Using Apache Camel as AKKAUsing Apache Camel as AKKA
Using Apache Camel as AKKA
 
Automating JavaScript testing with Jasmine and Perl
Automating JavaScript testing with Jasmine and PerlAutomating JavaScript testing with Jasmine and Perl
Automating JavaScript testing with Jasmine and Perl
 
A Case Study of NoSQL Adoption: What Drove Wordnik Non-Relational?
A Case Study of NoSQL Adoption: What Drove Wordnik Non-Relational?A Case Study of NoSQL Adoption: What Drove Wordnik Non-Relational?
A Case Study of NoSQL Adoption: What Drove Wordnik Non-Relational?
 
Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014
 
Sean coates fifty things and tricks, confoo 2011
Sean coates fifty things and tricks, confoo 2011Sean coates fifty things and tricks, confoo 2011
Sean coates fifty things and tricks, confoo 2011
 
What Drove Wordnik Non-Relational?
What Drove Wordnik Non-Relational?What Drove Wordnik Non-Relational?
What Drove Wordnik Non-Relational?
 
Conquering AngularJS Limitations
Conquering AngularJS LimitationsConquering AngularJS Limitations
Conquering AngularJS Limitations
 

Más de David Blevins

2011 JavaOne EJB with Meta Annotations
2011 JavaOne EJB with Meta Annotations2011 JavaOne EJB with Meta Annotations
2011 JavaOne EJB with Meta Annotations
David Blevins
 

Más de David Blevins (16)

DevNexus 2020 - Jakarta Messaging 3.x, Redefining JMS
DevNexus 2020 - Jakarta Messaging 3.x, Redefining JMSDevNexus 2020 - Jakarta Messaging 3.x, Redefining JMS
DevNexus 2020 - Jakarta Messaging 3.x, Redefining JMS
 
2019 JJUG CCC Stateless Microservice Security with MicroProfile JWT
2019 JJUG CCC Stateless Microservice Security with MicroProfile JWT2019 JJUG CCC Stateless Microservice Security with MicroProfile JWT
2019 JJUG CCC Stateless Microservice Security with MicroProfile JWT
 
2018 jPrime Deconstructing and Evolving REST Security
2018 jPrime Deconstructing and Evolving REST Security2018 jPrime Deconstructing and Evolving REST Security
2018 jPrime Deconstructing and Evolving REST Security
 
2018 Denver JUG Deconstructing and Evolving REST Security
2018 Denver JUG Deconstructing and Evolving REST Security2018 Denver JUG Deconstructing and Evolving REST Security
2018 Denver JUG Deconstructing and Evolving REST Security
 
2018 Boulder JUG Deconstructing and Evolving REST Security
2018 Boulder JUG Deconstructing and Evolving REST Security2018 Boulder JUG Deconstructing and Evolving REST Security
2018 Boulder JUG Deconstructing and Evolving REST Security
 
2018 JavaLand Deconstructing and Evolving REST Security
2018 JavaLand Deconstructing and Evolving REST Security2018 JavaLand Deconstructing and Evolving REST Security
2018 JavaLand Deconstructing and Evolving REST Security
 
2018 IterateConf Deconstructing and Evolving REST Security
2018 IterateConf Deconstructing and Evolving REST Security2018 IterateConf Deconstructing and Evolving REST Security
2018 IterateConf Deconstructing and Evolving REST Security
 
2018 SDJUG Deconstructing and Evolving REST Security
2018 SDJUG Deconstructing and Evolving REST Security2018 SDJUG Deconstructing and Evolving REST Security
2018 SDJUG Deconstructing and Evolving REST Security
 
2017 Devoxx MA Deconstructing and Evolving REST Security
2017 Devoxx MA Deconstructing and Evolving REST Security2017 Devoxx MA Deconstructing and Evolving REST Security
2017 Devoxx MA Deconstructing and Evolving REST Security
 
2017 JavaOne Deconstructing and Evolving REST Security
2017 JavaOne Deconstructing and Evolving REST Security2017 JavaOne Deconstructing and Evolving REST Security
2017 JavaOne Deconstructing and Evolving REST Security
 
2017 JCP EC: Configuration JSR
2017 JCP EC: Configuration JSR2017 JCP EC: Configuration JSR
2017 JCP EC: Configuration JSR
 
2017 dev nexus_deconstructing_rest_security
2017 dev nexus_deconstructing_rest_security2017 dev nexus_deconstructing_rest_security
2017 dev nexus_deconstructing_rest_security
 
2016 JavaOne Deconstructing REST Security
2016 JavaOne Deconstructing REST Security2016 JavaOne Deconstructing REST Security
2016 JavaOne Deconstructing REST Security
 
2015 JavaOne EJB/CDI Alignment
2015 JavaOne EJB/CDI Alignment2015 JavaOne EJB/CDI Alignment
2015 JavaOne EJB/CDI Alignment
 
JavaOne 2013 - Apache TomEE, Java EE Web Profile {and more} on Tomcat
JavaOne 2013 - Apache TomEE, Java EE Web Profile {and more} on TomcatJavaOne 2013 - Apache TomEE, Java EE Web Profile {and more} on Tomcat
JavaOne 2013 - Apache TomEE, Java EE Web Profile {and more} on Tomcat
 
2011 JavaOne EJB with Meta Annotations
2011 JavaOne EJB with Meta Annotations2011 JavaOne EJB with Meta Annotations
2011 JavaOne EJB with Meta Annotations
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 

2011 JavaOne Apache TomEE Java EE 6 Web Profile

  • 1. Apache TomEE Java EE 6 Web Profile David Blevins @dblevins #TomEE Friday, October 7, 2011
  • 2. What is Apache TomEE? • Java EE 6 Web Profile certified stack • Tomcat through and through • Tomcat + Java EE = TomEE (pronounced “Tommy”) • All Apache components • MyFaces • OpenWebBeans • OpenEJB • OpenJPA • Bean Validation • Core Values • Be Small • Be Tomcat • Be Certified 2 Friday, October 7, 2011
  • 3. Aren’t there enough of those already? • Still seem to be a lot of “just” Tomcat users • Tomcat still the recommended server for most Apache projects • MyFaces • OpenWebBeans • CXF • OpenEJB • etc. etc. • We truly believe Java EE is not “heavy” • OpenEJB, strong desire to disprove “heavy” • No one else was going to do it • The Web Profile? Perfect! • had our name on it • too perfect not to try 3 Friday, October 7, 2011
  • 4. Flavors of TomEE • Apache TomEE Web Profile (Java EE 6 Certified) • OpenWebBeans • OpenEJB • OpenJPA • MyFaces • Bean Validation • Apache TomEE Plus (NOT Java EE 6 Certified) • CXF (JAX-RS, JAX-WS) • ActiveMQ (JMS) • Geronimo Connector • Embedded Apache TomEE 4 Friday, October 7, 2011
  • 5. Basic Stats • Size: the entire Web Profile is only 24Mb • Memory usage: very little required, passed the TCK without changing any default JVM memory settings • Agility: the server can go through a start/deploy/test/undeploy/stop cycle in 2-3 seconds, when run in embedded mode 5 Friday, October 7, 2011
  • 6. So do other app servers suck? Of Course Not 6 Friday, October 7, 2011
  • 7. When did it start? • Years ago.... or this year. Depends on your perspective. • My answer: this year. • Heavy certification work began in February this year • Wow, we were not nearly as close as we thought we were • Particularly big months • March • April... (sorry for breaking EC2) • May • June • July .. brutal • August.. yep • oh and ... September • what day is it now? 7 Friday, October 7, 2011
  • 8. How did we do it? • Certified on Amazon EC2 • t1.micro linux images, lot’s of them • 100 spot instances going at once! • Each has 613MB memory max • Pass complete Web Profile TCK with default jvm memory (tiny!) • Current certified OSs • Amazon Linux AMI 2011.09, EBS boot, 32-bit EC2 t1.micro • Amazon Linux AMI 2011.09, EBS boot, 32-bit EC2 m1.small • Amazon Linux AMI 2011.09, EBS boot, 32-bit EC2 c1.medium • Got a Cloud? Donate time! 8 Friday, October 7, 2011
  • 9. The Same Old Argument Friday, October 7, 2011
  • 10. “We Just Use Tomcat” • We just use Tomcat and.... • all the extra parts we like • integrated in a custom fashion • Battle standard for Java EE “haters” • Tomcat used as an argument Java EE is unnecessary • What is unnecessary? • Compliance testing? • Portability? • Completeness in implementation? • Consistency of integration? • “It’s unnecessary at the cost of ....” • Let’s remove that cost 10 Friday, October 7, 2011
  • 11. Redefining “worth it” • “Oh yeah, we’ll our home grown stack is just like yours but” • not tested • not certified • costs us to create and maintain • missing major features • not tuned • “... we ROCK!!!” • Hard to make the same old argument and not look foolish • Truly do have some valid reason for not using a certified stack? • tell us, we’ll fix it 11 Friday, October 7, 2011
  • 12. Tomcat: What’s not there Friday, October 7, 2011
  • 13. Gaps in plain Tomcat • No Transaction support • No Connection Pooling support • Connection pooling support should be transaction aware • No @Resource • UserTransaction • BeanManager • Validator • ValidatorFactory • No @PersistenceUnit • No @PersistenceContext • No @Inject • No @EJB 13 Friday, October 7, 2011
  • 14. Gaps in plain Tomcat • No support for Global JNDI • java:module • java:app • java:global • No support for @Resource(lookup=”...”) • No support for @DataSourceDefinition • No support for new <env-entry> types: • java.lang.Class • Enums • No Integrated Security 14 Friday, October 7, 2011
  • 15. How long can you do without? Friday, October 7, 2011
  • 17. Technical Goals • How small can it get? • Binary: 24MB download... can we get below 20MB? • Memory: 6,000 classes loaded ... can we get to 2,000? • Nail down the embedded setup • Shave 2-3 second cycles down to 1 second • So many optimizations • Class scope filtering • JAXB Overhead • Duplicate classes • Certify more parts • JAX-RS • Connector • JAX-WS 17 Friday, October 7, 2011
  • 18. Technical Goals (cont.) • Flush out validation (not the JSR-303 kind) • Servlet • JSF • CDI • Improve Logging • Too verbose • Not as informative is it could be • Refactor and clean code • Mad dash to certify • Simplify and trim • Polish, Polish, Polish... 18 Friday, October 7, 2011
  • 20. thank you! openejb.apache.org Friday, October 7, 2011