Java EE and Google App Engine

  • 3,745 views
Uploaded on

Java EE and Google App Engine @ JAX London

Java EE and Google App Engine @ JAX London

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
3,745
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
39
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