<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../wtp.xsl"?>
<html>
	<head>
		<title>web standard tools components</title>
	</head>
	<body>
		<h1>wst components</h1>

		<h2>Introduction</h2>
		<p>
			This document describes the component structure for the Web
			Standard Tools subproject. As the name of this subproject
			implies, our scope includes Web standards, such as HTML,
			XML, and related standards which are defined by
			organizations such as W3C, OASIS, and ANSI. This is in
			contrast to the J2EE Standard Tools subproject whose scope
			is the J2EE specification as defined by the JCP. One of the
			main organizing principles of this subproject is to group
			all work related to a given standard within a single
			component. For example, there are components for HTML, XML,
			and SQL. The other main organizing principle is to create a
			component for each major framework. For example, there are
			components for Server tools and Structure Source Editing.
			Finally, there are components for related sets of code that
			do not fall into either of the two main categorizations. For
			example, there is a common component for utilities and other
			shared infrastructure code.
		</p>

		<h3>
			<a
				href="http://dev.eclipse.org/viewcvs/index.cgi/wst/components/?cvsroot=WebTools_Project">
				CVS Repository
			</a>
		</h3>
		<p>
			All WST components are stored in the Eclipse CVS repository
			at dev.eclipse.org in the path
			/home/webtools/wst/components.
		</p>
		<p>
			The following sections briefly describe the components and
			their component leads.
		</p>

		<h2>Components</h2>

		<h3>
			<a name="wstassembly">assembly</a>
		</h3>
		<p>
			The assembly component contains features definitions for
			building the WST release, its SDK, and its test suite. The
			component leads are Deniz Se&#231;ilir and Dominique de
			Vito.
		</p>

		<h3>
			<a name="command">command</a>
		</h3>
		<p>
			The command component contains command infrastructure
			including the Environment Command framework and the Dynamic
			Wizard framework. This infrastructure is required by the
			webtooling project, but is not specific to webtooling per
			se. We need to harmonize the several existing command
			approaches. The component lead is Chris Brealey.
			<ul>
				<li>
					<a href="components/command/index.html">Overview</a>
				</li>
				<li>
					<a href="../plans/1.0/wst/command/M9/milestone_plan.html">Current Milestone Plan</a>
				</li>
				<li>
					<a href="components/command/M5/test_plan.html">Current Test Plan</a>
				</li>
			</ul>
		</p>

		<h3>
			<a name="wstcommon">common</a>
		</h3>
		<p>
			The common component contains common utilities and
			infrastructure which are required by the webtooling project,
			but which are not specific to webtooling per se. The most
			notable examples are the Extensible Navigator, Tabbed
			Properties View, Snippets View, and Extensible URI Resolver.
			The component lead is Craig Salter.
			<ul>
				<li>
					<!-- TODO: this should be separated into the WST pages  -->
					<a href="../jst/components/j2ee/j2ee_index.html">
						J2EE Main page (Navigator info found here)
					</a>
				</li>
				<li>
                   <a href="components/common/overview/snippets/overview.html">
                       Snippets View: Overview
                   </a>
				</li>
				<li>
					<a
						href="../plans/1.0/wst/common/M9/milestone_plan.html">
						Snippets View: Current Milestone Plan
					</a>
				</li>
				<li>
				    <a href="../plans/1.5/jst/j2ee/RC5/test_plan.html">
				        Current Test Plan
				    </a>
				</li>
			</ul>
		</p>

		<h3>
			<a name="css">css</a>
		</h3>
		<p>
			The css component contains the CSS editor, model, views,
			wizards, etc. The component lead is David Williams.
			<ul>
				<li>
					<a
						href="components/css/overview.html">
						Component Overview
					</a>
				</li>
				<li>
					<a href="../plans/1.0/wst/css/M9/milestone_plan.html">
						Current Milestone Plan
					</a>
				</li>
				<li>
					<a
						href="../plans/2.0/wst/css/test_plan.php">
						Current Test Plan
					</a>
				</li>
			</ul>
		</p>

		<h3>
			<a name="doc">doc</a>
		</h3>
		<p>
			The doc component contains the end user and ISV
			documentation for the WST subproject. This includes
			infopops and both Eclipse integrated and online help.
			The component lead is Lawrence Mandel.
			<ul>
				<!-- 
				<li>
					<a
						href="components/doc/overview.html">
						Component Overview
					</a>
				</li>
				-->
				<li>
					<a href="../plans/1.0/wst/doc/M8/milestone_plan.html">
						Current Milestone Plan
					</a>
				</li>
				<li>
					<a
						href="http://wiki.eclipse.org/index.php/Doc_Test_Plan">
						Current Test Plan
					</a>
				</li>
			</ul>
		</p>

		<h3>
			<a name="dtd">dtd</a>
		</h3>
		<p>
			The dtd component contains the DTD editor, model, views,
			wizards, etc. The component lead is Nitin Dahyabhai.
			<ul>
				<li>
					<a
						href="components/dtd/overview.html">
						Component Overview
					</a>
				</li>
				<li>
					<a href="../plans/1.0/wst/dtd/M9/milestone_plan.html">
						Current Milestone Plan
					</a>
				</li>
				<li>
					<a
						href="../plans/2.0/wst/dtd/test_plan.php">
						Current Test Plan
					</a>
				</li>
			</ul>
		</p>

		<h3>
			<a name="html">html</a>
		</h3>
		<p>
			The html component contains the HTML/XHTML editor, model,
			views, wizards, etc. The component lead is David Williams.
			<ul>
				<li>
					<a
						href="components/html/overview.html">
						Component Overview
					</a>
				</li>
				<li>
					<a href="../plans/1.0/wst/html/M9/milestone_plan.html">
						Current Milestone Plan
					</a>
				</li>
				<li>
					<a
						href="../plans/2.0/wst/html/test_plan.php">
						Current Test Plan
					</a>
				</li>
			</ul>
		</p>

		<h3>
			<a name="internet">internet</a>
		</h3>
		<p>
			The internet component contains Internet preferences (e.g.
			proxy server configuration), Web browser support, and the
			TCP/IP monitor. The component lead is Tim deBoer.
			<ul>
				<li>
					<a href="components/internet/index.html">
						Overview
					</a>
				</li>
				<li>
					<a
						href="../plans/1.0/wst/internet/M8/milestone_plan.html">
						Current Milestone Plan
					</a>
				</li>
				<li>
					<a href="components/internet/test_plan.html">
						Current Test Plan
					</a>
				</li>
			</ul>
		</p>

		<h3>
			<a name="javascript">javascript</a>
		</h3>
		<p>
			The javascript component contains the JavaScript editor,
			model, views, wizards, etc. The component lead is David
			Williams.
			<ul>
				<li>
					<a
						href="components/javascript/overview.html">
						Component Overview
					</a>
				</li>
				<li>
					<a
						href="../plans/1.0/wst/javascript/M9/milestone_plan.html">
						Current Milestone Plan
					</a>
				</li>
				<li>
					<a
						href="../plans/2.0/wst/javascript/test_plan.php">
						Current Test Plan
					</a>
				</li>
			</ul>
		</p>

		<h3>
			<a name="rdbsql">rdb</a>
		</h3>
		<p>
			The rdb component contains the relational database model
			<a
				href="components/rdb/WebPublishedDBDefinitionModel/DBDefinition.htm">
				DB Definition Model
			</a>
			,
			<a
				href="components/rdb/DBDefinitionModelJavaDoc/index.html">
				DB Definition Model Java Docs
			</a>
			, which is derived from
			<a
				href="components/rdb/WebPublishedSQLModel/SQLModel.htm">
				RDBModel - Based on SQL 99/2003
			</a>
			,
			<a href="components/rdb/SQLModelJavaDoc/index.html">
				RDBModel Java Docs
			</a>
			, vendor-specific database definitions and relational
			utilities. It also provides a database server explorer with
			the ability to connect to databases and sample data. A SQL
			Scrapbook editor allows you to enter and execute SQL,
			displaying the results in an Output view. The co-leads are
			Der Ping Chou and Sheila Sholars.
		</p>

		<ul>
			<li>
				<a href="../plans/1.0/wst/rdb/M8/milestone_plan.html">
					Current Milestone Plan
				</a>
			</li>
			<li>
				<a href="components/rdb/test_plan.html">Current Test Plan</a>
			</li>
			<li>
				<a href="components/rdb/wtp_datatools_testcases.htm">
					Test Cases
				</a>
			</li>
			<li>
				<a href="components/rdb/RDBTutorial.html">
					Tutorial for RDB
				</a>
			</li>
			<li>
				<a
					href="components/rdb/Data Tools Open Source Overview for Eclipse database Developer.html">
					White Paper for RDB
				</a>
			</li>
		</ul>

		<h3>
			<a name="wstserver">server</a>
		</h3>
		<p>
			The server component contains the Server Tools framework and
			adapters for selected servers. At the WST level, the server
			component is a very generic infrastructure. (The J2EE
			specific server component is in JST). The component lead is
			Tim deBoer.
			<ul>
				<li>
					<a href="components/server/index.html">Overview</a>
				</li>
				<li>
					<a
						href="../plans/1.0/wst/server/M8/milestone_plan.html">
						Current Milestone Plan
					</a>
				</li>
				<li>
					<a href="components/server/test_plan.html">
						Current Test Plan
					</a>
				</li>
			</ul>
		</p>

		<h3>
			<a name="sse">sse</a>
		</h3>
		<p>
			The sse component contains the Structured Source Editor
			framework. This framework provides some abstract models and
			ui infrastructure slightly above the base text
			infrastructure but lower than any specific language which
			uses it, such as XML, CSS, HTML, and JSP. The component lead
			is David Williams.
			<ul>
				<li>
					<a
						href="components/sse/overview.html">
						Component Overview
					</a>
				</li>
				<li>
					<a href="../plans/1.0/wst/sse/M9/milestone_plan.html">
						Current Milestone Plan
					</a>
				</li>
				<li>
					<a
						href="../plans/2.0/wst/sse/test_plan.php">
						Current Test Plan
					</a>
				</li>
			</ul>
		</p>

		<h3>
			<a name="validation">validation</a>
		</h3>
		<p>
			The validation component contains the Validation framework
			which coordinates the registration and execution of
			validators. Validators are a special form of an Eclipse
			builder which (typically) does not produce derived output,
			can have performance advantages, can be used for "batch"
			validation, putting errors or warnings in the task view, and
			sometimes can be (re)used for source page validation,
			putting "temporary" annotation in editors. The
			language/component validators, e.g HTML link checker, XSD
			validator, and WSDL validator, are located in their specific
			components, this Validation component simply provides the
			framework. The component lead is Chuck Bridgham.
			<ul>
				<li>
					<a
						href="components/validation/ValidationOverview.html">
						Validation Framework Overview
					</a>
				</li>
				<li>
					<a
						href="components/validation/ValidationFrameworkRework.html">
						Validation Framework Enhancements in WTP 1.5
						
					</a>
						<img src="components/validation/images/new.gif"/>
				</li>
				<li>
					<a
						href="components/validation/scenarios/validation_framework_testplan.html">
						Current Test Plan
					</a>
				</li>
				<li>
					<a
						href="../jst/components/j2ee/M4/milestone_plan.html">
						Current Milestone M4 Plan - Available on J2EE
						Main page
					</a>
				</li>
			</ul>
		</p>

		<h3>
			<a name="web">web</a>
		</h3>
		<p>
			The web component contains models, natures and builders for
			Web projects. The component lead is Chuck Bridgham.
			<ul>
				<li>
					<a href="../jst/components/j2ee/j2ee_index.html">
						J2EE Main page(Simple Web project info found
						here)
					</a>
				</li>
				<li>
				    <a href="../plans/1.5/jst/j2ee/RC5/test_plan.html">
				        Current Test Plan
				    </a>
				</li>
			</ul>
		</p>

		<h3>
			<a name="ws">ws</a>
		</h3>
		<p>
			The ws component contains the Web Services Explorer, Apache
			SOAP, Apache Axis, UDDI4J and WSIL4J models and a number of
			general purpose frameworks for use by callers and extenders
			of the Web services platform. The component lead is Chris
			Brealey.
			<ul>
				<li>
					<a href="components/ws/index.html">Overview</a>
				</li>
				<li>
					<a href="../plans/1.0/wst/ws/M9/milestone_plan.html">Current Milestone Plan</a>
				</li>
				<li>
					<a href="components/ws/M5/test_plan.html">Current Test Plan</a>
				</li>
			</ul>
		</p>

		<h3>
			<a name="wsdl">wsdl</a>
		</h3>
		<p>
			The wsdl component contains the WSDL editor, model, views,
			wizards, etc. The component lead is Craig Salter.
			<ul>
				<li>
					<a href="../plans/1.0/wst/wsdl/M8/milestone_plan.html">
						Current Milestone Plan
					</a>
				</li>
				<li>
					<a href="http://wiki.eclipse.org/index.php/WSDL_Test_Plan">
						Current Test Plan
					</a>
				</li>
			</ul>
			Tutorials
			<ul>
				<li>
					<a
						href="components/wsdl/tutorials/WSDLEditorTutorial.html">
						WSDL Editor Tutorial
					</a>
				</li>
			</ul>
		</p>

		<h3>
			<a name="wsi">wsi</a>
		</h3>
		<p>
			The wsi component contains WS-I Test Tools which will be
			repatriated from the WSVT project. The component lead is
			Craig Salter.
		</p>
			<ul>
				<li>
					<a href="../plans/1.0/wst/wsi/M8/milestone_plan.html">
						Current Milestone Plan
					</a>
				</li>
				<li>
					<a href="http://wiki.eclipse.org/index.php/WSI_Test_Plan">
						Current Test Plan
					</a>
				</li>
			</ul>

		<h3>
			<a name="xml">xml</a>
		</h3>
		<p>
			The xml component contains the XML editor, model, views,
			wizards, etc. It contains an incremental, fault tolerant DOM
			parser, which is also the basis of several other similar
			models in HTML and JSP. The component lead is David
			Williams.
			<ul>
				<li>
					<a
						href="components/xml/overview.html">
						Component Overview
					</a>
				</li>
				<li>
					<a href="../plans/1.0/wst/xml/M9/milestone_plan.html">
						Current Milestone Plan
					</a>
				</li>
				<li>
					<a
						href="../plans/2.0/wst/xml/test_plan.php">
						Current Test Plan
					</a>
				</li>
				<!-- TODO: Incorporate these other plans into the appropriate component test plans
				<li>
					<a
						href="components/xml/xml-catalog_M2TestPlan.html">
						XML Catalog M2 Test Plan
					</a>
				</li>
				<li>
					<a
						href="components/xml/xml-dtd-xsd-validation_M2TestPlan.html">
						XML, DTD, and XSD Validation M2 Test Plan
					</a>
				</li>
				<li>
					<a
						href="components/xml/xml-examples_M2TestPlan.html">
						XML Examples M2 Test Plan
					</a>
				</li>
				-->
			</ul>
		<!--  TODO: Move the end-user doc area
			Tutorials
			<ul>
				<li>
					<a
						href="../testtutorials/M2/xml/XMLCatalogTutorial.html">
						XML Catalog Tutorial
					</a>
				</li>
				<li>
					<a
						href="../testtutorials/M2/xml/XMLValidationTutorial.html">
						XML Validation Tutorial
					</a>
				</li>
				<li>
					<a href="../testtutorials/M2/xml/XMLWizards.html">
						Creating XML Documents Tutorial
					</a>
				</li>
			</ul>
 		-->
 		</p>

		<h3>
			<a name="xmlschema">xsd</a>
		</h3>
		<p>
			The xsd component contains the XSD editor, views, wizards,
			etc. The component lead is Craig Salter.
			<ul>
				<li>
<!--					<a href="components/xsd/overview.html">-->
						Component Overview
<!--					</a>-->
				</li>
				<li>
					<a
						href="http://wiki.eclipse.org/index.php/XSD_Test_Plan">
						Current Test Plan
					</a>
				</li>
				<li>
					<a href="../plans/1.0/wst/xsd/M8/milestone_plan.html">
						Current Milestone Plan
					</a>
				</li>
			</ul>
			Tutorials
			<ul>
				<li>
					<a
						href="../testtutorials/M2/xml/XMLSchemaEditorTutorial.html">
						XML Schema Editor Tutorial
					</a>
				</li>
			</ul>

		</p>

	</body>
</html>
