<?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="https://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="https://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="https://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="https://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>
