Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

Fun with EJB 3.1 and Open EJB

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Wird geladen in …3
×

Hier ansehen

1 von 23 Anzeige
Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (20)

Anzeige

Ähnlich wie Fun with EJB 3.1 and Open EJB (20)

Weitere von Arun Gupta (20)

Anzeige

Aktuellste (20)

Fun with EJB 3.1 and Open EJB

  1. 1. David Blevins / Apache Software Foundation Fun with EJB 3.1 // And OpenEJB
  2. 2. OpenEJB history Timeline • 1999 - Founded in Exoffice - EJB 1.1 level • 2001 - Integrated in Apple’s WebObjects • 2002 - Moved to SourceForge • 2003 - Integrated in Apache Geronimo • 2004 - Moved to Codehaus • 2006 - Moved to Apache Incubator • 2007 - Graduated Apache OpenEJB • 2011 - Integrated in Apache TomEE 2
  3. 3. Specification Involvement Versions • EJB 2.1 (Monson-Haefel) • EJB 3.0 (Blevins) • EJB 3.1 (Blevins) • EJB 3.2* (Blevins) 3
  4. 4. OpenEJB history Always an Embedded EJB Container • Our downfall in early 2000 -- people weren’t ready • Our success after EJB 3.0 Always doing the Opposite • EJB always had Inversion of Control • Instead of Remote/Local beans, why not Remote/Local containers? • Instead of putting the App in the Container, put the Container in the App. • WARs the bottom of the food chain? Forget that, put everything in the WAR. EARs are WARs anyway. • Don’t blame EJB because your *server* isn’t testable 4
  5. 5. Primer
  6. 6. Generic view of Containers Components • What “classes” of objects are there? Lifecycle • What “events” do objects want to know about? Views • How are they accessed internally or externally? Services • What “actions” will the container manage for you? Environment • What “resources” will be exposed to you? Packaging • How do you build & run this crazy thing? 6
  7. 7. EJB through 3.0
  8. 8. EJB through 3.0 Components • @Stateless (1.0, 3.0) • @Stateful (1.0, 3.0) • @MessageDriven (2.0, 3.0) Views • @Local (3.0) • @Remote (3.0) • @WebService (2.1, 3.0) 8
  9. 9. EJB through 3.0 Lifecycle • Dependency Injection (3.0) • @PostConstruct (1.1, 3.0) • @PreDestroy (1.1, 3.0) • Stateful specific • @PrePassivate (1.1, 3.0) • @PostActivate (1.1, 3.0) • SessionSynchronization (1.1) 9
  10. 10. EJB through 3.0 Services • @TransactionManagement (1.1, 3.0) • @TransactionAttribute (1.1, 3.0) • Security (1.1, 3.0) • @PermitAll (1.1, 3.0) • @DenyAll (1.1, 3.0) • @RolesAllowed (1.1, 3.0) • @Interceptors (3.0) • TimerService (2.0) 10
  11. 11. EJB through 3.0 Environment • @Resource (1.1, 2.0, 2.1, 3.0) • UserTransaction • DataSource • JMS ConnectionFactory/Topic/Queue • Much more.. • @EJB (1.1, 2.0, 3.0) • @PersistenceContext (3.0) • @PersistenceUnit (3.0) • @WebServiceRef (2.1, 3.0) 11
  12. 12. EJB through 3.0 Packaging • Java EE Server • Standalone EJB jar file • No standard mechanism for 3rd party libs • Combined in an EAR file 12
  13. 13. EJB 3.1
  14. 14. EJB 3.1 Components • @Singleton Views • @LocalBean • @Asynchronous Environment • Global JNDI Names 14
  15. 15. EJB 3.1 Lifecycle • Singletons • @Startup • @DependsOn • Stateful • @StatefulTimeout • @AfterBegin • @BeforeCompletion • @AfterCompletion 15
  16. 16. EJB 3.1 Services • @ConcurrencyManagement • @Lock • @AccessTimeout • @Interceptors • @AroundTimeout • @Schedule 16
  17. 17. EJB 3.1 Packaging • Java EE • EJB jars in WAR files • Java SE VM • Embedded EJBContainer API • Jar scanning a plain classpath • Modules: File/File[]/String/String[] 17
  18. 18. Next Gen EJB
  19. 19. Next Gen EJB Components • @ManagedBean (plain cheese pizza, no toppings) Services • Split them out individually (the toppings) Meta Annotations • Rename the annotations to your liking • Summarize complex config easily • Reduce impact of change 19
  20. 20. Next Gen EJB Interceptors • Multiple, qualified, @AroundInvoke methods • Middle ground between Loose & Strong typing • aka between Interceptor and Decorator • Fix Invoke signature mismatch ApplicationException • Needs finer-grained control 20
  21. 21. Next Gen EJB Message Driven 2.0 • Allow Connector annotations to be used • Eliminate loosely typed activation-config • Allow No-Interface MDBs • Connector Annotations are all that is needed • Psst, MDBs are really just Session beans • Why not allow @Singleton message consumers? Non-AppClient injection • Non-AppClient lookup, check. Where’s injection? • @LocalClient and @RemoteClient 21
  22. 22. Apache TomEE: Tomcat with a Kick 2:25 - 3:15 | Beatrice Suite 1 Wednesday David Blevins & Jonathan Gallimore
  23. 23. Thank You! openejb.apache.org David Blevins dblevins@apache.org twitter.com/dblevins

Hinweis der Redaktion

  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

×