blob: bb464f0a4c391b241624cf14e869bd37cb83c488 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html >
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../../..//default_style.css" type="text/css">
<link rel="stylesheet" href="../../../..//webtools/wtp.css" type="text/css">
<title>WTP Tutorials - Developing the WTP with Eclipse</title>
</head>
<body>
<table width="100%" cellspacing="5" cellpadding="2" border="0">
<tbody>
<tr>
<td width="60%" align="left"><font class="indextop">WTP Tutorials - Developing the WTP with Eclipse</font>
<br>
<font class="indexsub">WTP Tutorials - Developing the WTP with Eclipse</font></td><td width="40%"><img width="207" hspace="50" height="129" align="middle" src="../../../..//webtools/images/wtplogosmall.jpg"></td>
</tr>
</tbody>
</table>
<table width="100%" cellspacing="5" cellpadding="2" border="0">
<col width="16">
<col width="*">
<tbody>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
<b>By Mark Hutchinson, IBM</b>
<BR>
Last updated on May 23, 2011 by <b>Nitin Dahyabhai</b>
<BR>
<BR>
</p>
</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
This tutorial shows you how to set up your Eclipse
environment to develop or modify the Web Tools Platform (WTP) project plug-ins. First
we will discuss how to connect to the CVS repository to check
out the WTP source code. We will then set up our Target Platform.
Next we will make a modification to the WTP source and run
our Eclipse Application. Finally, we will create a patch
for our change, which we could submit to the WTP project.
</p>
<p>
To follow this tutorial, you will need either the <a
href="http://download.eclipse.org/eclipse/downloads/"
>Eclipse SDK</a> or otherwise have the Eclipse Plug-in Development
Environment (PDE) installed. It will also be much simpler if WTP is
already properly installed and running. <b>Use of the versions of Eclipse and the
Prerequisites listed on the <a
href="http://download.eclipse.org/webtools/downloads/"
>download</a> page is strongly encouraged.</b> A working knowledge of Eclipse
concepts such as the Workbench, Editors, and Views, is also required.
For more information about these concepts, consult the <i>Workbench
User Guide</i>.
</p></td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<br>
</td>
</tr>
<tr>
<td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font face="Arial,Helvetica" color="#ffffff">Getting the Source Code</font></b></td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<ol>
<li>
Access the source code for the Eclipse Web Tools Platform
from the Concurrent Version System (CVS) repository.
To access the CVS repository select <b>Window &gt; Open
Perspective &gt; Other</b>
and select <b>CVS Repository Exploring</b>.
<br>
<br>
</li>
<li>
The
<b>CVS Repositories</b> view is now on the left side of your
screen. Select the Add CVS Repository icon
<img src="images/addrepositoryicon.gif" alt="Add Repository Icon" width="25" height="23" border="0">
and in the Add CVS repository dialog enter the following values:
<br>
<b>Host:</b>
dev.eclipse.org
<br>
<b>Repository Path:</b>
/cvsroot/webtools
<br>
<b>User:</b>
anonymous
<br>
<b>Password:</b>
You can leave this blank, but it's courteous to use your email address.
<br>
<b>Connection type:</b>
pserver, on the default port
<br>
<img src="images/addrepository.png" width="436" height="538" border="0" alt="Add CVS Repository">
<br>
Select Finish.
<br>
<br>
</li>
<li>
Navigate through the folders and find the plug-ins that you
are interested in having the source for. The most recent
code is in HEAD. The subprojects listed on the
<a href="http://www.eclipse.org/webtools/">WTP</a> home page
each have an area in the WTP CVS repository under which you'll
find their features, plug-ins, documentation, examples, and other
development goodies. For this tutorial we will modify the XML
UI plug-in, <b>org.eclipse.wst.xml.ui</b>, which is part of WTP's
Source Editing project.
The corresponding workspace project's folder can be found in the CVS repository as
<b>sourceediting/plugins/org.eclipse.wst.xml.ui</b> under HEAD.
<br>
<br>
</li>
<li>
Add the source into your local workspace by choosing <b>Check Out</b> from its context menu.
<br>
<img src="images/repositories.gif" alt="check out source code" width="583" height="883" border="0">
<br>
<br>
</li>
<li>Switch back to the Java perspective. The plug-in will now be a project
in your workspace. Although not runnable in this form, Plug-in Projects
such as this fill many a Committer's workspace.</li>
</ol>
</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<br>
</td>
</tr>
<tr>
<td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font face="Arial,Helvetica" color="#ffffff">Using a Target Platform</font></b></td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
The <b>Target Platform</b> contains the Eclipse plug-ins
which your workspace projects
will be compiled against. Having all of your own plug-ins as well as their dependencies
in your workspace as plug-in projects means Eclipse will be spending time on code you aren't
actively working on.
A well prepared Target
Platform prevents this but still allows you to compile and run your modified code,
all while using fewer resources. The default target platform is the Eclipse installation you
are using. For more information on setting up Target Platforms, consult the <i>Plug-in Development Environment Guide</i>.
</p>
</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<br>
</td>
</tr>
<tr>
<td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font face="Arial,Helvetica" color="#ffffff">Making your changes</font></b></td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
As an example, we are going to add a new action to the context menu
on XML files in the Navigator view. First we need to add an <b>extension</b>
to the plugin.xml file.
</p>
</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<ol>
<li>
Open the <b>plugin.xml</b> file for the
<b>org.eclipse.wst.xml.ui</b> plug-in project you just checked out.
<br>
<br>
</li>
<li>
Add the following to the source of plugin.xml:
<pre>
&lt;!-- =============================================================================== --&gt;
&lt;!-- My Popup Menu (the label value is externalized to allow for translations) --&gt;
&lt;!-- =============================================================================== --&gt;
&lt;extension point="org.eclipse.ui.popupMenus"&gt;
&lt;objectContribution
objectClass="org.eclipse.core.resources.IFile"
nameFilter="*.xml"
id="org.eclipse.wst.xml.ui.actions"&gt;
&lt;action
label="%SHOW_MESSAGE_DIALOG_LABEL"
class="org.eclipse.wst.xml.ui.internal.actions.MyMessageDialog"
menubarPath="#additions"
adaptable="true"
enablesFor="1"
id="org.eclipse.wst.xml.ui.actions.PopUp" /&gt;
&lt;/objectContribution&gt;
&lt;/extension&gt;
</pre>
</li>
<li>Add the following to the <b>plugin.properties</b> file. This will be the
text of the label that appears in your new pop-up menu.
<pre>
#Label to be added to the pop-up menu
SHOW_MESSAGE_DIALOG_LABEL = Show a Message Dialog
</pre>
<br>
</li>
<li>
In the <b>Project Explorer</b> or <b>Package Explorer</b> expand "src" and right click on
org.eclipse.wst.xml.ui.internal.actions and select New Class.
<img src="images/newclass.png" alt="invoking the New Class wizard">
<br>
<br>
Name this class <b>MyMessageDialog</b>.
<br>
<br>
</li>
<li>
Add this source code to MyMessageDialog.java:
<pre>
package org.eclipse.wst.xml.ui.internal.actions;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.actions.ActionDelegate;
public class MyMessageDialog extends ActionDelegate {
public void run(IAction action) {
Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
String labels[] = new String[1];
labels[0] = "OK";
MessageDialog message = new MessageDialog(shell, "My Message Dialog", null, "I have modified eclipse!", 2, labels, 1);
message.open();
}
}
</pre>
</li>
</ol>
</td>
</tr>
<tr>
<td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font face="Arial,Helvetica" color="#ffffff">Running with your changes</font></b></td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<ol>
<li>
In the Java perspective, from the menu bar select <b>Run</b> &gt; <b>Run Configurations...</b>.
<br>
<br>
</li>
<li>
In the Run dialog select the <b>Eclipse Application</b> option,
then select new.
<br>
<br>
</li>
<li>
Enter the location of the desired workspace (or accept the default), and select <b>Run</b>.
<br>
<img src="images/run.gif" alt="run" width="800" height="640" border="0">
</li>
</ol>
</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
When this Eclipse Application is run, it's essentially running the configured Target
Platform, except that the plug-in projects in your
workspace are used instead of the corresponding plug-ins in the target.
</p>
</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>Now test out your modification:</p>
</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<ol start="4">
<li>
We need a project in the workspace to test this on. Select
<b>File &gt; New &gt; Example &gt; Editing and Validating XML Files</b>.
<br>
<br>
</li>
<li>
Right click on any XML file, for example Invoice.xml. Notice
that the new option "Show Message Dialog" has been
added to this menu.
<br>
<img src="images/myaction.png" alt="menu" border="0" width="388" height="488">
<br>
<br>
</li>
<li>
Select "Show a Message Dialog." A message dialog appears.
<br>
<img src="images/dialog.png" alt="My Message Dialog" border="0" width="441" height="136">
</li>
</ol>
</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<br>
</td>
</tr>
<tr>
<td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font face="Arial,Helvetica" color="#ffffff">Creating a Patch for your Modification</font></b></td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
To contribute an enhancement to WTP, you can submit
your code changes as a patch.
</p>
</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<ol>
<li>In the Project or Package Explorer view, right click on the modified Plug-in
Project and select Team &gt; Create Patch.
<br>
<img src="images/createpatchmenu.png" alt="select Team > Create Patch" >
<br>
<br>
</li>
<li>Select "Save in File System" and enter the file name. Select Next.
<br>
<img src="images/createpatch.png" alt="Create Patch" >
<br>
<br>
</li>
<li>Ensure the Diff Output Format is set to "unified." Select Finish.<br>
<br>
</li>
<li>The patch has been saved to your file system. If this were an actual feature
enhancement the patch could be submitted to the WTP project as an attachment using
<a href="https://bugs.eclipse.org/bugs/">
Bugzilla
</a>.
</li>
</ol>
</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<br>
</td>
</tr>
<tr>
<td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font face="Arial,Helvetica" color="#ffffff">Summary</font></b></td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>In this tutorial you learned how to set up your Eclipse environment to get started developing
Web Tools Platform plug-ins by creating a simple addition to the user interface.
</p>
</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p></p>
</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p></p>
</td>
</tr>
</tbody>
</table>
</body>
</html>