Your SlideShare is downloading. ×
0
Java EE and Google App Engine
Java EE and Google App Engine
Java EE and Google App Engine
Java EE and Google App Engine
Java EE and Google App Engine
Java EE and Google App Engine
Java EE and Google App Engine
Java EE and Google App Engine
Java EE and Google App Engine
Java EE and Google App Engine
Java EE and Google App Engine
Java EE and Google App Engine
Java EE and Google App Engine
Java EE and Google App Engine
Java EE and Google App Engine
Java EE and Google App Engine
Java EE and Google App Engine
Java EE and Google App Engine
Java EE and Google App Engine
Java EE and Google App Engine
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Java EE and Google App Engine

3,877

Published on

Java EE and Google App Engine @ JAX London

Java EE and Google App Engine @ JAX London

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
3,877
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
43
Comments
0
Likes
0
Embeds 0
No embeds

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. Aleš Justin, JBoss by RedHat JavaEE and Google AppEngineTuesday, April 12, 2011
  • 2. Agenda • What is GAE and CDI? • Why GAE and CDI? • Other JavaEE technologies • Development vs. Production • Problems vs. Solutions • Testing •Q & ATuesday, April 12, 2011
  • 3. About me • Old school JBoss-ian • Microcontainer co-author • Weld lead • RHT Cloud “guinea pig” • Eager PaaS user • While still GAE amateurTuesday, April 12, 2011
  • 4. GAE • Forked Jetty • Many (logical) restrictions • RDBMS → BigTable • Simple Map(Reduce) • Good administration • Free basic usageTuesday, April 12, 2011
  • 5. CDI • Context and Dependency Injection • JSR-299 → JBoss Weld RI • “type-safe” programming • “contexts” concept • Easy to extend: “Extensions” • “Using CDI Extensions to Make a Better Java EE ” at 18:00Tuesday, April 12, 2011
  • 6. Why GAE and CDI? • Simple reason: sandbox app • Android app with server back-end • Tattletale (Tožibaba) • Zero administration / configuration • Reliable up-time • No more “boiler-plate” code → CDITuesday, April 12, 2011
  • 7. CDI #2 • @Inject • @Observes • @Qualifier • @ConversationS. • @Named • @Decorator • @Scope • @Alternative • Interceptors • @Sterotype • InjectionPoint • Instance • Pete and Dan’s • @Produces yday tutorial!Tuesday, April 12, 2011
  • 8. Other technologies • JPA • JSF2 • BeanValidation • javax.cache • JSON • ShrinkWrap + ArquillianTuesday, April 12, 2011
  • 9. Project Kick-Off • Know (all) restrictions! • 30sec, white-list, no threads, ... • How portable should my app be? • Development vs. Production Env! • Frameworks have problems • But they mostly have (easy) solutions → fork?Tuesday, April 12, 2011
  • 10. The Goal • Abstract away GAE API • Pure JavaEE • Port app to JBossAS (6 & 7) • Use CDI as much as possible • Test it all, same as other JavaEE appsTuesday, April 12, 2011
  • 11. Initial problems Proxy Bean • CDI • “Entry” mechanism • Request / response binding • Lack of “lifecycle” handlingTuesday, April 12, 2011
  • 12. Initial problems • JPA • Limited relationships (Entity groups) • Proxying layer vs. Custom “ORM” • Transaction per “Entity group” • Old DataNucleus version • Long vs. Key entity key • “Enhanced” entities • GeoModel hashing queries (“IN”)Tuesday, April 12, 2011
  • 13. Initial problems • JSF2 • Context parameter settings • “new InitialContext” patch • “built-in” EL 1.0 → workaroundTuesday, April 12, 2011
  • 14. Initial problems • BeanValidation • Static usage with JPA • Size • ConfigurationTuesday, April 12, 2011
  • 15. Initial problems • javax.cache (GCache) • No partition • NUCCORE-540 → fork • JSON • Different versions; client vs. server • Arquillian • Missing GAE containerTuesday, April 12, 2011
  • 16. “Production” problems • CDI • “Bean scanning” → exact listing • “Lazy beans” → MVC re-write • GZIP + Base64 usage • “Fall-back / repeat” mechanismTuesday, April 12, 2011
  • 17. “Production” problems • JPA • Explicit entity listing • Maximize cache usage • “Caching” → Lazy EMF • javax.cache • serialVersionUID • Non-primitive variables • Cache evict / clear mechanismTuesday, April 12, 2011
  • 18. Testing • ShrinkWrap • Binaries abstraction • Arquillian • Runtime / Env abstraction • https://github.com/alesj/arquillianTuesday, April 12, 2011
  • 19. Tattletale • Lhotse POC • https://github.com/alesj/lhotse Lhotse Server-API Tattletale Server-GAE Server-JEETuesday, April 12, 2011
  • 20. Q&A ales.justin@jboss.orgTuesday, April 12, 2011

×