<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><link type="text/css" href="../../../default_style.css" rel="stylesheet"><link type="text/css" href="../../../webtools/wtp.css" rel="stylesheet"><title>wtp project naming conventions</title></head><body><table border="0" cellpadding="2" cellspacing="5" width="100%"><tbody><tr><td align="left" width="60%"><font class="indextop">naming conventions</font><br><font class="indexsub">wtp project naming conventions</font></td><td width="40%"><img src="../../../webtools/images/wtplogosmall.jpg" align="middle" height="129" hspace="50" width="207" alt="WTP Logo" usemap="logomap"><map id="logomap" name="logomap"><area coords="0,0,207,129" href="/webtools/" alt="WTP Home"></map></td></tr></tbody></table><table border="0" cellpadding="2" cellspacing="5" width="100%"><col width="16"><col width="*"><tbody><tr><td align="right" valign="top">
                &nbsp;
            </td><td valign="top"><em>Updated 2004-11-05</em></td></tr><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 summarizes the WTP project naming conventions for plug-ins, packages, and CVS modules.</p></td></tr><tr><td align="right" valign="top"><img src="../../../images/Adarrow.gif" border="0" height="16" width="16"></td><td>Plug-ins and Packages</td></tr><tr><td align="right" valign="top">
                &nbsp;
            </td><td valign="top"><p>One of the main goals of this naming convention is to make it easy to find the component that any class belongs to. This is achieved by adopting the convention of putting the component name in the package or plug-in name, preferably as the fourth component.</p></td></tr><tr><td align="right" valign="top">
                &nbsp;
            </td><td valign="top"><p>
            The
            <a target="_top" href="http://help.eclipse.org/help30/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/misc/naming.html">
                Eclipse Platform Naming Conventions
            </a>
            state that following org.eclipse, the third component of the package or plug-in name should be the subproject name, which in our case is wst or jst. The fourth component is the component name, e.g. xml or jsp, unless the code is non-API which is signalled by the use of one of the
            following reserved words:
        </p></td></tr><tr><td align="right" valign="top">
                &nbsp;
            </td><td valign="top"><ul>
            <li>internal - code internal to the plug-in, i.e. not part of its API</li>
            <li>examples - example code</li>
            <li>tests - test cases</li>
        </ul></td></tr><tr><td align="right" valign="top">
                &nbsp;
            </td><td valign="top"><p>If one of the reserved works appears as the fourth part of the name, then the fifth part should be the component name.</p></td></tr><tr><td align="right" valign="top">
                &nbsp;
            </td><td valign="top"><p>
            In the WTP project we are relaxing this convention so that the reserved word may appear after the fourth component. For example, org.eclipse.wst.xml.tests indicates test cases that are used for the xml component of the wst subproject. The prefered usage is to put the reserved names in
            the fifth position, leaving the fourth position for the component name.
        </p></td></tr><tr><td align="right" valign="top">
                &nbsp;
            </td><td valign="top"><p>Consider the following examples for the server component of the wst subproject:</p></td></tr><tr><td align="right" valign="top">
                &nbsp;
            </td><td valign="top"><ul>
            <li>org.eclipse.server.ui.internal.debug - OK and the preferred naming</li>
            <li>org.eclipse.server.internal.ui.debug - OK for compatibility with Eclipse platform guidelines, but not preferred</li>
            <li>org.eclipse.server.ui.debug.internal - OK but not preferred</li>
            <li>org.eclipse.ui.debug.internal - WRONG since the component name is missing</li>
        </ul></td></tr><tr><td align="right" valign="top"><img src="../../../images/Adarrow.gif" border="0" height="16" width="16"></td><td>CVS Modules</td></tr><tr><td align="right" valign="top">
                &nbsp;
            </td><td valign="top"><p>
            The WTP project
            <a href="http://dev.eclipse.org/viewcvs/index.cgi/?cvsroot=WebTools_Project">CVS</a>
            repository is organized as follows. The top level folder is the subproject name, i.e. wst or jst. The second level contains a components folders. The components folder contains one folder per component, e.g. xml or jsp. Each component folder contains the following folders:
        </p></td></tr><tr><td align="right" valign="top">
                &nbsp;
            </td><td valign="top"><ul>
            <li>features - the component features</li>
            <li>plugins - the comnponent plug-ins</li>
            <li>tests - the component test suites packaged as plug-ins</li>
        </ul></td></tr><tr><td align="right" valign="top">
                &nbsp;
            </td><td valign="top"><p>Any of the features, plugins, and tests folders may be absent if they do not apply to the component.</p></td></tr><tr><td align="right" valign="top">
                &nbsp;
            </td><td valign="top"><p>
            For example, the
            <a href="http://dev.eclipse.org/viewcvs/index.cgi/wst/components/server/?cvsroot=WebTools_Project">server</a>
            component of the wst subproject is organized as follows:
            <ul>
                <li>
                    wst
                    <ul>
                        <li>
                            components
                            <ul>
                                <li>
                                    server
                                    <ul>
                                        <li>features</li>
                                        <li>plugins</li>
                                        <li>tests</li>
                                    </ul>
                                </li>
                            </ul>
                        </li>
                    </ul>
                </li>
            </ul>
        </p></td></tr></tbody></table></body></html>