starting with java ee was never easier
DESCRIPTION
Java EE beginners typically find difficulties with starting with some simple, but meaningful application. The standard Java EE application consists of persistence layer, business logic, and nice-looking UI. This means that learning of several specifications like JPA, EJB, Servlet, JSP, JSF, etc is needed. It is hard to achieve basic understanding quickly. It takes days before beginners can construct this technology stack correctly on their own. There are lots of best practices and patterns already established in the Java EE development. It would be really helpful if we have them implemented as wizards in the IDE. Most of the needed operations are already there: for creating projects, beans, JSPs, etc. We just need the glue to assemble them in complete scenarios and unload beginners from the burden to find the correct order and parameters of the actions by themselves. Here comes the new Eclipse Pave project that has started its incubation recently. The initial contribution comes with a couple of patterns that enable developers to start playing with a complete Java EE application in a minute. However, the scope of the Eclipse Pave project is not limited to just Java EE. The project goal is to provide a framework that enables chaining of already existing operations in scenarios that a frequently executed by users. Especially, scenarios that have been established as best practices - we call them patterns. The second part of the talk we will take an overview of the Pave framework and what power it gives to plug-in developers to easily construct their own patterns by reusing the big variety of operations and wizard pages that are already defined in Eclipse. Note: This talk does not pretend to demonstrate any new features from the Galileo release, although some of them could be pointed in the context of demonstrations. This main goal of this talk is unveil what's cooking in the incubator at the moment. The demonstrated features are planned to be part of the 2010 (Helios) release.TRANSCRIPT
1
Starting with Java EE was never easier
Kaloyan RaevWTP PMC MemberSAP Labs Bulgaria
2
Typical Java EE application design
Presentation
Business Logic
Persistency
Servlet, JSPJSF
EJB, JTAJMS, JNDI
JPA, JDBC
Problem: Too many technologies! Where to start from?
3
One possible implementation
JSF
EJB
JPA
JSF PagesMBeans
Session Bean CRUD Façade
JPA Entities
Solution: Follow well-established patterns!
4
The Eclipse Pave project
Frameworks for building patterns
DefinitionPattern – a frequently executed sequence of operations that transforms the state of the workspace in an error proof way by following well-established conventions.
5
Let’s start!
Download Eclipse IDE for Java EE Developers Add Eclipse Pave plug-ins
Configure Java EE application server (e.g. GlassFish) Configure Database (e.g. Derby)
Tutorial - EclipseLink/Derby/Glassfish
7
Add Eclipse Pave plug-ins
Download http://eclipse.org/pave/downloads.php
Installation tutorial http://eclipse.org/pave/install.php
8
Model for the Demo application
9
WTP Commons
High-level architecture
Pave Core
Pave UI
WTP Data Model Framework Core
WTP Data Model Framework UI
exte
nds
exte
nds
uses
uses
11
Why the WTP Data Model Framework?
Features Data Models provide an intelligent mechanism for data collection Data Model Operations simplify operation execution Data Model Wizards simplify wizard generation and extension
Extensible framework Widely adopted in WTP
12
Data Model Operations in WTP
Over 200 Data Model Operations in WTP More in adopter’s products
Use cases Creation of project and artifacts Import and Export Refactoring and Update Migration
13
Features
Framework Descriptive declaration of patterns – in plugin.xml Patterns are context sensitive Default UI entry point for patterns – the Apply Pattern wizards Patterns are extensible Synchronizers for Data Models Headless execution of patterns
Exemplary patterns Session CRUD Façade CRUD Application
14
Short-term plan
Submit project proposal. Construct web site with documentation and tutorials. Creation review. Prepare project infrastructure. Initial contribution and IP review. Release of version 0.5.
Release of version 0.7. This release includes changes in response to the community feedback.
Consider move to Eclipse WTP Commons, Eclipse Tools or Eclipse Platform and commit a Move review.
15
Future outlook
Graduate to mature project – version 1.0 Become part of the Common Discovery Site Become part of the Simultaneous Release Train
Expand data binding mechanisms JFace data binding EMF
More cool features Re-apply pattern Undo pattern
16
Links
http://eclipse.org/pave
http://wiki.eclipse.org/Pave