<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="../../../wtp.xsl"?>
<html>
	<head>
		<meta
			name="root"
			content="../../../.." />
		<title>Subsystems And Features in WTP</title>
	</head>
	<body>
		<h1>Subsystems And Features in WTP</h1>
		<table
			border="1"
			cellpadding="10"
			height="50%"
			width="70%">
			<tbody>
				<tr
					align="left"
					valign="middle">
					<td
						valign="middle"
						align="left">
						<blockquote style="">
							<p>
								<cite>
									The background and status of this
									document:
								</cite>
							</p>
							<p>
								<cite>
									10/09/05 - this is a preliminary
									draft.
								</cite>
							</p>
							<p>
								<cite>
									Version 0.2 October 9, 2005.
								</cite>
							</p>
							<p>
								<cite>David Williams</cite>
							</p>
						</blockquote>
					</td>
				</tr>
			</tbody>
		</table>
		<h2>Introduction and Background</h2>
		<p>
			The purpose of this document is help organize the large
			thing that WTP is, into smaller chunks that can be
			maintained, documented, composed into other products, etc.
			[Not everything described in this document has to be
			accomplished "all at once", but much progress can be made
			"under the covers", gradually, and iteratively to better
			partition our deliverables, builds, tests, etc. The goal,
			however, is to have the fundamental pattern in place by M8
			and completely implemented by M9].
		</p>
		<p>
			WTP is now over two hundred plugins, if you include the
			documentation and test plugins. While we've tried to reduce
			this number -- and still will be! -- we'll never get to a
			small enough number that a "list of plugins" is a very good
			description of WTP.
		</p>
		<p>
			In other words, Eclipse Members who want to extend a subset
			of WTP would have a hard time picking out which plugins to
			bundle. And, even if they could, there are parts of our code
			and process that assume's other parts are there. For
			example, if someone was only going to use a subset WTP, it
			is not tenable for them to use our one "test package" --
			they would either have to do a lot of "hand editing" or not
			run our tests ... or, we could structure things to make it
			easier for them to pick out the tests appropriate to their
			subset of WTP.
		</p>
		<p>
			Plus, there's some of our deliverables, such as user
			documentation or "isv docs", which can not be packaged on a
			plugin-by-plugin bases. Even our definition of "components"
			is a little too fined grained for most meaningful
			documentation (for example, you can not talk too much about
			XML, without also talking about both DTD's and XML Schemas
			... but our code plugins for xml, dtds, and schemas are
			separate. Some things, like "generate XML from DTD"
			logically require both XML and DTD to be present.
		</p>
		<p>
			Hence, this document is to lay out a way to conceptualize
			and specify dependencies in WTP that is more helpful Eclipse
			Members who want to "extend" or "repackage" WTP. While we
			can never satisfy all needs, and some will always want to
			pick and choose things on a plugin by plugin bases, I think
			our architectural subsystems is a more meaningful level of
			composition -- and, basically, the only level we support. As
			a concrete example, if someone really wanted only the
			JavaScript Editor, there might be some different subset of
			code plugins they could extract, but we would not provide
			different packaging for docs, sdk, etc., than simply the WST
			Web Development.
		</p>
		<p>
			There has been a concept of architectural "subsystems" in
			WTP for a while, with some refinements being discussed along
			the way. This document is to update (make current) the
			previously documented subsystem, and relate them to the
			desired end-user features and build components. You can read
			our
			<a
				href="http://www.eclipse.org/org/councils/AC/wtpsnapshot/wst_subproject_architecture.html">
				current architecture document
			</a>
			to see the previous description of sub-systems and their
			dependances. This document is just a refinement of that
			document, not a fundamental change. (and, eventually, all
			the information will be merged to one document).
		</p>
		<p>
			One reason this is important to get clear on, is that it
			effects the way user and SDK docs are assembled. They
			should, basically, be able to be 'assembled" the same way as
			the subsystem can be.
		</p>
		<p>
			To help keep this clearest, I'll first describe a few terms.
		</p>
		<p>
			<b>Architecural Subsystems.</b>
			This term refers to a collection of plugins which "go
			together" to provide a general class of function, which, as
			a group, have a clear dependency relationship to other
			subsystems.
		</p>
		<p>
			This is basically the level we provide our function. For
			example, if we were going to change some XML related
			function, it is easy to imagine it might effect our DTD and
			Schema function (and docs, and tests) but would be less
			likely to effect other parts of WTP.

		</p>
		<p>
			<b>End-User Features.</b>
			This term refers to what a user can install (such as via
			update manager), where the dependencies on other features
			needs to be clear and obvious, for updates and maintenance
			and "co-existence" with other Eclipse projects.
		</p>
		<p>
			<b>Build Components.</b>
			These are, one the one hand, literally units of the build,
			where obviously dependencies have to be correct to compile.
			On the other hand, these are the lowest level PDE features,
			by which all other features are
			<i>assembled</i>
			. This level is especially important to extenders and "add
			on" providers to WTP, since, sometimes, they may not want to
			pre-req ALL of WTP, but parts of it, and, typically, they do
			not want to assemble their own features on a
			plugin-by-plugin basis, but at a feature level, to ensure
			everything fits together, and "co-exists" with other
			add-on's which may share some dependencies, and not share
			others.
		</p>
		<p>
			<b>Delivered packages.</b>
			These correspond to the zip files that can be downloaded
			from our WTP download page. I am not proposing these change
			(much), just the "PDE features" that define what they are.
			While we need further investigation, the "dependency" and
			"include feature" parts of a PDE feature appear to work
			quite well and should make the dependency and packaging
			clearly specifiable.

		</p>
		<h2>End-User Features</h2>
		<p>
			These are what would be available via update manager. (We do
			need some investigation here to make sure the right things
			are "visible" in update manager, without requiring all
			dependencies to be visible to the end-user).
		</p>
		<h4>JST</h4>
		<p>
			Business as usual, just what you'd think, what it currently
			is.
		</p>
		<h4>WST</h4>
		<p>
			Business as usual, just what you'd think, what it currently
			is.
		</p>
		<h4>Web Development (WTP 1.0 or 1.5?)</h4>
		<p>
			Like WST, but without Database Feature (I believe the plan
			is to be using DTP project in the WTP 1.5 time-frame, so I
			think advantageous to prepare for that in our 1.0
			timeframe.)
		</p>
		<h4>XML Development (WTP 1.0 or 1.5?)</h4>
		<p>
			Components required for XML, Schema, and DTD development
			(editing, validation, etc). I'm listing this here as a
			commonly requested subsystem from user community, though am
			unaware of other needs [should be easy to do, however, if
			this proposal accepted].
		</p>

		<h2>Architectural Features</h2>

		<h4>Common Subsystem/Feature (wst-common)</h4>

		<ul>
			<li>Common Component</li>
			<ul>
				<li>
					Extensible Navigator
					<p>
						internalProvisional, proposed to move to Eclipse
						Base 3.2
					</p>
				</li>
				<li>
					Tabbed Property View
					<p>
						internalProvisional, proposed to move to Eclipse
						Base 3.2
					</p>
				</li>
				<li>Snippets View</li>
				<li>Extensible URI Resolver</li>
				<li>common frameworks</li>
				<ul>
					<li>data operations - IDataModel</li>
					<li>data wizards - provisional</li>
					<li>environment framework</li>
				</ul>
				<li>project facets framework</li>
			</ul>
			<li>Validation Framework Component</li>
			<li>
				common.componentcore
				<p>foundation for web project component</p>
			</li>
			<li>Internet Proxy Settings</li>
		</ul>

		<h4>Web Server Subsystem/Feature (wst-server)</h4>
		<ul>
			<li>Server Component</li>
			<li>Internet Component</li>
			<ul>
				<li>Lightweight Server/Internet Monitor</li>
			</ul>
		</ul>

		<h4>Database Subsystem/Feature (wst-rdb)</h4>
		<ul>
			<li>DB/SQL - probable DTP project merge</li>
		</ul>
		<h4>XML Subsystem/Feature (wst-xml)</h4>
		<ul>
			<li>XML Component</li>
			<li>Schema Component</li>
			<li>DTD Component</li>
			<li>SSE Component</li>
		</ul>
		<h4>Web Services Subsystem/Feature (wst-ws)</h4>
		<ul>
			<li>WS Component</li>
			<li>WSDL Component.</li>
			<li>WSI Component</li>
		</ul>
		<h4>Web Resources Subsystem/Feature (wst-web)</h4>
		<ul>
			<li>HTML Component</li>
			<li>CSS Component</li>
			<li>JavaScript</li>
			<li>Web Project Component, HTML Web Project</li>
		</ul>


		<h4>JST Server Subsystem/Feature (jst-server)</h4>
		<ul>
			<li>Server Component</li>
		</ul>


		<h4>
			J2EE Web Subsystem/Feature (WAR, servlets, JSPs) (jst-web)
		</h4>
		<ul>
			<li>
				J2EE Core Web Model Component [Issue: not currently
				packaged this way]
			</li>
			<li>
				Servlet Component/J2EEWebProject ... some API, create
				web component API
			</li>
			<li>
				JSP Component ... some internal provisional .. need
				better design documents
			</li>
			<li>WS Web Component (JAXRPC)</li>
		</ul>
		<h4>
			J2EE Enterprise Subsystem/Feature (EARs, EJBJar,
			EJBClientJar, RARs) (jst-enterprise)
		</h4>
		<ul>
			<li>
				J2EE Core Enterprise Model Component [Issue: not
				currently packaged this way]
			</li>
			<li>EJB Component</li>
			<li>WS Component</li>
		</ul>


		<h2>Build Components</h2>

		<h4>General Pattern of the Build Components of a Subsystem.</h4>
		<p>
			Each subsystem follows a predictable pattern, with minor
			deviations here and there.
		</p>
		<p>
			Each of the following "categories" would be one build
			component, for the subsystem -- for 5 per subsystem, which,
			yes, means 45 total build components. Luckily, they all
			follow a standard pattern in their make up and dependencies.
		</p>
		<ul>
			<li>
				Model/Core plugins (
				<b>-core</b>
				)
			</li>
			<p>
				These represent function that has no UI dependencies at
				all. This is where most of the interesting API would be.
			</p>
			<li>
				UI plugins and Info plugins (
				<b>-ui</b>
				)
			</li>
			<p>
				The "UI" portion is hopefully obvious ... anything
				related to the display, presentation, editors, menus,
				wizards, preference pages (though, note, many
				preferences still have a model or core aspect). In
				particular, any thing that pre-req's SWT (directly or
				indirectly) is considered "UI").
			</p>
			<p>
				The info-plugins consist of infopop's (dynamic help)
				which is tied to the UI via "IDs" but has links to the
				user-docs. These info plugins may have NL fragments, but
				those are "pure assembly", added to an install of other
				components, and not part of an WTP build or official
				deliverable.
			</p>
			<li>
				User Doc plugins (
				<b>-userdocs</b>
				)
			</li>
			<p>
				User docs consists of the xhtml documentation that is
				"browsable" and searchable. They can be packaged as
				"just docs" for serving on the web via an "info center"
				or shipped with product code for offline access via the
				Eclipse help system. These are "just assembled" and do
				not need the code to build, although they are typically
				assembled with the code build, to ensure there is the
				same integration process as with other component teams.
			</p>
			<p>
				The point of putting them in well defined places in the
				architecture is to define what content goes where, so as
				new products bundle our subsystems, the documentation
				provided is appropriate. These can have NL fragments for
				translated versions of docs (again, pure "assembly", not
				part of any WTP build or deliverable.
			</p>
			<li>
				JUnit Tests and Performance Tests (
				<b>-tests</b>
				)
			</li>
			<p>
				The JUnit tests are an important part of every build,
				since they (somewhat) verify the integrity of the build
				without complete testing "by hand".
			</p>
			<p>
				While performance tests are not ran at the same time as
				the build or other JUnit tests (because the performance
				tests are ran on a pristine machine) there is little
				cost with building and packaging them together.
			</p>
			<p>
				The most important thing is that someone getting only a
				part of WTP, should be able to get the tests relevant to
				that part, and those tests should still succeed without
				tweaking or re-packaging or changing of scripts.
			</p>
			<li>
				SKD components (
				<b>-sdk</b>
				)
				<p>
					Source plugin, ISV Documentation, example plugins,
					sdk tools, if any.
				</p>
			</li>

		</ul>
		<h5>
			Dependancies within a subsystem, between build components.
		</h5>
		<p>
			The following figure shows how the build components within
			one subsystem are dependant on each other, using
			'wst-common' as the example. Here 'depends on' (labeled
			"uses" in the figure) means that plugins in one plugin, can
			'require' plugins in the dependent build-component. For
			example, things in any common-ui component plugin can use
			any plugin in common-core component plugins (but not
			<i>vice versa</i>
			).
		</p>
		<img
			src="./images/GeneralPattern.gif"
			alt="Common pattern of inter-subsystem dependencies"
			border="1"
			align="bottom" />
		<h5>
			Dependancies between subsystems, between build components.
		</h5>
		<p>
			The following figure shows how build components are
			specified to be dependent on each other, using wst-xml and
			wst-common as examples. Note that for "plugin dependancies"
			the rule is that anything "on a path" would be allowable,
			though not always shown expllicitly in the figure. For
			example, a plugin in xml-ui feature could require a plugin
			in common-core, even though there is no direct "uses" arrow
			between the two ... there is an indirect one though in that
			xml-ui uses xml-core which uses common-core.
		</p>
		<img
			src="./images/GeneralPatternCrossSystems.gif"
			alt="Common pattern of intra-subsystem dependencies"
			border="1"
			align="bottom" />
		<h5>
			Summary of dependancies between build-components of all
			subsystems.
		</h5>
		<p>
			The following shows a summary of how the components from
			subsystems are dependent on each other (the exact UI and
			core paths are not shown, but UI and core would be used in
			the PDE features). Also not shown are the dependancies on
			third-party or how product-adapter components.
		</p>
		<img
			src="./images/WTPSubsystems.gif"
			alt="Summary pattern of WTP dependencies"
			border="1"
			align="bottom" />

		<h4>Additions to the general pattern.</h4>
		<p>
			For some cases there are some additional build components
			for subsystems: third party code and product specific
			adapters.
		</p>
		<ul>
			<li>
				Third Party Code (
				<b>third-party-code</b>
				)
			</li>
			<p>
				These deviate from the general pattern a little, since
				for many purposes they are summarized as "a collection
				of plugins", in reality, each should be a feature-plugin
				pair (so future updates are easier, and in principle
				could be made available from anywhere, such as the
				original third-party source!.)
			</p>
			<p>
				We only package and distribute non-SDK version of the
				third-party code.
			</p>
			<li>
				Product Specific Adapters (
				<b>product-adapters</b>
				)
			</li>
			<p>
				While we do not ship "other products" in WTP, we do ship
				adapters (or "configuration definitions") for some other
				products ... in the Database components and the
				JST-Server components. We can split those out separately
				for purposes of builds, maintenance releases, etc., so
				this allows WTP extenders to decide to include or not
				include them, without having to create new features of
				the core functionality. This is important for proper
				"co-existence" if an end-user decided to install
				products from two WTP extenders ... we need to provide
				an easy way for only one intact version of the "core
				features" to be used in those cases.
			</p>
			<p>
				This also allows the future growth that these "product
				adapters" can be "hosted" by the specific product sites,
				instead of WTP per se.
			</p>
			<p>
				This does add a fair amount to complexity, though. (And
				will need to iterate on the exact definition and content
				of this build-component).
			</p>
		</ul>
		<h2>Relationship to Eclipse Capabilities</h2>
		<p>
			Eclipse has the ability to turn certain capabilities on or
			off. For example, in the base Eclipse install, you could
			turn off Plugin development if you were not going to use
			that. The purpose of this aspect of Eclipse is to simplify
			the interface for the user who does not need certain things.
		</p>
		<p>
			The distinctions in this document are often highly related
			to "Eclipse Capabilities", but is not a substitute for the
			work we still need to do in that area, and this document is
			to solve a different set of problems.
		</p>
		<p>
			There are two implications. One is that we
			<b>will</b>
			want to define some "capabilities" in WTP that correspond to
			our subsystems. For example, even if RDB is installed, we
			might still have a capability for database work, so users
			who are not using it, will not have to see certain menu
			options, etc. But there are other, more detailed kinds of
			capabilities that we might implement some day. A common
			suggestion is that some users "produce" certain components,
			such as web services, or EJBs, etc, but other users only
			"consume" them during their development. So, the "consuming"
			user could have a simplified experience if we had "produce
			and consume" capabilities where appropriate. Our
			"capabilities" work has yet to be designed and planned for,
			but the point I wanted to make here was that in some cases
			the same effect might be achieved by what extenders could
			"package" (e.g. leave out RDB if their product didn't need
			it), but in come cases it could not be -- we will not offer
			separate "PDE features" for the produce vs. consume
			dimension, but (hopefully) someday will offer that improved
			user experience through Eclipse capabilities.
		</p>
		<h2>Build Components)</h2>
		<p>
			The listed plugins are preliminary, for review. Its my
			current "best guess" of the right partitions, but will need
			careful study and review from all component teams.
			Eventually, these exact lists and relationships will be
			defined and document "in the code" (via the feature.xml
			files) but until then, thought this would help get a head
			start on reviewing some concrete proposal.
		</p>



<h4>jst.enterprise_core.feature</h4>
<ul>
<li>org.eclipse.jst.j2ee</li>
<li>org.eclipse.jst.j2ee.core</li>
<li>org.eclipse.jst.j2ee.ejb</li>
<li>org.eclipse.jst.j2ee.ejb.annotation.model</li>
<li>org.eclipse.jst.j2ee.ejb.annotations.emitter</li>
<li>org.eclipse.jst.j2ee.ejb.annotations.xdoclet</li>
<li>org.eclipse.jst.j2ee.jca</li>
<li>org.eclipse.jst.j2ee.webservice</li>
</ul>

<h4>jst.enterprise_tests.feature</h4>
<ul>
<li>org.eclipse.jst.j2ee.core.tests</li>
<li>org.eclipse.jst.j2ee.core.tests.performance</li>
<li>org.eclipse.jst.j2ee.tests</li>
<li>org.eclipse.jst.j2ee.tests.performance</li>
<li>org.eclipse.jst.validation.sample</li>
<li>org.eclipse.jst.validation.test</li>
<li>org.eclipse.jst.ws.tests</li>
<li>org.eclipse.jst.ws.tests.performance</li>
</ul>

<h4>jst.enterprise-ui.feature</h4>
<ul>
<li>org.eclipse.jst.ejb.ui</li>
<li>org.eclipse.jst.j2ee.ejb.annotations.ui</li>
<li>org.eclipse.jst.j2ee.jca.ui</li>
<li>org.eclipse.jst.j2ee.navigator.ui</li>
<li>org.eclipse.jst.j2ee.ui</li>
<li>org.eclipse.jst.j2ee.webservice.ui</li>
<li>org.eclipse.jst.ws.axis.creation.ui</li>
<li>org.eclipse.jst.ws.consumption</li>
<li>org.eclipse.jst.ws.consumption.ui</li>
<li>org.eclipse.jst.ws.creation.ui</li>
<li>org.eclipse.jst.ws.uddiregistry</li>
<li>org.eclipse.jst.ws.ui</li>
<li>org.eclipse.jst.j2ee.infopop</li>
<li>org.eclipse.jst.ws.axis.infopop</li>
<li>org.eclipse.jst.ws.creation.ejb.ui</li>
</ul>

<h4>jst.enterprise_userdoc.feature</h4>
<ul>
<li>org.eclipse.jst.ejb.doc.user</li>
</ul>

<h4>jst.server_core.feature</h4>
<ul>
<li>org.eclipse.jst.server.core</li>
<li>org.eclipse.jst.server.generic.core</li>
</ul>

<h4>jst.server_product_adapters</h4>
<ul>
<li>org.eclipse.jst.server.generic.serverdefinitions</li>
<li>org.eclipse.jst.server.tomcat.core</li>
<li>org.eclipse.jst.server.tomcat.core.tests</li>
<li>org.eclipse.jst.server.tomcat.tests.performance</li>
<li>org.eclipse.jst.server.tomcat.ui</li>
<li>org.eclipse.jst.server.tomcat.ui.tests</li>
<li>org.eclipse.jst.server.websphere.core</li>
</ul>

<h4>jst.server_tests.feature</h4>
<ul>
<li>org.eclipse.jst.server.core.tests</li>
<li>org.eclipse.jst.server.generic.tests</li>
<li>org.eclipse.jst.server.tomcat.core.tests</li>
<li>org.eclipse.jst.server.tomcat.tests.performance</li>
<li>org.eclipse.jst.server.tomcat.ui.tests</li>
<li>org.eclipse.jst.server.ui.tests</li>
</ul>

<h4>jst.server_ui.feature</h4>
<ul>
<li>org.eclipse.jst.server.generic.ui</li>
<li>org.eclipse.jst.server.ui</li>
<li>org.eclipse.jst.server.ui.infopop</li>
</ul>

<h4>jst.server_userdoc.feature</h4>
<ul>
<li>org.eclipse.jst.server.ui.doc.user</li>
</ul>

<h4>jst.web_core.feature</h4>
<ul>
<li>org.eclipse.jst.common.annotations.controller</li>
<li>org.eclipse.jst.common.annotations.core</li>
<li>org.eclipse.jst.common.frameworks</li>
<li>org.eclipse.jst.common.navigator.java</li>
<li>org.eclipse.jst.j2ee.web</li>
<li>org.eclipse.jst.jsp.core</li>
<li>org.eclipse.jst.ws</li>
<li>org.eclipse.jst.ws.axis.consumption.core</li>
</ul>

<h4>jst.web_tests.feature</h4>
<ul>
<li>org.eclipse.jst.jsp.core.tests</li>
<li>org.eclipse.jst.jsp.tests.encoding</li>
<li>org.eclipse.jst.jsp.ui.tests</li>
<li>org.eclipse.jst.jsp.ui.tests.performance</li>
<li>org.eclipse.jst.servlet.tests</li>
</ul>

<h4>jst.web_ui.feature</h4>
<ul>
<li>org.eclipse.jst.common.annotations.ui</li>
<li>org.eclipse.jst.jsp.ui</li>
<li>org.eclipse.jst.servlet.ui</li>
<li>org.eclipse.jst.ws.axis.consumption.ui</li>
<li>org.eclipse.jst.jsp.ui.infopop</li>
<li>org.eclipse.jst.ws.consumption.infopop</li>
<li>org.eclipse.jst.ws.infopop</li>
</ul>

<h4>wst.xml_core.feature</h4>
<ul>
<li>org.eclipse.wst.dtd.core</li>
<li>org.eclipse.wst.sse.core</li>
<li>org.eclipse.wst.xml.core</li>
<li>org.eclipse.wst.xsd.core</li>
</ul>

<h4>wst.xml_sdk.feature</h4>
<ul>
<li>org.eclipse.wst.xml.source</li>
</ul>

<h4>wst.xml_tests.feature</h4>
<ul>
<li>org.eclipse.wst.dtd.ui.tests</li>
<li>org.eclipse.wst.sse.core.tests</li>
<li>org.eclipse.wst.sse.ui.tests</li>
<li>org.eclipse.wst.sse.ui.tests.performance</li>
<li>org.eclipse.wst.xml.core.tests</li>
<li>org.eclipse.wst.xml.tests.encoding</li>
<li>org.eclipse.wst.xml.ui.tests</li>
<li>org.eclipse.wst.xml.ui.tests.performance</li>
<li>org.eclipse.wst.xml.validation.tests</li>
<li>org.eclipse.wst.xsd.tests.performance</li>
<li>org.eclipse.wst.xsd.validation.tests</li>
</ul>

<h4>wst.xml_third_party_plugins</h4>
<ul>
<li>org.apache.xerces</li>
<li>org.apache.xerces.feature</li>
</ul>

<h4>wst.xml_ui.feature</h4>
<ul>
<li>org.eclipse.wst.dtd.ui</li>
<li>org.eclipse.wst.sse.ui</li>
<li>org.eclipse.wst.xml.ui</li>
<li>org.eclipse.wst.xsd.ui</li>
<li>org.eclipse.wst.dtd.ui.infopop</li>
<li>org.eclipse.wst.sse.ui.infopop</li>
<li>org.eclipse.wst.xml.ui.infopop</li>
</ul>

<h4>wst.xml_userdoc.feature</h4>
<ul>
<li>org.eclipse.wst.dtdeditor.doc.user</li>
<li>org.eclipse.wst.sse.doc.user</li>
<li>org.eclipse.wst.xmleditor.doc.user</li>
<li>org.eclipse.wst.xsdeditor.doc.user</li>
</ul>

<h4>wst.common_core.feature</h4>
<ul>
<li>org.eclipse.wst.command.env</li>
<li>org.eclipse.wst.command.env.core</li>
<li>org.eclipse.wst.common.emf</li>
<li>org.eclipse.wst.common.environment</li>
<li>org.eclipse.wst.common.frameworks</li>
<li>org.eclipse.wst.common.modulecore</li>
<li>org.eclipse.wst.common.project.facet.core</li>
<li>org.eclipse.wst.common.uriresolver</li>
<li>org.eclipse.wst.internet.cache</li>
<li>org.eclipse.wst.validation</li>
</ul>


<h4>wst.common_sdk.feature</h4>
<ul>
<li>org.eclipse.wst.common.isvdoc</li>
<li>org.eclipse.wst.common.sdk.source</li>
</ul>

<h4>wst.common_tests.feature</h4>
<ul>
<li>org.eclipse.wst.common.tests</li>
<li>org.eclipse.wst.common.tests.collector</li>
<li>org.eclipse.wst.common.tests.performance</li>
<li>org.eclipse.wst.common.tests.ui</li>
<li>org.eclipse.wst.internet.cache.tests</li>
</ul>

<h4>wst.common_ui.feature</h4>
<ul>
<li>org.eclipse.wst.command.env.ui</li>
<li>org.eclipse.wst.common.frameworks.ui</li>
<li>org.eclipse.wst.common.navigator.views</li>
<li>org.eclipse.wst.common.navigator.workbench</li>
<li>org.eclipse.wst.common.project.facet.ui</li>
<li>org.eclipse.wst.common.snippets</li>
<li>org.eclipse.wst.common.ui</li>
<li>org.eclipse.wst.common.ui.properties</li>
<li>org.eclipse.wst.internet.proxy</li>
<li>org.eclipse.wst.validation.ui</li>
<li>org.eclipse.wst.common.infopop</li>
</ul>

<h4>wst.common_userdoc.feature</h4>
<ul>
<li>org.eclipse.wst.common.user.doc</li>
</ul>

<h4>wst.rdb_core.feature</h4>
<ul>
<li>org.eclipse.wst.rdb.core</li>
<li>org.eclipse.wst.rdb.data.core</li>
<li>org.eclipse.wst.rdb.models.sql</li>
</ul>

<h4>wst.rdb_product_adapters.feature</h4>
<ul>
<li>org.eclipse.wst.rdb.derby</li>
<li>org.eclipse.wst.rdb.mysql</li>
<li>org.eclipse.wst.rdb.dbdefinition.db2.iseries</li>
<li>org.eclipse.wst.rdb.dbdefinition.db2.luw</li>
<li>org.eclipse.wst.rdb.dbdefinition.db2.zseries</li>
<li>org.eclipse.wst.rdb.dbdefinition.derby</li>
<li>org.eclipse.wst.rdb.dbdefinition.informix</li>
<li>org.eclipse.wst.rdb.dbdefinition.mysql</li>
<li>org.eclipse.wst.rdb.dbdefinition.oracle</li>
<li>org.eclipse.wst.rdb.dbdefinition.sqlserver</li>
<li>org.eclipse.wst.rdb.dbdefinition.sybase</li>
</ul>

<h4>wst.rdb-sdk.feature</h4>
<ul>
<li>org.eclipse.wst.rdb.source</li>
<li>org.eclipse.wst.rdp.isvdoc</li>
</ul>

<h4>wst.rdb_tests.feature</h4>
<ul>
<li>org.eclipse.wst.rdb.tests.performance</li>
</ul>

<h4>wst.rdb_ui.feature</h4>
<ul>
<li>org.eclipse.wst.rdb.connection.ui</li>
<li>org.eclipse.wst.rdb.core.ui</li>
<li>org.eclipse.wst.rdb.data.ui</li>
<li>org.eclipse.wst.rdb.derby.ui</li>
<li>org.eclipse.wst.rdb.fe.ui</li>
<li>org.eclipse.wst.rdb.fe.ui.actions</li>
<li>org.eclipse.wst.rdb.models.dbdefinition</li>
<li>org.eclipse.wst.rdb.models.sql.edit</li>
<li>org.eclipse.wst.rdb.outputview</li>
<li>org.eclipse.wst.rdb.server.extensions</li>
<li>org.eclipse.wst.rdb.server.ui</li>
<li>org.eclipse.wst.rdb.sqleditor</li>
<li>org.eclipse.wst.rdb.sqlscrapbook</li>
<li>org.eclipse.wst.rdb.connection.ui.infopop</li>
<li>org.eclipse.wst.rdb.fe.ui.infopop</li>
<li>org.eclipse.wst.rdb.outputview.infopop</li>
<li>org.eclipse.wst.rdb.server.ui.infopop</li>
<li>org.eclipse.wst.rdb.sqleditor.infopop</li>
<li>org.eclipse.wst.rdb.sqlscrapbook.infopop</li>
</ul>

<h4>wst.rdb_userdoc.feature</h4>
<ul>
<li>org.eclipse.wst.datatools.connection.ui.doc.user</li>
<li>org.eclipse.wst.datatools.fe.ui.doc.user</li>
<li>org.eclipse.wst.datatools.server.ui.doc.user</li>
</ul>

<h4>wst.server_core.feature</h4>
<ul>
<li>org.eclipse.wst.internet.monitor.core</li>
<li>org.eclipse.wst.server.core</li>
</ul>

<h4>wst.server_sdk.feature</h4>
<ul>
<li>org.eclipse.wst.rdb.isvdoc</li>
<li>org.eclipse.wst.server.source</li>
</ul>

<h4>wst.server_tests.feature</h4>
<ul>
<li>org.eclipse.wst.internet.monitor.core.tests</li>
<li>org.eclipse.wst.internet.monitor.ui.tests</li>
<li>org.eclipse.wst.server.core.tests</li>
<li>org.eclipse.wst.server.tests.performance</li>
<li>org.eclipse.wst.server.ui.tests</li>
</ul>

<h4>wst.server_ui.feature</h4>
<ul>
<li>org.eclipse.wst.internet.monitor.ui</li>
<li>org.eclipse.wst.server.ui</li>
<li>org.eclipse.wst.server.ui.infopop</li>
</ul>

<h4>wst.server_userdoc.feature</h4>
<ul>
<li>org.eclipse.wst.server.ui.doc.user</li>
</ul>

<h4>wst.web_core.feature</h4>
<ul>
<li>org.eclipse.wst.common.emfworkbench.integration</li>
<li>org.eclipse.wst.css.core</li>
<li>org.eclipse.wst.html.core</li>
<li>org.eclipse.wst.javascript.core</li>
<li>org.eclipse.wst.web</li>
</ul>

<h4>wst.web_sdk.feature</h4>
<ul>
<li>org.eclipse.wst.web.isv.doc</li>
<li>org.eclipse.wst.web.source</li>
</ul>

<h4>wst.web_tests.feature</h4>
<ul>
<li>org.eclipse.wst.css.core.tests</li>
<li>org.eclipse.wst.css.tests.encoding</li>
<li>org.eclipse.wst.css.ui.tests</li>
<li>org.eclipse.wst.css.ui.tests.performance</li>
<li>org.eclipse.wst.html.core.tests</li>
<li>org.eclipse.wst.html.tests.encoding</li>
<li>org.eclipse.wst.html.ui.tests</li>
<li>org.eclipse.wst.html.ui.tests.performance</li>
</ul>

<h4>wst.web_third_party_plugins</h4>
<ul>
<li>org.eclipse.wst.html.standard.dtds</li>
</ul>

<h4>wst.web_ui.feature</h4>
<ul>
<li>org.eclipse.wst.css.ui</li>
<li>org.eclipse.wst.html.ui</li>
<li>org.eclipse.wst.javascript.ui</li>
<li>org.eclipse.wst.web.ui</li>
<li>org.eclipse.wst.css.ui.infopop</li>
<li>org.eclipse.wst.html.ui.infopop</li>
<li>org.eclipse.wst.javascript.ui.infopop</li>
</ul>

<h4>wst.web_userdoc.feature</h4>
<ul>
<li>org.eclipse.wst.webtools.doc.user</li>
</ul>

<h4>wst.ws_core.feature</h4>
<ul>
<li>org.eclipse.wst.ws</li>
<li>org.eclipse.wst.ws.parser</li>
<li>org.eclipse.wst.wsdl</li>
<li>org.eclipse.wst.wsi</li>
</ul>

<h4>wst.ws_sdk.feature</h4>
<ul>
<li>org.eclipse.wst.webservice.source</li>
</ul>

<h4>wst.ws_tests.feature</h4>
<ul>
<li>org.eclipse.wst.ws.tests</li>
<li>org.eclipse.wst.wsdl.tests</li>
<li>org.eclipse.wst.wsdl.tests.performance</li>
<li>org.eclipse.wst.wsdl.tests.ui</li>
<li>org.eclipse.wst.wsdl.validation.tests</li>
<li>org.eclipse.wst.wsi.tests</li>
</ul>

<h4>jst.ws_third_party_plugins</h4>
<ul>
<li>org.apache.wsil4j</li>
<li>org.uddi4j</li>
<li>org.wsdl4j</li>
<li>org.apache.wsil4j.feature</li>
<li>org.uddi4j.feature</li>
<li>org.wsdl4j.feature</li>
</ul>

<h4>wst.ws_ui.feature</h4>
<ul>
<li>org.eclipse.wst.ws.explorer</li>
<li>org.eclipse.wst.ws.ui</li>
<li>org.eclipse.wst.wsdl.ui</li>
<li>org.eclipse.wst.wsdl.validation</li>
<li>org.eclipse.wst.wsi.ui</li>
<li>org.eclipse.wst.ws.infopop</li>
<li>org.eclipse.wst.wsdl.ui.doc.user</li>
<li>org.eclipse.wst.wsi.ui.doc.user</li>
</ul>

<h4>wst.ws_userdoc.feature</h4>
<ul>
<li>org.eclipse.wst.wsdleditor.doc.user</li>
</ul>





	</body>
</html>




