• Like
  • Save
JavaEE and Google AppEngine
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

JavaEE and Google AppEngine

  • 1,251 views
Published

La presentazione di Aleš Justin, …

La presentazione di Aleš Justin,
in occasione del Codemotion, Roma 5 marzo 2011 http://www.codemotion.it

Published in Technology
  • 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
1,251
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
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. JavaEE and Google AppEngine Aleš Justin, JBoss by RedHat Aleš Justin - ales.justin@jboss.orgSaturday, March 5, 2011
  • 2. Agenda • What is GAE and CDI? • Why GAE in CDI? • Other technologies • Problems and solutions • Testing • Q&A Aleš Justin - ales.justin@jboss.orgSaturday, March 5, 2011
  • 3. About me • Old school JBoss-ian • Microcontainer co-author • Weld lead • Amateur GAE user Aleš Justin - ales.justin@jboss.orgSaturday, March 5, 2011
  • 4. GAE • Forked Jetty • Many (logical) restrictions • RDBMS → BigTable • Simple Map(Reduce) • Good administration • Free basic usage Aleš Justin - ales.justin@jboss.orgSaturday, March 5, 2011
  • 5. CDI • Context and Dependency Injection • JSR-299 → JBoss Weld RI • “type-safe” programming • “contexts” concept • Easy to extend: “Extensions” Aleš Justin - ales.justin@jboss.orgSaturday, March 5, 2011
  • 6. Why GAE + CDI? • Simple reason: playing with CDI and GAE • Android app with server backend → Tattletale • Zero administration / configuration • Reliable up-time • No more “boiler-plate” code → CDI Aleš Justin - ales.justin@jboss.orgSaturday, March 5, 2011
  • 7. CDI #2 • @Inject • @Produces • @Qualifier • @Observes • @Named • @ConversationScoped • @Scope • @Decorator • Interceptors • @Alternative • InjectionPoint / • @Stereotype Instance Aleš Justin - ales.justin@jboss.orgSaturday, March 5, 2011
  • 8. Other technologies • JPA • JSF2 • BeanValidation • javax.cache • JSON • ShrinkWrap + Arquillian Aleš Justin - ales.justin@jboss.orgSaturday, March 5, 2011
  • 9. Initial problems • CDI • “Entry” mechanism • Request / Response binding • Lack of “lifecycle” handling Aleš Justin - ales.justin@jboss.orgSaturday, March 5, 2011
  • 10. Initial problems • JPA • Limited relationships (Entity Groups) • Transaction per “Entity Group” • Old DataNucleus version • Long vs. Key entity key • “Enhanced” entities • GeoModel hashing queries (“IN” keyword) Aleš Justin - ales.justin@jboss.orgSaturday, March 5, 2011
  • 11. Initial problems • JSF2 • Context parameter settings • “new InitialContext” → patch • “built-in” EL 1.0 → workaround Aleš Justin - ales.justin@jboss.orgSaturday, March 5, 2011
  • 12. Initial problems • BeanValidation • Static usage with JPA • Size • Configuration Aleš Justin - ales.justin@jboss.orgSaturday, March 5, 2011
  • 13. Initial problems • javax.cache (GCache) • No partition • NUCCORE-540 → hack • JSON • Different versions → patch → bug • Arquillian • Missing GAE “container” implementation Aleš Justin - ales.justin@jboss.orgSaturday, March 5, 2011
  • 14. “Production” problems • CDI • “Bean scanning” → patch • “Lazy bean creation” → MVC re-write • GZIP + Base64 usage • “Fall-back / repeat” mechanism Aleš Justin - ales.justin@jboss.orgSaturday, March 5, 2011
  • 15. “Production” problems • JPA • Explicit entity usage • Maximize cache usage • “Caching” → Lazy EMF • javax.cache • serialVersionUID! • Non-primitive variables • Cache evict/clear mehanizem Aleš Justin - ales.justin@jboss.orgSaturday, March 5, 2011
  • 16. Testing • ShrinkWrap • Arquillian • https://github.com/alesj/arquillian • DEMO Aleš Justin - ales.justin@jboss.orgSaturday, March 5, 2011
  • 17. Tattletale PR http://tehnik.mobitel.si/m-android- glasovanje/?app=8 Android 1.5+ ➠ GAE Aleš Justin - ales.justin@jboss.orgSaturday, March 5, 2011
  • 18. Q&A • Tattletale ➠ Weld • Tattletale ➠ JBossAS Aleš Justin - ales.justin@jboss.orgSaturday, March 5, 2011