from j2ee to java ee (jug praga. nov. 2006)
DESCRIPTION
new features of JavaEE 5, how to migrate from J2EE 1.4 to Java EE 5TRANSCRIPT
![Page 1: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/1.jpg)
![Page 2: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/2.jpg)
From J2EE to Java EE
Filippo Diotalevihttp://www.diotalevi.com
Novermber 23rd, 2006
![Page 3: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/3.jpg)
From J2EE to Java EE Tour – Jug Prague
Summary
“... from J2ee to S+H, and back to Java EE..”
2001 2002 2003 2004 2005 2006 2007 .......
Java EE reference architecture?
![Page 4: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/4.jpg)
From J2EE to Java EE Tour – Jug Prague
Core J2ee Patterns - 2001-2003
The 'reference architecture' for J2EE applications
Collection of patterns for the development of enterprise applications
![Page 5: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/5.jpg)
From J2EE to Java EE Tour – Jug Prague
Did you say...
Patterns?
![Page 6: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/6.jpg)
From J2EE to Java EE Tour – Jug Prague
Did you say... patterns?
![Page 7: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/7.jpg)
From J2EE to Java EE Tour – Jug Prague
Intercepting Filters
FrontController
Context Object
ActionController
ViewController
creates
uses uses
usesuses
Client
Core J2ee Patterns – Web Tier
Taken from “Pattern per lo sviluppo di applicazioni J2ee”, Filippo Diotalevi, Webbit 2004
![Page 8: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/8.jpg)
From J2EE to Java EE Tour – Jug Prague
Core J2ee Patterns – Business & Int. Tier
Taken from “Pattern per lo sviluppo di applicazioni J2ee”, Filippo Diotalevi, Webbit 2004
Dati
BOBO
BO
BOActionController
Delegate
Delegate
Service Locator
ActionController
DAO
DAO
DAO
Context Object
Service
Service
Facade
Facade
![Page 9: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/9.jpg)
From J2EE to Java EE Tour – Jug Prague
Core J2ee Patterns – Technology mappings
Service delegates
Session Facades
Services
Persistence
Service Locators
POJO
Session Stateless Bean
Session Stateless Bean
Entity Beans
JNDI
![Page 10: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/10.jpg)
From J2EE to Java EE Tour – Jug Prague
Core J2ee Patterns – Why?
• Business Delegate: reduce coupling between presentation-tier and business services
• Session Facade: encapsulate the complexity of interactions between the business objects participating in a workflow. The S.F. provides a uniform coarse-grained service access layer to clients
• ServiceLocator: abstract all JNDI usage and to hide the complexities of initial context creation, EJB home object lookup, and EJB object re-creation
![Page 11: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/11.jpg)
From J2EE to Java EE Tour – Jug Prague
Core J2ee Patterns – Pros & Cons
![Page 12: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/12.jpg)
From J2EE to Java EE Tour – Jug Prague
Core J2ee Patterns – Pros & Cons
Pros:• Standard based
• Decoupled architecture
• Easy to split work between team members
• Highly documented
![Page 13: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/13.jpg)
From J2EE to Java EE Tour – Jug Prague
Core J2ee Patterns – Pros & Cons
![Page 14: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/14.jpg)
From J2EE to Java EE Tour – Jug Prague
Core J2ee Patterns – Pros & Cons
Cons:• Complex
• Verbouse
• Can be inefficient
• Complex
• Did I say,, complex?
![Page 15: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/15.jpg)
From J2EE to Java EE Tour – Jug Prague
2004-2006: “J2EE development without EJB”?!?!
![Page 16: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/16.jpg)
From J2EE to Java EE Tour – Jug Prague
2004-2006: “J2EE development without EJB”?!?!
![Page 17: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/17.jpg)
From J2EE to Java EE Tour – Jug Prague
2004-2006: The “Spring+Hibernate revolution”
Powerful JavaBeans-based configuration management, applying Inversion-of-Control (IoC) principles
![Page 18: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/18.jpg)
From J2EE to Java EE Tour – Jug Prague
2004-2006: The “Spring+Hibernate revolution”
.. an object-relational mapping (ORM) solution for the Java language...
![Page 19: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/19.jpg)
From J2EE to Java EE Tour – Jug Prague
2004-2006: The “Spring+Hibernate revolution”
Mix together
![Page 20: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/20.jpg)
From J2EE to Java EE Tour – Jug Prague
2004-2006: The “Spring+Hibernate revolution”
1/3 – Your favourite web framework
1/3 – Spring Framework
1/3 – Hibernate
Simple, efficient and flexible architecture
![Page 21: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/21.jpg)
From J2EE to Java EE Tour – Jug Prague
Spring+Hibernate based architectures
Your favouriteWeb Frameworkhere (es. Struts)
Action
Action
Service Layer
Service
Service
Dependency injection
Dependency injection
DAO
DAO
Dependency injection
Dependency injection
Integration Layer
![Page 22: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/22.jpg)
From J2EE to Java EE Tour – Jug Prague
public class PersonHibernateDAO extends HibernateDaoSupport implements PersonDAO {
public List listDocuments() { return this.getHibernateTemplate() .find("from com.myapp.domain.Document order by code"); }
public void deletePerson(Person person) { this.getHibernateTemplate().delete(person); } ....}public class TaxServiceImpl implements TaxService { private PersonDAO personDAO; public PersonDAO getPersonDAO() { return personDAO; } public void setPersonDAO(PersonDAO personDAO) { this.personDAO = personDAO; }
public List findStudents(TaxStudentQueryParams params) { ......
Pojo in action
![Page 23: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/23.jpg)
From J2EE to Java EE Tour – Jug Prague
<bean id="personDAO" class="com.pnetx.pulse.dao.hibernate.PersonHibernateDAO"> <property name="sessionFactory"> <ref bean="sessionFactory"/> </property> </bean>
<bean id="taxServiceTarget" class="com.pnetx.pulse.spring.services.TaxServiceImpl"> <property name="taxDAO"> <ref bean="taxDAO"/> </property> <property name="personDAO"> <ref bean="personDAO"/> </property> <property name="academicSemesterDAO"> <ref bean="academicSemesterDAO"/> </property> <property name="userManager"> <ref bean="userManager"/> </property> </bean>
Dependy injection in action
![Page 24: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/24.jpg)
From J2EE to Java EE Tour – Jug Prague
S+H Architecture – Pros & Cons
![Page 25: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/25.jpg)
From J2EE to Java EE Tour – Jug Prague
S+H Architecture – Pros & Cons
Pros:• Really decoupled architecture
• Lightweight (less patterns, less infrastructure)
• Really powerful
• Simple (see projects Appfuse or Equinox)
![Page 26: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/26.jpg)
From J2EE to Java EE Tour – Jug Prague
S+H Architecture – Pros & Cons
![Page 27: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/27.jpg)
From J2EE to Java EE Tour – Jug Prague
S+H Architecture – Pros & Cons
Cons:• Non-standard
• Less documented
![Page 28: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/28.jpg)
From J2EE to Java EE Tour – Jug Prague
Java EE 5Crash Course
![Page 29: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/29.jpg)
From J2EE to Java EE Tour – Jug Prague
JavaEE5 Crash Course – 0' 00''
Java EE 5 released on May 2006
Mantra: “EOD – Easy of Development”
![Page 30: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/30.jpg)
From J2EE to Java EE Tour – Jug Prague
JavaEE5 Crash Course – 0' 29''
POJO
![Page 31: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/31.jpg)
From J2EE to Java EE Tour – Jug Prague
JavaEE5 Crash Course – 1' 12''
Annotations
![Page 32: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/32.jpg)
From J2EE to Java EE Tour – Jug Prague
JavaEE5 Crash Course – 2' 07''
Resource injection
![Page 33: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/33.jpg)
From J2EE to Java EE Tour – Jug Prague
JavaEE5 Crash Course – 2' 59''
EJB 3:
• POJO Implementation• POJI Business Interface• Annotations• “Configuration by exception”• Java Persistence API • No more Home interfaces!
![Page 34: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/34.jpg)
From J2EE to Java EE Tour – Jug Prague
JavaEE5 Crash Course – 4'59''
EJB 3:
@Stateless @Stateful @Entity @MessageDriven
![Page 35: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/35.jpg)
From J2EE to Java EE Tour – Jug Prague
JavaEE5 Crash Course – 5'34''
Java Persistence API:• EntityManager API• EJB QL• Query API
![Page 36: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/36.jpg)
From J2EE to Java EE Tour – Jug Prague
JavaEE5 Crash Course – 6'31''
• Java Persistence API (JSR-220)• EJB 3.0 (JSR-220)• JavaServer Faces 1.2 (JSR-252)• JSP 2.1 (JSR-245)• JAX-WS 2.0 (JSR-224)• JAXB 2.0(JSR-222)• Common Annotations (JSR-250)• StAX (JSR-173)
![Page 37: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/37.jpg)
From J2EE to Java EE Tour – Jug Prague
Java EE 5 Architecture
• Inspired by S+H Architecture• Uses EJB 3.0 and dependency injection• All standard based
![Page 38: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/38.jpg)
From J2EE to Java EE Tour – Jug Prague
A reference architecture for Java EE 5
DBA
Data Access Object
Data Access Object
Service
Service
Service
BO
BO
StatelessSession Bean
Entity
StatelessSession Bean
NEW!
Dependency injection
Delegate
Put yourfavourite web framework here
Delegate
Delegate
JPA
![Page 39: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/39.jpg)
From J2EE to Java EE Tour – Jug Prague
Services
@Statelesspublic class PageManagerImplementation implements PageManager {@EJB public PageDao dao;public void save(Page pagina) {
pagina.setLastModified(new Date());dao.save(pagina);
}//..}
@Localpublic interface PageManager{
public void save(Page pagina);//..}
![Page 40: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/40.jpg)
From J2EE to Java EE Tour – Jug Prague
Entities@Entitypublic class Page implements Serializable{
private String title, content;private Date lastModified;
@Id public String getTitle() { return title; }
@Temporal(TemporalType.DATE)public Date getLastModified() { return lastModified; }
public String getContent() { return content; }
//... setters and other methods follow...}
![Page 41: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/41.jpg)
From J2EE to Java EE Tour – Jug Prague
DAOs@Statelesspublic class PageDaoImplementation implements PageDao {@PersistenceContext EntityManager entityManager;public void save(Page pagina) {
entityManager.merge(pagina);}
//...}
public interface PaginaDao {
public void salva(Pagina pagina); //...}
![Page 42: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/42.jpg)
From J2EE to Java EE Tour – Jug Prague
Delegates?
Java EE 5 dependency injection is less powerful and flexible than Spring d.i.
Use Spring to manage EJB services and inject them in the front end
Dependency injection can only be used by managed classes
Ref. http://forum.springframework.org/archive/index.php/t-19669.html
![Page 43: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/43.jpg)
From J2EE to Java EE Tour – Jug Prague
@Questions?
Thank you!
![Page 44: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/44.jpg)
From J2EE to Java EE Tour – Jug Prague
References
• JSR 220: Enterprise JavaBeansTM 3.0http://www.jcp.org/en/jsr/detail?id=220
• Glassfish website and documentationhttps://glassfish.dev.java.net
• JBoss website and documentationhttp://www.jboss.org
• Gavin King's “Entity Beans in EJB 3” http://hibernate.org/gavin/ebejb3.pdf
• Kenneth Saks “Enterprise Java Bean 3.0”http://www.javasig.com/Archive/lectures/JavaSIG-EJB30.pdf
• Filippo Diotalevi's “Java EE 5 – Step by Step”http://www.diotalevi.com/weblog/?page_id=125
![Page 45: From J2EE To Java EE (Jug Praga. Nov. 2006)](https://reader034.vdocument.in/reader034/viewer/2022051210/54c7402c4a795927458b4696/html5/thumbnails/45.jpg)
From J2EE to Java EE Tour – Jug Prague
Filippo Diotalevihttp://www.diotalevi.com