140 likes | 225 Views
WTP Source Editing Open House. David Williams david_williams@us.ibm.com. Agenda. Committers/Contributors End User Features Add-on/Extender Features Components/Plugins APIs (Provisional) Quality To Do for 0.7 To Do for 1.0 Future. Committers/Contributors. David Williams (IBM)
E N D
WTP Source Editing Open House David Williams david_williams@us.ibm.com
Agenda • Committers/Contributors • End User Features • Add-on/Extender Features • Components/Plugins • APIs (Provisional) • Quality • To Do for 0.7 • To Do for 1.0 • Future
Committers/Contributors • David Williams (IBM) • Text Models, parsing • Nitin Dahyabhai (IBM) • Parsing, Outlines, Properties, Breakpoints, Taglibs, TaskTags • Phil Avery (IBM) • Search, Indexing, General Content Assist, Source Validation • Jens Lukowski (Innoopract / Independent) • XML Editing Graph View, Examples • Amy Wu (IBM) • Hover Info, Preferences, Hyperlinks, Quick Fix, Icons • Ted Carroll (BEA) • JSP 2.0 Expression Language editing • Craig Salter (IBM) • Schema’s • Plus many many others
End User Features • Well behaved, well integrated Eclipse editors • Seamless user experience • Search, refactor, debug • General Introductionhttp://www.eclipse.org/webtools/wst/components/sse/M2/m2.html • The Matrix (re-reloaded)http://www.eclipse.org/webtools/wst/components/sse/M4/milestone_test_plan.xml#matrix
Add-on/Extender Features • Light weight Framework for content based editing • Easily embedded in other (multipage) editors • Easy to extend outline view, properties view, source validation for “mark up” languages (content assist?) • Extensible, based on contentType and nested contentType • Model Text and DOM APIs • Fault tolerant, incremental parsing • Careful tracking of exact source locations • Translation from one source representation to another • Notification to keep models “in synch” • Possible (post 1.0) Future • Framework for Language Providers (ltk - like)
Components/Plugins • JST • JSP • org.eclipse.jst.jsp.core • org.eclipse.jst.jsp.ui • WST • Web Resources • org.eclipse.wst.css.core • org.eclipse.wst.css.ui • org.eclipse.wst.html.core • org.eclipse.wst.html.ui • org.eclipse.wst.html.standard.dtds • org.eclipse.wst.javascript.core • org.eclipse.wst.javascript.ui
Components/Plugins • WST • XML (and Schemas and DTDs) • org.eclipse.wst.sse.core • org.eclipse.wst.sse.ui • org.eclipse.wst.dtd.core • org.eclipse.wst.dtd.ui • org.eclipse.wst.dtd.validation • org.eclipse.wst.xml.catalog • org.eclipse.wst.xml.catalog.ui • org.eclipse.wst.xml.core • org.eclipse.wst.xml.ui • org.eclipse.wst.xml.uriresolver • org.eclipse.wst.xml.validation • org.eclipse.wst.xsd.contentmodel • org.eclipse.wst.xsd.ui • org.eclipse.wst.xsd.validation
Related Standards • XML 1.0 (not 1.1, that is, no supplementary characters) • JSP 1.1, 1.2 • JSP 2.0 (mostly, lacking support for some deployment attributes) • HTML 4.01 (plus a little) • DOM Level 2 Core APIs (mostly, some not implemented) • XHTML 1.0, 1.1 • Note: Our “DOM Parser” is not a “standard” (per spec) XML Parser, since parses ill-formed input with heuristics • The implication for clients is that it really is for source editing, not parsing in general • Similar for JSPs, we parse them as if DOM, not per spec • Future: want to support JSP as CSS too
Related Open Source Projects (IP) • Xerces • w3c DTDs and Schemas • w3c DOM Interfaces • J2EE DTDs and Schemas(redistribution/caching being investigated)
API (Provisional) • All “Provisional” in 0.7 • Partially Spec’d, some JUnit coverage, some refactoring required • API Categories • IDs (editors IDs, content types, partition types) • ContentType Properties • Some extensions to base API • Extension Points (e.g. source page validation) • Note: some extension points we currently have will be remove • DOM related Implementation and extended APIs • SSEhttp://www.eclipse.org/webtools/wst/components/sse/overview.html • XMLhttp://www.eclipse.org/webtools/wst/components/xml/overview.html • JSPhttp://www.eclipse.org/webtools/jst/components/jsp/overview.html • HTMLhttp://www.eclipse.org/webtools/wst/components/html/overview.html • CSShttp://www.eclipse.org/webtools/wst/components/css/overview.html • JavaScripthttp://www.eclipse.org/webtools/wst/components/javascript/overview.html • DTDhttp://www.eclipse.org/webtools/wst/components/dtd/overview.html
Quality • Initial code contribution was shipped in previous products, • received much client use • roughly 4 generations of code • … but, extensive refactoring in WTP to improve componentization and make API evolvable … so, some breakage, more to do • 1250 JUnit tests (22 “test plugins”) • Several performance tests in place • We do test for accessibility, National Language enablement • 224 bugs currently open • 1 critical • 8 major • 185 fixed • 2 blockers • 3 critical • 32 major
Still To Do • For 0.7 • Fix Bugs! • Fix order-of-notification issues for folding • Seek Review of Encoding and IContentDescribers • Continue progress on APIs • For 1.0 • Provide Platform Quality APIs • (well spec’d, well tested, well reviewed) • Examples of use • Less memory use • Improve (hide) Common Undo • Edit CSS contentType in JSPs • Spell Checking (uncommitted) • Links Refactoring (uncommitted) • Extension Point for Hover Help Contributors (uncommitted) • specify custom attribute editors (uncommitted) • Participatory Content Assist (uncommitted) • (better understand EJB 3.0 use cases)
What’s the future hold • Post 1.0 (uncommitted possibilities) • Provide “Language Provider” API • Participatory “Quick Fix” (see TPTP Validation) • XML/Schema refactoring • Full spec support (JSP 2.0, XML 1.1?) • Validation targeted to browser/server/level of spec • Integrated with Tag Lib editing • XML Document Editing
Thank you Questions? Comments?