2011 JavaOne Apache TomEE Java EE 6 Web Profile
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,484
On Slideshare
3,705
From Embeds
779
Number of Embeds
8

Actions

Shares
Downloads
56
Comments
0
Likes
4

Embeds 779

http://www.tomitribe.com 534
http://businessworldti.wordpress.com 87
http://tomitribe.herokuapp.com 65
http://localhost 36
http://staging.tomitribe.com 28
http://polar-mesa-5874.herokuapp.com 15
http://0.0.0.0 12
http://paper.li 2

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Apache TomEE Java EE 6 Web Profile David Blevins @dblevins #TomEEFriday, 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 2Friday, 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 3Friday, 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 4Friday, 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 5Friday, October 7, 2011
  • 6. So do other app servers suck? Of Course Not 6Friday, 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? 7Friday, 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! 8Friday, October 7, 2011
  • 9. The Same Old ArgumentFriday, 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 10Friday, 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 11Friday, October 7, 2011
  • 12. Tomcat: What’s not thereFriday, 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 13Friday, 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 14Friday, October 7, 2011
  • 15. How long can you do without?Friday, October 7, 2011
  • 16. DemoFriday, 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 17Friday, 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... 18Friday, October 7, 2011
  • 19. Questions?Friday, October 7, 2011
  • 20. thank you! openejb.apache.orgFriday, October 7, 2011