* DLTK Mylyn integration
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/.cvsignore b/mylyn/features/org.eclipse.dltk.mylyn-feature/.cvsignore
new file mode 100644
index 0000000..ba077a4
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/.cvsignore
@@ -0,0 +1 @@
+bin
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/.project b/mylyn/features/org.eclipse.dltk.mylyn-feature/.project
new file mode 100644
index 0000000..54163ad
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.dltk.mylyn-feature</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.FeatureBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.FeatureNature</nature>
+	</natures>
+</projectDescription>
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/build.properties b/mylyn/features/org.eclipse.dltk.mylyn-feature/build.properties
new file mode 100644
index 0000000..1db758e
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/build.properties
@@ -0,0 +1,13 @@
+###############################################################################
+# Copyright (c) 2005, 2007 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+bin.includes = feature.xml,\
+               eclipse_update_120.jpg,\
+               epl-v10.html,\
+               feature.properties,\
+               license.html
+root=rootfiles
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/eclipse_update_120.jpg b/mylyn/features/org.eclipse.dltk.mylyn-feature/eclipse_update_120.jpg
new file mode 100644
index 0000000..68e3e02
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/eclipse_update_120.jpg
Binary files differ
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/epl-v10.html b/mylyn/features/org.eclipse.dltk.mylyn-feature/epl-v10.html
new file mode 100644
index 0000000..ed4b196
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/epl-v10.html
@@ -0,0 +1,328 @@
+<html xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
+<meta name=ProgId content=Word.Document>
+<meta name=Generator content="Microsoft Word 9">
+<meta name=Originator content="Microsoft Word 9">
+<link rel=File-List
+href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
+<title>Eclipse Public License - Version 1.0</title>
+<!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+  <o:Revision>2</o:Revision>
+  <o:TotalTime>3</o:TotalTime>
+  <o:Created>2004-03-05T23:03:00Z</o:Created>
+  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
+  <o:Pages>4</o:Pages>
+  <o:Words>1626</o:Words>
+  <o:Characters>9270</o:Characters>
+   <o:Lines>77</o:Lines>
+  <o:Paragraphs>18</o:Paragraphs>
+  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
+  <o:Version>9.4402</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:WordDocument>
+  <w:TrackRevisions/>
+ </w:WordDocument>
+</xml><![endif]-->
+<style>
+<!--
+ /* Font Definitions */
+@font-face
+	{font-family:Tahoma;
+	panose-1:2 11 6 4 3 5 4 4 2 4;
+	mso-font-charset:0;
+	mso-generic-font-family:swiss;
+	mso-font-pitch:variable;
+	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
+ /* Style Definitions */
+p.MsoNormal, li.MsoNormal, div.MsoNormal
+	{mso-style-parent:"";
+	margin:0in;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p
+	{margin-right:0in;
+	mso-margin-top-alt:auto;
+	mso-margin-bottom-alt:auto;
+	margin-left:0in;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.BalloonText, li.BalloonText, div.BalloonText
+	{mso-style-name:"Balloon Text";
+	margin:0in;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:8.0pt;
+	font-family:Tahoma;
+	mso-fareast-font-family:"Times New Roman";}
+@page Section1
+	{size:8.5in 11.0in;
+	margin:1.0in 1.25in 1.0in 1.25in;
+	mso-header-margin:.5in;
+	mso-footer-margin:.5in;
+	mso-paper-source:0;}
+div.Section1
+	{page:Section1;}
+-->
+</style>
+</head>
+
+<body lang=EN-US style='tab-interval:.5in'>
+
+<div class=Section1>
+
+<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
+</p>
+
+<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
+THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
+REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
+OF THIS AGREEMENT.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+in the case of the initial Contributor, the initial code and documentation
+distributed under this Agreement, and<br clear=left>
+b) in the case of each subsequent Contributor:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+changes to the Program, and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+additions to the Program;</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
+such changes and/or additions to the Program originate from and are distributed
+by that particular Contributor. A Contribution 'originates' from a Contributor
+if it was added to the Program by such Contributor itself or anyone acting on
+such Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in conjunction
+with the Program under their own license agreement, and (ii) are not derivative
+works of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
+entity that distributes the Program.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
+claims licensable by a Contributor which are necessarily infringed by the use
+or sale of its Contribution alone or when combined with the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
+distributed in accordance with this Agreement.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
+receives the Program under this Agreement, including all Contributors.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+Subject to the terms of this Agreement, each Contributor hereby grants Recipient
+a non-exclusive, worldwide, royalty-free copyright license to<span
+style='color:red'> </span>reproduce, prepare derivative works of, publicly
+display, publicly perform, distribute and sublicense the Contribution of such
+Contributor, if any, and such derivative works, in source code and object code
+form.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
+patent license under Licensed Patents to make, use, sell, offer to sell, import
+and otherwise transfer the Contribution of such Contributor, if any, in source
+code and object code form. This patent license shall apply to the combination
+of the Contribution and the Program if, at the time the Contribution is added
+by the Contributor, such addition of the Contribution causes such combination
+to be covered by the Licensed Patents. The patent license shall not apply to
+any other combinations which include the Contribution. No hardware per se is
+licensed hereunder. </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
+Recipient understands that although each Contributor grants the licenses to its
+Contributions set forth herein, no assurances are provided by any Contributor
+that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient
+for claims brought by any other entity based on infringement of intellectual
+property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility
+to secure any other intellectual property rights needed, if any. For example,
+if a third party patent license is required to allow Recipient to distribute
+the Program, it is Recipient's responsibility to acquire that license before
+distributing the Program.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
+Each Contributor represents that to its knowledge it has sufficient copyright
+rights in its Contribution, if any, to grant the copyright license set forth in
+this Agreement. </span></p>
+
+<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
+Program in object code form under its own license agreement, provided that:</span>
+</p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it complies with the terms and conditions of this Agreement; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+its license agreement:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title
+and non-infringement, and implied warranties or conditions of merchantability
+and fitness for a particular purpose; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+effectively excludes on behalf of all Contributors all liability for damages,
+including direct, indirect, special, incidental and consequential damages, such
+as lost profits; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
+states that any provisions which differ from this Agreement are offered by that
+Contributor alone and not by any other party; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
+states that source code for the Program is available from such Contributor, and
+informs licensees how to obtain it in a reasonable manner on or through a
+medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
+
+<p><span style='font-size:10.0pt'>When the Program is made available in source
+code form:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it must be made available under this Agreement; and </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
+copy of this Agreement must be included with each copy of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
+copyright notices contained within the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
+originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution. </span></p>
+
+<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
+
+<p><span style='font-size:10.0pt'>Commercial distributors of software may
+accept certain responsibilities with respect to end users, business partners
+and the like. While this license is intended to facilitate the commercial use
+of the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes the
+Program in a commercial product offering, such Contributor (&quot;Commercial
+Contributor&quot;) hereby agrees to defend and indemnify every other
+Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
+costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
+legal actions brought by a third party against the Indemnified Contributor to
+the extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor
+to control, and cooperate with the Commercial Contributor in, the defense and
+any related settlement negotiations. The Indemnified Contributor may participate
+in any such claim at its own expense.</span> </p>
+
+<p><span style='font-size:10.0pt'>For example, a Contributor might include the
+Program in a commercial product offering, Product X. That Contributor is then a
+Commercial Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance claims and
+warranties are such Commercial Contributor's responsibility alone. Under this
+section, the Commercial Contributor would have to defend claims against the
+other Contributors related to those performance claims and warranties, and if a
+court requires any other Contributor to pay any damages as a result, the
+Commercial Contributor must pay those damages.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and distributing the
+Program and assumes all risks associated with its exercise of rights under this
+Agreement , including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs or
+equipment, and unavailability or interruption of operations. </span></p>
+
+<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
+THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
+
+<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
+or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without
+further action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.</span> </p>
+
+<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
+against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with
+other software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the date
+such litigation is filed. </span></p>
+
+<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
+shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable
+period of time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive. </span></p>
+
+<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
+copies of this Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The Agreement
+Steward reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement Steward has
+the right to modify this Agreement. The Eclipse Foundation is the initial
+Agreement Steward. The Eclipse Foundation may assign the responsibility to
+serve as the Agreement Steward to a suitable separate entity. Each new version
+of the Agreement will be given a distinguishing version number. The Program
+(including Contributions) may always be distributed subject to the version of
+the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program
+(including its Contributions) under the new version. Except as expressly stated
+in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.</span> </p>
+
+<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
+State of New York and the intellectual property laws of the United States of
+America. No party to this Agreement will bring a legal action under this
+Agreement more than one year after the cause of action arose. Each party waives
+its rights to a jury trial in any resulting litigation.</span> </p>
+
+<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+</div>
+
+</body>
+
+</html>
\ No newline at end of file
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/feature.properties b/mylyn/features/org.eclipse.dltk.mylyn-feature/feature.properties
new file mode 100644
index 0000000..3cf0c14
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/feature.properties
@@ -0,0 +1,122 @@
+###############################################################################
+# Copyright (c) 2005, 2007 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+
+# "featureName" property - name of the feature
+featureName=Dynamic Languages Toolkit - Mylyn Integration
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse.org
+
+# "updateSiteName" property - label for the update site
+updateSiteName=Dynamic Languages Toolkit Update Site
+
+# "description" property - description of the feature
+description=Tools for mylyn Developers
+
+# "licenseURL" property - URL of the "Feature License"
+# do not translate value - just change to point to a locale-specific HTML page
+licenseURL=license.html
+
+# ==============================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# The above properties have been shipped for translation.
+# ==============================================================================
+
+# "license" property - text of the "Feature Update License"
+# should be plain text version of license agreement pointed to be "licenseURL"
+license=\
+ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
+January 28, 2004\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
+is provided to you under the terms and conditions of the Eclipse Public\n\
+License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
+Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse.org CVS\n\
+repository ("Repository") in CVS modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments\n\
+("Fragments"), and features ("Features"). A Feature is a bundle of one or\n\
+more Plug-ins and/or Fragments and associated material. Files named\n\
+"feature.xml" may contain a list of the names and version numbers of the\n\
+Plug-ins and/or Fragments associated with a Feature. Plug-ins and Fragments\n\
+are located in directories named "plugins" and Features are located in\n\
+directories named "features".\n\
+\n\
+Features may also include other Features ("Included Features"). Files named\n\
+"feature.xml" may contain a list of the names and version numbers of\n\
+Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+   - The top-level (root) directory\n\
+   - Plug-in and Fragment directories\n\
+   - Subdirectories of the directory named "src" of certain Plug-ins\n\
+   - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Eclipse Update Manager, you must agree to a license ("Feature Update\n\
+License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties". Such Abouts,\n\
+Feature Licenses and Feature Update Licenses contain the terms and\n\
+conditions (or references to such terms and conditions) that govern your\n\
+use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE CPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
+    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use,\n\
+and re-export of encryption software, to see if this is permitted.\n
+########### end of license property ##########################################
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/feature.xml b/mylyn/features/org.eclipse.dltk.mylyn-feature/feature.xml
new file mode 100644
index 0000000..6a806b1
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/feature.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ *
+ * </copyright>
+ */
+-->
+<feature
+      id="org.eclipse.dltk.mylyn"
+      label="%featureName"
+      version="0.95.0.qualifier"
+      provider-name="%providerName"
+      image="eclipse_update_120.jpg">
+
+   <description url="http://www.eclipse.org/dltk">
+      %description
+   </description>
+
+   <copyright url="http://www.eclipse.org/legal/epl-v10.html">
+      Copyright (c) 2005, 2007 IBM Corporation and others.
+All rights reserved.   This program and the accompanying materials
+are made available under the terms of the Eclipse Public License v1.0
+which accompanies this distribution, and is available at
+http://www.eclipse.org/legal/epl-v10.html
+   </copyright>
+
+   <license url="%licenseURL">
+      %license
+   </license>
+
+   <url>
+      <update label="%updateSiteName" url="http://download.eclipse.org/technology/dltk/updates/"/>
+      <discovery label="%updateSiteName" url="http://download.eclipse.org/technology/dltk/updates/"/>
+   </url>
+
+   <requires>
+      <import feature="org.eclipse.dltk.core" version="0.95.0.qualifier"/>
+      <import feature="org.eclipse.mylyn.context_feature" version="3.0.0.qualifier"/>
+      <import feature="org.eclipse.mylyn.ide_feature" version="3.0.0.qualifier"/>
+      <import feature="org.eclipse.mylyn.monitor_feature" version="3.0.0.qualifier"/>
+      <import feature="org.eclipse.mylyn_feature" version="3.0.0.qualifier"/>
+   </requires>
+
+   <plugin
+         id="org.eclipse.dltk.mylyn"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.dltk.mylyn.source"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"/>
+
+</feature>
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/license.html b/mylyn/features/org.eclipse.dltk.mylyn-feature/license.html
new file mode 100644
index 0000000..b38c3d7
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/license.html
@@ -0,0 +1,265 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>Eclipse DLTK - mylyn Development Tools License</title>
+</head>
+<body lang="EN-US">
+<h1>Eclipse DLTK - mylyn Development Tools License</h1><h3>June 5, 2008</h3>
+<ul>
+	<li>Eclipse Public License v1.0 (<a href="#epl">http://www.eclipse.org/legal/epl-v10.html</a>) for mylyn Development Tools</li>
+</ul>
+
+<hr>
+
+<div name="epl" lang=EN-US style='tab-interval:.5in'>
+
+<div class=Section1>
+
+<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
+</p>
+
+<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
+THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
+REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
+OF THIS AGREEMENT.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+in the case of the initial Contributor, the initial code and documentation
+distributed under this Agreement, and<br clear=left>
+b) in the case of each subsequent Contributor:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+changes to the Program, and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+additions to the Program;</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
+such changes and/or additions to the Program originate from and are distributed
+by that particular Contributor. A Contribution 'originates' from a Contributor
+if it was added to the Program by such Contributor itself or anyone acting on
+such Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in conjunction
+with the Program under their own license agreement, and (ii) are not derivative
+works of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
+entity that distributes the Program.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
+claims licensable by a Contributor which are necessarily infringed by the use
+or sale of its Contribution alone or when combined with the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
+distributed in accordance with this Agreement.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
+receives the Program under this Agreement, including all Contributors.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+Subject to the terms of this Agreement, each Contributor hereby grants Recipient
+a non-exclusive, worldwide, royalty-free copyright license to<span
+style='color:red'> </span>reproduce, prepare derivative works of, publicly
+display, publicly perform, distribute and sublicense the Contribution of such
+Contributor, if any, and such derivative works, in source code and object code
+form.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
+patent license under Licensed Patents to make, use, sell, offer to sell, import
+and otherwise transfer the Contribution of such Contributor, if any, in source
+code and object code form. This patent license shall apply to the combination
+of the Contribution and the Program if, at the time the Contribution is added
+by the Contributor, such addition of the Contribution causes such combination
+to be covered by the Licensed Patents. The patent license shall not apply to
+any other combinations which include the Contribution. No hardware per se is
+licensed hereunder. </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
+Recipient understands that although each Contributor grants the licenses to its
+Contributions set forth herein, no assurances are provided by any Contributor
+that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient
+for claims brought by any other entity based on infringement of intellectual
+property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility
+to secure any other intellectual property rights needed, if any. For example,
+if a third party patent license is required to allow Recipient to distribute
+the Program, it is Recipient's responsibility to acquire that license before
+distributing the Program.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
+Each Contributor represents that to its knowledge it has sufficient copyright
+rights in its Contribution, if any, to grant the copyright license set forth in
+this Agreement. </span></p>
+
+<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
+Program in object code form under its own license agreement, provided that:</span>
+</p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it complies with the terms and conditions of this Agreement; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+its license agreement:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title
+and non-infringement, and implied warranties or conditions of merchantability
+and fitness for a particular purpose; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+effectively excludes on behalf of all Contributors all liability for damages,
+including direct, indirect, special, incidental and consequential damages, such
+as lost profits; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
+states that any provisions which differ from this Agreement are offered by that
+Contributor alone and not by any other party; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
+states that source code for the Program is available from such Contributor, and
+informs licensees how to obtain it in a reasonable manner on or through a
+medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
+
+<p><span style='font-size:10.0pt'>When the Program is made available in source
+code form:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it must be made available under this Agreement; and </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
+copy of this Agreement must be included with each copy of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
+copyright notices contained within the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
+originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution. </span></p>
+
+<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
+
+<p><span style='font-size:10.0pt'>Commercial distributors of software may
+accept certain responsibilities with respect to end users, business partners
+and the like. While this license is intended to facilitate the commercial use
+of the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes the
+Program in a commercial product offering, such Contributor (&quot;Commercial
+Contributor&quot;) hereby agrees to defend and indemnify every other
+Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
+costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
+legal actions brought by a third party against the Indemnified Contributor to
+the extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor
+to control, and cooperate with the Commercial Contributor in, the defense and
+any related settlement negotiations. The Indemnified Contributor may participate
+in any such claim at its own expense.</span> </p>
+
+<p><span style='font-size:10.0pt'>For example, a Contributor might include the
+Program in a commercial product offering, Product X. That Contributor is then a
+Commercial Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance claims and
+warranties are such Commercial Contributor's responsibility alone. Under this
+section, the Commercial Contributor would have to defend claims against the
+other Contributors related to those performance claims and warranties, and if a
+court requires any other Contributor to pay any damages as a result, the
+Commercial Contributor must pay those damages.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and distributing the
+Program and assumes all risks associated with its exercise of rights under this
+Agreement , including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs or
+equipment, and unavailability or interruption of operations. </span></p>
+
+<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
+THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
+
+<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
+or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without
+further action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.</span> </p>
+
+<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
+against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with
+other software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the date
+such litigation is filed. </span></p>
+
+<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
+shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable
+period of time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive. </span></p>
+
+<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
+copies of this Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The Agreement
+Steward reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement Steward has
+the right to modify this Agreement. The Eclipse Foundation is the initial
+Agreement Steward. The Eclipse Foundation may assign the responsibility to
+serve as the Agreement Steward to a suitable separate entity. Each new version
+of the Agreement will be given a distinguishing version number. The Program
+(including Contributions) may always be distributed subject to the version of
+the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program
+(including its Contributions) under the new version. Except as expressly stated
+in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.</span> </p>
+
+<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
+State of New York and the intellectual property laws of the United States of
+America. No party to this Agreement will bring a legal action under this
+Agreement more than one year after the cause of action arose. Each party waives
+its rights to a jury trial in any resulting litigation.</span> </p>
+
+<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+</div>
+
+</div>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/rootfiles/epl-v10.html b/mylyn/features/org.eclipse.dltk.mylyn-feature/rootfiles/epl-v10.html
new file mode 100644
index 0000000..cb1073a
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/rootfiles/epl-v10.html
@@ -0,0 +1,304 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<html xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<link rel=File-List
+href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
+<title>Eclipse Public License - Version 1.0</title>
+<style>
+<!--
+ /* Font Definitions */
+@font-face
+	{
+	panose-1:2 11 6 4 3 5 4 4 2 4;
+	mso-font-charset:0;
+	mso-font-pitch:variable;
+	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
+ /* Style Definitions */
+p.MsoNormal, li.MsoNormal, div.MsoNormal
+	{mso-style-parent:"";
+	margin:0in;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	}
+p
+	{margin-right:0in;
+	mso-margin-top-alt:auto;
+	mso-margin-bottom-alt:auto;
+	margin-left:0in;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	}
+p.BalloonText, li.BalloonText, div.BalloonText
+	{mso-style-name:"Balloon Text";
+	margin:0in;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:8.0pt;
+	
+	}
+@page Section1
+	{size:8.5in 11.0in;
+	margin:1.0in 1.25in 1.0in 1.25in;
+	mso-header-margin:.5in;
+	mso-footer-margin:.5in;
+	mso-paper-source:0;}
+div.Section1
+	{page:Section1;}
+-->
+</style>
+</head>
+
+<body lang="EN-US" style='tab-interval:.5in'>
+
+<div class=Section1>
+
+<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
+</p>
+
+<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
+THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
+REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
+OF THIS AGREEMENT.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+in the case of the initial Contributor, the initial code and documentation
+distributed under this Agreement, and<br clear=left>
+b) in the case of each subsequent Contributor:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+changes to the Program, and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+additions to the Program;</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
+such changes and/or additions to the Program originate from and are distributed
+by that particular Contributor. A Contribution 'originates' from a Contributor
+if it was added to the Program by such Contributor itself or anyone acting on
+such Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in conjunction
+with the Program under their own license agreement, and (ii) are not derivative
+works of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
+entity that distributes the Program.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
+claims licensable by a Contributor which are necessarily infringed by the use
+or sale of its Contribution alone or when combined with the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
+distributed in accordance with this Agreement.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
+receives the Program under this Agreement, including all Contributors.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+Subject to the terms of this Agreement, each Contributor hereby grants Recipient
+a non-exclusive, worldwide, royalty-free copyright license to<span
+style='color:red'> </span>reproduce, prepare derivative works of, publicly
+display, publicly perform, distribute and sublicense the Contribution of such
+Contributor, if any, and such derivative works, in source code and object code
+form.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
+patent license under Licensed Patents to make, use, sell, offer to sell, import
+and otherwise transfer the Contribution of such Contributor, if any, in source
+code and object code form. This patent license shall apply to the combination
+of the Contribution and the Program if, at the time the Contribution is added
+by the Contributor, such addition of the Contribution causes such combination
+to be covered by the Licensed Patents. The patent license shall not apply to
+any other combinations which include the Contribution. No hardware per se is
+licensed hereunder. </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
+Recipient understands that although each Contributor grants the licenses to its
+Contributions set forth herein, no assurances are provided by any Contributor
+that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient
+for claims brought by any other entity based on infringement of intellectual
+property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility
+to secure any other intellectual property rights needed, if any. For example,
+if a third party patent license is required to allow Recipient to distribute
+the Program, it is Recipient's responsibility to acquire that license before
+distributing the Program.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
+Each Contributor represents that to its knowledge it has sufficient copyright
+rights in its Contribution, if any, to grant the copyright license set forth in
+this Agreement. </span></p>
+
+<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
+Program in object code form under its own license agreement, provided that:</span>
+</p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it complies with the terms and conditions of this Agreement; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+its license agreement:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title
+and non-infringement, and implied warranties or conditions of merchantability
+and fitness for a particular purpose; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+effectively excludes on behalf of all Contributors all liability for damages,
+including direct, indirect, special, incidental and consequential damages, such
+as lost profits; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
+states that any provisions which differ from this Agreement are offered by that
+Contributor alone and not by any other party; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
+states that source code for the Program is available from such Contributor, and
+informs licensees how to obtain it in a reasonable manner on or through a
+medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
+
+<p><span style='font-size:10.0pt'>When the Program is made available in source
+code form:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it must be made available under this Agreement; and </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
+copy of this Agreement must be included with each copy of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
+copyright notices contained within the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
+originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution. </span></p>
+
+<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
+
+<p><span style='font-size:10.0pt'>Commercial distributors of software may
+accept certain responsibilities with respect to end users, business partners
+and the like. While this license is intended to facilitate the commercial use
+of the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes the
+Program in a commercial product offering, such Contributor (&quot;Commercial
+Contributor&quot;) hereby agrees to defend and indemnify every other
+Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
+costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
+legal actions brought by a third party against the Indemnified Contributor to
+the extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor
+to control, and cooperate with the Commercial Contributor in, the defense and
+any related settlement negotiations. The Indemnified Contributor may participate
+in any such claim at its own expense.</span> </p>
+
+<p><span style='font-size:10.0pt'>For example, a Contributor might include the
+Program in a commercial product offering, Product X. That Contributor is then a
+Commercial Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance claims and
+warranties are such Commercial Contributor's responsibility alone. Under this
+section, the Commercial Contributor would have to defend claims against the
+other Contributors related to those performance claims and warranties, and if a
+court requires any other Contributor to pay any damages as a result, the
+Commercial Contributor must pay those damages.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and distributing the
+Program and assumes all risks associated with its exercise of rights under this
+Agreement , including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs or
+equipment, and unavailability or interruption of operations. </span></p>
+
+<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
+THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
+
+<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
+or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without
+further action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.</span> </p>
+
+<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
+against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with
+other software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the date
+such litigation is filed. </span></p>
+
+<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
+shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable
+period of time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive. </span></p>
+
+<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
+copies of this Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The Agreement
+Steward reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement Steward has
+the right to modify this Agreement. The Eclipse Foundation is the initial
+Agreement Steward. The Eclipse Foundation may assign the responsibility to
+serve as the Agreement Steward to a suitable separate entity. Each new version
+of the Agreement will be given a distinguishing version number. The Program
+(including Contributions) may always be distributed subject to the version of
+the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program
+(including its Contributions) under the new version. Except as expressly stated
+in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.</span> </p>
+
+<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
+State of New York and the intellectual property laws of the United States of
+America. No party to this Agreement will bring a legal action under this
+Agreement more than one year after the cause of action arose. Each party waives
+its rights to a jury trial in any resulting litigation.</span> </p>
+
+<p class=MsoNormal></p>
+
+</div>
+
+</body>
+
+</html>
\ No newline at end of file
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/rootfiles/notice.html b/mylyn/features/org.eclipse.dltk.mylyn-feature/rootfiles/notice.html
new file mode 100644
index 0000000..74122b2
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/rootfiles/notice.html
@@ -0,0 +1,79 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<html>
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
+<title>Eclipse.org Software User Agreement</title>
+</head>
+
+<body lang="EN-US" link=blue vlink=purple>
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>March 17, 2005</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
+   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java<sup>TM</sup> ARchive) in a directory named &quot;plugins&quot;.</li>
+	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+	<li>The top-level (root) directory</li>
+	<li>Plug-in and Fragment directories</li>
+	<li>Inside Plug-ins and Fragments packaged as JARs</li>
+	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+	<li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+	<li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+	<li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+	<li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+	<li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>
+	<li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+	<li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>
+</body>
+</html>
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplateFeature/build.properties b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplateFeature/build.properties
new file mode 100644
index 0000000..a250c6b
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplateFeature/build.properties
@@ -0,0 +1,14 @@
+###############################################################################
+# Copyright (c) 2005, 2007 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+
+###############################################################################
+bin.includes = feature.xml,\
+               feature.properties,\
+               epl-v10.html,\
+               eclipse_update_120.jpg,\
+               license.html
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplateFeature/eclipse.gif b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplateFeature/eclipse.gif
new file mode 100644
index 0000000..bdc2912
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplateFeature/eclipse.gif
Binary files differ
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplateFeature/eclipse_update_120.jpg b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplateFeature/eclipse_update_120.jpg
new file mode 100644
index 0000000..bfdf708
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplateFeature/eclipse_update_120.jpg
Binary files differ
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplateFeature/epl-v10.html b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplateFeature/epl-v10.html
new file mode 100644
index 0000000..cb1073a
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplateFeature/epl-v10.html
@@ -0,0 +1,304 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<html xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<link rel=File-List
+href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
+<title>Eclipse Public License - Version 1.0</title>
+<style>
+<!--
+ /* Font Definitions */
+@font-face
+	{
+	panose-1:2 11 6 4 3 5 4 4 2 4;
+	mso-font-charset:0;
+	mso-font-pitch:variable;
+	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
+ /* Style Definitions */
+p.MsoNormal, li.MsoNormal, div.MsoNormal
+	{mso-style-parent:"";
+	margin:0in;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	}
+p
+	{margin-right:0in;
+	mso-margin-top-alt:auto;
+	mso-margin-bottom-alt:auto;
+	margin-left:0in;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	}
+p.BalloonText, li.BalloonText, div.BalloonText
+	{mso-style-name:"Balloon Text";
+	margin:0in;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:8.0pt;
+	
+	}
+@page Section1
+	{size:8.5in 11.0in;
+	margin:1.0in 1.25in 1.0in 1.25in;
+	mso-header-margin:.5in;
+	mso-footer-margin:.5in;
+	mso-paper-source:0;}
+div.Section1
+	{page:Section1;}
+-->
+</style>
+</head>
+
+<body lang="EN-US" style='tab-interval:.5in'>
+
+<div class=Section1>
+
+<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
+</p>
+
+<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
+THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
+REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
+OF THIS AGREEMENT.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+in the case of the initial Contributor, the initial code and documentation
+distributed under this Agreement, and<br clear=left>
+b) in the case of each subsequent Contributor:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+changes to the Program, and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+additions to the Program;</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
+such changes and/or additions to the Program originate from and are distributed
+by that particular Contributor. A Contribution 'originates' from a Contributor
+if it was added to the Program by such Contributor itself or anyone acting on
+such Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in conjunction
+with the Program under their own license agreement, and (ii) are not derivative
+works of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
+entity that distributes the Program.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
+claims licensable by a Contributor which are necessarily infringed by the use
+or sale of its Contribution alone or when combined with the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
+distributed in accordance with this Agreement.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
+receives the Program under this Agreement, including all Contributors.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+Subject to the terms of this Agreement, each Contributor hereby grants Recipient
+a non-exclusive, worldwide, royalty-free copyright license to<span
+style='color:red'> </span>reproduce, prepare derivative works of, publicly
+display, publicly perform, distribute and sublicense the Contribution of such
+Contributor, if any, and such derivative works, in source code and object code
+form.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
+patent license under Licensed Patents to make, use, sell, offer to sell, import
+and otherwise transfer the Contribution of such Contributor, if any, in source
+code and object code form. This patent license shall apply to the combination
+of the Contribution and the Program if, at the time the Contribution is added
+by the Contributor, such addition of the Contribution causes such combination
+to be covered by the Licensed Patents. The patent license shall not apply to
+any other combinations which include the Contribution. No hardware per se is
+licensed hereunder. </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
+Recipient understands that although each Contributor grants the licenses to its
+Contributions set forth herein, no assurances are provided by any Contributor
+that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient
+for claims brought by any other entity based on infringement of intellectual
+property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility
+to secure any other intellectual property rights needed, if any. For example,
+if a third party patent license is required to allow Recipient to distribute
+the Program, it is Recipient's responsibility to acquire that license before
+distributing the Program.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
+Each Contributor represents that to its knowledge it has sufficient copyright
+rights in its Contribution, if any, to grant the copyright license set forth in
+this Agreement. </span></p>
+
+<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
+Program in object code form under its own license agreement, provided that:</span>
+</p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it complies with the terms and conditions of this Agreement; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+its license agreement:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title
+and non-infringement, and implied warranties or conditions of merchantability
+and fitness for a particular purpose; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+effectively excludes on behalf of all Contributors all liability for damages,
+including direct, indirect, special, incidental and consequential damages, such
+as lost profits; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
+states that any provisions which differ from this Agreement are offered by that
+Contributor alone and not by any other party; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
+states that source code for the Program is available from such Contributor, and
+informs licensees how to obtain it in a reasonable manner on or through a
+medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
+
+<p><span style='font-size:10.0pt'>When the Program is made available in source
+code form:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it must be made available under this Agreement; and </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
+copy of this Agreement must be included with each copy of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
+copyright notices contained within the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
+originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution. </span></p>
+
+<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
+
+<p><span style='font-size:10.0pt'>Commercial distributors of software may
+accept certain responsibilities with respect to end users, business partners
+and the like. While this license is intended to facilitate the commercial use
+of the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes the
+Program in a commercial product offering, such Contributor (&quot;Commercial
+Contributor&quot;) hereby agrees to defend and indemnify every other
+Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
+costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
+legal actions brought by a third party against the Indemnified Contributor to
+the extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor
+to control, and cooperate with the Commercial Contributor in, the defense and
+any related settlement negotiations. The Indemnified Contributor may participate
+in any such claim at its own expense.</span> </p>
+
+<p><span style='font-size:10.0pt'>For example, a Contributor might include the
+Program in a commercial product offering, Product X. That Contributor is then a
+Commercial Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance claims and
+warranties are such Commercial Contributor's responsibility alone. Under this
+section, the Commercial Contributor would have to defend claims against the
+other Contributors related to those performance claims and warranties, and if a
+court requires any other Contributor to pay any damages as a result, the
+Commercial Contributor must pay those damages.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and distributing the
+Program and assumes all risks associated with its exercise of rights under this
+Agreement , including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs or
+equipment, and unavailability or interruption of operations. </span></p>
+
+<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
+THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
+
+<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
+or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without
+further action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.</span> </p>
+
+<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
+against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with
+other software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the date
+such litigation is filed. </span></p>
+
+<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
+shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable
+period of time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive. </span></p>
+
+<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
+copies of this Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The Agreement
+Steward reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement Steward has
+the right to modify this Agreement. The Eclipse Foundation is the initial
+Agreement Steward. The Eclipse Foundation may assign the responsibility to
+serve as the Agreement Steward to a suitable separate entity. Each new version
+of the Agreement will be given a distinguishing version number. The Program
+(including Contributions) may always be distributed subject to the version of
+the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program
+(including its Contributions) under the new version. Except as expressly stated
+in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.</span> </p>
+
+<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
+State of New York and the intellectual property laws of the United States of
+America. No party to this Agreement will bring a legal action under this
+Agreement more than one year after the cause of action arose. Each party waives
+its rights to a jury trial in any resulting litigation.</span> </p>
+
+<p class=MsoNormal></p>
+
+</div>
+
+</body>
+
+</html>
\ No newline at end of file
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplateFeature/feature.properties b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplateFeature/feature.properties
new file mode 100644
index 0000000..5f274c9
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplateFeature/feature.properties
@@ -0,0 +1,155 @@
+###############################################################################
+# Copyright (c) 2005, 2007 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+
+###############################################################################
+# /**
+#  * <copyright>
+#  *
+#  * Copyright (c) 2006 IBM Corporation and others.
+#  * All rights reserved.   This program and the accompanying materials
+#  * are made available under the terms of the Eclipse Public License v1.0
+#  * which accompanies this distribution, and is available at
+#  * http://www.eclipse.org/legal/epl-v10.html
+#  * 
+#  
+#  *
+#  * </copyright>
+#  *
+#  * $Id: feature.properties,v 1.1 2008/05/26 10:24:04 asobolev Exp $
+#  */
+
+# NLS_MESSAGEFORMAT_VAR
+
+# ==============================================================================
+# Do not change the properties between this line and the last line containing:
+# %%% END OF TRANSLATED PROPERTIES %%%
+# Instead, either redefine an existing property, or create a new property,
+# append it to the end of the file, and change the code to use the new name.
+# ==============================================================================
+
+# This file contains externalized strings for feature.xml
+# "%foo" in feature.xml corresponds to the key "foo" in this file
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file should be translated.
+
+# "featureName" property - name of the feature
+featureName=Dynamic Languages Toolkit - Mylyn Integration Source Code (Incubation)
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse.org
+
+# "updateSiteName" property - label for the update site
+updateSiteName=Dynamic Languages Toolkit Update Site
+
+# "description" property - description of the feature
+description=Dynamic Languages Toolkit - Mylyn Integration Code
+
+# "licenseURL" property - URL of the "Feature License"
+# do not translate value - just change to point to a locale-specific HTML page
+licenseURL=license.html
+
+# ==============================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# The above properties have been shipped for translation.
+# ==============================================================================
+
+# "license" property - text of the "Feature Update License"
+# should be plain text version of license agreement pointed to be "licenseURL"
+license=\
+ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
+January 28, 2004\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
+is provided to you under the terms and conditions of the Eclipse Public\n\
+License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
+Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse.org CVS\n\
+repository ("Repository") in CVS modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments\n\
+("Fragments"), and features ("Features"). A Feature is a bundle of one or\n\
+more Plug-ins and/or Fragments and associated material. Files named\n\
+"feature.xml" may contain a list of the names and version numbers of the\n\
+Plug-ins and/or Fragments associated with a Feature. Plug-ins and Fragments\n\
+are located in directories named "plugins" and Features are located in\n\
+directories named "features".\n\
+\n\
+Features may also include other Features ("Included Features"). Files named\n\
+"feature.xml" may contain a list of the names and version numbers of\n\
+Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+   - The top-level (root) directory\n\
+   - Plug-in and Fragment directories\n\
+   - Subdirectories of the directory named "src" of certain Plug-ins\n\
+   - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Eclipse Update Manager, you must agree to a license ("Feature Update\n\
+License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties". Such Abouts,\n\
+Feature Licenses and Feature Update Licenses contain the terms and\n\
+conditions (or references to such terms and conditions) that govern your\n\
+use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE CPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
+    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use,\n\
+and re-export of encryption software, to see if this is permitted.\n
+########### end of license property ##########################################
+
+updateSiteName=Dynamic Languages Toolkit (DLTK) Updates
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplateFeature/license.html b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplateFeature/license.html
new file mode 100644
index 0000000..79bd185
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplateFeature/license.html
@@ -0,0 +1,265 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>Eclipse DLTK Core Frameworks License</title>
+</head>
+<body lang="EN-US">
+<h1>Eclipse DLTK Core Frameworks License</h1><h3>June 5, 2008</h3>
+<ul>
+	<li>Eclipse Public License v1.0 (<a href="#epl">http://www.eclipse.org/legal/epl-v10.html</a>) for Eclipse DLTK Core Frameworks</li>
+</ul>
+
+<hr>
+
+<div name="epl" lang=EN-US style='tab-interval:.5in'>
+
+<div class=Section1>
+
+<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
+</p>
+
+<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
+THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
+REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
+OF THIS AGREEMENT.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+in the case of the initial Contributor, the initial code and documentation
+distributed under this Agreement, and<br clear=left>
+b) in the case of each subsequent Contributor:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+changes to the Program, and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+additions to the Program;</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
+such changes and/or additions to the Program originate from and are distributed
+by that particular Contributor. A Contribution 'originates' from a Contributor
+if it was added to the Program by such Contributor itself or anyone acting on
+such Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in conjunction
+with the Program under their own license agreement, and (ii) are not derivative
+works of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
+entity that distributes the Program.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
+claims licensable by a Contributor which are necessarily infringed by the use
+or sale of its Contribution alone or when combined with the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
+distributed in accordance with this Agreement.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
+receives the Program under this Agreement, including all Contributors.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+Subject to the terms of this Agreement, each Contributor hereby grants Recipient
+a non-exclusive, worldwide, royalty-free copyright license to<span
+style='color:red'> </span>reproduce, prepare derivative works of, publicly
+display, publicly perform, distribute and sublicense the Contribution of such
+Contributor, if any, and such derivative works, in source code and object code
+form.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
+patent license under Licensed Patents to make, use, sell, offer to sell, import
+and otherwise transfer the Contribution of such Contributor, if any, in source
+code and object code form. This patent license shall apply to the combination
+of the Contribution and the Program if, at the time the Contribution is added
+by the Contributor, such addition of the Contribution causes such combination
+to be covered by the Licensed Patents. The patent license shall not apply to
+any other combinations which include the Contribution. No hardware per se is
+licensed hereunder. </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
+Recipient understands that although each Contributor grants the licenses to its
+Contributions set forth herein, no assurances are provided by any Contributor
+that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient
+for claims brought by any other entity based on infringement of intellectual
+property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility
+to secure any other intellectual property rights needed, if any. For example,
+if a third party patent license is required to allow Recipient to distribute
+the Program, it is Recipient's responsibility to acquire that license before
+distributing the Program.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
+Each Contributor represents that to its knowledge it has sufficient copyright
+rights in its Contribution, if any, to grant the copyright license set forth in
+this Agreement. </span></p>
+
+<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
+Program in object code form under its own license agreement, provided that:</span>
+</p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it complies with the terms and conditions of this Agreement; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+its license agreement:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title
+and non-infringement, and implied warranties or conditions of merchantability
+and fitness for a particular purpose; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+effectively excludes on behalf of all Contributors all liability for damages,
+including direct, indirect, special, incidental and consequential damages, such
+as lost profits; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
+states that any provisions which differ from this Agreement are offered by that
+Contributor alone and not by any other party; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
+states that source code for the Program is available from such Contributor, and
+informs licensees how to obtain it in a reasonable manner on or through a
+medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
+
+<p><span style='font-size:10.0pt'>When the Program is made available in source
+code form:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it must be made available under this Agreement; and </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
+copy of this Agreement must be included with each copy of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
+copyright notices contained within the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
+originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution. </span></p>
+
+<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
+
+<p><span style='font-size:10.0pt'>Commercial distributors of software may
+accept certain responsibilities with respect to end users, business partners
+and the like. While this license is intended to facilitate the commercial use
+of the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes the
+Program in a commercial product offering, such Contributor (&quot;Commercial
+Contributor&quot;) hereby agrees to defend and indemnify every other
+Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
+costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
+legal actions brought by a third party against the Indemnified Contributor to
+the extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor
+to control, and cooperate with the Commercial Contributor in, the defense and
+any related settlement negotiations. The Indemnified Contributor may participate
+in any such claim at its own expense.</span> </p>
+
+<p><span style='font-size:10.0pt'>For example, a Contributor might include the
+Program in a commercial product offering, Product X. That Contributor is then a
+Commercial Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance claims and
+warranties are such Commercial Contributor's responsibility alone. Under this
+section, the Commercial Contributor would have to defend claims against the
+other Contributors related to those performance claims and warranties, and if a
+court requires any other Contributor to pay any damages as a result, the
+Commercial Contributor must pay those damages.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and distributing the
+Program and assumes all risks associated with its exercise of rights under this
+Agreement , including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs or
+equipment, and unavailability or interruption of operations. </span></p>
+
+<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
+THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
+
+<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
+or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without
+further action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.</span> </p>
+
+<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
+against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with
+other software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the date
+such litigation is filed. </span></p>
+
+<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
+shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable
+period of time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive. </span></p>
+
+<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
+copies of this Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The Agreement
+Steward reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement Steward has
+the right to modify this Agreement. The Eclipse Foundation is the initial
+Agreement Steward. The Eclipse Foundation may assign the responsibility to
+serve as the Agreement Steward to a suitable separate entity. Each new version
+of the Agreement will be given a distinguishing version number. The Program
+(including Contributions) may always be distributed subject to the version of
+the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program
+(including its Contributions) under the new version. Except as expressly stated
+in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.</span> </p>
+
+<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
+State of New York and the intellectual property laws of the United States of
+America. No party to this Agreement will bring a legal action under this
+Agreement more than one year after the cause of action arose. Each party waives
+its rights to a jury trial in any resulting litigation.</span> </p>
+
+<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+</div>
+
+</div>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/about.html b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/about.html
new file mode 100644
index 0000000..7c8477f
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 5, 2008</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/about.ini b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/about.ini
new file mode 100644
index 0000000..6ae9bf8
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/about.ini
@@ -0,0 +1,15 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%featureText
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=eclipse32.png
+
+# Property "appName" contains name of the application (translated)
+appName=%featureName
+
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/about.mappings b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/about.mappings
new file mode 100644
index 0000000..720ca87
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings

+# contains fill-ins for about.properties

+# java.io.Properties file (ISO 8859-1 with "\" escapes)

+# This file does not need to be translated.

+

+0=@build@
\ No newline at end of file
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/about.properties b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/about.properties
new file mode 100644
index 0000000..6e2b93d
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/about.properties
@@ -0,0 +1,54 @@
+###############################################################################
+# Copyright (c) 2005, 2007 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+
+###############################################################################
+# /**
+#  * <copyright>
+#  *
+#  * Copyright (c) 2006 IBM Corporation and others.
+#  * All rights reserved.   This program and the accompanying materials
+#  * are made available under the terms of the Eclipse Public License v1.0
+#  * which accompanies this distribution, and is available at
+#  * http://www.eclipse.org/legal/epl-v10.html
+#  *
+#  
+#  *
+#  * </copyright>
+#  *
+#  * $Id: about.properties,v 1.1 2008/05/26 10:24:03 asobolev Exp $
+#  */
+
+# NLS_MESSAGEFORMAT_VAR
+
+# ==============================================================================
+# Do not change the properties between this line and the last line containing:
+# %%% END OF TRANSLATED PROPERTIES %%%
+# Instead, either redefine an existing property, or create a new property,
+# append it to the end of the file, and change the code to use the new name.
+# ==============================================================================
+
+# about.properties
+# contains externalized strings for about.ini
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# fill-ins are supplied by about.mappings
+# This file should be translated.
+
+featureName=Dynamic Languages Toolkit (DLTK) mylyn IDE Source
+
+featureText=Dynamic Languages Toolkit (DLTK) mylyn IDE Source\n\
+\n\
+Version: {featureVersion}\n\
+Build id: {0}\n\
+\n\
+(c) Copyright Eclipse contributors and others 2000, 2007.  All rights reserved.\n\
+Visit http://www.eclipse.org/dltk
+
+# ==============================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# The above properties have been shipped for translation.
+# ==============================================================================
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/build.properties b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/build.properties
new file mode 100644
index 0000000..2a3a91c
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/build.properties
@@ -0,0 +1,19 @@
+###############################################################################
+# Copyright (c) 2005, 2007 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+
+###############################################################################
+bin.includes = plugin.xml,\
+               plugin.properties,\
+               about.html,\
+               about.ini,\
+               about.mappings,\
+               about.properties,\
+               eclipse32.png,\
+               src/,\
+               META-INF/
+sourcePlugin = true
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/eclipse.gif b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/eclipse.gif
new file mode 100644
index 0000000..bdc2912
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/eclipse.gif
Binary files differ
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/eclipse.png b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/eclipse.png
new file mode 100644
index 0000000..7397524
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/eclipse.png
Binary files differ
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/eclipse24.gif b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/eclipse24.gif
new file mode 100644
index 0000000..fbb1d47
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/eclipse24.gif
Binary files differ
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/eclipse32.gif b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/eclipse32.gif
new file mode 100644
index 0000000..e6ad7cc
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/eclipse32.gif
Binary files differ
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/eclipse32.png b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/eclipse32.png
new file mode 100644
index 0000000..568fac1
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/eclipse32.png
Binary files differ
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/eclipse48.gif b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/eclipse48.gif
new file mode 100644
index 0000000..501ab99
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/eclipse48.gif
Binary files differ
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/eclipse48.png b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/eclipse48.png
new file mode 100644
index 0000000..b60ab3c
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/eclipse48.png
Binary files differ
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/eclipse_lg.gif b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/eclipse_lg.gif
new file mode 100644
index 0000000..bf8b872
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/eclipse_lg.gif
Binary files differ
diff --git a/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/plugin.properties b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/plugin.properties
new file mode 100644
index 0000000..7ac5eb5
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn-feature/sourceTemplatePlugin/plugin.properties
@@ -0,0 +1,41 @@
+###############################################################################
+# Copyright (c) 2005, 2007 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+
+###############################################################################
+# /**
+#  * <copyright>
+#  *
+#  * Copyright (c) 2002, 2006 IBM Corporation and others.
+#  * All rights reserved.   This program and the accompanying materials
+#  * are made available under the terms of the Eclipse Public License v1.0
+#  * which accompanies this distribution, and is available at
+#  * http://www.eclipse.org/legal/epl-v10.html
+#  *
+#  
+#  *
+#  * </copyright>
+#  *
+#  * $Id: plugin.properties,v 1.1 2008/05/26 10:24:03 asobolev Exp $
+#  */
+
+# NLS_MESSAGEFORMAT_VAR
+
+# ==============================================================================
+# Do not change the properties between this line and the last line containing:
+# %%% END OF TRANSLATED PROPERTIES %%%
+# Instead, either redefine an existing property, or create a new property,
+# append it to the end of the file, and change the code to use the new name.
+# ==============================================================================
+
+pluginName=Dynamic Languages Toolkit (DLTK) Mylyn Integration Source
+providerName=Eclipse.org
+
+# ==============================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# The above properties have been shipped for translation.
+# ==============================================================================
diff --git a/mylyn/features/org.eclipse.dltk.mylyn.sdk/.project b/mylyn/features/org.eclipse.dltk.mylyn.sdk/.project
new file mode 100644
index 0000000..156e79b
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn.sdk/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.dltk.mylyn.sdk</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+	</natures>
+</projectDescription>
diff --git a/mylyn/features/org.eclipse.dltk.mylyn.sdk/build.properties b/mylyn/features/org.eclipse.dltk.mylyn.sdk/build.properties
new file mode 100644
index 0000000..be88b72
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn.sdk/build.properties
@@ -0,0 +1,31 @@
+###############################################################################
+# Copyright (c) 2005, 2007 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+
+###############################################################################
+#/**
+# * <copyright>
+# *
+# * Copyright (c) 2005 IBM Corporation and others.
+# * All rights reserved.   This program and the accompanying materials
+# * are made available under the terms of the Eclipse Public License v1.0
+# * which accompanies this distribution, and is available at
+# * http://www.eclipse.org/legal/epl-v10.html
+# * 
+# 
+# *
+# * </copyright>
+# *
+# * $Id: build.properties,v 1.1 2008/05/26 10:24:03 asobolev Exp $ build.properties,v 1.1 2005/11/25 20:30:36 cdamus Exp $
+# */
+bin.includes = epl-v10.html,\
+               eclipse_update_120.jpg,\
+               feature.properties,\
+               feature.xml,\
+               license.html
+root=rootfiles
+generate.feature@org.eclipse.dltk.mylyn=org.eclipse.dltk.mylyn
diff --git a/mylyn/features/org.eclipse.dltk.mylyn.sdk/eclipse.gif b/mylyn/features/org.eclipse.dltk.mylyn.sdk/eclipse.gif
new file mode 100644
index 0000000..bdc2912
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn.sdk/eclipse.gif
Binary files differ
diff --git a/mylyn/features/org.eclipse.dltk.mylyn.sdk/eclipse.png b/mylyn/features/org.eclipse.dltk.mylyn.sdk/eclipse.png
new file mode 100644
index 0000000..7397524
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn.sdk/eclipse.png
Binary files differ
diff --git a/mylyn/features/org.eclipse.dltk.mylyn.sdk/eclipse32.gif b/mylyn/features/org.eclipse.dltk.mylyn.sdk/eclipse32.gif
new file mode 100644
index 0000000..e6ad7cc
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn.sdk/eclipse32.gif
Binary files differ
diff --git a/mylyn/features/org.eclipse.dltk.mylyn.sdk/eclipse32.png b/mylyn/features/org.eclipse.dltk.mylyn.sdk/eclipse32.png
new file mode 100644
index 0000000..568fac1
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn.sdk/eclipse32.png
Binary files differ
diff --git a/mylyn/features/org.eclipse.dltk.mylyn.sdk/eclipse48.gif b/mylyn/features/org.eclipse.dltk.mylyn.sdk/eclipse48.gif
new file mode 100644
index 0000000..501ab99
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn.sdk/eclipse48.gif
Binary files differ
diff --git a/mylyn/features/org.eclipse.dltk.mylyn.sdk/eclipse48.png b/mylyn/features/org.eclipse.dltk.mylyn.sdk/eclipse48.png
new file mode 100644
index 0000000..b60ab3c
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn.sdk/eclipse48.png
Binary files differ
diff --git a/mylyn/features/org.eclipse.dltk.mylyn.sdk/eclipse_lg.gif b/mylyn/features/org.eclipse.dltk.mylyn.sdk/eclipse_lg.gif
new file mode 100644
index 0000000..bf8b872
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn.sdk/eclipse_lg.gif
Binary files differ
diff --git a/mylyn/features/org.eclipse.dltk.mylyn.sdk/eclipse_update_120.jpg b/mylyn/features/org.eclipse.dltk.mylyn.sdk/eclipse_update_120.jpg
new file mode 100644
index 0000000..bfdf708
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn.sdk/eclipse_update_120.jpg
Binary files differ
diff --git a/mylyn/features/org.eclipse.dltk.mylyn.sdk/epl-v10.html b/mylyn/features/org.eclipse.dltk.mylyn.sdk/epl-v10.html
new file mode 100644
index 0000000..cb1073a
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn.sdk/epl-v10.html
@@ -0,0 +1,304 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<html xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<link rel=File-List
+href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
+<title>Eclipse Public License - Version 1.0</title>
+<style>
+<!--
+ /* Font Definitions */
+@font-face
+	{
+	panose-1:2 11 6 4 3 5 4 4 2 4;
+	mso-font-charset:0;
+	mso-font-pitch:variable;
+	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
+ /* Style Definitions */
+p.MsoNormal, li.MsoNormal, div.MsoNormal
+	{mso-style-parent:"";
+	margin:0in;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	}
+p
+	{margin-right:0in;
+	mso-margin-top-alt:auto;
+	mso-margin-bottom-alt:auto;
+	margin-left:0in;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	}
+p.BalloonText, li.BalloonText, div.BalloonText
+	{mso-style-name:"Balloon Text";
+	margin:0in;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:8.0pt;
+	
+	}
+@page Section1
+	{size:8.5in 11.0in;
+	margin:1.0in 1.25in 1.0in 1.25in;
+	mso-header-margin:.5in;
+	mso-footer-margin:.5in;
+	mso-paper-source:0;}
+div.Section1
+	{page:Section1;}
+-->
+</style>
+</head>
+
+<body lang="EN-US" style='tab-interval:.5in'>
+
+<div class=Section1>
+
+<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
+</p>
+
+<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
+THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
+REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
+OF THIS AGREEMENT.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+in the case of the initial Contributor, the initial code and documentation
+distributed under this Agreement, and<br clear=left>
+b) in the case of each subsequent Contributor:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+changes to the Program, and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+additions to the Program;</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
+such changes and/or additions to the Program originate from and are distributed
+by that particular Contributor. A Contribution 'originates' from a Contributor
+if it was added to the Program by such Contributor itself or anyone acting on
+such Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in conjunction
+with the Program under their own license agreement, and (ii) are not derivative
+works of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
+entity that distributes the Program.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
+claims licensable by a Contributor which are necessarily infringed by the use
+or sale of its Contribution alone or when combined with the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
+distributed in accordance with this Agreement.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
+receives the Program under this Agreement, including all Contributors.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+Subject to the terms of this Agreement, each Contributor hereby grants Recipient
+a non-exclusive, worldwide, royalty-free copyright license to<span
+style='color:red'> </span>reproduce, prepare derivative works of, publicly
+display, publicly perform, distribute and sublicense the Contribution of such
+Contributor, if any, and such derivative works, in source code and object code
+form.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
+patent license under Licensed Patents to make, use, sell, offer to sell, import
+and otherwise transfer the Contribution of such Contributor, if any, in source
+code and object code form. This patent license shall apply to the combination
+of the Contribution and the Program if, at the time the Contribution is added
+by the Contributor, such addition of the Contribution causes such combination
+to be covered by the Licensed Patents. The patent license shall not apply to
+any other combinations which include the Contribution. No hardware per se is
+licensed hereunder. </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
+Recipient understands that although each Contributor grants the licenses to its
+Contributions set forth herein, no assurances are provided by any Contributor
+that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient
+for claims brought by any other entity based on infringement of intellectual
+property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility
+to secure any other intellectual property rights needed, if any. For example,
+if a third party patent license is required to allow Recipient to distribute
+the Program, it is Recipient's responsibility to acquire that license before
+distributing the Program.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
+Each Contributor represents that to its knowledge it has sufficient copyright
+rights in its Contribution, if any, to grant the copyright license set forth in
+this Agreement. </span></p>
+
+<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
+Program in object code form under its own license agreement, provided that:</span>
+</p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it complies with the terms and conditions of this Agreement; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+its license agreement:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title
+and non-infringement, and implied warranties or conditions of merchantability
+and fitness for a particular purpose; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+effectively excludes on behalf of all Contributors all liability for damages,
+including direct, indirect, special, incidental and consequential damages, such
+as lost profits; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
+states that any provisions which differ from this Agreement are offered by that
+Contributor alone and not by any other party; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
+states that source code for the Program is available from such Contributor, and
+informs licensees how to obtain it in a reasonable manner on or through a
+medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
+
+<p><span style='font-size:10.0pt'>When the Program is made available in source
+code form:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it must be made available under this Agreement; and </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
+copy of this Agreement must be included with each copy of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
+copyright notices contained within the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
+originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution. </span></p>
+
+<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
+
+<p><span style='font-size:10.0pt'>Commercial distributors of software may
+accept certain responsibilities with respect to end users, business partners
+and the like. While this license is intended to facilitate the commercial use
+of the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes the
+Program in a commercial product offering, such Contributor (&quot;Commercial
+Contributor&quot;) hereby agrees to defend and indemnify every other
+Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
+costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
+legal actions brought by a third party against the Indemnified Contributor to
+the extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor
+to control, and cooperate with the Commercial Contributor in, the defense and
+any related settlement negotiations. The Indemnified Contributor may participate
+in any such claim at its own expense.</span> </p>
+
+<p><span style='font-size:10.0pt'>For example, a Contributor might include the
+Program in a commercial product offering, Product X. That Contributor is then a
+Commercial Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance claims and
+warranties are such Commercial Contributor's responsibility alone. Under this
+section, the Commercial Contributor would have to defend claims against the
+other Contributors related to those performance claims and warranties, and if a
+court requires any other Contributor to pay any damages as a result, the
+Commercial Contributor must pay those damages.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and distributing the
+Program and assumes all risks associated with its exercise of rights under this
+Agreement , including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs or
+equipment, and unavailability or interruption of operations. </span></p>
+
+<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
+THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
+
+<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
+or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without
+further action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.</span> </p>
+
+<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
+against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with
+other software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the date
+such litigation is filed. </span></p>
+
+<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
+shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable
+period of time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive. </span></p>
+
+<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
+copies of this Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The Agreement
+Steward reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement Steward has
+the right to modify this Agreement. The Eclipse Foundation is the initial
+Agreement Steward. The Eclipse Foundation may assign the responsibility to
+serve as the Agreement Steward to a suitable separate entity. Each new version
+of the Agreement will be given a distinguishing version number. The Program
+(including Contributions) may always be distributed subject to the version of
+the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program
+(including its Contributions) under the new version. Except as expressly stated
+in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.</span> </p>
+
+<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
+State of New York and the intellectual property laws of the United States of
+America. No party to this Agreement will bring a legal action under this
+Agreement more than one year after the cause of action arose. Each party waives
+its rights to a jury trial in any resulting litigation.</span> </p>
+
+<p class=MsoNormal></p>
+
+</div>
+
+</body>
+
+</html>
\ No newline at end of file
diff --git a/mylyn/features/org.eclipse.dltk.mylyn.sdk/feature.properties b/mylyn/features/org.eclipse.dltk.mylyn.sdk/feature.properties
new file mode 100644
index 0000000..a8580ef
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn.sdk/feature.properties
@@ -0,0 +1,119 @@
+###############################################################################
+# Copyright (c) 2005, 2007 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+
+# "featureName" property - name of the feature
+featureName=Dynamic Languages Toolkit - mylyn Development Tools SDK
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse.org
+
+# "updateSiteName" property - label for the update site
+updateSiteName=Eclipse.org update site
+
+# "description" property - description of the feature
+description=Binaries and API documentation and source zips for DLTK.
+
+# "licenseURL" property - URL of the "Feature License"
+# do not translate value - just change to point to a locale-specific HTML page
+licenseURL=license.html
+
+# "license" property - text of the "Feature Update License"
+# should be plain text version of license agreement pointed to be "licenseURL"
+license=\
+ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
+January 28, 2004\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
+is provided to you under the terms and conditions of the Eclipse Public\n\
+License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
+Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse.org CVS\n\
+repository ("Repository") in CVS modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments\n\
+("Fragments"), and features ("Features"). A Feature is a bundle of one or\n\
+more Plug-ins and/or Fragments and associated material. Files named\n\
+"feature.xml" may contain a list of the names and version numbers of the\n\
+Plug-ins and/or Fragments associated with a Feature. Plug-ins and Fragments\n\
+are located in directories named "plugins" and Features are located in\n\
+directories named "features".\n\
+\n\
+Features may also include other Features ("Included Features"). Files named\n\
+"feature.xml" may contain a list of the names and version numbers of\n\
+Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+   - The top-level (root) directory\n\
+   - Plug-in and Fragment directories\n\
+   - Subdirectories of the directory named "src" of certain Plug-ins\n\
+   - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Eclipse Update Manager, you must agree to a license ("Feature Update\n\
+License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties". Such Abouts,\n\
+Feature Licenses and Feature Update Licenses contain the terms and\n\
+conditions (or references to such terms and conditions) that govern your\n\
+use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE CPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
+    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use,\n\
+and re-export of encryption software, to see if this is permitted.\n
+########### end of license property ##########################################
+
+updateSiteName=Dynamic Languages Toolkit (DLTK) Updates
diff --git a/mylyn/features/org.eclipse.dltk.mylyn.sdk/feature.xml b/mylyn/features/org.eclipse.dltk.mylyn.sdk/feature.xml
new file mode 100644
index 0000000..92326fe
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn.sdk/feature.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.eclipse.dltk.mylyn.sdk"
+      label="%featureName"
+      version="0.95.0.qualifier"
+      provider-name="%providerName"
+      image="eclipse_update_120.jpg">
+
+   <description>
+      %description
+   </description>
+
+   <license url="%licenseURL">
+      %license
+   </license>
+
+   <url>
+      <update label="%updateSiteName" url="http://download.eclipse.org/technology/dltk/updates/"/>
+      <discovery label="%updateSiteName" url="http://download.eclipse.org/technology/dltk/updates/"/>
+   </url>
+
+   <includes
+         id="org.eclipse.dltk.mylyn"
+         version="0.0.0"/>
+
+   <includes
+         id="org.eclipse.dltk.mylyn.source"
+         version="0.0.0"/>
+
+</feature>
diff --git a/mylyn/features/org.eclipse.dltk.mylyn.sdk/license.html b/mylyn/features/org.eclipse.dltk.mylyn.sdk/license.html
new file mode 100644
index 0000000..15e0ed7
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn.sdk/license.html
@@ -0,0 +1,265 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>Eclipse DLTK - TCL Development Tools License</title>
+</head>
+<body lang="EN-US">
+<h1>Eclipse DLTK - TCL Development Tools License</h1><h3>June 5, 2008</h3>
+<ul>
+	<li>Eclipse Public License v1.0 (<a href="#epl">http://www.eclipse.org/legal/epl-v10.html</a>) for TCL Development Tools</li>
+</ul>
+
+<hr>
+
+<div name="epl" lang=EN-US style='tab-interval:.5in'>
+
+<div class=Section1>
+
+<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
+</p>
+
+<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
+THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
+REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
+OF THIS AGREEMENT.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+in the case of the initial Contributor, the initial code and documentation
+distributed under this Agreement, and<br clear=left>
+b) in the case of each subsequent Contributor:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+changes to the Program, and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+additions to the Program;</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
+such changes and/or additions to the Program originate from and are distributed
+by that particular Contributor. A Contribution 'originates' from a Contributor
+if it was added to the Program by such Contributor itself or anyone acting on
+such Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in conjunction
+with the Program under their own license agreement, and (ii) are not derivative
+works of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
+entity that distributes the Program.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
+claims licensable by a Contributor which are necessarily infringed by the use
+or sale of its Contribution alone or when combined with the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
+distributed in accordance with this Agreement.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
+receives the Program under this Agreement, including all Contributors.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+Subject to the terms of this Agreement, each Contributor hereby grants Recipient
+a non-exclusive, worldwide, royalty-free copyright license to<span
+style='color:red'> </span>reproduce, prepare derivative works of, publicly
+display, publicly perform, distribute and sublicense the Contribution of such
+Contributor, if any, and such derivative works, in source code and object code
+form.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
+patent license under Licensed Patents to make, use, sell, offer to sell, import
+and otherwise transfer the Contribution of such Contributor, if any, in source
+code and object code form. This patent license shall apply to the combination
+of the Contribution and the Program if, at the time the Contribution is added
+by the Contributor, such addition of the Contribution causes such combination
+to be covered by the Licensed Patents. The patent license shall not apply to
+any other combinations which include the Contribution. No hardware per se is
+licensed hereunder. </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
+Recipient understands that although each Contributor grants the licenses to its
+Contributions set forth herein, no assurances are provided by any Contributor
+that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient
+for claims brought by any other entity based on infringement of intellectual
+property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility
+to secure any other intellectual property rights needed, if any. For example,
+if a third party patent license is required to allow Recipient to distribute
+the Program, it is Recipient's responsibility to acquire that license before
+distributing the Program.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
+Each Contributor represents that to its knowledge it has sufficient copyright
+rights in its Contribution, if any, to grant the copyright license set forth in
+this Agreement. </span></p>
+
+<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
+Program in object code form under its own license agreement, provided that:</span>
+</p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it complies with the terms and conditions of this Agreement; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+its license agreement:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title
+and non-infringement, and implied warranties or conditions of merchantability
+and fitness for a particular purpose; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+effectively excludes on behalf of all Contributors all liability for damages,
+including direct, indirect, special, incidental and consequential damages, such
+as lost profits; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
+states that any provisions which differ from this Agreement are offered by that
+Contributor alone and not by any other party; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
+states that source code for the Program is available from such Contributor, and
+informs licensees how to obtain it in a reasonable manner on or through a
+medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
+
+<p><span style='font-size:10.0pt'>When the Program is made available in source
+code form:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it must be made available under this Agreement; and </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
+copy of this Agreement must be included with each copy of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
+copyright notices contained within the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
+originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution. </span></p>
+
+<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
+
+<p><span style='font-size:10.0pt'>Commercial distributors of software may
+accept certain responsibilities with respect to end users, business partners
+and the like. While this license is intended to facilitate the commercial use
+of the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes the
+Program in a commercial product offering, such Contributor (&quot;Commercial
+Contributor&quot;) hereby agrees to defend and indemnify every other
+Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
+costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
+legal actions brought by a third party against the Indemnified Contributor to
+the extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor
+to control, and cooperate with the Commercial Contributor in, the defense and
+any related settlement negotiations. The Indemnified Contributor may participate
+in any such claim at its own expense.</span> </p>
+
+<p><span style='font-size:10.0pt'>For example, a Contributor might include the
+Program in a commercial product offering, Product X. That Contributor is then a
+Commercial Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance claims and
+warranties are such Commercial Contributor's responsibility alone. Under this
+section, the Commercial Contributor would have to defend claims against the
+other Contributors related to those performance claims and warranties, and if a
+court requires any other Contributor to pay any damages as a result, the
+Commercial Contributor must pay those damages.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and distributing the
+Program and assumes all risks associated with its exercise of rights under this
+Agreement , including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs or
+equipment, and unavailability or interruption of operations. </span></p>
+
+<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
+THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
+
+<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
+or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without
+further action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.</span> </p>
+
+<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
+against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with
+other software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the date
+such litigation is filed. </span></p>
+
+<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
+shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable
+period of time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive. </span></p>
+
+<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
+copies of this Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The Agreement
+Steward reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement Steward has
+the right to modify this Agreement. The Eclipse Foundation is the initial
+Agreement Steward. The Eclipse Foundation may assign the responsibility to
+serve as the Agreement Steward to a suitable separate entity. Each new version
+of the Agreement will be given a distinguishing version number. The Program
+(including Contributions) may always be distributed subject to the version of
+the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program
+(including its Contributions) under the new version. Except as expressly stated
+in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.</span> </p>
+
+<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
+State of New York and the intellectual property laws of the United States of
+America. No party to this Agreement will bring a legal action under this
+Agreement more than one year after the cause of action arose. Each party waives
+its rights to a jury trial in any resulting litigation.</span> </p>
+
+<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+</div>
+
+</div>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/mylyn/features/org.eclipse.dltk.mylyn.sdk/rootfiles/epl-v10.html b/mylyn/features/org.eclipse.dltk.mylyn.sdk/rootfiles/epl-v10.html
new file mode 100644
index 0000000..cb1073a
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn.sdk/rootfiles/epl-v10.html
@@ -0,0 +1,304 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<html xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<link rel=File-List
+href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
+<title>Eclipse Public License - Version 1.0</title>
+<style>
+<!--
+ /* Font Definitions */
+@font-face
+	{
+	panose-1:2 11 6 4 3 5 4 4 2 4;
+	mso-font-charset:0;
+	mso-font-pitch:variable;
+	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
+ /* Style Definitions */
+p.MsoNormal, li.MsoNormal, div.MsoNormal
+	{mso-style-parent:"";
+	margin:0in;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	}
+p
+	{margin-right:0in;
+	mso-margin-top-alt:auto;
+	mso-margin-bottom-alt:auto;
+	margin-left:0in;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	}
+p.BalloonText, li.BalloonText, div.BalloonText
+	{mso-style-name:"Balloon Text";
+	margin:0in;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:8.0pt;
+	
+	}
+@page Section1
+	{size:8.5in 11.0in;
+	margin:1.0in 1.25in 1.0in 1.25in;
+	mso-header-margin:.5in;
+	mso-footer-margin:.5in;
+	mso-paper-source:0;}
+div.Section1
+	{page:Section1;}
+-->
+</style>
+</head>
+
+<body lang="EN-US" style='tab-interval:.5in'>
+
+<div class=Section1>
+
+<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
+</p>
+
+<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
+THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
+REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
+OF THIS AGREEMENT.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+in the case of the initial Contributor, the initial code and documentation
+distributed under this Agreement, and<br clear=left>
+b) in the case of each subsequent Contributor:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+changes to the Program, and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+additions to the Program;</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
+such changes and/or additions to the Program originate from and are distributed
+by that particular Contributor. A Contribution 'originates' from a Contributor
+if it was added to the Program by such Contributor itself or anyone acting on
+such Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in conjunction
+with the Program under their own license agreement, and (ii) are not derivative
+works of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
+entity that distributes the Program.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
+claims licensable by a Contributor which are necessarily infringed by the use
+or sale of its Contribution alone or when combined with the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
+distributed in accordance with this Agreement.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
+receives the Program under this Agreement, including all Contributors.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+Subject to the terms of this Agreement, each Contributor hereby grants Recipient
+a non-exclusive, worldwide, royalty-free copyright license to<span
+style='color:red'> </span>reproduce, prepare derivative works of, publicly
+display, publicly perform, distribute and sublicense the Contribution of such
+Contributor, if any, and such derivative works, in source code and object code
+form.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
+patent license under Licensed Patents to make, use, sell, offer to sell, import
+and otherwise transfer the Contribution of such Contributor, if any, in source
+code and object code form. This patent license shall apply to the combination
+of the Contribution and the Program if, at the time the Contribution is added
+by the Contributor, such addition of the Contribution causes such combination
+to be covered by the Licensed Patents. The patent license shall not apply to
+any other combinations which include the Contribution. No hardware per se is
+licensed hereunder. </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
+Recipient understands that although each Contributor grants the licenses to its
+Contributions set forth herein, no assurances are provided by any Contributor
+that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient
+for claims brought by any other entity based on infringement of intellectual
+property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility
+to secure any other intellectual property rights needed, if any. For example,
+if a third party patent license is required to allow Recipient to distribute
+the Program, it is Recipient's responsibility to acquire that license before
+distributing the Program.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
+Each Contributor represents that to its knowledge it has sufficient copyright
+rights in its Contribution, if any, to grant the copyright license set forth in
+this Agreement. </span></p>
+
+<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
+Program in object code form under its own license agreement, provided that:</span>
+</p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it complies with the terms and conditions of this Agreement; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+its license agreement:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title
+and non-infringement, and implied warranties or conditions of merchantability
+and fitness for a particular purpose; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+effectively excludes on behalf of all Contributors all liability for damages,
+including direct, indirect, special, incidental and consequential damages, such
+as lost profits; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
+states that any provisions which differ from this Agreement are offered by that
+Contributor alone and not by any other party; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
+states that source code for the Program is available from such Contributor, and
+informs licensees how to obtain it in a reasonable manner on or through a
+medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
+
+<p><span style='font-size:10.0pt'>When the Program is made available in source
+code form:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it must be made available under this Agreement; and </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
+copy of this Agreement must be included with each copy of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
+copyright notices contained within the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
+originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution. </span></p>
+
+<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
+
+<p><span style='font-size:10.0pt'>Commercial distributors of software may
+accept certain responsibilities with respect to end users, business partners
+and the like. While this license is intended to facilitate the commercial use
+of the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes the
+Program in a commercial product offering, such Contributor (&quot;Commercial
+Contributor&quot;) hereby agrees to defend and indemnify every other
+Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
+costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
+legal actions brought by a third party against the Indemnified Contributor to
+the extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor
+to control, and cooperate with the Commercial Contributor in, the defense and
+any related settlement negotiations. The Indemnified Contributor may participate
+in any such claim at its own expense.</span> </p>
+
+<p><span style='font-size:10.0pt'>For example, a Contributor might include the
+Program in a commercial product offering, Product X. That Contributor is then a
+Commercial Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance claims and
+warranties are such Commercial Contributor's responsibility alone. Under this
+section, the Commercial Contributor would have to defend claims against the
+other Contributors related to those performance claims and warranties, and if a
+court requires any other Contributor to pay any damages as a result, the
+Commercial Contributor must pay those damages.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and distributing the
+Program and assumes all risks associated with its exercise of rights under this
+Agreement , including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs or
+equipment, and unavailability or interruption of operations. </span></p>
+
+<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
+THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
+
+<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
+or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without
+further action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.</span> </p>
+
+<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
+against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with
+other software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the date
+such litigation is filed. </span></p>
+
+<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
+shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable
+period of time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive. </span></p>
+
+<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
+copies of this Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The Agreement
+Steward reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement Steward has
+the right to modify this Agreement. The Eclipse Foundation is the initial
+Agreement Steward. The Eclipse Foundation may assign the responsibility to
+serve as the Agreement Steward to a suitable separate entity. Each new version
+of the Agreement will be given a distinguishing version number. The Program
+(including Contributions) may always be distributed subject to the version of
+the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program
+(including its Contributions) under the new version. Except as expressly stated
+in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.</span> </p>
+
+<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
+State of New York and the intellectual property laws of the United States of
+America. No party to this Agreement will bring a legal action under this
+Agreement more than one year after the cause of action arose. Each party waives
+its rights to a jury trial in any resulting litigation.</span> </p>
+
+<p class=MsoNormal></p>
+
+</div>
+
+</body>
+
+</html>
\ No newline at end of file
diff --git a/mylyn/features/org.eclipse.dltk.mylyn.sdk/rootfiles/notice.html b/mylyn/features/org.eclipse.dltk.mylyn.sdk/rootfiles/notice.html
new file mode 100644
index 0000000..74122b2
--- /dev/null
+++ b/mylyn/features/org.eclipse.dltk.mylyn.sdk/rootfiles/notice.html
@@ -0,0 +1,79 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<html>
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
+<title>Eclipse.org Software User Agreement</title>
+</head>
+
+<body lang="EN-US" link=blue vlink=purple>
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>March 17, 2005</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
+   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java<sup>TM</sup> ARchive) in a directory named &quot;plugins&quot;.</li>
+	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+	<li>The top-level (root) directory</li>
+	<li>Plug-in and Fragment directories</li>
+	<li>Inside Plug-ins and Fragments packaged as JARs</li>
+	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+	<li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+	<li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+	<li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+	<li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+	<li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>
+	<li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+	<li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>
+</body>
+</html>
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/.classpath b/mylyn/plugins/org.eclipse.dltk.mylyn/.classpath
new file mode 100644
index 0000000..751c8f2
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/.cvsignore b/mylyn/plugins/org.eclipse.dltk.mylyn/.cvsignore
new file mode 100644
index 0000000..ba077a4
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/.cvsignore
@@ -0,0 +1 @@
+bin
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/.project b/mylyn/plugins/org.eclipse.dltk.mylyn/.project
new file mode 100644
index 0000000..b3d01d6
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/.project
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.dltk.mylyn</name>
+	<comment></comment>
+	<projects>
+		<project>org.eclipse.dltk</project>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/.settings/org.eclipse.jdt.core.prefs b/mylyn/plugins/org.eclipse.dltk.mylyn/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0a05151
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,12 @@
+#Mon May 26 16:37:14 NOVST 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
+org.eclipse.jdt.core.compiler.source=1.3
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/.settings/org.eclipse.jdt.ui.prefs b/mylyn/plugins/org.eclipse.dltk.mylyn/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..9acd383
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,3 @@
+#Mon May 26 14:33:59 NOVST 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/.settings/org.eclipse.ltk.core.refactoring.prefs b/mylyn/plugins/org.eclipse.dltk.mylyn/.settings/org.eclipse.ltk.core.refactoring.prefs
new file mode 100644
index 0000000..bbfda13
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/.settings/org.eclipse.ltk.core.refactoring.prefs
@@ -0,0 +1,3 @@
+#Mon May 26 14:32:51 NOVST 2008
+eclipse.preferences.version=1
+org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/META-INF/MANIFEST.MF b/mylyn/plugins/org.eclipse.dltk.mylyn/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..3158d12
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/META-INF/MANIFEST.MF
@@ -0,0 +1,35 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-Vendor: %pluginProvider
+Bundle-Localization: plugin
+Bundle-SymbolicName: org.eclipse.dltk.mylyn;singleton:=true
+Bundle-Version: 0.95.0.qualifier
+Bundle-Activator: org.eclipse.mylyn.internal.dltk.MylynDLTKPlugin
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.jface.text,
+ org.eclipse.ui.editors,
+ org.eclipse.core.resources,
+ org.eclipse.search,
+ org.eclipse.ui.ide,
+ org.eclipse.ui.forms,
+ org.eclipse.dltk.core,
+ org.eclipse.dltk,
+ org.eclipse.dltk.console,
+ org.eclipse.dltk.console.ui,
+ org.eclipse.dltk.ui,
+ org.eclipse.mylyn,
+ org.eclipse.mylyn.context.core,
+ org.eclipse.mylyn.context.ui,
+ org.eclipse.mylyn.ide.ui,
+ org.eclipse.mylyn.monitor.core,
+ org.eclipse.mylyn.monitor.ui,
+ org.eclipse.mylyn.resources.ui,
+ org.eclipse.mylyn.tasks.core,
+ org.eclipse.mylyn.tasks.ui,
+ org.eclipse.mylyn.commons.core
+Bundle-ActivationPolicy: lazy
+Import-Package: org.eclipse.ui.navigator,
+ org.eclipse.ui.views.contentoutline
+Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/about.html b/mylyn/plugins/org.eclipse.dltk.mylyn/about.html
new file mode 100644
index 0000000..7c8477f
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 5, 2008</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/build.properties b/mylyn/plugins/org.eclipse.dltk.mylyn/build.properties
new file mode 100644
index 0000000..871eb77
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/build.properties
@@ -0,0 +1,13 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               about.properties,\
+               about.mappings,\
+               about.ini,\
+               about.html,\
+               eclipse32.png,\
+               plugin.properties,\
+               schema/,\
+               icons/,\
+               plugin.xml
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/edge-ref-java.gif b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/edge-ref-java.gif
new file mode 100644
index 0000000..a20a2ba
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/edge-ref-java.gif
Binary files differ
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/edge-ref-junit.gif b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/edge-ref-junit.gif
new file mode 100644
index 0000000..32bcf89
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/edge-ref-junit.gif
Binary files differ
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/focus-disabled.gif b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/focus-disabled.gif
new file mode 100644
index 0000000..24bbeae
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/focus-disabled.gif
Binary files differ
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/focus.gif b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/focus.gif
new file mode 100644
index 0000000..bf8439c
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/focus.gif
Binary files differ
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/interest-decrease.gif b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/interest-decrease.gif
new file mode 100644
index 0000000..645a58f
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/interest-decrease.gif
Binary files differ
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/interest-filtering-browsing.gif b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/interest-filtering-browsing.gif
new file mode 100644
index 0000000..c3ca8c4
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/interest-filtering-browsing.gif
Binary files differ
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/interest-filtering.gif b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/interest-filtering.gif
new file mode 100644
index 0000000..dee01c3
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/interest-filtering.gif
Binary files differ
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/interest-folding.gif b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/interest-folding.gif
new file mode 100644
index 0000000..a720bbd
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/interest-folding.gif
Binary files differ
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/interest-increase.gif b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/interest-increase.gif
new file mode 100644
index 0000000..98a2586
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/interest-increase.gif
Binary files differ
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/mylar-overlay.gif b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/mylar-overlay.gif
new file mode 100644
index 0000000..6b16d40
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/mylar-overlay.gif
Binary files differ
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/proposals-other.gif b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/proposals-other.gif
new file mode 100644
index 0000000..28f69f0
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/proposals-other.gif
Binary files differ
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/proposals-type.gif b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/proposals-type.gif
new file mode 100644
index 0000000..b709469
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/proposals-type.gif
Binary files differ
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/templateprop_co.gif b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/templateprop_co.gif
new file mode 100644
index 0000000..fdde5fb
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/elcl16/templateprop_co.gif
Binary files differ
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/icons/etool16/junit-tab.gif b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/etool16/junit-tab.gif
new file mode 100644
index 0000000..956ec81
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/etool16/junit-tab.gif
Binary files differ
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/icons/etool16/launch-junit-pde.gif b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/etool16/launch-junit-pde.gif
new file mode 100644
index 0000000..bef090f
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/etool16/launch-junit-pde.gif
Binary files differ
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/icons/etool16/launch-junit.gif b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/etool16/launch-junit.gif
new file mode 100644
index 0000000..d3c85e3
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/etool16/launch-junit.gif
Binary files differ
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/icons/etool16/link-with-editor.gif b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/etool16/link-with-editor.gif
new file mode 100644
index 0000000..068d4c9
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/etool16/link-with-editor.gif
Binary files differ
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/icons/etool16/no-scroll.gif b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/etool16/no-scroll.gif
new file mode 100644
index 0000000..33f40b9
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/etool16/no-scroll.gif
Binary files differ
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/icons/etool16/wizard-prefs.gif b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/etool16/wizard-prefs.gif
new file mode 100644
index 0000000..9bb095d
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/etool16/wizard-prefs.gif
Binary files differ
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/icons/eview16/active-hierarchy.gif b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/eview16/active-hierarchy.gif
new file mode 100644
index 0000000..f3aa87a
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/eview16/active-hierarchy.gif
Binary files differ
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/icons/eview16/editor-mylar-class.gif b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/eview16/editor-mylar-class.gif
new file mode 100644
index 0000000..134d795
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/eview16/editor-mylar-class.gif
Binary files differ
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/icons/eview16/editor-mylar-java.gif b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/eview16/editor-mylar-java.gif
new file mode 100644
index 0000000..ef98ae1
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/eview16/editor-mylar-java.gif
Binary files differ
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/icons/eview16/mylar.gif b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/eview16/mylar.gif
new file mode 100644
index 0000000..dee01c3
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/eview16/mylar.gif
Binary files differ
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/icons/wizban/banner-prefs.gif b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/wizban/banner-prefs.gif
new file mode 100644
index 0000000..ce0f6e3
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/icons/wizban/banner-prefs.gif
Binary files differ
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/plugin.properties b/mylyn/plugins/org.eclipse.dltk.mylyn/plugin.properties
new file mode 100644
index 0000000..6721fe5
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/plugin.properties
@@ -0,0 +1,2 @@
+pluginProvider=Eclipse.org
+pluginName=Dynamic Languages Toolkit IncrTcl Core
\ No newline at end of file
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/plugin.xml b/mylyn/plugins/org.eclipse.dltk.mylyn/plugin.xml
new file mode 100644
index 0000000..0e9af69
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/plugin.xml
@@ -0,0 +1,250 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<?eclipse version="3.0"?>
+<plugin>
+   <extension-point id="ScriptEditorContributor" 
+   		name="Mylyn Script Editor Contributor" 
+   		schema="schema/scriptEditorContributor.exsd"/>
+	
+	<extension
+	       point="org.eclipse.mylyn.context.core.bridges">
+	    <structureBridge
+           class="org.eclipse.mylyn.internal.dltk.DLTKStructureBridge"
+           name="Script Structure Bridge"
+           parentContentType="*"/>     
+	</extension>
+	   
+	<extension point="org.eclipse.mylyn.context.ui.bridges">
+	    <uiBridge
+	          class="org.eclipse.mylyn.internal.dltk.ui.DLTKUiBridge"
+	          contentType="script"
+	          activeSearchIcon="icons/elcl16/edge-ref-java.gif"
+           	  activeSearchLabel="Script Search"/>
+	    <labelProvider
+	          class="org.eclipse.mylyn.internal.dltk.ui.DLTKContextLabelProvider"
+	          contentType="script"/>
+        <preservedFilters
+            viewId="org.eclipse.dltk.mylyn.navigatorContent">
+           <filter
+                 class="org.eclipse.mylyn.internal.dltk.ui.DLTKDeclarationsFilter">
+           </filter>
+        </preservedFilters>
+        <preservedFilters
+              viewId="org.eclipse.ui.navigator.ProjectExplorer">
+           <filter
+                 class="org.eclipse.mylyn.internal.dltk.ui.DLTKDeclarationsFilter">
+           </filter>
+        </preservedFilters>
+   </extension>
+
+  	<!-- ==================== Context Editing Common Navigator ==================== -->
+
+	<extension
+			point="org.eclipse.ui.navigator.viewer">
+		<viewerContentBinding 
+			viewerId="org.eclipse.mylyn.context.ui.navigator.context">
+     <includes>
+        <contentExtension
+              pattern="org.eclipse.dltk.core.DLTKContent">
+        </contentExtension>
+     </includes>
+		</viewerContentBinding>
+	</extension>
+ <extension
+       point="org.eclipse.ui.perspectiveExtensions">
+    <perspectiveExtension
+          targetID="org.eclipse.dltk.ruby.ui.RubyPerspective">
+    </perspectiveExtension>
+ </extension>
+
+  	<!-- ==================== Editors ==================== -->
+
+	
+	
+	
+ 
+
+   <extension point="org.eclipse.ui.viewActions"> 
+		<viewContribution 
+		id="org.eclipse.mylyn.dltk.explorer.contribution" 
+   		targetID="org.eclipse.dltk.ui.ScriptExplorer">
+    	<action
+           class="org.eclipse.mylyn.internal.dltk.ui.actions.FocusScriptExplorerAction"
+           disabledIcon="icons/elcl16/focus-disabled.gif"
+           enablesFor="*"
+           icon="icons/elcl16/focus.gif"
+           id="org.eclipse.mylyn.actions.filter.scriptExplorer"
+           label="Focus on Active Task"
+           menubarPath="mylyn"
+           style="toggle"
+           toolbarPath="mylyn"
+           tooltip="Focus on Active Task"> 
+  		</action> 
+      </viewContribution>
+ 	  <viewContribution
+       id="org.eclipse.mylyn.ui.views.active.search.contribution"
+       targetID="org.eclipse.mylyn.ui.views.active.search">
+ 		</viewContribution>
+ 		
+ 	<viewContribution 
+		id="org.eclipse.mylyn.ui.debug.view.contribution" 
+   		targetID="org.eclipse.debug.ui.DebugView">
+    	<action
+           class="org.eclipse.mylyn.internal.dltk.ui.actions.FocusDebugViewAction"
+           disabledIcon="icons/elcl16/focus-disabled.gif"
+           enablesFor="*"
+           icon="icons/elcl16/focus.gif"
+           id="org.eclipse.mylyn.ui.actions.FilterResourceNavigatorAction"
+           label="Focus on Active Task (Experimental)"
+           menubarPath="mylyn"
+           style="toggle"
+           toolbarPath="mylyn"
+           tooltip="Focus on Active Task (Experimental)"> 
+  		</action> 
+      </viewContribution> 
+	</extension>
+	
+  <extension point="org.eclipse.ui.popupMenus"> 
+     <objectContribution
+           adaptable="false"
+           id="org.eclipse.mylyn.internal.dltk.ui.interest"
+           objectClass="org.eclipse.dltk.core.IModelElement">
+     	<action
+            class="org.eclipse.mylyn.internal.context.ui.actions.InterestDecrementAction"
+            enablesFor="*"
+            icon="icons/elcl16/interest-decrease.gif"
+            id="org.eclipse.mylyn.internal.dltk.ui.actions.interest.decrement"
+            label="Remove from Context"
+            menubarPath="additions"
+            tooltip="Mark selected element as uninteresting">
+      </action>
+	    <action  
+  		  	label="Mark as Landmark" 
+	  		tooltip="Mark the selected element as a landmark"
+	  		menubarPath="additions" 
+	  		id="org.eclipse.mylyn.ui.actions.InterestIncrementAction" 
+	  		class="org.eclipse.mylyn.internal.context.ui.actions.InterestIncrementAction"
+	  		icon="icons/elcl16/interest-increase.gif"
+	  		enablesFor="*"/>
+     <visibility>
+        <systemProperty
+              name="org.eclipse.mylyn.context.core.context.active"
+              value="true">
+        </systemProperty>
+     </visibility>
+	 </objectContribution>
+     <objectContribution
+           adaptable="false"
+           id="org.eclipse.dltk.mylyn.ui.interest.contribution.container"
+           objectClass="org.eclipse.dltk.internal.ui.scriptview.BuildPathContainer">
+     	<action
+            class="org.eclipse.mylyn.internal.context.ui.actions.InterestDecrementAction"
+            enablesFor="*"
+            icon="icons/elcl16/interest-decrease.gif"
+            id="org.eclipse.mylyn.internal.dltk.ui.actions.interest.decrement.container"
+            label="Remove from Context"
+            menubarPath="additions"
+            tooltip="Mark selected element as uninteresting">
+      </action>
+      <action
+            class="org.eclipse.mylyn.internal.context.ui.actions.InterestIncrementAction"
+            enablesFor="*"
+            icon="icons/elcl16/interest-increase.gif"
+            id="org.eclipse.mylyn.ui.actions.InterestIncrementAction"
+            label="Mark as Landmark"
+            menubarPath="additions"
+            tooltip="Mark the selected element as a landmark">
+      </action>
+      <visibility>
+         <systemProperty
+               name="org.eclipse.mylyn.context.core.context.active"
+               value="true">
+         </systemProperty>
+      </visibility>
+     </objectContribution>
+  </extension>   
+
+  <extension point="org.eclipse.ui.actionSets">
+	<actionSet
+            id="org.eclipse.dltk.mylyn.actionSet"
+            label="Mylyn DLTK"
+            visible="true"> 
+            
+  		<action
+          class="org.eclipse.mylyn.internal.dltk.ui.actions.ToggleActiveFoldingAction"
+          definitionId="org.eclipse.dltk.mylyn.ui.editor.folding.auto"
+          icon="icons/elcl16/interest-folding.gif"
+          id="org.eclipse.dltk.mylyn.ui.editor.folding.auto"
+          label="Automatically Fold Unintersting Elements"
+          style="toggle"
+          toolbarPath="org.eclipse.ui.edit.text.actionSet.presentation/Presentation"
+          tooltip="Automatically Fold Unintersting Elements">
+       <enablement>
+          <systemProperty
+                name="org.eclipse.mylyn.context.core.context.active"
+                value="true">
+          </systemProperty>
+       </enablement>
+      	</action> 
+        <action
+               definitionId="org.eclipse.mylyn.dltk.ui.search.context"
+               label="Search the current task context"
+               class="org.eclipse.mylyn.internal.dltk.ui.actions.FindReferencesInContextAction"
+               id="org.eclipse.dltk.mylyn.ui.search.context">
+         </action>
+    </actionSet>
+  </extension>
+  
+
+  
+	<extension point="org.eclipse.ui.newWizards">
+      <wizard
+            canFinishEarly="false"
+            category="org.eclipse.mylyn.wizards"
+            class="org.eclipse.mylyn.internal.dltk.ui.wizards.MylynPreferenceWizard"
+            hasPages="true"
+            icon="icons/etool16/wizard-prefs.gif"
+            id="org.eclipse.mylyn.dltk.ui.wizards.preferences"
+            name="Recommended Preferences"
+            project="false">
+      </wizard>
+   </extension>
+
+   <extension point="org.eclipse.ui.commands">
+	  <command
+         categoryId="org.eclipse.mylyn.ui"
+         description="Search the current task context"
+         id="org.eclipse.mylyn.dltk.ui.search.context"
+         name="Search Task Context">
+      </command>
+	  <command
+         categoryId="org.eclipse.mylyn.ui"
+         description="Toggle Active Folding"
+         id="org.eclipse.mylyn.dltk.ui.editor.folding.auto"
+         name="Toggle Active Folding">
+      </command>
+   </extension>
+   <extension
+         point="org.eclipse.ui.actionSetPartAssociations">
+      <actionSetPartAssociation
+            targetID="org.eclipse.mylyn.dltk.actionSet.browsing">
+         <part
+               id="org.eclipse.dltk.ui.MembersView">
+         </part>
+      </actionSetPartAssociation>
+   </extension>
+   <extension
+         point="org.eclipse.dltk.ui.dltkElementFilters">
+      <filter
+            class="org.eclipse.mylyn.internal.dltk.ui.DLTKDeclarationsFilter"
+            description="Member Filter"
+            enabled="false"
+            id="org.eclipse.dltk.mylyn.MembersFilter"
+            name="Member Filter"
+            targetId="org.eclipse.dltk.ScriptExplorer">
+      </filter>
+   </extension>
+
+</plugin>
+
+     
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/schema/scriptEditorContributor.exsd b/mylyn/plugins/org.eclipse.dltk.mylyn/schema/scriptEditorContributor.exsd
new file mode 100644
index 0000000..e3118b5
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/schema/scriptEditorContributor.exsd
@@ -0,0 +1,122 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.mylyn.java">
+<annotation>
+      <appInfo>
+         <meta.schema plugin="org.eclipse.mylyn.java" id="javaEditorContributor" name="Mylyn Java Editor Contributor"/>
+      </appInfo>
+      <documentation>
+         [Enter description of this extension point.]
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <complexType>
+         <sequence>
+            <element ref="hyperlinkDetector" minOccurs="0" maxOccurs="unbounded"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appInfo>
+                  <meta.attribute translatable="true"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="hyperlinkDetector">
+      <complexType>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="java"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appInfo>
+                  <meta.attribute translatable="true"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="since"/>
+      </appInfo>
+      <documentation>
+         [Enter the first release in which this extension point appears.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="examples"/>
+      </appInfo>
+      <documentation>
+         [Enter extension point usage example here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="apiInfo"/>
+      </appInfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="implementation"/>
+      </appInfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="copyright"/>
+      </appInfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+</schema>
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ActiveFoldingEditorTracker.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ActiveFoldingEditorTracker.java
new file mode 100644
index 0000000..e33e185
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ActiveFoldingEditorTracker.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.mylyn.internal.dltk;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.dltk.internal.ui.editor.ScriptEditor;
+import org.eclipse.mylyn.internal.dltk.ui.editor.ActiveFoldingListener;
+import org.eclipse.mylyn.monitor.ui.AbstractEditorTracker;
+
+import org.eclipse.ui.IEditorPart;
+
+
+public class ActiveFoldingEditorTracker extends AbstractEditorTracker {
+
+	protected Map editorListenerMap = new HashMap();
+
+
+	public void editorOpened(IEditorPart part) {
+		if (part instanceof ScriptEditor)
+			registerEditor((ScriptEditor) part);
+	}
+
+	public void editorClosed(IEditorPart part) {
+		if (part instanceof ScriptEditor)
+			unregisterEditor((ScriptEditor) part);
+	}
+
+	public void registerEditor(final ScriptEditor editor) {
+		if (editorListenerMap.containsKey(editor)) {
+			return;
+		} else {
+			ActiveFoldingListener listener = new ActiveFoldingListener(editor);
+			editorListenerMap.put(editor, listener);
+		}
+	}
+
+	public void unregisterEditor(ScriptEditor editor) {
+		ActiveFoldingListener listener = (ActiveFoldingListener) editorListenerMap.get(editor);
+		if (listener != null) {
+			listener.dispose();
+		} 
+		editorListenerMap.remove(editor);
+	}
+
+	/**
+	 * For testing.
+	 */
+	public Map getEditorListenerMap() {
+		return editorListenerMap;
+	}
+
+	protected void editorBroughtToTop(IEditorPart part) {
+		// ignore
+	}
+
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/DLTKStructureBridge.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/DLTKStructureBridge.java
new file mode 100644
index 0000000..1ac6d3e
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/DLTKStructureBridge.java
@@ -0,0 +1,357 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+/*
+ * Created on Apr 7, 2005
+ */
+package org.eclipse.mylyn.internal.dltk;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.dltk.core.DLTKCore;
+import org.eclipse.dltk.core.IMember;
+import org.eclipse.dltk.core.IModelElement;
+import org.eclipse.dltk.core.IParent;
+import org.eclipse.dltk.core.IProjectFragment;
+import org.eclipse.dltk.core.ISourceModule;
+import org.eclipse.dltk.core.ISourceReference;
+import org.eclipse.dltk.core.IType;
+import org.eclipse.dltk.core.ModelException;
+import org.eclipse.dltk.internal.core.ProjectFragment;
+import org.eclipse.dltk.internal.ui.scriptview.BuildPathContainer;
+import org.eclipse.dltk.ui.util.ExceptionHandler;
+import org.eclipse.mylyn.context.core.AbstractContextStructureBridge;
+import org.eclipse.mylyn.context.core.IInteractionElement;
+import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
+import org.eclipse.mylyn.internal.context.core.DegreeOfSeparation;
+import org.eclipse.mylyn.internal.resources.ui.ResourceStructureBridge;
+import org.eclipse.ui.internal.WorkingSet;
+import org.eclipse.ui.views.markers.internal.ConcreteMarker;
+
+public class DLTKStructureBridge extends AbstractContextStructureBridge {
+
+	public final static String CONTENT_TYPE = "script";
+
+	public List providers;
+
+	public DLTKStructureBridge() {
+		providers = new ArrayList();
+		// providers.add(new JavaReferencesProvider());
+		// providers.add(new JavaImplementorsProvider());
+		// providers.add(new JavaReadAccessProvider());
+		// providers.add(new JavaWriteAccessProvider());
+		// providers.add(new JUnitReferencesProvider());
+	}
+
+	public String getContentType() {
+		return CONTENT_TYPE;
+	}
+
+	public Object getAdaptedParent(Object object) {
+		if (object instanceof IFile) {
+			IFile file = (IFile) object;
+			return DLTKCore.create(file.getParent());
+		} else {
+			return super.getAdaptedParent(object);
+		}
+	}
+
+	public String getParentHandle(String handle) {
+		IModelElement modelElement = (IModelElement) getObjectForHandle(handle);
+		if (modelElement != null && modelElement.getParent() != null) {
+			return getHandleIdentifier(modelElement.getParent());
+		} else {
+			return null;
+		}
+	}
+
+	public List getChildHandles(String handle) {
+		Object object = getObjectForHandle(handle);
+		if (object instanceof IModelElement) {
+			IModelElement element = (IModelElement) object;
+			if (element instanceof IParent) {
+				IParent parent = (IParent) element;
+				IModelElement[] children;
+				try {
+					children = parent.getChildren();
+					List childHandles = new ArrayList();
+					for (int i = 0; i < children.length; i++) {
+						String childHandle = getHandleIdentifier(children[i]);
+						if (childHandle != null)
+							childHandles.add(childHandle);
+					}
+					AbstractContextStructureBridge parentBridge = ContextCorePlugin
+							.getDefault().getStructureBridge(parentContentType);
+					if (parentBridge != null
+							&& parentBridge instanceof ResourceStructureBridge) {
+						if (element.getElementType() < IModelElement.TYPE) {
+							List resourceChildren = parentBridge
+									.getChildHandles(handle);
+							if (!resourceChildren.isEmpty())
+								childHandles.addAll(resourceChildren);
+						}
+					}
+
+					return childHandles;
+				} catch (ModelException e) {
+					// ignore these, usually indicate no-existent element
+				} catch (Exception e) {
+					MylynStatusHandler.fail(e, "could not get child", false);
+				}
+			}
+		}
+		return new ArrayList();
+	}
+
+	public Object getObjectForHandle(String handle) {
+		try {
+			return DLTKCore.create(handle);
+		} catch (Throwable t) {
+			MylynStatusHandler.log(
+					"Could not create script element for handle: " + handle,
+					this);
+			return null;
+		}
+	}
+
+	/**
+	 * Uses resource-compatible path for projects
+	 */
+
+	public String getHandleIdentifier(Object object) {
+		if (object instanceof IModelElement) {
+			return ((IModelElement) object).getHandleIdentifier();
+		} else {
+			if (object instanceof IAdaptable) {
+				Object adapter = ((IAdaptable) object)
+						.getAdapter(IModelElement.class);
+				if (adapter instanceof IModelElement) {
+					return ((IModelElement) adapter).getHandleIdentifier();
+				}
+			}
+		}
+		return null;
+	}
+
+	public boolean canBeLandmark(String handle) {
+		IModelElement element = (IModelElement) getObjectForHandle(handle);
+		if ((element instanceof IMember || element instanceof IType || element instanceof ISourceModule)
+				&& element.exists()) {
+			return true;
+		} else {
+			return false;
+		}
+	}
+
+	/**
+	 * TODO: figure out if the non IModelElement stuff is needed
+	 */
+
+	public boolean acceptsObject(Object object) {
+		if (object instanceof IResource) {
+			Object adapter = ((IResource) object)
+					.getAdapter(IModelElement.class);
+			return adapter instanceof IModelElement;
+		}
+
+		boolean accepts = object instanceof IModelElement
+				|| object instanceof ProjectFragment
+				|| object instanceof BuildPathContainer.RequiredProjectWrapper // ||
+				// object
+				// instanceof
+				// EntryFile
+				|| object instanceof IProjectFragment
+				|| object instanceof WorkingSet;
+
+		return accepts;
+	}
+
+	/**
+	 * Uses special rules for classpath containers since these do not have an
+	 * associated interest, i.e. they're not IModelElement(s).
+	 */
+	public boolean canFilter(Object object) {
+		if (object instanceof BuildPathContainer.RequiredProjectWrapper) {
+			return true;
+		}
+
+		// else if (object instanceof PackageFragmentRootContainer) {
+		// // since not in model, check if it contains anything interesting
+		// PackageFragmentRootContainer container =
+		// (PackageFragmentRootContainer) object;
+		//
+		// Object[] children = container.getChildren();
+		// for (int i = 0; i < children.length; i++) {
+		// if (children[i] instanceof JarPackageFragmentRoot) {
+		// JarPackageFragmentRoot element = (JarPackageFragmentRoot)
+		// children[i];
+		// IMylarElement node =
+		// ContextCorePlugin.getContextManager().getElement(
+		// element.getHandleIdentifier());
+		// if (node != null && node.getInterest().isInteresting()) {
+		// return false;
+		// }
+		// }
+		// }
+		// }
+
+		else if (object instanceof WorkingSet) {
+			try {
+				WorkingSet workingSet = (WorkingSet) object;
+				IAdaptable[] elements = workingSet.getElements();
+				for (int i = 0; i < elements.length; i++) {
+					IAdaptable adaptable = elements[i];
+					IInteractionElement element = ContextCorePlugin
+							.getContextManager().getElement(
+									getHandleIdentifier(adaptable));
+					if (element.getInterest().isInteresting())
+						return false;
+				}
+			} catch (Exception e) {
+				return false;
+			}
+		}
+		return true;
+	}
+
+	public boolean isDocument(String handle) {
+		IModelElement element = (IModelElement) getObjectForHandle(handle);
+		return element instanceof ISourceModule;
+	}
+
+	public String getHandleForOffsetInObject(Object resource, int offset) {
+		if (resource == null || !(resource instanceof ConcreteMarker))
+			return null;
+		ConcreteMarker marker = (ConcreteMarker) resource;
+		try {
+			IResource res = marker.getResource();
+			ISourceModule compilationUnit = null;
+			if (res instanceof IFile) {
+				IFile file = (IFile) res;
+				if (file.getFileExtension().equals("java")) {
+					compilationUnit = DLTKCore.createSourceModuleFrom(file);
+				} else {
+					return null;
+				}
+			}
+			if (compilationUnit != null) {
+				IModelElement javaElement = compilationUnit.getElementAt(marker
+						.getMarker().getAttribute(IMarker.CHAR_START, 0));
+				if (javaElement != null) {
+
+					return javaElement.getHandleIdentifier();
+				} else {
+					return null;
+				}
+			} else {
+				return null;
+			}
+		} catch (ModelException ex) {
+			if (!ex.isDoesNotExist())
+				ExceptionHandler.handle(ex,
+						"error", "could not find java element"); //$NON-NLS-2$ //$NON-NLS-1$
+			return null;
+		} catch (Throwable t) {
+			MylynStatusHandler.fail(t, "Could not find element for: " + marker,
+					false);
+			return null;
+		}
+	}
+
+	public String getContentType(String elementHandle) {
+		return getContentType();
+	}
+
+	public List getRelationshipProviders() {
+		return providers;
+	}
+
+	public List getDegreesOfSeparation() {
+		List separations = new ArrayList();
+
+		// separations.add(new DegreeOfSeparation(DOS_1_LABEL, 0));
+		// separations.add(new DegreeOfSeparation(DOS_1_LABEL, 1));
+		// separations.add(new DegreeOfSeparation(DOS_2_LABEL, 2));
+		// separations.add(new DegreeOfSeparation(DOS_3_LABEL, 3));
+		// separations.add(new DegreeOfSeparation(DOS_4_LABEL, 4));
+		// separations.add(new DegreeOfSeparation(DOS_5_LABEL, 5));
+		separations.add(new DegreeOfSeparation("disabled", 0));
+		separations.add(new DegreeOfSeparation("landmark resources", 1));
+		separations.add(new DegreeOfSeparation("interesting resources", 2));
+		separations.add(new DegreeOfSeparation("interesting projects", 3));
+		separations.add(new DegreeOfSeparation("project dependencies", 4));
+		separations.add(new DegreeOfSeparation("entire workspace (slow)", 5));
+		return separations;
+	}
+
+	/**
+	 * Some copying from:
+	 * 
+	 * @see org.eclipse.jdt.ui.ProblemsLabelDecorator
+	 */
+	public boolean containsProblem(IInteractionElement node) {
+		try {
+			IModelElement element = (IModelElement) getObjectForHandle(node
+					.getHandleIdentifier());
+			switch (element.getElementType()) {
+			case IModelElement.SCRIPT_PROJECT:
+			case IModelElement.PROJECT_FRAGMENT:
+				return getErrorTicksFromMarkers(element.getResource(),
+						IResource.DEPTH_INFINITE, null);
+			case IModelElement.PACKAGE_DECLARATION:
+			case IModelElement.SOURCE_MODULE:
+			case IModelElement.BINARY_MODULE:
+				return getErrorTicksFromMarkers(element.getResource(),
+						IResource.DEPTH_ONE, null);
+			case IModelElement.TYPE:
+			case IModelElement.METHOD:
+			case IModelElement.FIELD:
+				ISourceModule cu = (ISourceModule) element
+						.getAncestor(IModelElement.SOURCE_MODULE);
+				if (cu != null)
+					return getErrorTicksFromMarkers(element.getResource(),
+							IResource.DEPTH_ONE, null);
+			}
+		} catch (CoreException e) {
+			// ignore
+		}
+		return false;
+	}
+
+	private boolean getErrorTicksFromMarkers(IResource res, int depth,
+			ISourceReference sourceElement) throws CoreException {
+		if (res == null || !res.isAccessible())
+			return false;
+		IMarker[] markers = res.findMarkers(IMarker.PROBLEM, true, depth);
+		if (markers != null) {
+			for (int i = 0; i < markers.length; i++) {
+				IMarker curr = markers[i];
+				if (sourceElement == null) {
+					int priority = curr.getAttribute(IMarker.SEVERITY, -1);
+					if (priority == IMarker.SEVERITY_ERROR) {
+						return true;
+					}
+				}
+			}
+		}
+		return false;
+	}
+
+	public String getLabel(Object arg0) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/InterestInducingProblemListener.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/InterestInducingProblemListener.java
new file mode 100644
index 0000000..a262d86
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/InterestInducingProblemListener.java
@@ -0,0 +1,88 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.dltk;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.dltk.core.IModelElement;
+import org.eclipse.dltk.ui.viewsupport.IProblemChangedListener;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.mylyn.context.core.IInteractionElement;
+import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
+
+public class InterestInducingProblemListener implements
+		IProblemChangedListener, IPropertyChangeListener {
+
+	// TODO: consider getting rid of this
+	private DLTKStructureBridge scriptStructureBridge = new DLTKStructureBridge();
+
+	public void problemsChanged(IResource[] changedResources,
+			boolean isMarkerChange) {
+		try {
+			if (!ContextCorePlugin.getContextManager().isContextActive()) {
+				return;
+			} else {
+				for (int i = 0; i < changedResources.length; i++) {
+					IResource resource = changedResources[i];
+					if (resource instanceof IFile) {
+						IModelElement modelElement = (IModelElement) resource
+								.getAdapter(IModelElement.class);
+						if (modelElement != null) {
+							IInteractionElement element = ContextCorePlugin
+									.getContextManager().getElement(
+											modelElement.getHandleIdentifier());
+							if (!scriptStructureBridge.containsProblem(element)) {
+								ContextCorePlugin
+										.getContextManager()
+										.removeErrorPredictedInterest(
+												element.getHandleIdentifier(),
+												DLTKStructureBridge.CONTENT_TYPE,
+												true);
+							} else {
+								ContextCorePlugin
+										.getContextManager()
+										.addErrorPredictedInterest(
+												element.getHandleIdentifier(),
+												DLTKStructureBridge.CONTENT_TYPE,
+												true);
+							}
+						}
+					}
+				}
+			}
+		} catch (Exception e) {
+			MylynStatusHandler.log(e, "could not update on marker change");
+		}
+	}
+
+	public void propertyChange(PropertyChangeEvent event) {
+		if (MylynDLTKPrefConstants.PREDICTED_INTEREST_ERRORS.equals(event
+				.getProperty())) {
+			if (MylynDLTKPlugin.getDefault().getPreferenceStore().getBoolean(
+					MylynDLTKPrefConstants.PREDICTED_INTEREST_ERRORS)) {
+				enable();
+			} else {
+				disable();
+			}
+		}
+	}
+
+	public void enable() {
+		//DLTKUIPlugin.getDefault().getProblemMarkerManager().addListener(this);
+	}
+
+	public void disable() {
+		//JavaPlugin.getDefault().getProblemMarkerManager().removeListener(this)
+		// ;
+	}
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/InterestUpdateDeltaListener.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/InterestUpdateDeltaListener.java
new file mode 100644
index 0000000..88d1151
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/InterestUpdateDeltaListener.java
@@ -0,0 +1,105 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.dltk;
+
+import org.eclipse.dltk.core.ElementChangedEvent;
+import org.eclipse.dltk.core.IElementChangedListener;
+import org.eclipse.dltk.core.IModelElement;
+import org.eclipse.dltk.core.IModelElementDelta;
+import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
+import org.eclipse.mylyn.context.core.IInteractionElement;
+
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.PlatformUI;
+
+
+public class InterestUpdateDeltaListener implements IElementChangedListener {
+
+	private static boolean asyncExecMode = true;
+
+	public void elementChanged(ElementChangedEvent event) {
+		IModelElementDelta delta = event.getDelta();
+		handleDelta(delta.getAffectedChildren());
+	}
+
+	/**
+	 * Only handles first addition/removal
+	 */
+	private void handleDelta(IModelElementDelta[] delta) {
+		try {
+			IModelElement added = null;
+			IModelElement removed = null;
+			for (int i = 0; i < delta.length; i++) {
+				IModelElementDelta child = delta[i];
+				if (child.getKind() == IModelElementDelta.ADDED) {
+					if (added == null)
+						added = child.getElement();
+				} else if (child.getKind() == IModelElementDelta.REMOVED) {
+					if (removed == null)
+						removed = child.getElement();
+				}
+				handleDelta(child.getAffectedChildren());
+			}
+
+			if (added != null && removed != null) {
+				IInteractionElement element = ContextCorePlugin.getContextManager().getElement(removed.getHandleIdentifier());
+				if (element != null)
+					resetHandle(element, added.getHandleIdentifier());
+			} else if (removed != null) {
+				IInteractionElement element = ContextCorePlugin.getContextManager().getElement(removed.getHandleIdentifier());
+				if (element != null)
+					delete(element);
+			}
+		} catch (Throwable t) {
+			MylynStatusHandler.fail(t, "delta update failed", false);
+		}
+	}
+
+	private void resetHandle(final IInteractionElement element, final String newHandle) {
+		if (!asyncExecMode) {
+			ContextCorePlugin.getContextManager().updateHandle(element, newHandle);
+		} else {
+			IWorkbench workbench = PlatformUI.getWorkbench();
+			if (workbench != null) {
+				workbench.getDisplay().asyncExec(new Runnable() {
+					public void run() {
+						ContextCorePlugin.getContextManager().updateHandle(element, newHandle);
+					}
+				});
+			}
+		}
+	}
+
+	private void delete(final IInteractionElement element) {		
+		if (!asyncExecMode) {
+			
+			//ContextCorePlugin.getContextManager().delete(element, null);			
+			ContextCorePlugin.getContextManager().deleteElement(element);
+		} else {
+			IWorkbench workbench = PlatformUI.getWorkbench();
+			if (workbench != null) {
+				workbench.getDisplay().asyncExec(new Runnable() {
+					public void run() {
+						ContextCorePlugin.getContextManager().deleteElement(element);
+					}
+				});
+			}
+		}
+	}
+
+	/**
+	 * For testing
+	 */
+	public static void setAsyncExecMode(boolean asyncExecMode) {
+		InterestUpdateDeltaListener.asyncExecMode = asyncExecMode;
+	}
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/MylynDLTKPlugin.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/MylynDLTKPlugin.java
new file mode 100644
index 0000000..9d61982
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/MylynDLTKPlugin.java
@@ -0,0 +1,326 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.mylyn.internal.dltk;
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+import org.eclipse.dltk.core.DLTKCore;
+import org.eclipse.dltk.internal.ui.editor.ScriptEditor;
+import org.eclipse.dltk.ui.DLTKUIPlugin;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
+import org.eclipse.mylyn.internal.dltk.ui.DLTKEditingMonitor;
+import org.eclipse.mylyn.internal.dltk.ui.DLTKUiUtil;
+import org.eclipse.mylyn.internal.dltk.ui.LandmarkMarkerManager;
+import org.eclipse.mylyn.internal.dltk.ui.editor.ActiveFoldingListener;
+import org.eclipse.mylyn.internal.dltk.ui.wizards.MylynPreferenceWizard;
+import org.eclipse.mylyn.internal.monitor.ui.MonitorUiPlugin;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorReference;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+public class MylynDLTKPlugin extends AbstractUIPlugin {
+
+	public static final String PLUGIN_ID = "org.eclipse.dltk.mylyn";
+
+	private static MylynDLTKPlugin INSTANCE;
+
+	private ResourceBundle resourceBundle;
+
+	private ActiveFoldingEditorTracker editorTracker;
+
+	// private PackageExplorerManager packageExplorerManager = new
+	// PackageExplorerManager();
+
+	private TypeHistoryManager typeHistoryManager = null;
+
+	private LandmarkMarkerManager landmarkMarkerManager = new LandmarkMarkerManager();
+
+	private InterestInducingProblemListener problemListener = new InterestInducingProblemListener();
+
+	private DLTKEditingMonitor dltkEditingMonitor;
+
+	private InterestUpdateDeltaListener dltkElementChangeListener = new InterestUpdateDeltaListener();
+
+	public MylynDLTKPlugin() {
+		super();
+		INSTANCE = this;
+	}
+
+	/**
+	 * Startup order is critical.
+	 */
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		initDefaultPrefs();
+
+		final IWorkbench workbench = PlatformUI.getWorkbench();
+		workbench.getDisplay().asyncExec(new Runnable() {
+			public void run() {
+				try {
+					// ContextCorePlugin.getContextManager().addListener(
+					// packageExplorerManager);
+					ContextCorePlugin.getContextManager().addListener(
+							landmarkMarkerManager);
+
+					try {
+						typeHistoryManager = new TypeHistoryManager();
+						ContextCorePlugin.getContextManager().addListener(
+								typeHistoryManager);
+					} catch (Throwable t) {
+						MylynStatusHandler
+								.log(t,
+										"Could not install type history manager, incompatible Eclipse version.");
+					}
+
+					if (getPreferenceStore().getBoolean(
+							MylynDLTKPrefConstants.PREDICTED_INTEREST_ERRORS)) {
+						problemListener.enable();
+					}
+					getPreferenceStore().addPropertyChangeListener(
+							problemListener);
+
+					// MylarMonitorPlugin.getDefault().
+					// addWindowPostSelectionListener(packageExplorerManager);
+
+					dltkEditingMonitor = new DLTKEditingMonitor();
+					MonitorUiPlugin.getDefault().getSelectionMonitors().add(
+							dltkEditingMonitor);
+					installEditorTracker(workbench);
+
+					// TODO: race conditions prevents this from running?
+					// if (FocusPackageExplorerAction.getDefault() != null) {
+					// FocusPackageExplorerAction.getDefault().update();
+					// }
+					// if (FocusBrowsingPerspectiveAction.getDefault() != null)
+					// {
+					// FocusBrowsingPerspectiveAction.getDefault().update();
+					// }
+
+					if (!getPreferenceStore().contains(
+							MylynPreferenceWizard.MYLYN_FIRST_RUN)) {
+						DLTKUiUtil.installContentAssist(DLTKUIPlugin
+								.getDefault().getPreferenceStore(), true);
+					}
+
+					if (!getPreferenceStore().contains(
+							MylynPreferenceWizard.MYLYN_FIRST_RUN)) {
+						MylynPreferenceWizard wizard = new MylynPreferenceWizard();
+						Shell shell = PlatformUI.getWorkbench()
+								.getActiveWorkbenchWindow().getShell();
+						if (wizard != null && shell != null
+								&& !shell.isDisposed()) {
+							WizardDialog dialog = new WizardDialog(shell,
+									wizard);
+							dialog.create();
+							dialog.open();
+							getPreferenceStore().putValue(
+									MylynPreferenceWizard.MYLYN_FIRST_RUN,
+									"false");
+						}
+					}
+
+					DLTKCore
+							.addElementChangedListener(dltkElementChangeListener);
+				} catch (Throwable t) {
+					MylynStatusHandler.fail(t,
+							"Mylyn DLTK plug-in initialization failed", true);
+				}
+			}
+		});
+	}
+
+	private void initDefaultPrefs() {
+		// getPreferenceStore().setDefault(MylarJavaPrefConstants.
+		// PACKAGE_EXPLORER_AUTO_EXPAND,
+		// true);
+		getPreferenceStore().setDefault(
+				MylynDLTKPrefConstants.PREDICTED_INTEREST_ERRORS, false);
+	}
+
+	public void stop(BundleContext context) throws Exception {
+		try {
+			super.stop(context);
+			INSTANCE = null;
+			resourceBundle = null;
+
+			// ContextCorePlugin.getContextManager().removeListener(
+			// packageExplorerManager);
+			ContextCorePlugin.getContextManager().removeListener(
+					typeHistoryManager);
+			ContextCorePlugin.getContextManager().removeListener(
+					landmarkMarkerManager);
+
+			MonitorUiPlugin.getDefault().getSelectionMonitors().remove(
+					dltkEditingMonitor);
+
+			// if (FocusPackageExplorerAction.getDefault() != null) {
+			// getPreferenceStore().removePropertyChangeListener(
+			// FocusPackageExplorerAction.getDefault());
+			// }
+
+			// if (PlatformUI.getWorkbench() != null &&
+			// !PlatformUI.getWorkbench().isClosing()) {
+			// for(IWorkbenchWindow w :
+			// PlatformUI.getWorkbench().getWorkbenchWindows()) {
+			// ISelectionService service = w.getSelectionService();
+			// service.removePostSelectionListener(packageExplorerManager);
+			// }
+			// }
+			DLTKCore.removeElementChangedListener(dltkElementChangeListener);
+			// CVSUIPlugin.getPlugin().getChangeSetManager().remove(
+			// changeSetManager);
+			// TODO: uninstall editor tracker
+		} catch (Exception e) {
+			MylynStatusHandler.fail(e, "Mylyn DLTK stop terminated abnormally",
+					false);
+		}
+	}
+
+	private void installEditorTracker(IWorkbench workbench) {
+		editorTracker = new ActiveFoldingEditorTracker();
+		editorTracker.install(workbench);
+		// workbench.addWindowListener(editorTracker);
+		// IWorkbenchWindow[] windows = workbench.getWorkbenchWindows();
+		// for (int i = 0; i < windows.length; i++) {
+		// windows[i].addPageListener(editorTracker);
+		// IWorkbenchPage[] pages = windows[i].getPages();
+		// for (int j = 0; j < pages.length; j++) {
+		// pages[j].addPartListener(editorTracker);
+		// }
+		// }
+
+		// update editors that are already opened
+		// for (IWorkbenchWindow w :
+		// PlatformUI.getWorkbench().getWorkbenchWindows())
+
+		for (int j = 0; j < PlatformUI.getWorkbench().getWorkbenchWindows().length; j++) {
+
+			IWorkbenchWindow w = PlatformUI.getWorkbench()
+					.getWorkbenchWindows()[j];
+			IWorkbenchPage page = w.getActivePage();
+			if (page != null) {
+				IEditorReference[] references = page.getEditorReferences();
+				for (int i = 0; i < references.length; i++) {
+					IEditorPart part = references[i].getEditor(false);
+					if (part != null && part instanceof ScriptEditor) {
+						ScriptEditor editor = (ScriptEditor) part;
+						editorTracker.registerEditor(editor);
+						ActiveFoldingListener.resetProjection(editor);
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * Returns the shared instance.
+	 */
+	public static MylynDLTKPlugin getDefault() {
+		return INSTANCE;
+	}
+
+	/**
+	 * Returns the string from the plugin's resource bundle, or 'key' if not
+	 * found.
+	 */
+	public static String getResourceString(String key) {
+		ResourceBundle bundle = MylynDLTKPlugin.getDefault()
+				.getResourceBundle();
+		try {
+			return (bundle != null) ? bundle.getString(key) : key;
+		} catch (MissingResourceException e) {
+			return key;
+		}
+	}
+
+	/**
+	 * Returns the plugin's resource bundle,
+	 */
+	public ResourceBundle getResourceBundle() {
+		try {
+			if (resourceBundle == null)
+				resourceBundle = ResourceBundle
+						.getBundle("org.eclipse.mylyn.java.JavaPluginResources");
+		} catch (MissingResourceException x) {
+			resourceBundle = null;
+		}
+		return resourceBundle;
+	}
+
+	/**
+	 * Returns an image descriptor for the image file at the given plug-in
+	 * relative path.
+	 * 
+	 * @param path
+	 *            the path
+	 * @return the image descriptor
+	 */
+	public static ImageDescriptor getImageDescriptor(String path) {
+		return AbstractUIPlugin.imageDescriptorFromPlugin(PLUGIN_ID, path);
+	}
+
+	// public static boolean isMylarEditorDefault() {
+	// IEditorRegistry editorRegistry =
+	// WorkbenchPlugin.getDefault().getEditorRegistry();
+	// IEditorDescriptor desc = editorRegistry.getDefaultEditor("*.java");
+	//
+	// return
+	// MylarJavaPrefConstants.MYLAR_JAVA_EDITOR_ID.equals(desc.getLabel());
+	// }
+
+	// public static void setDefaultEditorForJavaFiles(boolean mylar) {
+	//
+	// EditorRegistry editorRegistry = (EditorRegistry)
+	// WorkbenchPlugin.getDefault().getEditorRegistry();
+	// // HACK: cast to allow save to be called
+	// IFileEditorMapping[] array =
+	// WorkbenchPlugin.getDefault().getEditorRegistry().getFileEditorMappings();
+	//
+	// // HACK: cast to allow set to be called
+	// editorRegistry.setFileEditorMappings((FileEditorMapping[]) array);
+	// String defaultEditor = editorRegistry.getDefaultEditor("*.java").getId();
+	//
+	// if (mylar) {
+	//
+	// if (!(defaultEditor.equals(MylarJavaPrefConstants.MYLAR_JAVA_EDITOR_ID)))
+	// {
+	// editorRegistry.setDefaultEditor("*.java",
+	// MylarJavaPrefConstants.MYLAR_JAVA_EDITOR_ID);
+	// editorRegistry.saveAssociations();
+	// }
+	// } else {
+	// if (!(defaultEditor.equals(JavaUI.ID_CU_EDITOR))) {
+	// editorRegistry.setDefaultEditor("*.java", JavaUI.ID_CU_EDITOR);
+	// editorRegistry.saveAssociations();
+	// }
+	// }
+	// }
+
+	// public TypeHistoryManager getTypeHistoryManager() {
+	// return typeHistoryManager;
+	// }
+
+	/**
+	 * For testing.
+	 */
+	public ActiveFoldingEditorTracker getEditorTracker() {
+		return editorTracker;
+	}
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/MylynDLTKPrefConstants.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/MylynDLTKPrefConstants.java
new file mode 100644
index 0000000..8351458
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/MylynDLTKPrefConstants.java
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.dltk;
+
+public class MylynDLTKPrefConstants {
+
+	public static final String PREDICTED_INTEREST_ERRORS = "org.eclipse.dltk.mylyn.interest.prediction.errors";
+	public static final String ACTIVE_FOLDING_ENABLED = "org.eclipse.dltk.mylyn.active.folding.enabled";
+	public static final String AUTO_MANAGE_EDITORS = "org.eclipse.dltk.mylyn.auto.manage.editors";
+
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/MylynStatusHandler.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/MylynStatusHandler.java
new file mode 100644
index 0000000..ace449d
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/MylynStatusHandler.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.dltk;
+
+import org.eclipse.mylyn.internal.dltk.search.AbstractDLTKRelationProvider;
+import org.eclipse.mylyn.internal.dltk.ui.editor.ActiveFoldingListener;
+
+public class MylynStatusHandler {
+
+	public static void log(Throwable t, String string) {
+		// ignore
+
+	}
+
+	public static void fail(Throwable t, String string, boolean b) {
+		// ignore
+
+	}
+
+	public static void log(String string,
+			DLTKStructureBridge scriptStructureBridge) {
+		// ignore
+
+	}
+
+	public static void log(String string,
+			ActiveFoldingListener activeFoldingListener) {
+		// ignore
+
+	}
+
+	public static void log(String string,
+			AbstractDLTKRelationProvider abstractscriptRelationProvider) {
+		// TODO Auto-generated method stub
+
+	}
+
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/TypeHistoryManager.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/TypeHistoryManager.java
new file mode 100644
index 0000000..17087bf
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/TypeHistoryManager.java
@@ -0,0 +1,143 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.dltk;
+
+import java.util.List;
+import java.util.ListIterator;
+
+import org.eclipse.dltk.core.DLTKCore;
+import org.eclipse.dltk.core.IModelElement;
+import org.eclipse.dltk.core.IType;
+import org.eclipse.dltk.core.ModelException;
+import org.eclipse.mylyn.context.core.AbstractContextListener;
+import org.eclipse.mylyn.context.core.IInteractionContext;
+import org.eclipse.mylyn.context.core.IInteractionElement;
+import org.eclipse.mylyn.monitor.core.IInteractionEventListener;
+import org.eclipse.mylyn.monitor.core.InteractionEvent;
+
+
+public class TypeHistoryManager /*implements IInteractionEventListener*/extends AbstractContextListener {
+
+//	private TypeInfoFactory factory = new TypeInfoFactory();
+
+	public void contextActivated(IInteractionContext context) {
+		clearTypeHistory();
+		//for (IInteractionElement node : context.getInteresting())
+		for (ListIterator it = context.getInteresting().listIterator(); it.hasNext(); )
+		{
+			IInteractionElement node = (IInteractionElement)it.next();
+			updateTypeHistory(node, true);
+		}
+	}
+
+	/**
+	 * Path has to be compatible with ITypeNameRequestor
+	 */
+	private void updateTypeHistory(IInteractionElement node, boolean add) {
+		IModelElement element = DLTKCore.create(node.getHandleIdentifier());
+		if (element instanceof IType) {
+			IType type = (IType) element;
+			if (type != null && type.exists() ) {
+//					TypeInfo info = factory.create(type.getPackageFragment().getElementName().toCharArray(), type
+//							.getElementName().toCharArray(), enclosingTypeNames(type), type.getFlags(), getPath(type));
+
+//					JavaSearchTypeNameMatch typeNameMatch = new JavaSearchTypeNameMatch(type, type.getFlags());
+//					
+//					if (add && !OpenTypeHistory.getInstance().contains(typeNameMatch)) {
+//						OpenTypeHistory.getInstance().accessed(typeNameMatch);
+//					} else {
+//						OpenTypeHistory.getInstance().remove(typeNameMatch);
+//					}
+			}
+		}
+	}
+
+	/**
+	 * HACK: to avoid adding AspectJ types, for example:
+	 * 
+	 * class: =TJP Example/src<tjp{Demo.java[Demo aspect: =TJP Example/src<tjp*GetInfo.aj}GetInfo
+	 */
+	private boolean isAspectjType(IType type) {
+		if (type.getHandleIdentifier().indexOf('}') != -1) {
+			return true;
+		} else {
+			return false;
+		}
+	}
+
+	public void contextDeactivated(IInteractionContext context) {
+		clearTypeHistory();
+	}
+
+//	/**
+//	 * Public for testing
+//	 */
+	public void clearTypeHistory() {
+		//TypeNameMatch[] typeInfos = OpenTypeHistory.getInstance().getTypeInfos();
+		//for (int i = 0; i < typeInfos.length; i++) {
+		//	OpenTypeHistory.getInstance().remove(typeInfos[i]);
+		//} 
+	}
+
+	public void interestChanged(List nodes) {
+		for (ListIterator it = nodes.listIterator(); it.hasNext(); ) {
+			IInteractionElement node = (IInteractionElement) it.next();
+			updateTypeHistory(node, true);
+		}
+	}
+
+	public void elementDeleted(IInteractionElement node) {
+		updateTypeHistory(node, false);
+	}
+
+//	public void presentationSettingsChanging(UpdateKind kind) {
+//		// ignore
+//	}
+//
+//	public void presentationSettingsChanged(UpdateKind kind) {
+//		// ignore
+//	}
+
+
+	
+	public void landmarkAdded(IInteractionElement node) {
+		// ignore
+	}
+
+	public void landmarkRemoved(IInteractionElement node) {
+		// ignore
+	}
+
+	public void relationsChanged(IInteractionElement node) {
+		// ignore
+	}
+
+	public void contextCleared(IInteractionContext arg0) {
+		// ignore
+		
+	}
+
+	public void interactionObserved(InteractionEvent event) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	public void startMonitoring() {
+		// TODO Auto-generated method stub
+		
+	}
+
+	public void stopMonitoring() {
+		// TODO Auto-generated method stub
+		
+	}
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/search/AbstractDLTKRelationProvider.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/search/AbstractDLTKRelationProvider.java
new file mode 100644
index 0000000..c30dc21
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/search/AbstractDLTKRelationProvider.java
@@ -0,0 +1,451 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+/*
+ * Created on Jan 26, 2005
+ */
+package org.eclipse.mylyn.internal.dltk.search;
+
+import java.util.ArrayList;
+import java.util.ConcurrentModificationException;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Set;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.dltk.core.DLTKCore;
+import org.eclipse.dltk.core.IMember;
+import org.eclipse.dltk.core.IModelElement;
+import org.eclipse.dltk.core.IScriptProject;
+import org.eclipse.dltk.core.ISourceModule;
+import org.eclipse.dltk.core.IType;
+import org.eclipse.dltk.core.search.IDLTKSearchConstants;
+import org.eclipse.dltk.core.search.IDLTKSearchScope;
+import org.eclipse.dltk.core.search.SearchEngine;
+import org.eclipse.dltk.internal.ui.search.DLTKSearchQuery;
+import org.eclipse.dltk.internal.ui.search.DLTKSearchResult;
+import org.eclipse.dltk.ui.search.ElementQuerySpecification;
+import org.eclipse.dltk.ui.search.QuerySpecification;
+import org.eclipse.mylyn.context.core.AbstractContextStructureBridge;
+import org.eclipse.mylyn.context.core.IInteractionElement;
+import org.eclipse.mylyn.internal.context.core.AbstractRelationProvider;
+import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
+import org.eclipse.mylyn.internal.context.core.IActiveSearchListener;
+import org.eclipse.mylyn.internal.context.core.IActiveSearchOperation;
+import org.eclipse.mylyn.internal.dltk.DLTKStructureBridge;
+import org.eclipse.mylyn.internal.dltk.MylynStatusHandler;
+import org.eclipse.mylyn.internal.resources.ui.ResourcesUiBridgePlugin;
+import org.eclipse.search.ui.ISearchResult;
+import org.eclipse.search2.internal.ui.InternalSearchUI;
+
+public abstract class AbstractDLTKRelationProvider extends
+		AbstractRelationProvider {
+
+	public static final String ID_GENERIC = "org.eclipse.dltk.mylyn.relation";
+
+	public static final String NAME = "DLTK relationships";
+
+	private static final int DEFAULT_DEGREE = 2;
+
+	private static final List runningJobs = new ArrayList();
+
+	public String getGenericId() {
+		return ID_GENERIC;
+	}
+
+	protected AbstractDLTKRelationProvider(String structureKind, String id) {
+		super(structureKind, id);
+	}
+
+	protected void findRelated(final IInteractionElement node,
+			int degreeOfSeparation) {
+		if (node == null)
+			return;
+		if (node.getContentType() == null) {
+			MylynStatusHandler.log("null content type for: " + node, this);
+			return;
+		}
+		if (!node.getContentType().equals(DLTKStructureBridge.CONTENT_TYPE))
+			return;
+		IModelElement modelElement = DLTKCore
+				.create(node.getHandleIdentifier());
+		if (!acceptElement(modelElement) || !modelElement.exists()) {
+			return;
+		}
+
+		IDLTKSearchScope scope = createSearchScope(modelElement,
+				degreeOfSeparation);
+		if (scope != null)
+			runJob(node, degreeOfSeparation, getId());
+	}
+
+	private IDLTKSearchScope createSearchScope(IModelElement element,
+			int degreeOfSeparation) {
+		Set landmarks = ContextCorePlugin.getContextManager()
+				.getActiveLandmarks();
+		List interestingElements = ContextCorePlugin.getContextManager()
+				.getActiveContext().getInteresting();
+
+		Set searchElements = new HashSet();
+		int includeMask = IDLTKSearchScope.SOURCES;
+		if (degreeOfSeparation == 1) {
+			// for (IInteractionElement landmark : landmarks) {
+			for (Iterator it = landmarks.iterator(); it.hasNext();) {
+				IInteractionElement landmark = (IInteractionElement) it.next();
+				AbstractContextStructureBridge bridge = ContextCorePlugin
+						.getDefault().getStructureBridge(
+								landmark.getContentType());
+				if (includeNodeInScope(landmark, bridge)) {
+					Object o = bridge.getObjectForHandle(landmark
+							.getHandleIdentifier());
+					if (o instanceof IModelElement) {
+						IModelElement landmarkElement = (IModelElement) o;
+						if (landmarkElement.exists()) {
+							if (landmarkElement instanceof IMember
+									&& !landmark.getInterest().isPropagated()) {
+								searchElements.add(((IMember) landmarkElement)
+										.getSourceModule());
+							} else if (landmarkElement instanceof ISourceModule) {
+								searchElements.add(landmarkElement);
+							}
+						}
+					}
+				}
+			}
+		} else if (degreeOfSeparation == 2) {
+			// for (IInteractionElement interesting : interestingElements) {
+			for (Iterator it = interestingElements.iterator(); it.hasNext();) {
+				IInteractionElement interesting = (IInteractionElement) it
+						.next();
+				AbstractContextStructureBridge bridge = ContextCorePlugin
+						.getDefault().getStructureBridge(
+								interesting.getContentType());
+				if (includeNodeInScope(interesting, bridge)) {
+					Object object = bridge.getObjectForHandle(interesting
+							.getHandleIdentifier());
+					if (object instanceof IModelElement) {
+						IModelElement interestingElement = (IModelElement) object;
+						if (interestingElement.exists()) {
+							if (interestingElement instanceof IMember
+									&& !interesting.getInterest()
+											.isPropagated()) {
+								searchElements
+										.add(((IMember) interestingElement)
+												.getSourceModule());
+							} else if (interestingElement instanceof ISourceModule) {
+								searchElements.add(interestingElement);
+							}
+						}
+					}
+				}
+			}
+		} else if (degreeOfSeparation == 3 || degreeOfSeparation == 4) {
+			// for (IInteractionElement interesting : interestingElements) {
+			for (Iterator it = interestingElements.iterator(); it.hasNext();) {
+				IInteractionElement interesting = (IInteractionElement) it
+						.next();
+
+				AbstractContextStructureBridge bridge = ContextCorePlugin
+						.getDefault().getStructureBridge(
+								interesting.getContentType());
+				if (includeNodeInScope(interesting, bridge)) {
+					IResource resource = ResourcesUiBridgePlugin.getDefault()
+							.getResourceForElement(interesting, true);
+					if (resource != null) {
+						IProject project = resource.getProject();
+
+						// if (project != null &&
+						// DLTKProject.hasScriptNature(project) &&
+						// project.exists()) {
+
+						if (project != null && project.exists()) {
+							IScriptProject scriptProject = DLTKCore
+									.create(project);// ((IModelElement)o).
+							if (scriptProject != null && scriptProject.exists())
+								searchElements.add(scriptProject);
+						}
+					}
+				}
+			}
+			if (degreeOfSeparation == 4) {
+
+				includeMask = IDLTKSearchScope.SOURCES
+						| IDLTKSearchScope.APPLICATION_LIBRARIES
+						| IDLTKSearchScope.SYSTEM_LIBRARIES;
+			}
+		} else if (degreeOfSeparation == 5) {
+			return SearchEngine.createWorkspaceScope(null);
+		}
+
+		if (searchElements.size() == 0) {
+			return null;
+		} else {
+			IModelElement[] elements = new IModelElement[searchElements.size()];
+			int j = 0;
+			// for (IModelElement searchElement : searchElements) {
+			for (Iterator it = searchElements.iterator(); it.hasNext();) {
+				IModelElement searchElement = (IModelElement) it.next();
+				elements[j] = searchElement;
+				j++;
+			}
+
+			return SearchEngine.createSearchScope(elements, includeMask, null);
+		}
+	}
+
+	/**
+	 * Only include Script elements and files.
+	 */
+	private boolean includeNodeInScope(IInteractionElement interesting,
+			AbstractContextStructureBridge bridge) {
+		if (interesting == null || bridge == null) {
+			return false;
+		} else {
+			if (interesting.getContentType() == null) {
+				// TODO: remove
+				MylynStatusHandler.log("null content type for: "
+						+ interesting.getHandleIdentifier(), this);
+				return false;
+			} else {
+				return interesting.getContentType().equals(
+						DLTKStructureBridge.CONTENT_TYPE)
+						|| bridge.isDocument(interesting.getHandleIdentifier());
+			}
+		}
+	}
+
+	protected boolean acceptResultElement(IModelElement element) {
+		return true;
+	}
+
+	protected boolean acceptElement(IModelElement modelElement) {
+		return modelElement != null
+				&& (modelElement instanceof IMember || modelElement instanceof IType);
+	}
+
+	private void runJob(final IInteractionElement node,
+			final int degreeOfSeparation, final String kind) {
+
+		int limitTo = 0;
+		if (kind.equals(DLTKReferencesProvider.ID)) {
+			limitTo = IDLTKSearchConstants.REFERENCES;
+		} else if (kind.equals(DLTKImplementorsProvider.ID)) {
+			// limitTo = IDLTKSearchConstants.IMPLEMENTORS;
+		} else if (kind.equals(DLTKTestingReferencesProvider.ID)) {
+			limitTo = IDLTKSearchConstants.REFERENCES;
+		} else if (kind.equals(DLTKReadAccessProvider.ID)) {
+			limitTo = IDLTKSearchConstants.REFERENCES;
+		} else if (kind.equals(DLTKWriteAccessProvider.ID)) {
+			limitTo = IDLTKSearchConstants.REFERENCES;
+		}
+
+		final DLTKSearchOperation query = (DLTKSearchOperation) getSearchOperation(
+				node, limitTo, degreeOfSeparation);
+		if (query == null)
+			return;
+
+		DLTKSearchJob job = new DLTKSearchJob(query.getLabel(), query);
+		query.addListener(new IActiveSearchListener() {
+
+			private boolean gathered = false;
+
+			public boolean resultsGathered() {
+				return gathered;
+			}
+
+			public void searchCompleted(List l) {
+				if (l == null)
+					return;
+				List relatedHandles = new ArrayList();
+				Object[] elements = l.toArray();
+				for (int i = 0; i < elements.length; i++) {
+					if (elements[i] instanceof IModelElement)
+						relatedHandles.add((IModelElement) elements[i]);
+				}
+
+				// for (IModelElement element : relatedHandles) {
+				for (ListIterator it = relatedHandles.listIterator(); it
+						.hasNext();) {
+					IModelElement element = (IModelElement) it.next();
+					if (!acceptResultElement(element))
+						continue;
+					incrementInterest(node, DLTKStructureBridge.CONTENT_TYPE,
+							element.getHandleIdentifier(), degreeOfSeparation);
+				}
+				gathered = true;
+				AbstractDLTKRelationProvider.this.searchCompleted(node);
+			}
+
+		});
+		InternalSearchUI.getInstance();
+
+		runningJobs.add(job);
+		job.setPriority(Job.DECORATE - 10);
+		job.schedule();
+	}
+
+	public IActiveSearchOperation getSearchOperation(IInteractionElement node,
+			int limitTo, int degreeOfSeparation) {
+		IModelElement modelElement = DLTKCore
+				.create(node.getHandleIdentifier());
+		if (modelElement == null || !modelElement.exists())
+			return null;
+
+		IDLTKSearchScope scope = createSearchScope(modelElement,
+				degreeOfSeparation);
+
+		if (scope == null)
+			return null;
+
+		QuerySpecification specs = new ElementQuerySpecification(modelElement,
+				limitTo, scope, "Mylyn degree of separation: "
+						+ degreeOfSeparation);
+
+		return new DLTKSearchOperation(specs);
+	}
+
+	protected static class DLTKSearchJob extends Job {
+
+		private DLTKSearchOperation op;
+
+		public DLTKSearchJob(String name, DLTKSearchOperation op) {
+			super(name);
+			this.op = op;
+		}
+
+		/**
+		 * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
+		 */
+
+		protected IStatus run(IProgressMonitor monitor) {
+			return op.run(monitor);
+		}
+
+	}
+
+	protected static class DLTKSearchOperation extends DLTKSearchQuery
+			implements IActiveSearchOperation {
+		private ISearchResult result = null;
+
+		public ISearchResult getSearchResult() {
+			if (result == null)
+				result = new DLTKSearchResult(this);
+			new DLTKActiveSearchResultUpdater((DLTKSearchResult) result);
+			return result;
+		}
+
+		public IStatus run(IProgressMonitor monitor) {
+			try {
+				IStatus runStatus = super.run(monitor);
+				ISearchResult result = getSearchResult();
+				if (result instanceof DLTKSearchResult) {
+					// TODO make better
+					Object[] objs = ((DLTKSearchResult) result).getElements();
+					if (objs == null) {
+						notifySearchCompleted(null);
+					} else {
+						List l = new ArrayList();
+						for (int i = 0; i < objs.length; i++) {
+							l.add(objs[i]);
+						}
+						notifySearchCompleted(l);
+					}
+				}
+				return runStatus;
+			} catch (ConcurrentModificationException cme) {
+				MylynStatusHandler.log(cme, "script search failed");
+			} catch (Throwable t) {
+				MylynStatusHandler.log(t, "script search failed");
+			}
+
+			IStatus status = new Status(IStatus.WARNING,
+					ContextCorePlugin.PLUGIN_ID, IStatus.OK,
+					"could not run Script search", null);
+			notifySearchCompleted(null);
+			return status;
+		}
+
+		/**
+		 * Constructor
+		 * 
+		 * @param data
+		 */
+		public DLTKSearchOperation(QuerySpecification data) {
+			super(data);
+
+		}
+
+		/** List of listeners wanting to know about the searches */
+		private List listeners = new ArrayList();
+
+		/**
+		 * Add a listener for when the bugzilla search is completed
+		 * 
+		 * @param l
+		 *            The listener to add
+		 */
+		public void addListener(IActiveSearchListener l) {
+			// add the listener to the list
+			listeners.add(l);
+		}
+
+		/**
+		 * Remove a listener for when the bugzilla search is completed
+		 * 
+		 * @param l
+		 *            The listener to remove
+		 */
+		public void removeListener(IActiveSearchListener l) {
+			// remove the listener from the list
+			listeners.remove(l);
+		}
+
+		/**
+		 * Notify all of the listeners that the bugzilla search is completed
+		 * 
+		 * @param doiList
+		 *            A list of BugzillaSearchHitDoiInfo
+		 * @param member
+		 *            The IMember that the search was performed on
+		 */
+		public void notifySearchCompleted(List l) {
+			// go through all of the listeners and call
+			// searchCompleted(colelctor,
+			// member)
+			// for (IActiveSearchListener listener : listeners) {
+			for (ListIterator it = listeners.listIterator(); it.hasNext();) {
+				IActiveSearchListener listener = (IActiveSearchListener) it
+						.next();
+				listener.searchCompleted(l);
+			}
+		}
+
+	}
+
+	public void stopAllRunningJobs() {
+		// for (Job j : runningJobs) {
+		for (ListIterator it = runningJobs.listIterator(); it.hasNext();) {
+			Job j = (Job) it.next();
+			j.cancel();
+		}
+		runningJobs.clear();
+	}
+
+	protected int getDefaultDegreeOfSeparation() {
+		return DEFAULT_DEGREE;
+	}
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/search/DLTKActiveSearchResultUpdater.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/search/DLTKActiveSearchResultUpdater.java
new file mode 100644
index 0000000..b9c072d
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/search/DLTKActiveSearchResultUpdater.java
@@ -0,0 +1,168 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.dltk.search;
+
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.dltk.core.DLTKCore;
+import org.eclipse.dltk.core.ElementChangedEvent;
+import org.eclipse.dltk.core.IElementChangedListener;
+import org.eclipse.dltk.core.IModelElement;
+import org.eclipse.dltk.core.IModelElementDelta;
+import org.eclipse.dltk.internal.ui.search.DLTKSearchResult;
+import org.eclipse.search.ui.IQueryListener;
+import org.eclipse.search.ui.ISearchQuery;
+import org.eclipse.search.ui.NewSearchUI;
+import org.eclipse.search.ui.text.Match;
+
+/**
+ * COPIED FROM: org.eclipse.jdt.internal.ui.search.SearchResultUpdater
+ * 
+ * @author Shawn Minto
+ */
+
+public class DLTKActiveSearchResultUpdater implements IElementChangedListener,
+		IQueryListener {
+
+	private DLTKSearchResult fResult;
+
+	private static final int REMOVED_FLAGS = IModelElementDelta.F_MOVED_TO
+			| IModelElementDelta.F_CLOSED | IModelElementDelta.F_CONTENT;
+
+	public DLTKActiveSearchResultUpdater(DLTKSearchResult result) {
+		fResult = result;
+		NewSearchUI.addQueryListener(this);
+		DLTKCore.addElementChangedListener(this);
+		// TODO make this work with resources
+	}
+
+	public void elementChanged(ElementChangedEvent event) {
+		// long t0= System.currentTimeMillis();
+		IModelElementDelta delta = event.getDelta();
+		Set removedElements = new HashSet();
+		Set potentiallyRemovedElements = new HashSet();
+		collectRemoved(potentiallyRemovedElements, removedElements, delta);
+		if (removedElements.size() > 0)
+			handleRemoved(removedElements);
+		if (potentiallyRemovedElements.size() > 0)
+			handleRemoved(potentiallyRemovedElements);
+	}
+
+	private void handleRemoved(Set removedElements) {
+		Object[] elements = fResult.getElements();
+		for (int i = 0; i < elements.length; i++) {
+			if (isContainedInRemoved(removedElements, elements[i])) {
+				if (elements[i] instanceof IModelElement) {
+					IModelElement je = (IModelElement) elements[i];
+					if (!je.exists()) {
+						Match[] matches = fResult.getMatches(elements[i]);
+						for (int j = 0; j < matches.length; j++) {
+							fResult.removeMatch(matches[j]);
+						}
+						// XXX remove edge and element
+					}
+				} else if (elements[i] instanceof IResource) {
+					IResource resource = (IResource) elements[i];
+					if (!resource.exists()) {
+						Match[] matches = fResult.getMatches(elements[i]);
+						for (int j = 0; j < matches.length; j++) {
+							fResult.removeMatch(matches[j]);
+						}
+						// XXX remove edge and element
+					}
+
+				}
+			}
+		}
+	}
+
+	private boolean isContainedInRemoved(Set removedElements, Object object) {
+		for (Iterator elements = removedElements.iterator(); elements.hasNext();) {
+			if (isParentOf(elements.next(), object))
+				return true;
+		}
+		return false;
+	}
+
+	private boolean isParentOf(Object ancestor, Object descendant) {
+		while (descendant != null && !ancestor.equals(descendant))
+			descendant = getParent(descendant);
+		return descendant != null;
+	}
+
+	private Object getParent(Object object) {
+		if (object instanceof IModelElement)
+			return ((IModelElement) object).getParent();
+		else if (object instanceof IResource)
+			return ((IResource) object).getParent();
+		return null;
+	}
+
+	private void collectRemoved(Set potentiallyRemovedSet, Set removedElements,
+			IModelElementDelta delta) {
+		if (delta.getKind() == IModelElementDelta.REMOVED)
+			removedElements.add(delta.getElement());
+		else if (delta.getKind() == IModelElementDelta.CHANGED) {
+			int flags = delta.getFlags();
+			if ((flags & REMOVED_FLAGS) != 0) {
+				potentiallyRemovedSet.add(delta.getElement());
+			} else {
+				IModelElementDelta[] childDeltas = delta.getAffectedChildren();
+				for (int i = 0; i < childDeltas.length; i++) {
+					collectRemoved(potentiallyRemovedSet, removedElements,
+							childDeltas[i]);
+				}
+			}
+		}
+		IResourceDelta[] resourceDeltas = delta.getResourceDeltas();
+		if (resourceDeltas != null) {
+			for (int i = 0; i < resourceDeltas.length; i++) {
+				collectRemovals(removedElements, resourceDeltas[i]);
+			}
+		}
+	}
+
+	public void queryAdded(ISearchQuery query) {
+		// don't care
+	}
+
+	public void queryRemoved(ISearchQuery query) {
+		if (fResult.equals(query.getSearchResult())) {
+			DLTKCore.removeElementChangedListener(this);
+			NewSearchUI.removeQueryListener(this);
+		}
+	}
+
+	private void collectRemovals(Set removals, IResourceDelta delta) {
+		if (delta.getKind() == IResourceDelta.REMOVED)
+			removals.add(delta.getResource());
+		else {
+			IResourceDelta[] children = delta.getAffectedChildren();
+			for (int i = 0; i < children.length; i++) {
+				collectRemovals(removals, children[i]);
+			}
+		}
+	}
+
+	public void queryStarting(ISearchQuery query) {
+		// not interested
+	}
+
+	public void queryFinished(ISearchQuery query) {
+		// not interested
+	}
+
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/search/DLTKImplementorsProvider.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/search/DLTKImplementorsProvider.java
new file mode 100644
index 0000000..0bd6a58
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/search/DLTKImplementorsProvider.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.dltk.search;
+
+import java.util.List;
+
+import org.eclipse.dltk.core.IModelElement;
+import org.eclipse.dltk.core.IType;
+import org.eclipse.mylyn.internal.dltk.DLTKStructureBridge;
+
+public class DLTKImplementorsProvider extends AbstractDLTKRelationProvider {
+
+	public List getDegreesOfSeparation() {
+		return null;
+	}
+
+	public static final String ID = ID_GENERIC + ".implementors";
+
+	public static final String NAME = "implemented by";
+
+	public DLTKImplementorsProvider() {
+		super(DLTKStructureBridge.CONTENT_TYPE, ID);
+	}
+
+	protected boolean acceptElement(IModelElement modelElement) {
+		return modelElement != null && modelElement instanceof IType;
+	}
+
+	protected String getSourceId() {
+		return ID;
+	}
+
+	public String getName() {
+		return NAME;
+	}
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/search/DLTKReadAccessProvider.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/search/DLTKReadAccessProvider.java
new file mode 100644
index 0000000..64381a7
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/search/DLTKReadAccessProvider.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.dltk.search;
+
+import java.util.List;
+
+import org.eclipse.dltk.core.IField;
+import org.eclipse.dltk.core.IModelElement;
+import org.eclipse.mylyn.internal.dltk.DLTKStructureBridge;
+
+public class DLTKReadAccessProvider extends AbstractDLTKRelationProvider {
+
+	public List getDegreesOfSeparation() {
+		return null;
+	}
+
+	public static final String ID = ID_GENERIC + ".readaccess";
+
+	public static final String NAME = "read by";
+
+	public DLTKReadAccessProvider() {
+		super(DLTKStructureBridge.CONTENT_TYPE, ID);
+	}
+
+	protected boolean acceptElement(IModelElement modelElement) {
+		return modelElement instanceof IField;
+	}
+
+	protected String getSourceId() {
+		return ID;
+	}
+
+	public String getName() {
+		return NAME;
+	}
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/search/DLTKReferencesProvider.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/search/DLTKReferencesProvider.java
new file mode 100644
index 0000000..b4c327b
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/search/DLTKReferencesProvider.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.dltk.search;
+
+import java.util.List;
+
+import org.eclipse.dltk.core.IMethod;
+import org.eclipse.dltk.core.IModelElement;
+import org.eclipse.mylyn.context.core.IDegreeOfSeparation;
+import org.eclipse.mylyn.internal.dltk.DLTKStructureBridge;
+
+
+public class DLTKReferencesProvider extends AbstractDLTKRelationProvider {
+	
+	
+	public List getDegreesOfSeparation()
+	{
+		return null;
+	}
+	public static final String ID = ID_GENERIC + ".references";
+
+	public static final String NAME = "referenced by";
+
+	public DLTKReferencesProvider() {
+		super(DLTKStructureBridge.CONTENT_TYPE, ID);
+	}
+
+	protected boolean acceptResultElement(IModelElement element) {
+		if (element instanceof IMethod) {
+			IMethod method = (IMethod) element;
+			if (method.getElementName().startsWith("test")) {
+				return false; // HACK
+			} else {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	protected String getSourceId() {
+		return ID;
+	}
+
+	public String getName() {
+		return NAME;
+	}
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/search/DLTKTestingReferencesProvider.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/search/DLTKTestingReferencesProvider.java
new file mode 100644
index 0000000..ce3e60e
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/search/DLTKTestingReferencesProvider.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.dltk.search;
+
+import java.util.List;
+
+import org.eclipse.dltk.core.IMethod;
+import org.eclipse.dltk.core.IModelElement;
+import org.eclipse.dltk.core.IType;
+import org.eclipse.mylyn.context.core.IDegreeOfSeparation;
+import org.eclipse.mylyn.internal.dltk.DLTKStructureBridge;
+
+
+public class DLTKTestingReferencesProvider extends AbstractDLTKRelationProvider {
+
+	public List getDegreesOfSeparation()
+	{
+		return null;
+	}
+	
+	public static final String ID = ID_GENERIC + ".junitreferences";
+
+	public static final String NAME = "tested by";
+
+	public DLTKTestingReferencesProvider() {
+		super(DLTKStructureBridge.CONTENT_TYPE, ID);
+	}
+
+	protected boolean acceptResultElement(IModelElement element) {
+		if (element instanceof IMethod) {
+			IMethod method = (IMethod) element;
+			boolean isTestMethod = false;
+			boolean isTestCase = false;
+			if (method.getElementName().startsWith("test"))
+				isTestMethod = true;
+
+			IModelElement parent = method.getParent();
+			if (parent instanceof IType) {
+				IType type = (IType) parent;
+				isTestCase = false;//MylynContextTestUtil.isTestType(type);
+			}
+			return isTestMethod && isTestCase;
+		}
+		return false;
+	}
+
+	protected String getSourceId() {
+		return ID;
+	}
+
+	public String getName() {
+		return NAME;
+	}
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/search/DLTKWriteAccessProvider.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/search/DLTKWriteAccessProvider.java
new file mode 100644
index 0000000..722bee4
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/search/DLTKWriteAccessProvider.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.dltk.search;
+
+import java.util.List;
+
+import org.eclipse.dltk.core.IField;
+import org.eclipse.dltk.core.IModelElement;
+import org.eclipse.mylyn.internal.dltk.DLTKStructureBridge;
+
+public class DLTKWriteAccessProvider extends AbstractDLTKRelationProvider {
+
+	public List getDegreesOfSeparation() {
+		return null;
+	}
+
+	public static final String ID = ID_GENERIC + ".writeaccess";
+
+	public static final String NAME = "written by";
+
+	public DLTKWriteAccessProvider() {
+		super(DLTKStructureBridge.CONTENT_TYPE, ID);
+	}
+
+	protected boolean acceptElement(IModelElement modelElement) {
+		return modelElement instanceof IField;
+	}
+
+	protected String getSourceId() {
+		return ID;
+	}
+
+	public String getName() {
+		return NAME;
+	}
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/DLTKContextLabelProvider.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/DLTKContextLabelProvider.java
new file mode 100644
index 0000000..94dd43d
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/DLTKContextLabelProvider.java
@@ -0,0 +1,157 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+/*
+ * Created on Aug 6, 2004
+ */
+package org.eclipse.mylyn.internal.dltk.ui;
+
+import org.eclipse.dltk.core.DLTKCore;
+import org.eclipse.dltk.core.IMember;
+import org.eclipse.dltk.core.IModelElement;
+import org.eclipse.dltk.core.IType;
+import org.eclipse.dltk.ui.ScriptElementLabels;
+import org.eclipse.dltk.ui.viewsupport.AppearanceAwareLabelProvider;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.mylyn.context.core.IInteractionElement;
+import org.eclipse.mylyn.context.core.IInteractionRelation;
+import org.eclipse.mylyn.internal.context.ui.ContextUiImages;
+import org.eclipse.mylyn.internal.dltk.DLTKStructureBridge;
+import org.eclipse.mylyn.internal.dltk.MylynDLTKPlugin;
+import org.eclipse.swt.graphics.Image;
+
+public class DLTKContextLabelProvider extends AppearanceAwareLabelProvider {
+
+	private static final String LABEL_ELEMENT_MISSING = "<missing element>";
+
+	private static final ImageDescriptor EDGE_REF_JUNIT = MylynDLTKPlugin
+			.getImageDescriptor("icons/elcl16/edge-ref-junit.gif");
+
+	public DLTKContextLabelProvider() {
+		super(AppearanceAwareLabelProvider.DEFAULT_TEXTFLAGS
+				| ScriptElementLabels.P_COMPRESSED,
+				AppearanceAwareLabelProvider.DEFAULT_IMAGEFLAGS,
+				MylynDLTKPlugin.getDefault().getPreferenceStore());
+	}
+
+	public String getText(Object object) {
+		if (object instanceof IInteractionElement) {
+			IInteractionElement node = (IInteractionElement) object;
+			if (DLTKStructureBridge.CONTENT_TYPE.equals(node.getContentType())) {
+				IModelElement element = DLTKCore.create(node
+						.getHandleIdentifier());
+				if (element == null) {
+					return LABEL_ELEMENT_MISSING;
+				} else {
+					return getTextForElement(element);
+				}
+			}
+		} else if (object instanceof IInteractionRelation) {
+			return getNameForRelationship(((IInteractionRelation) object)
+					.getRelationshipHandle());
+		} else if (object instanceof IModelElement) {
+			return getTextForElement((IModelElement) object);
+		}
+		return super.getText(object);
+	}
+
+	private String getTextForElement(IModelElement element) {
+		// if (DelegatingContextLabelProvider.isQualifyNamesMode()) {
+		if (element instanceof IMember && !(element instanceof IType)) {
+			String parentName = ((IMember) element).getParent()
+					.getElementName();
+			if (parentName != null && parentName != "") {
+				return parentName + '.' + super.getText(element);
+			}
+		}
+		// }
+		if (element.exists()) {
+			return super.getText(element);
+		} else {
+			return LABEL_ELEMENT_MISSING;
+		}
+	}
+
+	public Image getImage(Object object) {
+		if (object instanceof IInteractionElement) {
+			IInteractionElement node = (IInteractionElement) object;
+			if (node.getContentType().equals(DLTKStructureBridge.CONTENT_TYPE)) {
+				return super.getImage(DLTKCore.create(node
+						.getHandleIdentifier()));
+			}
+		} else if (object instanceof IInteractionRelation) {
+			ImageDescriptor descriptor = getIconForRelationship(((IInteractionRelation) object)
+					.getRelationshipHandle());
+			if (descriptor != null) {
+				return ContextUiImages.getImage(descriptor);
+			} else {
+				return null;
+			}
+		}
+		return super.getImage(object);
+	}
+
+	private ImageDescriptor getIconForRelationship(String relationshipHandle) {
+		// if
+		// (relationshipHandle.equals(AbstractJavaRelationProvider.ID_GENERIC))
+		// {
+		// return ContextUiImages.EDGE_REFERENCE;
+		// } else if (relationshipHandle.equals(JavaReferencesProvider.ID)) {
+		// return ContextUiImages.EDGE_REFERENCE;
+		// } else if (relationshipHandle.equals(JavaImplementorsProvider.ID)) {
+		// return ContextUiImages.EDGE_INHERITANCE;
+		// } else if (relationshipHandle.equals(JUnitReferencesProvider.ID)) {
+		// return EDGE_REF_JUNIT;
+		// } else if (relationshipHandle.equals(JavaWriteAccessProvider.ID)) {
+		// return ContextUiImages.EDGE_ACCESS_WRITE;
+		// } else if (relationshipHandle.equals(JavaReadAccessProvider.ID)) {
+		// return ContextUiImages.EDGE_ACCESS_READ;
+		// } else {
+		// return null;
+		// }
+
+		return null;
+	}
+
+	private String getNameForRelationship(String relationshipHandle) {
+		// if
+		// (relationshipHandle.equals(AbstractJavaRelationProvider.ID_GENERIC))
+		// {
+		// return AbstractJavaRelationProvider.NAME;
+		// } else if (relationshipHandle.equals(JavaReferencesProvider.ID)) {
+		// return JavaReferencesProvider.NAME;
+		// } else if (relationshipHandle.equals(JavaImplementorsProvider.ID)) {
+		// return JavaImplementorsProvider.NAME;
+		// } else if (relationshipHandle.equals(JUnitReferencesProvider.ID)) {
+		// return JUnitReferencesProvider.NAME;
+		// } else if (relationshipHandle.equals(JavaWriteAccessProvider.ID)) {
+		// return JavaWriteAccessProvider.NAME;
+		// } else if (relationshipHandle.equals(JavaReadAccessProvider.ID)) {
+		// return JavaReadAccessProvider.NAME;
+		// } else if (relationshipHandle.equals(MylarContextManager.
+		// CONTAINMENT_PROPAGATION_ID)) {
+		// return "Containment"; // TODO: make this generic?
+		// } else {
+		// return null;
+		// }
+		return null;
+	}
+
+	public static AppearanceAwareLabelProvider createJavaUiLabelProvider() {
+		AppearanceAwareLabelProvider scriptUiLabelProvider = new AppearanceAwareLabelProvider(
+				AppearanceAwareLabelProvider.DEFAULT_TEXTFLAGS
+						| ScriptElementLabels.P_COMPRESSED,
+				AppearanceAwareLabelProvider.DEFAULT_IMAGEFLAGS,
+				MylynDLTKPlugin.getDefault().getPreferenceStore());
+		// javaUiLabelProvider.addLabelDecorator(new
+		// TreeHierarchyLayoutProblemsDecorator());
+		return scriptUiLabelProvider;
+	}
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/DLTKDeclarationsFilter.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/DLTKDeclarationsFilter.java
new file mode 100644
index 0000000..6782108
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/DLTKDeclarationsFilter.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.dltk.ui;
+
+import org.eclipse.dltk.core.IMember;
+import org.eclipse.dltk.core.IType;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerFilter;
+
+
+public class DLTKDeclarationsFilter extends ViewerFilter {
+
+	public boolean select(Viewer viewer, Object parent, Object element) {
+		return !(element instanceof IMember || element instanceof IType);
+	}
+
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/DLTKEditingMonitor.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/DLTKEditingMonitor.java
new file mode 100644
index 0000000..824ff01
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/DLTKEditingMonitor.java
@@ -0,0 +1,143 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.dltk.ui;
+
+import org.eclipse.dltk.core.IMethod;
+import org.eclipse.dltk.core.IModelElement;
+import org.eclipse.dltk.core.IPackageDeclaration;
+import org.eclipse.dltk.core.IType;
+import org.eclipse.dltk.core.ModelException;
+import org.eclipse.dltk.internal.ui.actions.SelectionConverter;
+import org.eclipse.dltk.internal.ui.editor.ScriptEditor;
+import org.eclipse.jface.text.TextSelection;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.mylyn.internal.dltk.MylynStatusHandler;
+import org.eclipse.mylyn.internal.dltk.search.DLTKImplementorsProvider;
+import org.eclipse.mylyn.internal.dltk.search.DLTKReferencesProvider;
+import org.eclipse.mylyn.monitor.ui.AbstractUserInteractionMonitor;
+import org.eclipse.ui.IWorkbenchPart;
+
+
+public class DLTKEditingMonitor extends AbstractUserInteractionMonitor {
+
+	protected IModelElement lastSelectedElement = null;
+
+	protected IModelElement lastResolvedElement = null;
+
+	protected ScriptEditor currentEditor;
+
+	protected StructuredSelection currentSelection = null;
+
+	public DLTKEditingMonitor() {
+		super();
+	}
+
+	/**
+	 * Only public for testing
+	 */
+	public void handleWorkbenchPartSelection(IWorkbenchPart part, ISelection selection, boolean contributeToContext) {
+		try {
+			IModelElement selectedElement = null;
+			if (selection instanceof StructuredSelection) {
+				StructuredSelection structuredSelection = (StructuredSelection) selection;
+
+				if (structuredSelection.equals(currentSelection))
+					return;
+				currentSelection = structuredSelection;
+
+				Object selectedObject = structuredSelection.getFirstElement();
+				if (selectedObject instanceof IModelElement) {
+					IModelElement checkedElement = checkIfAcceptedAndPromoteIfNecessary((IModelElement) selectedObject);
+					if (checkedElement == null) {
+						return;
+					} else {
+						selectedElement = checkedElement;
+					}
+				}
+				if (selectedElement != null)
+					super.handleElementSelection(part, selectedElement, contributeToContext);
+			} else {
+				if (selection instanceof TextSelection && part instanceof ScriptEditor) {
+					currentEditor = (ScriptEditor) part;
+					TextSelection textSelection = (TextSelection) selection;
+					selectedElement = SelectionConverter.resolveEnclosingElement(currentEditor, textSelection);
+					if (selectedElement instanceof IPackageDeclaration)
+						return; // HACK: ignoring these selections
+					IModelElement[] resolved = SelectionConverter.codeResolve(currentEditor);
+					if (resolved != null && resolved.length == 1 && !resolved[0].equals(selectedElement)) {
+						lastResolvedElement = resolved[0];
+					}
+
+					boolean selectionResolved = false;
+					if (selectedElement instanceof IMethod && lastSelectedElement instanceof IMethod) {
+						if (lastResolvedElement != null && lastSelectedElement != null
+								&& lastResolvedElement.equals(selectedElement)
+								&& !lastSelectedElement.equals(lastResolvedElement)) {
+							super.handleNavigation(part, selectedElement, DLTKReferencesProvider.ID, contributeToContext);
+							selectionResolved = true;
+						} else if (lastSelectedElement != null && lastSelectedElement.equals(lastResolvedElement)
+								&& !lastSelectedElement.equals(selectedElement)) {
+							super.handleNavigation(part, selectedElement, DLTKReferencesProvider.ID, contributeToContext);
+							selectionResolved = true;
+						}
+					} else if (selectedElement != null && lastSelectedElement != null
+							&& !lastSelectedElement.equals(selectedElement)) {
+						if (lastSelectedElement.getElementName().equals(selectedElement.getElementName())) {
+							if (selectedElement instanceof IMethod && lastSelectedElement instanceof IMethod) {
+								super.handleNavigation(part, selectedElement, DLTKImplementorsProvider.ID, contributeToContext);
+								selectionResolved = true;
+							} else if (selectedElement instanceof IType && lastSelectedElement instanceof IType) {
+								super.handleNavigation(part, selectedElement, DLTKImplementorsProvider.ID, contributeToContext);
+								selectionResolved = true;
+							}
+						}
+					}
+					if (selectedElement != null) {
+						if (!selectionResolved && selectedElement.equals(lastSelectedElement)) {
+							super.handleElementEdit(part, selectedElement, contributeToContext);
+						} else if (!selectedElement.equals(lastSelectedElement)) {
+							super.handleElementSelection(part, selectedElement, contributeToContext);
+						}
+					}
+
+					IModelElement checkedElement = checkIfAcceptedAndPromoteIfNecessary(selectedElement);
+					if (checkedElement == null) {
+						return;
+					} else {
+						selectedElement = checkedElement;
+					}
+				}
+			}
+			if (selectedElement != null)
+				lastSelectedElement = selectedElement;
+		} catch (ModelException e) {
+			// ignore, fine to fail to resolve an element if the model is not up-to-date
+		} catch (Throwable t) {
+			MylynStatusHandler.log(t, "Failed to update model based on selection.");
+		}
+	}
+
+	/**
+	 * @return null for elements that aren't modeled
+	 */
+	protected IModelElement checkIfAcceptedAndPromoteIfNecessary(IModelElement element) {
+		// if (element instanceof IPackageDeclaration) return null;
+//		if (element instanceof IImportContainer) {
+//			return element.getParent();
+//		} else if (element instanceof IImportDeclaration) {
+//			return element.getParent().getParent();
+//		} else {
+			return element;
+		//}
+	}
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/DLTKStackTraceFileHyperlink.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/DLTKStackTraceFileHyperlink.java
new file mode 100644
index 0000000..7ef5af5
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/DLTKStackTraceFileHyperlink.java
@@ -0,0 +1,165 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.dltk.ui;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IRegion;
+import org.eclipse.jface.text.hyperlink.IHyperlink;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.texteditor.IDocumentProvider;
+import org.eclipse.ui.texteditor.ITextEditor;
+
+/**
+ * @author Rob Elves
+ */
+public class DLTKStackTraceFileHyperlink implements IHyperlink {
+
+	private IRegion region;
+
+	private String traceLine;
+
+	public DLTKStackTraceFileHyperlink(IRegion region, String traceLine) {
+		this.region = region;
+		this.traceLine = traceLine;
+	}
+
+	public IRegion getHyperlinkRegion() {
+		return region;
+	}
+
+	public String getHyperlinkText() {
+		// ignore
+		return null;
+	}
+
+	public String getTypeLabel() {
+		// ignore
+		return null;
+	}
+
+	public void open() {
+
+		int lineNumber;
+		try {
+
+			String typeName = getTypeName();
+			lineNumber = getLineNumber();
+
+			// documents start at 0
+			if (lineNumber > 0) {
+				lineNumber--;
+			}
+			Object sourceElement = getSourceElement(typeName);
+//			if (sourceElement != null) {
+//				IDebugModelPresentation presentation =De.getDefault().getModelPresentation();
+//				IEditorInput editorInput = presentation.getEditorInput(sourceElement);
+//				if (editorInput != null) {
+//					String editorId = presentation.getEditorId(editorInput, sourceElement);
+//					if (editorId != null) {
+//						IEditorPart editorPart = JDIDebugUIPlugin.getActivePage().openEditor(editorInput, editorId);
+//						if (editorPart instanceof ITextEditor && lineNumber >= 0) {
+//							ITextEditor textEditor = (ITextEditor) editorPart;
+//							IDocumentProvider provider = textEditor.getDocumentProvider();
+//							provider.connect(editorInput);
+//							IDocument document = provider.getDocument(editorInput);
+//							try {
+//								IRegion line = document.getLineInformation(lineNumber);
+//								textEditor.selectAndReveal(line.getOffset(), line.getLength());
+//							} catch (BadLocationException e1) {
+//								MessageDialog.openInformation(PlatformUI.getWorkbench().getActiveWorkbenchWindow()
+//										.getShell(), "Open Type", "Line not found in type.");
+//							}
+//							provider.disconnect(editorInput);
+//						}
+//						return;
+//					}
+//				}
+//			}
+			// did not find source
+			MessageDialog.openInformation(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), "Open Type",
+					"Type could not be located.");
+		} catch (CoreException e1) {
+			MessageDialog.openInformation(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), "Open Type",
+					"Failed to open type.");
+			return;
+		}
+
+	}
+
+	// adapted from JavaStackTraceHyperlink
+	private Object getSourceElement(String typeName) throws CoreException {
+		Object result = null;
+		//result = OpenTypeAction.findTypeInWorkspace(typeName);
+		// }
+		return result;
+	}
+
+	// adapted from JavaStackTraceHyperlink
+	private String getTypeName() {
+		int start = traceLine.indexOf('(');
+		int end = traceLine.indexOf(':');
+		if (start >= 0 && end > start) {
+
+			// get File name (w/o .java)
+			String typeName = traceLine.substring(start + 1, end);
+			typeName = typeName.substring(0, typeName.indexOf("."));
+
+			String qualifier = traceLine.substring(0, start);
+			// remove the method name
+			start = qualifier.lastIndexOf('.');
+
+			if (start >= 0) {
+				// remove the class name
+				start = (qualifier.subSequence(0, start).toString()).lastIndexOf('.');
+				if (start == -1) {
+					start = 0; // default package
+				}
+			}
+
+			if (start >= 0) {
+				qualifier = qualifier.substring(0, start);
+			}
+
+			if (qualifier.length() > 0) {
+				typeName = qualifier + "." + typeName; //$NON-NLS-1$
+			}
+			return typeName.trim();
+		}
+
+		return "error"; // TODO: Complain
+	}
+
+	// adapted from JavaStackTraceHyperlink
+	private int getLineNumber() throws CoreException {
+		int index = traceLine.lastIndexOf(':');
+		if (index >= 0) {
+			String numText = traceLine.substring(index + 1);
+			index = numText.indexOf(')');
+			if (index >= 0) {
+				numText = numText.substring(0, index);
+			}
+			try {
+				return Integer.parseInt(numText);
+			} catch (NumberFormatException e) {
+				throw new CoreException(null);
+			}
+		}
+
+		throw new CoreException(null);
+	}
+
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/DLTKUiBridge.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/DLTKUiBridge.java
new file mode 100644
index 0000000..d0b28e3
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/DLTKUiBridge.java
@@ -0,0 +1,204 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+/*
+ * Created on Apr 6, 2005
+ */
+package org.eclipse.mylyn.internal.dltk.ui;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.dltk.core.DLTKCore;
+import org.eclipse.dltk.core.IModelElement;
+import org.eclipse.dltk.core.ModelException;
+import org.eclipse.dltk.internal.ui.actions.SelectionConverter;
+import org.eclipse.dltk.internal.ui.editor.EditorUtility;
+import org.eclipse.dltk.internal.ui.editor.ScriptEditor;
+import org.eclipse.dltk.internal.ui.editor.ScriptOutlinePage;
+import org.eclipse.jface.text.TextSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.mylyn.context.core.IInteractionElement;
+import org.eclipse.mylyn.context.ui.AbstractContextUiBridge;
+import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
+import org.eclipse.mylyn.internal.dltk.DLTKStructureBridge;
+import org.eclipse.mylyn.internal.dltk.MylynStatusHandler;
+import org.eclipse.mylyn.internal.resources.ui.ResourcesUiBridgePlugin;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorReference;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.ide.IDE;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
+
+public class DLTKUiBridge extends AbstractContextUiBridge {
+
+	private Field scriptOutlineField = null;
+
+	public DLTKUiBridge() {
+		try {
+			scriptOutlineField = ScriptOutlinePage.class
+					.getDeclaredField("fOutlineViewer");
+			scriptOutlineField.setAccessible(true);
+		} catch (Exception e) {
+			MylynStatusHandler.fail(e,
+					"could not get install Mylyn on Outline viewer", true);
+		}
+	}
+
+	public void open(IInteractionElement node) {
+		// get the element and open it in an editor
+		IModelElement modelElement = DLTKCore
+				.create(node.getHandleIdentifier());
+		if (modelElement == null || !modelElement.exists())
+			return;
+		try {
+			IEditorPart part = EditorUtility.openInEditor(modelElement);
+			EditorUtility.revealInEditor(part, modelElement);
+		} catch (Throwable t) {
+			MylynStatusHandler.fail(t, "Could not open editor for: " + node,
+					true);
+		}
+	}
+
+	// private boolean explorerLinked =
+	// PreferenceConstants.getPreferenceStore().getBoolean(
+	// PreferenceConstants.LINK_PACKAGES_TO_EDITOR);
+
+	// public void setContextCapturePaused(boolean paused) {
+	// PackageExplorerPart explorer =
+	// PackageExplorerPart.getFromActivePerspective();
+	// if (paused) {
+	// explorerLinked = PreferenceConstants.getPreferenceStore().getBoolean(
+	// PreferenceConstants.LINK_PACKAGES_TO_EDITOR);
+	// if (explorerLinked) { // causes delayed selection
+	// if (explorer != null)
+	// explorer.setLinkingEnabled(false);
+	// }
+	// } else {
+	// if (explorer != null)
+	// explorer.setLinkingEnabled(true);
+	// PreferenceConstants.getPreferenceStore().setValue(PreferenceConstants.
+	// LINK_PACKAGES_TO_EDITOR,
+	// explorerLinked);
+	// if (explorer != null) {
+	// explorer.setLinkingEnabled(explorerLinked);
+	// }
+	// }
+	// }
+
+	// @Override
+	public void restoreEditor(IInteractionElement document) {
+		IResource resource = ResourcesUiBridgePlugin.getDefault()
+				.getResourceForElement(document, false);
+		IWorkbenchPage activePage = PlatformUI.getWorkbench()
+				.getActiveWorkbenchWindow().getActivePage();
+		if (activePage != null && resource instanceof IFile
+				&& resource.exists()) {
+			try {
+				IDE.openEditor(activePage, (IFile) resource, false);
+			} catch (PartInitException e) {
+				MylynStatusHandler.fail(e, "failed to open editor for: "
+						+ resource, false);
+			}
+		}
+	}
+
+	public void close(IInteractionElement node) {
+		try {
+			IWorkbenchPage page = PlatformUI.getWorkbench()
+					.getActiveWorkbenchWindow().getActivePage();
+			if (page != null) {
+				IEditorReference[] references = page.getEditorReferences();
+				for (int i = 0; i < references.length; i++) {
+					IEditorPart part = references[i].getEditor(false);
+					if (part != null && part instanceof ScriptEditor) {
+						ScriptEditor editor = (ScriptEditor) part;
+						Object adapter = editor.getEditorInput().getAdapter(
+								IModelElement.class);
+						if (adapter instanceof IModelElement
+								&& node.getHandleIdentifier().equals(
+										((IModelElement) adapter)
+												.getHandleIdentifier())) {
+							editor.close(true);
+						}
+					}
+				}
+			}
+		} catch (Throwable t) {
+			MylynStatusHandler.fail(t, "Could not auto close editor.", false);
+		}
+	}
+
+	public boolean acceptsEditor(IEditorPart editorPart) {
+		return editorPart instanceof ScriptEditor;
+	}
+
+	public IInteractionElement getElement(IEditorInput input) {
+		Object adapter = input.getAdapter(IModelElement.class);
+		if (adapter instanceof IModelElement) {
+			IModelElement modelElement = (IModelElement) adapter;
+			String handle = ContextCorePlugin.getDefault().getStructureBridge(
+					modelElement).getHandleIdentifier(modelElement);
+			return ContextCorePlugin.getContextManager().getElement(handle);
+		} else {
+			return null;
+		}
+	}
+
+	public List getContentOutlineViewers(IEditorPart editorPart) {
+		if (editorPart == null || scriptOutlineField == null)
+			return null;
+		List viewers = new ArrayList();
+		Object out = editorPart.getAdapter(IContentOutlinePage.class);
+		if (out instanceof ScriptOutlinePage) {
+			ScriptOutlinePage page = (ScriptOutlinePage) out;
+			if (page != null && page.getControl() != null) {
+				try {
+					viewers.add((TreeViewer) scriptOutlineField.get(page));
+				} catch (Exception e) {
+					MylynStatusHandler.log(e, "could not get outline viewer");
+				}
+			}
+		}
+		return viewers;
+	}
+
+	public Object getObjectForTextSelection(TextSelection selection,
+			IEditorPart editor) {
+		if (editor instanceof ScriptEditor) {
+			TextSelection textSelection = selection;
+			try {
+				if (selection != null) {
+					return SelectionConverter.resolveEnclosingElement(
+							(ScriptEditor) editor, textSelection);
+				} else {
+					Object element = ((ScriptEditor) editor).getEditorInput()
+							.getAdapter(IModelElement.class);
+					if (element instanceof IModelElement)
+						return element;
+				}
+			} catch (ModelException e) {
+				// ignore
+			}
+		}
+		return null;
+	}
+
+	public String getContentType() {
+		return DLTKStructureBridge.CONTENT_TYPE;
+	}
+
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/DLTKUiUtil.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/DLTKUiUtil.java
new file mode 100644
index 0000000..1fb2a5d
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/DLTKUiUtil.java
@@ -0,0 +1,166 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.dltk.ui;
+
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
+import java.util.StringTokenizer;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.dltk.core.DLTKContentTypeManager;
+import org.eclipse.dltk.core.DLTKCore;
+import org.eclipse.dltk.core.DLTKLanguageManager;
+import org.eclipse.dltk.core.IDLTKLanguageToolkit;
+import org.eclipse.dltk.core.IMember;
+import org.eclipse.dltk.core.IModelElement;
+import org.eclipse.dltk.core.IScriptProject;
+import org.eclipse.dltk.core.ISourceModule;
+import org.eclipse.dltk.core.IType;
+import org.eclipse.dltk.core.ModelException;
+import org.eclipse.dltk.internal.ui.editor.ScriptEditor;
+import org.eclipse.dltk.ui.PreferenceConstants;
+import org.eclipse.dltk.ui.ScriptElementImageDescriptor;
+import org.eclipse.dltk.ui.util.ExceptionHandler;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.mylyn.internal.dltk.MylynStatusHandler;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorReference;
+import org.eclipse.ui.IFileEditorInput;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.texteditor.AbstractTextEditor;
+import org.eclipse.ui.views.markers.internal.ConcreteMarker;
+
+public class DLTKUiUtil {
+
+	private static final Point SMALL_SIZE = new Point(16, 16);
+
+	private static final String SEPARATOR_CODEASSIST = "\0"; //$NON-NLS-1$
+
+	public static void installContentAssist(IPreferenceStore scriptPrefs,
+			boolean mylynContentAssist) {
+		String oldValue = scriptPrefs
+				.getString(PreferenceConstants.CODEASSIST_EXCLUDED_CATEGORIES);
+		StringTokenizer tokenizer = new StringTokenizer(oldValue,
+				SEPARATOR_CODEASSIST);
+		Set disabledIds = new HashSet();
+		while (tokenizer.hasMoreTokens()) {
+			disabledIds.add((String) tokenizer.nextElement());
+		}
+		String newValue = "";
+		// for (String id : disabledIds) {
+		for (Iterator it = disabledIds.iterator(); it.hasNext();) {
+			String id = (String) it.next();
+			newValue += id + SEPARATOR_CODEASSIST;
+		}
+		scriptPrefs.setValue(
+				PreferenceConstants.CODEASSIST_EXCLUDED_CATEGORIES, newValue);
+	}
+
+	public static ImageDescriptor decorate(ImageDescriptor base, int decorations) {
+		ImageDescriptor imageDescriptor = new ScriptElementImageDescriptor(
+				base, decorations, SMALL_SIZE);
+		return imageDescriptor;
+	}
+
+	public static IModelElement getScriptElement(ConcreteMarker marker) {
+		if (marker == null)
+			return null;
+		try {
+			IResource res = marker.getResource();
+			ISourceModule cu = null;
+			if (res instanceof IFile) {
+				IFile file = (IFile) res;
+				IProject project = res.getProject();
+				IScriptProject scriptProject = DLTKCore.create(project);
+				if (scriptProject.exists()) {
+					IDLTKLanguageToolkit toolkit = DLTKLanguageManager
+							.getLanguageToolkit(scriptProject);
+					if (DLTKContentTypeManager.isValidResourceForContentType(
+							toolkit, res)) {
+						cu = DLTKCore.createSourceModuleFrom(file);
+					}
+				} else {
+					return null;
+				}
+			}
+			if (cu != null) {
+				IModelElement je = cu.getElementAt(marker.getMarker()
+						.getAttribute(IMarker.CHAR_START, 0));
+				return je;
+			} else {
+				return null;
+			}
+		} catch (ModelException ex) {
+			if (!ex.isDoesNotExist())
+				ExceptionHandler.handle(ex,
+						"error", "could not find java element"); //$NON-NLS-2$ //$NON-NLS-1$
+			return null;
+		} catch (Throwable t) {
+			MylynStatusHandler.fail(t, "Could not find element for: " + marker,
+					false);
+			return null;
+		}
+	}
+
+	/**
+	 * Get the fully qualified name of a IMember
+	 * 
+	 * @param m
+	 *            The IMember to get the fully qualified name for
+	 * @return String representing the fully qualified name
+	 */
+	public static String getFullyQualifiedName(IModelElement je) {
+		if (!(je instanceof IMember))
+			return null;
+
+		IMember m = (IMember) je;
+		if (m.getDeclaringType() == null)
+			return ((IType) m).getFullyQualifiedName();
+		else
+			return m.getDeclaringType().getFullyQualifiedName() + "."
+					+ m.getElementName();
+	}
+
+	public static void closeActiveEditors(boolean javaOnly) {
+		// for (IWorkbenchWindow workbenchWindow :
+		// PlatformUI.getWorkbench().getWorkbenchWindows()) {
+		for (int j = 0; j < PlatformUI.getWorkbench().getWorkbenchWindows().length; j++) {
+			IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench()
+					.getWorkbenchWindows()[j];
+			IWorkbenchPage page = workbenchWindow.getActivePage();
+			if (page != null) {
+				IEditorReference[] references = page.getEditorReferences();
+				for (int i = 0; i < references.length; i++) {
+					IEditorPart part = references[i].getEditor(false);
+					if (part != null) {
+						if (javaOnly
+								&& part.getEditorInput() instanceof IFileEditorInput
+								&& part instanceof ScriptEditor) {
+							ScriptEditor editor = (ScriptEditor) part;
+							editor.close(true);
+						} else if (part instanceof ScriptEditor) {
+							((AbstractTextEditor) part).close(true);
+						}
+					}
+				}
+			}
+		}
+	}
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/LandmarkMarkerManager.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/LandmarkMarkerManager.java
new file mode 100644
index 0000000..d121716
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/LandmarkMarkerManager.java
@@ -0,0 +1,199 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+/*
+ * Created on Feb 16, 2005
+ */
+package org.eclipse.mylyn.internal.dltk.ui;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRunnable;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.dltk.core.DLTKCore;
+import org.eclipse.dltk.core.IMember;
+import org.eclipse.dltk.core.IModelElement;
+import org.eclipse.dltk.core.ISourceRange;
+import org.eclipse.dltk.core.ISourceReference;
+import org.eclipse.dltk.core.ModelException;
+import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
+import org.eclipse.mylyn.context.core.AbstractContextListener;
+import org.eclipse.mylyn.context.core.IInteractionContext;
+//import org.eclipse.mylyn.context.core.IInteractionContextListener;
+import org.eclipse.mylyn.context.core.IInteractionElement;
+import org.eclipse.mylyn.internal.dltk.DLTKStructureBridge;
+import org.eclipse.mylyn.internal.dltk.MylynStatusHandler;
+
+
+public class LandmarkMarkerManager /*implements IInteractionContextListener*/extends AbstractContextListener {
+
+
+	private static final String MARKER_ID_LANDMARK = "org.eclipse.mylyn.ui.landmark";
+	private Map markerMap = new HashMap();
+
+	public LandmarkMarkerManager() {
+		super();
+	}
+
+	public void contextActivated(IInteractionContext taskscape) {
+		modelUpdated();
+	}
+
+	public void contextDeactivated(IInteractionContext taskscape) {
+		modelUpdated();
+	}
+
+	private void modelUpdated() {
+		try {
+			//for (IInteractionElement node : markerMap.keySet()) {
+			for (Iterator it = markerMap.keySet().iterator(); it.hasNext();) {
+				IInteractionElement node = (IInteractionElement) it.next();
+				landmarkRemoved(node);
+			}
+			markerMap.clear();
+			//for (IInteractionElement node : ContextCorePlugin.getContextManager().getActiveLandmarks()) {
+			for(Iterator it = ContextCorePlugin.getContextManager().getActiveLandmarks().iterator(); it.hasNext();) {
+				IInteractionElement node = (IInteractionElement) it.next();
+				landmarkAdded(node);
+			}
+		} catch (Throwable t) {
+			MylynStatusHandler.fail(t, "Could not update landmark markers", false);
+		}
+	}
+
+	public void interestChanged(List nodes) {
+		// don't care when the interest changes
+//		// TBR
+//		for (IInteractionElement el : nodes)
+//		{
+//			landmarkAdded(el);
+//			modelUpdated();
+//		}
+		
+	}
+
+	public void landmarkAdded(final IInteractionElement node) {
+		if (node == null || node.getContentType() == null)
+			return;
+		if (node.getContentType().equals(DLTKStructureBridge.CONTENT_TYPE)) {
+			final IModelElement element = DLTKCore.create(node.getHandleIdentifier());
+			if (!element.exists())
+				return;
+			if (element instanceof IMember) {
+				try {
+					final ISourceRange range = ((IMember) element).getNameRange();
+					final IResource resource = element.getUnderlyingResource();
+					if (resource instanceof IFile) {
+						IWorkspaceRunnable runnable = new IWorkspaceRunnable() {
+							public void run(IProgressMonitor monitor) throws CoreException {
+								IMarker marker = resource.createMarker(MARKER_ID_LANDMARK);
+								if (marker != null && range != null) {
+									marker.setAttribute(IMarker.CHAR_START, range.getOffset());
+									marker.setAttribute(IMarker.CHAR_END, range.getOffset() + range.getLength());
+									marker.setAttribute(IMarker.MESSAGE, "Mylyn Landmark");
+									marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_INFO);
+									markerMap.put(node, new LongWrapper(marker.getId()));
+								}
+							}
+						}; 
+						resource.getWorkspace().run(runnable, null);
+					}
+				} catch (ModelException e) {
+					MylynStatusHandler.fail(e, "couldn't update marker", false);
+				} catch (CoreException e) {
+					MylynStatusHandler.fail(e, "couldn't update marker", false);
+				}
+			}
+		}
+	}
+
+	public void landmarkRemoved(final IInteractionElement node) {
+		if (node == null)
+			return;
+		if (node.getContentType().equals(DLTKStructureBridge.CONTENT_TYPE)) {
+			IModelElement element = DLTKCore.create(node.getHandleIdentifier());
+			if (!element.exists())
+				return;
+			if (element.getAncestor(IModelElement.SOURCE_MODULE) != null // stuff
+																			// from
+																			// .class
+																			// files
+					&& element instanceof ISourceReference) {
+				try {
+					final IResource resource = element.getUnderlyingResource();
+					IWorkspaceRunnable runnable = new IWorkspaceRunnable() {
+						public void run(IProgressMonitor monitor) throws CoreException {
+							if (resource != null) {
+								try {
+									if (markerMap.containsKey(node)) {
+										long id = ((LongWrapper)(markerMap.get(node))).value();
+										IMarker marker = resource.getMarker(id);
+										if (marker != null)
+											marker.delete();
+									}
+								} catch (NullPointerException e) {
+									MylynStatusHandler.log(e, "could not update markers");
+								}
+							}
+						}
+					};
+					resource.getWorkspace().run(runnable, null);
+				} catch (ModelException e) {
+					// ignore the Java Model errors
+//					MylarStatusHandler.fail(e, "couldn't update landmark marker", false);
+				} catch (CoreException e) {
+					MylynStatusHandler.fail(e, "couldn't update landmark marker", false);
+				}
+			}
+		}
+	}
+
+	public void relationsChanged(IInteractionElement node) {
+		// don't care when the relationships changed
+	}
+
+/*	public void presentationSettingsChanging(UpdateKind kind) {
+		// don't care when there is a presentations setting change
+	}
+
+	public void presentationSettingsChanged(UpdateKind kind) {
+		// don't care when there is a presentation setting change
+	}
+*/
+	public void elementDeleted(IInteractionElement node) {
+		// don't care when a node is deleted
+	}
+
+	public void contextCleared(IInteractionContext arg0) {
+		// ignore
+	}
+	
+	private class LongWrapper {
+		private long val = 0;
+		
+		public LongWrapper(long v)
+		{
+			val = v;
+		}
+		
+		public long value()
+		{
+			return val;
+		}
+	}
+		
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/actions/FilterMembersAction.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/actions/FilterMembersAction.java
new file mode 100644
index 0000000..1dd4e8d
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/actions/FilterMembersAction.java
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.dltk.ui.actions;
+
+import org.eclipse.dltk.internal.ui.scriptview.ScriptExplorerPart;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ViewerFilter;
+import org.eclipse.mylyn.internal.dltk.MylynDLTKPlugin;
+import org.eclipse.mylyn.internal.dltk.ui.DLTKDeclarationsFilter;
+import org.eclipse.ui.IViewActionDelegate;
+import org.eclipse.ui.IViewPart;
+
+public class FilterMembersAction extends Action implements IViewActionDelegate {
+
+	public static final String PREF_ID = "org.eclipse.dltk.mylyn.ui.explorer.filter.members";
+
+	public FilterMembersAction() {
+		super();
+		// setChecked(true);
+		// try {
+		// boolean checked=
+		//ContextCorePlugin.getDefault().getPreferenceStore().getBoolean(PREF_ID
+		// );
+		// valueChanged(true, true);
+		// } catch (Exception e) {
+		//
+		// }
+	}
+
+	public void run(IAction action) {
+		valueChanged(isChecked(), true);
+
+	}
+
+	private void valueChanged(final boolean on, boolean store) {
+		if (store) {
+			MylynDLTKPlugin.getDefault().getPreferenceStore().setValue(PREF_ID,
+					on);
+		}
+
+		setChecked(true);
+		ScriptExplorerPart packageExplorer = ScriptExplorerPart
+				.getFromActivePerspective();
+		ViewerFilter existingFilter = null;
+		for (int i = 0; i < packageExplorer.getTreeViewer().getFilters().length; i++) {
+			ViewerFilter filter = packageExplorer.getTreeViewer().getFilters()[i];
+			if (filter instanceof DLTKDeclarationsFilter)
+				existingFilter = filter;
+		}
+		if (existingFilter != null) {
+			packageExplorer.getTreeViewer().removeFilter(existingFilter);
+		} else {
+			packageExplorer.getTreeViewer().addFilter(
+					new DLTKDeclarationsFilter());
+		}
+	}
+
+	public void init(IViewPart view) {
+		// don't need to do anything on init
+	}
+
+	public void selectionChanged(IAction action, ISelection selection) {
+		// don't care when the selection changes
+	}
+
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/actions/FindReferencesInContextAction.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/actions/FindReferencesInContextAction.java
new file mode 100644
index 0000000..6960041
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/actions/FindReferencesInContextAction.java
@@ -0,0 +1,85 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.dltk.ui.actions;
+
+import org.eclipse.dltk.core.IModelElement;
+import org.eclipse.dltk.core.ModelException;
+import org.eclipse.dltk.core.search.IDLTKSearchConstants;
+import org.eclipse.dltk.core.search.IDLTKSearchScope;
+import org.eclipse.dltk.internal.ui.actions.SelectionConverter;
+import org.eclipse.dltk.internal.ui.editor.ScriptEditor;
+import org.eclipse.dltk.internal.ui.search.DLTKSearchQuery;
+import org.eclipse.dltk.internal.ui.search.DLTKSearchScopeFactory;
+import org.eclipse.dltk.ui.search.ElementQuerySpecification;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.mylyn.internal.context.ui.ContextUiPlugin;
+import org.eclipse.mylyn.internal.context.ui.ContextWorkingSetManager;
+import org.eclipse.search.ui.NewSearchUI;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.IWorkbenchWindowActionDelegate;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.progress.IProgressService;
+
+/**
+ * @author Shawn Minto
+ */
+public class FindReferencesInContextAction extends Action implements IWorkbenchWindowActionDelegate {
+
+	public void run(IAction action) {
+		IEditorPart editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
+		if (editor != null && editor instanceof ScriptEditor) {
+			IModelElement[] resolved;
+			try {
+				resolved = SelectionConverter.codeResolve((ScriptEditor) editor);
+				if (resolved != null && resolved.length == 1 && resolved[0] != null) {
+					IModelElement element = resolved[0];
+				
+					ContextWorkingSetManager updater = ContextWorkingSetManager.getDefault();					
+					
+					
+					if (updater != null && updater.getWorkingSet() != null) {
+						IDLTKSearchScope scope = DLTKSearchScopeFactory.getInstance().createSearchScope(
+								updater.getWorkingSet(), false,null);
+						DLTKSearchQuery query = new DLTKSearchQuery(new ElementQuerySpecification(element,
+								IDLTKSearchConstants.REFERENCES, scope, "Mylyn Current Task Context"));
+						if (query != null) {
+							NewSearchUI.activateSearchResultView();
+
+							if (query.canRunInBackground()) {
+								NewSearchUI.runQueryInBackground(query);
+							} else {
+								IProgressService progressService = PlatformUI.getWorkbench().getProgressService();
+								NewSearchUI.runQueryInForeground(progressService, query);
+							}
+						}
+					}
+				}
+			} catch (ModelException e) {
+				// ignore search if can't resolve
+			}
+
+		}
+
+	}
+
+	public void dispose() {
+	}
+
+	public void init(IWorkbenchWindow window) {
+	}
+
+	public void selectionChanged(IAction action, ISelection selection) {
+	}
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/actions/FocusDebugViewAction.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/actions/FocusDebugViewAction.java
new file mode 100644
index 0000000..beb3315
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/actions/FocusDebugViewAction.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.dltk.ui.actions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.mylyn.context.ui.InterestFilter;
+import org.eclipse.mylyn.context.ui.AbstractFocusViewAction;
+import org.eclipse.ui.IViewPart;
+
+
+public class FocusDebugViewAction extends AbstractFocusViewAction {
+
+	public FocusDebugViewAction() {
+		super(new InterestFilter(), true, true, false);
+	}
+	
+
+	public List getViewers() {
+		List viewers = new ArrayList();
+		IViewPart view = super.getPartForAction();
+//		if (view instanceof LaunchView) {
+//			LaunchView launchView = (LaunchView)view;
+//			viewers.add((StructuredViewer)launchView.getViewer());
+//		}
+		return viewers;
+	}
+	
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/actions/FocusScriptExplorerAction.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/actions/FocusScriptExplorerAction.java
new file mode 100644
index 0000000..eec23c8
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/actions/FocusScriptExplorerAction.java
@@ -0,0 +1,101 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.dltk.ui.actions;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.ListIterator;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.dltk.core.IMember;
+import org.eclipse.dltk.core.IModelElement;
+import org.eclipse.dltk.internal.ui.actions.SelectionConverter;
+import org.eclipse.dltk.internal.ui.editor.ScriptEditor;
+import org.eclipse.dltk.internal.ui.scriptview.ScriptExplorerPart;
+import org.eclipse.jface.text.ITextSelection;
+import org.eclipse.jface.text.TextSelection;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.ViewerFilter;
+import org.eclipse.mylyn.context.ui.AbstractAutoFocusViewAction;
+import org.eclipse.mylyn.context.ui.InterestFilter;
+import org.eclipse.mylyn.internal.dltk.ui.DLTKDeclarationsFilter;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IViewPart;
+
+public class FocusScriptExplorerAction extends AbstractAutoFocusViewAction {
+
+	public FocusScriptExplorerAction() {
+		super(new InterestFilter(), true, true, true);
+	}
+
+	protected ISelection resolveSelection(IEditorPart part,
+			ITextSelection changedSelection, StructuredViewer viewer)
+			throws CoreException {
+		Object elementToSelect = null;
+		if (changedSelection instanceof TextSelection
+				&& part instanceof ScriptEditor) {
+			TextSelection textSelection = (TextSelection) changedSelection;
+			IModelElement modelElement = SelectionConverter
+					.resolveEnclosingElement((ScriptEditor) part, textSelection);
+			if (modelElement != null) {
+				elementToSelect = modelElement;
+			}
+		}
+
+		if (elementToSelect != null) {
+			StructuredSelection currentSelection = (StructuredSelection) viewer
+					.getSelection();
+			if (currentSelection.size() <= 1) {
+				// for (ViewerFilter filter :
+				// Arrays.asList(viewer.getFilters())) {
+				for (ListIterator it = Arrays.asList(viewer.getFilters())
+						.listIterator(); it.hasNext();) {
+					ViewerFilter filter = (ViewerFilter) it.next();
+					if (filter instanceof DLTKDeclarationsFilter
+							&& elementToSelect instanceof IMember) {
+						elementToSelect = ((IMember) elementToSelect)
+								.getSourceModule();
+					}
+				}
+			}
+		}
+		return new StructuredSelection(elementToSelect);
+	}
+
+	protected void setDefaultLinkingEnabled(boolean on) {
+		IViewPart part = super.getPartForAction();
+		if (part instanceof ScriptExplorerPart) {
+			((ScriptExplorerPart) part).setLinkingEnabled(on);
+		}
+	}
+
+	protected boolean isDefaultLinkingEnabled() {
+		IViewPart part = super.getPartForAction();
+		if (part instanceof ScriptExplorerPart) {
+			return ((ScriptExplorerPart) part).isLinkingEnabled();
+		}
+		return false;
+	}
+
+	public List getViewers() {
+		List viewers = new ArrayList();
+		// TODO: get from super
+		IViewPart part = super.getPartForAction();
+		if (part instanceof ScriptExplorerPart) {
+			viewers.add(((ScriptExplorerPart) part).getTreeViewer());
+		}
+		return viewers;
+	}
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/actions/ToggleActiveFoldingAction.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/actions/ToggleActiveFoldingAction.java
new file mode 100644
index 0000000..9b4b93e
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/actions/ToggleActiveFoldingAction.java
@@ -0,0 +1,99 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+/*
+ * Created on Jul 29, 2004
+ */
+package org.eclipse.mylyn.internal.dltk.ui.actions;
+
+import org.eclipse.dltk.core.DLTKCore;
+import org.eclipse.dltk.ui.PreferenceConstants;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.mylyn.internal.context.ui.ContextUiPlugin;
+import org.eclipse.mylyn.internal.context.ui.ContextUiImages;
+//import org.eclipse.mylyn.internal.context.ui.ContextUiPrefContstants;
+import org.eclipse.mylyn.internal.context.ui.IContextUiPreferenceContstants;
+import org.eclipse.mylyn.internal.dltk.MylynDLTKPrefConstants;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.ui.IActionDelegate2;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.IWorkbenchWindowActionDelegate;
+
+/**
+ * @author Mik Kersten
+ * 
+ * TODO: move to UI
+ */
+public class ToggleActiveFoldingAction extends Action implements IWorkbenchWindowActionDelegate, IActionDelegate2 {
+
+	private static ToggleActiveFoldingAction INSTANCE;
+
+	private IAction parentAction = null;
+
+	public ToggleActiveFoldingAction() {
+		super();
+		INSTANCE = this;
+		setText("Active folding");
+		//setImageDescriptor(ContextUiImages.INTEREST_FOLDING);
+	}
+
+	public static void toggleFolding(boolean on) {
+		if (INSTANCE.parentAction != null) {
+			INSTANCE.valueChanged(INSTANCE.parentAction, on);
+		}
+	}
+
+	public void run(IAction action) {
+		valueChanged(action, action.isChecked());
+	}
+
+	private void valueChanged(IAction action, final boolean on) {
+		try {
+			if (on) {
+				//DLTk.getDefault().getPreferenceStore().setValue(PreferenceConstants.EDITOR_FOLDING_ENABLED, true);
+
+				DLTKCore.getPlugin().getPluginPreferences().setValue(PreferenceConstants.EDITOR_FOLDING_ENABLED, true);
+			}
+			action.setChecked(on);
+			ContextUiPlugin.getDefault().getPreferenceStore().setValue(MylynDLTKPrefConstants.ACTIVE_FOLDING_ENABLED, on);
+		} catch (Throwable t) {
+			//MylarStatusHandler.fail(t, "Could not enable editor management", true);
+		}
+	} 
+
+	public void setActiveEditor(IAction action, IEditorPart targetEditor) {
+		// don't care when the active editor changes
+	}
+
+	public void selectionChanged(IAction action, ISelection selection) {
+		// don't care when the selection changes
+	}
+
+	public void init(IAction action) {
+		this.parentAction = action;
+		valueChanged(action, ContextUiPlugin.getDefault().getPreferenceStore().getBoolean(
+				MylynDLTKPrefConstants.ACTIVE_FOLDING_ENABLED));
+	}
+
+	public void dispose() {
+		// don't need to do anything
+
+	}
+
+	public void runWithEvent(IAction action, Event event) {
+		run(action);
+	}
+
+	public void init(IWorkbenchWindow window) {
+	}
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/editor/AbstractEditorHyperlinkDetector.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/editor/AbstractEditorHyperlinkDetector.java
new file mode 100644
index 0000000..c009876
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/editor/AbstractEditorHyperlinkDetector.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.mylyn.internal.dltk.ui.editor;
+
+import org.eclipse.jface.text.IRegion;
+import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.jface.text.hyperlink.IHyperlink;
+import org.eclipse.jface.text.hyperlink.IHyperlinkDetector;
+import org.eclipse.ui.texteditor.ITextEditor;
+
+
+
+public abstract class AbstractEditorHyperlinkDetector implements IHyperlinkDetector {
+
+	private ITextEditor editor;
+
+	public abstract IHyperlink[] detectHyperlinks(ITextViewer textViewer, IRegion region,
+			boolean canShowMultipleHyperlinks);
+	
+	public ITextEditor getEditor() {
+		return editor;
+	}
+
+	public void setEditor(ITextEditor editor) {
+		this.editor = editor;
+	}
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/editor/ActiveFoldingListener.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/editor/ActiveFoldingListener.java
new file mode 100644
index 0000000..8a7b484
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/editor/ActiveFoldingListener.java
@@ -0,0 +1,239 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+/*
+ * Created on May 16, 2005
+ */
+package org.eclipse.mylyn.internal.dltk.ui.editor;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.ListIterator;
+
+import org.eclipse.core.runtime.Preferences.IPropertyChangeListener;
+import org.eclipse.core.runtime.Preferences.PropertyChangeEvent;
+import org.eclipse.dltk.core.IMember;
+import org.eclipse.dltk.core.IModelElement;
+import org.eclipse.dltk.core.IParent;
+import org.eclipse.dltk.core.ISourceModule;
+import org.eclipse.dltk.core.ModelException;
+import org.eclipse.dltk.internal.ui.editor.ScriptEditor;
+import org.eclipse.dltk.ui.DLTKUIPlugin;
+import org.eclipse.dltk.ui.text.folding.IFoldingStructureProviderExtension;
+import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
+import org.eclipse.mylyn.context.core.IInteractionContext;
+//import org.eclipse.mylyn.internal.context.core.IInteractionContextListener;
+import org.eclipse.mylyn.context.core.AbstractContextListener;
+//import org.eclipse.mylyn.context.core.IInteractionContextListener2;
+import org.eclipse.mylyn.context.core.IInteractionElement;
+import org.eclipse.mylyn.internal.context.ui.ContextUiPlugin;
+import org.eclipse.mylyn.internal.context.core.InteractionContext;
+//import org.eclipse.mylyn.internal.context.ui.ContextUiPrefContstants;
+import org.eclipse.mylyn.internal.dltk.DLTKStructureBridge;
+import org.eclipse.mylyn.internal.dltk.MylynDLTKPrefConstants;
+import org.eclipse.mylyn.internal.dltk.MylynStatusHandler;
+import org.eclipse.dltk.core.IModelElement;
+
+
+public class ActiveFoldingListener /*implements IInteractionContextListener*/extends AbstractContextListener {
+
+	private final ScriptEditor editor;
+
+	private IFoldingStructureProviderExtension updater;
+
+	private static DLTKStructureBridge bridge = (DLTKStructureBridge) ContextCorePlugin.getDefault().getStructureBridge(
+			DLTKStructureBridge.CONTENT_TYPE);
+
+	private boolean enabled = false;
+
+	private IPropertyChangeListener PREFERENCE_LISTENER = new IPropertyChangeListener() {
+		public void propertyChange(PropertyChangeEvent event) {
+			if (event.getProperty().equals(MylynDLTKPrefConstants.ACTIVE_FOLDING_ENABLED)) {
+				if (event.getNewValue().equals(Boolean.TRUE.toString())) {
+					enabled = true;
+				} else {
+					enabled = false;
+				}
+				updateFolding();
+			}
+		}
+	};
+
+	public ActiveFoldingListener(ScriptEditor editor) {
+		this.editor = editor;
+		ContextCorePlugin.getContextManager().addListener(this);
+		ContextUiPlugin.getDefault().getPluginPreferences().addPropertyChangeListener(PREFERENCE_LISTENER);
+
+		enabled = ContextUiPlugin.getDefault().getPreferenceStore().getBoolean(MylynDLTKPrefConstants.ACTIVE_FOLDING_ENABLED);
+		try {
+			Object adapter = editor.getAdapter(IFoldingStructureProviderExtension.class);
+			if (adapter instanceof IFoldingStructureProviderExtension) {
+				updater = (IFoldingStructureProviderExtension) adapter;
+			} else {
+				MylynStatusHandler.log("Could not install active folding on provider: " + adapter + ", must extend "
+						+ IFoldingStructureProviderExtension.class.getName(), this);
+			}
+		} catch (Exception e) {
+			MylynStatusHandler.fail(e, "could not install auto folding, reflection denied", false);
+		}
+		updateFolding();
+	}
+
+	public void dispose() {
+		ContextCorePlugin.getContextManager().removeListener(this);
+		ContextUiPlugin.getDefault().getPluginPreferences().removePropertyChangeListener(PREFERENCE_LISTENER);
+	}
+
+	public static void resetProjection(ScriptEditor dltk) {
+		// XXX: ignore for 3.2, leave for 3.1?
+	}
+
+	public void updateFolding() {
+		if (!enabled || !ContextCorePlugin.getContextManager().isContextActive()) {
+			editor.resetProjection();
+		} else if (editor.getEditorInput() == null) {
+			return;
+		} else {
+			try {
+				List toExpand = new ArrayList();
+				List toCollapse = new ArrayList();
+				IModelElement element = DLTKUIPlugin.getEditorInputModelElement(editor.getEditorInput());
+				if (element instanceof ISourceModule) {
+					ISourceModule compilationUnit = (ISourceModule) element;
+					List allChildren = getAllChildren(compilationUnit);
+					//for (IModelElement child : allChildren) {
+					for (ListIterator it = allChildren.listIterator(); it.hasNext();) {
+						IModelElement child = (IModelElement) it.next();
+						IInteractionElement mylarElement = ContextCorePlugin.getContextManager().getElement(
+								bridge.getHandleIdentifier(child));
+						if (mylarElement != null && mylarElement.getInterest().isInteresting()) {
+							toExpand.add(child);
+						} else {
+							toCollapse.add(child);
+						}
+					}
+				}
+				if (updater != null) {
+					updater.collapseMembers();
+					updater.expandElements((IModelElement[]) toExpand.toArray(new IModelElement[toExpand.size()]));
+				}
+			} catch (Exception e) {
+				MylynStatusHandler.fail(e, "couldn't update folding", false);
+			}
+		}
+	}
+
+	private static List getAllChildren(IParent parentElement) {
+		List allChildren = new ArrayList();
+		try {
+			//for (IModelElement child : parentElement.getChildren()) {
+			for (int i = 0; i < parentElement.getChildren().length; i++) {
+				IModelElement child = parentElement.getChildren()[i];
+				allChildren.add(child);
+				if (child instanceof IParent) {
+					allChildren.addAll(getAllChildren((IParent) child));
+				}
+			}
+		} catch (ModelException e) {
+			// ignore failures
+		}
+		return allChildren;
+	}
+
+	public void interestChanged(List elements) {
+		//for (IInteractionElement element : elements) {
+		for (ListIterator it = elements.listIterator(); it.hasNext();)
+		{
+			IInteractionElement element = (IInteractionElement) it.next();
+			if (updater == null || !enabled) {
+				return;
+			} else {
+				Object object = bridge.getObjectForHandle(element.getHandleIdentifier());
+				if (object instanceof IMember) {
+					IMember member = (IMember) object;
+					if (element.getInterest().isInteresting()) {
+						updater.expandElements(new IModelElement[] { member });
+						// expand the next 2 children down (e.g. anonymous types)
+						try {
+							IModelElement[] children = ((IParent)member).getChildren();
+							if (children.length == 1) {
+								updater.expandElements(new IModelElement[] { children[0] });
+								if (children[0] instanceof IParent) {
+									IModelElement[] childsChildren = ((IParent)children[0]).getChildren();
+									if (childsChildren.length == 1) {
+										updater.expandElements(new IModelElement[] { childsChildren[0] });
+									}
+								}
+							}
+						} catch (ModelException e) {
+							// ignore
+						}
+					} else {
+						updater.collapseElements(new IModelElement[] { member });
+					}
+				}
+			}
+		}
+	}
+
+	public void contextActivated(IInteractionContext context) {
+		if (ContextUiPlugin.getDefault().getPreferenceStore().getBoolean(MylynDLTKPrefConstants.ACTIVE_FOLDING_ENABLED)) {
+			updateFolding();
+		}
+	}
+
+	public void contextDeactivated(IInteractionContext context) {
+		if (ContextUiPlugin.getDefault().getPreferenceStore().getBoolean(MylynDLTKPrefConstants.ACTIVE_FOLDING_ENABLED)) {
+			updateFolding();
+		}
+	}
+	
+//	public void presentationSettingsChanging(IInteractionContextListener.UpdateKind kind) {
+//		// ignore
+//	}
+//
+//	public void presentationSettingsChanged(IInteractionContextListener.UpdateKind kind) {
+//		
+//		updateFolding();
+//	}
+
+	
+//	public void presentationSettingsChanging(IInteractionContextListener kind) {
+//	// ignore
+//	}
+
+//	public void presentationSettingsChanged(IInteractionContextListener kind) {
+//	
+//	updateFolding();
+//	}
+
+	
+
+	public void landmarkAdded(IInteractionElement element) {
+		// ignore
+	}
+
+	public void landmarkRemoved(IInteractionElement element) {
+		// ignore
+	}
+
+	public void relationsChanged(IInteractionElement node) {
+		// ignore
+	}
+
+	public void elementDeleted(IInteractionElement node) {
+		// ignore
+	}
+
+	public void contextCleared(IInteractionContext arg0) {
+		// ignore
+		
+	}
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/editor/AutoFoldPreferenceBlock.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/editor/AutoFoldPreferenceBlock.java
new file mode 100644
index 0000000..96fd9b9
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/editor/AutoFoldPreferenceBlock.java
@@ -0,0 +1,113 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.dltk.ui.editor;
+
+import org.eclipse.dltk.ui.text.folding.IFoldingPreferenceBlock;
+import org.eclipse.mylyn.internal.dltk.MylynStatusHandler;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+
+public class AutoFoldPreferenceBlock implements IFoldingPreferenceBlock {
+
+	// XXX never read
+	// private IPreferenceStore preferences;
+	// private Map checkBoxes = new HashMap();
+	// private Text minimumLines;
+
+	public AutoFoldPreferenceBlock() {
+		// preferences = ContextCorePlugin.getDefault().getPreferenceStore(); XXX
+		// never used
+	}
+
+	public Control createControl(Composite parent) {
+		try {
+			Composite inner = new Composite(parent, SWT.NONE);
+			GridLayout layout = new GridLayout(1, true);
+			layout.verticalSpacing = 3;
+			layout.marginWidth = 0;
+			inner.setLayout(layout);
+			Label label = new Label(inner, SWT.LEFT);
+			label.setText("Elements of low interest will be automatically folded.");
+
+
+			return inner;
+		} catch (Throwable t) {
+			MylynStatusHandler.fail(t, "Could not create folding preferences page", true);
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jdt.ui.text.folding.IJavaFoldingPreferenceBlock#initialize()
+	 */
+	public void initialize() {
+
+		// Iterator it= checkBoxes.keySet().iterator();
+		// while (it.hasNext()) {
+		// Button b= (Button) it.next();
+		// String key= (String) checkBoxes.get(b);
+		// b.setSelection(preferences.getBoolean(key));
+		// }
+
+		// minimumLines.setText(String.valueOf(preferences.getInt(FoldingKeys.MINIMUM_SIZE)));
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jdt.ui.text.folding.IJavaFoldingPreferenceBlock#performOk()
+	 */
+	public void performOk() {
+		// Iterator it = checkBoxes.keySet().iterator();
+		// while(it.hasNext()) {
+		// Button b = (Button) it.next();
+		// String key = (String) checkBoxes.get(b);
+		// preferences.setValue(key, b.getSelection());
+		// }
+		//		
+		// int minLines = Integer.parseInt(minimumLines.getText());
+		// preferences.setValue(FoldingKeys.MINIMUM_SIZE, minLines);
+
+	}
+
+	// private Button addCheckBox(Composite parent, String label, String key,
+	// int indentation) {
+	// Button checkBox= new Button(parent, SWT.CHECK);
+	// checkBox.setText(label);
+	//		
+	// GridData gd= new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
+	// gd.horizontalIndent= indentation;
+	// gd.horizontalSpan= 1;
+	// gd.grabExcessVerticalSpace= false;
+	// checkBox.setLayoutData(gd);
+	//				
+	// checkBoxes.put(checkBox, key);
+	//		
+	// return checkBox;
+	// }
+
+	public void performDefaults() {
+		initialize();
+	}
+
+	public void dispose() {
+		// don't care if we are disposed
+
+	}
+
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/editor/FocusedDLTKNoTypeProposalComputer.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/editor/FocusedDLTKNoTypeProposalComputer.java
new file mode 100644
index 0000000..754cb16
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/editor/FocusedDLTKNoTypeProposalComputer.java
@@ -0,0 +1,41 @@
+package org.eclipse.mylyn.internal.dltk.ui.editor;
+
+/*******************************************************************************
+ * Copyright (c) 2004, 2007 Mylyn project committers and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *******************************************************************************/
+
+
+import java.util.List;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.dltk.ui.text.completion.ScriptCompletionProposalComputer;
+import org.eclipse.dltk.ui.text.completion.ScriptContentAssistInvocationContext;
+import org.eclipse.dltk.ui.text.completion.ContentAssistInvocationContext;
+import org.eclipse.jface.text.templates.TemplateCompletionProcessor;
+
+public class FocusedDLTKNoTypeProposalComputer extends ScriptCompletionProposalComputer {
+
+	public FocusedDLTKNoTypeProposalComputer() {
+		FocusedDLTKProposalProcessor.getDefault().addMonitoredComputer(this);
+	}
+
+//	@Override
+//	protected CompletionProposalCollector createCollector(JavaContentAssistInvocationContext context) {
+//		return super.createCollector(context);
+//	}
+
+	public List computeCompletionProposals(ContentAssistInvocationContext context, IProgressMonitor monitor) {
+		List proposals = super.computeCompletionProposals(context, monitor);
+		return FocusedDLTKProposalProcessor.getDefault().projectInterestModel(this, proposals);
+	}
+
+	protected TemplateCompletionProcessor createTemplateProposalComputer(
+		ScriptContentAssistInvocationContext arg0) {
+	// TODO Auto-generated method stub
+	return null;
+}
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/editor/FocusedDLTKProposalProcessor.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/editor/FocusedDLTKProposalProcessor.java
new file mode 100644
index 0000000..8195210
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/editor/FocusedDLTKProposalProcessor.java
@@ -0,0 +1,169 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2007 Mylyn project committers and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.dltk.ui.editor;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.ListIterator;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.dltk.core.IModelElement;
+import org.eclipse.dltk.ui.text.completion.AbstractScriptCompletionProposal;
+import org.eclipse.dltk.ui.text.completion.IScriptCompletionProposalComputer;
+import org.eclipse.dltk.ui.text.completion.ScriptCompletionProposal;
+import org.eclipse.mylyn.commons.core.StatusHandler;
+import org.eclipse.mylyn.context.core.IInteractionElement;
+import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
+import org.eclipse.mylyn.internal.context.ui.ContextUiImages;
+import org.eclipse.mylyn.internal.context.ui.ContextUiPlugin;
+
+/**
+ * TODO: parametrize relevance levels (requires JDT changes, bug 119063)
+ * 
+ * @author Mik Kersten
+ */
+public class FocusedDLTKProposalProcessor {
+
+	static final int THRESHOLD_INTEREST = 10000;
+
+	private static final int THRESHOLD_IMPLICIT_INTEREST = THRESHOLD_INTEREST * 2;
+
+	private static final int RELEVANCE_IMPLICIT_INTEREST = 300;
+
+	private static final String IDENTIFIER_THIS = "this";
+
+	public static final String LABEL_SEPARATOR = " -------------------------------------------- ";
+
+	public static final FocusedProposalSeparator PROPOSAL_SEPARATOR = new FocusedProposalSeparator();
+
+	private List monitoredProposalComputers = new ArrayList();
+
+	private List alreadyComputedProposals = new ArrayList();
+
+	private List alreadyContainSeparator = new ArrayList();
+
+	private List containsSingleInterestingProposal = new ArrayList();
+
+	private static FocusedDLTKProposalProcessor INSTANCE = new FocusedDLTKProposalProcessor();
+
+	private FocusedDLTKProposalProcessor() {
+	}
+
+	public static FocusedDLTKProposalProcessor getDefault() {
+		return INSTANCE;
+	}
+
+	public void addMonitoredComputer(
+			IScriptCompletionProposalComputer proposalComputer) {
+		monitoredProposalComputers.add(proposalComputer);
+	}
+
+	public List projectInterestModel(
+			IScriptCompletionProposalComputer proposalComputer, List proposals) {
+		try {
+			if (!ContextCorePlugin.getContextManager().isContextActive()) {
+				return proposals;
+			} else {
+				boolean hasInterestingProposals = false;
+				// for (Object object : proposals) {
+				for (ListIterator it = proposals.listIterator(); it.hasNext();) {
+					Object object = it.next();
+					if (object instanceof AbstractScriptCompletionProposal) {
+						boolean foundInteresting = boostRelevanceWithInterest((AbstractScriptCompletionProposal) object);
+						if (!hasInterestingProposals && foundInteresting) {
+							hasInterestingProposals = true;
+						}
+					}
+				}
+
+				// NOTE: this annoying state needs to be maintainted to ensure
+				// the
+				// separator is added only once, and not added for single
+				// proposals
+				if (containsSingleInterestingProposal.size() > 0
+						&& proposals.size() > 0) {
+					proposals
+							.add(FocusedDLTKProposalProcessor.PROPOSAL_SEPARATOR);
+				} else if (hasInterestingProposals
+						&& alreadyContainSeparator.isEmpty()) {
+					if (proposals.size() == 1) {
+						containsSingleInterestingProposal.add(proposalComputer);
+					} else {
+						proposals
+								.add(FocusedDLTKProposalProcessor.PROPOSAL_SEPARATOR);
+						alreadyContainSeparator.add(proposalComputer);
+					}
+				}
+
+				alreadyComputedProposals.add(proposalComputer);
+				if (alreadyComputedProposals.size() == monitoredProposalComputers
+						.size()) {
+					alreadyComputedProposals.clear();
+					alreadyContainSeparator.clear();
+					containsSingleInterestingProposal.clear();
+				}
+
+				return proposals;
+			}
+		} catch (Throwable t) {
+			StatusHandler.log(new Status(IStatus.ERROR,
+					ContextUiPlugin.ID_PLUGIN,
+					"Failed to project interest onto propsals", t));
+			return proposals;
+		}
+	}
+
+	private boolean boostRelevanceWithInterest(
+			AbstractScriptCompletionProposal proposal) {
+		boolean hasInteresting = false;
+		IModelElement modelElement = proposal.getModelElement();
+		if (modelElement != null) {
+			IInteractionElement interactionElement = ContextCorePlugin
+					.getContextManager().getElement(
+							modelElement.getHandleIdentifier());
+			float interest = interactionElement.getInterest().getValue();
+			// if (interest >
+			// InteractionContextManager.getCommonContextScaling()
+			// .getInteresting()) {
+			if (interest > ContextCorePlugin.getDefault()
+					.getCommonContextScaling().getInteresting()) {
+				// TODO: losing precision here, only going to one decimal place
+				proposal.setRelevance(THRESHOLD_INTEREST
+						+ (int) (interest * 10));
+				hasInteresting = true;
+			}
+		} else if (isImplicitlyInteresting(proposal)) {
+			proposal.setRelevance(THRESHOLD_IMPLICIT_INTEREST
+					+ proposal.getRelevance());
+			hasInteresting = true;
+		}
+		return hasInteresting;
+	}
+
+	public boolean isImplicitlyInteresting(
+			AbstractScriptCompletionProposal proposal) {
+		return proposal.getRelevance() > RELEVANCE_IMPLICIT_INTEREST
+				&& !IDENTIFIER_THIS.equals(proposal.getDisplayString());
+	}
+
+	static class FocusedProposalSeparator extends ScriptCompletionProposal {
+		public FocusedProposalSeparator() {
+			super("", 0, 0, ContextUiImages
+					.getImage(ContextUiImages.QUALIFY_NAMES), LABEL_SEPARATOR,
+					FocusedDLTKProposalProcessor.THRESHOLD_INTEREST);
+
+		}
+
+		protected boolean isSmartTrigger(char arg0) {
+			// TODO Auto-generated method stub
+			return false;
+		}
+	}
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/editor/FocusedDLTKTypeProposalComputer.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/editor/FocusedDLTKTypeProposalComputer.java
new file mode 100644
index 0000000..5e27ef8
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/editor/FocusedDLTKTypeProposalComputer.java
@@ -0,0 +1,41 @@
+package org.eclipse.mylyn.internal.dltk.ui.editor;
+
+/*******************************************************************************
+ * Copyright (c) 2004, 2007 Mylyn project committers and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *******************************************************************************/
+
+
+import java.util.List;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.dltk.ui.text.completion.ContentAssistInvocationContext;
+import org.eclipse.dltk.ui.text.completion.ScriptCompletionProposalCollector;
+import org.eclipse.dltk.ui.text.completion.ScriptCompletionProposalComputer;
+import org.eclipse.dltk.ui.text.completion.ScriptContentAssistInvocationContext;
+import org.eclipse.jface.text.templates.TemplateCompletionProcessor;
+
+
+public class FocusedDLTKTypeProposalComputer extends ScriptCompletionProposalComputer {
+
+	public FocusedDLTKTypeProposalComputer() {
+		FocusedDLTKProposalProcessor.getDefault().addMonitoredComputer(this);
+	}
+
+	
+	public List computeCompletionProposals(ContentAssistInvocationContext context, IProgressMonitor monitor) {
+		List proposals = super.computeScriptCompletionProposals(context.getInvocationOffset(), (ScriptContentAssistInvocationContext) context, monitor);
+		return FocusedDLTKProposalProcessor.getDefault().projectInterestModel(this, proposals);
+	}
+
+	
+	protected TemplateCompletionProcessor createTemplateProposalComputer(
+			ScriptContentAssistInvocationContext arg0) {
+		// TODO Auto-generated method stub
+		//return FocusedDLTKProposalProcessor.getDefault();
+		return null;
+	}
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/wizards/MylynPreferenceWizard.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/wizards/MylynPreferenceWizard.java
new file mode 100644
index 0000000..7665448
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/wizards/MylynPreferenceWizard.java
@@ -0,0 +1,130 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.mylyn.internal.dltk.ui.wizards;
+
+import org.eclipse.dltk.ui.DLTKUIPlugin;
+import org.eclipse.dltk.ui.PreferenceConstants;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.window.Window;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.mylyn.internal.context.ui.ContextUiPlugin;
+import org.eclipse.mylyn.internal.context.ui.TaskContextWorkingSetPage;
+import org.eclipse.mylyn.internal.dltk.MylynDLTKPlugin;
+import org.eclipse.mylyn.internal.dltk.MylynDLTKPrefConstants;
+import org.eclipse.mylyn.internal.dltk.ui.DLTKUiUtil;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkingSet;
+import org.eclipse.ui.IWorkingSetManager;
+import org.eclipse.ui.dialogs.IWorkingSetNewWizard;
+
+public class MylynPreferenceWizard extends Wizard implements INewWizard {
+
+	private MylynPreferenceWizardPage preferencePage;
+
+	public static final String MYLYN_FIRST_RUN = "org.eclipse.dltk.mylyn.ui.first.run";
+
+	private IPreferenceStore scriptPrefs = DLTKUIPlugin.getDefault()
+			.getPreferenceStore();
+
+	public void init() {
+		// setDefaultPageImageDescriptor(ContextUiImages.MYLYN);
+		setWindowTitle("Mylyn Recommended Preferences");
+		super.setDefaultPageImageDescriptor(MylynDLTKPlugin
+				.imageDescriptorFromPlugin(MylynDLTKPlugin.PLUGIN_ID,
+						"icons/wizban/banner-prefs.gif"));
+		preferencePage = new MylynPreferenceWizardPage(
+				"Automatic preference settings");
+	}
+
+	public MylynPreferenceWizard() {
+		super();
+		init();
+	}
+
+	public MylynPreferenceWizard(String htmlDocs) {
+		super();
+		init();
+	}
+
+	public boolean performFinish() {
+		setPreferences();
+		if (preferencePage.isOpenTaskList()) {
+			// TaskListView.openInActivePerspective();
+		}
+		return true;
+	}
+
+	private void setPreferences() {
+		boolean mylarContentAssist = preferencePage
+				.isMylynContentAssistDefault();
+		DLTKUiUtil.installContentAssist(scriptPrefs, mylarContentAssist);
+
+		if (preferencePage.isAutoFolding()) {
+			ContextUiPlugin.getDefault().getPreferenceStore().setValue(
+					MylynDLTKPrefConstants.ACTIVE_FOLDING_ENABLED, true);
+			scriptPrefs.setValue(PreferenceConstants.EDITOR_FOLDING_ENABLED,
+					true);
+			// javaPrefs.setValue(PreferenceConstants.EDITOR_FOLDING_PROVIDER,
+			// DEFAULT_FOLDING_PROVIDER);
+		} else {
+			ContextUiPlugin.getDefault().getPreferenceStore().setValue(
+					MylynDLTKPrefConstants.ACTIVE_FOLDING_ENABLED, false);
+		}
+
+		if (preferencePage.closeEditors()) {
+			ContextUiPlugin.getDefault().getPreferenceStore().setValue(
+					MylynDLTKPrefConstants.AUTO_MANAGE_EDITORS, true);
+		} else {
+			ContextUiPlugin.getDefault().getPreferenceStore().setValue(
+					MylynDLTKPrefConstants.AUTO_MANAGE_EDITORS, false);
+		}
+
+		if (preferencePage.isCreateWorkingSet()) {
+			IWorkingSetManager workingSetManager = ContextUiPlugin.getDefault()
+					.getWorkbench().getWorkingSetManager();
+			IWorkingSetNewWizard wizard = workingSetManager
+					.createWorkingSetNewWizard(new String[] { "org.eclipse.mylyn.workingSetPage" });
+			if (wizard != null
+					&& workingSetManager
+							.getWorkingSet(TaskContextWorkingSetPage.WORKING_SET_NAME) == null) {
+				WizardDialog dialog = new WizardDialog(Display.getCurrent()
+						.getActiveShell(), wizard);
+				dialog.create();
+				if (dialog.open() == Window.OK) {
+					IWorkingSet workingSet = wizard.getSelection();
+					if (workingSet != null) {
+						workingSetManager.addWorkingSet(workingSet);
+					}
+				}
+			}
+		} else {
+			IWorkingSetManager workingSetManager = ContextUiPlugin.getDefault()
+					.getWorkbench().getWorkingSetManager();
+			IWorkingSet workingSet = workingSetManager
+					.getWorkingSet(TaskContextWorkingSetPage.WORKING_SET_NAME);
+			if (workingSet != null) {
+				workingSetManager.removeWorkingSet(workingSet);
+			}
+		}
+	}
+
+	public void addPages() {
+		addPage(preferencePage);
+	}
+
+	public void init(IWorkbench workbench, IStructuredSelection selection) {
+	}
+
+}
diff --git a/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/wizards/MylynPreferenceWizardPage.java b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/wizards/MylynPreferenceWizardPage.java
new file mode 100644
index 0000000..b9428f5
--- /dev/null
+++ b/mylyn/plugins/org.eclipse.dltk.mylyn/src/org/eclipse/mylyn/internal/dltk/ui/wizards/MylynPreferenceWizardPage.java
@@ -0,0 +1,273 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.dltk.ui.wizards;
+
+
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.jface.wizard.WizardPage;
+//import org.eclipse.mylyn.internal.tasks.ui.TaskListColorsAndFonts;
+import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.forms.events.HyperlinkEvent;
+import org.eclipse.ui.forms.events.IHyperlinkListener;
+import org.eclipse.ui.forms.widgets.Hyperlink;
+
+/**
+ * @author Shawn Minto
+ * @author Mik Kersten
+ */
+public class MylynPreferenceWizardPage extends WizardPage {
+
+	private static final String DESCRIPTION = 
+		"Configures Mylyn preferences to the recommended defaults. To alter these\n"
+      + "re-invoke this wizard via the File -> New menu.";
+	
+	private static final String AUTO_FOLDING = "Turn automatic editor folding on";
+
+	private static final String AUTO_CLOSE = "Automatically manage open editors to match task context";
+
+//	private static final String WORKING_SET = "Add the \"active task context\" working set";
+
+	private static final String CONTENT_ASSIST = "Enable task-context ranked content assist, requires Eclipse restart.";
+
+	private static final String CONTENT_ASSIST_WARNING = "Toggle via Preferences-><Your DLTK Language>->Editor->Content Assist->Advanced ";
+	
+	private static final String OPEN_TASK_LIST = "Open the " + TaskListView.LABEL_VIEW + " view";
+
+	private Button contentAssistButton;
+
+	private Button turnOnAutoFoldingButton;
+
+	private boolean autoFolding = true;
+
+//	private Button addMylarActiveWorkingSetButton;
+
+	// TODO: remove
+	private boolean createWorkingSet = false;
+
+	private Button closeEditorsOnDeactivationButton;
+
+	private boolean closeEditors = true;
+
+	private Button openTaskListButton;
+
+	private boolean openTaskList = true;
+
+	protected MylynPreferenceWizardPage(String pageName) {
+		super(pageName);
+		setTitle(pageName);
+		setDescription(DESCRIPTION);
+	}
+
+	public void createControl(Composite parent) {
+
+		Composite containerComposite = new Composite(parent, SWT.NULL);
+		containerComposite.setLayout(new GridLayout());
+
+		Composite buttonComposite = new Composite(containerComposite, SWT.NULL);
+		GridLayout layout = new GridLayout();
+		layout.numColumns = 2;
+		layout.makeColumnsEqualWidth = false;
+		buttonComposite.setLayout(layout);
+
+		contentAssistButton = new Button(buttonComposite, SWT.CHECK);
+		GridData gd = new GridData();
+		contentAssistButton.setLayoutData(gd);
+		contentAssistButton.setSelection(true);
+
+		Label label = new Label(buttonComposite, SWT.NONE);
+		label.setText(CONTENT_ASSIST);
+		label = new Label(buttonComposite, SWT.NONE);
+		label = new Label(buttonComposite, SWT.NONE);
+		label.setFont(JFaceResources.getFontRegistry().getItalic(JFaceResources.DEFAULT_FONT));
+		label.setText(CONTENT_ASSIST_WARNING);
+		
+//		label = new Label(buttonComposite, SWT.NONE);
+//		label = new Label(buttonComposite, SWT.NONE);
+//		label.setText("NOTE: if Mylar is uninstalled you must Restore Defaults on above page ");
+//		label.setForeground(TaskListColorsAndFonts.COLOR_LABEL_CAUTION);
+		
+		gd = new GridData();
+		label.setLayoutData(gd);
+
+		turnOnAutoFoldingButton = new Button(buttonComposite, SWT.CHECK);
+		gd = new GridData();
+		turnOnAutoFoldingButton.setLayoutData(gd);
+		turnOnAutoFoldingButton.setSelection(true);
+		turnOnAutoFoldingButton.addSelectionListener(new SelectionListener() {
+
+			public void widgetSelected(SelectionEvent e) {
+				autoFolding = turnOnAutoFoldingButton.getSelection();
+			}
+
+			public void widgetDefaultSelected(SelectionEvent e) {
+				// don't care about this event
+			}
+		});
+		
+		label = new Label(buttonComposite, SWT.NONE);
+		label.setText(AUTO_FOLDING);
+		gd = new GridData();
+		label.setLayoutData(gd);
+		label = new Label(buttonComposite, SWT.NONE);
+		label = new Label(buttonComposite, SWT.NONE);
+		label.setFont(JFaceResources.getFontRegistry().getItalic(JFaceResources.DEFAULT_FONT));
+		label.setText("Toggle via toolbar button ");
+		
+		
+		closeEditorsOnDeactivationButton = new Button(buttonComposite, SWT.CHECK);
+		gd = new GridData();
+		closeEditorsOnDeactivationButton.setLayoutData(gd);
+		closeEditorsOnDeactivationButton.setSelection(true);
+		closeEditorsOnDeactivationButton.addSelectionListener(new SelectionListener() {
+
+			public void widgetSelected(SelectionEvent e) {
+				closeEditors = closeEditorsOnDeactivationButton.getSelection();
+			}
+
+			public void widgetDefaultSelected(SelectionEvent e) {
+				// don't care about this event
+			}
+		});
+		
+		label = new Label(buttonComposite, SWT.NONE);
+		label.setText(AUTO_CLOSE);
+		gd = new GridData();
+		label.setLayoutData(gd);
+
+		label = new Label(buttonComposite, SWT.NONE);
+		label = new Label(buttonComposite, SWT.NONE);
+		label.setFont(JFaceResources.getFontRegistry().getItalic(JFaceResources.DEFAULT_FONT));
+		label.setText("Toggle via Mylyn preferences page ");
+		
+//		addMylarActiveWorkingSetButton = new Button(buttonComposite, SWT.CHECK);
+//		gd = new GridData();
+//		addMylarActiveWorkingSetButton.setSelection(true);
+//		addMylarActiveWorkingSetButton.addSelectionListener(new SelectionListener() {
+//
+//			public void widgetSelected(SelectionEvent e) {
+//				workingSet = addMylarActiveWorkingSetButton.getSelection();
+//			}
+//
+//			public void widgetDefaultSelected(SelectionEvent e) {
+//				// don't care about this event
+//			}
+//		});
+
+//		label = new Label(buttonComposite, SWT.NONE);
+//		label.setText(WORKING_SET);
+//		gd = new GridData();
+//		label.setLayoutData(gd);
+//		setControl(buttonComposite);
+
+//		label = new Label(buttonComposite, SWT.NONE);
+//		label = new Label(buttonComposite, SWT.NONE);
+//		label.setFont(JFaceResources.getFontRegistry().getItalic(JFaceResources.DEFAULT_FONT));
+//		label.setText("Remove via Window->Working Sets ");
+		
+		openTaskListButton = new Button(buttonComposite, SWT.CHECK);
+		gd = new GridData();
+		openTaskListButton.setLayoutData(gd);
+		openTaskListButton.setSelection(true);
+		openTaskListButton.addSelectionListener(new SelectionListener() {
+
+			public void widgetSelected(SelectionEvent e) {
+				openTaskList = openTaskListButton.getSelection();
+			}
+
+			public void widgetDefaultSelected(SelectionEvent e) {
+				// don't care about this event
+			}
+		});
+
+		label = new Label(buttonComposite, SWT.NONE);
+		label.setText(OPEN_TASK_LIST);
+		gd = new GridData();
+		label.setLayoutData(gd);
+
+		Label spacer = new Label(buttonComposite, SWT.NONE);
+		spacer.setText(" ");
+		spacer = new Label(buttonComposite, SWT.NONE);
+		spacer.setText(" ");
+
+		Hyperlink hyperlink = new Hyperlink(containerComposite, SWT.NULL);
+		hyperlink.setUnderlined(true);
+		//hyperlink.setForeground(TaskListColorsAndFonts.COLOR_HYPERLINK_WIDGET);
+				//.COLOR_HYPERLINK);
+
+		hyperlink.setText("If this is your first time using Mylyn please watch the short Getting Started video");
+
+		label = new Label(containerComposite, SWT.NONE);
+		label.setText("For a legend of the icons used by Mylyn open: Help (menu) -> Mylar UI Legend");
+		gd = new GridData();
+		label.setLayoutData(gd);
+		
+		hyperlink.addHyperlinkListener(new IHyperlinkListener() {
+
+			public void linkActivated(HyperlinkEvent e) {
+				//TasksUiUtil.openBrowser("http://eclipse.org/mylar/start.php");
+			}
+
+			public void linkEntered(HyperlinkEvent e) {
+				// ignore
+			}
+
+			public void linkExited(HyperlinkEvent e) {
+				// ignore
+			}
+
+			
+		});
+		
+//		Composite browserComposite = new Composite(containerComposite, SWT.NULL);
+//		browserComposite.setLayout(new GridLayout());
+//		try {
+//			Browser browser = new Browser(browserComposite, SWT.NONE);
+//			browser.setText(htmlDocs);
+//			GridData browserLayout = new GridData(GridData.FILL_HORIZONTAL);
+//			browserLayout.heightHint = 100;
+//			browserLayout.widthHint = 600;
+//			browser.setLayoutData(browserLayout);
+//		} catch (Throwable t) {
+//			// fail silently if there is no browser
+//		}
+
+		setControl(containerComposite);
+	}
+
+	public boolean isAutoFolding() {
+		return autoFolding;
+	}
+
+	public boolean closeEditors() {
+		return closeEditors;
+	}
+
+	public boolean isMylynContentAssistDefault() {
+		return contentAssistButton.getSelection();
+	}
+
+	public boolean isCreateWorkingSet() {
+		return createWorkingSet;
+	}
+
+	public boolean isOpenTaskList() {
+		return openTaskList;
+	}
+}