Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - Chuck Bridgham/ Naci Dai Eclipse WTP Project J2EE Tools Open House
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - Contents ■ Contributors ■ Function ■ Plugins ■ API ■ Development
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - Contributors ■ Chuck Bridgham (IBM) –Committer / J2EE Component lead ■ Vijay Bhadriraju (IBM) –Committer –EJB/Servlet validation –Component dependency UI ■ Michael Elder (IBM) –Contributor –Flexible Project ■ Jason Sholl (IBM) –Contributor –J2EE Archive commands ■ Brad Blancett (IBM) –Contributor –J2EE Module Server integration ■ Konstantin Komissarchik (BEA) –Weblib Container support –Server features ■ Naci Dai (Eterations) –Committer / JST Subproject lead –EJB Creation/Annotations ■ John Lanuti (IBM) –Contributor –Annotations/WS integration ■ Derek F Holt (IBM) –Contributor –J2EE Wizard/Structural builder ■ Neeraj Agrawal (IBM) –Contributor –Java utility/Classpath references ■ Saurabh Agarwal (IBM) –Contributor –J2EE Navigator extensions ■ Jialin C Chen (IBM) –Contributor –Web component api
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - What are the J2EE Tools? Made up of 4 components – wst.web, jst.j2ee, jst.ejb, jst.servlet Why 4 components? wst.web – Support for Simple(Non-Java)Web projects jst.j2ee – Contains all models/Common J2EE support jst.ejb,jst.servlet – Module type support, features possible Feature requirements may determine future component structure J2EE component page link:
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - Function – J2EE Tools ■ J2EE EMF models ■ New J2EE Project Wizards/Commands ■ Import-Export Wizards/Commands ■ J2EE Navigator Integration ■ Flexible Project –Preferences –Dependency properties ■ EJB Generation Framework –Annotation based generation –Session/MDB ■ Servlet creation –Annotation/Template generation ■ New Simple Web Project ■ Server Integration/Publish tasks ■ J2EE Validation/J2EE Web Services
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - J2EE EMF models ■Complete Rose Model evolved from J2EE 1.2 -> 1.4 –One EMF model supports all versions –Based on J2EE Deployment Descriptor DTD/XSD’s –Models are extendable for vendor/feature specific meta-data ■Jem (Java) EMF Model – Delivered in JVE Project ■ Overview link: api/j2ee_models_overview.html api/j2ee_models_overview.html ■ Complete Rose Model link: models/j2ee_rose.html models/j2ee_rose.html ■Translators (Currently internal) –EMF XML resource files use Translator classes –Translators synchronize EMF DOM –Renderer strategies SAX DOM SED (XML Editor Model)
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - New Project Wizards/Commands ■ DataModel based –Self validating –Defaulting properties ■ Advanced settings –Server target –Ear containment ■ Extended pages/commands
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - Import-Export Wizards/Commands ■ Module Import –Expands J2EE archives –DataModel driven –Extensible ■ Module Export –Archives Existing components/projects –Datamodel driven –Extensible
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - J2EE Navigator Integration ■ Standard J2EE Working Sets ■ Integrated Java Content ■ EMF model content ■ EMF content synchronized with XML changes ■ Web Services node (Extension)
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - Flexible Project ■ Concept –A flexible development environment where source layout isn’t constrained by deployable structures. –Multiple components can be assembled within a single project –Components can be shared by declaring dependencies –Components are decoupled from server specific deployment plans ■ Why is it provisional? –Resource level API belongs in the platform –Current design has platform (JDT) constraints
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - Flexible Project – Structural model ■ Structural Metamodel that defines abstract modules within Eclipse projects ■ This metamodel also specifies “source” and “runtime” paths for defined resources ■ Model Diagram below
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - Flexible Project – Virtual Resource API ■ Virtual Resource –Emulates IResource –IVirtualContainer members() traverses runtime structure –getUnderlyingResource() ■ VirtualComponents –J2EE Module Natures are gone…. –Component type specifies J2EE module types ■ ArtifactEdit –EMF model lifecycle api –Some “Edit model” concepts exposed
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - Flexible Project (cnt’d) ■ Current Work Items –Server integration/publish tasks –Fixing Bugs! ■ Online info –Concepts (Some out of date content): cepts.html cepts.html –Overview (Some out of date content): ctureDesignOverview.html ctureDesignOverview.html –Structural Overview: tml tml –ComponentCore API: core/package-summary.html core/package-summary.html –VirtualResource API: – core/resources/package-summary.html
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - EJB Generation Framework ■ Component in JST –EJB Generation using Datamodels and Operations ■ Functional Overview –The framework provides a means for defining EJB components using DataModels, and provides and extensible way of generating ejb components using operations. –Provides extensible wizards to define and trigger EJB generators –Provides an example generator using XDoclet ■ Extensible –IEJBGenerator extension point –Nested wizards to insert specific UrIs –Nested models to extend the models.
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - EJB Model ■ J2EE models for ejb are available in JST EMF models Reflect the standards view of an ejb org.eclipse.jst.j2ee.ejb ■ EJB tooling needs more Seperate the following views ► J2EE Standard x Tooling API x Runtime Extensions We use the delegate pattern to avoid the coupling that can make j2ee models hard to maintain.
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - EJB Generation Datamodels ■ Provides validation of properties ■ Event notification on property change ■ Usable with WTP operation –potential non-gui use WTPOperationDataModel NewEJBJavaClassDataModel SessionBeanDataModelMessageDrivenBeanDataModel
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - Delegates IEnterpriseBean EnterpriseBeanDelegate > EnterpriseBean > EnterpriseBeanDataModel > DD View Tooling View * Nested - and maybe provided by features added to components RuntimeEJBDM >... getEnterpriseBean() getDataModel() getDataModelFor(feature)??
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - Related Open Source Projects (IP) ■ XDoclet –Xdoclet.sf.net –Only used for generating ejb code. Not a runtime framework
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - EJB Generator ■ EJB Generaiton Tooling Provides an extension point –IEJBGenerator public interface IEJBGenerator { public void generateSession(ISessionBean bean,IProgressMonitor monitor); public void generateMessageDriven(IMessageDrivenBean bean,IProgressMonitor monitor); } –An example implemention is XDoclet <extension point="org.eclipse.jst.j2ee.ejb.annotation.model.ejbGenerator"> <ejbGenerator name="XDoclet" class="org.eclipse.jst.j2ee.....XDocletAnnotationProvider" />
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - EJB Bean wizards ■ WTP Extensible Wizards –Single entry point that nests other ejb wizards –Creates an operation that launches a generator
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - Servlet creation wizard ■ Choice of Generation style –Annotation (XDoclet) –EMF Jet Template –Updates DD Metadata –Uses DataModel operation
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - New Simple Web Project ■ Used for Simple (Non-Java) Web applications ■ Creates WebContent structure ■ Adds Component infrastructure ■ Server Integration
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - Server Integration/Publish tasks ■ Server “Deployables” for All J2EE Modules ■ Server Publish in M4 –Deployable Builder “Assembled” source to runtime structure –Deployable Builder synchronized with Java Builder –Publish step pointed to “.deployables” folder in project/component ■ Server Publish in M5 –No Assembly builder (No.deployables folder) –Java output in “bin” folder by default –Server publish steps determines assembly steps required –All Assembly done in server metadata area (Outside workspace)
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - Plugins – J2EE ■ wst –org.eclipse.wst.web –org.eclipse.wst.web.ui ■ jst –org.eclipse.jst.ejb.ui –org.eclipse.jst.j2ee –org.eclipse.jst.j2ee.core –org.eclipse.jst.j2ee.ejb –org.eclipse.jst.j2ee.ejb.annotation.model –org.eclipse.jst.j2ee.ejb.annotations.emitter –org.eclipse.jst.j2ee.ejb.annotations.ui –org.eclipse.jst.j2ee.ejb.annotations.xdoclet –org.eclipse.jst.j2ee.jca –org.eclipse.jst.j2ee.jca.ui –org.eclipse.jst.j2ee.navigator.ui –org.eclipse.jst.j2ee.ui –org.eclipse.jst.j2ee.web –org.eclipse.jst.j2ee.webservice –org.eclipse.jst.j2ee.webservice.ui –org.eclipse.jst.servlet.ui ■ Content –Simple web component support –Simple web creation wizards –EJB Component wizards/dialogs –EAR/Common J2EE component commands –J2EE Models/Common Archive –EJB Component commands –API/Datamodel/Function group –EMF Code generators for xdoclet –GUI/Wizards for Ejb Generation –XDoclet support/xdoclet annotation code- assist –J2C Component commands –J2C Component wizards/dialogs –J2EE Navigator extensions –EAR/Common J2EE component UI/wizards –WAR Component commands –J2EE Webservice commands –J2EE Webservice wizards/nav extensions –WAR Component UI/wizards
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - Plugins - Dependencies ■ Eclipse –Platform JDT,Resource –JEM Java Model (Reflective EMF Model) –EMF Primary metamodel framework EMF.edit –WS WSDL based model (Integrated into Navigator) –SSE XML DOM Model (EMF backed Source Editor)
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - API - Status ■ Provisional API –Flexible Project API –ArtifactEdit (J2EE) –Data model commands –Import/Export/Creation –J2EE models ■ Internal API (Destined to be API some day…) –Edit Models –Translators ■ API Links – –
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - Bugzilla - Queries –Query for J2EE: – vanced&short_desc_type=allwordssubstr&short_desc=&p roduct=Web+Tools&component=J2EE+Standard+Tools&c omponent=jst.ejb&component=jst.j2ee&component=jst.ser vlet&component=wst.common&component=wst.validation &component=wst.web&long_desc_type=allwordssubstr&l ong_desc=&bug_file_loc_type=allwordssubstr&bug_file_lo c=&keywords_type=allwords&keywords=&bug_status=NE W&bug_status=ASSIGNED&bug_status=REOPENED&e mailtype1=substring& 1=& type2=substring&em ail2=&bugidtype=include&bug_id=&votes=&chfieldfrom
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - Development - WTP 0.7 ■ Stabilization –Bug fixes –Functional requests –JUnit testcase development ■ EJB –Enhance Webdoclet support –Builders vs Actions, better GUI ■ Provisional frameworks (Continuing to refine API) –Flexible project –Artifact Edit –DataModelProvider interfaces for J2EE Creation/Import/Export/Codegen ■ Details are in the J2EE milestone page
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - Development - WTP 1.0 ■ Continue to Define/Refine API! ■ Flexible Projects (Integrate with platform, Drive requirements) –Component property page (feature based?) ■ Server Features –Component integration –Function Groups –Core Feature Definition ■ EJB –Support module features for EJB Generators (auto selection) –Extension points for Xdoclet –Simple Entity Beans???
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - Development - WTP 1.5 (J2EE 5) –J2EE Models/Commands upgraded to J2EE 5 standards –EJB 3.0 JSR 175 Annotations/ Deployment descriptors optional ORM proposals –EAR Targets (Team scenarios) –Performance –Editors (JINHa, Other proposals)
Content provided under the terms and conditions of the Eclipse Public License Version June Eclipse Foundation - Development - Help! ■ Clean up warnings (e.g. use of deprecated symbols) ■ Contribute to online help content ■ Contribute to JavaDoc/API cleanup ■ Junits – BVT and Performance ■ General Feedback!