diff options
Diffstat (limited to 'bundles/org.eclipse.team.core')
36 files changed, 0 insertions, 3976 deletions
diff --git a/bundles/org.eclipse.team.core/.classpath b/bundles/org.eclipse.team.core/.classpath deleted file mode 100644 index 4432f278d..000000000 --- a/bundles/org.eclipse.team.core/.classpath +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<classpath> - <classpathentry kind="src" path="src/"/> - <classpathentry kind="var" path="JRE_LIB" rootpath="JRE_SRCROOT" sourcepath="JRE_SRC"/> - <classpathentry kind="src" path="/org.apache.xerces"/> - <classpathentry kind="src" path="/org.eclipse.core.resources"/> - <classpathentry kind="src" path="/org.eclipse.core.runtime"/> - <classpathentry kind="output" path="bin"/> -</classpath> diff --git a/bundles/org.eclipse.team.core/.cvsignore b/bundles/org.eclipse.team.core/.cvsignore deleted file mode 100644 index c5e82d745..000000000 --- a/bundles/org.eclipse.team.core/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -bin
\ No newline at end of file diff --git a/bundles/org.eclipse.team.core/.project b/bundles/org.eclipse.team.core/.project deleted file mode 100644 index d81dc3af3..000000000 --- a/bundles/org.eclipse.team.core/.project +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.team.core</name>
- <comment></comment>
- <projects>
- <project>org.apache.xerces</project>
- <project>org.eclipse.core.resources</project>
- <project>org.eclipse.core.runtime</project>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.team.cvs.core.cvsnature</nature>
- </natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.team.core/README b/bundles/org.eclipse.team.core/README deleted file mode 100644 index 6a358f07a..000000000 --- a/bundles/org.eclipse.team.core/README +++ /dev/null @@ -1,13 +0,0 @@ -Note to users of this plug-in - -The classes and interfaces in this plug-in are part of an API that is -still under development and expected to change significantly before -reaching stability. It is being made available at this early stage to -solicit feedback from pioneering adopters on the understanding -that any code that uses this API will almost certainly be broken -(repeatedly) as the API evolves. - -For up-to-date information on these APIs and other related news see -our component page: - -http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-vcm-home/main.html
\ No newline at end of file diff --git a/bundles/org.eclipse.team.core/about.html b/bundles/org.eclipse.team.core/about.html deleted file mode 100644 index 441774f92..000000000 --- a/bundles/org.eclipse.team.core/about.html +++ /dev/null @@ -1,42 +0,0 @@ -<html> -<head> -<title>About</title> -<style type="text/css"> -p, table, td, th { font-family: arial, helvetica, geneva; font-size: 10pt} -pre { font-family: "Courier New", Courier, mono; font-size: 10pt} -h2 { font-family: arial, helvetica, geneva; font-size: 18pt; font-weight: bold ; line-height: 14px} -code { font-family: "Courier New", Courier, mono; font-size: 10pt} -sup { font-family: arial,helvetica,geneva; font-size: 10px} -h3 { font-family: arial, helvetica, geneva; font-size: 14pt; font-weight: bold} -li { font-family: arial, helvetica, geneva; font-size: 10pt} -h1 { font-family: arial, helvetica, geneva; font-size: 28px; font-weight: bold} -body { font-family: arial, helvetica, geneva; font-size: 10pt; clip: rect( ); margin-top: 5mm; margin-left: 3mm} -</style> -</head> -<body lang="EN-US" link="blue" vlink="purple"> -<table border="0" cellspacing="5" cellpadding="2" width="100%" > - <tr> - <td align="LEFT" valign="TOP" colspan="2" bgcolor="#0080C0"><b><font color="#FFFFFF">About This Content</font></b></td> - </tr> - <tr> - <td> -<p>11th December, 2001</p> -<h3>License</h3> -<p>Eclipse.org makes available all content in this plug-in "Content". Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the -<a href="http://www.eclipse.org/legal/cpl-v05.html">Common Public License Version 0.5</a> "CPL". For purposes of the CPL, "Program" will mean the Content.</p> - -<h3>Contributions</h3> - -<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise -made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such -Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p> - -<p>If this Content is licensed to you under license terms and conditions other than the CPL "Other License", any modifications, enhancements and/or -other code and/or documentation "Modifications" uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the -host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available -to others under the terms of the Other License. In addition, with regard to Modifications for which you are the copyright holder, you are also -providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of -the CPL.</p> -</td></tr></table> -</body> -</html>
\ No newline at end of file diff --git a/bundles/org.eclipse.team.core/build.properties b/bundles/org.eclipse.team.core/build.properties deleted file mode 100644 index 038bbbca4..000000000 --- a/bundles/org.eclipse.team.core/build.properties +++ /dev/null @@ -1,3 +0,0 @@ -# Eclipse build contribution -bin.includes = about.html,plugin.xml,plugin.properties,*.jar -source.team.jar=src/ diff --git a/bundles/org.eclipse.team.core/buildnotes_team.html b/bundles/org.eclipse.team.core/buildnotes_team.html deleted file mode 100644 index 7f19e8b67..000000000 --- a/bundles/org.eclipse.team.core/buildnotes_team.html +++ /dev/null @@ -1,497 +0,0 @@ -<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en"> -<html xmlns:v="urn:schemas-microsoft-com:vml" - 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"> - - <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="filelist"> - <title>Eclipse Platform Release Notes - VCM</title> - - <style> -<!-- - /* 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";} -h1 - {margin-right:0in; - mso-margin-top-alt:auto; - mso-margin-bottom-alt:auto; - margin-left:0in; - mso-pagination:widow-orphan; - mso-outline-level:1; - font-size:24.0pt; - font-family:"Times New Roman"; - mso-font-kerning:18.0pt; - font-weight:bold;} -h2 - {margin-right:0in; - mso-margin-top-alt:auto; - mso-margin-bottom-alt:auto; - margin-left:0in; - mso-pagination:widow-orphan; - mso-outline-level:2; - font-size:18.0pt; - font-family:"Times New Roman"; - font-weight:bold;} -h3 - {margin-right:0in; - mso-margin-top-alt:auto; - mso-margin-bottom-alt:auto; - margin-left:0in; - mso-pagination:widow-orphan; - mso-outline-level:3; - font-size:13.5pt; - font-family:"Times New Roman"; - font-weight:bold;} -a:link, span.MsoHyperlink - {color:blue; - text-decoration:underline; - text-underline:single;} -a:visited, span.MsoHyperlinkFollowed - {color:purple; - text-decoration:underline; - text-underline:single;} -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";} -@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;} - /* List Definitions */ -@list l0 - {mso-list-id:180434102; - mso-list-type:hybrid; - mso-list-template-ids:-764372184 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} -ol - {margin-bottom:0in;} -ul - {margin-bottom:0in;} ---> - </style> - <!--[if gte mso 9]><xml> - <u1:DocumentProperties> - <u1:Author>johnart</u1:Author> - <u1:LastAuthor>johnart</u1:LastAuthor> - <u1:Revision>2</u1:Revision> - <u1:TotalTime>14</u1:TotalTime> - <u1:Created>2001-05-14T20:34:00Z</u1:Created> - <u1:LastSaved>2001-05-14T20:58:00Z</u1:LastSaved> - <u1:Pages>9</u1:Pages> - <u1:Words>3732</u1:Words> - <u1:Characters>21276</u1:Characters> - <u1:Lines>177</u1:Lines> - <u1:Paragraphs>42</u1:Paragraphs> - <u1:CharactersWithSpaces>26128</u1:CharactersWithSpaces> - <u1:Version>9.3821</u1:Version> - </u1:DocumentProperties> -</xml><![endif]--> -</head> - <body lang="EN-US" link="blue" vlink="purple" style=""> - -<h1 style=""> </h1> - -<h1 style=""> </h1> - -<h1 style=""> </h1> - -<h1 style=""> </h1> - -<h1 style=""> </h1> - -<h1 style=""> -<h1 style="">Eclipse Platform Build Notes – Team Support</h1> - </h1> -<p class="MsoNormal">Team build I20020430 – April 30 2002</p> - -<p class="MsoNormal">Build submission for Integration Build 20020430</p> - -<h2>What's new in this build</h2> - -<p class="MsoNormal">No major changes</p> - -<h1 style=""> </h1> - -<h1 style=""> </h1> - -<h1 style=""> </h1> - -<h1 style=""> </h1> - -<h1 style=""> </h1> - -<h1 style="">Eclipse Platform Build Notes – Team Support</h1> - -<p class="MsoNormal">Team build I20020423 – April 23 2002</p> - -<p class="MsoNormal">Build submission for Integration Build 20020423</p> - -<h2>What's new in this build</h2> - -<p class="MsoNormal">Initial release of team project set support. There is -now an import and export wizard that allows one to create a file containing -a list (and location) of team shared projects. This file may be imported into -another workspace, re-creating the entire set of projects.</p> - -<h1 style=""> </h1> - -<h1 style=""> </h1> - -<h1 style=""> </h1> - -<h1 style=""> </h1> - -<h1 style=""> </h1> - -<h1 style="">Eclipse Platform Build Notes – Team Support</h1> - -<p class="MsoNormal">Team build I20020418 – April 18 2002</p> - -<p class="MsoNormal">Build submission for Integration Build 20020418</p> - -<h2>What's new in this build</h2> - -<p class="MsoNormal">No significant changes to the core Team support in this - build.</p> - -<h1 style="">Eclipse Platform Build Notes – Team Support</h1> - -<p class="MsoNormal">Team build I20020409 – April 9 2002</p> - -<p class="MsoNormal">Build submission for Integration Build 20020409</p> - -<h2>What's new in this build</h2> - -<p class="MsoNormal">No significant changes to the core Team support in this - build.</p> - <br> - -<h1 style="">Eclipse Platform Build Notes – Team Support</h1> - -<p class="MsoNormal">Team build I20020402 – April 2 2002</p> - -<p class="MsoNormal">Build submission for Integration Build 20020402</p> - -<h2>What's new in this build</h2> - -<p class="MsoNormal">Team plug-ins are now turned <b>on</b> by default. The - old VCM plug-ins are still included in the build but are turned off.<br> - The global ignore and text/binary APIs have changed substantially. The - facilities are now provided as static methods on the class org.eclipse.team.core.Team. - See that class's Javadoc for more details.<br> - <br> - </p> - -<p class="MsoNormal"><br> - </p> - -<div class="Section1"> -<h1 style="">Eclipse Platform Build Notes – Team Support</h1> - -<p class="MsoNormal">Team build I20020312 – March 12 2002</p> - -<p class="MsoNormal">Build submission for Integration Build 20020312</p> - -<h2>What's new in this build</h2> - -<p class="MsoNormal"></p> - -<p class="MsoNormal">Team plug-ins are now turned <b>on</b> by default. The - old VCM plug-ins are still included in the build but are turned off.</p> - -<p class="MsoNormal"><br> - The Decorations extension point has been removed from org.eclipse.team.ui. - Please use the generic workbench decoration facility in the future.<br> - </p> - -<h1 style="">Eclipse Platform Build Notes – Team Support</h1> - -<p class="MsoNormal">Team build I20020305 – March 5 2002</p> - -<p class="MsoNormal">Build submission for Integration Build 20020305</p> - -<h2>What's new in this drop</h2> - -<p class="MsoNormal">No changes to the core team support in this drop.</p> - -<p class="MsoNormal"><br> - All Team plug-ins are turned off by default. If you wish to use Team - support,</p> - -<ol style="margin-top: 0in;" start="1" type="1"> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.ui/plugin.xml.off - to plugins/org.eclipse.team.ui/plugin.xml </li> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ui/plugin.xml.off - to plugins/org.eclipse.team.cvs.ui/plugin.xml </li> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.core/plugin.xml.off - to plugins/org.eclipse.team.core/plugin.xml </li> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.core/plugin.xml.off - to plugins/org.eclipse.team.cvs.core/plugin.xml </li> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ssh/plugin.xml.off - to plugins/org.eclipse.team.cvs.ssh/plugin.xml </li> - -</ol> - -<h1 style="">Eclipse Platform Build Notes – Team Support</h1> - -<p class="MsoNormal">Team build I20020226 – February 26, 2002</p> - -<p class="MsoNormal">Build submission for Integration Build 20020226</p> - -<h2>What's new in this drop</h2> - -<p class="MsoNormal"></p> - -<p class="MsoNormal"></p> - -<p class="MsoNormal"><!--[if !supportEmptyParas]--><!--[endif]--></p> - -<p class="MsoNormal">No changes in this drop.</p> - -<p class="MsoNormal"><br> - All Team plug-ins are turned off by default. If you wish to use Team - support,</p> - -<ol style="margin-top: 0in;" start="1" type="1"> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.ui/plugin.xml.off - to plugins/org.eclipse.team.ui/plugin.xml </li> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ui/plugin.xml.off - to plugins/org.eclipse.team.cvs.ui/plugin.xml </li> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.core/plugin.xml.off - to plugins/org.eclipse.team.core/plugin.xml </li> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.core/plugin.xml.off - to plugins/org.eclipse.team.cvs.core/plugin.xml </li> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ssh/plugin.xml.off - to plugins/org.eclipse.team.cvs.ssh/plugin.xml </li> - -</ol> - -<h1 style="">Eclipse Platform Build Notes – Team Support</h1> - -<p class="MsoNormal">Team build I20020214 – February 14, 2002<o:p></o:p></p> - -<p class="MsoNormal">Build submission for Integration Build 20020214<o:p></o:p></p> - -<h2>What's new in this drop<o:p></o:p></h2> - -<p class="MsoNormal">Bug fixes:<o:p></o:p></p> - -<p class="MsoNormal">Change in semantics to validateEdit (9802)<o:p></o:p></p> - -<p class="MsoNormal"><!--[if !supportEmptyParas]--> <!--[endif]--><o:p></o:p></p> - -<p class="MsoNormal">All Team plug-ins are turned off by default. If you wish -to use Team support,<o:p></o:p></p> - -<ol style="margin-top: 0in;" start="1" type="1"> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.ui/plugin.xml.off - to plugins/org.eclipse.team.ui/plugin.xml <o:p></o:p></li> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ui/plugin.xml.off - to plugins/org.eclipse.team.cvs.ui/plugin.xml <o:p></o:p></li> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.core/plugin.xml.off - to plugins/org.eclipse.team.core/plugin.xml <o:p></o:p></li> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.core/plugin.xml.off - to plugins/org.eclipse.team.cvs.core/plugin.xml <o:p></o:p></li> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ssh/plugin.xml.off - to plugins/org.eclipse.team.cvs.ssh/plugin.xml <o:p></o:p></li> - -</ol> - -<h1 style="">Eclipse Platform Build Notes – Team Support</h1> - -<p class="MsoNormal">Team build V2_0_6 – February 12, 2002</p> - -<p class="MsoNormal">Build submission for Integration Build 20020212</p> - -<h2>What's new in this drop</h2> - -<p class="MsoNormal">48 bugs fixed.</p> - -<p class="MsoNormal">Global ignore facility added to the core team support.</p> - -<p class="MsoNormal"><!--[if !supportEmptyParas]--> <!--[endif]--><o:p></o:p></p> - -<p class="MsoNormal">All Team plug-ins are turned off by default. If you wish -to use Team support,</p> - -<ol style="margin-top: 0in;" start="6" type="1"> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.ui/plugin.xml.off - to plugins/org.eclipse.team.ui/plugin.xml</li> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ui/plugin.xml.off - to plugins/org.eclipse.team.cvs.ui/plugin.xml</li> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.core/plugin.xml.off - to plugins/org.eclipse.team.core/plugin.xml</li> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.core/plugin.xml.off - to plugins/org.eclipse.team.cvs.core/plugin.xml</li> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ssh/plugin.xml.off - to plugins/org.eclipse.team.cvs.ssh/plugin.xml</li> - -</ol> - -<p class="MsoNormal" style="margin-left: 0.25in;"><!--[if !supportEmptyParas]--> - <!--[endif]--><o:p></o:p></p> - -<p class="MsoNormal">Please report any problems to the VCM team, and use the -VCM component for bug tracking.</p> - -<h1 style="">Eclipse Platform Build Notes – Team Support</h1> - -<p class="MsoNormal">Team build V2_0_5 – February 5, 2002</p> - -<p class="MsoNormal">Build submission for Integration Build 20020205</p> - -<h2>What's new in this drop</h2> - -<p class="MsoNormal">41 bugs fixed.</p> - -<p class="MsoNormal">CVS operations move from the CVS submenu to the Team - submenu.</p> - -<p class="MsoNormal">Proper plugin.xml files will be included with this build.</p> - -<p class="MsoNormal"><!--[if !supportEmptyParas]--> <!--[endif]--><o:p></o:p></p> - -<p class="MsoNormal">All Team plug-ins are turned off by default. If you wish -to use Team support,</p> - -<ol style="margin-top: 0in;" start="11" type="1"> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.ui/plugin.xml.off - to plugins/org.eclipse.team.ui/plugin.xml</li> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ui/plugin.xml.off - to plugins/org.eclipse.team.cvs.ui/plugin.xml</li> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.core/plugin.xml.off - to plugins/org.eclipse.team.core/plugin.xml</li> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.core/plugin.xml.off - to plugins/org.eclipse.team.cvs.core/plugin.xml</li> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ssh/plugin.xml.off - to plugins/org.eclipse.team.cvs.ssh/plugin.xml</li> - -</ol> - -<p class="MsoNormal" style="margin-left: 0.25in;"><!--[if !supportEmptyParas]--> - <!--[endif]--><o:p></o:p></p> - -<p class="MsoNormal">Please report any problems to the VCM team, and use the -VCM component for bug tracking.</p> - -<p class="MsoNormal"><!--[if !supportEmptyParas]--> <!--[endif]--><o:p></o:p></p> - -<p class="MsoNormal">Run <a - href="http://dev.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&bugidtype=include&bug_id=&changedin=&votes=&chfield=bug_status&chfieldfr%20"> - this</a> query to determine which bugs have been fixed since January - 29<sup> th</sup>. If you wish to narrow the search, edit the query and - change the dates.</p> - -<h1 style="">Eclipse Platform Build Notes – Team Support</h1> - -<p class="MsoNormal">Team build V2_0_4 – January 29, 2002</p> - -<p class="MsoNormal">Build submission for Integration Build 20020129</p> - -<h2>What's new in this drop</h2> - -<p class="MsoNormal">Merge support has been added</p> - -<p class="MsoNormal">Numerous bug fixes</p> - -<p class="MsoNormal"><!--[if !supportEmptyParas]--> <!--[endif]--><o:p></o:p></p> - -<p class="MsoNormal">All Team plug-ins are turned off by default. If you wish -to use Team support,</p> - -<ol style="margin-top: 0in;" start="16" type="1"> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.ui/plugin.xml.off - to plugins/org.eclipse.team.ui/plugin.xml</li> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ui/plugin.xml.off - to plugins/org.eclipse.team.cvs.ui/plugin.xml</li> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.core/plugin.xml.off - to plugins/org.eclipse.team.core/plugin.xml</li> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.core/plugin.xml.off - to plugins/org.eclipse.team.cvs.core/plugin.xml</li> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ssh/plugin.xml.off - to plugins/org.eclipse.team.cvs.ssh/plugin.xml</li> - -</ol> - -<p class="MsoNormal" style="margin-left: 0.25in;"><!--[if !supportEmptyParas]--> - <!--[endif]--><o:p></o:p></p> - -<p class="MsoNormal">Please report any problems to the VCM team, and use the -VCM component for bug tracking.</p> - -<p class="MsoNormal"><!--[if !supportEmptyParas]--> <!--[endif]--><o:p></o:p></p> - -<p class="MsoNormal">Run <a - href="http://dev.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&priority=P1&priority=P2&priority=P3&priority=P4&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&bugidtype=include&bug_id%20"> - this</a> query to determine which bugs have been fixed since January - 15<sup> th</sup>. If you wish to narrow the search, edit the query and - change the dates.</p> - -<h1 style="">Eclipse Platform Build Notes – Team Support</h1> - -<p class="MsoNormal">Team build V2_0_2 – January 15, 2002</p> - -<p class="MsoNormal">Build submission for Integration Build 20020115</p> - -<h2>What's new in this drop</h2> - -<p class="MsoNormal">This is the initial release for the Team support plug-ins. - Team support is intended to be an eventual replacement for the VCM codebase.</p> - -<p class="MsoNormal"><!--[if !supportEmptyParas]--> <!--[endif]--><o:p></o:p></p> - -<p class="MsoNormal">The plug-ins are turned off by default. If you wish to -use Team support,</p> - -<ol style="margin-top: 0in;" start="21" type="1"> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.ui/plugin.xml.off - to plugins/org.eclipse.team.ui/plugin.xml</li> - <li class="MsoNormal" style=""> Rename plugins/org.eclipse.team.cvs.ui/plugin.xml.off - to plugins/org.eclipse.team.cvs.ui/plugin.xml</li> - -</ol> - -<p class="MsoNormal"><!--[if !supportEmptyParas]--> <!--[endif]--><o:p></o:p></p> - -<p class="MsoNormal">Please report any problems to the VCM team, and use the -VCM component for bug tracking.</p> - -<p class="MsoNormal"><!--[if !supportEmptyParas]--> <!--[endif]--><o:p></o:p></p> - -<p class="MsoNormal">Run <a - href="http://dev.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&resolution=FIXED&priority=P1&priority=P2&priority=P3&priority=P4&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&bugi%20"> - this</a> query to determine which bugs have been fixed since January - 7<sup> th</sup>. If you wish to narrow the search, edit the query and -change the dates.</p> - -<h1 style=""><!--[if !supportEmptyParas]--> <!--[endif]--><o:p></o:p></h1> - </div> - -</body> -</html> diff --git a/bundles/org.eclipse.team.core/doc/hglegal.htm b/bundles/org.eclipse.team.core/doc/hglegal.htm deleted file mode 100644 index c59811321..000000000 --- a/bundles/org.eclipse.team.core/doc/hglegal.htm +++ /dev/null @@ -1,14 +0,0 @@ -<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> -<html> -<head> - <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> - <meta name="GENERATOR" content="Mozilla/4.73 [en] (Win98; U) [Netscape]"> - <title>Legal Notices</title> -</head> -<body> - -<h3> -<a NAME="Notices"></a>Notices</h3> -(c) Copyright IBM Corp. 2000, 2001. All Rights Reserved. -</body> -</html> diff --git a/bundles/org.eclipse.team.core/doc/ngibmcpy.gif b/bundles/org.eclipse.team.core/doc/ngibmcpy.gif Binary files differdeleted file mode 100644 index 360f8e998..000000000 --- a/bundles/org.eclipse.team.core/doc/ngibmcpy.gif +++ /dev/null diff --git a/bundles/org.eclipse.team.core/doc/org_eclipse_team_core.html b/bundles/org.eclipse.team.core/doc/org_eclipse_team_core.html deleted file mode 100644 index a001ac9a1..000000000 --- a/bundles/org.eclipse.team.core/doc/org_eclipse_team_core.html +++ /dev/null @@ -1,26 +0,0 @@ -<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> -<html> -<head> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <title>Team Core Extension Points</title> -</head> -<body link="#0000FF" vlink="#800080"> - -<center> -<h1>Team Core Plug-in</h1></center> -This document lists all of the extension points that the Team Core plug-in makes available to repository provider developers. -<p> -<hr WIDTH="100%"> -<h1>General Extension Points</h1> -The following extension points can be used to extend various aspects of the team functionality: -<ul> -<li> -<a href="org_eclipse_team_core_fileTypes.html">org.eclipse.team.core.fileTypes</a></li> -<li> -<a href="org_eclipse_team_core_ignore.html">org.eclipse.team.core.ignore</a></li> -<li> -<a href="org_eclipse_team_core_projectSets.html">org.eclipse.team.core.projectSets</a></li> -</ul> -<a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corp. 2000, 2001. All Rights Reserved." BORDER=0 height=12 width=195></a> -</body> -</html> diff --git a/bundles/org.eclipse.team.core/doc/org_eclipse_team_core_fileTypes.html b/bundles/org.eclipse.team.core/doc/org_eclipse_team_core_fileTypes.html deleted file mode 100644 index 5b9a6f636..000000000 --- a/bundles/org.eclipse.team.core/doc/org_eclipse_team_core_fileTypes.html +++ /dev/null @@ -1,45 +0,0 @@ -<!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 Team Core Extension Point: File Types</title> -</head> -<body link="#0000FF" vlink="#800080"> - -<center> -<h1> -File Types</h1></center> -<b><i>Identifier: </i></b>org.eclipse.team.core.fileTypes -<p><b><i>Description: </i></b>This extension point is used to register -information about whether particular file types should be considered -to contain text or binary data. This information is important to some -repository providers as it affects how the data is stored, compared and -transmitted. -<p>Providers may provide an extension for this extension point. No code -beyond the XML extension declaration is required. -<p><b><i>Configuration Markup:</i></b> -<p><tt> <!ELEMENT fileTypes EMPTY></tt> -<br><tt> <!ATTLIST fileTypes</tt> -<br><tt> extension -CDATA #REQUIRED</tt> -<br><tt> type -CDATA #REQUIRED</tt> -<br><tt> ></tt> - -<ul> -<li><b>extension -</b> the file extension being identified by this contribution.</li> -<li><b>type -</b> one of either "text" or "binary", identifying the contents of files matching the value of extension.</li> -</ul> - -<b><i>Examples:</i></b> -<p>Following is an example of a fileTypes extension: -<p><tt> <extension point="org.eclipse.team.core.fileTypes"></tt> -<br><tt> <fileTypes</tt> -<br><tt> extension="txt"</tt> -<br><tt> type="text"</tt> -<br><tt> </fileTypes></tt> -<br><tt> </extension></tt> - -<p><a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corp. 2000, 2001. All Rights Reserved." BORDER=0 height=12 width=195></a> -</body> -</html> diff --git a/bundles/org.eclipse.team.core/doc/org_eclipse_team_core_ignore.html b/bundles/org.eclipse.team.core/doc/org_eclipse_team_core_ignore.html deleted file mode 100644 index cdab6827f..000000000 --- a/bundles/org.eclipse.team.core/doc/org_eclipse_team_core_ignore.html +++ /dev/null @@ -1,43 +0,0 @@ -<!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 Team Core Extension Point: Ignore</title> -</head> -<body link="#0000FF" vlink="#800080"> - -<center> -<h1> -Ignore</h1></center> -<b><i>Identifier: </i></b>org.eclipse.team.core.ignore -<p><b><i>Description: </i></b>This extension point is used to register -information about whether particular resources should be ignored; that -is, excluded from version configuration management operations. -<p>Providers may provide an extension for this extension point. No code -beyond the XML extension declaration is required. -<p><b><i>Configuration Markup:</i></b> -<p><tt> <!ELEMENT ignore EMPTY></tt> -<br><tt> <!ATTLIST ignore</tt> -<br><tt> pattern -CDATA #REQUIRED</tt> -<br><tt> enabled -CDATA #REQUIRED</tt> -<br><tt> ></tt> - -<ul> -<li><b>pattern -</b> the pattern against which resources will be compared.</li> -<li><b>enabled -</b> one of "true" or "false", determines whether this ignore pattern is enabled.</li> -</ul> - -<b><i>Examples:</i></b> -<p>Following is an example of an ignore extension: -<p><tt> <extension point="org.eclipse.team.core.ignore"></tt> -<br><tt> <ignore</tt> -<br><tt> pattern="*.class"</tt> -<br><tt> enabled="true"</tt> -<br><tt> </ignore></tt> -<br><tt> </extension></tt> - -<p><a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corp. 2000, 2001. All Rights Reserved." BORDER=0 height=12 width=195></a> -</body> -</html> diff --git a/bundles/org.eclipse.team.core/doc/org_eclipse_team_core_projectSets.html b/bundles/org.eclipse.team.core/doc/org_eclipse_team_core_projectSets.html deleted file mode 100644 index ae3dbe470..000000000 --- a/bundles/org.eclipse.team.core/doc/org_eclipse_team_core_projectSets.html +++ /dev/null @@ -1,45 +0,0 @@ -<!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 Team Core Extension Point: Project Sets</title> -</head> -<body link="#0000FF" vlink="#800080"> - -<center> -<h1> -Project Sets</h1></center> -<b><i>Identifier: </i></b>org.eclipse.team.core.projectSets -<p><b><i>Description: </i></b>This extension point is used to register -a handler for creating and reading project sets. Project sets are a lightweight, -portable method of sharing a particular lineup of team-shared projects in a -workspace. A project set file may be used to provide team members with a simple -way of creating a workspace with a particular lineup of projects from one or -more team providers. -<p>Providers may provide an extension for this extension point. -<p><b><i>Configuration Markup:</i></b> -<p><tt> <!ELEMENT projectSets EMPTY></tt> -<br><tt> <!ATTLIST projectSets</tt> -<br><tt> id -CDATA #REQUIRED</tt> -<br><tt> class -CDATA #REQUIRED</tt> -<br><tt> ></tt> - -<ul> -<li><b>id -</b> the nature id of the provider for which this handler creates and reads project sets.</li> -<li><b>type -</b> the fully-qualified name of a class implementing <code>org.eclipse.team.core.IProjectSetSerializer</code>.</li> -</ul> - -<b><i>Examples:</i></b> -<p>Following is an example of a projectSets extension: -<p><tt> <extension point="org.eclipse.team.core.projectSets"></tt> -<br><tt> <projectSets</tt> -<br><tt> id="org.eclipse.team.cvs.core.cvsnature"</tt> -<br><tt> class="org.eclipse.team.cvs.core.CVSProjectSetSerializer"</tt> -<br><tt> </projectSets></tt> -<br><tt> </extension></tt> - -<p><a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corp. 2000, 2001. All Rights Reserved." BORDER=0 height=12 width=195></a> -</body> -</html> diff --git a/bundles/org.eclipse.team.core/plugin.properties b/bundles/org.eclipse.team.core/plugin.properties deleted file mode 100644 index b6888863d..000000000 --- a/bundles/org.eclipse.team.core/plugin.properties +++ /dev/null @@ -1,4 +0,0 @@ -pluginName = Team Support Core -FileTypesRegistry=File Types Registry -GlobalIgnoreRegistry=Global Ignore Registry -TeamProjectSets=Team Project Sets
\ No newline at end of file diff --git a/bundles/org.eclipse.team.core/plugin.xml b/bundles/org.eclipse.team.core/plugin.xml deleted file mode 100644 index cf1475485..000000000 --- a/bundles/org.eclipse.team.core/plugin.xml +++ /dev/null @@ -1,43 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- File written by PDE 1.0 --> -<plugin - id="org.eclipse.team.core" - name="%pluginName" - version="1.9.0" - provider-name="Object Technology International, Inc." - class="org.eclipse.team.core.TeamPlugin"> -<requires> - <import plugin="org.eclipse.core.resources"/> - <import plugin="org.eclipse.core.runtime"/> -</requires> - -<runtime> - <library name="team.jar"> - <export name="*"/> - </library> -</runtime> - -<extension-point id="fileTypes" name="%FileTypesRegistry"/> -<extension-point id="ignore" name="%GlobalIgnoreRegistry"/> -<extension-point id="projectSets" name="%TeamProjectSets"/> - -<!-- Define some example text extensions. This will be done - by other plugins later. --> - -<extension point="org.eclipse.team.core.fileTypes"> - <fileTypes extension="txt" type="text"/> - <fileTypes extension="java" type="text"/> - <fileTypes extension="properties" type="text"/> - <fileTypes extension="xml" type="text"/> - <fileTypes extension="html" type="text"/> -</extension> - -<extension point="org.eclipse.core.resources.fileModificationValidator" id="FileValidator"> - <fileModificationValidator class="org.eclipse.team.internal.core.FileModificationValidatorManager"/> -</extension> - -<extension point="org.eclipse.core.resources.moveDeleteHook" id="MoveDeleteHook"> - <moveDeleteHook class="org.eclipse.team.internal.core.MoveDeleteManager"/> -</extension> - -</plugin> diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IFileTypeInfo.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IFileTypeInfo.java deleted file mode 100644 index e78cbbabf..000000000 --- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IFileTypeInfo.java +++ /dev/null @@ -1,39 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v0.5 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v05.html - * - * Contributors: - * IBM - Initial API and implementation - ******************************************************************************/ -package org.eclipse.team.core; - -/** - * A file type info specifies both the file extension and the - * corresponding file type. - * - * @since 2.0 - */ -public interface IFileTypeInfo { - /** - * Returns the string specifying the file extension - * - * @return the file extension - */ - public String getExtension(); - - /** - * Returns the file type for files ending with the corresponding - * extension. - * - * Valid values are: - * Team.UNKNOWN - * Team.TEXT - * Team.BINARY - * - * @return the file type - */ - public int getType(); -} diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IIgnoreInfo.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IIgnoreInfo.java deleted file mode 100644 index 9c5c8260f..000000000 --- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IIgnoreInfo.java +++ /dev/null @@ -1,40 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v0.5 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v05.html - * - * Contributors: - * IBM - Initial API and implementation - ******************************************************************************/ -package org.eclipse.team.core; - -/** - * An ignore info specifies both the pattern and the enabled state - * of a globally ignored pattern. - * - * @since 2.0 - */ -public interface IIgnoreInfo { - /** - * Return the string specifying the pattern of this ignore. The string - * may include the wildcard characters '*' and '?'. If you wish to - * include either of these characters verbatim (i.e. you do not wish - * them to expand to wildcards), you must escape them with a backslash '\'. - * <p> - * If you are using string literals in Java to represent the patterns, don't - * forget escape characters are represented by "\\". - * - * @return the pattern represented by this ignore info - */ - public String getPattern(); - /** - * Return whether or not this ignore info is enabled. A disabled ignore - * info remains in the global ignore list, but no attempt is made to match - * against it to determine resource ignore state. - * - * @return whether the ignore info is enabled - */ - public boolean getEnabled(); -} diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IProjectSetSerializer.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IProjectSetSerializer.java deleted file mode 100644 index bf1dbf358..000000000 --- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IProjectSetSerializer.java +++ /dev/null @@ -1,61 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v0.5 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v05.html - * - * Contributors: - * IBM - Initial API and implementation - ******************************************************************************/ -package org.eclipse.team.core; - -import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.IProgressMonitor; - -/** - * IProjectSetSerializer manages the serializing and deserializing - * of references to projects. Given a project, it can produce a - * UTF-8 encoded String which can be stored in a file. - * Given this String, it can create in the workspace an IProject. - */ - -public interface IProjectSetSerializer { - - /** - * For every IProject in providerProjects, return an opaque - * UTF-8 encoded String to act as a reference to that project. - * The format of the String is specific to the provider. - * The format of the String must be such that - * IProjectSetSerializer.addToWorskpace() will be able to - * consume it and recreate a corresponding project. - * @see IProjectSetSerializer.addToWorkspace() - * - * @param providerProjects an array of projects that the serializer should create - * text references for - * @param context a UI context object. This object will either be a - * com.ibm.swt.widgets.Shell or it will be null. - * @param monitor a progress monitor - * @return an array of serialized reference strings uniquely identifying the projects - */ - public String[] asReference(IProject[] providerProjects, Object context, IProgressMonitor monitor) throws TeamException; - - /** - * For every String in referenceStrings, create in the workspace a - * corresponding IProject. Return an Array of the resulting IProjects. - * Result is unspecified in the case where an IProject of that name - * already exists. In the case of failure, a TeamException must be thrown. - * The opaque strings in referenceStrings are guaranteed to have been previously - * produced by IProjectSetSerializer.asReference(). - * @see IProjectSetSerializer.asReference() - * - * @param referenceStrings an array of referene strings uniquely identifying the projects - * @param filename the name of the file that the references were read from. This is included - * in case the provider needs to deduce relative paths - * @param context a UI context object. This object will either be a - * com.ibm.swt.widgets.Shell or it will be null. - * @param monitor a progress monitor - * @return an array of projects that were created - */ - public IProject[] addToWorkspace(String[] referenceStrings, String filename, Object context, IProgressMonitor monitor) throws TeamException; -} diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/RepositoryProvider.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/RepositoryProvider.java deleted file mode 100644 index a18b3c432..000000000 --- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/RepositoryProvider.java +++ /dev/null @@ -1,266 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v0.5 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v05.html - * - * Contributors: - * IBM - Initial API and implementation - ******************************************************************************/ -package org.eclipse.team.core; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.core.resources.IFileModificationValidator; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IProjectDescription; -import org.eclipse.core.resources.IProjectNature; -import org.eclipse.core.resources.IProjectNatureDescriptor; -import org.eclipse.core.resources.IWorkspace; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.resources.team.IMoveDeleteHook; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.team.internal.core.Policy; -import org.eclipse.team.internal.core.simpleAccess.SimpleAccessOperations; - -/** - * A concrete subclass of <code>RepositoryProvider</code> is created for each - * project that is associated with a repository provider. The lifecycle of these - * instances is managed by the platform's 'nature' mechanism. - * <p> - * To create a repository provider and have it registered with the platform a client - * must minimally: - * <ol> - * <li>extend <code>RepositoryProvider<code> - * <li>define a nature extension in <code>plugin.xml</code> that is - * part of the "org.eclipse.team.repository-provider" set. Having the repository nature - * assigned to the team set allows cardinality restrictions to be inforced by the platform - * (e.g. one repository provider can assigned to a project at a time). Here is an - * example extension point definition: - * <code> - * <extension point="org.eclipse.core.resources.natures" id="myprovidernature" name="MyRepositoryType"> - * <runtime> - * <run class="org.eclipse.myprovider.MyRepositoryProvider"/> - * </runtime> - * <one-of-nature id="org.eclipse.team.repository-provider"/> - * </extension> - * </p> - * </code> - * </ol></p> - * <p> - * Once a repository provider is registered as a nature and is in the team set, then you - * can associate a repository provider with a project by assigning to the project the - * nature id of the repository provider. - * </p> - * @see IProjectNature - * @see RepositoryProviderType - * - * @since 2.0 - */ -public abstract class RepositoryProvider implements IProjectNature { - - private final static String TEAM_SETID = "org.eclipse.team.repository-provider"; //$NON-NLS-1$ - - // the project instance that this nature is assigned to - private IProject project; - - /** - * Default constructor required for the resources plugin to instantiate this class from - * the nature extension definition. - */ - public RepositoryProvider() { - } - - /** - * Configures the nature for the given project. This method is called after <code>setProject</code> - * and before the nature is added to the project. If an exception is generated during configuration - * of the project, the nature will not be assigned to the project. - * - * @throws CoreException if the configuration fails. - */ - abstract public void configureProject() throws CoreException; - - /** - * Configures the nature for the given project. This is called by the platform when a nature is assigned - * to a project. It is not intended to be called by clients. - * - * @throws CoreException if this method fails. If the configuration fails the nature will not be added - * to the project. - * - * @see IProjectNature#configure - */ - final public void configure() throws CoreException { - try { - configureProject(); - } catch(CoreException e) { - try { - Team.removeNatureFromProject(getProject(), getID(), null); - } catch(TeamException e2) { - throw new CoreException(new Status(IStatus.ERROR, TeamPlugin.ID, 0, Policy.bind("RepositoryProvider_Error_removing_nature_from_project___1") + getID(), e2)); //$NON-NLS-1$ - } - throw e; - } - } - - /** - * Answer the id of this provider instance. The id should be the repository provider's - * nature id. - * - * @return the nature id of this provider - */ - abstract public String getID(); - - /** - * Returns an <code>IFileModificationValidator</code> for pre-checking operations - * that modify the contents of files. - * Returns <code>null</code> if the provider does not wish to participate in - * file modification validation. - * - * @see org.eclipse.core.resources.IFileModificationValidator - */ - - public IFileModificationValidator getFileModificationValidator() { - return null; - } - - /** - * Returns an <code>IMoveDeleteHook</code> for handling moves and deletes - * that occur withing projects managed by the provider. This allows providers - * to control how moves and deletes occur and includes the ability to prevent them. - * <p> - * Returning <code>null</code> signals that the default move and delete behavior is desired. - * - * @see org.eclipse.core.resources.IMoveDeleteHook - */ - public IMoveDeleteHook getMoveDeleteHook() { - return null; - } - - /** - * Returns a brief description of this provider. The exact details of the - * representation are unspecified and subject to change, but the following - * may be regarded as typical: - * - * "SampleProject:org.eclipse.team.cvs.provider" - * - * @return a string description of this provider - */ - public String toString() { - return getProject().getName() + ":" + getID(); //$NON-NLS-1$ - } - - /** - * Returns all known (registered) RepositoryProvider ids. - * - * @return an array of registered repository provider ids. - */ - final public static String[] getAllProviderTypeIds() { - IProjectNatureDescriptor[] desc = ResourcesPlugin.getWorkspace().getNatureDescriptors(); - List teamSet = new ArrayList(); - for (int i = 0; i < desc.length; i++) { - String[] setIds = desc[i].getNatureSetIds(); - for (int j = 0; j < setIds.length; j++) { - if(setIds[j].equals(TEAM_SETID)) { - teamSet.add(desc[i].getNatureId()); - } - } - } - return (String[]) teamSet.toArray(new String[teamSet.size()]); - } - - /** - * Returns the provider for a given IProject or <code>null</code> if a provider is not associated with - * the project or if the project is closed or does not exist. This method should be called if the caller - * is looking for <b>any</b> repository provider. Otherwise call <code>getProvider(project, id)</code> - * yo look for a specific repository provider type. - * </p> - * @param project the project to query for a provider - * @return the repository provider associated with the project - */ - final public static RepositoryProvider getProvider(IProject project) { - try { - if(project.isAccessible()) { - IProjectDescription projectDesc = project.getDescription(); - String[] natureIds = projectDesc.getNatureIds(); - IWorkspace workspace = ResourcesPlugin.getWorkspace(); - // for every nature id on this project, find it's natures sets and check if it is - // in the team set. - for (int i = 0; i < natureIds.length; i++) { - IProjectNatureDescriptor desc = workspace.getNatureDescriptor(natureIds[i]); - // The descriptor can be null if the nature doesn't exist - if (desc != null) { - String[] setIds = desc.getNatureSetIds(); - for (int j = 0; j < setIds.length; j++) { - if(setIds[j].equals(TEAM_SETID)) { - return getProvider(project, natureIds[i]); - } - } - } - } - } - } catch(CoreException e) { - TeamPlugin.log(new Status(IStatus.ERROR, TeamPlugin.ID, 0, Policy.bind(""), e)); //$NON-NLS-1$ - } - return null; - } - - /** - * Returns a provider of type with the given id if associated with the given project - * or <code>null</code> if the project is not associated with a provider of that type - * or the nature id is that of a non-team repository provider nature. - * - * @param project the project to query for a provider - * @param id the repository provider id - * @return the repository provider - */ - final public static RepositoryProvider getProvider(IProject project, String id) { - try { - if(project.isAccessible()) { - // if the nature id given is not in the team set then return - // null. - IProjectNatureDescriptor desc = ResourcesPlugin.getWorkspace().getNatureDescriptor(id); - String[] setIds = desc.getNatureSetIds(); - for (int i = 0; i < setIds.length; i++) { - if(setIds[i].equals(TEAM_SETID)) { - return (RepositoryProvider)project.getNature(id); - } - } - } - } catch(CoreException ex) { - // would happen if provider nature id is not registered with the resources plugin - TeamPlugin.log(new Status(IStatus.WARNING, TeamPlugin.ID, 0, Policy.bind("RepositoryProviderTypeRepositoryProvider_not_registered_as_a_nature_id___3") + id, ex)); //$NON-NLS-1$ - } - return null; - } - - /* - * Provisional. - * Returns an object which implements a set of provider neutral operations for this - * provider. Answers <code>null</code> if the provider does not wish to support these - * operations. - * - * @return the repository operations or <code>null</code> if the provider does not - * support provider neutral operations. - */ - public SimpleAccessOperations getSimpleAccess() { - return null; - } - - /* - * @see IProjectNature#getProject() - */ - public IProject getProject() { - return project; - } - - /* - * @see IProjectNature#setProject(IProject) - */ - public void setProject(IProject project) { - this.project = project; - } -} diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/Team.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/Team.java deleted file mode 100644 index 17c21ebb8..000000000 --- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/Team.java +++ /dev/null @@ -1,556 +0,0 @@ -package org.eclipse.team.core; - -/******************************************************************************* - * Copyright (c) 2002 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v0.5 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v05.html - * - * Contributors: - * IBM - Initial API and implementation - ******************************************************************************/ - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.Hashtable; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IProjectDescription; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IConfigurationElement; -import org.eclipse.core.runtime.IExtension; -import org.eclipse.core.runtime.IExtensionPoint; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.MultiStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.team.internal.core.Policy; -import org.eclipse.team.internal.core.StringMatcher; -import org.omg.CORBA.UNKNOWN; - -/** - * The Team class provides a global point of reference for the global ignore set - * and the text/binary registry. - */ -public final class Team { - // File type constants - public static final int UNKNOWN = 0; - public static final int TEXT = 1; - public static final int BINARY = 2; - - // File name of the persisted file type information - private static final String STATE_FILE = ".fileTypes"; //$NON-NLS-1$ - - // File name of the persisted global ignore patterns - private final static String GLOBALIGNORE_FILE = ".globalIgnores"; //$NON-NLS-1$ - - // Keys: file extensions. Values: Integers - private static Hashtable table; - - // The ignore list that is read at startup from the persisted file - private static Map globalIgnore = new HashMap(11); - - private static class FileTypeInfo implements IFileTypeInfo { - private String extension; - private int type; - - public FileTypeInfo(String extension, int type) { - this.extension = extension; - this.type = type; - } - public String getExtension() { - return extension; - } - public int getType() { - return type; - } - } - - private static class IgnoreInfo implements IIgnoreInfo { - private String pattern; - private boolean enabled; - - public IgnoreInfo(String pattern, boolean enabled) { - this.pattern = pattern; - this.enabled = enabled; - } - public String getPattern() { - return pattern; - } - public boolean getEnabled() { - return enabled; - } - }; - - /** - * Return the type of the given file. - * - * Valid return values are: - * Team.TEXT - * Team.BINARY - * Team.UNKNOWN - * - * @param file the file - * @return whether files with the given extension are TEXT, BINARY, or UNKNOWN - */ - public static int getType(IFile file) { - String extension = file.getFileExtension(); - if (extension == null) return UNKNOWN; - Integer integer = (Integer)table.get(extension); - if (integer == null) return UNKNOWN; - return integer.intValue(); - } - - /** - * Returns whether the given file should be ignored. - * - * This method answers true if the file matches one of the global ignore - * patterns, or if the file is marked as derived. - * - * @param file the file - * @return whether the file should be ignored - */ - public static boolean isIgnoredHint(IFile file) { - if (file.isDerived()) return true; - IIgnoreInfo[] ignorePatterns = getAllIgnores(); - StringMatcher matcher; - for (int i = 0; i < ignorePatterns.length; i++) { - IIgnoreInfo info = ignorePatterns[i]; - if (info.getEnabled()) { - matcher = new StringMatcher(info.getPattern(), true, false); - if (matcher.match(file.getName())) return true; - } - } - return false; - } - - /** - * Returns whether the given file should be ignored. - * @deprecated use isIgnoredHint instead - */ - public static boolean isIgnored(IFile file) { - IIgnoreInfo[] ignorePatterns = getAllIgnores(); - StringMatcher matcher; - for (int i = 0; i < ignorePatterns.length; i++) { - IIgnoreInfo info = ignorePatterns[i]; - if (info.getEnabled()) { - matcher = new StringMatcher(info.getPattern(), true, false); - if (matcher.match(file.getName())) return true; - } - } - return false; - } - - /** - * Return all known file types. - * - * @return all known file types - */ - public static IFileTypeInfo[] getAllTypes() { - List result = new ArrayList(); - Enumeration e = table.keys(); - while (e.hasMoreElements()) { - String string = (String)e.nextElement(); - int type = ((Integer)table.get(string)).intValue(); - result.add(new FileTypeInfo(string, type)); - } - return (IFileTypeInfo[])result.toArray(new IFileTypeInfo[result.size()]); - } - - /** - * Returns the list of global ignores. - */ - public static IIgnoreInfo[] getAllIgnores() { - IIgnoreInfo[] result = new IIgnoreInfo[globalIgnore.size()]; - Iterator e = globalIgnore.keySet().iterator(); - int i = 0; - while (e.hasNext() ) { - final String pattern = (String)e.next(); - final boolean enabled = ((Boolean)globalIgnore.get(pattern)).booleanValue(); - result[i++] = new IIgnoreInfo() { - private String p = pattern; - private boolean e = enabled; - public String getPattern() { - return p; - } - public boolean getEnabled() { - return e; - } - }; - } - return result; - } - - /** - * Set the file type for the give extension to the given type. - * - * Valid types are: - * Team.TEXT - * Team.BINARY - * Team.UNKNOWN - * - * @param extension the file extension - * @param type the file type - */ - public static void setAllTypes(String[] extensions, int[] types) { - table = new Hashtable(11); - for (int i = 0; i < extensions.length; i++) { - table.put(extensions[i], new Integer(types[i])); - } - } - - /** - * Add patterns to the list of global ignores. - */ - public static void setAllIgnores(String[] patterns, boolean[] enabled) { - globalIgnore = new Hashtable(11); - for (int i = 0; i < patterns.length; i++) { - globalIgnore.put(patterns[i], new Boolean(enabled[i])); - } - } - - /** - * Utility method for removing a project nature from a project. - * - * @param proj the project to remove the nature from - * @param natureId the nature id to remove - * @param monitor a progress monitor to indicate the duration of the operation, or - * <code>null</code> if progress reporting is not required. - */ - public static void removeNatureFromProject(IProject proj, String natureId, IProgressMonitor monitor) throws TeamException { - try { - IProjectDescription description = proj.getDescription(); - String[] prevNatures= description.getNatureIds(); - List newNatures = new ArrayList(Arrays.asList(prevNatures)); - newNatures.remove(natureId); - description.setNatureIds((String[])newNatures.toArray(new String[newNatures.size()])); - proj.setDescription(description, monitor); - } catch(CoreException e) { - throw wrapException(Policy.bind("manager.errorRemovingNature", proj.getName(), natureId), e); //$NON-NLS-1$ - } - } - - /** - * Utility method for adding a nature to a project. - * - * @param proj the project to add the nature - * @param natureId the id of the nature to assign to the project - * @param monitor a progress monitor to indicate the duration of the operation, or - * <code>null</code> if progress reporting is not required. - * - * @exception TeamException if a problem occured setting the nature - */ - public static void addNatureToProject(IProject proj, String natureId, IProgressMonitor monitor) throws TeamException { - try { - IProjectDescription description = proj.getDescription(); - String[] prevNatures= description.getNatureIds(); - String[] newNatures= new String[prevNatures.length + 1]; - System.arraycopy(prevNatures, 0, newNatures, 0, prevNatures.length); - newNatures[prevNatures.length]= natureId; - description.setNatureIds(newNatures); - proj.setDescription(description, monitor); - } catch(CoreException e) { - throw wrapException(Policy.bind("manager.errorSettingNature", proj.getName(), natureId), e); //$NON-NLS-1$ - } - } - - /* - * TEXT - * - * Reads the text patterns currently defined by extensions. - */ - private static void initializePluginPatterns() { - TeamPlugin plugin = TeamPlugin.getPlugin(); - if (plugin != null) { - IExtensionPoint extension = plugin.getDescriptor().getExtensionPoint(TeamPlugin.FILE_TYPES_EXTENSION); - if (extension != null) { - IExtension[] extensions = extension.getExtensions(); - for (int i = 0; i < extensions.length; i++) { - IConfigurationElement[] configElements = extensions[i].getConfigurationElements(); - for (int j = 0; j < configElements.length; j++) { - String ext = configElements[j].getAttribute("extension"); //$NON-NLS-1$ - if (ext != null) { - String type = configElements[j].getAttribute("type"); //$NON-NLS-1$ - // If the extension doesn't already exist, add it. - if (!table.containsKey(ext)) { - if (type.equals("text")) { //$NON-NLS-1$ - table.put(ext, new Integer(TEXT)); - } else if (type.equals("binary")) { //$NON-NLS-1$ - table.put(ext, new Integer(BINARY)); - } - } - } - } - } - } - } - } - - /* - * TEXT - * - * Read the saved file type state from the given input stream. - * - * @param dis the input stream to read the saved state from - * @throws IOException if an I/O problem occurs - */ - private static void readTextState(DataInputStream dis) throws IOException { - table = new Hashtable(11); - int extensionCount = 0; - try { - extensionCount = dis.readInt(); - } catch (EOFException e) { - // Ignore the exception, it will occur if there are no - // patterns stored in the state file. - return; - } - for (int i = 0; i < extensionCount; i++) { - String extension = dis.readUTF(); - int type = dis.readInt(); - table.put(extension, new Integer(type)); - } - } - - /* - * TEXT - * - * Write the current state to the given output stream. - * - * @param dos the output stream to write the saved state to - * @throws IOException if an I/O problem occurs - */ - private static void writeTextState(DataOutputStream dos) throws IOException { - dos.writeInt(table.size()); - Iterator it = table.keySet().iterator(); - while (it.hasNext()) { - String extension = (String)it.next(); - dos.writeUTF(extension); - Integer integer = (Integer)table.get(extension); - dos.writeInt(integer.intValue()); - } - } - - /* - * TEXT - * - * Load the file type registry saved state. This loads the previously saved - * contents, as well as discovering any values contributed by plug-ins. - */ - private static void loadTextState() { - IPath pluginStateLocation = TeamPlugin.getPlugin().getStateLocation().append(STATE_FILE); - File f = pluginStateLocation.toFile(); - if (f.exists()) { - try { - DataInputStream dis = new DataInputStream(new FileInputStream(f)); - readTextState(dis); - dis.close(); - } catch (IOException ex) { - // Throw an exception here - } - } - // Read values contributed by plugins - initializePluginPatterns(); - } - - /* - * TEXT - * - * Save the file type registry state. - */ - private static void saveTextState() { - IPath pluginStateLocation = TeamPlugin.getPlugin().getStateLocation(); - File tempFile = pluginStateLocation.append(STATE_FILE + ".tmp").toFile(); //$NON-NLS-1$ - File stateFile = pluginStateLocation.append(STATE_FILE).toFile(); - try { - DataOutputStream dos = new DataOutputStream(new FileOutputStream(tempFile)); - writeTextState(dos); - dos.close(); - if (stateFile.exists() && !stateFile.delete()) { - // Throw an exception here - } - boolean renamed = tempFile.renameTo(stateFile); - if (!renamed) { - // Throw an exception here - } - } catch (Exception e) { - // Throw an exception here - } - } - - /* - * IGNORE - * - * Reads the ignores currently defined by extensions. - */ - private static void initializePluginIgnores() { - TeamPlugin plugin = TeamPlugin.getPlugin(); - if (plugin != null) { - IExtensionPoint extension = plugin.getDescriptor().getExtensionPoint(TeamPlugin.IGNORE_EXTENSION); - if (extension != null) { - IExtension[] extensions = extension.getExtensions(); - for (int i = 0; i < extensions.length; i++) { - IConfigurationElement [] configElements = extensions[i].getConfigurationElements(); - for (int j = 0; j < configElements.length; j++) { - String pattern = configElements[j].getAttribute("pattern"); //$NON-NLS-1$ - if (pattern != null) { - String selected = configElements[j].getAttribute("selected"); //$NON-NLS-1$ - boolean enabled = selected != null && selected.equalsIgnoreCase("true"); //$NON-NLS-1$ - // if this ignore doesn't already exist, add it to the global list - if (!globalIgnore.containsKey(pattern)) { - globalIgnore.put(pattern, new Boolean(enabled)); - } - } - } - } - } - } - } - - /* - * IGNORE - * - * Save global ignore file - */ - private static void saveIgnoreState() throws TeamException { - // save global ignore list to disk - IPath pluginStateLocation = TeamPlugin.getPlugin().getStateLocation(); - File tempFile = pluginStateLocation.append(GLOBALIGNORE_FILE + ".tmp").toFile(); //$NON-NLS-1$ - File stateFile = pluginStateLocation.append(GLOBALIGNORE_FILE).toFile(); - try { - DataOutputStream dos = new DataOutputStream(new FileOutputStream(tempFile)); - writeIgnoreState(dos); - dos.close(); - if (stateFile.exists()) - stateFile.delete(); - boolean renamed = tempFile.renameTo(stateFile); - if (!renamed) - throw new TeamException(new Status(IStatus.ERROR, TeamPlugin.ID, 0, Policy.bind("TeamPlugin_renaming_21"), null)); //$NON-NLS-1$ - } catch (IOException ex) { - throw new TeamException(new Status(IStatus.ERROR, TeamPlugin.ID, 0, Policy.bind("TeamPlugin_closing_stream_22"), ex)); //$NON-NLS-1$ - } - } - - /* - * IGNORE - * - * Write the global ignores to the stream - */ - private static void writeIgnoreState(DataOutputStream dos) throws IOException { - // write the global ignore list - int ignoreLength = globalIgnore.size(); - dos.writeInt(ignoreLength); - Iterator e = globalIgnore.keySet().iterator(); - while (e.hasNext()) { - String pattern = (String)e.next(); - boolean enabled = ((Boolean)globalIgnore.get(pattern)).booleanValue(); - dos.writeUTF(pattern); - dos.writeBoolean(enabled); - } - } - - /* - * IGNORE - * - * Reads the global ignore file - */ - private static void readIgnoreState() throws TeamException { - // read saved repositories list and ignore list from disk, only if the file exists - IPath pluginStateLocation = TeamPlugin.getPlugin().getStateLocation().append(GLOBALIGNORE_FILE); - File f = pluginStateLocation.toFile(); - if(f.exists()) { - try { - DataInputStream dis = new DataInputStream(new FileInputStream(f)); - globalIgnore = new Hashtable(11); - int ignoreCount = 0; - try { - ignoreCount = dis.readInt(); - } catch (EOFException e) { - // Ignore the exception, it will occur if there are no ignore - // patterns stored in the provider state file. - return; - } - for (int i = 0; i < ignoreCount; i++) { - String pattern = dis.readUTF(); - boolean enabled = dis.readBoolean(); - globalIgnore.put(pattern, new Boolean(enabled)); - } - } catch (FileNotFoundException e) { - // not a fatal error, there just happens not to be any state to read - } catch (IOException ex) { - throw new TeamException(new Status(IStatus.ERROR, TeamPlugin.ID, 0, Policy.bind("TeamPlugin_closing_stream_23"), ex)); //$NON-NLS-1$ - } - } - } - - /* - * Initialize the registry, restoring its state - */ - static void startup() throws CoreException { - try { - table = new Hashtable(11); - loadTextState(); - readIgnoreState(); - initializePluginIgnores(); - } catch (TeamException e) { - throw new CoreException(e.getStatus()); - } - } - - /* - * Shut down the registry, persisting its state - */ - static void shutdown() { - saveTextState(); - try { - // make sure that we update our state on disk - saveIgnoreState(); - } catch (TeamException ex) { - TeamPlugin.log(IStatus.WARNING, Policy.bind("TeamPlugin_setting_global_ignore_7"), ex); //$NON-NLS-1$ - } - } - public static IProjectSetSerializer getProjectSetSerializer(String id) { - TeamPlugin plugin = TeamPlugin.getPlugin(); - if (plugin != null) { - IExtensionPoint extension = plugin.getDescriptor().getExtensionPoint(TeamPlugin.PROJECT_SET_EXTENSION); - if (extension != null) { - IExtension[] extensions = extension.getExtensions(); - for (int i = 0; i < extensions.length; i++) { - IConfigurationElement [] configElements = extensions[i].getConfigurationElements(); - for (int j = 0; j < configElements.length; j++) { - String extensionId = configElements[j].getAttribute("id"); //$NON-NLS-1$ - if (extensionId != null && extensionId.equals(id)) { - try { - return (IProjectSetSerializer)configElements[j].createExecutableExtension("class"); //$NON-NLS-1$ - } catch (CoreException e) { - TeamPlugin.log(e.getStatus()); - return null; - } - } - } - } - } - } - return null; - } - private static TeamException wrapException(String message, CoreException e) { - MultiStatus status = new MultiStatus(TeamPlugin.ID, 0, message, e); - status.merge(e.getStatus()); - return new TeamException(status); - } -} diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/TeamException.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/TeamException.java deleted file mode 100644 index 59427f2cd..000000000 --- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/TeamException.java +++ /dev/null @@ -1,70 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v0.5 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v05.html - * - * Contributors: - * IBM - Initial API and implementation - ******************************************************************************/ -package org.eclipse.team.core; - -import org.eclipse.core.runtime.IStatus; - -/** - * This exception is thrown by the team provider API. It represents a failure in an API call. - * Since some API calls take multiple arguments, the exception is capable of returning multiple - * statuses. The API definition determinies if the exception represents a single or multiple status - * response; this can also be tested on the exception instance itself. - * <p> - * To determine the exact cause of the failure the caller should look at each status in detail.</p> - * - * @since 2.0 - */ -public class TeamException extends Exception { - - protected IStatus status = null; - - // The operation completed successfully. - public static final int OK = 0; - - // The operation failed because the resource is not checked-in. - public static final int NOT_CHECKED_IN = -1; - - // The operation failed because the resource is not checked-out. - public static final int NOT_CHECKED_OUT = -2; - - // The corresponding remote resource no longer exists or was never created. - public static final int NO_REMOTE_RESOURCE = -3; - - // The provider suffered an IO failure, the operation may be retried. - public static final int IO_FAILED = -4; - - // The user is not authorized to execute the attempted operation. - public static final int NOT_AUTHORIZED = -5; - - // The provider was unable to complete the operation for an unspecified reason. - public static final int UNABLE = -6; - - // The operation cannot be performed due to a conflict with other work. - public static final int CONFLICT = -7; - - /** - * Single status constructor for a <code>TeamProviderException</code>. - */ - public TeamException(IStatus status) { - super(status.getMessage()); - this.status = status; - } - - /** - * Answer the single status resulting from the attempted API call. - * - * @return the single status of the result, or <code>null</code> if this is a multi-status - * response. - */ - public IStatus getStatus() { - return status; - } -} diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/TeamPlugin.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/TeamPlugin.java deleted file mode 100644 index 7032f2bd2..000000000 --- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/TeamPlugin.java +++ /dev/null @@ -1,93 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v0.5 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v05.html - * - * Contributors: - * IBM - Initial API and implementation - ******************************************************************************/ -package org.eclipse.team.core; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPluginDescriptor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Plugin; -import org.eclipse.core.runtime.Status; -import org.eclipse.team.internal.core.Policy; - -/** - * <code>TeamPlugin</code> is the plug-in runtime class for the Team - * resource management plugin. - * <p> - * - * @see Team - * @see RepositoryProvider - * - * @since 2.0 - */ -final public class TeamPlugin extends Plugin { - - // The id of the core team plug-in - public static final String ID = "org.eclipse.team.core"; //$NON-NLS-1$ - - // The id of the providers extension point - public static final String PROVIDER_EXTENSION = "repository-provider-type"; //$NON-NLS-1$ - - // The id of the file types extension point - public static final String FILE_TYPES_EXTENSION = "fileTypes"; //$NON-NLS-1$ - - // The id of the global ignore extension point - public static final String IGNORE_EXTENSION = "ignore"; //$NON-NLS-1$ - // The id of the project set extension point - public static final String PROJECT_SET_EXTENSION = "projectSets"; //$NON-NLS-1$ - // The one and only plug-in instance - private static TeamPlugin plugin; - - /** - * Constructs a plug-in runtime class for the given plug-in descriptor. - */ - public TeamPlugin(IPluginDescriptor pluginDescriptor) { - super(pluginDescriptor); - plugin = this; - } - - /** - * @see Plugin#startup() - */ - public void startup() throws CoreException { - Policy.localize("org.eclipse.team.internal.core.messages"); //$NON-NLS-1$ - Team.startup(); - } - - /** - * @see Plugin#shutdown() - */ - public void shutdown() { - Team.shutdown(); - } - - /** - * Returns the Team plug-in. - * - * @return the single instance of this plug-in runtime class - */ - public static TeamPlugin getPlugin() { - return plugin; - } - - /** - * Returns the plug-in's log - */ - public static void log(int severity, String message, Throwable e) { - plugin.getLog().log(new Status(severity, ID, 0, message, e)); - } - - /** - * Returns the plug-in's log - */ - public static void log(IStatus status) { - plugin.getLog().log(status); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/ILocalSyncElement.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/ILocalSyncElement.java deleted file mode 100644 index f3855f862..000000000 --- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/ILocalSyncElement.java +++ /dev/null @@ -1,206 +0,0 @@ -package org.eclipse.team.core.sync; - -/* - * (c) Copyright IBM Corp. 2000, 2001. - * All Rights Reserved. - */ - -import org.eclipse.core.resources.IResource; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.team.core.TeamException; - -/** - * A <code>ILocalSyncElement</code> describes the relative synchronization of a <b>local</b> - * resource using a <b>base</b> resource for comparison. - * <p> - * Differences between the base and local resources are classified as <b>outgoing changes</b>; - * if there is a difference, the local resource is considered the <b>outgoing resource</b>. </p> - * - * @see IRemoteSyncElement - */ -public interface ILocalSyncElement { - - /*==================================================================== - * Constants defining synchronization types: - *====================================================================*/ - - /** - * Sync constant (value 0) indicating element is in sync. - */ - public static final int IN_SYNC = 0; - - /** - * Sync constant (value 1) indicating that one side was added. - */ - public static final int ADDITION = 1; - - /** - * Sync constant (value 2) indicating that one side was deleted. - */ - public static final int DELETION = 2; - - /** - * Sync constant (value 3) indicating that one side was changed. - */ - public static final int CHANGE = 3; - - /** - * Bit mask for extracting the change type. - */ - public static final int CHANGE_MASK = CHANGE; - - /*==================================================================== - * Constants defining synchronization direction: - *====================================================================*/ - - /** - * Sync constant (value 4) indicating a change to the local resource. - */ - public static final int OUTGOING = 4; - - /** - * Sync constant (value 8) indicating a change to the remote resource. - */ - public static final int INCOMING = 8; - - /** - * Sync constant (value 12) indicating a change to both the remote and local resources. - */ - public static final int CONFLICTING = 12; - - /** - * Bit mask for extracting the synchronization direction. - */ - public static final int DIRECTION_MASK = CONFLICTING; - - /*==================================================================== - * Constants defining synchronization conflict types: - *====================================================================*/ - - /** - * Sync constant (value 16) indication that both the local and remote resources have changed - * relative to the base but their contents are the same. - */ - public static final int PSEUDO_CONFLICT = 16; - - /** - * Sync constant (value 32) indicating that both the local and remote resources have changed - * relative to the base but their content changes do not conflict (e.g. source file changes on different - * lines). These conflicts could be merged automatically. - */ - public static final int AUTOMERGE_CONFLICT = 32; - - /** - * Sync constant (value 64) indicating that both the local and remote resources have changed relative - * to the base and their content changes conflict (e.g. local and remote resource have changes on - * same lines). These conflicts can only be correctly resolved by the user. - */ - public static final int MANUAL_CONFLICT = 64; - - /*==================================================================== - * Constants defining synchronization granularity: - *====================================================================*/ - - /** - * Constant (value 1) to only consider timestamp comparisons (e.g. isDirty) when - * calculating the synchronization kind. This is the faster sync compare option but it can result in false - * conflicts. - */ - public static final int GRANULARITY_TIMESTAMP = 1; - - /** - * Constant (value 2) indicating to consider file contents when calculating the synchronization kind. This - * synchronization mode will perform a content comparison only after timestamp operations (isDirty) - * indicate a change. This mode allows conflicts types to be correctly identified. - */ - public static final int GRANULARITY_CONTENTS = 2; - - /** - * Answer a string that describes the simple name of the sync node, which is suitable - * for display to a user. The name will be used in UI operations, so it is expected that - * implementations will cache this value. - * - * @return the simple name that identifies the resource within its parent container. - */ - public String getName(); - - /** - * Answer if the sync node is a container and may have children. - * - * @return <code>true</code> if the remote resource is a container, and <code> - * false</code> if it is not. - */ - public boolean isContainer(); - - /** - * Answers the local sync element of this node. Returns a non-existing local - * resource handle if the local resource does not exist in the workspace. - * - * @return the local resource handle in this node. There should always be a local - * resource available, however the resource may not exist. - */ - public IResource getLocal(); - - /** - * Answers the base sync element of this node. Returns <code>null</code> - * if there is no base (e.g. conflicting add). - * - * @return the base resource in this node, or <code>null</code> is there - * is none. - */ - public IRemoteResource getBase(); - - /** - * Answers if the remote resource state is checked-out. If the resource has never been checked in this - * method will return <code>true</code>. - * <p> - * It is undefined whether this method tests for a resource being checked out to this workspace - * or any workspace.</p> - * - * @param resource the local resource to test. - * @return <code>true</code> if the resource is checked-out and <code>false</code> if it is not. - * @see checkout(IResource[], int, IProgressMonitor) - * @see refreshState(IResource[], int, IProgressMonitor) - */ - public boolean isCheckedOut(); - - /** - * Answers whether the resource has a corresponding remote resource. - * <p> - * Before a resource is checked-in, the resource will occur locally but not remotely, and calls to this - * method will return <code>false</code>. Once a local resource is checked in (and assuming the local - * local resource is not moved or the remote resource deleted) there will be a corresponding remote - * resource and this method returns <code>true</code>.</p> - * - * @param resource the local resource to test. - * @return <code>true</code> if the local resource has a corresponding remote resource, - * and <code>false</code> otherwise. - */ - public boolean hasRemote(); - - /** - * Answers and array of <code>ILocalSyncElement</code> elements that are immediate - * children of this sync element, in no particular order. The returned sync nodes are - * a combination of the nodes represented by the sync element (e.g. local, base, remote). - * - * @param progress a progress monitor to indicate the duration of the operation, or - * <code>null</code> if progress reporting is not required. - * - * @return array of immediate children of this sync node. - */ - public ILocalSyncElement[] members(IProgressMonitor monitor) throws TeamException; - - /** - * Performs a synchronization calculation on the given element based on the local and base - * resources. Returns an integer describing the synchronization state of this element. - * - * @param granularity the granularity at which the elements of this sync element - * should be compared. On of <code>GRANULARITY_TIMESTAMP</code>, or - * <code>GRANULARITY_CONTENTS</code>. - * @param progress a progress monitor to indicate the duration of the operation, or - * <code>null</code> if progress reporting is not required. - * - * @return an integer describing the synchronization state of this element. - */ - public int getSyncKind(int granularity, IProgressMonitor progress); -}
\ No newline at end of file diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/IRemoteResource.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/IRemoteResource.java deleted file mode 100644 index a09588861..000000000 --- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/IRemoteResource.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.eclipse.team.core.sync; - -import java.io.InputStream; - -import org.eclipse.core.runtime.IAdaptable; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.team.core.TeamException; - -/** - * Interface for resources that are not local. - */ -public interface IRemoteResource extends IAdaptable { - - /** - * Answers a string that describes the name of the remote resource. The name may be - * displayed to the user. - * - * @return name of the remote resource. - */ - public String getName(); - - /** - * Answers and array of <code>IRemoteResource</code> elements that are immediate - * children of this remote resource, in no particular order. - * - * @param progress a progress monitor to indicate the duration of the operation, or - * <code>null</code> if progress reporting is not required. - * - * @return array of immediate children of this remote resource. - */ - public IRemoteResource[] members(IProgressMonitor progress) throws TeamException; - - /** - * Returns a stream over the contents of this remote element. - * - * @param progress a progress monitor to indicate the duration of the operation, or - * <code>null</code> if progress reporting is not required. - */ - public InputStream getContents(IProgressMonitor progress) throws TeamException; - - /** - * Answers if the remote element may have children. - * - * @return <code>true</code> if the remote element may have children and - * <code>false</code> otherwise. - */ - public boolean isContainer(); -} - diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/IRemoteSyncElement.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/IRemoteSyncElement.java deleted file mode 100644 index 3089f8d18..000000000 --- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/IRemoteSyncElement.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.eclipse.team.core.sync; - -/* - * (c) Copyright IBM Corp. 2000, 2001. - * All Rights Reserved. - */ - -import org.eclipse.team.core.TeamException; - -/** - * A <code>ILocalSyncElement</code> describes the relative synchronization of a <b>local</b> - * and <b>remote</b> resource using a <b>base</b> resource for comparison. - * <p> - * Differences between the base and remote resources are classified as <b>incoming changes</b>; - * if there is a difference, the remote resource is considered the <b>incoming resource</b>. </p> - * - * @see ILocalSyncElement - * @see ISyncProvider - */ -public interface IRemoteSyncElement extends ILocalSyncElement { - - /** - * Answer the remote sync element of this node. Returns <code>null</code> - * if there is no remote. - * - * @return the remote resource in this sync element, or <code>null</code> is there - * is none. - */ - public IRemoteResource getRemote(); - - /** - * Answers <code>true</code> if the base tree is not to be considered during sync - * comparisons and <code>false</code> if it should. If the base tree is ignored the - * sync comparison can be based on isOutOfDate and isDirty methods only. - */ - public boolean isThreeWay(); -}
\ No newline at end of file diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/LocalSyncElement.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/LocalSyncElement.java deleted file mode 100644 index 7df9ea35e..000000000 --- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/LocalSyncElement.java +++ /dev/null @@ -1,104 +0,0 @@ -package org.eclipse.team.core.sync; - -/* - * (c) Copyright IBM Corp. 2000, 2001. - * All Rights Reserved. - */ - -import java.io.IOException; -import java.io.InputStream; - -import java.util.ArrayList; -import java.util.List; -import org.eclipse.core.resources.IContainer; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.team.core.TeamException; - -/** - * A standard abstract class that provides implementations for <code>ILocalSyncElement</code> - * methods. - */ -public abstract class LocalSyncElement implements ILocalSyncElement { - - /** - * Creates a client specific sync element from a <b>local</b> and <b>base</b> - * resources. The <b>base</b> resource may be <code>null</code> and should be - * intialized by the client if available. - * - * @param local the local resource in the workbench. Will never be <code>null</code>. - * @param base the base resource, may me <code>null</code>. - * @param data client specific data. - * - * @return a client specific sync element. - */ - public abstract ILocalSyncElement create(IResource local, IRemoteResource base, Object data); - - /** - * Client data that is passed to every <code>create()</code> call. - * - * @return client specific data that will be passed to create. - */ - protected abstract Object getData(); - - /** - * Client can decide is a specific element should be ignored from this sync element's - * children. - * - * @param resource the resource to be queried. - * - * @return <code>true</code> if this element should be ignored and not considered an - * immediate child of this element, and <code>false</code> otherwise. - */ - protected abstract boolean isIgnored(IResource resource); - - /* - * @see ILocalSyncElement#getSyncKind(int, IProgressMonitor) - */ - public int getSyncKind(int granularity, IProgressMonitor progress) { - - // XXX not sure how local sync will be used? - int sync = IN_SYNC; - return sync; - } - - /* - * @see ILocalSyncElement#getName() - */ - public String getName() { - return getLocal().getName(); - } - - /* - * @see ILocalSyncElement#isContainer() - */ - public boolean isContainer() { - return getLocal().getType() != IResource.FILE; - } - - /* - * @see ILocalSyncElement#members(IProgressMonitor) - */ - public ILocalSyncElement[] members(IProgressMonitor monitor) throws TeamException { - try { - if(getLocal().getType() != IResource.FILE) { - IResource[] members = ((IContainer)getLocal()).members(); - List syncElements = new ArrayList(5); - for (int i = 0; i < members.length; i++) { - IResource iResource = members[i]; - // the base is initialy set to null, however the concrete subclass should - // initialize the base if one is available. - if(!isIgnored(iResource)) { - syncElements.add(create(iResource, null, getData())); - } - } - return (ILocalSyncElement[]) syncElements.toArray(new ILocalSyncElement[syncElements.size()]); - } else { - return new ILocalSyncElement[0]; - } - } catch(CoreException e) { - throw new TeamException(e.getStatus()); - } - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/RemoteSyncElement.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/RemoteSyncElement.java deleted file mode 100644 index 8a9ff152b..000000000 --- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/sync/RemoteSyncElement.java +++ /dev/null @@ -1,395 +0,0 @@ -package org.eclipse.team.core.sync; - -/* - * (c) Copyright IBM Corp. 2000, 2002. - * All Rights Reserved. - */ - -import java.io.BufferedInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.eclipse.core.resources.IContainer; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.resources.IStorage; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.OperationCanceledException; -import org.eclipse.core.runtime.Path; -import org.eclipse.team.core.TeamException; -import org.eclipse.team.internal.core.Assert; -import org.eclipse.team.internal.core.Policy; - -/** - * A standard abstract class that provides implementations for interesting - * <code>IRemoteSyncElement</code> methods. The <code>members</code> method - * provided will create a unified tree based on the local, base, and remote - * children. The <code>getSyncKind</code> method will calculate the relative - * sync kind of the remote node. - */ -public abstract class RemoteSyncElement extends LocalSyncElement implements IRemoteSyncElement { - - /** - * Creates a client specific sync element from a <b>local</b>, <b>base</b>, and - * <b>remote</b> resources. The <b>base</b> and <b>remote</b> resource may be - * <code>null</code>. - * - * @param local the local resource in the workbench. Will never be <code>null</code>. - * @param base the base resource, may me <code>null</code>. - * @param remote the remote resource, may be <code>null</code>. - * @param data client specific data. - * - * @return a client specific sync element. - */ - public abstract IRemoteSyncElement create(boolean isThreeWay, IResource local, IRemoteResource base, IRemoteResource remote, Object data); - - /* - * @see ILocalSyncElement#members() - */ - public ILocalSyncElement[] members(IProgressMonitor progress) throws TeamException { - // create union of the local, base, and remote trees - IRemoteResource remote = getRemote(); - IRemoteResource base = getBase(); - IResource local = getLocal(); - - IRemoteResource[] remoteChildren = - remote != null ? remote.members(progress) : new IRemoteResource[0]; - - IRemoteResource[] baseChildren = - base != null ? base.members(progress) : new IRemoteResource[0]; - - IResource[] localChildren; - try { - if( local.getType() != IResource.FILE && local.exists() ) { - localChildren = ((IContainer)local).members(); - } else { - localChildren = new IResource[0]; - } - } catch(CoreException e) { - throw new TeamException(e.getStatus()); - } - - if (remoteChildren.length > 0 || localChildren.length > 0) { - List syncChildren = new ArrayList(10); - Set allSet = new HashSet(20); - Map localSet = null; - Map remoteSet = null; - Map baseSet = null; - - if (localChildren.length > 0) { - localSet = new HashMap(10); - for (int i = 0; i < localChildren.length; i++) { - IResource localChild = localChildren[i]; - String name = localChild.getName(); - localSet.put(name, localChild); - allSet.add(name); - } - } - - if (remoteChildren.length > 0) { - remoteSet = new HashMap(10); - for (int i = 0; i < remoteChildren.length; i++) { - IRemoteResource remoteChild = remoteChildren[i]; - String name = remoteChild.getName(); - remoteSet.put(name, remoteChild); - allSet.add(name); - } - } - - if (baseChildren.length > 0) { - baseSet = new HashMap(10); - for (int i = 0; i < baseChildren.length; i++) { - IRemoteResource baseChild = baseChildren[i]; - String name = baseChild.getName(); - baseSet.put(name, baseChild); - allSet.add(name); - } - } - - Iterator e = allSet.iterator(); - while (e.hasNext()) { - String keyChildName = (String) e.next(); - - if (progress != null) { - if (progress.isCanceled()) { - throw new OperationCanceledException(); - } - // XXX show some progress? - } - - IResource localChild = - localSet != null ? (IResource) localSet.get(keyChildName) : null; - - IRemoteResource remoteChild = - remoteSet != null ? (IRemoteResource) remoteSet.get(keyChildName) : null; - - IRemoteResource baseChild = - baseSet != null ? (IRemoteResource) baseSet.get(keyChildName) : null; - - - if (localChild == null) { - // there has to be a remote resource available if we got this far - Assert.isTrue(remoteChild != null || baseChild != null); - boolean isContainer = remoteChild != null ? remoteChild.isContainer() : baseChild.isContainer(); - - localChild = getResourceChild(local /* parent */, keyChildName, isContainer); - } - - if(!localChild.exists() || !isIgnored(localChild)) { - syncChildren.add(create(isThreeWay(), localChild, baseChild, remoteChild, getData())); - } - } - return (IRemoteSyncElement[]) syncChildren.toArray(new IRemoteSyncElement[syncChildren.size()]); - } - else { - return new IRemoteSyncElement[0]; - } - } - - /* - * @see ILocalSyncElement#getSyncKind(int, IProgressMonitor) - */ - public int getSyncKind(int granularity, IProgressMonitor progress) { - int description = IN_SYNC; - - IResource local = getLocal(); - IRemoteResource remote = getRemote(); - IRemoteResource base = getBase(); - - boolean localExists = getLocal().exists(); - - if (isThreeWay()) { - if (base == null) { - if (remote == null) { - if (!localExists) { - Assert.isTrue(false); - } else { - description = OUTGOING | ADDITION; - } - } else { - if (!localExists) { - description = INCOMING | ADDITION; - } else { - description = CONFLICTING | ADDITION; - try { - progress.beginTask(null, 60); - if (granularity == RemoteSyncElement.GRANULARITY_CONTENTS && - compare(granularity, true, local, remote, Policy.subMonitorFor(progress, 30))) { - description |= PSEUDO_CONFLICT; - } - } finally { - progress.done(); - } - } - } - } else { - if (!localExists) { - if (remote == null) { - description = CONFLICTING | DELETION | PSEUDO_CONFLICT; - } else { - if (compare(granularity, false, base, remote, progress)) - description = OUTGOING | DELETION; - else - description = CONFLICTING | CHANGE; - } - } else { - if (remote == null) { - if (compare(granularity, false, local, base, progress)) - description = INCOMING | DELETION; - else - description = CONFLICTING | CHANGE; - } else { - progress.beginTask(null, 90); - boolean ay = compare(granularity, false, local, base, Policy.subMonitorFor(progress, 30)); - boolean am = compare(granularity, false, base, remote, Policy.subMonitorFor(progress, 30)); - if (ay && am) { - ; - } else if (ay && !am) { - description = INCOMING | CHANGE; - } else if (!ay && am) { - description = OUTGOING | CHANGE; - } else { - description = CONFLICTING | CHANGE; - if (granularity == RemoteSyncElement.GRANULARITY_CONTENTS && - compare(granularity, true, local, remote, Policy.subMonitorFor(progress, 30))) { - description |= PSEUDO_CONFLICT; - } - } - progress.done(); - } - } - } - } else { // two compare without access to base contents - if (remote == null) { - if (!localExists) { - Assert.isTrue(false); - // shouldn't happen - } else { - description= DELETION; - } - } else { - if (!localExists) { - description= ADDITION; - } else { - if (! compare(granularity, false, local, remote, Policy.subMonitorFor(progress, 30))) - description= CHANGE; - } - } - } - return description; - } - - /** - * Helper methods for comparisons that returns true if the resource contents are the same. - * - * If timestampDiff is true then the timestamps don't differ and there's no point checking the - * contents. - */ - private boolean compare(int granularity, boolean force, IResource e1, IRemoteResource e2, IProgressMonitor monitor) { - boolean timestampEquals = force || timestampEquals(e1, e2); - if (!timestampEquals && (granularity == GRANULARITY_CONTENTS)) { - try { - monitor.beginTask(null, 100); - return contentsEqual(getContents(e1, Policy.subMonitorFor(monitor, 50)), getContents(e2, Policy.subMonitorFor(monitor, 50))); - } finally { - monitor.done(); - } - } else { - return timestampEquals; - } - } - - private boolean compare(int granularity, boolean force, IRemoteResource e1, IRemoteResource e2, IProgressMonitor monitor) { - boolean timestampEquals = force || timestampEquals(e1, e2); - if (!timestampEquals && (granularity == GRANULARITY_CONTENTS)) { - try { - monitor.beginTask(null, 100); - return contentsEqual(getContents(e1, Policy.subMonitorFor(monitor, 50)), getContents(e2, Policy.subMonitorFor(monitor, 50))); - } finally { - monitor.done(); - } - } else { - return timestampEquals; - } - } - - protected abstract boolean timestampEquals(IResource e1, IRemoteResource e2); - protected abstract boolean timestampEquals(IRemoteResource e1, IRemoteResource e2); - - private InputStream getContents(IResource resource, IProgressMonitor monitor) { - try { - if (resource instanceof IStorage) - return new BufferedInputStream(((IStorage) resource).getContents()); - return null; - } catch (CoreException e) { - return null; - } - } - - private InputStream getContents(IRemoteResource remote, IProgressMonitor monitor) { - try { - if (!remote.isContainer()) - return new BufferedInputStream(remote.getContents(monitor)); - return null; - } catch (TeamException exception) { - // The remote node has gone away . - return null; - } - } - - /** - * Returns <code>true</code> if both input streams byte contents is identical. - * - * @param input1 first input to contents compare - * @param input2 second input to contents compare - * @return <code>true</code> if content is equal - */ - private boolean contentsEqual(InputStream is1, InputStream is2) { - if (is1 == is2) - return true; - - if (is1 == null && is2 == null) // no byte contents - return true; - - try { - if (is1 == null || is2 == null) // only one has contents - return false; - - while (true) { - int c1 = is1.read(); - int c2 = is2.read(); - if (c1 == -1 && c2 == -1) - return true; - if (c1 != c2) - break; - - } - } catch (IOException ex) { - } finally { - if (is1 != null) { - try { - is1.close(); - } catch (IOException ex) { - } - } - if (is2 != null) { - try { - is2.close(); - } catch (IOException ex) { - } - } - } - return false; - } - - /* - * Returns a handle to a non-existing resource. - */ - private IResource getResourceChild(IResource parent, String childName, boolean isContainer) { - if (parent.getType() == IResource.FILE) { - return null; - } - if (isContainer) { - return ((IContainer) parent).getFolder(new Path(childName)); - } else { - return ((IContainer) parent).getFile(new Path(childName)); - } - } - - /* - * @see Object#toString() - */ - public String toString() { - return getName() + kindToString(getSyncKind(GRANULARITY_TIMESTAMP, null)); - } - - static public String kindToString(int kind) { - StringBuffer buffer = new StringBuffer(); - buffer.append("["); //$NON-NLS-1$ - if(kind==IN_SYNC) { - buffer.append("in-sync"); //$NON-NLS-1$ - } else { - switch(kind & DIRECTION_MASK) { - case CONFLICTING: buffer.append("conflicting"); break; //$NON-NLS-1$ - case OUTGOING: buffer.append("outgoing"); break; //$NON-NLS-1$ - case INCOMING: buffer.append("incoming"); break; //$NON-NLS-1$ - } - switch(kind & CHANGE_MASK) { - case CHANGE: buffer.append("change"); break; //$NON-NLS-1$ - case ADDITION: buffer.append("addition"); break; //$NON-NLS-1$ - case DELETION: buffer.append("deletion"); break; //$NON-NLS-1$ - } - if((kind & MANUAL_CONFLICT) != 0) buffer.append("{manual}"); //$NON-NLS-1$ - if((kind & AUTOMERGE_CONFLICT) != 0) buffer.append("{auto}"); //$NON-NLS-1$ - } - buffer.append("]"); //$NON-NLS-1$ - return buffer.toString(); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/Assert.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/Assert.java deleted file mode 100644 index 4a5a4fc95..000000000 --- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/Assert.java +++ /dev/null @@ -1,100 +0,0 @@ -package org.eclipse.team.internal.core; - -/* - * (c) Copyright IBM Corp. 2000, 2002. - * All Rights Reserved. - */ - -import org.eclipse.team.core.*; - -public final class Assert { - public static class AssertionFailedException extends RuntimeException { - public AssertionFailedException() { - } - public AssertionFailedException(String detail) { - super(detail); - } - } -/* This class is not intended to be instantiated. */ -private Assert() { -} -/** Asserts that an argument is legal. If the given boolean is - * not <code>true</code>, an <code>IllegalArgumentException</code> - * is thrown. - * - * @param expression the outcode of the check - * @return <code>true</code> if the check passes (does not return - * if the check fails) - * @exception IllegalArgumentException if the legality test failed - */ -public static boolean isLegal(boolean expression) { - return isLegal(expression, ""); //$NON-NLS-1$ -} -/** Asserts that an argument is legal. If the given boolean is - * not <code>true</code>, an <code>IllegalArgumentException</code> - * is thrown. - * The given message is included in that exception, to aid debugging. - * - * @param expression the outcode of the check - * @param message the message to include in the exception - * @return <code>true</code> if the check passes (does not return - * if the check fails) - * @exception IllegalArgumentException if the legality test failed - */ -public static boolean isLegal(boolean expression, String message) { - if (!expression) - throw new IllegalArgumentException(message); - return expression; -} -/** Asserts that the given object is not <code>null</code>. If this - * is not the case, some kind of unchecked exception is thrown. - * - * @param object the value to test - * @exception IllegalArgumentException if the object is <code>null</code> - */ -public static void isNotNull(Object object) { - isNotNull(object, ""/*nonNLS*/); //$NON-NLS-1$ -} -/** Asserts that the given object is not <code>null</code>. If this - * is not the case, some kind of unchecked exception is thrown. - * The given message is included in that exception, to aid debugging. - * - * @param object the value to test - * @param message the message to include in the exception - * @exception IllegalArgumentException if the object is <code>null</code> - */ -public static void isNotNull(Object object, String message) { - if (object == null) - throw new AssertionFailedException("null argument:" /*non NLS*/ + message); //$NON-NLS-1$ -} -/** Asserts that the given boolean is <code>true</code>. If this - * is not the case, some kind of unchecked exception is thrown. - * - * @param expression the outcode of the check - * @return <code>true</code> if the check passes (does not return - * if the check fails) - */ -public static boolean isTrue(boolean expression) { - return isTrue(expression, ""/*nonNLS*/); //$NON-NLS-1$ -} -/** Asserts that the given boolean is <code>true</code>. If this - * is not the case, some kind of unchecked exception is thrown. - * The given message is included in that exception, to aid debugging. - * - * @param expression the outcode of the check - * @param message the message to include in the exception - * @return <code>true</code> if the check passes (does not return - * if the check fails) - */ -public static boolean isTrue(boolean expression, String message) { - if (!expression) - throw new AssertionFailedException("assert failed:" /*non NLS*/ + message); //$NON-NLS-1$ - return expression; -} -/** - * Indicates that the caller has not implemented the method. - * Usually this is a temporary condition. - */ -public static void notYetImplemented() { -} -} diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/DefaultFileModificationValidator.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/DefaultFileModificationValidator.java deleted file mode 100644 index 8b6e6ec55..000000000 --- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/DefaultFileModificationValidator.java +++ /dev/null @@ -1,61 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v0.5 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v05.html - * - * Contributors: - * IBM - Initial API and implementation - ******************************************************************************/ -package org.eclipse.team.internal.core; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IFileModificationValidator; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.MultiStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.team.core.TeamPlugin; - -public class DefaultFileModificationValidator implements IFileModificationValidator { - private static final Status OK = new Status(Status.OK, TeamPlugin.ID, Status.OK, Policy.bind("FileModificationValidator.ok"), null); //$NON-NLS-1$ - - private IStatus getDefaultStatus(IFile file) { - return file.isReadOnly() - ? new Status(Status.ERROR, TeamPlugin.ID, Status.ERROR, Policy.bind("FileModificationValidator.fileIsReadOnly", file.getFullPath().toString()), null) //$NON-NLS-1$ - : OK; - } - - /** - * @see IFileModificationValidator#validateEdit(IFile[], Object) - */ - public IStatus validateEdit(IFile[] files, Object context) { - if (files.length == 1) { - return getDefaultStatus(files[0]); - } - - IStatus[] stati = new Status[files.length]; - boolean allOK = true; - - for (int i = 0; i < files.length; i++) { - stati[i] = getDefaultStatus(files[i]); - if(! stati[i].isOK()) - allOK = false; - } - - return new MultiStatus(TeamPlugin.ID, - 0, stati, - Policy.bind( - allOK - ? "FileModificationValidator.ok" //$NON-NLS-1$ - : "FileModificationValidator.someReadOnly" ), //$NON-NLS-1$ - null); - } - - /** - * @see IFileModificationValidator#validateSave(IFile) - */ - public IStatus validateSave(IFile file) { - return getDefaultStatus(file); - } -} diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/DefaultMoveDeleteHook.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/DefaultMoveDeleteHook.java deleted file mode 100644 index b35fa8136..000000000 --- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/DefaultMoveDeleteHook.java +++ /dev/null @@ -1,95 +0,0 @@ -package org.eclipse.team.internal.core; - -/* - * (c) Copyright IBM Corp. 2000, 2002. - * All Rights Reserved. - */ - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IFolder; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IProjectDescription; -import org.eclipse.core.resources.team.IMoveDeleteHook; -import org.eclipse.core.resources.team.IResourceTree; -import org.eclipse.core.runtime.IProgressMonitor; - -/** - * A class which provides the default behavior for resource deletions and moves. - * This class can be overridden by providers to change some or all of the behavior - * related to resources deletions or moves. - * - * @see org.eclipse.team.core.ResourceProvider#getMoveDeleteHook() - */ - -public class DefaultMoveDeleteHook implements IMoveDeleteHook { - - /** - * @see IMoveDeleteHook#deleteFile(IResourceTree, IFile, int, IProgressMonitor) - */ - public boolean deleteFile( - IResourceTree tree, - IFile file, - int updateFlags, - IProgressMonitor monitor) { - return false; - } - - /** - * @see IMoveDeleteHook#deleteFolder(IResourceTree, IFolder, int, IProgressMonitor) - */ - public boolean deleteFolder( - IResourceTree tree, - IFolder folder, - int updateFlags, - IProgressMonitor monitor) { - return false; - } - - /** - * @see IMoveDeleteHook#deleteProject(IResourceTree, IProject, int, IProgressMonitor) - */ - public boolean deleteProject( - IResourceTree tree, - IProject project, - int updateFlags, - IProgressMonitor monitor) { - return false; - } - - /** - * @see IMoveDeleteHook#moveFile(IResourceTree, IFile, IFile, int, IProgressMonitor) - */ - public boolean moveFile( - IResourceTree tree, - IFile source, - IFile destination, - int updateFlags, - IProgressMonitor monitor) { - return false; - } - - /** - * @see IMoveDeleteHook#moveFolder(IResourceTree, IFolder, IFolder, int, IProgressMonitor) - */ - public boolean moveFolder( - IResourceTree tree, - IFolder source, - IFolder destination, - int updateFlags, - IProgressMonitor monitor) { - return false; - } - - /** - * @see IMoveDeleteHook#moveProject(IResourceTree, IProject, IProjectDescription, int, IProgressMonitor) - */ - public boolean moveProject( - IResourceTree tree, - IProject source, - IProjectDescription description, - int updateFlags, - IProgressMonitor monitor) { - return false; - } - -} diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/FileModificationValidatorManager.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/FileModificationValidatorManager.java deleted file mode 100644 index 8aab83d0d..000000000 --- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/FileModificationValidatorManager.java +++ /dev/null @@ -1,102 +0,0 @@ -package org.eclipse.team.internal.core; - -/* - * (c) Copyright IBM Corp. 2000, 2002. - * All Rights Reserved. - */ - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IFileModificationValidator; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.MultiStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.team.core.RepositoryProvider; -import org.eclipse.team.core.TeamPlugin; - -public class FileModificationValidatorManager implements IFileModificationValidator { - private static final IFileModificationValidator DEFAULT_VALIDATOR = - new DefaultFileModificationValidator(); - - /* - * @see IFileModificationValidator#validateEdit(IFile[], Object) - * For all files, determine which provider. - * Ask each provider once for its files. - * Collect the resulting status' and return a MultiStatus. - */ - public IStatus validateEdit(IFile[] files, Object context) { - ArrayList returnStati = new ArrayList(); - - //map provider to the files under that provider's control - Map providersToFiles = new HashMap(files.length); - - //for each file, determine which provider, map providers to files - for (int i = 0; i < files.length; i++) { - IFile file = files[i]; - RepositoryProvider provider = RepositoryProvider.getProvider(file.getProject()); - - if (!providersToFiles.containsKey(provider)) { - providersToFiles.put(provider, new ArrayList()); - } - - ((ArrayList)providersToFiles.get(provider)).add(file); - } - - Iterator providersIterator = providersToFiles.keySet().iterator(); - - boolean allOK = true; - - //for each provider, validate its files - while(providersIterator.hasNext()) { - RepositoryProvider provider = (RepositoryProvider)providersIterator.next(); - ArrayList filesList = (ArrayList)providersToFiles.get(provider); - IFile[] filesArray = (IFile[])filesList.toArray(new IFile[filesList.size()]); - IFileModificationValidator validator = DEFAULT_VALIDATOR; - - //if no provider or no validator use the default validator - if (provider != null) { - IFileModificationValidator v = provider.getFileModificationValidator(); - if (v != null) validator = v; - } - - IStatus status = validator.validateEdit(filesArray, context); - if(!status.isOK()) - allOK = false; - - returnStati.add(status); - } - - if (returnStati.size() == 1) { - return (IStatus)returnStati.get(0); - } - - return new MultiStatus(TeamPlugin.ID, - 0, - (IStatus[])returnStati.toArray(new IStatus[returnStati.size()]), - Policy.bind( - allOK - ? "FileModificationValidator.ok" //$NON-NLS-1$ - : "FileModificationValidator.editFailed"), //$NON-NLS-1$ - null); //$NON-NLS-1$ - } - - /* - * @see IFileModificationValidator#validateSave(IFile) - */ - public IStatus validateSave(IFile file) { - RepositoryProvider provider = RepositoryProvider.getProvider(file.getProject()); - IFileModificationValidator validator = DEFAULT_VALIDATOR; - - //if no provider or no validator use the default validator - if (provider != null) { - IFileModificationValidator v = provider.getFileModificationValidator(); - if (v != null) validator = v; - } - - return validator.validateSave(file); - } -} diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/MoveDeleteManager.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/MoveDeleteManager.java deleted file mode 100644 index ef1e1eea6..000000000 --- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/MoveDeleteManager.java +++ /dev/null @@ -1,110 +0,0 @@ -package org.eclipse.team.internal.core; - -/* - * (c) Copyright IBM Corp. 2000, 2002. - * All Rights Reserved. - */ - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IFolder; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IProjectDescription; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.resources.team.IMoveDeleteHook; -import org.eclipse.core.resources.team.IResourceTree; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.team.core.RepositoryProvider; - -public class MoveDeleteManager implements IMoveDeleteHook { - - private static final IMoveDeleteHook DEFAULT_HOOK = new DefaultMoveDeleteHook(); - - private IMoveDeleteHook getHookFor(IResource resource) { - IProject project = resource.getProject(); - RepositoryProvider provider = RepositoryProvider.getProvider(project); - if(provider==null) { - return DEFAULT_HOOK; - } - IMoveDeleteHook hook = provider.getMoveDeleteHook(); - if (hook == null) { - return DEFAULT_HOOK; - } - return hook; - } - - /* - * @see IMoveDeleteHook#deleteFile(IResourceTree, IFile, int, IProgressMonitor) - */ - public boolean deleteFile( - IResourceTree tree, - IFile file, - int updateFlags, - IProgressMonitor monitor) { - - return getHookFor(file).deleteFile(tree, file, updateFlags, monitor); - } - - /* - * @see IMoveDeleteHook#deleteFolder(IResourceTree, IFolder, int, IProgressMonitor) - */ - public boolean deleteFolder( - IResourceTree tree, - IFolder folder, - int updateFlags, - IProgressMonitor monitor) { - - return getHookFor(folder).deleteFolder(tree, folder, updateFlags, monitor); - } - - /* - * @see IMoveDeleteHook#deleteProject(IResourceTree, IProject, int, IProgressMonitor) - */ - public boolean deleteProject( - IResourceTree tree, - IProject project, - int updateFlags, - IProgressMonitor monitor) { - - return getHookFor(project).deleteProject(tree, project, updateFlags, monitor); - } - - /* - * @see IMoveDeleteHook#moveFile(IResourceTree, IFile, IFile, int, IProgressMonitor) - */ - public boolean moveFile( - IResourceTree tree, - IFile source, - IFile destination, - int updateFlags, - IProgressMonitor monitor) { - - return getHookFor(source).moveFile(tree, source, destination, updateFlags, monitor); - } - - /* - * @see IMoveDeleteHook#moveFolder(IResourceTree, IFolder, IFolder, int, IProgressMonitor) - */ - public boolean moveFolder( - IResourceTree tree, - IFolder source, - IFolder destination, - int updateFlags, - IProgressMonitor monitor) { - - return getHookFor(source).moveFolder(tree, source, destination, updateFlags, monitor); - } - - /* - * @see IMoveDeleteHook#moveProject(IResourceTree, IProject, IProjectDescription, int, IProgressMonitor) - */ - public boolean moveProject( - IResourceTree tree, - IProject source, - IProjectDescription description, - int updateFlags, - IProgressMonitor monitor) { - - return getHookFor(source).moveProject(tree, source, description, updateFlags, monitor); - } - -} diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/Policy.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/Policy.java deleted file mode 100644 index 4b87bd415..000000000 --- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/Policy.java +++ /dev/null @@ -1,91 +0,0 @@ -package org.eclipse.team.internal.core; - -/* - * (c) Copyright IBM Corp. 2000, 2001. - * All Rights Reserved. - */ - -import java.text.MessageFormat; -import java.util.MissingResourceException; -import java.util.ResourceBundle; - -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.NullProgressMonitor; -import org.eclipse.core.runtime.OperationCanceledException; -import org.eclipse.core.runtime.SubProgressMonitor; - -public class Policy { - protected static ResourceBundle bundle = null; - - /** - * Creates a NLS catalog for the given locale. - */ - public static void localize(String bundleName) { - bundle = ResourceBundle.getBundle(bundleName); - } - - /** - * Lookup the message with the given ID in this catalog and bind its - * substitution locations with the given string. - */ - public static String bind(String id, String binding) { - return bind(id, new String[] { binding }); - } - - /** - * Lookup the message with the given ID in this catalog and bind its - * substitution locations with the given strings. - */ - public static String bind(String id, String binding1, String binding2) { - return bind(id, new String[] { binding1, binding2 }); - } - - /** - * Gets a string from the resource bundle. We don't want to crash because of a missing String. - * Returns the key if not found. - */ - public static String bind(String key) { - try { - return bundle.getString(key); - } catch (MissingResourceException e) { - return key; - } catch (NullPointerException e) { - return "!" + key + "!"; //$NON-NLS-1$ //$NON-NLS-2$ - } - } - - /** - * Gets a string from the resource bundle and binds it with the given arguments. If the key is - * not found, return the key. - */ - public static String bind(String key, Object[] args) { - try { - return MessageFormat.format(bind(key), args); - } catch (MissingResourceException e) { - return key; - } catch (NullPointerException e) { - return "!" + key + "!"; //$NON-NLS-1$ //$NON-NLS-2$ - } - } - - /** - * Progress monitor helpers - */ - public static void checkCanceled(IProgressMonitor monitor) { - if (monitor.isCanceled()) - throw new OperationCanceledException(); - } - public static IProgressMonitor monitorFor(IProgressMonitor monitor) { - if (monitor == null) - return new NullProgressMonitor(); - return monitor; - } - - public static IProgressMonitor subMonitorFor(IProgressMonitor monitor, int ticks) { - if (monitor == null) - return new NullProgressMonitor(); - if (monitor instanceof NullProgressMonitor) - return monitor; - return new SubProgressMonitor(monitor, ticks); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/StringMatcher.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/StringMatcher.java deleted file mode 100644 index 015a2ae15..000000000 --- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/StringMatcher.java +++ /dev/null @@ -1,389 +0,0 @@ -package org.eclipse.team.internal.core; - -/* - * (c) Copyright IBM Corp. 2000, 2001. - * All Rights Reserved. - */ - -import java.util.*; - -/** - * A string pattern matcher, suppporting * and ? wildcards. - * Note: code copied from org.eclipse.jdt.internal.core.util.StringMatcher on April 3, 2001 - * (version 0.1 - 010901H18 [rename jbl]). - */ -public class StringMatcher { - protected String fPattern; - protected int fLength; // pattern length - protected boolean fIgnoreWildCards; - protected boolean fIgnoreCase; - protected boolean fHasLeadingStar; - protected boolean fHasTrailingStar; - protected String fSegments[]; //the given pattern is split into * separated segments - - /* boundary value beyond which we don't need to search in the text */ - protected int fBound = 0; - - - protected static final char fSingleWildCard = '\u0000'; - - public static class Position { - int start; //inclusive - int end; //exclusive - public Position(int start, int end) { - this.start = start; - this.end = end; - } - public int getStart() { - return start; - } - public int getEnd() { - return end; - } - } - /** - * Find the first occurrence of the pattern between <code>start</code)(inclusive) - * and <code>end</code>(exclusive). - * @param <code>text</code>, the String object to search in - * @param <code>start</code>, the starting index of the search range, inclusive - * @param <code>end</code>, the ending index of the search range, exclusive - * @return an <code>StringMatcher.Position</code> object that keeps the starting - * (inclusive) and ending positions (exclusive) of the first occurrence of the - * pattern in the specified range of the text; return null if not found or subtext - * is empty (start==end). A pair of zeros is returned if pattern is empty string - * Note that for pattern like "*abc*" with leading and trailing stars, position of "abc" - * is returned. For a pattern like"*??*" in text "abcdf", (1,3) is returned - */ - - public StringMatcher.Position find(String text, int start, int end) { - if (fPattern == null|| text == null) - throw new IllegalArgumentException(); - - int tlen = text.length(); - if (start < 0) - start = 0; - if (end > tlen) - end = tlen; - if (end < 0 ||start >= end ) - return null; - if (fLength == 0) - return new Position(start, start); - if (fIgnoreWildCards) { - int x = posIn(text, start, end); - if (x < 0) - return null; - return new Position(x, x+fLength); - } - - int segCount = fSegments.length; - if (segCount == 0)//pattern contains only '*'(s) - return new Position (start, end); - - int curPos = start; - int matchStart = -1; - int i; - for (i = 0; i < segCount && curPos < end; ++i) { - String current = fSegments[i]; - int nextMatch = regExpPosIn(text, curPos, end, current); - if (nextMatch < 0 ) - return null; - if(i == 0) - matchStart = nextMatch; - curPos = nextMatch + current.length(); - } - if (i < segCount) - return null; - return new Position(matchStart, curPos); - } - /** - * StringMatcher constructor takes in a String object that is a simple - * pattern which may contain * for 0 and many characters and - * ? for exactly one character. - * - * Literal '*' and '?' characters must be escaped in the pattern - * e.g., "\*" means literal "*", etc. - * - * Escaping any other character (including the escape character itself), - * just results in that character in the pattern. - * e.g., "\a" means "a" and "\\" means "\" - * - * If invoking the StringMatcher with string literals in Java, don't forget - * escape characters are represented by "\\". - * - * @param aPattern the pattern to match text against - * @param ignoreCase if true, case is ignored - * @param ignoreWildCards if true, wild cards and their escape sequences are ignored - * (everything is taken literally). - */ - public StringMatcher(String aPattern, boolean ignoreCase, boolean ignoreWildCards) { - fIgnoreCase = ignoreCase; - fIgnoreWildCards = ignoreWildCards; - fLength = aPattern.length(); - - /* convert case */ - if (fIgnoreCase) { - fPattern = aPattern.toUpperCase(); - } else { - fPattern = aPattern; - } - - if (fIgnoreWildCards) { - parseNoWildCards(); - } else { - parseWildCards(); - } - } - /** - * Given the starting (inclusive) and the ending (exclusive) poisitions in the - * <code>text</code>, determine if the given substring matches with aPattern - * @return true if the specified portion of the text matches the pattern - * @param String <code>text</code>, a String object that contains the substring to match - * @param int <code>start<code> marks the starting position (inclusive) of the substring - * @param int <code>end<code> marks the ending index (exclusive) of the substring - */ - public boolean match(String text, int start, int end) { - if (null == fPattern || null == text) - throw new IllegalArgumentException(); - - if (start >= end) - return false; - - if (fIgnoreWildCards) - return fPattern.regionMatches(fIgnoreCase, 0, text, start, fLength); - int segCount = fSegments.length; - if (segCount == 0)//pattern contains only '*'(s) or empty pattern - return true; - if (start == end) - return fLength == 0; - if (fLength == 0) - return start == end; - - int tlen = text.length(); - if (start < 0) - start = 0; - if (end > tlen) - end = tlen; - - int tCurPos = start; - int bound = end - fBound; - if ( bound < 0) - return false; - int i=0; - String current = fSegments[i]; - int segLength = current.length(); - - /* process first segment */ - if (!fHasLeadingStar){ - if(!regExpRegionMatches(text, start, current, 0, segLength)) { - return false; - } else { - ++i; - tCurPos = tCurPos + segLength; - } - } - - /* process middle segments */ - while ( i < segCount) { - current = fSegments[i]; - int currentMatch; - int k = current.indexOf(fSingleWildCard); - if (k < 0) { - currentMatch = textPosIn(text, tCurPos, end, current); - if (currentMatch < 0) - return false; - } else { - currentMatch = regExpPosIn(text, tCurPos, end, current); - if (currentMatch < 0) - return false; - } - tCurPos = currentMatch + current.length(); - i++; - } - - /* process final segment */ - if (!fHasTrailingStar && tCurPos != end) { - int clen = current.length(); - return regExpRegionMatches(text, end - clen, current, 0, clen); - } - return i == segCount ; - } - /** - * match the given <code>text</code> with the pattern - * @return true if matched eitherwise false - * @param <code>text</code>, a String object - */ - public boolean match(String text) { - return match(text, 0, text.length()); - } - /** - * This method parses the given pattern into segments seperated by wildcard '*' characters. - * Since wildcards are not being used in this case, the pattern consists of a single segment. - */ - private void parseNoWildCards() { - fSegments = new String[1]; - fSegments[0] = fPattern; - fBound = fLength; - } - /** - * This method parses the given pattern into segments seperated by wildcard '*' characters. - * @param p, a String object that is a simple regular expression with * and/or ? - */ - private void parseWildCards() { - if(fPattern.startsWith("*"))//$NON-NLS-1$ - fHasLeadingStar = true; - if(fPattern.endsWith("*")) {//$NON-NLS-1$ - /* make sure it's not an escaped wildcard */ - if (fLength > 1 && fPattern.charAt(fLength - 2) != '\\') { - fHasTrailingStar = true; - } - } - - Vector temp = new Vector(); - - int pos = 0; - StringBuffer buf = new StringBuffer(); - while (pos < fLength) { - char c = fPattern.charAt(pos++); - switch (c) { - case '\\': - if (pos >= fLength) { - buf.append(c); - } else { - char next = fPattern.charAt(pos++); - /* if it's an escape sequence */ - if (next == '*' || next == '?' || next == '\\') { - buf.append(next); - } else { - /* not an escape sequence, just insert literally */ - buf.append(c); - buf.append(next); - } - } - break; - case '*': - if (buf.length() > 0) { - /* new segment */ - temp.addElement(buf.toString()); - fBound += buf.length(); - buf.setLength(0); - } - break; - case '?': - /* append special character representing single match wildcard */ - buf.append(fSingleWildCard); - break; - default: - buf.append(c); - } - } - - /* add last buffer to segment list */ - if (buf.length() > 0) { - temp.addElement(buf.toString()); - fBound += buf.length(); - } - - fSegments = new String[temp.size()]; - temp.copyInto(fSegments); - } - /** - * @param <code>text</code>, a string which contains no wildcard - * @param <code>start</code>, the starting index in the text for search, inclusive - * @param <code>end</code>, the stopping point of search, exclusive - * @return the starting index in the text of the pattern , or -1 if not found - */ - protected int posIn(String text, int start, int end) {//no wild card in pattern - int max = end - fLength; - - if (!fIgnoreCase) { - int i = text.indexOf(fPattern, start); - if (i == -1 || i > max) - return -1; - return i; - } - - for (int i = start; i <= max; ++i) { - if (text.regionMatches(true, i, fPattern, 0, fLength)) - return i; - } - - return -1; - } - /** - * @param <code>text</code>, a simple regular expression that may only contain '?'(s) - * @param <code>start</code>, the starting index in the text for search, inclusive - * @param <code>end</code>, the stopping point of search, exclusive - * @param <code>p</code>, a simple regular expression that may contains '?' - * @param <code>caseIgnored</code>, wether the pattern is not casesensitive - * @return the starting index in the text of the pattern , or -1 if not found - */ - protected int regExpPosIn(String text, int start, int end, String p) { - int plen = p.length(); - - int max = end - plen; - for (int i = start; i <= max; ++i) { - if (regExpRegionMatches(text, i, p, 0, plen)) - return i; - } - return -1; - } - /** - * - * @return boolean - * @param <code>text</code>, a String to match - * @param <code>start</code>, int that indicates the starting index of match, inclusive - * @param <code>end</code> int that indicates the ending index of match, exclusive - * @param <code>p</code>, String, String, a simple regular expression that may contain '?' - * @param <code>ignoreCase</code>, boolean indicating wether code>p</code> is case sensitive - */ - protected boolean regExpRegionMatches(String text, int tStart, String p, int pStart, int plen) { - while (plen-- > 0) { - char tchar = text.charAt(tStart++); - char pchar = p.charAt(pStart++); - - /* process wild cards */ - if (!fIgnoreWildCards) { - /* skip single wild cards */ - if (pchar == fSingleWildCard) { - continue; - } - } - if (pchar == tchar) - continue; - if (fIgnoreCase) { - char tc = Character.toUpperCase(tchar); - if (tc == pchar) - continue; - } - return false; - } - return true; - } - /** - * @param <code>text</code>, the string to match - * @param <code>start</code>, the starting index in the text for search, inclusive - * @param <code>end</code>, the stopping point of search, exclusive - * @param code>p</code>, a string that has no wildcard - * @param <code>ignoreCase</code>, boolean indicating wether code>p</code> is case sensitive - * @return the starting index in the text of the pattern , or -1 if not found - */ - protected int textPosIn(String text, int start, int end, String p) { - - int plen = p.length(); - int max = end - plen; - - if (!fIgnoreCase) { - int i = text.indexOf(p, start); - if (i == -1 || i > max) - return -1; - return i; - } - - for (int i = start; i <= max; ++i) { - if (text.regionMatches(true, i, p, 0, plen)) - return i; - } - - return -1; - } -} diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/messages.properties b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/messages.properties deleted file mode 100644 index d14c44b45..000000000 --- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/messages.properties +++ /dev/null @@ -1,37 +0,0 @@ - -manager.providerAlreadyMapped=Error associating {0} with provider named {1}. The project is already associated with a provider. -manager.errorFlushSync=Error flushing provider mapping information for {0}. -manager.errorDeconfigure=Error deconfiguring provider named {0} from project {1}. -manager.providerTypeInvalid=The provider type is not registered: {0}. -manager.providerExtensionNotFound=TeamPlugin provider extension not found. -manager.providerNoConfigElems=No configuration elements found for extension: {0}. -manager.cannotInstantiateExt=Cannot instantiate extension: {0}. -manager.errorSerialize=Error serializing provider mappings for {0}. -manager.errorUnserializeProvider=Cannot unserialize association of {0} with provider of type: {1}. It is no longer a registered provider type. -manager.errorUnserialize=Error un-serializing provider mappings {0}. -manager.notTeamNature=Error setting nature: {0} is not a registered team nature. -manager.errorSettingNature=Error setting nature {1} on project {0}. -manager.errorRemovingNature=Error removing nature {1} on project {0}. - -manager.badClassType=Error creating validator decorator: bad class type -manager.coreException=Error creating validator decorator: core exception - -FileModificationValidator.someReadOnly=Some files are read-only. -FileModificationValidator.fileIsReadOnly=File {0} is read-only. -FileModificationValidator.editFailed=Files are read-only. -FileModificationValidator.ok=OK - -RepositoryProvider_Error_removing_nature_from_project___1=Error removing nature from project: -RepositoryProvider_Too_many_providers_associated_with_project___2=Too many providers associated with project: -RepositoryProviderTypeduplicate_provider_found_in_plugin.xml___1=duplicate provider found in plugin.xml: -RepositoryProviderTypeRepositoryProvider_assigned_to_the_project_must_be_a_subclass_of_RepositoryProvider___2=RepositoryProvider assigned to the project must be a subclass of RepositoryProvider: -RepositoryProviderTypeRepositoryProvider_not_registered_as_a_nature_id___3=RepositoryProvider not registered as a nature id: - -RepositoryProvider_providerTypeIdNotRegistered=Error configuring the RepositoryProvider the nature id is not registered as a valid RepositoryProviderType id. - -TeamPlugin_setting_global_ignore_7=setting global ignore -TeamPlugin_renaming_21=renaming -TeamPlugin_closing_stream_22=closing stream -TeamPlugin_closing_stream_23=closing stream - - diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/simpleAccess/SimpleAccessOperations.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/simpleAccess/SimpleAccessOperations.java deleted file mode 100644 index 8373e0f14..000000000 --- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/simpleAccess/SimpleAccessOperations.java +++ /dev/null @@ -1,269 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v0.5 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v05.html - * - * Contributors: - * IBM - Initial API and implementation - ******************************************************************************/ -package org.eclipse.team.internal.core.simpleAccess; - -import org.eclipse.team.core.*; -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; - -/* - * This class represents provisional API. Its here to allow experimentation with 3rd party tools - * calling providers in a repository neutral manner. - * - * A provider is not required to implement this API. - * Implementers, and those who reference it, do so with the awareness that this class may be - * removed or substantially changed at future times without warning. - * - * The <code>SimpleAccessOperations</code> class exposes a basic repository model that - * providers may implement to allow third-party plugins to perform repository operations - * programmatically. For example, a code generation tool may want to get source - * files before generating the code, and check-in the results. If a provider plugin does - * not adhere to the <i>semantics</i> of the <code>SimpleAccessOperations</code> class - * as described, they are free to opt out of implementing it. - * - * @since 2.0 - */ -public interface SimpleAccessOperations { - /* - * Updates the local resource to have the same content as the corresponding remote - * resource. Where the local resource does not exist, this method will create it. - * <p> - * If the remote resource is a container (e.g. folder or project) this operation is equivalent - * to getting each non-container member of the remote resource, thereby updating the - * content of existing local members, creating local members to receive new remote resources, - * and deleting local members that no longer have a corresponding remote resource.</p> - * <p> - * The method is applied to all resources satisfying the depth parameter, described above.</p> - * <p> - * Interrupting the method (via the progress monitor) may lead to partial, but consistent, results.</p> - * - * @param resources an array of local resources to update from the corresponding remote - * resources. - * @param depth the depth to traverse the given resources, taken from <code>IResource</code> - * static constants. - * @param progress a progress monitor to indicate the duration of the operation, or - * <code>null</code> if progress reporting is not required. - * @throws TeamException if there is a problem getting one or more of the resources. The - * exception will contain multiple statuses, one for each resource in the <code>resources</code> - * array. Possible status codes include: - * <ul> - * <li>NO_REMOTE_RESOURCE</li> - * <li>IO_FAILED</li> - * <li>NOT_AUTHORIZED</li> - * <li>UNABLE</li> - * </ul> - */ - public void get(IResource[] resources, int depth, IProgressMonitor progress) throws TeamException; - - /* - * Changes the state of the local resource from checked-in to checked-out and transfers the content - * of the remote resource to the local resource. - * <p> - * Where no corresponding local resource exists in the workspace, one is created (including any - * intermediate parent containers) to receive the contents of the remote resource.</p> - * <p> - * Implementations may optimistically only flag the state change locally and rely on resolving conflicts - * during check-in, or they may pessimistically also checkout or lock the remote resource during a - * local resource checkout to avoid conflicts. The provider API does not subscribe to either model - * and supports each equally.</p> - * <p> - * Where checkout is applied to a resource that is already checked-out the method has no - * effect.</p> - * - * @param resources the array of local resources to be checked-out. - * @param depth the depth to traverse the given resources, taken from <code>IResource</code> - * constants. - * @param progress a progress monitor to indicate the duration of the operation, or - * <code>null</code> if progress reporting is not required. - * @throws TeamProviderException if there is a problem checking-out one or more of the resources. - * The exception will contain multiple statuses, one for each resource in the <code>resources</code> - * array. Possible status codes include: - * <ul> - * <li>NOT_CHECKED_IN</li> - * <li>NO_REMOTE_RESOURCE</li> - * <li>IO_FAILED</li> - * <li>NOT_AUTHORIZED</li> - * <li>UNABLE</li> - * </ul> - * @see checkin(IResource[], int, IProgressMonitor) - */ - public void checkout(IResource[] resources, int depth, IProgressMonitor progress) throws TeamException; - - /* - * Transfers the content of the local resource to the corresponding remote resource, and changes the - * state of the local resource from checked-out to checked-in. - * <p> - * If a remote resource does not exist this method creates a new remote resource with the same content - * as the given local resource. The local resource is said to <i>correspond</i> to the new remote resource.</p> - * <p> - * Where providers deal with stores that check-out or lock resources this method is an opportunity - * to transfer the content and make the corresponding remote check-in or unlock. It is envisaged that - * where the server maintains resource versions, checkin creates a new version of the remote resource.</p> - * <p> - * Note that some providers may <em>require</em> that a resource is checked-out before it can be - * checked-in. However, all providers must support the explicit checking out a resource before checking - * it in (e.g., even if the check out is a no-op).</p> - * - * @param resources an array of local resources to be checked-in. - * @param the depth to traverse the given resources, taken from <code>IResource</code> - * constants. - * @param progress a progress monitor to indicate the duration of the operation, or - * <code>null</code> if progress reporting is not required. - * @throws TeamException if there is a problem checking-in one or more of the resources. - * The exception will contain multiple statuses, one for each resource in the <code>resources</code> - * array. Possible status codes include: - * <ul> - * <li>NOT_CHECKED_OUT</li> - * <li>IO_FAILED</li> - * <li>NOT_AUTHORIZED</li> - * <li>UNABLE</li> - * </ul> - * @see checkout(IResource[], int, IProgressMonitor) - */ - public void checkin(IResource[] resources, int depth, IProgressMonitor progress) throws TeamException; - - /* - * Changes the state of the local resource from checked-out to checked-in without updating the contents - * of the remote resource. - * <p> - * Note that where the provider is a versioning provider, it is envisaged (though not required) that the - * uncheckout operation does not create a new version.</p> - * <p> - * Note also that <code>uncheckout()</code> does not affect the content of the local resource. The - * caller is required to perform a <code>get()</code> to revert the local resource if that is required - * (otherwise the local resource will be left with the changes that were made while the remote resource - * was checked-out. Furthermore, it is valid to call <code>uncheckout()</code> with an - * <code>IResource</code> that does not exist locally.</p> - * - * @param resources an array of the local resources that are to be unchecked-out. - * @param depth the depth to traverse the given resources, taken from <code>IResource</code> - * constants. - * @param progress a progress monitor to indicate the duration of the operation, or - * <code>null</code> if progress reporting is not required. - * @throws TeamProviderException if there is a problem undoing the check-out of one or more of - * the resources. The exception will contain multiple statuses, one for each resource in the - * <code>resources</code> array. Possible status codes include: - * <ul> - * <li>NOT_CHECKED_OUT</li> - * <li>IO_FAILED</li> - * <li>NOT_AUTHORIZED</li> - * <li>UNABLE</li> - * </ul> - * @see checkin(IResource) - * @see uncheckout(IResource) - */ - public void uncheckout(IResource[] resources, int depth, IProgressMonitor progress) throws TeamException; - - /* - * Deletes the remote resource corresponding to the given local resource. - * <p> - * The notion of delete is simply to make the remote resource unavailable. Where the provider - * supports versioning it is not specified whether the delete operation makes the version - * temporarily or forever unavailable, or indeed whether the entire history is made unavailable.</p> - * <p> - * Note that the <code>IResource</code>'s passed as arguments may be non-existant in the - * workbench, the typical case is when such a resource has been received in a core callback.</p> - * <p> - * The resource may be checked-in or checked-out prior to deletion. The local resource is not - * deleted by this method.</p> - * <p> - * Resource deletions are inherently deep.</p> - * - * @param resources the array of resources whose corresponding remote resources are to be deleted. - * @param progress a progress monitor to indicate the duration of the operation, or - * <code>null</code> if progress reporting is not required. - * @throws TeamProviderException if there is a problem deleting one or more of - * the resources. The exception will contain multiple statuses, one for each resource in the - * <code>resources</code> array. Possible status codes include: - * <ul> - * <li>NO_REMOTE_RESOURCE</li> - * <li>IO_FAILED</li> - * <li>NOT_AUTHORIZED</li> - * <li>UNABLE</li> - * </ul> - */ - public void delete(IResource[] resources, IProgressMonitor progress) throws TeamException; - - /* - * Informs the provider that a local resource's name or path has changed. - * <p> - * Some providers, such as versioning providers, may require this information to track the resource - * across name changes.</p> - * <p> - * Note that this method is always called <em>after</em> the local resource has been moved.</p> - * - * @param source the full name of the resource before it was moved. - * @param target the resource that was moved. - * @param progress a progress monitor to indicate the duration of the operation, or - * <code>null</code> if progress reporting is not required. - * @throws TeamProviderException if there is a problem recording the move. The exception will - * contain a single status. Possible status codes are: - * <ul> - * <li>NO_REMOTE_RESOURCE</li> - * <li>IO_FAILED</li> - * <li>NOT_AUTHORIZED</li> - * <li>UNABLE</li> - * </ul> - */ - public void moved(IPath source, IResource target, IProgressMonitor progress) throws TeamException; - - /* - * Implementor's Note: - * The following methods are required to return promptly (i.e., they may be used to determine the state of - * a resource in a UI where long delays are unacceptable). Implementations may cache these values - * and update the cache on an explicit call to #refreshState(). - * - * They are currently listed in the provider API, however, they may be moved to a new or different - * interface in the future to better reflect their UI-orientation. - */ - - /* - * Answers if the remote resource state is checked-out. If the resource has never been checked in this - * method will return <code>true</code>. - * <p> - * It is undefined whether this method tests for a resource being checked out to this workspace - * or any workspace.</p> - * - * @param resource the local resource to test. - * @return <code>true</code> if the resource is checked-out and <code>false</code> if it is not. - * @see checkout(IResource[], int, IProgressMonitor) - */ - public boolean isCheckedOut(IResource resource); - - /* - * Answers whether the resource has a corresponding remote resource. - * <p> - * Before a resource is checked-in, the resource will occur locally but not remotely, and calls to this - * method will return <code>false</code>. Once a local resource is checked in (and assuming the local - * local resource is not moved or the remote resource deleted) there will be a corresponding remote - * resource and this method returns <code>true</code>.</p> - * - * @param resource the local resource to test. - * @return <code>true</code> if the local resource has a corresponding remote resource, - * and <code>false</code> otherwise. - * @see checkin(IResource[], int, IProgressMonitor) - * @see refreshState(IResource[], int, IProgressMonitor) - */ - public boolean hasRemote(IResource resource); - - /* - * Answer if the local resource currently has a different timestamp to the base timestamp - * for this resource. - * - * @param resource the resource to test. - * @return <code>true</code> if the resource has a different modification - * timestamp, and <code>false</code> otherwise. - */ - public boolean isDirty(IResource resource); -}
\ No newline at end of file |