blob: 04a0237e55a52a14871567ed90121701613db411 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<faq xmlns="http://www.eclipse.org/webtools/faq"
xmlns:faq="http://www.eclipse.org/webtools/faq"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.eclipse.org/webtools/faq schemas/faq.xsd"
name="wtp committer faq">
<category name="General"/>
<category name="Build/CVS"/>
<category name="Source Code"/>
<category name="Website"/>
<entry id="cvs_1" category="Build/CVS">
<question>What is the CVS info for the webtools project?</question>
<answer>
server : dev.eclipse.org<br/>
path : /cvsroot/webtools
</answer>
</entry>
<entry id="website_1" category="Website">
<question>Who maintains the WTP website?</question>
<answer>
The WTP website is maintained by the WTP committers.<br/>
<br/>
Problems and requests should be submitted by opening a <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Web%20Tools&amp;component=website">bug report</a>.
</answer>
</entry>
<entry id="website_2" category="Website">
<question>How do I update the WTP website?</question>
<answer>
<p>
There are two ways:
<ol>
<li>
Extract the whole website (www/webtools), make your changes, and run
the website build script (build.xml) in the webtools folder. This will
build the whole site and is useful if you need to make changes in more than
one module (see below). The downside is the website is big and can take
a while to extract.
</li>
<li>
The website is broken up into self contained modules such as community, faq, people,
and plans. Extract the module you want to make changes to (such as www/webtools/plans), make your changes,
run the build script (build.xml) included in the module, and commit your changes.
</li>
</ol>
</p>
</answer>
</entry>
<entry id="website_3" category="Website">
<question>What is the CVS info for the webtools website?</question>
<answer>
The WTP website is located in the cvs root for the Eclipse website in
the www/webtools folder.<br /><br />
server : dev.eclipse.org<br/>
path : /cvsroot/org.eclipse
</answer>
</entry>
<entry id="website_4" category="Website">
<question>Why do I see a javax.net.ssl.SSLHandshakeException when building the website?</question>
<answer>
The WTP website requires access to Eclipse's bugzilla system in order to build the plans
section. If you see the following error:<br/>
<br/>
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:
No trusted certificate found<br/>
<br/>
when building the site and using a Sun JRE you should update your JRE to at least
Sun JRE 1.4.2_09.
</answer>
</entry>
<entry id="general_1" category="General">
<question>Who do we contact in order to get commiter passwords reset?</question>
<answer>
You need to contact the Eclipse webmaster at <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a>.
</answer>
</entry>
<entry id="general_2" category="General">
<question>How do I change my dev.eclipse.org password?</question>
<answer>
You can change your password using the committer tools available at <a href="https://dev.eclipse.org/committers/">https://dev.eclipse.org/committers/</a>.
</answer>
</entry>
<entry id="general_3" category="General">
<question>How can I set up a workspace for WTP development/extension?</question>
<answer>
<p>
There are three ways you can set up a workspace to either develop WTP or
develop on the WTP base:
<ol>
<li>
Install WTP and extract only the plug-ins you are interested in.
This method is useful if you are only working with a subset of
WTP functionality or extending WTP.
<ol>
<li>
Download and install the WTP driver you want to work with
from the <a href="http://download.eclipse.org/webtools/downloads/" target="_top">WTP downloads page</a>.
</li>
<li>
Create a new workspace using your installed version of WTP.
</li>
<li>
Extract any plug-ins you need to modify from the WTP CVS repository.
</li>
</ol>
</li>
<li>
Extract the latest version of all the WTP plug-ins using the WTP project set. (This will extract
all of the WTP plug-ins from HEAD.) This method is useful if you want the
most up-to-date version of the WTP plug-ins.
<ol>
<li>
Download the WTP team project set file from <a href="http://www.eclipse.org/webtools/development/team_project_set/wtp.psf" target="_top">http://www.eclipse.org/webtools/development/team_project_set/wtp.psf</a>.
</li>
<li>
In you Eclipse workbench select File->Import->Team Project Set. Select the WTP
team project set file you downloaded and click Finish.<br/>
<br/>
*note: It may take a while for
all the WTP plug-ins to be extracted to your workspace.
</li>
</ol>
</li>
<li>
Extract the WTP plug-in versions from a specific build. This method is useful
if you want to extend or test a specific version of WTP.<br/>
<br/>
*note: this method requires that you have the releng plug-in installed. For information
about this plug-in see the FAQ entry <a href="#cvs_4">Is there a tool for releasing changes?</a>.
<ol>
<li>
Launch Eclipse and create a simple project in your workspace.
</li>
<li>
On the <a href="http://download.eclipse.org/webtools/downloads/" target="_top">WTP downloads page</a>
select the WTP build for which you want to extract all the plug-ins. On the
top of the page for the specific download select map files and save the
file as wtp.map in your simple project.<br/>
<br/>
*note: you may need to refresh your workspace for the file to be visible in it.
</li>
<li>
Right click on wtp.map and select Team > Load Map projects. The plug-in versions from the
build will be extracted to your workspace.<br/><br/>
*note: It may take a while for
all the WTP plug-ins to be extracted to your workspace.
</li>
</ol>
</li>
</ol>
</p>
</answer>
</entry>
<entry id="source_1" category="Source Code">
<question>What copyrights should we use? </question>
<answer>
<p>The copyright statement takes one of these two forms, differing only in the year stated on the first line of text.<br/>
IBM copyrights below are examples only and won't apply to everyone in the community.</p>
<ul>
<li>If the file's year of invention and last year of modification are the same.<br/>
Example:<br/>
/*******************************************************************************<br/>
* Copyright (c) 2005 IBM Corporation and others.<br/>
* All rights reserved. This program and the accompanying materials<br/>
* are made available under the terms of the Eclipse Public License v1.0<br/>
* which accompanies this distribution, and is available at<br/>
* http://www.eclipse.org/legal/epl-v10.html<br/>
*<br/>
* Contributors:<br/>
* IBM Corporation - initial API and implementation<br/>
*******************************************************************************/
</li>
<li>If the file's year of invention and last year of modification are
different...<br/>
Example:<br/>
/*******************************************************************************<br/>
* Copyright (c) 2001,2005 IBM Corporation and others.<br/>
* All rights reserved. This program and the accompanying materials<br/>
* are made available under the terms of the Eclipse Public License v1.0<br/>
* which accompanies this distribution, and is available at<br/>
* http://www.eclipse.org/legal/epl-v10.html<br/>
* <br/>
* Contributors:<br/>
* IBM Corporation - initial API and implementation<br/>
*******************************************************************************/
</li>
</ul>
</answer>
</entry>
<entry id="source_2" category="Source Code">
<question>Is there a tool to update the copyright?</question>
<answer>
<B>org.eclipse.releng.tools </B>plugin from
<a href="http://www.eclipse.org/downloads/index.php">Eclipse download site</a>
allows you to fix copyrights.
</answer>
</entry>
<entry id="source_3" category="Source Code">
<question>What are the package naming conventions?</question>
<answer>
See the <a href="../development/guidelines/naming-conventions.html">WTP project naming
conventions</a>
</answer>
</entry>
<entry id="cvs_2" category="Build/CVS">
<question>How do I add my plugin to the WTP CVS repository?</question>
<answer>
<ol>
<li>On your plugin project select <B>Team-&gt;Share Project...</B> context menu.</li>
<li>Choose existing repository location (or create a new one if you haven't) for
<B>dev.eclipse.org:/home/webtools</B>
</li>
<li>On the next page, if you know exactly where the plugin should be located in the
repository, then select the &quot;Use specified module name&quot; radio button and
type in the full path. However, to be safe, it's recommended browsing the repository
to obtain the correct path, and then adding the module name. Here is an example:<br/>
<br/>
Select the &quot;Use an existing module&quot;.<br/>
Browse and then select the folder where you want your new plugin to reside.<br/>
<br/>
<img border="0" src="images/shareProject1.gif" width="485" height="602"/><br/>
<br/>
Notice that the text field is filled in with the path. Reselect the &quot;Use
specified module name:&quot; radio button, and append your plugin's name.<br/>
<br/>
<img border="0" src="images/shareProject2.gif" width="486" height="602"/>
</li>
</ol>
</answer>
</entry>
<entry id="cvs_3" category="Build/CVS">
<question>Where can I find more information about CVS?</question>
<answer>
The <a href="http://dev.eclipse.org/viewcvs/index.cgi/?cvsroot=WebTools_Project">WTP
CVS respository page</a> contains links to useful CVS documentation including how to
use Eclipse with CVS.
</answer>
</entry>
<entry id="cvs_4" category="Build/CVS">
<question>Is there a tool for releasing changes?</question>
<answer>
Yes. The releng tool plugin is available from the <a href="http://www.eclipse.org/downloads" target="_top">Eclipse download page</a>. Each version
of Eclipse contains its own releng tool plugin. Select the version of Eclipse you're
using. The releng tool plugin is found at the bottom of the page.
</answer>
</entry>
<entry id="cvs_5" category="Build/CVS">
<question>How do I release my changes?</question>
<answer>
<ol>
<li>
Commit your changes to the CVS repository. (For information about
CVS and committing see the FAQ entry <a href="#cvs_3">Where can I find more information about CVS?</a>)
</li>
<li>
Extract the releng project from the CVS repository. This project contains the
map files.
</li>
<li>
<b>
*note: It is strongly recommended that you use the releng tool to release
your changes.
</b>
<p>
You now have to tag your source files and update the corresponding map entries.
Although you can do this manually it is much easier and less error prone to use
the releng tool. (See FAQ entry <a href="#cvs_4">Is there a tool for releasing
changes?</a>)
</p>
<ol>
<li>
Select the plug-in you want to release, right click on it and select Team->Release as shown below.<br /><br />
<img src="images/releasemenu.gif"/>
</li>
<li>
Select the releng project as the map project. Click Next.
</li>
<li>
If not already selected, select the plug-ins you want to release. Click Next.
</li>
<li>
The page displays the changes between the last released version of the plug-in
and what is in HEAD. Review the changes. If everything is correct, click Next.
</li>
<li>
Enter the tag you want to use to release the changes. WTP uses tags of the form
vYYYYMMDD_HHMM. Click Next.
</li>
<li>
The page displays the changes to the map files. Review the changes. If everything
is correct, click Next.
</li>
<li>
Enter a comment for the release operation and click Finish.
</li>
</ol>
</li>
</ol>
</answer>
</entry>
<entry id="cvs_6" category="Build/CVS">
<question>What do I need to do before releasing changes?</question>
<answer>
<p>
It depends. If you're releasing an isolated fix, you're probably safe to run the
JUnit tests for the plugin and, if all pass, release your fix. If you're making
a breaking provisional API change (remember, you cannot make breaking API changes)
you should announce the change to the WTP dev list advising
what has changed, why, and how existing consumers of the provisional API can
adapt their plugins to the change.
</p>
<p>
It is also good practice to use a current WTP development driver when making
changes so as not to cause a break in your plugin due to changes in other
plugins.
</p>
</answer>
</entry>
<entry id="cvs_7" category="Build/CVS">
<question>How do I add a new plugin to WTP?</question>
<answer>
<p>
<b>Follow this proceduce closely. Mistakes will likely cause a build breakage.</b><br/>
There are three tasks to add a new plugin to WTP:
<ol>
<li>
Commit your new plug-in to the CVS repository. See <a href="#cvs_2">How do I add my plugin to the WTP CVS repository?</a>
</li>
<li>
<p>
Add your plugin to the appropriate feature. Features are located under the
subproject's assembly component. For example, for WST you can find features
at wst/components/assembly/features.
</p>
<p>
A feature entry will look like the following:<br />
<br />
&lt;plugin<br />
&#160;&#160;&#160;&#160;id="org.eclipse.wst.common.uriresolver"<br />
&#160;&#160;&#160;&#160;download-size="0"<br />
&#160;&#160;&#160;&#160;install-size="0"<br />
&#160;&#160;&#160;&#160;version="0.0.0"/&gt;<br />
</p>
<p>
After you've added your plugin to the feature, commit the changes
and release the feature.
</p>
</li>
<li>
Add your plugin to the appropriate map file. Map files are located in the
releng component. A map file entry will look like the following:<br />
<br/>
plugin@org.eclipse.wst=v20050718_2336,:pserver:anonymous@dev.eclipse.org:/home/webtools,,wst/components/assembly/plugins/org.eclipse.wst<br />
<br />
After updating the map file commit it to the repository.
</li>
<li>
<p>
Your plugin is now in the repository, included in a feature, and included
in a map. Now release your plugin.
</p>
</li>
</ol>
</p>
</answer>
</entry>
<entry id="cvs_8" category="Build/CVS">
<question>How do I jar my plug-in?</question>
<answer>
<p>
First of all, jarring is not an option for every plug-in. If your plugin contains
multiple jars you can't jar your plug-in.
</p>
<p>
There are a three steps to jarring your plugin:
<ol>
<li>
Update your plug-in's build.properties file to include the source.. and
output.. keys as well as "." for bin.includes and src.includes as follows:<br />
<br />
source.. = src/<br />
output.. = bin/<br />
bin.includes = plugin.xml,\<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;META-INF/,\<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;.,\<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;plugin.properties,\<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;about.html<br />
src.includes = exsd/,\<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;.,\<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;build.properties<br />
</li>
<li>
Update your plug-in's manifest (MANIFEST.MF) by removing the line beginning with "Bundle-ClassPath".
</li>
<li>
Update the feature entry for your plugin to include the unpack=false attribute.<br />
<br />
&lt;plugin<br />
&#160;&#160;&#160;&#160;id="org.eclipse.wst.common.uriresolver"<br />
&#160;&#160;&#160;&#160;download-size="0"<br />
&#160;&#160;&#160;&#160;install-size="0"<br />
&#160;&#160;&#160;&#160;version="0.0.0"<br />
&#160;&#160;&#160;&#160;unpack="false"/&gt;
</li>
</ol>
</p>
</answer>
</entry>
<entry id="cvs_9" category="Build/CVS">
<question>How do I delete folders from the CVS repository?</question>
<answer>
<p>
First of all, folders should not normally be deleted from the CVS repository. The
repository is meant to contain the history of WTP development. That said, you may
have reason to delete a folder such as you committed a folder with the incorrect name,
or committed to the wrong location. In these cases:
<ol>
<li>
Delete the content from the folder. The content will show up in the Web view
under the attic folder.
</li>
<li>
Commit an obsolete.txt file in the folder. The file should contain the reasons
why the folder is obsolete.
</li>
<li>
Request that the Eclipse webmaster delete the folder. Requests can be made by sending
the webmaster an e-mail to <a href="mailto:webmaster@eclipse.org">webmaster@eclipse.org</a>.
</li>
</ol>
</p>
</answer>
</entry>
<entry id="source_4" category="Source Code">
<question>What comment should I use when declaring public provisional API?</question>
<answer>
<p>
The following comment should be placed in each provisional API class description:<br />
<br />
* &lt;p&gt;<br />
* &lt;b&gt;Note:&lt;/b&gt; This class/interface is part of an interim API that is still under development and expected to<br />
* change significantly before reaching stability. It is being made available at this early stage to solicit feedback<br />
* from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken<br />
* (repeatedly) as the API evolves.<br />
* &lt;/p&gt;
</p>
<p>
See the WST <a href="http://dev.eclipse.org/viewcvs/index.cgi/wst/components/server/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IModule.java?rev=1.12&amp;cvsroot=WebTools_Project&amp;content-type=text/vnd.viewcvs-markup" target="_top">Server core plugin</a> for an example.
</p>
</answer>
</entry>
<entry id="source_5" category="Source Code">
<question>What is the proper use of Javadoc @since tags?</question>
<answer>
<p>
When you add a package or class to the API, include a single package or class level @since tag, e.g. @since 1.0.
</p>
<p>
When you add a method to an existing API class, add a method level @since tag.
</p>
<p>
These rules minimize the number of @since tags you need to include. The
reference for the use of Javadoc in general is available
<a href="http://java.sun.com/j2se/javadoc/writingdoccomments/ " target="_top">here</a>.
</p>
</answer>
</entry>
<entry id="general_4" category="General">
<question>What is the correct usage of severity when opening a WTP bug?</question>
<answer>
<p>
Although this is somewhat of a judgement call, you should use the standard
definitions found <a href="https://bugs.eclipse.org/bugs/bug_status.html#bug_severity" target="_top">here</a>.
</p>
<p>
Component owners should double check open Blocker/Critical/Major bugs to
make sure they are accurately described.
</p>
<p>
Although a user may feel strongly about their favourite bug, we should still
classify it correctly. We do have some leeway in assigning it a priority,
i.e. if we feel that a bug should be fixed, we can up its priority. P1 should
be reserved for release-defining functions, .i.e we stop ship if P1's are not
fixed.
</p>
</answer>
</entry>
<entry id="general_components" category="General">
<question>
How do I help users assign WTP bugs to the correct component?
</question>
<answer>
When users assign a WTP bug to the wrong component, you should
assign it to the correct component and paste in the following
message as a comment:
<pre>
Thank you for reporting this bug. I have assigned to the correct component.
For guidance on how to select the correct component in future bug reports, please refer to:
https://bugs.eclipse.org/bugs/describecomponents.cgi?product=Web+Tools
</pre>
</answer>
</entry>
</faq>