310 likes | 492 Views
Eclipse WTP Project J2EE Tools Open House. Chuck Bridgham/ Naci Dai 2005.06.16. Contents. Contributors Function Plugins API Development. Chuck Bridgham (IBM) Committer / J2EE Component lead Vijay Bhadriraju (IBM) Committer EJB/Servlet validation Component dependency UI
E N D
Eclipse WTP ProjectJ2EE ToolsOpen House Chuck Bridgham/ Naci Dai 2005.06.16 Eclipse Foundation - www.eclipse.org
Contents • Contributors • Function • Plugins • API • Development Eclipse Foundation - www.eclipse.org
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 Contributors Eclipse Foundation - www.eclipse.org
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: http://www.eclipse.org/webtools/jst/components/j2ee/j2ee_index.html Eclipse Foundation - www.eclipse.org
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 Eclipse Foundation - www.eclipse.org
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: http://www.eclipse.org/webtools/jst/components/j2ee/api/j2ee_models_overview.html • Complete Rose Model link: http://www.eclipse.org/webtools/jst/components/j2ee/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) Eclipse Foundation - www.eclipse.org
New Project Wizards/Commands • DataModel based • Self validating • Defaulting properties • Advanced settings • Server target • Ear containment • Extended pages/commands Eclipse Foundation - www.eclipse.org
Module Import Expands J2EE archives DataModel driven Extensible Module Export Archives Existing components/projects Datamodel driven Extensible Import-Export Wizards/Commands Eclipse Foundation - www.eclipse.org
J2EE Navigator Integration • Standard J2EE Working Sets • Integrated Java Content • EMF model content • EMF content synchronized with XML changes • Web Services node (Extension) Eclipse Foundation - www.eclipse.org
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 Eclipse Foundation - www.eclipse.org
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 Eclipse Foundation - www.eclipse.org
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 Eclipse Foundation - www.eclipse.org
Flexible Project (cnt’d) • Current Work Items • Server integration/publish tasks • Fixing Bugs! • Online info • Concepts (Some out of date content): http://www.eclipse.org/webtools/development/proposals/FlexibleProjectConcepts.html • Overview (Some out of date content): http://www.eclipse.org/webtools/development/proposals/FlexibleProjectStructureDesignOverview.html • Structural Overview: http://www.eclipse.org/webtools/jst/components/j2ee/api/module_core_api.html • ComponentCore API: http://www.eclipse.org/webtools/wst/api/org/eclipse/wst/common/componentcore/package-summary.html • VirtualResource API: • http://www.eclipse.org/webtools/wst/api/org/eclipse/wst/common/componentcore/resources/package-summary.html Eclipse Foundation - www.eclipse.org
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. Eclipse Foundation - www.eclipse.org
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 thatcan make j2ee models hard to maintain. Eclipse Foundation - www.eclipse.org
EJB Generation Datamodels • Provides validation of properties • Event notification on property change • Usable with WTP operation • potential non-gui use WTPOperationDataModel NewEJBJavaClassDataModel SessionBeanDataModel MessageDrivenBeanDataModel Eclipse Foundation - www.eclipse.org
Delegates EnterpriseBeanDataModel <<wtp operations>> RuntimeEJBDM << runtime extensions >> Tooling View * Nested - and maybe provided by features added to components IEnterpriseBean EnterpriseBeanDelegate <<implementation>> ... getEnterpriseBean() getDataModel() getDataModelFor(feature)?? EnterpriseBean <<j2ee standard>> DD View Eclipse Foundation - www.eclipse.org
Related Open Source Projects (IP) • XDoclet • Xdoclet.sf.net • Only used for generating ejb code. Not a runtime framework Eclipse Foundation - www.eclipse.org
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" /> </extension> Eclipse Foundation - www.eclipse.org
EJB Bean wizards • WTP Extensible Wizards • Single entry point that nests other ejb wizards • Creates an operation that launches a generator Eclipse Foundation - www.eclipse.org
Servlet creation wizard • Choice of Generation style • Annotation (XDoclet) • EMF Jet Template • Updates DD Metadata • Uses DataModel operation Eclipse Foundation - www.eclipse.org
New Simple Web Project • Used for Simple (Non-Java) Web applications • Creates WebContent structure • Adds Component infrastructure • Server Integration Eclipse Foundation - www.eclipse.org
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) Eclipse Foundation - www.eclipse.org
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 Plugins – J2EE Eclipse Foundation - www.eclipse.org
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) Eclipse Foundation - www.eclipse.org
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 • http://www.eclipse.org/webtools/wst/api • http://www.eclipse.org/webtools/jst/api Eclipse Foundation - www.eclipse.org
Bugzilla - Queries • Query for J2EE: • https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=Web+Tools&component=J2EE+Standard+Tools&component=jst.ejb&component=jst.j2ee&component=jst.servlet&component=wst.common&component=wst.validation&component=wst.web&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&keywords_type=allwords&keywords=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom Eclipse Foundation - www.eclipse.org
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 http://www.eclipse.org/webtools/jst/components/j2ee/M5/milestone_plan.html Eclipse Foundation - www.eclipse.org
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??? Eclipse Foundation - www.eclipse.org
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) Eclipse Foundation - www.eclipse.org
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! Eclipse Foundation - www.eclipse.org