<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
<link type="text/css" href="../../default_style.css" rel="stylesheet">
<link type="text/css" href="../../webtools/wtp.css" rel="stylesheet">
<title>j2ee standard tools components</title>
</head>
<body>
<table border="0" cellpadding="2" cellspacing="5" width="100%">
<tbody>
<tr>
<td align="left" width="60%"><font class="indextop">jst components</font>
<br>
<font class="indexsub">j2ee standard tools components</font></td><td width="40%"><img src="../../webtools/images/wtplogosmall.jpg" align="middle" height="129" hspace="50" width="207"></td>
</tr>
</tbody>
</table>
<table border="0" cellpadding="2" cellspacing="5" width="100%">
<col width="16">
<col width="*">
<tbody>
<tr>
<td colspan="2" align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">Introduction</font></b></td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<p>
                        This document describes the component structure for the J2EE
                        Standard Tools subproject. As the name of this subproject
                        implies, our scope includes J2EE standards, such as JSP,
                        servlet, EJB and related standards which are defined by the
                        JCP. This is in contrast to the Web Standard Tools
                        subproject whose scope is Web and related standards defined
                        by organizations such as W3C, OASIS, and ANSI. 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 JSP editing
                        and J2EE projects. The other main organizing principle is to
                        create a component for each major framework. For example,
                        there are components for Server tools and the Web service
                        wizard. 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>
</td>
</tr>
<tr>
<td align="right" valign="top"><img src="../../images/Adarrow.gif" border="0" height="16" width="16"></td><td>
                        <a href="http://dev.eclipse.org/viewcvs/index.cgi/jst/components/?cvsroot=WebTools_Project">
                                CVS Repository
                        </a>
                </td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<p>
                        All JST components are stored in the Eclipse CVS repository
                        at dev.eclipse.org in the path
                        /home/webtools/jst/components.
                </p>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<p>
                        The following sections briefly describe the components and
                        their component leads.
                </p>
</td>
</tr>
<tr>
<td colspan="2" align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">Components</font></b></td>
</tr>
<tr>
<td align="right" valign="top"><img src="../../images/Adarrow.gif" border="0" height="16" width="16"></td><td>
                        <a name="assembly">assembly</a>
                </td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<p>
                        The assembly component contains features definitions for
                        building the JST release, its SDK, and its test suite. The
                        component lead is Naci Dai.
                </p>
</td>
</tr>
<tr>
<td align="right" valign="top"><img src="../../images/Adarrow.gif" border="0" height="16" width="16"></td><td>
                        <a name="jstcommon">common</a>
                </td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<p>
                        The common component contains common utilities and
                        infrastructure that does not find its home elsewhere. The
                        component lead is Naci Dai.
                        <ul>
                                
<li>
                                        
<a href="../plans/1.5/jst/j2ee/RC5/test_plan.html">
                                                Current Test Plan
                                        </a>
                                
</li>
                        
</ul>
                
</p>
</td>
</tr>
<tr>
<td align="right" valign="top"><img src="../../images/Adarrow.gif" border="0" height="16" width="16"></td><td>
					<a name="doc">doc</a>
				</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<p>
						The doc component contains the end user and ISV
						documentation for the JST subproject. This includes
						infopops and both Eclipse integrated and online help.
						The component lead is Lawrence Mandel.
						<ul>
							
							
<li>
							
<a href="../plans/1.0/jst/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>
</td>
</tr>
<tr>
<td align="right" valign="top"><img src="../../images/Adarrow.gif" border="0" height="16" width="16"></td><td>
                        <a name="j2ee">j2ee</a>
                </td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<p>
                        The jst project component contains common j2ee models,
                        natures and builders for J2EE projects, and j2ee modules
                        views, wizards, etc. including the new support for flexible
                        project layouts. The component leads are Naci Dai and Chuck
                        Bridgham.
                        <ul>
                                
<li>
                                        
<a href="components/j2ee/j2ee_index.html">
                                                J2EE Main page
                                        </a>
                                
</li>
                                
<li>
                                        
<a href="../plans/1.0/jst/j2ee/M9/milestone_plan.html">
                                                Current Milestone Plan (M9)
                                        </a>
                                
</li>
                                
<li>
                                        
<a href="../plans/1.5/jst/j2ee/RC5/test_plan.html">
                                                Current Test Plan
                                        </a>
                                
</li>
                                
<li>
                                        
<a href="components/j2ee/M5/news/j2ee-news-M5.html">
                                                M5 New and Noteworthy
                                        </a>
                                
</li>
                        
</ul>
                
</p>
</td>
</tr>
<tr>
<td align="right" valign="top"><img src="../../images/Adarrow.gif" border="0" height="16" width="16"></td><td>
                        <a name="jsp">jsp</a>
                </td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<p>
                        The jsp component contains the JSP editor, model, views,
                        wizards, etc. The component lead is David Williams.
                        <ul>
                                
<li>
                                        
<a href="components/jsp/overview.html">
                                                Component Overview
                                        </a>
                                
</li>
                                
<li>
                                        
<a href="../plans/1.0/jst/jsp/M9/milestone_plan.html">
                                                Current Milestone Plan
                                        </a>
                                
</li>
                                
<li>
                                        
<a href="../plans/2.0/jst/jsp/test_plan.php">
                                                Current Test Plan
                                        </a>
                                
</li>
                        
</ul>
                
</p>
</td>
</tr>
<tr>
<td align="right" valign="top"><img src="../../images/Adarrow.gif" border="0" height="16" width="16"></td><td>
                        <a name="servlet">servlet</a>
                </td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<p>
                        The servlet component contains the servlet editors, models,
                        views, wizards, etc. The component lead is Naci Dai.
                        <ul>
                                
<li>
                                        
<a href="components/j2ee/j2ee_index.html">
                                                J2EE Main page(Servlet info found here)
                                        </a>
                                
</li>
                                
<li>
                                        
<a href="../plans/1.5/jst/j2ee/RC5/test_plan.html">
                                                Current Test Plan
                                        </a>
                                
</li>
                        
</ul>
                
</p>
</td>
</tr>
<tr>
<td align="right" valign="top"><img src="../../images/Adarrow.gif" border="0" height="16" width="16"></td><td>
                        <a name="ejb">ejb</a>
                </td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<p>
                        The ejb component contains the ejb editors, models, views,
                        wizards, etc. The component lead is Naci Dai.
                        <ul>
                                
<li>
                                        
<a href="components/j2ee/j2ee_index.html">
                                                J2EE Main page(EJB info found here)
                                        </a>
                                
</li>
                                
<li>
                                        
<a href="../plans/1.5/jst/j2ee/RC5/test_plan.html">
                                                Current Test Plan
                                        </a>
                                
</li>
                        
</ul>
                
</p>
</td>
</tr>
<tr>
<td align="right" valign="top"><img src="../../images/Adarrow.gif" border="0" height="16" width="16"></td><td>
                        <a name="jstserver">server</a>
                </td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<p>
                        The server component contains the J2EE Server Tools
                        framework and adapters for selected popular J2EE servers
                        such as Apache Tomcat. The component leads are Tim deBoer
                        and Gorkem Ercan.
                        <ul>
                                
<li>
                                        
<a href="components/server/index.html">Overview</a>
                                
</li>
                                
<li>
                                        
<a href="../plans/1.0/jst/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>
</td>
</tr>
<tr>
<td align="right" valign="top"><img src="../../images/Adarrow.gif" border="0" height="16" width="16"></td><td>
                        <a name="ws">ws</a>
                </td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<p>
                        The ws component contains the Java Web service wizard and
                        adapters for selected popular J2EE Web service engines such
                        as <a href="http://ws.apache.org/axis/">Apache Axis</a>.
                        The component lead is Chris Brealey.
                        <ul>
							
<li>
								
<a href="components/ws/index.html">Overview</a>
							
</li>
							
<li>
								
<a href="../plans/1.0/jst/ws/M9/milestone_plan.html">Current Milestone Plan</a>
							
</li>
							
<li>
								
<a href="components/ws/1.5M6/test_plan.html">Current Test Plan</a>
							
</li>
                        
</ul>
                
</p>
</td>
</tr>
</tbody>
</table>
</body>
</html>
