Wednesday, January 25, 12

Similar documents
Improve and Expand JavaServer Faces Technology with JBoss Seam

PATTERNS & BEST PRACTICES FOR CDI

Oracle - Developing Applications for the Java EE 7 Platform Ed 1 (Training On Demand)

1 Markus Eisele, Insurance - Strategic IT-Architecture

JVA-563. Developing RESTful Services in Java

Hands-on Development of Web Applications with Java EE 6

Java EE 6: Develop Web Applications with JSF

Migrating traditional Java EE applications to mobile

The Next Generation. Prabhat Jha Principal Engineer

Apache OpenWebBeans and DeltaSpike Deep Dive Mark Struberg Gerhard Petracek

Enterprise Java in 2012 and Beyond From Java EE 6 To Cloud Computing

JSR 365 (CDI 2.0) Review

Java EE 7: Back-End Server Application Development

Seam 3. Pete Muir JBoss, a Division of Red Hat

J2EE - Version: 25. Developing Enterprise Applications with J2EE Enterprise Technologies

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX

Eclipse MicroProfile: Accelerating the adoption of Java Microservices

CO Java EE 7: Back-End Server Application Development

Lessons learned from real-world deployments of Java EE 7. Arun Gupta, Red

Developing Applications with Java EE 6 on WebLogic Server 12c

Leverage Rational Application Developer v8 to develop Java EE6 application and test with WebSphere Application Server v8

Web Application Development Using Spring, Hibernate and JPA

CMP 436/774. Introduction to Java Enterprise Edition. Java Enterprise Edition

Java EE 7 is ready What to do next? Peter Doschkinow Senior Java Architect

JakartaEE and the road ahead An ASF View. Mark Struberg, RISE GmbH, Apache Software Foundation, INSO TU Wien

Web Application Development Using JEE, Enterprise JavaBeans and JPA

Web Application Development Using Spring, Hibernate and JPA

foreword to the first edition preface xxi acknowledgments xxiii about this book xxv about the cover illustration

open source community experience distilled

PaaS Cloud mit Java. Eberhard Wolff, Principal Technologist, SpringSource A division of VMware VMware Inc. All rights reserved

Seam & Web Beans. Pete Muir JBoss, a division of Red Hat.

Specialized - Mastering JEE 7 Web Application Development

Introduction to Spring Framework: Hibernate, Spring MVC & REST

Web Application Development Using JEE, Enterprise JavaBeans and JPA

JavaEE.Next(): Java EE 7, 8, and Beyond

Java EE 6 - Update Harpreet Singh GlassFish Portfolio Product Manager

Web Application Development Using Spring, Hibernate and JPA

Fast Track to EJB 3.0 and the JPA Using JBoss

JVA-163. Enterprise JavaBeans

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Google App Engine: Java Technology In The Cloud

Java EE 7 Recipes for Concurrency. Presented By: Josh Juneau Author and Application Developer

<Insert Picture Here> Productive JavaEE 5.0 Development

object/relational persistence What is persistence? 5

What is it? What does it do?

Seam. Pete Muir JBoss, a Division of Red Hat.

Apache MyFaces CODI. Mark Struberg, INSO TU-Vienna

This is the first part of a multi-article series. For part 2 please see: Dependency Injection in Java EE 6 - Part 2

GAVIN KING RED HAT CEYLON SWARM

"Charting the Course... Mastering EJB 3.0 Applications. Course Summary

Meet. Brian Stansberry Principal Software Engineer, Red Hat, Inc. June 10, Friday, June 14, 13

Spring Framework 2.0 New Persistence Features. Thomas Risberg

Liberty Right Fit for MicroProfile

JVA-117A. Spring-MVC Web Applications

Red Hat JBoss Enterprise Application Platform 7.2

Eclipse Java Ejb 3.0 Tutorial For Beginners With Examples Pdf

Spring Persistence. with Hibernate PAUL TEPPER FISHER BRIAN D. MURPHY

For this week, I recommend studying Chapter 2 of "Beginning Java EE 7".

Java EE 6: Develop Business Components with JMS & EJBs

TheServerSide.com. Dependency Injection in Java EE 6 - Part 5

JSR-299 (CDI), Weld and the Future of Seam. Dan Allen Principal Software Engineer JBoss by Red Hat

Struts: Struts 1.x. Introduction. Enterprise Application

Java EE 6 & Spring: A Lover s Quarrel. Derrick Kittler Mauricio Maltron Leal Vamsi Chemitiganti

POJOs to the rescue. Easier and faster development with POJOs and lightweight frameworks

Refactoring to Seam. NetBeans. Brian Leonard Sun Microsystems, Inc. 14o

This is the second part of a multi-article series. For part 1 please see: Dependency Injection in Java EE 6 - Part 1

Introduction to Seam. Pete Muir. JBoss, a division of Red Hat

Arquillian & ShrinkWrap

Infinispan for Ninja Developers

. METHODOLOGY. MVC Based E-commerce Design. Literature Review based On Model View Controller MVC with J2EE. Public Cloud Implementation for E-commerce

Introduction to Spring Framework: Hibernate, Web MVC & REST

Desarrollo de Aplicaciones Web Empresariales con Spring 4

Pro Hibernate and. MongoDB. Anghel Leonard. Apress-

What is tackled in the Java EE Security API (Java EE 8)

TheServerSide.com. Part 3 of dependency injection in Java EE 6

Fast Track to Spring 3 and Spring MVC / Web Flow

Enterprise Architectures

Spring Interview Questions

A Closer Look at XPages in IBM Lotus Domino Designer 8.5 Ray Chan Advisory I/T Specialist Lotus, IBM Software Group

Java Training Center, Noida - Java Expert Program

JVA-117E. Developing RESTful Services with Spring

JAX-RS 2.1 New Features

Mark Struberg / INSO, TU Vienna. Apache DeltaSpike...closes the gap

About me. Jesper Pedersen. Project lead for. Chairman for Boston JBoss User Group. Core developer, JBoss by Red Hat

@jbossdeveloper. explained

Shale and the Java Persistence Architecture. Craig McClanahan Gary Van Matre. ApacheCon US 2006 Austin, TX

Specification Lead: Red Hat Inc.

Maturing your application s security with Seam Security. Dan Allen Senior Software Engineer JBoss, by Red Hat

CDI can be used standalone and can be embedded into any application.

JSR-303 Bean Validation. Emmanuel Bernard Doer JBoss, a Division of Red Hat

JBoss Enterprise Application Platform 6.3

Writing Portable Applications for J2EE. Pete Heist Compoze Software, Inc.

CORE JAVA. Saying Hello to Java: A primer on Java Programming language

About me. Jesper Pedersen. Project lead for. Chairman for Boston JBoss User Group. Core developer, JBoss by Red Hat

Contents at a Glance

Java EE Application Assembly & Deployment Packaging Applications, Java EE modules. Model View Controller (MVC)2 Architecture & Packaging EJB Module

Java technology zone technical podcast series: Season 3 Dan Allen on the Arquillian testing framework Episode date:

Java J Course Outline

<Insert Picture Here> Future<JavaEE>

ADVANCED JAVA COURSE CURRICULUM

Transcription:

Java EE on Google App Engine: CDI to the rescue! Aleš Justin JBoss by Red Hat

Agenda What is GAE and CDI? Why GAE and CDI? Running JavaEE on GAE Other JavaEE technologies Development vs. Production Problems vs. Solutions Testing CapeDwarf Project

About me Old school JBoss-ian Microcontainer co-author Weld lead CapeDwarf founder OpenShift guinea pig Eager PaaS user While still GAE amateur

GAE Forked Jetty Many (logical) restrictions RDBMS BigTable Simple Map(Reduce) Good administration (Less) Free (very) basic usage

CDI Context and Dependency Injection JSR-299 JBoss Weld RI type-safe programming contexts concept Easy to extend: Extensions

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 CDI Rescue #1

CDI #2 @Inject @Qualifier @Named @Scope Interceptors InjectionPoint Instance @Produces @Observes @ConversationS. @Decorator @Alternative @Sterotype Plenty of CDI...

Other technologies JPA JSF2 BeanValidation javax.cache JSON ShrinkWrap + Arquillian

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?

The Goal Abstract away GAE API Pure JavaEE Port app to JBossAS (6 & 7), GlassFish,... Use CDI as much as possible Test it all, same as other JavaEE apps

Initial problems CDI Entry mechanism WeldServlet Request / response binding WeldFilter Lack of lifecycle handling EMF Bean Proxy

Initial problems JPA Limited relationships (Entity groups) Proxying layer vs. Custom ORM ProxyingEntityManager Transaction per Entity group Adding XG just recently (cross-group) Old DataNucleus version 3.0 Beta testing? Long vs. Key entity key Enhanced entities

Initial problems JSF2 Context parameter settings new InitialContext patch built-in EL 1.0 workaround

Initial problems BeanValidation Static usage with JPA ValidatorListener Size Configuration

Initial problems javax.cache (GCache) No partition by default Namespaces! NUCCORE-540 fork fixed in 3.0 JSON Different versions; client vs. server Arquillian Missing GAE container

Production problems CDI Bean scanning exact listing bean-classes.txt Lazy beans MVC re-write GZIP + Base64 usage GzipFilter Fall-back / repeat mechanism ServerProxyHandler

Production problems JPA Explicit entity listing Maximize cache usage Be aware of the limits, hollow entities (GAE-JDO 1.0.9?) TimestampedListKeyStrategy Caching Lazy EMF LazyEntityManagerFactory javax.cache serialversionuid Non-primitive variables Cache evict / clear mechanism CacheCommand

Testing ShrinkWrap Binaries abstraction Arquillian Runtime / Env abstraction https://github.com/alesj/arquillian-container-gae Testable development...

CapeDwarf Project Two colors / flavors Green Simple GAE to JavaEE abstraction Android to server-side layer Project s modules Blue - previous talk :-) JBoss API on top of GAE API https://github.com/capedwarf

Tattletale Choosing the right implementation based on the runtime environment Rescue #2 CapeDwarf Server-API Tattletale Server-GAE Server-JEE

Using CapeDwarf Green Integrated & tested GAE, JBossAS 6&7, GlassFish3.1 Important differences Libraries usage Configuration Bugs,... @Entity on @MappedSuperclass TimestampedEntity Enhanced entities + JDO

Q&A ales.justin@jboss.org