2013/11/13

Devoxx 2013 - EJB 3.2 and Beyond

David Blevins
deprecated stuff: (aka. 'optional')
  • Entity Beans (CMP & BMP)
  • JAX-RPC -> replaced by JAX WS and JAX-RS
    • XML-RPC
    • Soap Encoding
API Groups: EJB spec sliced in groups -- check if your JEE server supports your requirements:
  • EJB lite
  • MDB
  • EJB remote
  • persistent Timers
  • JAX-WS
  • Embeddable EJB Container
  • EJB 2.x
  • Entity beans
small fixes:
  • lifted restriction from EJB: "do not touch the file system" (wasn't enforced)
  • business interfaces: allow multiple interface implementation
  • interceptors: difficult method signatures -> 1 method can intercept all events
  • transactional callbacks: now allowed for @Stateful
  • passivation capable (EJB with CDI scopes)
  • timer service: more global, usable outside bean code (javax.ejb.Timer & TimerHandle)
  • security: implicit '**' role (= allow any authenticated user) and no more xml needed
Bigger fix: Message-Driven Beans (MDB)
  • basics: (ongoing!)
    • not specific to JMS! (= Connector-Driven Beans)
    • configuration outdated
      • loosely typed
      • bad documentation
    • static interface (text)
  • learning from JAX-RS
    • no interfaces
    • fluid method signatures
    • annotation-based config
      • strongly typed
      • self-documenting
      • targeted (class, method or param)
  • api for creating your own connector:
    • implement ResourceAdapter: bean invocation
    • MessageEndPoint
    • annotation in MessageDriven bean: @MessageDriven
    • demo: implementation accessible with telnet: custom command prompt / commands.
    • -> MDB is basis for accessing any legacy system
    • -> can replace JMX; portable / standard
  • ref: https://github.com/dblevins/mdb-improvements
future JEE8 (under development):
  • CDI-EJB Alignment
  • scopes are similar
  • fundamentally the same: both return a "fake" Proxy object as interface
  • difference is services: EJB has extra security and transaction -> allow EJB services on CDI beans
  • life-cycle lineup: @Singleton, @Stateful
  • deprecate EJB (will take years...)

No comments: