SlideShare a Scribd company logo
1 of 45
Download to read offline
Java EE and Spring Framework Shootout
    Rohit Kelapure
    WebSphere Application Server Caching Architect
    Apache OpenWebBeans Committer
    IBM

    http://wasdynacache.blogspot.com/
    http://www.linkedin.com/in/rohitkelapure
    http://twitter.com/rkela
    Recording: http://www.parleys.com/#st=5&id=2819&sl=0




    Session ID = TDP-1163

1
Please Note
    IBM's statements regarding its plans, directions, and intent are subject to change
    or withdrawal at IBM's sole discretion.

    Information regarding potential future products is intended to outline our general
    product direction and it should not be relied on in making a purchasing decision.

    The information mentioned regarding potential future products is not a
    commitment, promise, or legal obligation to deliver any material, code or
    functionality. Information about potential future products may not be incorporated
    into any contract. The development, release, and timing of any future features or
    functionality described for our products remains at our sole discretion.

    Performance is based on measurements and projections using standard IBM
    benchmarks in a controlled environment. The actual throughput or performance
    that any user will experience will vary depending upon many factors, including
    considerations such as the amount of multiprogramming in the user's job stream,
    the I/O configuration, the storage configuration, and the workload processed.
    Therefore, no assurance can be given that an individual user will achieve results
    similar to those stated here.



2
Outline
       Evolution of Java EE and Spring
       Java EE 6 & Spring 3.0, 3.1 highlights
       Spring 3.1 feature comparison with Java EE 6
       CDI and Spring ecosystem
       Spring and Java EE coexistence
       Spring to Java EE migration
       Conclusion




3
J2EE Java EE Specifications




                                   * Introduced in spec.
4
Evolution of J2EEJava EE6 (Dec 09)
                                                               • Facelets, built-in-AJAX, Skins,
     New specs (JAX-RS, CDI, Bean                               Annotations, Resource handling
      Validation)                                              • Simplified Navigation, Easier custom
                                                                 components, View & Page scopes
     Prune dead wood                                          • Bookmarkable pages, Project Stage,
        –   EJB 2.x, JAX-RPC, JAXR, JEE App.                     Expanded event model
            Deploy, JEE App mgmt.                        –   JPA 2.0
     Extensibility                                            • Mapping enhancements, JPAQL,
                                                                 Criteria Query API, Pessimistic
        –    Easy Framework Pluggability (web                    locking
            fragments & CDI Extensions)
                                                      Profiles reduce platform size
     Enhanced ease of development
                                                         –   Web Profile 12 specs
        –   POJO annotation based Servlets,
        –   Asynchronous processing (Servlet 3.0 &    Vendor support
            EJB 3.1)                                     –   WebSphere AS 8
        –   EJB 3.1                                      –   JBOSS AS 7
              • EJB-in-WAR, No-interface view,           –   Oracle WebLogic 11g
                 Singleton, EJB-lite, Timers
                                                         –   Glassfish 3
        –   Contextual Dependency Injection (CDI)
        –   RESTful services
        –    Portable JNDI names
        –   JSF2.0


5
JSR 299 Contexts and Dependency Injection (CDI)
     Adds dependency injection to JEE and               interceptor bindings
      makes it type-safe.                            – Refines interceptors into decorators
                                                       for finer grained control
        – Hollywood principle - Don’t call us,
          we will call you                        Integrates with the Unified EL to bridge
        – No hard coded dependencies on            JSF
          other specifications
                                                     – Enables use of EJB 3.0 components
     Assists in unifying the Bean model               as JSF managed beans

     Well defined contexts, the ability to bind  Introduces an SPI to extend JEE – Roll
                                                   your own JEE7!
      beans statefully to them & manage their
      lifecycle.                                     – Not only an API but also a SPI
                                                     – Rich ecosystem of CDI extensions
     Introduces an event notification system
                                                  Adds the Web conversation context
      to decouple producers & consumers
                                                  Spring does NOT provide support for
     Uses interceptors to foster loose
                                                   CDI
      coupling
        – Extend behavior with type safe


6
Spring Framework




                        Lightweight dependency injection
                        Aspect oriented
                        Layered application & container framework
                        Well defined modules on top of the core container
                        NOT an all-or-nothing solution


7
Evolution of Spring                        [ 1.0, 2.0, 2.5, 3.0, 3.1]


                                                           3.0                  3.1
                                                           • JSR-330 “at        • A new “c”
                                                             inject”              namespace
                                         2.5               • New Spring         • Configuration
    1.0              2.0                 • Annotation-       Expression           profiles
    • Dependency
                                           driven wiring     Language
                     • Problem-
                                         • Automatic       • First-class REST   • Unified
      injection        specific XML
                                           bean              support              property
    • POJO-          • Extensible
      oriented                             configuration   • Java-based           resolution
                       configuration
      development                        • New               configuration      • Java
                     • Bean scoping        annotation-
    • Declarative                                          • Several new          configuration
                     • Groovy, JRuby,      driven MVC        Spring MVC
      AOP &
                       and BeanShell
                                                                                  features
      transactions                         framework         features
    • MVC            • JSP tag library   • JUnit 4-based
                                                                                • Servlet 3.0
                                                           • Support for JSR-     support
      framework      • Java 5              integration       303 declarative
                       autoboxing          testing           validation         • Declarative
                       and generics                        • Annotation-based     caching
                                                             background and     • Spring MVC
                                                             scheduled jobs       enhancements




8
Birds Eye View




9
Java EE vs. Spring Framework Features/APIs




10
Java EE vs. Spring Business Component




11
Spring XML for Business Component Injection




12
Spring XML for Business Component Injection




13
Spring Java Based Configuration




14
Spring Java Based Configuration




15
Java EE Interceptor vs. Spring Aspects




16
Java EE vs. Spring Injection




17
Java EE vs. Spring Injection




18
JSF 2 vs. Spring MVC Front Controller
      Facelet Component




19
JSF 2 vs. Spring MVC Front Controller
      Facelet




20
JSF 2 vs. Spring MVC Front Controller
                                  Entity




21
JSF 2 vs. Spring MVC
     Spring MVC JSP




22
Spring MVC Configuration




23
Spring Controller




24
Spring MVC web.xml configuration




25
Java EE vs. Spring Scheduling




26
Java EE vs. Spring Scheduling




27
Java EE vs. Spring Messaging




28
Spring JMS Configuration




29
Spring Message Producer




30
Java EE Message Producer & JMS Abstraction




31
Java EE Message Producer & JMS Abstraction




32
Hacking the Java EE Platform - CDI Extensions
      Activated by dropping jars on the application classpath
      Loaded by the java.util.ServiceLoader SPI
      Integrate with container through container lifecycle events by
        – Register additional beans, interceptors and decorators
        – Injecting dependencies into its own objects
        – Introduce custom scope with backing context
        – Augment or override bean annotation-based metadata with other
          source
      Tools/utilities, extending Java EE, integration with Java EE
       APIs, integrating with non-standard APIs, making Java EE
       features available in non-Java EE




33
Spring Ecosystem




34
CDI Ecosystem Snapshot

     Implementations            Portable    Runtimes
                               Extensions



     Weld   CanDI




                       Tools




35
Spring & Java EE Coexistence
      Integration with Java EE APIs
         – Spring beans can be injected into JSF Managed Beans
         – Spring beans can be referenced in EL with no JSF Backing beans
         – Spring JmsTemplate can be used on top of raw JMS API for convenience
         – Spring Listeners similar to EJB MDBs especially JCA rather than JMS listeners
         – Hibernate validator standardized as Bean Validation (JSR 303)
         – Spring 3 supports excellent bi-directional integration with EJBs
         – CDI and Spring Integration through the Spring Bridge to CDI

      Native support for Java EE
         – Java EE5 and Java EE6 annotations supported by Spring
         – Spring can use JPA / Hibernate natively

      Application server integration
         – DataSources can use application server QoS like pooling, transactions, statement caching,
           debugging, monitoring and security




36
Best Practices integrating Spring WAS
      Presentation tier considerations
        – Web MVC & Portlet
      Data access considerations
        – Using JDBC native connections
        – Transactions, JPA & JMS
      Spring Security Considerations
        – Bypassing WAS security
      Integration & Management considerations
        – Registering Spring Mbeans in the application server
        – Classloaders
      Design Considerations
        – Unmanaged threads
        – Scheduling & Threadpools
37
Java EE coexistence with Spring




38
Migrating Spring to Java EE 6
     1.   Upgrade Spring version
     2.   Replace old frameworks (ORM, Web Framework) within Spring
     3.   Run Spring and Java EE container side by side
     4.   Replace Spring entirely
     5.   Remove Spring container




39
Myths of Java EE
      EJBs are heavy weight               "bloated“
      EJBs are hard to test              J2EE and EJB2 sucked! “That
      EJBs are not portable               was eight years ago! Is this really
                                           your best shot?”
      EJBs are slow
                                          Application server portability is a
      EJBs are not scalable               myth!
      EJBs are too complex
      EJBs are hard to integrate with
       Web Frameworks and POJOs
      EJBs are hard to configure
      EJBs are hard to migrate
      EJBs are hard to develop
      EE application servers are

40
Birds Eye View




41
References
      Evolution of Java EE http://en.wikipedia.org/wiki/Java_EE_version_history
      Java EE 6 Tutorial http://download.oracle.com/javaee/6/tutorial/doc/
      Spring Docs http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/
      Spring Projects http://www.springsource.org/projects
      Miscellaneous CDI Extensions https://github.com/softwaremill/softwaremill-common
      Migrating Spring to Java EE
          –   https://github.com/paulbakker/migrating-spring-to-javaee
          –   http://ocpsoft.com/java/spring-to-java-ee-a-migration-guide-cdi-jsf-jpa-jta-ejb/
      CDI- Spring Bridge
          –   http://rick-hightower.blogspot.com/2011/04/cdi-and-spring-living-in-harmony.html
          –   http://niklasschlimm.blogspot.com/2011/08/jsr-299-cdi-interceptors-for-spring.html
          –   http://niklasschlimm.blogspot.com/2011/08/jsr-299-cdi-decorators-for-spring-beans.html
      Best practices integrating Spring with WebSphere Application Server
          –   http://www.ibm.com/developerworks/websphere/techjournal/0609_alcott/0609_alcott.htm
      What’s new in Spring 3.1 http://static.springsource.org/spring/docs/3.1.x/spring-framework-
        reference/htmlsingle/spring-framework-reference.html#new-in-3.1


42
References continued
        SEAM 3 http://seamframework.org/Seam3
        CODI http://myfaces.apache.org/extensions/cdi/
        Weld http://seamframework.org/Weld
        CanDI http://www.caucho.com/resin/candi/
        OpenWebBeans
         http://openwebbeans.apache.org/owb/index.html




43
We love your Feedback!
      Don’t forget to submit your Impact session and speaker
       feedback! Your feedback is very important to us, we use it to
       improve our conference for you next year.
      Go to impactsmartsite.com from your mobile device
      From the Impact 2012 Online Conference Guide:
        – Select Agenda
        – Navigate to the session you want to give feedback on
        – Select the session or speaker feedback links
        – Submit your feedback




44
Copyright and Trademarks

       © IBM Corporation 2012. All Rights Reserved.

        IBM, the IBM logo, ibm.com are trademarks or registered
          trademarks of International Business Machines Corp.,
      registered in many jurisdictions worldwide. Other product and
     service names might be trademarks of IBM or other companies.
        A current list of IBM trademarks is available on the Web at
                “Copyright and trademark information” at
                    www.ibm.com/legal/copytrade.shtml.




45

More Related Content

What's hot

The Java EE 7 Platform: Developing for the Cloud (FISL 12)
The Java EE 7 Platform: Developing for the Cloud  (FISL 12)The Java EE 7 Platform: Developing for the Cloud  (FISL 12)
The Java EE 7 Platform: Developing for the Cloud (FISL 12)Arun Gupta
 
Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...
Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...
Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...Arun Gupta
 
Continuous delivery on the cloud
Continuous delivery on the cloudContinuous delivery on the cloud
Continuous delivery on the cloudAnand B Narasimhan
 
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010Arun Gupta
 
Sun Java EE 6 Overview
Sun Java EE 6 OverviewSun Java EE 6 Overview
Sun Java EE 6 Overviewsbobde
 
Overview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUGOverview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUGMarakana Inc.
 
JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6Bert Ertman
 
Java Enterprise Edition 6 Overview
Java Enterprise Edition 6 OverviewJava Enterprise Edition 6 Overview
Java Enterprise Edition 6 OverviewEugene Bogaart
 
GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011Arun Gupta
 
Java EE 6 workshop at Dallas Tech Fest 2011
Java EE 6 workshop at Dallas Tech Fest 2011Java EE 6 workshop at Dallas Tech Fest 2011
Java EE 6 workshop at Dallas Tech Fest 2011Arun Gupta
 
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012Arun Gupta
 
Java EE 6 Component Model Explained
Java EE 6 Component Model Explained Java EE 6 Component Model Explained
Java EE 6 Component Model Explained Shreedhar Ganapathy
 
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010Arun Gupta
 
Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)Hamed Hatami
 
JBoss presentation 2003 11 for matrix
JBoss presentation 2003 11 for matrixJBoss presentation 2003 11 for matrix
JBoss presentation 2003 11 for matrixrunsignup
 
Web Technologies in Java EE 7
Web Technologies in Java EE 7Web Technologies in Java EE 7
Web Technologies in Java EE 7Lukáš Fryč
 
Java EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Java EE 7: Developing for the Cloud at Geecon, JEEConf, JohannesburgJava EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Java EE 7: Developing for the Cloud at Geecon, JEEConf, JohannesburgArun Gupta
 
Java EE 7: Developing for the Cloud at Java Day, Istanbul, May 2012
Java EE 7: Developing for the Cloud at Java Day, Istanbul, May 2012Java EE 7: Developing for the Cloud at Java Day, Istanbul, May 2012
Java EE 7: Developing for the Cloud at Java Day, Istanbul, May 2012Arun Gupta
 
Conduct JBoss EAP 6 seminar
Conduct JBoss EAP 6 seminarConduct JBoss EAP 6 seminar
Conduct JBoss EAP 6 seminarSyed Shaaf
 

What's hot (20)

The Java EE 7 Platform: Developing for the Cloud (FISL 12)
The Java EE 7 Platform: Developing for the Cloud  (FISL 12)The Java EE 7 Platform: Developing for the Cloud  (FISL 12)
The Java EE 7 Platform: Developing for the Cloud (FISL 12)
 
Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...
Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...
Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...
 
Continuous delivery on the cloud
Continuous delivery on the cloudContinuous delivery on the cloud
Continuous delivery on the cloud
 
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
 
Ejb (1)
Ejb (1)Ejb (1)
Ejb (1)
 
Sun Java EE 6 Overview
Sun Java EE 6 OverviewSun Java EE 6 Overview
Sun Java EE 6 Overview
 
Overview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUGOverview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUG
 
JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6
 
Java Enterprise Edition 6 Overview
Java Enterprise Edition 6 OverviewJava Enterprise Edition 6 Overview
Java Enterprise Edition 6 Overview
 
GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011
 
Java EE 6 workshop at Dallas Tech Fest 2011
Java EE 6 workshop at Dallas Tech Fest 2011Java EE 6 workshop at Dallas Tech Fest 2011
Java EE 6 workshop at Dallas Tech Fest 2011
 
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
 
Java EE 6 Component Model Explained
Java EE 6 Component Model Explained Java EE 6 Component Model Explained
Java EE 6 Component Model Explained
 
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
 
Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)
 
JBoss presentation 2003 11 for matrix
JBoss presentation 2003 11 for matrixJBoss presentation 2003 11 for matrix
JBoss presentation 2003 11 for matrix
 
Web Technologies in Java EE 7
Web Technologies in Java EE 7Web Technologies in Java EE 7
Web Technologies in Java EE 7
 
Java EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Java EE 7: Developing for the Cloud at Geecon, JEEConf, JohannesburgJava EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Java EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
 
Java EE 7: Developing for the Cloud at Java Day, Istanbul, May 2012
Java EE 7: Developing for the Cloud at Java Day, Istanbul, May 2012Java EE 7: Developing for the Cloud at Java Day, Istanbul, May 2012
Java EE 7: Developing for the Cloud at Java Day, Istanbul, May 2012
 
Conduct JBoss EAP 6 seminar
Conduct JBoss EAP 6 seminarConduct JBoss EAP 6 seminar
Conduct JBoss EAP 6 seminar
 

Similar to 2012 04-06-v2-tdp-1163-java e-evsspringshootout-final

Andrei Niculae - JavaEE6 - 24mai2011
Andrei Niculae - JavaEE6 - 24mai2011Andrei Niculae - JavaEE6 - 24mai2011
Andrei Niculae - JavaEE6 - 24mai2011Agora Group
 
TDC 2011: The Java EE 7 Platform: Developing for the Cloud
TDC 2011: The Java EE 7 Platform: Developing for the CloudTDC 2011: The Java EE 7 Platform: Developing for the Cloud
TDC 2011: The Java EE 7 Platform: Developing for the CloudArun Gupta
 
Spark IT 2011 - Java EE 6 Workshop
Spark IT 2011 - Java EE 6 WorkshopSpark IT 2011 - Java EE 6 Workshop
Spark IT 2011 - Java EE 6 WorkshopArun Gupta
 
Understanding the nuts & bolts of Java EE 6
Understanding the nuts & bolts of Java EE 6Understanding the nuts & bolts of Java EE 6
Understanding the nuts & bolts of Java EE 6Arun Gupta
 
Java EE 6 & GlassFish v3: Paving the path for the future - Tech Days 2010 India
Java EE 6 & GlassFish v3: Paving the path for the future - Tech Days 2010 IndiaJava EE 6 & GlassFish v3: Paving the path for the future - Tech Days 2010 India
Java EE 6 & GlassFish v3: Paving the path for the future - Tech Days 2010 IndiaArun Gupta
 
Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010
Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010
Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010Arun Gupta
 
Java EE 6 & GlassFish v3 @ DevNexus
Java EE 6 & GlassFish v3 @ DevNexusJava EE 6 & GlassFish v3 @ DevNexus
Java EE 6 & GlassFish v3 @ DevNexusArun Gupta
 
JavaEE 6 and GlassFish v3 at SFJUG
JavaEE 6 and GlassFish v3 at SFJUGJavaEE 6 and GlassFish v3 at SFJUG
JavaEE 6 and GlassFish v3 at SFJUGMarakana Inc.
 
Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010
Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010
Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010Arun Gupta
 
Contextual Dependency Injection for Apachecon 2010
Contextual Dependency Injection for Apachecon 2010Contextual Dependency Injection for Apachecon 2010
Contextual Dependency Injection for Apachecon 2010Rohit Kelapure
 
Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3Arun Gupta
 
Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望 Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望 javatwo2011
 
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnition
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnitionJava EE 6 & GlassFish = Less Code + More Power @ DevIgnition
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnitionArun Gupta
 
Java EE 6 = Less Code + More Power
Java EE 6 = Less Code + More PowerJava EE 6 = Less Code + More Power
Java EE 6 = Less Code + More PowerArun Gupta
 
Java EE 6 Hands-on Workshop at Dallas Tech Fest 2010
Java EE 6 Hands-on Workshop at Dallas Tech Fest 2010Java EE 6 Hands-on Workshop at Dallas Tech Fest 2010
Java EE 6 Hands-on Workshop at Dallas Tech Fest 2010Arun Gupta
 
Java EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUGJava EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUGArun Gupta
 
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3 Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3 Skills Matter
 

Similar to 2012 04-06-v2-tdp-1163-java e-evsspringshootout-final (20)

Andrei Niculae - JavaEE6 - 24mai2011
Andrei Niculae - JavaEE6 - 24mai2011Andrei Niculae - JavaEE6 - 24mai2011
Andrei Niculae - JavaEE6 - 24mai2011
 
TDC 2011: The Java EE 7 Platform: Developing for the Cloud
TDC 2011: The Java EE 7 Platform: Developing for the CloudTDC 2011: The Java EE 7 Platform: Developing for the Cloud
TDC 2011: The Java EE 7 Platform: Developing for the Cloud
 
Spark IT 2011 - Java EE 6 Workshop
Spark IT 2011 - Java EE 6 WorkshopSpark IT 2011 - Java EE 6 Workshop
Spark IT 2011 - Java EE 6 Workshop
 
Understanding the nuts & bolts of Java EE 6
Understanding the nuts & bolts of Java EE 6Understanding the nuts & bolts of Java EE 6
Understanding the nuts & bolts of Java EE 6
 
Java EE 6 & GlassFish v3: Paving the path for the future - Tech Days 2010 India
Java EE 6 & GlassFish v3: Paving the path for the future - Tech Days 2010 IndiaJava EE 6 & GlassFish v3: Paving the path for the future - Tech Days 2010 India
Java EE 6 & GlassFish v3: Paving the path for the future - Tech Days 2010 India
 
Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010
Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010
Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010
 
Java EE 6 & GlassFish v3 @ DevNexus
Java EE 6 & GlassFish v3 @ DevNexusJava EE 6 & GlassFish v3 @ DevNexus
Java EE 6 & GlassFish v3 @ DevNexus
 
JavaEE 6 and GlassFish v3 at SFJUG
JavaEE 6 and GlassFish v3 at SFJUGJavaEE 6 and GlassFish v3 at SFJUG
JavaEE 6 and GlassFish v3 at SFJUG
 
Glass Fishv3 March2010
Glass Fishv3 March2010Glass Fishv3 March2010
Glass Fishv3 March2010
 
Java EE 6
Java EE 6Java EE 6
Java EE 6
 
Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010
Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010
Java EE 6 & GlassFish v3 at Vancouver JUG, Jan 26, 2010
 
Contextual Dependency Injection for Apachecon 2010
Contextual Dependency Injection for Apachecon 2010Contextual Dependency Injection for Apachecon 2010
Contextual Dependency Injection for Apachecon 2010
 
Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3
 
Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望 Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望
 
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnition
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnitionJava EE 6 & GlassFish = Less Code + More Power @ DevIgnition
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnition
 
Java EE 6 = Less Code + More Power
Java EE 6 = Less Code + More PowerJava EE 6 = Less Code + More Power
Java EE 6 = Less Code + More Power
 
Java E
Java EJava E
Java E
 
Java EE 6 Hands-on Workshop at Dallas Tech Fest 2010
Java EE 6 Hands-on Workshop at Dallas Tech Fest 2010Java EE 6 Hands-on Workshop at Dallas Tech Fest 2010
Java EE 6 Hands-on Workshop at Dallas Tech Fest 2010
 
Java EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUGJava EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUG
 
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3 Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
 

More from Rohit Kelapure

API First or Events First: Is it a Binary Choice?
API First or Events First: Is it a Binary Choice?  API First or Events First: Is it a Binary Choice?
API First or Events First: Is it a Binary Choice? Rohit Kelapure
 
External should that be a microservice
External should that be a microserviceExternal should that be a microservice
External should that be a microserviceRohit Kelapure
 
Should That Be a Microservice ?
Should That Be a Microservice ?Should That Be a Microservice ?
Should That Be a Microservice ?Rohit Kelapure
 
Travelers 360 degree health assessment of microservices on the pivotal platform
Travelers 360 degree health assessment of microservices on the pivotal platformTravelers 360 degree health assessment of microservices on the pivotal platform
Travelers 360 degree health assessment of microservices on the pivotal platformRohit Kelapure
 
SpringOne Platform 2018 Recap in 5 minutes
SpringOne Platform 2018 Recap in 5 minutesSpringOne Platform 2018 Recap in 5 minutes
SpringOne Platform 2018 Recap in 5 minutesRohit Kelapure
 
Migrate Heroku & OpenShift Applications to IBM BlueMix
Migrate Heroku & OpenShift Applications to IBM BlueMixMigrate Heroku & OpenShift Applications to IBM BlueMix
Migrate Heroku & OpenShift Applications to IBM BlueMixRohit Kelapure
 
Liberty Buildpack: Designed for Extension - Integrating your services in Blue...
Liberty Buildpack: Designed for Extension - Integrating your services in Blue...Liberty Buildpack: Designed for Extension - Integrating your services in Blue...
Liberty Buildpack: Designed for Extension - Integrating your services in Blue...Rohit Kelapure
 
A Deep Dive into the Liberty Buildpack on IBM BlueMix
A Deep Dive into the Liberty Buildpack on IBM BlueMix A Deep Dive into the Liberty Buildpack on IBM BlueMix
A Deep Dive into the Liberty Buildpack on IBM BlueMix Rohit Kelapure
 
Liberty dynacache ffw_iea_ste
Liberty dynacache ffw_iea_steLiberty dynacache ffw_iea_ste
Liberty dynacache ffw_iea_steRohit Kelapure
 
Dynacache in WebSphere Portal Server
Dynacache in WebSphere Portal ServerDynacache in WebSphere Portal Server
Dynacache in WebSphere Portal ServerRohit Kelapure
 
Classloader leak detection in websphere application server
Classloader leak detection in websphere application serverClassloader leak detection in websphere application server
Classloader leak detection in websphere application serverRohit Kelapure
 
2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-final2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-finalRohit Kelapure
 
Web sphere application server performance tuning workshop
Web sphere application server performance tuning workshopWeb sphere application server performance tuning workshop
Web sphere application server performance tuning workshopRohit Kelapure
 
Performance tuningtoolkitintroduction
Performance tuningtoolkitintroductionPerformance tuningtoolkitintroduction
Performance tuningtoolkitintroductionRohit Kelapure
 
IBM Health Center Details
IBM Health Center DetailsIBM Health Center Details
IBM Health Center DetailsRohit Kelapure
 
Java EE vs Spring Framework
Java  EE vs Spring Framework Java  EE vs Spring Framework
Java EE vs Spring Framework Rohit Kelapure
 
Debugging java deployments_2
Debugging java deployments_2Debugging java deployments_2
Debugging java deployments_2Rohit Kelapure
 
Caching technology comparison
Caching technology comparisonCaching technology comparison
Caching technology comparisonRohit Kelapure
 
SIBus Tuning for production WebSphere Application Server
SIBus Tuning for production WebSphere Application Server SIBus Tuning for production WebSphere Application Server
SIBus Tuning for production WebSphere Application Server Rohit Kelapure
 

More from Rohit Kelapure (20)

API First or Events First: Is it a Binary Choice?
API First or Events First: Is it a Binary Choice?  API First or Events First: Is it a Binary Choice?
API First or Events First: Is it a Binary Choice?
 
External should that be a microservice
External should that be a microserviceExternal should that be a microservice
External should that be a microservice
 
Should That Be a Microservice ?
Should That Be a Microservice ?Should That Be a Microservice ?
Should That Be a Microservice ?
 
Travelers 360 degree health assessment of microservices on the pivotal platform
Travelers 360 degree health assessment of microservices on the pivotal platformTravelers 360 degree health assessment of microservices on the pivotal platform
Travelers 360 degree health assessment of microservices on the pivotal platform
 
SpringOne Platform 2018 Recap in 5 minutes
SpringOne Platform 2018 Recap in 5 minutesSpringOne Platform 2018 Recap in 5 minutes
SpringOne Platform 2018 Recap in 5 minutes
 
Migrate Heroku & OpenShift Applications to IBM BlueMix
Migrate Heroku & OpenShift Applications to IBM BlueMixMigrate Heroku & OpenShift Applications to IBM BlueMix
Migrate Heroku & OpenShift Applications to IBM BlueMix
 
Liberty Buildpack: Designed for Extension - Integrating your services in Blue...
Liberty Buildpack: Designed for Extension - Integrating your services in Blue...Liberty Buildpack: Designed for Extension - Integrating your services in Blue...
Liberty Buildpack: Designed for Extension - Integrating your services in Blue...
 
A Deep Dive into the Liberty Buildpack on IBM BlueMix
A Deep Dive into the Liberty Buildpack on IBM BlueMix A Deep Dive into the Liberty Buildpack on IBM BlueMix
A Deep Dive into the Liberty Buildpack on IBM BlueMix
 
Liberty dynacache ffw_iea_ste
Liberty dynacache ffw_iea_steLiberty dynacache ffw_iea_ste
Liberty dynacache ffw_iea_ste
 
1812 icap-v1.3 0430
1812 icap-v1.3 04301812 icap-v1.3 0430
1812 icap-v1.3 0430
 
Dynacache in WebSphere Portal Server
Dynacache in WebSphere Portal ServerDynacache in WebSphere Portal Server
Dynacache in WebSphere Portal Server
 
Classloader leak detection in websphere application server
Classloader leak detection in websphere application serverClassloader leak detection in websphere application server
Classloader leak detection in websphere application server
 
2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-final2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-final
 
Web sphere application server performance tuning workshop
Web sphere application server performance tuning workshopWeb sphere application server performance tuning workshop
Web sphere application server performance tuning workshop
 
Performance tuningtoolkitintroduction
Performance tuningtoolkitintroductionPerformance tuningtoolkitintroduction
Performance tuningtoolkitintroduction
 
IBM Health Center Details
IBM Health Center DetailsIBM Health Center Details
IBM Health Center Details
 
Java EE vs Spring Framework
Java  EE vs Spring Framework Java  EE vs Spring Framework
Java EE vs Spring Framework
 
Debugging java deployments_2
Debugging java deployments_2Debugging java deployments_2
Debugging java deployments_2
 
Caching technology comparison
Caching technology comparisonCaching technology comparison
Caching technology comparison
 
SIBus Tuning for production WebSphere Application Server
SIBus Tuning for production WebSphere Application Server SIBus Tuning for production WebSphere Application Server
SIBus Tuning for production WebSphere Application Server
 

Recently uploaded

APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 

Recently uploaded (20)

APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 

2012 04-06-v2-tdp-1163-java e-evsspringshootout-final

  • 1. Java EE and Spring Framework Shootout Rohit Kelapure WebSphere Application Server Caching Architect Apache OpenWebBeans Committer IBM http://wasdynacache.blogspot.com/ http://www.linkedin.com/in/rohitkelapure http://twitter.com/rkela Recording: http://www.parleys.com/#st=5&id=2819&sl=0 Session ID = TDP-1163 1
  • 2. Please Note IBM's statements regarding its plans, directions, and intent are subject to change or withdrawal at IBM's sole discretion. Information regarding potential future products is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver any material, code or functionality. Information about potential future products may not be incorporated into any contract. The development, release, and timing of any future features or functionality described for our products remains at our sole discretion. Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user's job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here. 2
  • 3. Outline  Evolution of Java EE and Spring  Java EE 6 & Spring 3.0, 3.1 highlights  Spring 3.1 feature comparison with Java EE 6  CDI and Spring ecosystem  Spring and Java EE coexistence  Spring to Java EE migration  Conclusion 3
  • 4. J2EE Java EE Specifications * Introduced in spec. 4
  • 5. Evolution of J2EEJava EE6 (Dec 09) • Facelets, built-in-AJAX, Skins,  New specs (JAX-RS, CDI, Bean Annotations, Resource handling Validation) • Simplified Navigation, Easier custom components, View & Page scopes  Prune dead wood • Bookmarkable pages, Project Stage, – EJB 2.x, JAX-RPC, JAXR, JEE App. Expanded event model Deploy, JEE App mgmt. – JPA 2.0  Extensibility • Mapping enhancements, JPAQL, Criteria Query API, Pessimistic – Easy Framework Pluggability (web locking fragments & CDI Extensions)  Profiles reduce platform size  Enhanced ease of development – Web Profile 12 specs – POJO annotation based Servlets, – Asynchronous processing (Servlet 3.0 &  Vendor support EJB 3.1) – WebSphere AS 8 – EJB 3.1 – JBOSS AS 7 • EJB-in-WAR, No-interface view, – Oracle WebLogic 11g Singleton, EJB-lite, Timers – Glassfish 3 – Contextual Dependency Injection (CDI) – RESTful services – Portable JNDI names – JSF2.0 5
  • 6. JSR 299 Contexts and Dependency Injection (CDI)  Adds dependency injection to JEE and interceptor bindings makes it type-safe. – Refines interceptors into decorators for finer grained control – Hollywood principle - Don’t call us, we will call you  Integrates with the Unified EL to bridge – No hard coded dependencies on JSF other specifications – Enables use of EJB 3.0 components  Assists in unifying the Bean model as JSF managed beans  Well defined contexts, the ability to bind  Introduces an SPI to extend JEE – Roll your own JEE7! beans statefully to them & manage their lifecycle. – Not only an API but also a SPI – Rich ecosystem of CDI extensions  Introduces an event notification system  Adds the Web conversation context to decouple producers & consumers  Spring does NOT provide support for  Uses interceptors to foster loose CDI coupling – Extend behavior with type safe 6
  • 7. Spring Framework  Lightweight dependency injection  Aspect oriented  Layered application & container framework  Well defined modules on top of the core container  NOT an all-or-nothing solution 7
  • 8. Evolution of Spring [ 1.0, 2.0, 2.5, 3.0, 3.1] 3.0 3.1 • JSR-330 “at • A new “c” inject” namespace 2.5 • New Spring • Configuration 1.0 2.0 • Annotation- Expression profiles • Dependency driven wiring Language • Problem- • Automatic • First-class REST • Unified injection specific XML bean support property • POJO- • Extensible oriented configuration • Java-based resolution configuration development • New configuration • Java • Bean scoping annotation- • Declarative • Several new configuration • Groovy, JRuby, driven MVC Spring MVC AOP & and BeanShell features transactions framework features • MVC • JSP tag library • JUnit 4-based • Servlet 3.0 • Support for JSR- support framework • Java 5 integration 303 declarative autoboxing testing validation • Declarative and generics • Annotation-based caching background and • Spring MVC scheduled jobs enhancements 8
  • 10. Java EE vs. Spring Framework Features/APIs 10
  • 11. Java EE vs. Spring Business Component 11
  • 12. Spring XML for Business Component Injection 12
  • 13. Spring XML for Business Component Injection 13
  • 14. Spring Java Based Configuration 14
  • 15. Spring Java Based Configuration 15
  • 16. Java EE Interceptor vs. Spring Aspects 16
  • 17. Java EE vs. Spring Injection 17
  • 18. Java EE vs. Spring Injection 18
  • 19. JSF 2 vs. Spring MVC Front Controller  Facelet Component 19
  • 20. JSF 2 vs. Spring MVC Front Controller  Facelet 20
  • 21. JSF 2 vs. Spring MVC Front Controller Entity 21
  • 22. JSF 2 vs. Spring MVC Spring MVC JSP 22
  • 25. Spring MVC web.xml configuration 25
  • 26. Java EE vs. Spring Scheduling 26
  • 27. Java EE vs. Spring Scheduling 27
  • 28. Java EE vs. Spring Messaging 28
  • 31. Java EE Message Producer & JMS Abstraction 31
  • 32. Java EE Message Producer & JMS Abstraction 32
  • 33. Hacking the Java EE Platform - CDI Extensions  Activated by dropping jars on the application classpath  Loaded by the java.util.ServiceLoader SPI  Integrate with container through container lifecycle events by – Register additional beans, interceptors and decorators – Injecting dependencies into its own objects – Introduce custom scope with backing context – Augment or override bean annotation-based metadata with other source  Tools/utilities, extending Java EE, integration with Java EE APIs, integrating with non-standard APIs, making Java EE features available in non-Java EE 33
  • 35. CDI Ecosystem Snapshot Implementations Portable Runtimes Extensions Weld CanDI Tools 35
  • 36. Spring & Java EE Coexistence  Integration with Java EE APIs – Spring beans can be injected into JSF Managed Beans – Spring beans can be referenced in EL with no JSF Backing beans – Spring JmsTemplate can be used on top of raw JMS API for convenience – Spring Listeners similar to EJB MDBs especially JCA rather than JMS listeners – Hibernate validator standardized as Bean Validation (JSR 303) – Spring 3 supports excellent bi-directional integration with EJBs – CDI and Spring Integration through the Spring Bridge to CDI  Native support for Java EE – Java EE5 and Java EE6 annotations supported by Spring – Spring can use JPA / Hibernate natively  Application server integration – DataSources can use application server QoS like pooling, transactions, statement caching, debugging, monitoring and security 36
  • 37. Best Practices integrating Spring WAS  Presentation tier considerations – Web MVC & Portlet  Data access considerations – Using JDBC native connections – Transactions, JPA & JMS  Spring Security Considerations – Bypassing WAS security  Integration & Management considerations – Registering Spring Mbeans in the application server – Classloaders  Design Considerations – Unmanaged threads – Scheduling & Threadpools 37
  • 38. Java EE coexistence with Spring 38
  • 39. Migrating Spring to Java EE 6 1. Upgrade Spring version 2. Replace old frameworks (ORM, Web Framework) within Spring 3. Run Spring and Java EE container side by side 4. Replace Spring entirely 5. Remove Spring container 39
  • 40. Myths of Java EE  EJBs are heavy weight "bloated“  EJBs are hard to test  J2EE and EJB2 sucked! “That  EJBs are not portable was eight years ago! Is this really your best shot?”  EJBs are slow  Application server portability is a  EJBs are not scalable myth!  EJBs are too complex  EJBs are hard to integrate with Web Frameworks and POJOs  EJBs are hard to configure  EJBs are hard to migrate  EJBs are hard to develop  EE application servers are 40
  • 42. References  Evolution of Java EE http://en.wikipedia.org/wiki/Java_EE_version_history  Java EE 6 Tutorial http://download.oracle.com/javaee/6/tutorial/doc/  Spring Docs http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/  Spring Projects http://www.springsource.org/projects  Miscellaneous CDI Extensions https://github.com/softwaremill/softwaremill-common  Migrating Spring to Java EE – https://github.com/paulbakker/migrating-spring-to-javaee – http://ocpsoft.com/java/spring-to-java-ee-a-migration-guide-cdi-jsf-jpa-jta-ejb/  CDI- Spring Bridge – http://rick-hightower.blogspot.com/2011/04/cdi-and-spring-living-in-harmony.html – http://niklasschlimm.blogspot.com/2011/08/jsr-299-cdi-interceptors-for-spring.html – http://niklasschlimm.blogspot.com/2011/08/jsr-299-cdi-decorators-for-spring-beans.html  Best practices integrating Spring with WebSphere Application Server – http://www.ibm.com/developerworks/websphere/techjournal/0609_alcott/0609_alcott.htm  What’s new in Spring 3.1 http://static.springsource.org/spring/docs/3.1.x/spring-framework- reference/htmlsingle/spring-framework-reference.html#new-in-3.1 42
  • 43. References continued  SEAM 3 http://seamframework.org/Seam3  CODI http://myfaces.apache.org/extensions/cdi/  Weld http://seamframework.org/Weld  CanDI http://www.caucho.com/resin/candi/  OpenWebBeans http://openwebbeans.apache.org/owb/index.html 43
  • 44. We love your Feedback!  Don’t forget to submit your Impact session and speaker feedback! Your feedback is very important to us, we use it to improve our conference for you next year.  Go to impactsmartsite.com from your mobile device  From the Impact 2012 Online Conference Guide: – Select Agenda – Navigate to the session you want to give feedback on – Select the session or speaker feedback links – Submit your feedback 44
  • 45. Copyright and Trademarks © IBM Corporation 2012. All Rights Reserved. IBM, the IBM logo, ibm.com are trademarks or registered trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at “Copyright and trademark information” at www.ibm.com/legal/copytrade.shtml. 45