Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.eclipse.mylyn-feature/.project17
-rw-r--r--org.eclipse.mylyn-feature/build.properties22
-rw-r--r--org.eclipse.mylyn-feature/epl-v10.html328
-rw-r--r--org.eclipse.mylyn-feature/feature.xml298
-rw-r--r--org.eclipse.mylyn-feature/license.html73
-rw-r--r--org.eclipse.mylyn.bugzilla-feature/.project17
-rw-r--r--org.eclipse.mylyn.bugzilla-feature/about.html22
-rw-r--r--org.eclipse.mylyn.bugzilla-feature/build.properties18
-rw-r--r--org.eclipse.mylyn.bugzilla-feature/epl-v10.html328
-rw-r--r--org.eclipse.mylyn.bugzilla-feature/feature.xml260
-rw-r--r--org.eclipse.mylyn.bugzilla-feature/license.html73
-rw-r--r--org.eclipse.mylyn.bugzilla.core/.classpath12
-rw-r--r--org.eclipse.mylyn.bugzilla.core/.cvsignore3
-rw-r--r--org.eclipse.mylyn.bugzilla.core/.project28
-rw-r--r--org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.jdt.core.prefs12
-rw-r--r--org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.pde.prefs12
-rw-r--r--org.eclipse.mylyn.bugzilla.core/META-INF/MANIFEST.MF24
-rw-r--r--org.eclipse.mylyn.bugzilla.core/about.html22
-rw-r--r--org.eclipse.mylyn.bugzilla.core/build.properties34
-rw-r--r--org.eclipse.mylyn.bugzilla.core/plugin.xml32
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/Attribute.java177
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugPost.java332
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugReport.java410
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugzillaAuthenticator.java57
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugzillaException.java65
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugzillaPlugin.java347
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugzillaPreferences.java604
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugzillaRepository.java418
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugzillaTools.java64
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/Comment.java165
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/IBugzillaAttributeListener.java19
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/IBugzillaBug.java86
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/IBugzillaConstants.java94
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/IBugzillaReportSelection.java89
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/NewBugModel.java196
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/Operation.java205
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/PossibleBugzillaFailureException.java64
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/TrustAll.java62
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/compare/BugzillaCompareInput.java120
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/compare/BugzillaCompareNode.java232
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/compare/BugzillaStructureCreator.java76
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/favorites/Favorite.java110
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/favorites/FavoritesFile.java318
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/BugParser.java840
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/HtmlStreamTokenizer.java633
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/HtmlTag.java340
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/KeywordParser.java151
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/NewBugParser.java409
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/ProductConfiguration.java177
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/ProductConfigurationFactory.java194
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/ProductParser.java148
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/offline/OfflineReportsFile.java333
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaContentProvider.java58
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaIdSearchSorter.java85
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaLabelProvider.java96
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaPrioritySearchSorter.java85
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaQueryPageParser.java513
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaSearchEngine.java334
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaSearchHit.java171
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaSearchOperation.java110
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaSearchQuery.java115
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaSearchResult.java110
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaSearchResultCollector.java225
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaSeveritySearchSorter.java91
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaStateSearchSorter.java112
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/IBugzillaResultEditorMatchAdapter.java26
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/IBugzillaSearchOperation.java58
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/IBugzillaSearchResultCollector.java65
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/.classpath7
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/.cvsignore1
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/.project28
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.jdt.core.prefs12
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.pde.prefs12
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/META-INF/MANIFEST.MF20
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/TestPages/bug-1-full.html719
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/TestPages/bug-not-found-eclipse.html158
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/TestPages/bug-not-found-hipikat.html142
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/TestPages/cdt-page.html184
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/TestPages/equinox-page.html177
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/TestPages/gmt-page.html175
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/TestPages/hipikat-copy-bug-1-full.html157
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/TestPages/platform-page.html299
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/TestPages/product-page-1-product-hipikat.html256
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/TestPages/product-page.html237
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/TestPages/ve-page.html178
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/about.html22
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/build.properties23
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/plugin.xml6
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/AllTests.java42
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestCDT.java231
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestEquinox.java216
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestGMT.java217
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestPlatform.java243
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestVE.java223
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaParserTest.java215
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaParserTestNoBug.java46
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaProductParser1ProductHipikatTest.java68
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaProductParserTest.java80
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaTestPlugin.java96
-rw-r--r--org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/FileTool.java256
-rw-r--r--org.eclipse.mylyn.help.ui/.classpath7
-rw-r--r--org.eclipse.mylyn.help.ui/.cvsignore1
-rw-r--r--org.eclipse.mylyn.help.ui/.project28
-rw-r--r--org.eclipse.mylyn.help.ui/.settings/org.eclipse.jdt.core.prefs12
-rw-r--r--org.eclipse.mylyn.help.ui/.settings/org.eclipse.pde.prefs12
-rw-r--r--org.eclipse.mylyn.help.ui/META-INF/MANIFEST.MF9
-rw-r--r--org.eclipse.mylyn.help.ui/about.html22
-rw-r--r--org.eclipse.mylyn.help.ui/book.css1
-rw-r--r--org.eclipse.mylyn.help.ui/build.properties26
-rw-r--r--org.eclipse.mylyn.help.ui/developer/dependencies.vsdbin42496 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/developer/model.vsdbin144384 -> 0 bytes
-rw-r--r--org.eclipse.mylyn.help.ui/plugin.xml14
-rw-r--r--org.eclipse.mylyn.help.ui/src/empty.txt0
-rw-r--r--org.eclipse.mylyn.help.ui/toc.xml10
-rw-r--r--org.eclipse.mylyn.tasks.core/.classpath11
-rw-r--r--org.eclipse.mylyn.tasks.core/.cvsignore1
-rw-r--r--org.eclipse.mylyn.tasks.core/.project28
-rw-r--r--org.eclipse.mylyn.tasks.core/.settings/org.eclipse.jdt.core.prefs12
-rw-r--r--org.eclipse.mylyn.tasks.core/.settings/org.eclipse.jdt.ui.prefs3
-rw-r--r--org.eclipse.mylyn.tasks.core/.settings/org.eclipse.pde.prefs12
-rw-r--r--org.eclipse.mylyn.tasks.core/META-INF/MANIFEST.MF28
-rw-r--r--org.eclipse.mylyn.tasks.core/build.properties19
-rw-r--r--org.eclipse.mylyn.tasks.core/plugin.xml13
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/BugzillaEditingMonitor.java46
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/BugzillaMylarBridge.java153
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/BugzillaNodeLabelProvider.java66
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/BugzillaStructureBridge.java310
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/BugzillaUiBridge.java138
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/MylarBugzillaPlugin.java117
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/java/BugzillaHyperLink.java52
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/java/BugzillaHyperLinkDetector.java203
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/search/BugzillaMylarSearch.java174
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/search/BugzillaMylarSearchJob.java109
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/search/BugzillaMylarSearchOperation.java526
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/search/BugzillaReferencesProvider.java161
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/search/Util.java195
136 files changed, 0 insertions, 18689 deletions
diff --git a/org.eclipse.mylyn-feature/.project b/org.eclipse.mylyn-feature/.project
deleted file mode 100644
index 11fcd6a03..000000000
--- a/org.eclipse.mylyn-feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.mylar-feature</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.pde.FeatureBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.FeatureNature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.mylyn-feature/build.properties b/org.eclipse.mylyn-feature/build.properties
deleted file mode 100644
index 1aaac6bc4..000000000
--- a/org.eclipse.mylyn-feature/build.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################
-# Copyright (c) 2004 - 2005 University Of British Columbia and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# University Of British Columbia - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,\
- about.ini,\
- about.properties,\
- eclipse32.gif,\
- epl-v10.html,\
- license.html
-src.includes = feature.xml,\
- license.html,\
- epl-v10.html,\
- eclipse32.gif,\
- about.properties,\
- about.ini
diff --git a/org.eclipse.mylyn-feature/epl-v10.html b/org.eclipse.mylyn-feature/epl-v10.html
deleted file mode 100644
index ed4b19665..000000000
--- a/org.eclipse.mylyn-feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
- <o:Revision>2</o:Revision>
- <o:TotalTime>3</o:TotalTime>
- <o:Created>2004-03-05T23:03:00Z</o:Created>
- <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
- <o:Pages>4</o:Pages>
- <o:Words>1626</o:Words>
- <o:Characters>9270</o:Characters>
- <o:Lines>77</o:Lines>
- <o:Paragraphs>18</o:Paragraphs>
- <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
- <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
- <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
- {font-family:Tahoma;
- panose-1:2 11 6 4 3 5 4 4 2 4;
- mso-font-charset:0;
- mso-generic-font-family:swiss;
- mso-font-pitch:variable;
- mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
- {mso-style-parent:"";
- margin:0in;
- margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:12.0pt;
- font-family:"Times New Roman";
- mso-fareast-font-family:"Times New Roman";}
-p
- {margin-right:0in;
- mso-margin-top-alt:auto;
- mso-margin-bottom-alt:auto;
- margin-left:0in;
- mso-pagination:widow-orphan;
- font-size:12.0pt;
- font-family:"Times New Roman";
- mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
- {mso-style-name:"Balloon Text";
- margin:0in;
- margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:8.0pt;
- font-family:Tahoma;
- mso-fareast-font-family:"Times New Roman";}
-@page Section1
- {size:8.5in 11.0in;
- margin:1.0in 1.25in 1.0in 1.25in;
- mso-header-margin:.5in;
- mso-footer-margin:.5in;
- mso-paper-source:0;}
-div.Section1
- {page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn-feature/feature.xml b/org.eclipse.mylyn-feature/feature.xml
deleted file mode 100644
index 48817271a..000000000
--- a/org.eclipse.mylyn-feature/feature.xml
+++ /dev/null
@@ -1,298 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.mylar_feature"
- label="Mylar"
- version="0.3.5.1"
- provider-name="University of British Columbia"
- plugin="org.eclipse.mylar">
-
- <description url="http://eclipse.org/mylar">
- Mylar Plugin
- </description>
-
- <license url="http://www.eclipse.org/legal/epl-v10.html">
- Eclipse Public License - v 1.0
-THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS
-ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE, REPRODUCTION OR
-DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT&apos;S ACCEPTANCE
-OF THIS AGREEMENT.
-1. DEFINITIONS
-&quot;Contribution&quot; means:
-a) in the case of the initial Contributor, the initial code and
-documentation distributed under this Agreement, and
-b) in the case of each subsequent Contributor:
-i) changes to the Program, and
-ii) additions to the Program;
-where such changes and/or additions to the Program originate
-from and are distributed by that particular Contributor. A Contribution
-&apos;originates&apos; from a Contributor if it was added to the Program
-by such Contributor itself or anyone acting on such Contributor&apos;s
-behalf. Contributions do not include additions to the Program
-which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii)
-are not derivative works of the Program.
-&quot;Contributor&quot; means any person or entity that distributes the
-Program.
-&quot;Licensed Patents &quot; mean patent claims licensable by a Contributor
-which are necessarily infringed by the use or sale of its Contribution
-alone or when combined with the Program.
-&quot;Program&quot; means the Contributions distributed in accordance with
-this Agreement.
-&quot;Recipient&quot; means anyone who receives the Program under this
-Agreement, including all Contributors.
-2. GRANT OF RIGHTS
-a) Subject to the terms of this Agreement, each Contributor hereby
-grants Recipient a non-exclusive, worldwide, royalty-free copyright
-license to reproduce, prepare derivative works of, publicly display,
-publicly perform, distribute and sublicense the Contribution
-of such Contributor, if any, and such derivative works, in source
-code and object code form.
-b) Subject to the terms of this Agreement, each Contributor hereby
-grants Recipient a non-exclusive, worldwide, royalty-free patent
-license under Licensed Patents to make, use, sell, offer to sell,
-import and otherwise transfer the Contribution of such Contributor,
-if any, in source code and object code form. This patent license
-shall apply to the combination of the Contribution and the Program
-if, at the time the Contribution is added by the Contributor,
-such addition of the Contribution causes such combination to
-be covered by the Licensed Patents. The patent license shall
-not apply to any other combinations which include the Contribution.
-No hardware per se is licensed hereunder.
-c) Recipient understands that although each Contributor grants
-the licenses to its Contributions set forth herein, no assurances
-are provided by any Contributor that the Program does not infringe
-the patent or other intellectual property rights of any other
-entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement
-of intellectual property rights or otherwise. As a condition
-to exercising the rights and licenses granted hereunder, each
-Recipient hereby assumes sole responsibility to secure any other
-intellectual property rights needed, if any. For example, if
-a third party patent license is required to allow Recipient to
-distribute the Program, it is Recipient&apos;s responsibility to acquire
-that license before distributing the Program.
-d) Each Contributor represents that to its knowledge it has sufficient
-copyright rights in its Contribution, if any, to grant the copyright
-license set forth in this Agreement.
-3. REQUIREMENTS
-A Contributor may choose to distribute the Program in object
-code form under its own license agreement, provided that:
-a) it complies with the terms and conditions of this Agreement;
-and
-b) its license agreement:
-i) effectively disclaims on behalf of all Contributors all warranties
-and conditions, express and implied, including warranties or
-conditions of title and non-infringement, and implied warranties
-or conditions of merchantability and fitness for a particular
-purpose;
-ii) effectively excludes on behalf of all Contributors all liability
-for damages, including direct, indirect, special, incidental
-and consequential damages, such as lost profits;
-iii) states that any provisions which differ from this Agreement
-are offered by that Contributor alone and not by any other party;
-and
-iv) states that source code for the Program is available from
-such Contributor, and informs licensees how to obtain it in a
-reasonable manner on or through a medium customarily used for
-software exchange.
-When the Program is made available in source code form:
-a) it must be made available under this Agreement; and
-b) a copy of this Agreement must be included with each copy of
-the Program.
-Contributors may not remove or alter any copyright notices contained
-within the Program.
-Each Contributor must identify itself as the originator of its
-Contribution, if any, in a manner that reasonably allows subsequent
-Recipients to identify the originator of the Contribution.
-4. COMMERCIAL DISTRIBUTION
-Commercial distributors of software may accept certain responsibilities
-with respect to end users, business partners and the like. While
-this license is intended to facilitate the commercial use of
-the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create
-potential liability for other Contributors. Therefore, if a Contributor
-includes the Program in a commercial product offering, such Contributor
-(&quot;Commercial Contributor&quot;) hereby agrees to defend and indemnify
-every other Contributor (&quot;Indemnified Contributor&quot;) against any
-losses, damages and costs (collectively &quot;Losses&quot;) arising from
-claims, lawsuits and other legal actions brought by a third party
-against the Indemnified Contributor to the extent caused by the
-acts or omissions of such Commercial Contributor in connection
-with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any
-claims or Losses relating to any actual or alleged intellectual
-property infringement. In order to qualify, an Indemnified Contributor
-must: a) promptly notify the Commercial Contributor in writing
-of such claim, and b) allow the Commercial Contributor to control,
-and cooperate with the Commercial Contributor in, the defense
-and any related settlement negotiations. The Indemnified Contributor
-may participate in any such claim at its own expense.
-For example, a Contributor might include the Program in a commercial
-product offering, Product X. That Contributor is then a Commercial
-Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance
-claims and warranties are such Commercial Contributor&apos;s responsibility
-alone. Under this section, the Commercial Contributor would have
-to defend claims against the other Contributors related to those
-performance claims and warranties, and if a court requires any
-other Contributor to pay any damages as a result, the Commercial
-Contributor must pay those damages.
-5. NO WARRANTY
-EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM
-IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS
-OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
-ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
-OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and
-distributing the Program and assumes all risks associated with
-its exercise of rights under this Agreement , including but not
-limited to the risks and costs of program errors, compliance
-with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations.
-6. DISCLAIMER OF LIABILITY
-EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
-NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE
-OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY
-OF SUCH DAMAGES.
-7. GENERAL
-If any provision of this Agreement is invalid or unenforceable
-under applicable law, it shall not affect the validity or enforceability
-of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be
-reformed to the minimum extent necessary to make such provision
-valid and enforceable.
-If Recipient institutes patent litigation against any entity
-(including a cross-claim or counterclaim in a lawsuit) alleging
-that the Program itself (excluding combinations of the Program
-with other software or hardware) infringes such Recipient&apos;s patent(s),
-then such Recipient&apos;s rights granted under Section 2(b) shall
-terminate as of the date such litigation is filed.
-All Recipient&apos;s rights under this Agreement shall terminate if
-it fails to comply with any of the material terms or conditions
-of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If
-all Recipient&apos;s rights under this Agreement terminate, Recipient
-agrees to cease use and distribution of the Program as soon as
-reasonably practicable. However, Recipient&apos;s obligations under
-this Agreement and any licenses granted by Recipient relating
-to the Program shall continue and survive.
-Everyone is permitted to copy and distribute copies of this Agreement,
-but in order to avoid inconsistency the Agreement is copyrighted
-and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including
-revisions) of this Agreement from time to time. No one other
-than the Agreement Steward has the right to modify this Agreement.
-The Eclipse Foundation is the initial Agreement Steward. The
-Eclipse Foundation may assign the responsibility to serve as
-the Agreement Steward to a suitable separate entity. Each new
-version of the Agreement will be given a distinguishing version
-number. The Program (including Contributions) may always be distributed
-subject to the version of the Agreement under which it was received.
-In addition, after a new version of the Agreement is published,
-Contributor may elect to distribute the Program (including its
-Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights
-or licenses to the intellectual property of any Contributor under
-this Agreement, whether expressly, by implication, estoppel or
-otherwise. All rights in the Program not expressly granted under
-this Agreement are reserved.
-This Agreement is governed by the laws of the State of New York
-and the intellectual property laws of the United States of America.
-No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose.
-Each party waives its rights to a jury trial in any resulting
-litigation.
- </license>
-
- <url>
- <update label="Mylar Preview Phase 1" url="http://www.cs.ubc.ca/~mylar/alpha/phase1"/>
- </url>
-
- <includes
- id="org.eclipse.mylar.bugzilla_feature"
- version="0.0.0"/>
-
- <includes
- id="org.eclipse.mylar.monitor_feature"
- version="0.0.0"/>
-
- <requires>
- <import plugin="org.eclipse.ui" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.core.runtime" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.core.resources" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.jdt" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.jdt.core" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.jdt.ui" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.ui.editors" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.jface.text" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.ui.workbench.texteditor" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.search" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.ui.views" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.ui.ide" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.ui.console" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.ui.forms" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.osgi.util" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.osgi.services" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.pde.ui" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.ant.ui" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.ant.core" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.pde.core" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.mylar.core"/>
- <import plugin="org.eclipse.mylar.bugzilla.core"/>
- </requires>
-
- <plugin
- id="org.eclipse.mylar.doc"
- download-size="0"
- install-size="0"
- version="0.3.5.1"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.mylar.java"
- download-size="0"
- install-size="0"
- version="0.3.5.1"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.mylar.ui"
- download-size="0"
- install-size="0"
- version="0.3.5.1"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.mylar.xml"
- download-size="0"
- install-size="0"
- version="0.3.5.1"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.mylar.tasklist"
- download-size="0"
- install-size="0"
- version="0.3.5.1"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.mylar"
- download-size="0"
- install-size="0"
- version="0.3.5.1"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.mylar.bugs"
- download-size="0"
- install-size="0"
- version="0.3.5.1"
- unpack="false"/>
-
-</feature>
diff --git a/org.eclipse.mylyn-feature/license.html b/org.eclipse.mylyn-feature/license.html
deleted file mode 100644
index 3259fb996..000000000
--- a/org.eclipse.mylyn-feature/license.html
+++ /dev/null
@@ -1,73 +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.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>January 28, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
- (COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
- CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE
- OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
- NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
- CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
- (&quot;EPL&quot;). A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
- For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
- modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<p>Content may be apportioned into plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;). A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins and/or Fragments associated with a Feature. Plug-ins and Fragments are located in directories
- named &quot;plugins&quot; and Features are located in directories named &quot;features&quot;.</p>
-
-<p>Features may also include other Features (&quot;Included Features&quot;). Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</p>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
- <li>The top-level (root) directory</li>
- <li>Plug-in and Fragment directories</li>
- <li>Subdirectories of the directory named &quot;src&quot; of certain Plug-ins</li>
- <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot;.
-Such Abouts, Feature Licenses and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
- <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
- <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
- <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
- <li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>
- <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
- <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
- another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
- possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-</body>
-</html>
diff --git a/org.eclipse.mylyn.bugzilla-feature/.project b/org.eclipse.mylyn.bugzilla-feature/.project
deleted file mode 100644
index 72dd862cd..000000000
--- a/org.eclipse.mylyn.bugzilla-feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.mylar.bugzilla-feature</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.pde.FeatureBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.FeatureNature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.mylyn.bugzilla-feature/about.html b/org.eclipse.mylyn.bugzilla-feature/about.html
deleted file mode 100644
index 60ca57b4b..000000000
--- a/org.eclipse.mylyn.bugzilla-feature/about.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
-<!-- saved from url=(0043)http://www.eclipse.org/legal/epl/about.html -->
-<HTML><HEAD><TITLE>About</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-<META content="MSHTML 6.00.2900.2627" name=GENERATOR></HEAD>
-<BODY lang=EN-US>
-<H2>About This Content</H2>
-<P>February 24, 2005</P>
-<H3>License</H3>
-<P>The Eclipse Foundation 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 Eclipse Public License Version 1.0
-("EPL"). A copy of the EPL is available at <A
-href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</A>.
-For purposes of the EPL, "Program" will mean the Content.</P>
-<P>If you did not receive this Content directly from the Eclipse Foundation, the
-Content is being redistributed by another party ("Redistributor") and different
-terms and conditions may apply to your use of any object code in the Content.
-Check the Redistributor's license that was provided with the Content. If no such
-license exists, contact the Redistributor. Unless otherwise indicated below, the
-terms and conditions of the EPL still apply to any source code in the
-Content.</P></BODY></HTML>
diff --git a/org.eclipse.mylyn.bugzilla-feature/build.properties b/org.eclipse.mylyn.bugzilla-feature/build.properties
deleted file mode 100644
index 4e728a03d..000000000
--- a/org.eclipse.mylyn.bugzilla-feature/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2004 - 2005 University Of British Columbia and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# University Of British Columbia - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,\
- license.html,\
- epl-v10.html,\
- about.html
-src.includes = epl-v10.html,\
- feature.xml,\
- license.html,\
- about.html
diff --git a/org.eclipse.mylyn.bugzilla-feature/epl-v10.html b/org.eclipse.mylyn.bugzilla-feature/epl-v10.html
deleted file mode 100644
index ed4b19665..000000000
--- a/org.eclipse.mylyn.bugzilla-feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
- <o:Revision>2</o:Revision>
- <o:TotalTime>3</o:TotalTime>
- <o:Created>2004-03-05T23:03:00Z</o:Created>
- <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
- <o:Pages>4</o:Pages>
- <o:Words>1626</o:Words>
- <o:Characters>9270</o:Characters>
- <o:Lines>77</o:Lines>
- <o:Paragraphs>18</o:Paragraphs>
- <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
- <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
- <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
- {font-family:Tahoma;
- panose-1:2 11 6 4 3 5 4 4 2 4;
- mso-font-charset:0;
- mso-generic-font-family:swiss;
- mso-font-pitch:variable;
- mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
- {mso-style-parent:"";
- margin:0in;
- margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:12.0pt;
- font-family:"Times New Roman";
- mso-fareast-font-family:"Times New Roman";}
-p
- {margin-right:0in;
- mso-margin-top-alt:auto;
- mso-margin-bottom-alt:auto;
- margin-left:0in;
- mso-pagination:widow-orphan;
- font-size:12.0pt;
- font-family:"Times New Roman";
- mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
- {mso-style-name:"Balloon Text";
- margin:0in;
- margin-bottom:.0001pt;
- mso-pagination:widow-orphan;
- font-size:8.0pt;
- font-family:Tahoma;
- mso-fareast-font-family:"Times New Roman";}
-@page Section1
- {size:8.5in 11.0in;
- margin:1.0in 1.25in 1.0in 1.25in;
- mso-header-margin:.5in;
- mso-footer-margin:.5in;
- mso-paper-source:0;}
-div.Section1
- {page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla-feature/feature.xml b/org.eclipse.mylyn.bugzilla-feature/feature.xml
deleted file mode 100644
index b4ccdb334..000000000
--- a/org.eclipse.mylyn.bugzilla-feature/feature.xml
+++ /dev/null
@@ -1,260 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.mylar.bugzilla_feature"
- label="Mylar Bugzilla Client"
- version="0.3.5.1"
- provider-name="University of British Columbia"
- plugin="org.eclipse.mylar.bugzilla.core">
-
- <description>
- Bugzilla Client Plugin
- </description>
-
- <license url="http://www.eclipse.org/legal/epl-v10.html">
- Eclipse Public License - v 1.0
-THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS
-ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE, REPRODUCTION OR
-DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT&apos;S ACCEPTANCE
-OF THIS AGREEMENT.
-1. DEFINITIONS
-&quot;Contribution&quot; means:
-a) in the case of the initial Contributor, the initial code and
-documentation distributed under this Agreement, and
-b) in the case of each subsequent Contributor:
-i) changes to the Program, and
-ii) additions to the Program;
-where such changes and/or additions to the Program originate
-from and are distributed by that particular Contributor. A Contribution
-&apos;originates&apos; from a Contributor if it was added to the Program
-by such Contributor itself or anyone acting on such Contributor&apos;s
-behalf. Contributions do not include additions to the Program
-which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii)
-are not derivative works of the Program.
-&quot;Contributor&quot; means any person or entity that distributes the
-Program.
-&quot;Licensed Patents &quot; mean patent claims licensable by a Contributor
-which are necessarily infringed by the use or sale of its Contribution
-alone or when combined with the Program.
-&quot;Program&quot; means the Contributions distributed in accordance with
-this Agreement.
-&quot;Recipient&quot; means anyone who receives the Program under this
-Agreement, including all Contributors.
-2. GRANT OF RIGHTS
-a) Subject to the terms of this Agreement, each Contributor hereby
-grants Recipient a non-exclusive, worldwide, royalty-free copyright
-license to reproduce, prepare derivative works of, publicly display,
-publicly perform, distribute and sublicense the Contribution
-of such Contributor, if any, and such derivative works, in source
-code and object code form.
-b) Subject to the terms of this Agreement, each Contributor hereby
-grants Recipient a non-exclusive, worldwide, royalty-free patent
-license under Licensed Patents to make, use, sell, offer to sell,
-import and otherwise transfer the Contribution of such Contributor,
-if any, in source code and object code form. This patent license
-shall apply to the combination of the Contribution and the Program
-if, at the time the Contribution is added by the Contributor,
-such addition of the Contribution causes such combination to
-be covered by the Licensed Patents. The patent license shall
-not apply to any other combinations which include the Contribution.
-No hardware per se is licensed hereunder.
-c) Recipient understands that although each Contributor grants
-the licenses to its Contributions set forth herein, no assurances
-are provided by any Contributor that the Program does not infringe
-the patent or other intellectual property rights of any other
-entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement
-of intellectual property rights or otherwise. As a condition
-to exercising the rights and licenses granted hereunder, each
-Recipient hereby assumes sole responsibility to secure any other
-intellectual property rights needed, if any. For example, if
-a third party patent license is required to allow Recipient to
-distribute the Program, it is Recipient&apos;s responsibility to acquire
-that license before distributing the Program.
-d) Each Contributor represents that to its knowledge it has sufficient
-copyright rights in its Contribution, if any, to grant the copyright
-license set forth in this Agreement.
-3. REQUIREMENTS
-A Contributor may choose to distribute the Program in object
-code form under its own license agreement, provided that:
-a) it complies with the terms and conditions of this Agreement;
-and
-b) its license agreement:
-i) effectively disclaims on behalf of all Contributors all warranties
-and conditions, express and implied, including warranties or
-conditions of title and non-infringement, and implied warranties
-or conditions of merchantability and fitness for a particular
-purpose;
-ii) effectively excludes on behalf of all Contributors all liability
-for damages, including direct, indirect, special, incidental
-and consequential damages, such as lost profits;
-iii) states that any provisions which differ from this Agreement
-are offered by that Contributor alone and not by any other party;
-and
-iv) states that source code for the Program is available from
-such Contributor, and informs licensees how to obtain it in a
-reasonable manner on or through a medium customarily used for
-software exchange.
-When the Program is made available in source code form:
-a) it must be made available under this Agreement; and
-b) a copy of this Agreement must be included with each copy of
-the Program.
-Contributors may not remove or alter any copyright notices contained
-within the Program.
-Each Contributor must identify itself as the originator of its
-Contribution, if any, in a manner that reasonably allows subsequent
-Recipients to identify the originator of the Contribution.
-4. COMMERCIAL DISTRIBUTION
-Commercial distributors of software may accept certain responsibilities
-with respect to end users, business partners and the like. While
-this license is intended to facilitate the commercial use of
-the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create
-potential liability for other Contributors. Therefore, if a Contributor
-includes the Program in a commercial product offering, such Contributor
-(&quot;Commercial Contributor&quot;) hereby agrees to defend and indemnify
-every other Contributor (&quot;Indemnified Contributor&quot;) against any
-losses, damages and costs (collectively &quot;Losses&quot;) arising from
-claims, lawsuits and other legal actions brought by a third party
-against the Indemnified Contributor to the extent caused by the
-acts or omissions of such Commercial Contributor in connection
-with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any
-claims or Losses relating to any actual or alleged intellectual
-property infringement. In order to qualify, an Indemnified Contributor
-must: a) promptly notify the Commercial Contributor in writing
-of such claim, and b) allow the Commercial Contributor to control,
-and cooperate with the Commercial Contributor in, the defense
-and any related settlement negotiations. The Indemnified Contributor
-may participate in any such claim at its own expense.
-For example, a Contributor might include the Program in a commercial
-product offering, Product X. That Contributor is then a Commercial
-Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance
-claims and warranties are such Commercial Contributor&apos;s responsibility
-alone. Under this section, the Commercial Contributor would have
-to defend claims against the other Contributors related to those
-performance claims and warranties, and if a court requires any
-other Contributor to pay any damages as a result, the Commercial
-Contributor must pay those damages.
-5. NO WARRANTY
-EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM
-IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS
-OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
-ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
-OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and
-distributing the Program and assumes all risks associated with
-its exercise of rights under this Agreement , including but not
-limited to the risks and costs of program errors, compliance
-with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations.
-6. DISCLAIMER OF LIABILITY
-EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
-NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE
-OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY
-OF SUCH DAMAGES.
-7. GENERAL
-If any provision of this Agreement is invalid or unenforceable
-under applicable law, it shall not affect the validity or enforceability
-of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be
-reformed to the minimum extent necessary to make such provision
-valid and enforceable.
-If Recipient institutes patent litigation against any entity
-(including a cross-claim or counterclaim in a lawsuit) alleging
-that the Program itself (excluding combinations of the Program
-with other software or hardware) infringes such Recipient&apos;s patent(s),
-then such Recipient&apos;s rights granted under Section 2(b) shall
-terminate as of the date such litigation is filed.
-All Recipient&apos;s rights under this Agreement shall terminate if
-it fails to comply with any of the material terms or conditions
-of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If
-all Recipient&apos;s rights under this Agreement terminate, Recipient
-agrees to cease use and distribution of the Program as soon as
-reasonably practicable. However, Recipient&apos;s obligations under
-this Agreement and any licenses granted by Recipient relating
-to the Program shall continue and survive.
-Everyone is permitted to copy and distribute copies of this Agreement,
-but in order to avoid inconsistency the Agreement is copyrighted
-and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including
-revisions) of this Agreement from time to time. No one other
-than the Agreement Steward has the right to modify this Agreement.
-The Eclipse Foundation is the initial Agreement Steward. The
-Eclipse Foundation may assign the responsibility to serve as
-the Agreement Steward to a suitable separate entity. Each new
-version of the Agreement will be given a distinguishing version
-number. The Program (including Contributions) may always be distributed
-subject to the version of the Agreement under which it was received.
-In addition, after a new version of the Agreement is published,
-Contributor may elect to distribute the Program (including its
-Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights
-or licenses to the intellectual property of any Contributor under
-this Agreement, whether expressly, by implication, estoppel or
-otherwise. All rights in the Program not expressly granted under
-this Agreement are reserved.
-This Agreement is governed by the laws of the State of New York
-and the intellectual property laws of the United States of America.
-No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose.
-Each party waives its rights to a jury trial in any resulting
-litigation.
- </license>
-
- <url>
- <update label="Eclipse.org Mylar Update Site" url="http://download.eclipse.org/technology/mylar/update-site/bugzilla"/>
- </url>
-
- <requires>
- <import plugin="org.eclipse.core.resources" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.ui" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.search" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.help" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.help.ui" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.core.runtime" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.ui.ide" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.ui.views" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.jface.text" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.ui.workbench.texteditor" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.ui.editors" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.pde.ui" version="0.0.0" match="greaterOrEqual"/>
- <import plugin="org.eclipse.compare" version="0.0.0" match="greaterOrEqual"/>
- </requires>
-
- <plugin
- id="org.eclipse.mylar.bugzilla.core"
- download-size="0"
- install-size="0"
- version="0.3.5.1"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.mylar.bugzilla.ui"
- download-size="0"
- install-size="0"
- version="0.3.5.1"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.mylar.core"
- download-size="0"
- install-size="0"
- version="0.3.5.1"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.mylar.tasklist"
- download-size="0"
- install-size="0"
- version="0.3.5.1"
- unpack="false"/>
-
-</feature>
diff --git a/org.eclipse.mylyn.bugzilla-feature/license.html b/org.eclipse.mylyn.bugzilla-feature/license.html
deleted file mode 100644
index 3259fb996..000000000
--- a/org.eclipse.mylyn.bugzilla-feature/license.html
+++ /dev/null
@@ -1,73 +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.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>January 28, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
- (COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
- CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE
- OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
- NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
- CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
- (&quot;EPL&quot;). A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
- For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
- modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<p>Content may be apportioned into plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;). A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins and/or Fragments associated with a Feature. Plug-ins and Fragments are located in directories
- named &quot;plugins&quot; and Features are located in directories named &quot;features&quot;.</p>
-
-<p>Features may also include other Features (&quot;Included Features&quot;). Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</p>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
- <li>The top-level (root) directory</li>
- <li>Plug-in and Fragment directories</li>
- <li>Subdirectories of the directory named &quot;src&quot; of certain Plug-ins</li>
- <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot;.
-Such Abouts, Feature Licenses and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
- <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
- <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
- <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
- <li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>
- <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
- <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
- another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
- possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-</body>
-</html>
diff --git a/org.eclipse.mylyn.bugzilla.core/.classpath b/org.eclipse.mylyn.bugzilla.core/.classpath
deleted file mode 100644
index a68b3ff0f..000000000
--- a/org.eclipse.mylyn.bugzilla.core/.classpath
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
- <accessrules>
- <accessrule kind="accessible" pattern="**/internal/**"/>
- <accessrule kind="nonaccessible" pattern="**/System"/>
- </accessrules>
- </classpathentry>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.mylyn.bugzilla.core/.cvsignore b/org.eclipse.mylyn.bugzilla.core/.cvsignore
deleted file mode 100644
index bc8b2d4cb..000000000
--- a/org.eclipse.mylyn.bugzilla.core/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-bin
-bugzilla.jar
-doc.zip
diff --git a/org.eclipse.mylyn.bugzilla.core/.project b/org.eclipse.mylyn.bugzilla.core/.project
deleted file mode 100644
index d9ab28171..000000000
--- a/org.eclipse.mylyn.bugzilla.core/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.mylar.bugzilla</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 1c193742e..000000000
--- a/org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Thu Jun 30 08:31:59 PDT 2005
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.pde.prefs b/org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index f3432cf99..000000000
--- a/org.eclipse.mylyn.bugzilla.core/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Wed Jul 20 11:41:37 EDT 2005
-compilers.p.deprecated=1
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/org.eclipse.mylyn.bugzilla.core/META-INF/MANIFEST.MF b/org.eclipse.mylyn.bugzilla.core/META-INF/MANIFEST.MF
deleted file mode 100644
index 5d8cdf1d5..000000000
--- a/org.eclipse.mylyn.bugzilla.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,24 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Bugzilla Core Plug-in
-Bundle-SymbolicName: org.eclipse.mylar.bugzilla.core; singleton:=true
-Bundle-Version: 0.3.5.1
-Bundle-Activator: org.eclipse.mylar.bugzilla.core.BugzillaPlugin
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.core.resources,
- org.eclipse.compare,
- org.eclipse.search,
- org.eclipse.ui.ide,
- org.eclipse.update.core,
- org.eclipse.update.ui
-Eclipse-AutoStart: true
-Bundle-Vendor: University of British Columbia
-Bundle-ClassPath: bugzilla-core.jar
-Export-Package: org.eclipse.mylar.bugzilla.core,
- org.eclipse.mylar.bugzilla.core.compare,
- org.eclipse.mylar.bugzilla.core.favorites,
- org.eclipse.mylar.bugzilla.core.internal,
- org.eclipse.mylar.bugzilla.core.offline,
- org.eclipse.mylar.bugzilla.core.search
diff --git a/org.eclipse.mylyn.bugzilla.core/about.html b/org.eclipse.mylyn.bugzilla.core/about.html
deleted file mode 100644
index 60ca57b4b..000000000
--- a/org.eclipse.mylyn.bugzilla.core/about.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
-<!-- saved from url=(0043)http://www.eclipse.org/legal/epl/about.html -->
-<HTML><HEAD><TITLE>About</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-<META content="MSHTML 6.00.2900.2627" name=GENERATOR></HEAD>
-<BODY lang=EN-US>
-<H2>About This Content</H2>
-<P>February 24, 2005</P>
-<H3>License</H3>
-<P>The Eclipse Foundation 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 Eclipse Public License Version 1.0
-("EPL"). A copy of the EPL is available at <A
-href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</A>.
-For purposes of the EPL, "Program" will mean the Content.</P>
-<P>If you did not receive this Content directly from the Eclipse Foundation, the
-Content is being redistributed by another party ("Redistributor") and different
-terms and conditions may apply to your use of any object code in the Content.
-Check the Redistributor's license that was provided with the Content. If no such
-license exists, contact the Redistributor. Unless otherwise indicated below, the
-terms and conditions of the EPL still apply to any source code in the
-Content.</P></BODY></HTML>
diff --git a/org.eclipse.mylyn.bugzilla.core/build.properties b/org.eclipse.mylyn.bugzilla.core/build.properties
deleted file mode 100644
index 14337764d..000000000
--- a/org.eclipse.mylyn.bugzilla.core/build.properties
+++ /dev/null
@@ -1,34 +0,0 @@
-###############################################################################
-# Copyright (c) 2003 - 2005 University Of British Columbia and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# University Of British Columbia - initial API and implementation
-###############################################################################
-bin.includes = plugin.xml,\
- toc.xml,\
- Icons/,\
- doc.zip,\
- xercesImpl.jar,\
- META-INF/,\
- docs/,\
- bugzilla_contexts.xml,\
- about.html,\
- icons/,\
- bugzilla-core.jar
-src.includes = META-INF/,\
- Icons/,\
- docs/,\
- plugin.xml,\
- src/,\
- toc.xml,\
- xercesImpl.jar,\
- bugzilla_contexts.xml,\
- about.html,\
- icons/
-jars.compile.order = bugzilla-core.jar
-source.bugzilla-core.jar = src/
-output.bugzilla-core.jar = bin/
diff --git a/org.eclipse.mylyn.bugzilla.core/plugin.xml b/org.eclipse.mylyn.bugzilla.core/plugin.xml
deleted file mode 100644
index 364a83782..000000000
--- a/org.eclipse.mylyn.bugzilla.core/plugin.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<?eclipse version="3.0"?>
-<plugin>
-
- <extension
- id="searchHit"
- name="Bugzilla Search Match"
- point="org.eclipse.core.resources.markers">
- <super type="org.eclipse.search.searchmarker"/>
- <attribute name="id"/>
- <attribute name="href"/>
- <attribute name="description"/>
- <attribute name="label"/>
- <attribute name="severity"/>
- <attribute name="priority"/>
- <attribute name="platform"/>
- <attribute name="status"/>
- <attribute name="result"/>
- <attribute name="owner"/>
- <attribute name="query"/>
- </extension>
-
- <extension point="org.eclipse.ui.preferencePages">
- <page
- name="Bugzilla"
- class="org.eclipse.mylar.bugzilla.core.BugzillaPreferences"
- id="org.eclipse.mylar.bugzilla.bugzillaPreferences"
- category="org.eclipse.mylar.ui.preferences"/>
- </extension>
-</plugin>
-
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/Attribute.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/Attribute.java
deleted file mode 100644
index da69b5491..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/Attribute.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core;
-
-import java.io.Serializable;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-/**
- * Class representing a Bugzilla report attribute that can be changed on
- * the server.
- */
-public class Attribute implements Serializable
-{
- /** Automatically generated serialVersionUID */
- private static final long serialVersionUID = 3257009873370757424L;
-
- private boolean hidden = false;
-
- /** Attribute name */
- private String name;
-
- /** Name of the option used when updating the attribute on the server */
- private String parameterName;
-
- /** Legal values of the attribute */
- private LinkedHashMap<String, String> optionValues;
-
- /** Attribute's value (input field or selected option; value that is saved or from the server) */
- private String value;
-
- /** Attributes new Value (value chosen in submit editor) */
- private String newValue;
-
- /**
- * Constructor
- *
- * @param name The name of the attribute
- */
- public Attribute(String name)
- {
- // initialize the name and its legal values
- this.name = name;
- optionValues = new LinkedHashMap<String, String>();
- }
-
- /**
- * Get the attribute's name
- *
- * @return The name of the attribute
- */
- public String getName()
- {
- return name;
- }
-
- /**
- * Get name of the option used when updating the attribute on the server
- *
- * @return The name of the option for server updates
- */
- public String getParameterName()
- {
- return parameterName;
- }
-
- /**
- * Get whether the attribute can be edited by the used
- *
- * @return <code>true</code> if the attribute can be edited by the user
- */
- public boolean isEditable()
- {
- return optionValues.size() > 0;
- }
-
- /**
- * Get the legal values for the option
- *
- * @return The <code>Map</code> of legal values for the option.
- */
- public Map<String, String> getOptionValues()
- {
- return optionValues;
- }
-
- /**
- * Get the value of the attribute
- *
- * @return A <code>String</code> of the attributes value
- */
- public String getValue()
- {
- return value;
- }
-
- /**
- * Set the value of the attribute
- *
- * @param value The new value of the attribute
- */
- public void setValue(String value)
- {
- this.value = value;
- newValue = value;
- }
-
- /**
- * Set the new value of the attribute
- *
- * @param newVal The new value of the attribute
- */
- public void setNewValue(String newVal)
- {
- newValue = newVal;
- }
-
- /**
- * Get the new value for the attribute
- *
- * @return The new value
- */
- public String getNewValue()
- {
- return newValue;
- }
-
- /**
- * Sets the name of the option used when updating the attribute on the server
- *
- * @param parameterName The name of the option when updating from the server
- */
- public void setParameterName(String parameterName)
- {
- this.parameterName = parameterName;
- }
-
- /**
- * Adds an attribute option value
- *
- * @param readableValue The value displayed on the screen
- * @param parameterValue The option value used when sending the form to the server
- */
- public void addOptionValue(String readableValue, String parameterValue)
- {
- optionValues.put(readableValue, parameterValue);
- }
-
- /**
- * Determine if the field was hidden or not
- *
- * @return True if the field was hidden
- */
- public boolean isHidden()
- {
- return hidden;
- }
-
- /**
- * Set whether the field was hidden in the bug
- *
- * @param b Whether the field was hidden or not
- */
- public void setHidden(boolean b)
- {
- hidden = b;
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugPost.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugPost.java
deleted file mode 100644
index 38ca657b1..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugPost.java
+++ /dev/null
@@ -1,332 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core;
-
-
-import java.io.BufferedOutputStream;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.StringReader;
-import java.io.UnsupportedEncodingException;
-import java.net.HttpURLConnection;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLConnection;
-import java.net.URLEncoder;
-import java.security.KeyManagementException;
-import java.security.NoSuchAlgorithmException;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import javax.security.auth.login.LoginException;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.mylar.bugzilla.core.internal.HtmlStreamTokenizer;
-import org.eclipse.mylar.bugzilla.core.internal.HtmlTag;
-import org.eclipse.mylar.bugzilla.core.internal.HtmlStreamTokenizer.Token;
-
-
-/**
- *
- * @author Shawn Minto
- *
- * Class to handle the positing of a bug
- */
-public class BugPost {
-
- /** The fields that are to be changed/maintained */
- Map<String, String> fields = new HashMap<String, String>();
-
- /** The url to post the bug to */
- URL anURL;
-
- /** The prefix for how to find the bug number from the return */
- String prefix;
-
- /** The postfix for how to find the bug number from the return */
- String postfix1;
-
- /** An alternate postfix for how to find the bug number from the return */
- String postfix2;
-
- String error = null;
-
- /**
- * Add a value to be posted to the bug
- * @param key The key for the value to be added
- * @param value The value to be added
- */
- public void add(String key, String value) {
- try {
- fields.put(key, URLEncoder.encode(value == null ? "" : value, "UTF-8"));
- }
- catch (UnsupportedEncodingException e) {
- /*
- * Do nothing. Every implementation of the Java platform is required
- * to support the standard charset "UTF-8"
- */
- }
- }
-
- /**
- * Set the url that the bug is supposed to be posted to
- * @param urlString The url to post the bug to
- */
- public void setURL(String urlString) throws MalformedURLException {
- anURL = new URL(urlString);
- }
-
- /**
- * Post the bug to the bugzilla server
- * @return The result of the responses
- * @throws BugzillaException
- * @throws PossibleBugzillaFailureException
- */
- public String post() throws BugzillaException, LoginException, PossibleBugzillaFailureException {
- return post(false);
- }
-
- /**
- * Post the bug to the bugzilla server
- * @param isDebug Whether we are debugging or not - if it is debug, we get the respose printed to std out
- * @throws BugzillaException
- * @throws LoginException
- * @throws PossibleBugzillaFailureException
- */
- public String post(boolean isDebug) throws BugzillaException, LoginException, PossibleBugzillaFailureException {
- BufferedOutputStream out = null;
- BufferedReader in = null;
-
- try {
- // connect to the bugzilla server
- URLConnection cntx = BugzillaPlugin.getDefault().getUrlConnection(anURL);
- if(cntx == null || !(cntx instanceof HttpURLConnection))
- return null;
-
- HttpURLConnection postConnection = (HttpURLConnection) cntx;
-
- // set the connection method
- postConnection.setRequestMethod("POST");
- postConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
- // get the url for the update with all of the changed values
- byte [] body = getPostBody().getBytes();
- postConnection.setRequestProperty("Content-Length", String.valueOf(body.length));
-
- // allow outgoing streams and open a stream to post to
- postConnection.setDoOutput(true);
-
- out = new BufferedOutputStream(postConnection.getOutputStream());
-
- // print out debug methods if we are debugging
- if (isDebug) {
- System.out.println("SENDING: ");
- System.out.println("URL: " + anURL);
-
- System.out.println("Body: \n" + new String(body));
- }
-
- // write the data and close the stream
- out.write(body);
- out.flush();
-
- int responseCode = postConnection.getResponseCode();
- if (responseCode != HttpURLConnection.HTTP_OK &&
- responseCode != HttpURLConnection.HTTP_CREATED) {
- throw new BugzillaException("Server returned HTTP error: " + responseCode + " - " + postConnection.getResponseMessage());
- }
-
- // open a stream to receive response from bugzilla
- in = new BufferedReader(new InputStreamReader(postConnection.getInputStream()));
- String result = null;
-
- if (isDebug)
- System.out.println("RECEIVING:");
- String aString = in.readLine();
-
- boolean possibleFailure = true;
- error = "";
-
- while (aString != null) {
- if (isDebug)
- System.out.println(aString);
- error += aString==null?"":aString + "\n";
-
- // check if we have run into an error
- if(result == null && (aString.toLowerCase().indexOf("check e-mail") != -1 || aString.toLowerCase().indexOf("error") != -1))
- {
- throw new LoginException("Bugzilla login information incorrect");
- } else if( aString.toLowerCase().matches(".*bug\\s+processed.*")){
- possibleFailure = false;
- }
-
- // get the bug number if it is required
- if (prefix != null && postfix1 != null && postfix2 != null && result == null) {
- int startIndex = aString.toLowerCase().indexOf(prefix.toLowerCase());
- if (startIndex > -1) {
- startIndex = startIndex + prefix.length();
- int stopIndex = aString.toLowerCase().indexOf(postfix1.toLowerCase(), startIndex);
- if(stopIndex == -1)
- stopIndex = aString.toLowerCase().indexOf(postfix2.toLowerCase(), startIndex);
- if (stopIndex > -1) {
- result = (aString.substring(startIndex, stopIndex)).trim();
- possibleFailure = false;
- // need this to get the whole error message
-// if (!isDebug) {
-// break;
-// }
- }
- }
- }
- aString = in.readLine();
- }
-
- if((result == null || result.compareTo("") == 0) && (prefix != null && postfix1 != null && postfix2 != null)){
- throw new PossibleBugzillaFailureException("Could not find bug number for new bug.");
- } else if(possibleFailure) {
- throw new PossibleBugzillaFailureException("Could not find \"Bug Processed\".");
- }
-
- // set the error to null if we dont think that there was one
- error = null;
-
- // return the bug number
- return result;
- } catch (IOException e) {
- throw new BugzillaException("An exception occurred while submitting the bug: " + e.getMessage(), e);
- } catch (KeyManagementException e)
- {
- throw new BugzillaException("Could not POST form. Communications error: " + e.getMessage(), e);
- } catch (NoSuchAlgorithmException e)
- {
- throw new BugzillaException("Could not POST form. Communications error: " + e.getMessage(), e);
- }
- finally
- {
- try{
- if(in != null)
- in.close();
- if(out != null)
- out.close();
-
- }catch(IOException e)
- {
- BugzillaPlugin.log(new Status(IStatus.ERROR, IBugzillaConstants.PLUGIN_ID,IStatus.ERROR,"Problem posting the bug", e));
- }
- }
- }
-
-
- /**
- * Get the url that contains the attributes to be posted
- * @return The url for posting
- */
- private String getPostBody() {
- String postBody = "";
-
- // go through all of the attributes and add them to the body of the post
- Iterator<Map.Entry<String, String>> anIterator = fields.entrySet().iterator();
- while (anIterator.hasNext()) {
- Map.Entry<String, String> anEntry = anIterator.next();
- postBody = postBody + anEntry.getKey() + "=" + anEntry.getValue();
- if (anIterator.hasNext())
- postBody = postBody + "&";
- }
- return postBody;
- }
-
- /**
- * Gets the prefix
- * @return Returns a String
- */
- public String getPrefix() {
- return prefix;
- }
-
- /**
- * Sets the prefix
- * @param prefix The prefix to set
- */
- public void setPrefix(String prefix) {
- this.prefix = prefix;
- }
-
- /**
- * Gets the postfix
- * @return Returns a String
- */
- public String getPostfix1() {
- return postfix1;
- }
-
- /**
- * Sets the postfix
- * @param postfix The postfix to set
- */
- public void setPostfix1(String postfix) {
- this.postfix1 = postfix;
- }
-
- /**
- * Gets the alternate postfix
- * @return Returns a String
- */
- public String getPostfix2() {
- return postfix2;
- }
-
- /**
- * Sets the alternate postfix
- * @param postfix The postfix to set
- */
- public void setPostfix2(String postfix) {
- this.postfix2 = postfix;
- }
-
- public String getError() {
- return parseError();
- }
-
- /**
- * remove all of the hyperlinks and erroneous info
- * @return
- */
- private String parseError() {
- String newError = "";
- try{
- HtmlStreamTokenizer tokenizer = new HtmlStreamTokenizer(new StringReader(error), null);
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
- if(token.getType() == Token.TAG && ((HtmlTag)(token.getValue())).getTagType() == HtmlTag.Type.A){
-
- } else if(token.getType() == Token.TAG && ((HtmlTag)(token.getValue())).getTagType() == HtmlTag.Type.FORM ){
- for (Token token2 = tokenizer.nextToken(); token2.getType() != Token.EOF; token2 = tokenizer.nextToken())
- {
- if(token2.getType() == Token.TAG)
- {
- HtmlTag tag = (HtmlTag)token2.getValue();
- if(tag.getTagType() == HtmlTag.Type.FORM && tag.isEndTag())
- break;
-
- }
- }
- } else {
- newError += token.getWhitespace().toString() + token.getValue();
- }
- }
- } catch(Exception e){
- newError = error;
- }
- return newError;
- }
-}
-
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugReport.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugReport.java
deleted file mode 100644
index e125e9a40..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugReport.java
+++ /dev/null
@@ -1,410 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-
-/**
- * A bug report entered in Bugzilla.
- */
-public class BugReport implements Serializable, IBugzillaBug {
- /**
- * Comment for <code>serialVersionUID</code>
- */
- private static final long serialVersionUID = 3258693199936631348L;
-
- /** Bug id */
- protected final int id;
-
- /** The bug's server */
- protected final String server;
-
- /** Description of the bug */
- protected String description;
-
- /** Creation timestamp */
- protected Date created;
-
- /** The bugs valid keywords */
- protected List<String> validKeywords;
-
- /** The operations that can be done on the bug*/
- protected List<Operation> operations = new ArrayList<Operation>();
-
- /** Bug attributes (status, resolution, etc.) */
- protected HashMap<String, Attribute> attributes = new HashMap<String, Attribute>();
-
- /** The keys for the bug attributes */
- protected ArrayList<String> attributeKeys = new ArrayList<String>();
-
- /** A list of comments */
- protected ArrayList<Comment> comments = new ArrayList<Comment>();
-
- /** The value for the new comment to add (text that is saved)*/
- protected String newComment = "";
-
- /** The new value for the new comment to add (text from submit editor)*/
- protected String newNewComment = "";
-
- /** CC list */
- protected HashSet<String> cc = new HashSet<String>();
-
- /** The operation that was selected to do to the bug */
- protected Operation selectedOperation = null;
-
- /** Whether or not this bug report is saved offline. */
- protected boolean savedOffline = false;
-
- /**
- * Constructor
- * @param id The id of the bug
- * @param server The server that this bug is being created for
- */
- public BugReport(int id, String server) {
- this.id = id;
- this.server = server;
- }
-
- /**
- * Get the bugs id
- * @return The bugs id
- */
- public int getId() {
- return id;
- }
-
- public String getServer() {
- return server;
- }
-
- public String getLabel() {
- return "Bug #" + id;
- }
-
- /**
- * Get the bugs description
- * @return The description of the bug
- */
- public String getDescription() {
- return description;
- }
-
- /**
- * Set the description of the bug
- * @param description The description to set the bug to have
- */
- public void setDescription(String description) {
- this.description = description;
- }
-
- /**
- * Get the summary for the bug
- * @return The bugs summary
- */
- public String getSummary() {
- if(getAttribute("Summary") == null){
- BugzillaPlugin.log(new Status(IStatus.ERROR, IBugzillaConstants.PLUGIN_ID, IStatus.ERROR, "WE SHOULD NEVER GET HERE " + id, null));
- return "";
- }
- return getAttribute("Summary").getValue();
- }
-
- /**
- * Set the summary of the bug
- * @param summary The summary to set the bug to have
- */
- public void setSummary(String summary) {
- if( this.getAttribute("Summary") == null ){
- Attribute a = new Attribute("Summary");
- a.setValue(summary);
- addAttribute(a);
- }
- else
- getAttribute("Summary").setValue(summary);
- }
-
- /**
- * Get the date that the bug was created
- * @return The bugs creation date
- */
- public Date getCreated() {
- return created;
- }
-
- /**
- * Set the bugs creation date
- * @param created The date the the bug was created
- */
- public void setCreated(Date created) {
- this.created = created;
- }
-
- public Attribute getAttribute(String key) {
- return attributes.get(key);
- }
-
- /**
- * Get the list of attributes for this bug
- * @return An <code>ArrayList</code> of the bugs attributes
- */
- public List<Attribute> getAttributes() {
- // create an array list to store the attributes in
- ArrayList<Attribute> attributeEntries = new ArrayList<Attribute>(attributeKeys.size());
-
- // go through each of the attribute keys
- for (Iterator<String> it = attributeKeys.iterator(); it.hasNext();) {
- // get the key for the attribute
- String key = it.next();
-
- // get the attribute and add it to the list
- Attribute attribute = attributes.get(key);
- attributeEntries.add(attribute);
- }
-
- // return the list of attributes for the bug
- return attributeEntries;
- }
-
- public Attribute getAttributeForKnobName(String knobName){
- for (Iterator<String> it = attributeKeys.iterator(); it.hasNext();) {
- String key = it.next();
-
- Attribute attribute = attributes.get(key);
- if(attribute != null && attribute.getParameterName() != null && attribute.getParameterName().compareTo(knobName) == 0){
- return attribute;
- }
- }
-
- return null;
- }
-
-
- /**
- * Add an attribute to the bug
- * @param attribute The attribute to add to the bug
- */
- public void addAttribute(Attribute attribute) {
- if (!attributes.containsKey(attribute.getName())) {
- // add the attributes key to the list if it doesn't exist
- attributeKeys.add(attribute.getName());
- }
-
- // put the value of the attribute into the map, using its name as the key
- attributes.put(attribute.getName(), attribute);
- }
-
- /**
- * Get the comments posted on the bug
- * @return A list of comments for the bug
- */
- public ArrayList<Comment> getComments() {
- return comments;
- }
-
- /**
- * Add a comment to the bug
- * @param comment The comment to add to the bug
- */
- public void addComment(Comment comment) {
- Comment preceding = null;
- if (comments.size() > 0) {
- // if there are some comments, get the last comment and set the next
- // value to be the new comment
- preceding = comments.get(comments.size() - 1);
- preceding.setNext(comment);
- }
- // set the comments previous value to the preceeding one
- comment.setPrevious(preceding);
-
- // add the comment to the comment list
- comments.add(comment);
- }
-
- /**
- * Get the person who reported the bug
- * @return The person who reported the bug
- */
- public String getReporter() {
- return getAttribute("Reporter").getValue();
- }
-
- /**
- * Get the person to whom this bug is assigned
- * @return The person who is assigned to this bug
- */
- public String getAssignedTo() {
- return getAttribute("Assigned To").getValue();
- }
-
- /**
- * Get the resolution of the bug
- * @return The resolution of the bug
- */
- public String getResolution() {
- return getAttribute("Resolution").getValue();
- }
-
- /**
- * Get the status of the bug
- * @return The bugs status
- */
- public String getStatus() {
- return getAttribute("Status").getValue();
- }
-
- /**
- * Get the keywords for the bug
- * @return The keywords for the bug
- */
- public List<String> getKeywords() {
- return validKeywords;
- }
-
- /**
- * Set the keywords for the bug
- * @param keywords The keywords to set the bug to have
- */
- public void setKeywords(List<String> keywords) {
- this.validKeywords = keywords;
- }
-
- /**
- * Get the set of addresses in the CC list
- * @return A <code>Set</code> of addresses in the CC list
- */
- public Set<String> getCC() {
- return cc;
- }
-
- /**
- * Add an email to the bugs CC list
- * @param email The email address to add to the CC list
- */
- public void addCC(String email) {
- cc.add(email);
- }
-
- /**
- * Remove an address from the bugs CC list
- * @param email the address to be removed from the CC list
- * @return <code>true</code> if the email is in the set and it was removed
- */
- public boolean removeCC(String email) {
- return cc.remove(email);
- }
- /**
- * Get the new comment that is to be added to the bug
- * @return The new comment
- */
- public String getNewComment() {
- return newComment;
- }
-
- /**
- * Set the new comment that will be added to the bug
- * @param newComment The new comment to add to the bug
- */
- public void setNewComment(String newComment) {
- this.newComment = newComment;
- newNewComment = newComment;
- }
-
- /**
- * Get the new value of the new NewComment
- * @return the new value of the new NewComment.
- */
- public String getNewNewComment() {
- return newNewComment;
- }
-
-
- /**
- * Set the new value of the new NewComment
- * @param newNewComment The new value of the new NewComment.
- */
- public void setNewNewComment(String newNewComment) {
- this.newNewComment = newNewComment;
- }
-
-
- /**
- * Get all of the operations that can be done to the bug
- * @return The operations that can be done to the bug
- */
- public List<Operation> getOperations() {
- return operations;
- }
-
- /**
- * Add an operation to the bug
- * @param o The operation to add
- */
- public void addOperation(Operation o) {
- operations.add(o);
- }
-
- /**
- * Get an operation from the bug based on its display name
- * @param displayText The display text for the operation
- * @return The operation that has the display text
- */
- public Operation getOperation(String displayText) {
- Iterator<Operation> itr = operations.iterator();
- while (itr.hasNext()) {
- Operation o = itr.next();
- String opName = o.getOperationName();
- opName = opName.replaceAll("</.*>", "");
- opName = opName.replaceAll("<.*>", "");
- if (opName.equals(displayText))
- return o;
- }
- return null;
- }
-
- /**
- * Set the selected operation
- * @param o The selected operation
- */
- public void setSelectedOperation(Operation o) {
- selectedOperation = o;
- }
-
- /**
- * Get the selected operation
- * @return The selected operation
- */
- public Operation getSelectedOperation() {
- return selectedOperation;
- }
-
- public boolean isSavedOffline() {
- return savedOffline;
- }
-
- public boolean isLocallyCreated() {
- return false;
- }
-
- public void setOfflineState(boolean newOfflineState) {
- savedOffline = newOfflineState;
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugzillaAuthenticator.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugzillaAuthenticator.java
deleted file mode 100644
index 3d83b56bb..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugzillaAuthenticator.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core;
-
-import java.net.Authenticator;
-import java.net.InetAddress;
-import java.net.PasswordAuthentication;
-
-import org.eclipse.update.internal.ui.security.Authentication;
-import org.eclipse.update.internal.ui.security.UserValidationDialog;
-
-/**
- * Update Manager Authenticator Sadly there can only be one registered per VM
- */
-public class BugzillaAuthenticator extends Authenticator {
- //private Authentication savedPasswordAuthentication;
-
- /*
- * @see Authenticator#getPasswordAuthentication()
- */
- protected PasswordAuthentication getPasswordAuthentication() {
- // String protocol = getRequestingProtocol();
- String host = getRequestingHost(); // can be null;
- InetAddress address = getRequestingSite(); // can be null;
- // int port = getRequestingPort();
- String prompt = getRequestingPrompt(); // realm or message, not documented that can be null
- // String scheme = getRequestingScheme(); // not documented that can be null
-
- String hostString = host;
- if (hostString == null && address != null) {
- address.getHostName();
- }
- if (hostString == null) {
- hostString = ""; //$NON-NLS-1$
- }
- String promptString = prompt;
- if (prompt == null) {
- promptString = ""; //$NON-NLS-1$
- }
-
- Authentication auth = UserValidationDialog.getAuthentication(
- hostString, promptString);
- if (auth != null)
- return new PasswordAuthentication(auth.getUser(), auth
- .getPassword().toCharArray());
- else
- return null;
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugzillaException.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugzillaException.java
deleted file mode 100644
index f4d951317..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugzillaException.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core;
-
-import java.io.PrintStream;
-import java.io.PrintWriter;
-
-public class BugzillaException extends Exception {
-
- /** Automatically generated serialVersionUID */
- private static final long serialVersionUID = 3257849887386449974L;
-
- private Throwable cause;
-
- /**
- * Constructor for BugzillaException.
- */
- public BugzillaException() {
- super();
- }
-
- /**
- * Constructor for BugzillaException.
- * @param detailMessage
- */
- public BugzillaException(String detailMessage) {
- super(detailMessage);
- }
-
- public BugzillaException(String detailMessage,Throwable cause) {
- super(detailMessage);
- this.cause = cause;
- }
-
- public BugzillaException(Throwable cause) {
- this.cause = cause;
- }
-
- @Override
- public synchronized void printStackTrace(PrintStream err) {
- super.printStackTrace(err);
- if (cause != null) {
- err.println("\n--- Cause was:");
- cause.printStackTrace(err);
- }
- }
-
- @Override
- public synchronized void printStackTrace(PrintWriter err) {
- super.printStackTrace(err);
- if (cause != null) {
- err.println("\n--- Cause was:");
- cause.printStackTrace(err);
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugzillaPlugin.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugzillaPlugin.java
deleted file mode 100644
index c1f1cae51..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugzillaPlugin.java
+++ /dev/null
@@ -1,347 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core;
-
-import java.io.IOException;
-import java.net.Authenticator;
-import java.net.InetSocketAddress;
-import java.net.Proxy;
-import java.net.URL;
-import java.net.URLConnection;
-import java.net.Proxy.Type;
-import java.security.KeyManagementException;
-import java.security.NoSuchAlgorithmException;
-import java.util.List;
-
-import javax.net.ssl.HttpsURLConnection;
-import javax.net.ssl.SSLContext;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.mylar.bugzilla.core.favorites.FavoritesFile;
-import org.eclipse.mylar.bugzilla.core.internal.ProductConfiguration;
-import org.eclipse.mylar.bugzilla.core.internal.ProductConfigurationFactory;
-import org.eclipse.mylar.bugzilla.core.offline.OfflineReportsFile;
-import org.eclipse.mylar.bugzilla.core.search.IBugzillaResultEditorMatchAdapter;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.update.internal.core.UpdateCore;
-import org.eclipse.update.internal.ui.UpdateUI;
-import org.osgi.framework.BundleContext;
-
-
-/**
- * @author kvesik
- *
- * Created on Mar 26, 2003
- */
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class BugzillaPlugin extends AbstractUIPlugin {
-
- /** Singleton instance of the plug-in */
- private static BugzillaPlugin plugin;
-
- /** The file that contains all of the bugzilla favorites */
- private FavoritesFile favoritesFile;
-
- /** The file that contains all of the offline bug reports */
- private OfflineReportsFile offlineReportsFile;
-
- /** Product configuration for the current server */
- private ProductConfiguration productConfiguration;
-
- /**
- * Constructor
- * @param descriptor passed in when the plugin is loaded
- */
- public BugzillaPlugin()
- {
- super();
- }
-
- Authenticator authenticator = null;
-
- /**
- * Get the singleton instance for the plugin
- *
- * @return The instance of the plugin
- */
- public static BugzillaPlugin getDefault()
- {
- return plugin;
- }
-
- @Override
- public void start(BundleContext context) throws Exception {
- super.start(context);
- plugin = this;
- plugin = this;
-
- authenticator = UpdateUI.getDefault().getAuthenticator();
- if(authenticator == null)
- authenticator = new BugzillaAuthenticator();
- Authenticator.setDefault(authenticator);
-
- readFavoritesFile();
- readOfflineReportsFile();
- readCachedProductConfiguration();
- }
-
- @Override
- public void stop(BundleContext context) throws Exception {
- plugin = null;
- super.stop(context);
- }
-
-
- /**
- * Get the favorites file contatining the favorites
- *
- * @return The FavoritesFile
- */
- public FavoritesFile getFavorites()
- {
- return favoritesFile;
- }
-
- /**
- * Get the OfflineReports file contatining the offline bug reports
- *
- * @return The OfflineReportsFile
- */
- public OfflineReportsFile getOfflineReports()
- {
- return offlineReportsFile;
- }
-
- @Override
- protected void initializeDefaultPreferences(IPreferenceStore store)
- {
- BugzillaPreferences.initDefaults(store);
- }
-
- /**
- * Get the name of the bugzilla server
- *
- * @return A string containing the prefered name of the bugzilla server
- */
- public String getServerName()
- {
- return plugin.getPreferenceStore().getString(IBugzillaConstants.BUGZILLA_SERVER);
- }
-
- /**
- * Get the most recent query key for the preferences
- *
- * @return A string containing the most recent query key
- */
- public static String getMostRecentQuery()
- {
- return plugin.getPreferenceStore().getString(IBugzillaConstants.MOST_RECENT_QUERY);
- }
-
- /**
- * Returns the current product configuration or <code>null</code> if it is unknown.
- */
- public ProductConfiguration getProductConfiguration() {
- return productConfiguration;
- }
-
- /**
- * Sets the current product configuration.
- */
- protected void setProductConfiguration(ProductConfiguration productConfiguration) {
- this.productConfiguration = productConfiguration;
- }
-
- /**
- * Reads cached product configuration and stores it in the <code>productConfiguration</code> field.
- */
- private void readFavoritesFile() {
- IPath favoritesPath = getFavoritesFile();
-
- try {
- favoritesFile = new FavoritesFile(favoritesPath.toFile());
- } catch (Exception e) {
- logAndShowExceptionDetailsDialog(e, "occurred while restoring saved Bugzilla favorites.", "Bugzilla Favorites Error");
- }
- }
-
- /**
- * Reads cached product configuration and stores it in the <code>productConfiguration</code> field.
- */
- private void readOfflineReportsFile() {
- IPath offlineReportsPath = getOfflineReportsFile();
-
- try {
- offlineReportsFile = new OfflineReportsFile(offlineReportsPath.toFile());
- } catch (Exception e) {
- logAndShowExceptionDetailsDialog(e, "occurred while restoring saved offline Bugzilla reports.", "Bugzilla Offline Reports Error");
- offlineReportsPath.toFile().delete();
- }
- }
-
- /**
- * Returns the path to the file cacheing the query favorites.
- */
- private IPath getFavoritesFile() {
- IPath stateLocation = Platform.getPluginStateLocation(BugzillaPlugin.getDefault());
- IPath configFile = stateLocation.append("favorites");
- return configFile;
- }
-
- /**
- * Returns the path to the file cacheing the offline bug reports.
- */
- private IPath getOfflineReportsFile() {
- IPath stateLocation = Platform.getPluginStateLocation(BugzillaPlugin.getDefault());
- IPath configFile = stateLocation.append("offlineReports");
- return configFile;
- }
-
- /**
- * Reads cached product configuration and stores it in the <code>productConfiguration</code> field.
- */
- private void readCachedProductConfiguration() {
- IPath configFile = getProductConfigurationCachePath();
-
- try {
- productConfiguration = ProductConfigurationFactory.getInstance().readConfiguration(configFile.toFile());
- } catch (IOException ex) {
- try {
- log(ex);
- productConfiguration = ProductConfigurationFactory.getInstance().getConfiguration(getServerName());
- } catch (IOException e) {
- log(e);
- MessageDialog.openInformation(null, "Bugzilla product attributes check",
- "An error occurred while restoring saved Bugzilla product attributes: \n\n" +
- ex.getMessage() +
- "\n\nUpdating them from the server also caused an error:\n\n" +
- e.getMessage() +
- "\n\nCheck the server URL in Bugzila preferences.\n" +
- "Offline submission of new bugs will be disabled until valid product attributes have been loaded.");
- }
- }
- }
-
- /**
- * Returns the path to the file cacheing the product configuration.
- */
- protected IPath getProductConfigurationCachePath() {
- IPath stateLocation = Platform.getPluginStateLocation(BugzillaPlugin.getDefault());
- IPath configFile = stateLocation.append("productConfig");
- return configFile;
- }
-
- /**
- * Convenience method for logging statuses to the plugin log
- *
- * @param status the status to log
- */
- public static void log(IStatus status)
- {
- getDefault().getLog().log(status);
- }
-
- /**
- * Convenience method for logging exceptions to the plugin log
- * @param e the exception to log
- */
- public static void log(Exception e) {
- log(new Status(Status.ERROR, IBugzillaConstants.PLUGIN_ID, 0, e.getMessage(), e));
- }
-
-
- /**
- * Returns the path to the file caching bug reports created while offline.
- */
- protected IPath getCachedBugReportPath(){
- IPath stateLocation = Platform.getPluginStateLocation(BugzillaPlugin.getDefault());
- IPath bugFile = stateLocation.append("bugReports");
- return bugFile;
- }
-
- /**
- * Logs the exception and shows an error dialog with exception details shown in a "Details" pane.
- * @param e
- * exception to be shown in the details pane
- * @param message
- * message to be used in the dialog
- * @param title
- * error dialog's title
- */
- public IStatus logAndShowExceptionDetailsDialog(Exception e, String message, String title) {
- MultiStatus status = new MultiStatus( IBugzillaConstants.PLUGIN_ID,
- IStatus.ERROR, e.getClass().toString()
- + " " + message + "\n\n"
- + "Click Details or see log for more information.", e);
- Status s = new Status(IStatus.ERROR, IBugzillaConstants.PLUGIN_ID, IStatus.ERROR, e.getClass().toString() + ": ", e);
- status.add(s);
- String error = (e.getMessage() == null)?e.getClass().toString():e.getMessage();
- s = new Status (IStatus.ERROR, IBugzillaConstants.PLUGIN_ID, IStatus.ERROR, error, e);
- status.add(s);
- log(status);
- ErrorDialog.openError(null, title, null, status);
- return status;
- }
-
- /**
- * @return a list of the BugReports saved offline.
- */
- public List<IBugzillaBug> getSavedBugReports() {
- return offlineReportsFile.elements();
- }
-
- public URLConnection getUrlConnection(URL url) throws IOException, NoSuchAlgorithmException, KeyManagementException{
- SSLContext ctx = SSLContext.getInstance("TLS");
-
- javax.net.ssl.TrustManager[] tm = new javax.net.ssl.TrustManager[]{new TrustAll()};
- ctx.init(null, tm, null);
- HttpsURLConnection.setDefaultSSLSocketFactory(ctx.getSocketFactory());
-
- Proxy p = Proxy.NO_PROXY;
- if (UpdateCore.getPlugin().getPluginPreferences().getBoolean(UpdateCore.HTTP_PROXY_ENABLE)) {
- String proxyHost = UpdateCore.getPlugin().getPluginPreferences().getString(UpdateCore.HTTP_PROXY_HOST);
- int proxyPort = UpdateCore.getPlugin().getPluginPreferences().getInt(UpdateCore.HTTP_PROXY_PORT);
-
- InetSocketAddress sockAddr = new InetSocketAddress(proxyHost, proxyPort);
- p = new Proxy(Type.HTTP, sockAddr);
- }
- URLConnection cntx = url.openConnection(p);
- return cntx;
- }
-
- private static IBugzillaResultEditorMatchAdapter resultEditorMatchAdapter = null;
-
- public static IBugzillaResultEditorMatchAdapter getResultEditorMatchAdapter() {
- return resultEditorMatchAdapter;
- }
-
- public static void setResultEditorMatchAdapter(IBugzillaResultEditorMatchAdapter resultEditorMatchAdapter) {
- BugzillaPlugin.resultEditorMatchAdapter = resultEditorMatchAdapter;
- }
-
- public boolean refreshOnStartUpEnabled() {
- return getPreferenceStore().getBoolean(IBugzillaConstants.REFRESH_QUERY);
- }
-
- public int getMaxResults() {
- return getPreferenceStore().getInt(IBugzillaConstants.MAX_RESULTS);
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugzillaPreferences.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugzillaPreferences.java
deleted file mode 100644
index 9f07294f6..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugzillaPreferences.java
+++ /dev/null
@@ -1,604 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core;
-
-import java.io.IOException;
-import java.net.HttpURLConnection;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import javax.security.auth.login.LoginException;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.preference.BooleanFieldEditor;
-import org.eclipse.jface.preference.FieldEditorPreferencePage;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.IntegerFieldEditor;
-import org.eclipse.jface.preference.StringFieldEditor;
-import org.eclipse.mylar.bugzilla.core.internal.ProductConfiguration;
-import org.eclipse.mylar.bugzilla.core.internal.ProductConfigurationFactory;
-import org.eclipse.mylar.bugzilla.core.search.BugzillaQueryPageParser;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-
-
-/**
- * @version 1.0
- * @author G. Murphy
- */
-
-/**
- * The class that deals with the preferences page in eclipse
- */
-public class BugzillaPreferences
- extends FieldEditorPreferencePage
- implements IWorkbenchPreferencePage {
-
- /** Secure http server prefix */
- private static final String httpsPrefix = "https://";
-
- /** http prefix */
- private static final String httpPrefix = "http://";
-
- /** The text to put into the label for the bugzilla server text box */
- private static final String bugzillaServerLabel = "Bugzilla Server: ";
-
- /** Field editor for the bugzilla server in the preferences page */
- private StringFieldEditor bugzillaServer;
-
- private static final String bugzillaUserLabel = "Bugzilla User Name: ";
-
- private static final String bugzillaPasswordLabel = "Bugzilla Password: ";
-
- private static final String bugzilla218Label = "Using Bugzilla 2.18 (default is 2.16)";
-
- private static final String bugzillaMaxResultsLabel = "Maximum returned results: ";
-
- private BooleanFieldEditor bugzilla218;
-
- private StringFieldEditor bugzillaUser;
-
- private MyStringFieldEditor bugzillaPassword;
-
- private IntegerFieldEditor maxResults;
-
- private BooleanFieldEditor refreshQueries;
-
- /**
- * Constructor for the preferences page
- */
- public BugzillaPreferences() {
- super(GRID);
-
- // set the preference store for this preference page
- setPreferenceStore(BugzillaPlugin.getDefault().getPreferenceStore());
- }
-
- @Override
- public void createControl(Composite parent) {
- super.createControl(parent);
- }
-
- @Override
- protected void createFieldEditors() {
- // create a new field editor for the bugzilla server
- bugzillaServer = new StringFieldEditor(
- IBugzillaConstants.BUGZILLA_SERVER, bugzillaServerLabel,
- StringFieldEditor.UNLIMITED, getFieldEditorParent()) {
-
- @Override
- protected boolean doCheckState() {
- return checkServerName(getStringValue());
- }
- };
-
- // set the error message for if the server name check fails
- bugzillaServer.setErrorMessage(
- "Server path must be a valid http(s):// url");
-
- bugzillaUser = new StringFieldEditor("", bugzillaUserLabel,
- StringFieldEditor.UNLIMITED, getFieldEditorParent());
- bugzillaPassword = new MyStringFieldEditor("", bugzillaPasswordLabel,
- StringFieldEditor.UNLIMITED, getFieldEditorParent());
- bugzillaPassword.getTextControl().setEchoChar('*');
-
- maxResults = new IntegerFieldEditor(IBugzillaConstants.MAX_RESULTS, bugzillaMaxResultsLabel, getFieldEditorParent());
-
- bugzilla218 = new BooleanFieldEditor(IBugzillaConstants.IS_218, bugzilla218Label, BooleanFieldEditor.DEFAULT, getFieldEditorParent());
-
- refreshQueries = new BooleanFieldEditor(IBugzillaConstants.REFRESH_QUERY, "Automatically refresh Bugzilla reports and queries on startup",
- BooleanFieldEditor.DEFAULT, getFieldEditorParent());
-
- // add the field editor to the preferences page
- addField(bugzillaServer);
- addField(bugzillaUser);
- addField(bugzillaPassword);
- addField(maxResults);
- addField(bugzilla218);
- addField(refreshQueries);
-
-
- // put the password and user name values into the field editors
- getCachedData();
- bugzillaUser.setStringValue(user);
- bugzillaPassword.setStringValue(password);
- }
-
- /**
- * Initialize the preferences page with the default values
- *
- * @param store The preferences store that is used to store the information about the preferences page
- */
- public static void initDefaults(IPreferenceStore store) {
- // set the default values for the bugzilla server and the
- // most recent query
- getCachedData();
-
- store.setDefault(IBugzillaConstants.BUGZILLA_SERVER,IBugzillaConstants.DEFAULT_BUGZILLA_SERVER);
- store.setDefault(IBugzillaConstants.MOST_RECENT_QUERY, "");
- store.setDefault(IBugzillaConstants.IS_218, true);
- store.setDefault(IBugzillaConstants.REFRESH_QUERY, false);
- store.setDefault(IBugzillaConstants.MAX_RESULTS, 100);
-
- // set the default query options for the bugzilla search
- setDefaultQueryOptions();
- }
-
- @Override
- protected void performDefaults() {
- super.performDefaults();
-
- /*
- * set user and password to the new default values
- * and then give these values to storeCache() to update the keyring
- */
- user = bugzillaUser.getStringValue();
- password = bugzillaPassword.getStringValue();
- storeCache(user, password, true);
- }
-
- @Override
- public boolean performOk() {
- BugzillaPlugin.getDefault().getPreferenceStore().setValue(IBugzillaConstants.IS_218, bugzilla218.getBooleanValue());
- BugzillaPlugin.getDefault().getPreferenceStore().setValue(IBugzillaConstants.REFRESH_QUERY, refreshQueries.getBooleanValue());
- BugzillaPlugin.getDefault().getPreferenceStore().setValue(IBugzillaConstants.MAX_RESULTS, maxResults.getIntValue());
- String oldBugzillaServer = BugzillaPlugin.getDefault().getServerName();
- ProductConfiguration configuration = null;
-
- try {
-
- // append "/show_bug.cgi" to url provided for cases where the connection is successful,
- // but full path hasn't been specified (i.e. http://hipikat.cs.ubc.ca:8081)
- URL serverURL = new URL(bugzillaServer.getStringValue() + "/show_bug.cgi");
-
- URLConnection cntx = BugzillaPlugin.getDefault().getUrlConnection(serverURL);
- if(cntx == null || !(cntx instanceof HttpURLConnection))
- return false;
-
- HttpURLConnection serverConnection = (HttpURLConnection)cntx;
-
- serverConnection.connect();
-
- int responseCode = serverConnection.getResponseCode();
-
- if(responseCode != HttpURLConnection.HTTP_OK)
- throw new BugzillaException("No Bugzilla server detected at " + bugzillaServer.getStringValue() + ".");
-
- try {
- configuration = ProductConfigurationFactory.getInstance().getConfiguration(bugzillaServer.getStringValue());
- } catch (IOException ex) {
- MessageDialog.openInformation(null, "Bugzilla query parameters check",
- "An error occurred while pre-fetching valid search attributes: \n\n" +
- ex.getClass().getName() + ": " + ex.getMessage() +
- "\n\nOffline submission of new bugs will be disabled.");
- }
- }
-
- catch (Exception e) {
- if (!MessageDialog.openQuestion(null, "Bugzilla Server Error", "Error validating Bugzilla Server.\n\n"
- + e.getMessage()
- + "\n\nKeep specified server location anyway?"))
- {
- bugzillaServer.setStringValue(oldBugzillaServer);
- return false;
- }
- }
-
- // save the preferences that were changed
- //BugzillaPlugin.getDefault().savePluginPreferences();
-
- bugzillaServer.store();
-
- // store the username and password from the editor field
- user = bugzillaUser.getStringValue();
- password = bugzillaPassword.getStringValue();
- storeCache(user, password, true);
-
- BugzillaPlugin.getDefault().setProductConfiguration(configuration);
- IPath configFile = BugzillaPlugin.getDefault().getProductConfigurationCachePath();
- if (configuration != null) {
-
- try {
- ProductConfigurationFactory.getInstance().writeConfiguration(configuration, configFile.toFile());
- } catch (IOException e) {
- BugzillaPlugin.log(e);
- configFile.toFile().delete();
- }
- }
- else {
- configFile.toFile().delete();
- }
- return true;
- }
-
- @Override
- public boolean performCancel() {
-// refreshQueries.setSelection(getPreferenceStore().getBoolean(MylarTasksPlugin.REFRESH_QUERIES));
- return true;
- }
- /**
- * Determine if the name starts with https:// or http://
- *
- * @param name The string that needs to be checked
- * @return <code>true</code> if the name starts with https:// or http://, otherwise <code>false</code>
- */
- private boolean checkServerName(String name) {
- if (name.startsWith(httpsPrefix) || name.startsWith(httpPrefix))
- return true;
- return false;
- }
-
- @Override
- protected void initialize() {
- super.initialize();
-
- // put the password and user name values into the field editors
- getCachedData();
- bugzillaUser.setStringValue(user);
- bugzillaPassword.setStringValue(password);
- }
-
- public void init(IWorkbench workbench) {
- // Don't need to do anything here with the workbench
- }
-
- /**
- * Hack private class to make StringFieldEditor.refreshValidState()
- * a publicly acessible method.
- *
- * @see org.eclipse.jface.preference.StringFieldEditor#refreshValidState()
- */
- private static class MyStringFieldEditor extends StringFieldEditor {
- public MyStringFieldEditor(String name, String labelText, int style,
- Composite parent) {
- super(name, labelText, style, parent);
- }
-
- @Override
- public void refreshValidState() {
- super.refreshValidState();
- }
-
- @Override
- public Text getTextControl() {
- return super.getTextControl();
- }
-
- }
-
- /**
- * Update all of the query options for the bugzilla search page
- *
- * @param monitor A reference to a progress monitor
- */
- public static void updateQueryOptions(IProgressMonitor monitor)
- throws LoginException {
- // make a new page parser so that we can get the information from the server
- BugzillaQueryPageParser parser = new BugzillaQueryPageParser(monitor);
- if (!parser.wasSuccessful())
- return;
-
- // get the preferences store so that we can change the data in it
- IPreferenceStore prefs = BugzillaPlugin.getDefault().getPreferenceStore();
-
- // get the new values for the status field and increment the status monitor
- prefs.setValue(IBugzillaConstants.STATUS_VALUES,
- queryOptionsToString(parser.getStatusValues()));
- monitor.worked(1);
-
- // get the new values for the preselected status values and increment the status monitor
- prefs.setValue(IBugzillaConstants.PRESELECTED_STATUS_VALUES,
- queryOptionsToString(parser.getPreselectedStatusValues()));
- monitor.worked(1);
-
- // get the new values for the resolution field and increment the status monitor
- prefs.setValue(IBugzillaConstants.RESOLUTION_VALUES,
- queryOptionsToString(parser.getResolutionValues()));
- monitor.worked(1);
-
- // get the new values for the severity field and increment the status monitor
- prefs.setValue(IBugzillaConstants.SEVERITY_VALUES,
- queryOptionsToString(parser.getSeverityValues()));
- monitor.worked(1);
-
- // get the new values for the priority field and increment the status monitor
- prefs.setValue(IBugzillaConstants.PRIORITY_VALUES,
- queryOptionsToString(parser.getPriorityValues()));
- monitor.worked(1);
-
- // get the new values for the hardware field and increment the status monitor
- prefs.setValue(IBugzillaConstants.HARDWARE_VALUES,
- queryOptionsToString(parser.getHardwareValues()));
- monitor.worked(1);
-
- // get the new values for the OS field and increment the status monitor
- prefs.setValue(IBugzillaConstants.OS_VALUES,
- queryOptionsToString(parser.getOSValues()));
- monitor.worked(1);
-
- // get the new values for the product field and increment the status monitor
- prefs.setValue(IBugzillaConstants.PRODUCT_VALUES,
- queryOptionsToString(parser.getProductValues()));
- monitor.worked(1);
-
- // get the new values for the component field and increment the status monitor
- prefs.setValue(IBugzillaConstants.COMPONENT_VALUES,
- queryOptionsToString(parser.getComponentValues()));
- monitor.worked(1);
-
- // get the new values for the version field and increment the status monitor
- prefs.setValue(IBugzillaConstants.VERSION_VALUES,
- queryOptionsToString(parser.getVersionValues()));
- monitor.worked(1);
-
- // get the new values for the target field and increment the status monitor
- prefs.setValue(IBugzillaConstants.TARGET_VALUES,
- queryOptionsToString(parser.getTargetValues()));
- monitor.worked(1);
- }
-
- /**
- * Set the default query options for the bugzilla search
- */
- private static void setDefaultQueryOptions() {
- // get the preferences store for the bugzilla preferences
- IPreferenceStore prefs = BugzillaPlugin.getDefault().getPreferenceStore();
-
- // get the default status values from the store and set them as the default options
- prefs.setDefault(IBugzillaConstants.STATUS_VALUES,
- queryOptionsToString(IBugzillaConstants.DEFAULT_STATUS_VALUES));
-
- // get the default preselected status values from the store and set them as the default options
- prefs.setDefault(IBugzillaConstants.PRESELECTED_STATUS_VALUES,
- queryOptionsToString(IBugzillaConstants.DEFAULT_PRESELECTED_STATUS_VALUES));
-
- // get the default resolution values from the store and set them as the default options
- prefs.setDefault(IBugzillaConstants.RESOLUTION_VALUES,
- queryOptionsToString(IBugzillaConstants.DEFAULT_RESOLUTION_VALUES));
-
- // get the default severity values from the store and set them as the default options
- prefs.setDefault(IBugzillaConstants.SEVERITY_VALUES,
- queryOptionsToString(IBugzillaConstants.DEFAULT_SEVERITY_VALUES));
-
- // get the default priority values from the store and set them as the default options
- prefs.setDefault(IBugzillaConstants.PRIORITY_VALUES,
- queryOptionsToString(IBugzillaConstants.DEFAULT_PRIORITY_VALUES));
-
- // get the default hardware values from the store and set them as the default options
- prefs.setDefault(IBugzillaConstants.HARDWARE_VALUES,
- queryOptionsToString(IBugzillaConstants.DEFAULT_HARDWARE_VALUES));
-
- // get the default os values from the store and set them as the default options
- prefs.setDefault(IBugzillaConstants.OS_VALUES,
- queryOptionsToString(IBugzillaConstants.DEFAULT_OS_VALUES));
-
- // get the default product values from the store and set them as the default options
- prefs.setDefault(IBugzillaConstants.PRODUCT_VALUES,
- queryOptionsToString(IBugzillaConstants.DEFAULT_PRODUCT_VALUES));
-
- // get the default component values from the store and set them as the default options
- prefs.setDefault(IBugzillaConstants.COMPONENT_VALUES,
- queryOptionsToString(IBugzillaConstants.DEFAULT_COMPONENT_VALUES));
-
- // get the default version values from the store and set them as the default options
- prefs.setDefault(IBugzillaConstants.VERSION_VALUES,
- queryOptionsToString(IBugzillaConstants.DEFAULT_VERSION_VALUES));
-
- // get the default target values from the store and set them as the default options
- prefs.setDefault(IBugzillaConstants.TARGET_VALUES,
- queryOptionsToString(IBugzillaConstants.DEFAULT_TARGET_VALUES));
- }
-
- /**
- * Turn the array of query options into a string separated by a '!'
- *
- * @param array A string array of query values to be turned into a string
- * @return The string containing the query options in the array
- */
- private static String queryOptionsToString(String[] array) {
- // make a new string buffer and go through each element in the array
- StringBuffer buffer = new StringBuffer();
- for (int i = 0; i < array.length; i++) {
- // append the new value to the end and add a '!' as a delimiter
- buffer.append(array[i]);
- buffer.append("!");
- }
-
- // return the buffer converted to a string
- return buffer.toString();
- }
-
- /**
- * Take a string of query options and convert it to an array
- *
- * @param values A string of query options delimited by a '!'
- * @return A string array containing the query values
- */
- public static String[] queryOptionsToArray(String values) {
- // create a new string buffer and array list
- StringBuffer buffer = new StringBuffer();
- List<String> options = new ArrayList<String>();
-
- // make the string into a character array
- char[] chars = values.toCharArray();
-
- // go through each of the characters in the character array
- for (int i = 0; i < chars.length; i++) {
- if (chars[i] == '!') {
- // if the character is the delimiting value add the buffer to the list
- // and reinitialize it
- options.add(buffer.toString());
- buffer = new StringBuffer();
- } else {
- // if it is a regular character, just add it to the string buffer
- buffer.append(chars[i]);
- }
- }
-
- // create a new string array with the same size as the array list
- String[] array = new String[options.size()];
-
- // put each element from the list into the array
- for (int j = 0; j < options.size(); j++)
- array[j] = options.get(j);
- return array;
- }
-
- /**
- * Get the password and user name from the keyring
- *
- */
- @SuppressWarnings("unchecked")
- private static void getCachedData() {
- // get the map containing the password and username
- Map<String, String> map = Platform.getAuthorizationInfo(FAKE_URL, "Bugzilla", AUTH_SCHEME);
-
- // get the information from the map and save it
- if (map != null) {
- String username = map.get(INFO_USERNAME);
-
- if (username != null)
- user = username;
- else
- user = new String("");
-
- String pwd = map.get(INFO_PASSWORD);
-
- if (pwd != null)
- password = pwd;
- else
- password = new String("");
-
- return;
- }
-
- // if the map was null, set the username and password to be null
- user = new String("");
- password = new String("");
- }
-
- /**
- * Gets the bugzilla user name from the preferences
- *
- * @return The string containing the user name
- */
- public static String getUserName() {
- getCachedData();
- return user;
- }
-
- /**
- * Get whether we are dealing with Bugzilla 2.18 or not
- * @return true if it is 218
- */
- public static boolean is218(){
- return BugzillaPlugin.getDefault().getPreferenceStore().getBoolean(IBugzillaConstants.IS_218);
- }
-
- /**
- * Gets the bugzilla password from the preferences
- *
- * @return The string containing the password
- */
- public static String getPassword() {
- getCachedData();
- return password;
- }
-
- /**
- * store the password and username in the keyring
- *
- * @param username The user name to store
- * @param storePassword The password to store
- * @param createIfAbsent Whether to create the map if it doesn't exist or not
- */
- @SuppressWarnings("unchecked")
- private static void storeCache(String username, String storePassword,
- boolean createIfAbsent) {
- // put the password into the Platform map
- Map<String, String> map = Platform.getAuthorizationInfo(FAKE_URL, "Bugzilla", AUTH_SCHEME);
-
- // if the map doesn't exist, see if we can create a new one
- if (map == null) {
- if (!createIfAbsent)
- return;
- map = new java.util.HashMap<String, String>(10);
- }
-
- // add the username and password to the map
- if (username != null)
- map.put(INFO_USERNAME, username);
- if (storePassword != null)
- map.put(INFO_PASSWORD, storePassword);
-
- try {
- // write the map to the keyring
- Platform.addAuthorizationInfo(FAKE_URL, "Bugzilla", AUTH_SCHEME, map);
- } catch (CoreException e) {
- BugzillaPlugin.log(e.getStatus());
- }
- }
-
- private static String user;
-
- private static String password;
-
- public static final String INFO_PASSWORD = "org.eclipse.team.cvs.core.password"; //$NON-NLS-1$
-
- public static final String INFO_USERNAME = "org.eclipse.team.cvs.core.username"; //$NON-NLS-1$
-
- public static final String AUTH_SCHEME = "";
-
- public static final URL FAKE_URL;
-
- static {
- URL temp = null;
- try {
- temp = new URL("http://" + IBugzillaConstants.PLUGIN_ID);
- } catch (MalformedURLException e) {
- BugzillaPlugin.log(new Status(IStatus.WARNING, IBugzillaConstants.PLUGIN_ID,IStatus.OK,"Bad temp server url: BugzillaPreferences", e));
- }
- FAKE_URL = temp;
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugzillaRepository.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugzillaRepository.java
deleted file mode 100644
index 2c498421a..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugzillaRepository.java
+++ /dev/null
@@ -1,418 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.UnsupportedEncodingException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLConnection;
-import java.net.URLEncoder;
-import java.security.KeyManagementException;
-import java.security.NoSuchAlgorithmException;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.security.auth.login.LoginException;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.mylar.bugzilla.core.internal.BugParser;
-import org.eclipse.mylar.bugzilla.core.internal.NewBugParser;
-import org.eclipse.mylar.bugzilla.core.internal.ProductParser;
-import org.eclipse.mylar.bugzilla.core.offline.OfflineReportsFile;
-
-
-/**
- * Singleton class that creates <code>BugReport</code> objects by fetching
- * bug's state and contents from the Bugzilla server.
- */
-public class BugzillaRepository
-{
-
- /**
- * Test method.
- */
- public static void main(String[] args) throws Exception {
- instance =
- new BugzillaRepository(BugzillaPlugin.getDefault().getServerName() + "/long_list.cgi?buglist=");
- BugReport bug = instance.getBug(16161);
- System.out.println("Bug " + bug.getId() + ": " + bug.getSummary());
- for (Iterator<Attribute> it = bug.getAttributes().iterator(); it.hasNext();) {
- Attribute attribute = it.next();
- System.out.println(attribute.getName() + ": " + attribute.getValue());
- }
- System.out.println(bug.getDescription());
- for (Iterator<Comment> it = bug.getComments().iterator(); it.hasNext();) {
- Comment comment = it.next();
- System.out.println(comment.getAuthorName() + "<" + comment.getAuthor() + "> (" + comment.getCreated() + ")");
- System.out.print(comment.getText());
- System.out.println();
- }
- }
-
- /** URL of the Bugzilla server */
- private static String bugzillaUrl;
-
- /** singleton instance */
- private static BugzillaRepository instance;
-
- /**
- * Constructor
- * @param bugzillaUrl - the url of the bugzilla repository
- */
- private BugzillaRepository(String bugzillaUrl)
- {
- BugzillaRepository.bugzillaUrl = bugzillaUrl;
- }
-
- /**
- * Get the singleton instance of the <code>BugzillaRepository</code>
- * @return The instance of the repository
- */
- public synchronized static BugzillaRepository getInstance()
- {
- if (instance == null)
- {
- // if the instance hasn't been created yet, create one
- instance = new BugzillaRepository(
- BugzillaPlugin.getDefault().getServerName());
- }
-
- // fix bug 58 by updating url if it changes
- if(! BugzillaRepository.bugzillaUrl.equals(BugzillaPlugin.getDefault().getServerName()))
- {
- BugzillaRepository.bugzillaUrl = BugzillaPlugin.getDefault().getServerName();
- }
-
- return instance;
- }
-
- /**
- * Get a bug from the server
- * @param id - the id of the bug to get
- * @return - a <code>BugReport</code> for the selected bug or null if it doesn't exist
- * @throws IOException
- */
- public BugReport getBug(int id) throws IOException, MalformedURLException, LoginException
- {
-
- BufferedReader in = null;
- try {
-
- // create a new input stream for getting the bug
-
- String url = bugzillaUrl + "/show_bug.cgi?id=" + id;
-
- // allow the use to only see the operations that they can do to a bug if they have
- // their user name and password in the preferences
- if(BugzillaPreferences.getUserName() != null && !BugzillaPreferences.getUserName().equals("") && BugzillaPreferences.getPassword() != null && !BugzillaPreferences.getPassword().equals(""))
- {
- /*
- * The UnsupportedEncodingException exception for
- * URLEncoder.encode() should not be thrown, since every
- * implementation of the Java platform is required to support
- * the standard charset "UTF-8"
- */
- url += "&GoAheadAndLogIn=1&Bugzilla_login=" + URLEncoder.encode(BugzillaPreferences.getUserName(), "UTF-8") + "&Bugzilla_password=" + URLEncoder.encode(BugzillaPreferences.getPassword(), "UTF-8");
- }
-
- URL bugUrl = new URL(url);
- URLConnection cntx = BugzillaPlugin.getDefault().getUrlConnection(bugUrl);
- if(cntx != null){
- InputStream input = cntx.getInputStream();
- if(input != null) {
- in = new BufferedReader(new InputStreamReader(input));
-
- // get the actual bug fron the server and return it
- BugReport bug = BugParser.parseBug(in, id, BugzillaPlugin.getDefault().getServerName(), BugzillaPreferences.is218(), BugzillaPreferences.getUserName(), BugzillaPreferences.getPassword());
- return bug;
- }
- }
- // TODO handle the error
- return null;
- }
- catch (MalformedURLException e) {
- throw e;
- }
- catch (IOException e) {
- throw e;
- }
- catch(LoginException e)
- {
- throw e;
- }
- catch(Exception e) {
- // throw an exception if there is a problem reading the bug from the server
- throw new IOException(e.getMessage());
- }
- finally
- {
- try{
- if(in != null)
- in.close();
- }catch(IOException e)
- {
- BugzillaPlugin.log(new Status(IStatus.ERROR, IBugzillaConstants.PLUGIN_ID,IStatus.ERROR,"Problem closing the stream", e));
- }
- }
- }
-
- /**
- * Get a bug from the server.
- * If a bug with the given id is saved offline, the offline version is returned instead.
- * @param id - the id of the bug to get
- * @return - a <code>BugReport</code> for the selected bug or null if it doesn't exist
- * @throws IOException, MalformedURLException, LoginException
- */
- public BugReport getCurrentBug(int id) throws MalformedURLException, LoginException, IOException {
- // Look among the offline reports for a bug with the given id.
- OfflineReportsFile reportsFile = BugzillaPlugin.getDefault().getOfflineReports();
- int offlineId = reportsFile.find(id);
-
- // If an offline bug was found, return it if possible.
- if (offlineId != -1) {
- IBugzillaBug bug = reportsFile.elements().get(offlineId);
- if (bug instanceof BugReport) {
- return (BugReport)bug;
- }
- }
-
- // If a suitable offline report was not found, try to get one from the server.
- return getBug(id);
- }
-
- /**
- * Get the list of products when creating a new bug
- * @return The list of valid products a bug can be logged against
- * @throws IOException
- */
- public List<String> getProductList() throws IOException, LoginException, Exception
- {
- BufferedReader in = null;
- try
- {
- // connect to the bugzilla server
- String urlText = "";
-
- // use the usename and password to get into bugzilla if we have it
- if(BugzillaPreferences.getUserName() != null && !BugzillaPreferences.getUserName().equals("") && BugzillaPreferences.getPassword() != null && !BugzillaPreferences.getPassword().equals(""))
- {
- /*
- * The UnsupportedEncodingException exception for
- * URLEncoder.encode() should not be thrown, since every
- * implementation of the Java platform is required to support
- * the standard charset "UTF-8"
- */
- urlText += "?GoAheadAndLogIn=1&Bugzilla_login=" + URLEncoder.encode(BugzillaPreferences.getUserName(), "UTF-8") + "&Bugzilla_password=" + URLEncoder.encode(BugzillaPreferences.getPassword(), "UTF-8");
- }
-
- URL url = new URL(bugzillaUrl + "/enter_bug.cgi"+urlText);
-
- URLConnection cntx = BugzillaPlugin.getDefault().getUrlConnection(url);
- if(cntx != null){
- InputStream input = cntx.getInputStream();
- if(input != null) {
-
- // create a new input stream for getting the bug
- in = new BufferedReader(new InputStreamReader(input));
-
- return new ProductParser(in).getProducts();
- }
- }
- return null;
- }
- finally
- {
- try{
- if(in != null)
- in.close();
- }catch(IOException e)
- {
- BugzillaPlugin.log(new Status(IStatus.ERROR, IBugzillaConstants.PLUGIN_ID,IStatus.ERROR,"Problem closing the stream", e));
- }
- }
- }
-
- /**
- * Get the attribute values for a new bug
- * @param nbm A reference to a NewBugModel to store all of the data
- * @throws Exception
- */
- public void getnewBugAttributes(NewBugModel nbm, boolean getProd) throws Exception
- {
- BufferedReader in = null;
- try
- {
- // create a new input stream for getting the bug
- String prodname = URLEncoder.encode(nbm.getProduct(), "UTF-8");
-
- String url = bugzillaUrl + "/enter_bug.cgi";
-
- // use the proper url if we dont know the product yet
- if(!getProd)
- url += "?product=" + prodname + "&";
- else
- url += "?";
-
- // add the password and username to the url so that bugzilla logs us in
- /*
- * The UnsupportedEncodingException exception for
- * URLEncoder.encode() should not be thrown, since every
- * implementation of the Java platform is required to support
- * the standard charset "UTF-8"
- */
- url += "&GoAheadAndLogIn=1&Bugzilla_login=" + URLEncoder.encode(BugzillaPreferences.getUserName(), "UTF-8") + "&Bugzilla_password=" + URLEncoder.encode(BugzillaPreferences.getPassword(), "UTF-8");
-
- URL bugUrl = new URL(url);
- URLConnection cntx = BugzillaPlugin.getDefault().getUrlConnection(bugUrl);
- if(cntx != null){
- InputStream input = cntx.getInputStream();
- if(input != null) {
- in = new BufferedReader(new InputStreamReader(input));
-
- new NewBugParser(in).parseBugAttributes(nbm, getProd);
- }
- }
-
- } catch(Exception e) {
-
- if ( e instanceof KeyManagementException || e instanceof NoSuchAlgorithmException || e instanceof IOException ){
- if(MessageDialog.openQuestion(null, "Bugzilla Connect Error", "Unable to connect to Bugzilla server.\n" +
- "Bug report will be created offline and saved for submission later.")){
- nbm.setConnected(false);
- getProdConfigAttributes(nbm);
- }
- else
- throw new Exception("Bug report will not be created.");
- }
- else
- throw e;
- }
- finally
- {
- try{
- if(in != null)
- in.close();
- }catch(IOException e)
- {
- BugzillaPlugin.log(new Status(IStatus.ERROR, IBugzillaConstants.PLUGIN_ID,IStatus.ERROR,"Problem closing the stream", e));
- }
- }
- }
-
- /**
- * Get the bugzilla url that the repository is using
- * @return A <code>String</code> containing the url of the bugzilla server
- */
- public static String getURL()
- {
- return bugzillaUrl;
- }
-
-
- /** Method to get attributes from ProductConfiguration if unable to connect
- * to Bugzilla server
- * @param model - the NewBugModel to store the attributes
- */
- public void getProdConfigAttributes(NewBugModel model){
-
- HashMap<String, Attribute> attributes = new HashMap<String, Attribute>();
-
- // ATTRIBUTE: Severity
- Attribute a = new Attribute("Severity");
- a.setParameterName("bug_severity");
- // get optionValues from ProductConfiguration
- String[] optionValues = BugzillaPlugin.getDefault().getProductConfiguration().getSeverities();
- // add option values from ProductConfiguration to Attribute optionValues
- for( int i=0; i<optionValues.length; i++ ){
- a.addOptionValue(optionValues[i], optionValues[i]);
- }
- // add Attribute to model
- attributes.put("severites", a);
-
- // ATTRIBUTE: OS
- a = new Attribute("OS");
- a.setParameterName("op_sys");
- optionValues = BugzillaPlugin.getDefault().getProductConfiguration().getOSs();
- for( int i=0; i<optionValues.length; i++ ){
- a.addOptionValue(optionValues[i], optionValues[i]);
- }
- attributes.put("OSs", a);
-
- // ATTRIBUTE: Platform
- a = new Attribute("Platform");
- a.setParameterName("rep_platform");
- optionValues = BugzillaPlugin.getDefault().getProductConfiguration().getPlatforms();
- for( int i=0; i<optionValues.length; i++ ){
- a.addOptionValue(optionValues[i], optionValues[i]);
- }
- attributes.put("platforms",a);
-
- // ATTRIBUTE: Version
- a = new Attribute("Version");
- a.setParameterName("version");
- optionValues = BugzillaPlugin.getDefault().getProductConfiguration().getVersions(model.getProduct());
- for( int i=0; i<optionValues.length; i++ ){
- a.addOptionValue(optionValues[i], optionValues[i]);
- }
- attributes.put("versions", a);
-
- // ATTRIBUTE: Component
- a = new Attribute("Component");
- a.setParameterName("component");
- optionValues = BugzillaPlugin.getDefault().getProductConfiguration().getComponents(model.getProduct());
- for( int i=0; i<optionValues.length; i++ ){
- a.addOptionValue(optionValues[i], optionValues[i]);
- }
- attributes.put("components", a);
-
- // ATTRIBUTE: Priority
- a = new Attribute("Priority");
- a.setParameterName("bug_severity");
- optionValues = BugzillaPlugin.getDefault().getProductConfiguration().getPriorities();
- for( int i=0; i<optionValues.length; i++ ){
- a.addOptionValue(optionValues[i], optionValues[i]);
- }
-
- // set NBM Attributes (after all Attributes have been created, and added to attributes map)
- model.attributes = attributes;
- }
-
- public static String getBugUrl(int id) {
- String url = BugzillaPlugin.getDefault().getServerName() + "/show_bug.cgi?id=" + id;
- try {
- if (BugzillaPreferences.getUserName() != null
- && !BugzillaPreferences.getUserName().equals("")
- && BugzillaPreferences.getPassword() != null
- && !BugzillaPreferences.getPassword().equals("")) {
-
- url += "&GoAheadAndLogIn=1&Bugzilla_login="
- + URLEncoder.encode(BugzillaPreferences.getUserName(), "UTF-8")
- + "&Bugzilla_password="
- + URLEncoder.encode(BugzillaPreferences.getPassword(),"UTF-8");
- }
- } catch (UnsupportedEncodingException e) {
- return "";
- }
- return url;
- }
-
- public static String getBugUrlWithoutLogin(int id) {
- String url = BugzillaPlugin.getDefault().getServerName() + "/show_bug.cgi?id=" + id;
- return url;
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugzillaTools.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugzillaTools.java
deleted file mode 100644
index 2682d703b..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/BugzillaTools.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core;
-
-
-
-/**
- * Miscellaneous constants and functions for this plugin.
- */
-public class BugzillaTools {
-
- /** The default string used for locally created bugs. */
- public static final String OFFLINE_SERVER_DEFAULT = "[local]";
-
- /**
- * Returns a unique handle for the bugzilla selection. Contains the bug id,
- * the bug server, and (if applicable) the comment number.
- *
- * @param bugSel
- * The bugzilla selection.
- * @return The handle for the bugzilla selection.
- */
- public static String getHandle(IBugzillaReportSelection bugSel) {
- String handle = bugSel.getServer() + ";" + bugSel.getId();
- if (bugSel.hasComment()) {
- int number = bugSel.getComment().getNumber() + 1;
- handle += ";" + number;
- } else if(bugSel.isCommentHeader()){
- handle += ";1";
- } else if(bugSel.isDescription()){
- handle += ";0";
- }
- return handle;
- }
-
- public static String getName(IBugzillaReportSelection bugSel) {
- String name = bugSel.getServer() + ": Bug#: " + bugSel.getId() + ": " + bugSel.getBugSummary();
- if (bugSel.hasComment()) {
- name+= " : Comment#: " + bugSel.getComment().getNumber();
- } else if(bugSel.isCommentHeader()){
- name+= " : Comment Header";
- } else if(bugSel.isDescription()){
- name+= ": Description";
- }
- return name;
- }
-
- public static String getHandle(IBugzillaBug bug) {
- return bug.getServer() + ";" + bug.getId();
- }
-
- public static String getName(IBugzillaBug bug) {
- return bug.getServer() + ": Bug#: " + bug.getId() + ": " + bug.getSummary();
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/Comment.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/Comment.java
deleted file mode 100644
index c16c5df9b..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/Comment.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- * A comment posted on a bug.
- */
-public class Comment implements Serializable
-{
- /**
- * Comment for <code>serialVersionUID</code>
- */
- private static final long serialVersionUID = 3978422529214199344L;
-
- /** Comment's bug */
- private final BugReport bug;
-
- /** Comment's number */
- private final int number;
-
- /** Comment's text */
- private String text;
-
- /** Comment's author */
- private final String author;
-
- /** Author's realname, if known */
- private final String authorName;
-
- /** Comment's creation timestamp */
- private final Date created;
-
- /** Preceding comment */
- private Comment previous;
-
- /** Following comment */
- private Comment next;
-
- /**
- * Constructor
- * @param bug The bug that this comment is associated with
- * @param date The date taht this comment was entered on
- * @param author The author of the bug
- * @param authorName The authors real name
- */
- public Comment(BugReport bug, int number, Date date, String author, String authorName)
- {
- this.bug = bug;
- this.number = number;
- this.created = date;
- this.author = author;
- this.authorName = authorName;
- }
-
- /**
- * Get the bug that this comment is associated with
- * @return The bug that this comment is associated with
- */
- public BugReport getBug()
- {
- return bug;
- }
-
- /**
- * Get this comment's number
- * @return This comment's number
- */
- public int getNumber()
- {
- return number;
- }
-
- /**
- * Get the time that this comment was created
- * @return The comments creation timestamp
- */
- public Date getCreated()
- {
- return created;
- }
-
- /**
- * Get the author of the comment
- * @return The comments author
- */
- public String getAuthor()
- {
- return author;
- }
-
- /**
- * Get the authors real name
- * @return Returns author's name, or <code>null</code> if not known
- */
- public String getAuthorName()
- {
- return authorName;
- }
-
- /**
- * Get the text contained in the comment
- * @return The comments text
- */
- public String getText()
- {
- return text;
- }
-
- /**
- * Set the comments text
- * @param text The text to set the comment to have
- */
- public void setText(String text)
- {
- this.text = text;
- }
-
- /**
- * Get the next comment for the bug
- * @return Returns the following comment, or <code>null</code> if the last one.
- */
- public Comment getNext()
- {
- return next;
- }
-
- /**
- * Set the next comment for the bug
- * @param next The comment that is after this one
- */
- protected void setNext(Comment next)
- {
- this.next = next;
- }
-
- /**
- * Get the previous comment
- * @return Returns preceding comment, or <code>null</code> if the first one
- */
- public Comment getPrevious()
- {
- return previous;
- }
-
- /**
- * Seth the previous comment for the bug
- * @param previous The comment that is before this one
- */
- protected void setPrevious(Comment previous)
- {
- this.previous = previous;
- }
-}
-
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/IBugzillaAttributeListener.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/IBugzillaAttributeListener.java
deleted file mode 100644
index 0c180867b..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/IBugzillaAttributeListener.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core;
-
-
-/**
- * @author Ken Sueda
- */
-public interface IBugzillaAttributeListener {
- public abstract void attributeChanged(String attribute, String value);
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/IBugzillaBug.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/IBugzillaBug.java
deleted file mode 100644
index 3af1c1975..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/IBugzillaBug.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core;
-
-import java.io.Serializable;
-import java.util.List;
-
-
-/**
- * Interface representing a Bugzilla bug report.
- */
-public interface IBugzillaBug extends Serializable {
-
- /**
- * @return bug's id.
- */
- public int getId();
-
- /**
- * @return the server for this bug.
- */
- public String getServer();
-
- /**
- * @return the title label for this bug.
- */
- public String getLabel();
-
- /**
- * @return bug's description.
- */
- public String getDescription();
-
- /**
- * Sets the bug's description.
- * @param newDescription
- */
- public void setDescription(String newDescription);
-
- /**
- * @return bug's summary.
- */
- public String getSummary();
-
- /**
- * Sets the bug's summary.
- * @param newSummary
- */
- public void setSummary(String newSummary);
-
- /**
- * Get an attribute given its key
- * @return The value of the attribute or <code>null</code> if not present
- */
- public Attribute getAttribute(String key);
-
- /**
- * @return the attributes for this bug.
- */
- public List<Attribute> getAttributes();
-
- /**
- * @return <code>true</code> if this bug report is saved offline.
- */
- public boolean isSavedOffline();
-
- /**
- * @return <code>true</code> if this bug was created locally, and does not
- * yet exist on a bugzilla server.
- */
- public boolean isLocallyCreated();
-
- /**
- * Sets whether or not this bug is saved offline.
- * @param newOfflineState <code>true</code> if this bug is saved offline
- */
- public void setOfflineState(boolean newOfflineState);
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/IBugzillaConstants.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/IBugzillaConstants.java
deleted file mode 100644
index c2886525d..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/IBugzillaConstants.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core;
-
-/**
- * @author kvesik
- *
- * Created on Mar 26, 2003
- */
-
-/**
- * Interface for holding Bugzilla constants.
- */
-public interface IBugzillaConstants
-{
-
- // The bugzilla plugin id
- static final String PLUGIN_ID = "org.eclipse.mylar.bugzilla";
-
- // The id's of other bugzilla packages
- static final String EXISTING_BUG_EDITOR_ID = PLUGIN_ID + ".ui.existingBugEditor";
- static final String NEW_BUG_EDITOR_ID = PLUGIN_ID + ".ui.newBugEditor";
- static final String SEARCH_PAGE_ID = PLUGIN_ID + ".search.bugzillaSearchPage";
- static final String SEARCH_PAGE_CONTEXT = PLUGIN_ID + ".bugzillaSearchContext";
- static final String EDITOR_PAGE_CONTEXT = PLUGIN_ID + ".bugzillaEditorContext";
- static final String HIT_MARKER_ID = PLUGIN_ID + ".searchHit";
-
- // The is's for hit markers used in the label provider and sorters
- static final String HIT_MARKER_ATTR_ID = "id";
- static final String HIT_MARKER_ATTR_HREF = "href";
- static final String HIT_MARKER_ATTR_DESC = "description";
- static final String HIT_MARKER_ATTR_LABEL = "label";
- static final String HIT_MARKER_ATTR_SEVERITY = "severity";
- static final String HIT_MARKER_ATTR_PRIORITY = "priority";
- static final String HIT_MARKER_ATTR_PLATFORM = "platform";
- static final String HIT_MARKER_ATTR_STATE = "state";
- static final String HIT_MARKER_ATTR_RESULT = "result";
- static final String HIT_MARKER_ATTR_OWNER = "owner";
- static final String HIT_MARKER_ATTR_QUERY = "query";
-
- // Error code
- static final int ERROR_CODE = 1;
-
- // Bugzilla Preferences keys
- static final String BUGZILLA_SERVER = "BUGZILLA_SERVER";
- static final String MOST_RECENT_QUERY = "MOST_RECENT_QUERY";
- static final String IS_218 = "BUGZILLA_IS_218";
- static final String REFRESH_QUERY = "REFRESH_QUERY";
- static final String MAX_RESULTS = "MAX_BUGZILLA_RESULTS";
-
- // names for the resources used to hold the different attributes of a bug
- static final String STATUS_VALUES = "STATUS_VALUES";
- static final String PRESELECTED_STATUS_VALUES = "PRESELECTED_STATUS_VALUES";
- static final String RESOLUTION_VALUES = "RESOLUTION_VALUES";
- static final String SEVERITY_VALUES = "SEVERITY_VALUES";
- static final String PRIORITY_VALUES = "PRIORITY_VALUES";
- static final String HARDWARE_VALUES = "HARDWARE_VALUES";
- static final String OS_VALUES = "OS_VALUES";
- static final String PRODUCT_VALUES = "PRODUCT_VALUES";
- static final String COMPONENT_VALUES = "COMPONENT_VALUES";
- static final String VERSION_VALUES = "VERSION_VALUES";
- static final String TARGET_VALUES = "TARGET_VALUES";
-
- // Default values for keys
- static final String DEFAULT_BUGZILLA_SERVER = "https://bugs.eclipse.org/bugs";
-
- static final String[] DEFAULT_STATUS_VALUES = {"Unconfirmed", "New", "Assigned", "Reopened", "Resolved", "Verified", "Closed"};
- static final String[] DEFAULT_PRESELECTED_STATUS_VALUES = {"New", "Assigned", "Reopened"};
- static final String[] DEFAULT_RESOLUTION_VALUES = {"Fixed", "Invalid", "Wontfix", "Later", "Remind", "Duplicate", "Worksforme", "Moved"};
- static final String[] DEFAULT_SEVERITY_VALUES = {"blocker", "critical", "major", "normal", "minor", "trivial", "enhancement"};
- static final String[] DEFAULT_PRIORITY_VALUES = {"P1", "P2", "P3", "P4", "P5"};
- static final String[] DEFAULT_HARDWARE_VALUES = {"All", "Macintosh", "PC", "Power PC", "Sun", "Other"};
- static final String[] DEFAULT_OS_VALUES = {"All", "AIX Motif", "Windows 95", "Windows 98", "Windows CE", "Windows ME", "Windows 2000",
- "Windows NT", "Windows XP", "Windows All", "MacOS X", "Linux", "Linux-GTK", "Linux-Motif", "HP-UX", "Neutrino",
- "QNX-Photon", "Solaris", "Unix All", "other"};
- static final String[] DEFAULT_PRODUCT_VALUES = {"AJDT", "AspectJ", "CDT", "EMF", "Equinox", "GEF", "JDT", "PDE", "Platform", "Stellation", "XSD"};
- static final String[] DEFAULT_COMPONENT_VALUES = {"Access Control", "Ant", "Commandline", "Compare", "Compiler", "Core", "Cpp-Extensions", "Debug",
- "Doc", "Docs", "draw2d", "Dynamic Plugins", "Fine-Grained", "GEF", "Generic-Extensions", "Help", "IDE", "Launcher", "LPEX", "Plugins",
- "Releng", "Repository", "Script Tests", "Scripting", "Search", "Server", "SWT", "Text", "UI", "Unit Tests", "Update", "VCM",
- "WebDAV", "Windows Support"};
- static final String[] DEFAULT_VERSION_VALUES = {"0.5", "1.0", "2.0", "2.0.1", "2.0.2", "2.1", "2.2", "unspecified"};
- static final String[] DEFAULT_TARGET_VALUES = {"2.0 M1", "Alpha1", "Alpha2", "Alpha3", "Alpha4", "1.0", "1.0 - 20020308", "1.0 - Release",
- "2.0 M2", "2.0 - 20020308", "2.0 M3", "2.0 - 20020408", "2.0 M4", "2.0 - 20020508", "2.0 M5", "2.0 - Release", "2.0 M6",
- "2.0 F1", "2.0 F2", "2.0 F3", "2.0 F4", "2.0.1", "2.0.2",
- "2.1", "2.1 M1", "2.1 M2", "2.1 M3", "2.1 M4", "2.1 M5", "2.1 RC1", "2.1 RC2", "2.1 RC3", "2.2", "Future"};
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/IBugzillaReportSelection.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/IBugzillaReportSelection.java
deleted file mode 100644
index 494a38bb1..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/IBugzillaReportSelection.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core;
-
-import org.eclipse.jface.viewers.ISelection;
-
-
-/**
- * Interface for a selection of a Bugzilla element in a view.
- */
-public interface IBugzillaReportSelection extends ISelection {
-
- /**
- * @return <code>true</code> if a comment was selected.
- */
- public boolean hasComment();
-
- /**
- * @return the <code>Comment</code> object for this selection, or
- * <code>null</code> if a comment was not selected.
- */
- public Comment getComment();
-
- /**
- * Sets the <code>Comment</code> object for this selection. If a comment
- * was not selected, then this should be <code>null</code>.
- *
- * @param comment
- * The selection's comment, or <code>null</code> if not
- * applicable.
- */
- public void setComment(Comment comment);
-
- /**
- * @return The contents of the selection. This can be <code>null</code>.
- */
- public String getContents();
-
- /**
- * Sets the contents of the selection.
- *
- * @param contents
- * The selection.
- */
- public void setContents(String contents);
-
- /**
- * @return The id of the Bugzilla object that the selection was on.
- */
- public int getId();
-
- /**
- * Sets the id of the Bugzilla object that the selection was on.
- *
- * @param id
- * The id of the bug.
- */
- public void setId(int id);
-
- /**
- * @return The server of the Bugzilla object that the selection was on, or
- * <code>null</code> if no server is supplied.
- */
- public String getServer();
-
- /**
- * Sets the server of the Bugzilla object that the selection was on.
- *
- * @param server
- * The server of the bug.
- */
- public void setServer(String server);
-
- public boolean isCommentHeader();
-
- public boolean isDescription();
-
- public String getBugSummary();
-
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/NewBugModel.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/NewBugModel.java
deleted file mode 100644
index cea1e7772..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/NewBugModel.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-
-
-/**
- * This class is used to store data about the new bug that is being created while the wizard is being used
- *
- * @author Eric Booth
- */
-public class NewBugModel implements Serializable, IBugzillaBug {
-
- /** Automatically generated serialVersionUID */
- private static final long serialVersionUID = 3977859587934335283L;
-
- /** Whether the attributes have been parsed yet or not */
- protected boolean hasParsedAttributes = false;
-
- /** Whether the products have been parsed yet or not */
- protected boolean hasParsedProducts = false;
-
- /** The bug's id */
- protected final int id;
-
- /** The product that the bug is for */
- protected String product;
-
- /** A list of the attributes that can be changed for the new bug */
- public HashMap<String, Attribute> attributes = new HashMap<String, Attribute>();
-
- /** The summary for the bug */
- protected String summary = "";
-
- /** The description for the bug */
- protected String description = "";
-
- /**
- * Flag to indicate status of connection to Bugzilla server to identify
- * whether ProductConfiguration should be used instead
- */
- protected boolean connected = true;
-
- /** Whether or not this bug report is saved offline. */
- protected boolean savedOffline = false;
-
- /**
- * Creates a new <code>NewBugModel</code>. The id chosen for this bug is
- * based on the id of the last <code>NewBugModel</code> that was created.
- */
- public NewBugModel() {
- super();
- id = BugzillaPlugin.getDefault().getOfflineReports().getNextOfflineBugId();
- }
-
- public Attribute getAttribute(String key) {
- return attributes.get(key);
- }
-
- /**
- * Get the list of attributes for this model
- *
- * @return An <code>ArrayList</code> of the models attributes
- */
- public List<Attribute> getAttributes() {
- // create an array list to store the attributes in
- ArrayList<Attribute> attributeEntries = new ArrayList<Attribute>(attributes.keySet().size());
-
- // go through each of the attribute keys
- for (Iterator<String> it = attributes.keySet().iterator(); it.hasNext(); ) {
- // get the key for the attribute
- String key = it.next();
-
- // get the attribute and add it to the list
- Attribute attribute = attributes.get(key);
- attributeEntries.add(attribute);
- }
-
- // return the list of attributes for the bug
- return attributeEntries;
- }
-
- public int getId() {
- return id;
- }
-
- public String getServer() {
- return BugzillaTools.OFFLINE_SERVER_DEFAULT;
- }
-
- public String getLabel() {
- return "New Bug #" + id;
- }
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String newDescription) {
- description = newDescription;
- }
-
- public String getSummary() {
- return summary;
- }
-
- public void setSummary(String newSummary) {
- summary = newSummary;
- }
-
- /**
- * @return The product that the bug is for.
- */
- public String getProduct() {
- return product;
- }
-
- /**
- * Sets the product that the bug is for.
- * @param product The product.
- */
- public void setProduct(String product) {
- this.product = product;
- }
-
- /**
- * @return Flag to indicate status of connection to Bugzilla server (to
- * identify whether ProductConfiguration should be used instead)
- */
- public boolean isConnected() {
- return connected;
- }
-
- /**
- * Sets the value of the flag to indicate status of connection to Bugzilla server (to identify whether ProductConfiguration should be used instead)
- * @param newConnectionStatus <code>true</code> if the bug is connected.
- */
- public void setConnected(boolean newConnectionStatus) {
- connected = newConnectionStatus;
- }
-
- /**
- * @return Returns whether the attributes have been parsed yet or not.
- */
- public boolean hasParsedAttributes() {
- return hasParsedAttributes;
- }
-
- /**
- * Sets whether the attributes have been parsed yet or not.
- * @param hasParsedAttributes <code>true</code> if the attributes have been parsed.
- */
- public void setParsedAttributesStatus(boolean hasParsedAttributes) {
- this.hasParsedAttributes = hasParsedAttributes;
- }
-
- /**
- * @return Returns whether the products have been parsed yet or not.
- */
- public boolean hasParsedProducts() {
- return hasParsedProducts;
- }
-
- /**
- * Sets whether the products have been parsed yet or not.
- * @param hasParsedProducts <code>true</code> if the products have been parsed.
- */
- public void setParsedProductsStatus(boolean hasParsedProducts) {
- this.hasParsedProducts = hasParsedProducts;
- }
-
- public boolean isSavedOffline() {
- return savedOffline;
- }
-
- public boolean isLocallyCreated() {
- return true;
- }
-
- public void setOfflineState(boolean newOfflineState) {
- savedOffline = newOfflineState;
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/Operation.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/Operation.java
deleted file mode 100644
index 190e479b8..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/Operation.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * A representation of an operation that can be done to the bug when it is submitted
- * @author Shawn Minto
- */
-public class Operation implements Serializable
-{
- /**
- * Comment for <code>serialVersionUID</code>
- */
- private static final long serialVersionUID = 3256442508174045236L;
-
- /** The name of the value for the knob attribute */
- private String knob_name;
-
- /** The name of the option that can be chosen */
- private String optionName;
-
- /** List of option names */
- private List<String> optionNames;
-
- /** Map of options and their names */
- private Map<String, String> options;
-
- /** Flag for if we have any options or not */
- private boolean hasOptions = false;
-
- /** The name of the operation (text that we display) */
- private String op_name;
-
- /** The option that is selected */
- private String op_sel;
-
- /** Whether this is to be checked or not */
- private boolean isChecked = false;
-
- private boolean isInput = false;
-
- private String inputName = null;
-
- private String inputValue = "";
-
- /**
- * Constructor
- * @param knobName The name of the value for the knob attribute
- * @param operationName The display text for the operation
- */
- public Operation(String knobName, String operationName)
- {
- knob_name = knobName;
- op_name = operationName;
- }
-
- /**
- * Get the knob name
- * @return The knob name
- */
- public String getKnobName()
- {
- return knob_name;
- }
-
- /**
- * Get the display name
- * @return The display name
- */
- public String getOperationName()
- {
- return op_name;
- }
-
- /**
- * Check if this has any options
- * @return True if there are option values
- */
- public boolean hasOptions()
- {
- return hasOptions;
- }
-
- /**
- * Set up this operation to have options
- * @param optionName The name for the option attribute
- */
- public void setUpOptions(String optionName)
- {
- hasOptions = true;
- this.optionName = optionName;
- options = new HashMap<String, String>();
- optionNames = new ArrayList<String>();
- }
-
- /**
- * Add an option value to the operation
- * @param name The name of the option
- * @param value The value of the option
- */
- public void addOption(String name, String value)
- {
- options.put(name, value);
- if(options.size() == 1)
- op_sel = name;
- optionNames.add(name);
- }
-
- /**
- * Get the list of option names for this operation
- * @return The list of option names
- */
- public List<String> getOptionNames()
- {
- return optionNames;
- }
-
- /**
- * Get the selected option
- * @return The selected option name
- */
- public String getOptionSelection() {
- return op_sel;
- }
-
-
- /**
- * Set the selected option
- * @param string The name of the selected option
- */
- public void setOptionSelection(String string) {
- op_sel = string;
- }
-
- /**
- * Check if this is to be checked or not
- * @return True if this is to be checked at the start
- */
- public boolean isChecked() {
- return isChecked;
- }
-
- /**
- * Set whether this option is to be checked or not
- * @param b True if it is to be checked
- */
- public void setChecked(boolean b) {
- isChecked = b;
- }
-
- /**
- * Get the name for the option attribute
- * @return The option name
- */
- public String getOptionName()
- {
- return optionName;
- }
-
- /**
- * Get the value for an option from its name
- * @param option The name of the option
- * @return The value of the option
- */
- public String getOptionValue(String option)
- {
- return options.get(option);
- }
-
- public boolean isInput() {
- return isInput;
- }
-
- public String getInputName() {
- return inputName;
- }
-
- public void setInputName(String inputName) {
- isInput = true;
- this.inputName = inputName;
- }
-
- public String getInputValue() {
- return inputValue == null?"":inputValue;
- }
-
- public void setInputValue(String inputValue) {
- this.inputValue = inputValue;
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/PossibleBugzillaFailureException.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/PossibleBugzillaFailureException.java
deleted file mode 100644
index 72690d60f..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/PossibleBugzillaFailureException.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core;
-
-import java.io.PrintStream;
-import java.io.PrintWriter;
-
-public class PossibleBugzillaFailureException extends Exception {
- /** Automatically generated serialVersionUID */
- private static final long serialVersionUID = 3257849887386449974L;
-
- private Throwable cause;
-
- /**
- * Constructor for BugzillaException.
- */
- public PossibleBugzillaFailureException() {
- super();
- }
-
- /**
- * Constructor for BugzillaException.
- * @param detailMessage
- */
- public PossibleBugzillaFailureException(String detailMessage) {
- super(detailMessage);
- }
-
- public PossibleBugzillaFailureException(String detailMessage,Throwable cause) {
- super(detailMessage);
- this.cause = cause;
- }
-
- public PossibleBugzillaFailureException(Throwable cause) {
- this.cause = cause;
- }
-
- @Override
- public synchronized void printStackTrace(PrintStream err) {
- super.printStackTrace(err);
- if (cause != null) {
- err.println("\n--- Cause was:");
- cause.printStackTrace(err);
- }
- }
-
- @Override
- public synchronized void printStackTrace(PrintWriter err) {
- super.printStackTrace(err);
- if (cause != null) {
- err.println("\n--- Cause was:");
- cause.printStackTrace(err);
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/TrustAll.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/TrustAll.java
deleted file mode 100644
index 836c6bc10..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/TrustAll.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core;
-
-import javax.net.ssl.X509TrustManager;
-
-/**
-* TrustAll class implements X509TrustManager to access all https servers with signed and
-* unsigned certificates.
-*/
-public class TrustAll implements X509TrustManager
-{
- // seems to be no purpose
- public boolean checkClientTrusted(java.security.cert.X509Certificate[] chain)
- {
- return true;
- }
-
- // seems to be no purpose
- public boolean isServerTrusted(java.security.cert.X509Certificate[] chain)
- {
- return true;
- }
-
- // seems to be no purpose
- public boolean isClientTrusted(java.security.cert.X509Certificate[] chain)
- {
- return true;
- }
-
- /**
- * @see javax.net.ssl.X509TrustManager#getAcceptedIssuers()
- */
- public java.security.cert.X509Certificate[] getAcceptedIssuers()
- {
- return null;
- }
-
- /**
- * @see javax.net.ssl.X509TrustManager#checkClientTrusted(java.security.cert.X509Certificate[], java.lang.String)
- */
- public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType)
- {
- // don't need to do any checks
- }
-
- /**
- * @see javax.net.ssl.X509TrustManager#checkServerTrusted(java.security.cert.X509Certificate[], java.lang.String)
- */
- public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType)
- {
- // don't need to do any checks
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/compare/BugzillaCompareInput.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/compare/BugzillaCompareInput.java
deleted file mode 100644
index 799dee183..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/compare/BugzillaCompareInput.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.compare;
-
-import org.eclipse.compare.CompareConfiguration;
-import org.eclipse.compare.CompareEditorInput;
-import org.eclipse.compare.structuremergeviewer.Differencer;
-import org.eclipse.compare.structuremergeviewer.IStructureComparator;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.mylar.bugzilla.core.BugReport;
-
-
-/**
- * A two-way or three-way compare for <code>BugReport</code> objects.
- */
-public class BugzillaCompareInput extends CompareEditorInput {
-
- private boolean threeWay= false;
- private Object root;
- private IStructureComparator ancestor = null;
- private IStructureComparator left = null;
- private IStructureComparator right = null;
-
- /**
- * Constructor.
- *
- * @param configuration
- * The compare configuration used in this compare input.
- * @see CompareConfiguration
- */
- public BugzillaCompareInput(CompareConfiguration configuration) {
- super(configuration);
- }
-
- @Override
- protected Object prepareInput(IProgressMonitor monitor) {
- if (left == null || right == null) {
- return null;
- }
- Differencer d= new Differencer();
- root= d.findDifferences(threeWay, monitor, null, ancestor, left, right);
- return root;
- }
-
- /**
- * @return The original object that's to be compared (appears on the top of
- * the compare view).
- */
- public IStructureComparator getAncestor() {
- return ancestor;
- }
-
- /**
- * Sets the original object that's to be compared (appears on the top of the
- * compare view).
- *
- * @param newAncestor
- * The new original object.
- */
- public void setAncestor(BugReport newAncestor) {
- threeWay = (newAncestor != null);
- BugzillaStructureCreator structureCreator = new BugzillaStructureCreator();
- ancestor = structureCreator.getStructure(newAncestor);
- }
-
- /**
- * @return The local object that's to be compared (appears on the left side
- * of the compare view).
- */
- public IStructureComparator getLeft() {
- return left;
- }
-
- /**
- * Sets the local object that's to be compared (appears on the left side of
- * the compare view).
- *
- * @param newLeft
- * The new local object.
- */
- public void setLeft(BugReport newLeft) {
- BugzillaStructureCreator structureCreator = new BugzillaStructureCreator();
- left = structureCreator.getStructure(newLeft);
- }
-
- /**
- * @return The online object that's to be compared (appears on the right
- * side of the compare view).
- */
- public IStructureComparator getRight() {
- return right;
- }
-
- /**
- * Sets the online object that's to be compared (appears on the right side
- * of the compare view).
- *
- * @param newRight
- * The new online object.
- */
- public void setRight(BugReport newRight) {
- BugzillaStructureCreator structureCreator = new BugzillaStructureCreator();
- right = structureCreator.getStructure(newRight);
- }
-
- /**
- * @return <code>true</code> if a three-way comparison is to be done.
- */
- public boolean isThreeWay() {
- return threeWay;
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/compare/BugzillaCompareNode.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/compare/BugzillaCompareNode.java
deleted file mode 100644
index 27e05eeda..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/compare/BugzillaCompareNode.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.compare;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.compare.IStreamContentAccessor;
-import org.eclipse.compare.ITypedElement;
-import org.eclipse.compare.structuremergeviewer.IStructureComparator;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.mylar.bugzilla.core.Attribute;
-import org.eclipse.mylar.bugzilla.core.BugReport;
-import org.eclipse.mylar.bugzilla.core.Comment;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-
-
-/**
- * A node for the tree used to compare bugs in the compare viewer.
- */
-public class BugzillaCompareNode implements IStreamContentAccessor, IStructureComparator, ITypedElement {
-
- /** The label for this piece of data. */
- private String key;
-
- /** The data for this node. */
- private String value;
-
- /** The children of this node. */
- private ArrayList<BugzillaCompareNode> nodeChildren;
-
- /** This node's image. */
- private Image image;
-
- /**
- * Constructor. The image for this node is set to <code>null</code>.
- * @param key The label for this node.
- * @param value The data for this node.
- */
- public BugzillaCompareNode(String key, String value) {
- this(key, value, null);
- }
-
- /**
- * Constructor.
- * @param key The label for this node.
- * @param value The data for this node.
- * @param image The image for this node.
- */
- public BugzillaCompareNode(String key, String value, Image image) {
- super();
- this.key = key;
- this.value = checkText(value);
- this.nodeChildren = null;
- this.image = image;
- }
-
- /**
- * This function checks to make sure the given string is not
- * <code>null</code>. If it is, the empty string is returned instead.
- *
- * @param newValue
- * The string to be checked.
- * @return If the text is <code>null</code>, then return the null string (<code>""</code>).
- * Otherwise, return the text.
- */
- private String checkText(String newValue) {
- return ((newValue == null) ? "" : newValue);
- }
-
- public Object[] getChildren() {
- return (nodeChildren == null) ? new Object[0] : nodeChildren.toArray();
- }
-
- /**
- * Adds a node to this node's list of children.
- * @param bugNode The new child.
- */
- public void addChild(BugzillaCompareNode bugNode) {
- if (nodeChildren == null) {
- nodeChildren = new ArrayList<BugzillaCompareNode>();
- }
- nodeChildren.add(bugNode);
- }
-
- public InputStream getContents() throws CoreException {
- return new ByteArrayInputStream(getValue().getBytes());
- }
-
- /**
- * @return The label for this node.
- */
- public String getKey() {
- return key;
- }
-
- /**
- * Set the label for this node.
- *
- * @param key
- * The new label.
- */
- public void setKey(String key) {
- this.key = key;
- }
-
- /**
- * @return The data for this node.
- */
- public String getValue() {
- return value;
- }
-
- /**
- * Set the data for this node.
- *
- * @param value
- * The new data.
- */
- public void setValue(String value) {
- this.value = checkText(value);
- }
-
- public Image getImage() {
- return image;
- }
-
- /**
- * Sets the image for this object. This image is used when displaying this
- * object in the UI.
- *
- * @param newImage
- * The new image.
- */
- public void setImage(Image newImage) {
- this.image = newImage;
- }
-
- @Override
- public boolean equals(Object arg0) {
- if (arg0 instanceof BugzillaCompareNode) {
- BugzillaCompareNode bugNode = (BugzillaCompareNode) arg0;
- return getKey().equals(bugNode.getKey());
- }
- return super.equals(arg0);
- }
-
- @Override
- public int hashCode() {
- return getKey().hashCode();
- }
-
-
- public String getName() {
- return getKey();
- }
-
- public String getType() {
- return "bug report";
- }
-
- /**
- * Parses the given <code>BugReport</code> into a tree of
- * <code>BugzillaCompareNode</code>'s suitable for use in a compare
- * viewer.
- *
- * @param bug
- * The <code>BugReport</code> that needs parsing.
- * @return The tree of <code>BugzillaCompareNode</code>'s.
- */
- public static BugzillaCompareNode parseBugReport(BugReport bug) {
- Image defaultImage = PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_DEF_VIEW);
- BugzillaCompareNode topNode = new BugzillaCompareNode("Bug #" + bug.getId(), null, defaultImage);
- topNode.addChild(new BugzillaCompareNode("Creation Date", bug.getCreated().toString(), defaultImage));
-
- String keywords = "";
- if (bug.getKeywords() != null) {
- for (Iterator<String> iter = bug.getKeywords().iterator(); iter.hasNext();) {
- keywords += iter.next() + " ";
- }
- }
- topNode.addChild(new BugzillaCompareNode("Keywords", keywords, defaultImage));
-
- Image attributeImage = PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_ELEMENT);
- BugzillaCompareNode attributes = new BugzillaCompareNode("Attributes", null, attributeImage);
- for (Iterator<Attribute> iter = bug.getAttributes().iterator(); iter.hasNext();) {
- Attribute attribute = iter.next();
-
- // Since the bug report may not be saved offline, get the attribute's new
- // value, which is what is in the submit viewer.
- attributes.addChild(new BugzillaCompareNode(attribute.getName(), attribute.getNewValue(), attributeImage));
- }
- topNode.addChild(attributes);
-
- topNode.addChild(new BugzillaCompareNode("Description", bug.getDescription(), defaultImage));
-
- BugzillaCompareNode comments = new BugzillaCompareNode("Comments", null, defaultImage);
- for (Iterator<Comment> iter = bug.getComments().iterator(); iter.hasNext();) {
- Comment comment = iter.next();
- String bodyString = "Comment from " + comment.getAuthorName() + ":\n\n" + comment.getText();
- comments.addChild(new BugzillaCompareNode(comment.getCreated().toString(), bodyString, defaultImage));
- }
- topNode.addChild(comments);
-
- topNode.addChild(new BugzillaCompareNode("New Comment", bug.getNewNewComment(), defaultImage));
-
- BugzillaCompareNode ccList = new BugzillaCompareNode("CC List", null, defaultImage);
- for (Iterator<String> iter = bug.getCC().iterator(); iter.hasNext();) {
- String cc = iter.next();
- ccList.addChild(new BugzillaCompareNode("CC", cc, defaultImage));
- }
- topNode.addChild(ccList);
-
- BugzillaCompareNode titleNode = new BugzillaCompareNode("BugReport Object", null, defaultImage);
- titleNode.addChild(topNode);
-
- return titleNode;
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/compare/BugzillaStructureCreator.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/compare/BugzillaStructureCreator.java
deleted file mode 100644
index b5c453e49..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/compare/BugzillaStructureCreator.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.compare;
-
-import org.eclipse.compare.structuremergeviewer.IStructureComparator;
-import org.eclipse.compare.structuremergeviewer.IStructureCreator;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.mylar.bugzilla.core.BugReport;
-
-
-/**
- * This implementation of the <code>IStructureCreator</code> interface
- * makes the contents of a <code>BugReport</code> object available as a
- * hierarchical structure of <code>IStructureComparator</code>s.
- * <p>
- * It is used when comparing a modified bug report to the one on the
- * corresponding server.
- */
-public class BugzillaStructureCreator implements IStructureCreator {
-
- /**
- * Create a new BugzillaStructureCreator.
- */
- public BugzillaStructureCreator() {
- super();
- }
-
- public String getName() {
- return "Bugzilla Structure Creator";
- }
-
- public IStructureComparator getStructure(Object input) {
- if (input instanceof BugReport) {
- BugReport bugReport = (BugReport) input;
- return BugzillaCompareNode.parseBugReport(bugReport);
- }
- else {
- return null;
- }
- }
-
- public IStructureComparator locate(Object path, Object input) {
- return null;
- }
-
- public String getContents(Object node, boolean ignoreWhitespace) {
- if (node instanceof BugzillaCompareNode) {
- String s = ((BugzillaCompareNode)node).getValue();
- if (ignoreWhitespace)
- s= s.trim();
- return s;
- }
- return null;
- }
-
- /**
- * Called whenever a copy operation has been performed on a tree node.
- * This implementation throws an <code>AssertionFailedException</code>
- * since we cannot update a bug report object.
- *
- * @param structure the node for which to save the new content
- * @param input the object from which the structure tree was created in <code>getStructure</code>
- */
- public void save(IStructureComparator node, Object input) {
- Assert.isTrue(false); // Cannot update bug report object
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/favorites/Favorite.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/favorites/Favorite.java
deleted file mode 100644
index b786f8dae..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/favorites/Favorite.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.favorites;
-
-import java.io.Serializable;
-import java.util.Date;
-import java.util.Map;
-
-import org.eclipse.mylar.bugzilla.core.BugReport;
-import org.eclipse.mylar.bugzilla.core.search.BugzillaSearchResultCollector;
-
-
-/**
- * Class representing an item in the favorites view
- */
-public class Favorite implements Serializable {
-
- /** Automatically generated serialVersionUID */
- private static final long serialVersionUID = 3258129158977632310L;
-
- /** Bug id */
- private int id;
- /** Bug description */
- private String description;
- /** Query that created the match */
- private String query;
- /** Bug's attributes (severity, priority, etc.) */
- private Map<String, Object> attributes;
- /** Date when the favorite was recommended. */
- private Date date;
-
- private String server;
-
- /**
- * Constructor.
- *
- * @param bug
- * The bug this favorite represents.
- */
- public Favorite(BugReport bug) {
- this(bug.getServer(), bug.getId(), bug.getSummary(), "", BugzillaSearchResultCollector.getAttributeMap(bug));
- }
-
- /**
- * Constructor.
- */
- public Favorite(String server, int id, String description, String query, Map<String, Object> attributes) {
- this.server = server;
- this.id = id;
- this.description = description;
- this.query = query;
- this.attributes = attributes;
- date = new Date();
- }
-
- /**
- * returns the server for the bug
- */
- public String getServer(){
- return server;
- }
-
- /**
- * Returns bug's id.
- */
- public int getId() {
- return id;
- }
-
- /**
- * Returns bug's description.
- */
- public String getDescription() {
- return description;
- }
-
- /**
- * Returns bug attributes.
- */
- public Map<String, Object> getAttributes() {
- return attributes;
- }
-
- /**
- * Returns the query that created the match.
- */
- public String getQuery() {
- return query;
- }
-
- /**
- * Returns date when the favorite was added to the view.
- */
- public Date getDate() {
- return date;
- }
-
- @Override
- public String toString() {
- return id + " - " + description;
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/favorites/FavoritesFile.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/favorites/FavoritesFile.java
deleted file mode 100644
index 869d43a8c..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/favorites/FavoritesFile.java
+++ /dev/null
@@ -1,318 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.favorites;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.List;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.mylar.bugzilla.core.BugzillaPlugin;
-import org.eclipse.mylar.bugzilla.core.IBugzillaConstants;
-
-
-/**
- * Class to persist the data for the favorites list
- */
-public class FavoritesFile
-{
- /** The file that the favorites are written to */
- private File file;
-
- /** The directory to where the file is located */
- /** A list of favorites */
- private ArrayList<Favorite> list = new ArrayList<Favorite>();
-
-
- /** Sort by bug ID */
- public static final int ID_SORT = 0;
-
- /** Sort by bug priority */
- public static final int PRIORITY_SORT = 1;
-
- /** Sort by bug priority */
- public static final int SEVERITY_SORT = 2;
-
- /** Sort by bug state */
- public static final int STATE_SORT = 3;
-
- /** Default sort by bug ID */
- public static int lastSel = 0;
-
- /**
- * Constructor that reads the favorites data persisted in the plugin's state
- * directory, if it exists.
- *
- * @param file
- * The file where the favorites are persisted
- * @throws IOException
- * Error opening or closing the favorites file
- * @throws ClassNotFoundException
- * Error deserializing objects from the favorites file
- */
- public FavoritesFile(File file) throws ClassNotFoundException, IOException {
- this.file = file;
- if (file.exists()) {
- readFile();
- }
- }
-
- /**
- * Add a favorite to the favorites list
- * @param entry The bug to add
- */
- public void add(Favorite entry) {
- // add the entry to the list and write the file to disk
- list.add(entry);
- writeFile();
- }
-
- /**
- * Find a bug in the favorites list
- * @param id The bug id that we are looking for
- * @return The index of the bug in the array if it exists, else 0
- */
- public int find(int id) {
- for (int i = 0; i < list.size(); i++) {
- Favorite currFav = list.get(i);
- if (currFav.getId() == id)
- return i;
- }
- return 0;
- }
-
- /**
- * Get the list of favorites
- * @return The list of favorites
- */
- public ArrayList<Favorite> elements() {
- return list;
- }
-
- /**
- * Write the favorites to disk
- */
- private void writeFile() {
- try {
- ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file));
-
- // Write the size of the list so that we can read it back in easier
- out.writeInt(list.size());
-
- // write each element in the array list
- for (int i = 0; i < list.size(); i++) {
- Object item = list.get(i);
- out.writeObject(item);
- }
- out.close();
- }
- catch (IOException e) {
- // put up a message and log the error if there is a problem writing to the file
- MessageDialog.openError(null,
- "I/O Error",
- "Bugzilla could not write to favorites file.");
- BugzillaPlugin.log(e);
- }
- }
-
- /**
- * Read the favorites in from the file on disk
- *
- * @throws IOException
- * Error opening or closing the favorites file
- * @throws ClassNotFoundException
- * Error deserializing objects from the favorites file
- */
- private void readFile() throws ClassNotFoundException, IOException {
- ObjectInputStream in = new ObjectInputStream(new FileInputStream(file));
-
- // get the number of favorites in the file
- int size = in.readInt();
-
- // read in each of the favorites in the file
- for (int nX = 0; nX < size; nX++) {
- Favorite item = (Favorite) in.readObject();
- // add the favorite to the favorites list
- list.add(item);
- }
- in.close();
-
- sort(lastSel);
- }
-
- /**
- * Remove some bugs from the favorites list
- * @param indicesToRemove An array of the indicies of the bugs to be removed
- */
- public void remove(List<Favorite> sel) {
- list.removeAll(sel);
-
- // rewrite the file so that the data is persistant
- writeFile();
- }
-
- /**
- * Remove all of the items in the favortes menu
- */
- public void removeAll() {
- list.clear();
-
- // rewrite the file so that the data is persistant
- writeFile();
- }
-
- /**
- * Function to sort the favorites list
- * @param sortOrder The way to sort the bugs in the favorites list
- */
- public void sort(int sortOrder) {
- Favorite[] a = list.toArray(new Favorite[list.size()]);
-
- // decide which sorting method to use and sort the favorites
- switch(sortOrder) {
- case ID_SORT:
- Arrays.sort(a, new SortID());
- lastSel = ID_SORT;
- break;
- case PRIORITY_SORT:
- Arrays.sort(a, new SortPriority());
- lastSel = PRIORITY_SORT;
- break;
-
- case SEVERITY_SORT:
- Arrays.sort(a, new SortSeverity());
- lastSel = SEVERITY_SORT;
- break;
-
- case STATE_SORT:
- Arrays.sort(a, new SortState());
- lastSel = STATE_SORT;
- break;
- }
-
- // remove all of the elements from the list so that we can re-add
- // them in a sorted order
- list.clear();
-
- // add the sorted elements to the list and the table
- for (int j = 0; j < a.length; j++) {
- add(a[j]);
- }
- }
-
- /**
- * Inner class to sort by bug id
- */
- private class SortID implements Comparator<Favorite> {
- /**
- * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
- */
- public int compare(Favorite f1, Favorite f2) {
- Integer id1 = (Integer) f1.getAttributes().get(IBugzillaConstants.HIT_MARKER_ATTR_ID);
- Integer id2 = (Integer) f2.getAttributes().get(IBugzillaConstants.HIT_MARKER_ATTR_ID);
-
- if(id1 != null && id2 != null)
- return id1.compareTo(id2);
- else if(id1 == null && id2 != null)
- return -1;
- else if(id1 != null && id2 == null)
- return 1;
- else
- return 0;
- }
- }
-
- /**
- * Inner class to sort by priority
- */
- private class SortPriority implements Comparator<Favorite>
- {
- /*
- * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
- */
- public int compare(Favorite f1, Favorite f2) {
- Integer pri1 = (Integer) f1.getAttributes().get(IBugzillaConstants.HIT_MARKER_ATTR_PRIORITY);
- Integer pri2 = (Integer) f2.getAttributes().get(IBugzillaConstants.HIT_MARKER_ATTR_PRIORITY);
-
- if(pri1 != null && pri2 != null)
- return pri1.compareTo(pri2);
- else if(pri1 == null && pri2 != null)
- return -1;
- else if(pri1 != null && pri2 == null)
- return 1;
- else
- return 0;
- }
- }
-
- /**
- * Inner class to sort by severity
- */
- private class SortSeverity implements Comparator<Favorite> {
- /*
- * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
- */
- public int compare(Favorite f1, Favorite f2) {
- Integer sev1 = (Integer) f1.getAttributes().get(IBugzillaConstants.HIT_MARKER_ATTR_SEVERITY);
- Integer sev2 = (Integer) f2.getAttributes().get(IBugzillaConstants.HIT_MARKER_ATTR_SEVERITY);
-
- if(sev1 != null && sev2 != null)
- return sev1.compareTo(sev2);
- else if(sev1 == null && sev2 != null)
- return -1;
- else if(sev1 != null && sev2 == null)
- return 1;
- else
- return 0;
- }
- }
-
- /**
- * Inner class to sort by state
- */
- private class SortState implements Comparator<Favorite>
- {
- /*
- * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
- */
- public int compare(Favorite f1, Favorite f2) {
- Integer sta1 = (Integer) f1.getAttributes().get(IBugzillaConstants.HIT_MARKER_ATTR_STATE);
- Integer sta2 = (Integer) f2.getAttributes().get(IBugzillaConstants.HIT_MARKER_ATTR_STATE);
-
- if(sta1 != null && sta2 != null)
- {
- int rc = sta1.compareTo(sta2);
- if(rc == 0)
- {
- Integer res1 = (Integer) f1.getAttributes().get(IBugzillaConstants.HIT_MARKER_ATTR_RESULT);
- Integer res2 = (Integer) f2.getAttributes().get(IBugzillaConstants.HIT_MARKER_ATTR_RESULT);
-
- return res1.compareTo(res2);
- }
- else
- return rc;
- }
- else if(sta1 == null && sta2 != null)
- return -1;
- else if(sta1 != null && sta2 == null)
- return 1;
- else
- return 0;
- }
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/BugParser.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/BugParser.java
deleted file mode 100644
index 41e742274..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/BugParser.java
+++ /dev/null
@@ -1,840 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.internal;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.net.URL;
-import java.net.URLEncoder;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.security.auth.login.LoginException;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.mylar.bugzilla.core.Attribute;
-import org.eclipse.mylar.bugzilla.core.BugReport;
-import org.eclipse.mylar.bugzilla.core.BugzillaPlugin;
-import org.eclipse.mylar.bugzilla.core.BugzillaRepository;
-import org.eclipse.mylar.bugzilla.core.Comment;
-import org.eclipse.mylar.bugzilla.core.IBugzillaConstants;
-import org.eclipse.mylar.bugzilla.core.Operation;
-import org.eclipse.mylar.bugzilla.core.internal.HtmlStreamTokenizer.Token;
-
-
-/**
- * @author Shawn Minto
- *
- * This class parses bugs so that they can be displayed using the bug editor
- */
-public class BugParser
-{
- /** Parser for dates in the report */
- private static SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");
-
- private static final String keywordsUrl = "describekeywords.cgi";
-
- /**
- * Parse the case where we have found an attribute name
- * @param in The input stream for the bug
- * @return The name of the attribute that we are parsing
- * @throws IOException
- */
- private static String parseAttributeName(HtmlStreamTokenizer tokenizer)
- throws IOException, ParseException {
- StringBuffer sb = new StringBuffer();
-
- parseTableCell(tokenizer, sb);
- HtmlStreamTokenizer.unescape(sb);
- // remove the colon if there is one
- if (sb.charAt(sb.length() - 1) == ':') {
- sb.deleteCharAt(sb.length() - 1);
- }
- return sb.toString();
- }
-
- /**
- * Parse the case where we have found attribute values
- * @param in The input stream of the bug
- * @param bug The bug report for the current bug
- * @param attribute The name of the attribute
- * @throws IOException
- */
- private static void parseAttributeValue(
- BugReport bug,
- String attributeName, HtmlStreamTokenizer tokenizer,
- String userName, String password)
- throws IOException, ParseException {
-
- Token token = tokenizer.nextToken();
- if (token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag) token.getValue();
-
- // make sure that we are on a tag that we care about, not a label
- // fix added so that we can parse the mozilla bug pages
- if(tag.getTagType() == HtmlTag.Type.LABEL)
- {
- token = tokenizer.nextToken();
- if (token.getType() == Token.TAG)
- tag = (HtmlTag) token.getValue();
- else
- {
- StringBuffer sb = new StringBuffer();
- if (token.getType() == Token.TEXT) {
- sb.append((StringBuffer) token.getValue());
- parseAttributeValueCell(bug, attributeName, tokenizer, sb);
- }
- }
- }
-
- if (tag.getTagType() == HtmlTag.Type.SELECT && !tag.isEndTag()) {
- String parameterName = tag.getAttribute("name");
- parseSelect(bug, attributeName, parameterName, tokenizer);
- }
- else if (tag.getTagType() == HtmlTag.Type.INPUT && !tag.isEndTag()) {
- parseInput(bug, attributeName, tag, userName, password);
- }
- else if (!tag.isEndTag() || attributeName.equalsIgnoreCase("resolution")) {
- if(tag.isEndTag() && attributeName.equalsIgnoreCase("resolution"))
- {
- Attribute a = new Attribute(attributeName);
- a.setValue("");
- bug.addAttribute(a);
- }
- parseAttributeValueCell(bug, attributeName, tokenizer);
- }
- }
- else {
- StringBuffer sb = new StringBuffer();
- if (token.getType() == Token.TEXT) {
- sb.append((StringBuffer) token.getValue());
- parseAttributeValueCell(bug, attributeName, tokenizer, sb);
- }
- }
- }
-
- /**
- * Parse the case where the attribute value is just text in a table cell
- * @param in The input stream of the bug
- * @param bug The bug report for the current bug
- * @param attributeName The name of the attribute that we are parsing
- * @throws IOException
- */
- private static void parseAttributeValueCell(
- BugReport bug,
- String attributeName,
- HtmlStreamTokenizer tokenizer)
- throws IOException, ParseException {
- StringBuffer sb = new StringBuffer();
-
- parseAttributeValueCell(bug, attributeName, tokenizer, sb);
- }
-
- private static void parseAttributeValueCell(
- BugReport bug,
- String attributeName,
- HtmlStreamTokenizer tokenizer,
- StringBuffer sb)
- throws IOException, ParseException {
-
- parseTableCell(tokenizer, sb);
- HtmlStreamTokenizer.unescape(sb);
-
- // create a new attribute and set its value to the value that we retrieved
- Attribute a = new Attribute(attributeName);
- a.setValue(sb.toString());
-
- // if we found an attachment attribute, forget about it, else add the
- // attribute to the bug report
- if (attributeName.toLowerCase().startsWith("attachments")) {
- // do nothing
- }
- else {
- if(attributeName.equals("Bug#"))
- a.setValue(a.getValue().replaceFirst("alias:", ""));
- bug.addAttribute(a);
- }
- }
-
- /**
- * Reads text into a StringBuffer until it encounters a close table cell tag (&lt;/TD&gt;) or start of another cell.
- * The text is appended to the existing value of the buffer. <b>NOTE:</b> Does not handle nested cells!
- * @param tokenizer
- * @param sb
- * @throws IOException
- * @throws ParseException
- */
- private static void parseTableCell(HtmlStreamTokenizer tokenizer, StringBuffer sb)
- throws IOException, ParseException {
- boolean noWhitespace = false;
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
- if (token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == HtmlTag.Type.TD) {
- if (!tag.isEndTag()) {
- tokenizer.pushback(token);
- }
- break;
- }
- noWhitespace = token.getWhitespace().length() == 0;
- }
- else if (token.getType() == Token.TEXT) {
- // if there was no whitespace between the tag and the
- // preceding text, don't insert whitespace before this text
- // unless it is there in the source
- if (!noWhitespace && token.getWhitespace().length() > 0 && sb.length() > 0) {
- sb.append(' ');
- }
- sb.append((StringBuffer)token.getValue());
- }
- }
- }
-
- /**
- * Parse the case where the attribute value is an option
- * @param in The input stream for the bug
- * @param bug The bug report for the current bug
- * @param attribute The name of the attribute that we are parsing
- * @param parameterName the SELECT tag's name
- * @throws IOException
- */
- private static void parseSelect(
- BugReport bug,
- String attributeName,
- String parameterName,
- HtmlStreamTokenizer tokenizer)
- throws IOException, ParseException {
-
- boolean first = false;
- Attribute a = new Attribute(attributeName);
- a.setParameterName(parameterName);
-
- Token token = tokenizer.nextToken();
- while ( token.getType() != Token.EOF) {
- if (token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == HtmlTag.Type.SELECT && tag.isEndTag()) break;
- if (tag.getTagType() == HtmlTag.Type.OPTION && !tag.isEndTag()) {
- String optionName = tag.getAttribute("value");
- boolean selected = tag.hasAttribute("selected");
- StringBuffer optionText = new StringBuffer();
- for (token = tokenizer.nextToken(); token.getType() == Token.TEXT; token = tokenizer.nextToken()) {
- if (optionText.length() > 0) {
- optionText.append(' ');
- }
- optionText.append((StringBuffer) token.getValue());
- }
- a.addOptionValue(optionText.toString(), optionName);
- if (selected || first) {
- a.setValue(optionText.toString());
- first = false;
- }
- }
- else {
- token = tokenizer.nextToken();
- }
- }
- else {
- token = tokenizer.nextToken();
- }
- }
-
- // if we parsed the cc field add the e-mails to the bug report else add the attribute to the bug report
- if (attributeName.toLowerCase().startsWith("cc")) {
- for (Iterator<String> it = a.getOptionValues().keySet().iterator(); it.hasNext(); ) {
- String email = it.next();
- bug.addCC(HtmlStreamTokenizer.unescape(email));
- }
- }
- else {
- bug.addAttribute(a);
- }
- }
-
- /**
- * Parse the case where the attribute value is an input
- * @param bug The bug report for the current bug
- * @param attributeName The name of the attribute
- * @param tag The INPUT tag
- * @throws IOException
- */
- private static void parseInput(
- BugReport bug,
- String attributeName,
- HtmlTag tag, String userName, String password)
- throws IOException {
-
- Attribute a = new Attribute(attributeName);
- a.setParameterName(tag.getAttribute("name"));
- String name = tag.getAttribute("name");
- String value = tag.getAttribute("value");
- if (value == null) value = "";
-
- // if we found the summary, add it to the bug report
- if (name.equalsIgnoreCase("short_desc")) {
- bug.setSummary(value);
- }
- else if (name.equalsIgnoreCase("bug_file_loc")) {
- a.setValue(value);
- bug.addAttribute(a);
- }
- else if (name.equalsIgnoreCase("newcc")) {
- a.setValue(value);
- bug.addAttribute(a);
- }
- else {
- // otherwise just add the attribute
- a.setValue(value);
- bug.addAttribute(a);
-
- if (attributeName.equalsIgnoreCase("keywords") && BugzillaRepository.getURL() != null) {
-
- BufferedReader input = null;
- try {
-
- String urlText = "";
-
- // if we have a user name, may as well log in just in case it is required
- if(userName != null && !userName.equals("") && password != null && !password.equals(""))
- {
- /*
- * The UnsupportedEncodingException exception for
- * URLEncoder.encode() should not be thrown, since every
- * implementation of the Java platform is required to support
- * the standard charset "UTF-8"
- */
- urlText += "?GoAheadAndLogIn=1&Bugzilla_login=" + URLEncoder.encode(userName, "UTF-8") + "&Bugzilla_password=" + URLEncoder.encode(password, "UTF-8");
- }
-
- // connect to the bugzilla server to get the keyword list
- input = new BufferedReader(new InputStreamReader(new URL(BugzillaRepository.getURL() + "/" + keywordsUrl+urlText).openStream()));
-
- // parse the valid keywords and add them to the bug
- List<String> keywords = new KeywordParser(input).getKeywords();
- bug.setKeywords(keywords);
-
- } catch(Exception e) {
- // throw an exception if there is a problem reading the bug from the server
- throw new IOException("Exception while fetching the list of keywords from the server: " + e.getMessage());
- }
- finally
- {
- try{
- if(input != null)
- input.close();
- }catch(IOException e)
- {
- BugzillaPlugin.log(new Status(IStatus.ERROR, IBugzillaConstants.PLUGIN_ID,IStatus.ERROR,"Problem closing the stream", e));
- }
- }
- }
- }
- }
-
- /**
- * Parse the case where we are dealing with the description
- * @param bug The bug report for the bug
- * @throws IOException
- */
- private static void parseDescription(BugReport bug, HtmlStreamTokenizer tokenizer)
- throws IOException, ParseException {
-
- StringBuffer sb = new StringBuffer();
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
- if (token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == HtmlTag.Type.PRE && tag.isEndTag()) break;
- }
- else if (token.getType() == Token.TEXT) {
- if (sb.length() > 0) {
- sb.append(token.getWhitespace());
- }
- sb.append((StringBuffer) token.getValue());
- }
- }
-
- // set the bug to have the description we retrieved
- String text = HtmlStreamTokenizer.unescape(sb).toString();
- bug.setDescription(text);
- }
-
- /**
- * Parse the case where we have found the start of a comment
- * @param in The input stream of the bug
- * @param bug The bug report for the current bug
- * @return The comment that we have created with the information
- * @throws IOException
- * @throws ParseException
- */
- private static Comment parseCommentHead(BugReport bug, HtmlStreamTokenizer tokenizer)
- throws IOException, ParseException {
- int number = 0;
- Date date = null;
- String author = null;
- String authorName = null;
-
- // get the comment's number
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
- if (token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == HtmlTag.Type.A) {
- String href = tag.getAttribute("href");
- if (href != null) {
- int index = href.toLowerCase().indexOf("#c");
- if (index == -1) continue;
- token = tokenizer.nextToken();
- number = Integer.parseInt(((StringBuffer)token.getValue()).toString().substring(1));
- break;
- }
- }
- }
- }
-
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
- if (token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == HtmlTag.Type.A) {
- String href = tag.getAttribute("href");
- if (href != null) {
- int index = href.toLowerCase().indexOf("mailto");
- if (index == -1) continue;
- author = href.substring(index + 7);
- break;
- }
- }
- }
- }
-
- // get the author's real name
- StringBuffer sb = new StringBuffer();
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
- if (token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == HtmlTag.Type.A && tag.isEndTag()) break;
- }
- else if (token.getType() == Token.TEXT) {
- if (sb.length() > 0) {
- sb.append(' ');
- }
- sb.append((StringBuffer)token.getValue());
- }
- }
- authorName = sb.toString();
-
- // get the comment's date
- sb.setLength(0);
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
- if (token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == HtmlTag.Type.I && tag.isEndTag()) break;
- }
- else if (token.getType() == Token.TEXT) {
- if (sb.length() > 0) {
- sb.append(' ');
- }
- sb.append((StringBuffer)token.getValue());
- }
- }
- date = df.parse(sb.substring(0, 16));
-
- return new Comment(bug, number, date, author, authorName);
- }
-
- /**
- * Parse the case where we have comment text
- * @param in The input stream for the bug
- * @param bug The bug report for the current bug
- * @param comment The comment to add the text to
- * @throws IOException
- */
- private static void parseCommentText(
- BugReport bug,
- Comment comment, HtmlStreamTokenizer tokenizer)
- throws IOException, ParseException {
-
- StringBuffer sb = new StringBuffer();
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
- if (token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (sb.length() > 0) { // added to ensure whitespace is not lost if adding a tag within a tag
- sb.append(token.getWhitespace());
- }
- if (tag.getTagType() == HtmlTag.Type.PRE && tag.isEndTag()) break;
- }
- else if (token.getType() == Token.TEXT) {
- if (sb.length() > 0) {
- sb.append(token.getWhitespace());
- }
- sb.append((StringBuffer) token.getValue());
- }
- }
-
- HtmlStreamTokenizer.unescape(sb);
- comment.setText(sb.toString());
- bug.addComment(comment);
- }
-
- /**
- * Parse the full html version of the bug
- * @param in - the input stream for the bug
- * @param id - the id of the bug that is to be parsed
- * @return A bug report for the bug that was parsed
- * @throws IOException
- * @throws ParseException
- */
- public static BugReport parseBug(Reader in, int id, String serverName, boolean is218, String userName, String password) throws IOException, ParseException, LoginException
- {
- // create a new bug report and set the parser state to the start state
- BugReport bug = new BugReport(id, serverName);
- ParserState state = ParserState.START;
- Comment comment = null;
- String attribute = null;
-
- HtmlStreamTokenizer tokenizer = new HtmlStreamTokenizer(in, null);
-
- boolean isTitle = false;
- boolean possibleBadLogin = false;
- boolean checkBody = false;
- String title = "";
- StringBuffer body = new StringBuffer();
-
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
-
- // make sure that bugzilla doesn't want us to login
- if(token.getType() == Token.TAG && ((HtmlTag)(token.getValue())).getTagType() == HtmlTag.Type.TITLE && !((HtmlTag)(token.getValue())).isEndTag())
- {
- isTitle = true;
- continue;
- }
-
- if(isTitle)
- {
- // get all of the data in the title tag
- if(token.getType() != Token.TAG)
- {
- title += ((StringBuffer)token.getValue()).toString().toLowerCase() + " ";
- continue;
- }
- else if(token.getType() == Token.TAG && ((HtmlTag)token.getValue()).getTagType() == HtmlTag.Type.TITLE && ((HtmlTag)token.getValue()).isEndTag())
- {
- // check and see if the title seems as though we have wrong login info
- if(title.indexOf("login") != -1 || (title.indexOf("invalid") != -1 && title.indexOf("password") != -1) || title.indexOf("check e-mail") != -1)
- possibleBadLogin = true; // we possibly have a bad login
-
- // if the title starts with error, we may have a login problem, or
- // there is a problem with the bug (doesn't exist), so we must do
- // some more checks
- if(title.startsWith("error"))
- checkBody = true;
-
- isTitle = false;
- title = "";
- }
- continue;
- }
-
- // if we have to add all of the text so that we can check it later
- // for problems with the username and password
- if(checkBody && token.getType() == Token.TEXT)
- {
- body.append((StringBuffer)token.getValue());
- body.append(" ");
- }
-
- // we have found the start of an attribute name
- if ((state == ParserState.ATT_NAME || state == ParserState.START) && token.getType() == Token.TAG ) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == HtmlTag.Type.TD && "right".equalsIgnoreCase(tag.getAttribute("align"))) {
- // parse the attribute's name
- attribute = parseAttributeName(tokenizer);
-
- if (attribute.toLowerCase().startsWith("opened")) {
- // find the colon so we can get the date
- int index = attribute.toLowerCase().indexOf(":");
- String date;
- if (index != -1)
- date = attribute.substring(index + 1).trim();
- else
- date = attribute.substring(6).trim();
-
-
- // set the bugs opened date to be the date we parsed
- bug.setCreated(df.parse(date));
- state = ParserState.ATT_NAME;
- continue;
- }
-
- // in 2.18, the last modified looks like the opened so we need to parse it differently
- if (attribute.toLowerCase().startsWith("last modified")&& is218) {
- // find the colon so we can get the date
- int index = attribute.toLowerCase().indexOf(":");
- String date;
- if (index != -1)
- date = attribute.substring(index + 1).trim();
- else
- date = attribute.substring(6).trim();
-
- // create a new attribute and set the date
- Attribute t = new Attribute("Last Modified");
- t.setValue(date);
-
- // add the attribute to the bug report
- bug.addAttribute(t);
- state = ParserState.ATT_NAME;
- continue;
- }
-
- state = ParserState.ATT_VALUE;
- continue;
- }
- else if (tag.getTagType() == HtmlTag.Type.INPUT && "radio".equalsIgnoreCase(tag.getAttribute("type")) && "knob".equalsIgnoreCase(tag.getAttribute("name")))
- {
- // we found a radio button
- parseOperations(bug, tokenizer, tag, is218);
- }
- }
-
- // we have found the start of attribute values
- if (state == ParserState.ATT_VALUE && token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == HtmlTag.Type.TD) {
- // parse the attribute values
- parseAttributeValue(bug, attribute, tokenizer, userName, password);
-
- state = ParserState.ATT_NAME;
- attribute = null;
- continue;
- }
- }
-
- // we have found the start of a comment
- if (state == ParserState.DESC_START && token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == HtmlTag.Type.I) {
- // parse the comment's start
- comment = parseCommentHead(bug, tokenizer);
-
- state = ParserState.DESC_VALUE;
- continue;
- }
- }
-
- // we have found the start of the comment text
- if (state == ParserState.DESC_VALUE && token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == HtmlTag.Type.PRE) {
- // parse the text of the comment
- parseCommentText(bug, comment, tokenizer);
-
- comment = null;
- state = ParserState.DESC_START;
- continue;
- }
- }
-
- // we have found the description of the bug
- if ((state == ParserState.ATT_NAME || state == ParserState.START) &&
- token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == HtmlTag.Type.PRE) {
- // parse the description for the bug
- parseDescription(bug, tokenizer);
-
- state = ParserState.DESC_START;
- continue;
- }
- }
-
- //parse hidden fields
- if((state == ParserState.ATT_NAME || state == ParserState.START) && token.getType() == Token.TAG)
- {
- HtmlTag tag = (HtmlTag)token.getValue();
- if(tag.getTagType() == HtmlTag.Type.INPUT && tag.getAttribute("type") != null &&"hidden".equalsIgnoreCase(tag.getAttribute("type").trim()))
- {
-
- Attribute a = new Attribute(tag.getAttribute("name"));
- a.setParameterName(tag.getAttribute("name"));
- a.setValue(tag.getAttribute("value"));
- a.setHidden(true);
- bug.addAttribute(a);
- continue;
- }
- }
- }
-
-
-
- // if we are to check the body, make sure that there wasn't a bad login
- if(checkBody)
- {
- String b = body.toString();
- if(b.indexOf("login") != -1 || ((b.indexOf("invalid") != -1 || b.indexOf("not valid") != -1) && b.indexOf("password") != -1) || b.indexOf("check e-mail") != -1)
- possibleBadLogin = true; // we possibly have a bad login
- }
-
- // fixed bug 59
- // if there is no summary or created date, we expect that
- // the bug doesn't exist, so set it to null
-
- // if the bug seems like it doesn't exist, and we suspect a login problem, assume that there was a login problem
- if(bug.getCreated() == null && bug.getAttributes().isEmpty()) {
- if (possibleBadLogin) {
- throw new LoginException("Bugzilla login information incorrect");
- }
- else {
- return null;
- }
- }
- // we are done...return the bug
- return bug;
- }
-
- /**
- * Parse the operations that are allowed on the bug (Assign, Re-open, fix)
- * @param bug The bug to add the operations to
- * @param tokenizer The stream tokenizer for the bug
- * @param tag The last tag that we were on
- */
- private static void parseOperations(BugReport bug, HtmlStreamTokenizer tokenizer, HtmlTag tag, boolean is218) throws ParseException, IOException {
-
- String knobName = tag.getAttribute("value");
- boolean isChecked = false;
- if(tag.getAttribute("checked") != null && tag.getAttribute("checked").equals("checked"))
- isChecked = true;
- StringBuffer sb = new StringBuffer();
-
- Token lastTag = null;
-
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
- if(token.getType() == Token.TAG)
- {
- tag = (HtmlTag)token.getValue();
-
- if(!(tag.getTagType() == HtmlTag.Type.A || tag.getTagType() == HtmlTag.Type.B || tag.getTagType() == HtmlTag.Type.STRONG || tag.getTagType() == HtmlTag.Type.LABEL))
- {
- lastTag = token;
- break;
- }
- else{
-
- if(is218 && tag.getTagType() == HtmlTag.Type.LABEL){
- continue;
- }
- else if(tag.getTagType() == HtmlTag.Type.A || tag.getTagType() == HtmlTag.Type.B || tag.getTagType() == HtmlTag.Type.STRONG){
- sb.append(tag.toString().trim() + " ");
- } else {
- break;
- }
- }
- }
- else if(token.getType() == Token.TEXT && !token.toString().trim().equals("\n"))
- sb.append(token.toString().trim() + " ");
- }
-
- String displayName = HtmlStreamTokenizer.unescape(sb).toString();
- Operation o = new Operation(knobName, displayName);
- o.setChecked(isChecked);
-
- if(lastTag != null)
- {
- tag = (HtmlTag)lastTag.getValue();
- if(tag.getTagType() != HtmlTag.Type.SELECT)
- {
- tokenizer.pushback(lastTag);
- if(tag.getTagType() == HtmlTag.Type.INPUT && !("radio".equalsIgnoreCase(tag.getAttribute("type")) && "knob".equalsIgnoreCase(tag.getAttribute("name"))))
- {
- o.setInputName(((HtmlTag)lastTag.getValue()).getAttribute("name"));
- o.setInputValue(((HtmlTag)lastTag.getValue()).getAttribute("value"));
- }
- }
- else
- {
- Token token = tokenizer.nextToken();
- // parse the options
-
- tag = (HtmlTag)token.getValue();
- o.setUpOptions(((HtmlTag)lastTag.getValue()).getAttribute("name"));
-
-
- while ( token.getType() != Token.EOF) {
- if (token.getType() == Token.TAG) {
- tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == HtmlTag.Type.SELECT && tag.isEndTag()) break;
- if (tag.getTagType() == HtmlTag.Type.OPTION && !tag.isEndTag()) {
- String optionName = tag.getAttribute("value");
- StringBuffer optionText = new StringBuffer();
- for (token = tokenizer.nextToken(); token.getType() == Token.TEXT; token = tokenizer.nextToken()) {
- if (optionText.length() > 0) {
- optionText.append(' ');
- }
- optionText.append((StringBuffer) token.getValue());
- }
- o.addOption(optionText.toString(), optionName);
- }
- else {
- token = tokenizer.nextToken();
- }
- }
- else {
- token = tokenizer.nextToken();
- }
- }
- }
- }
-
- bug.addOperation(o);
- }
-
- /**
- * Enum class for describing current state of Bugzilla report parser.
- */
- private static class ParserState
- {
- /** An instance of the start state */
- protected static final ParserState START = new ParserState("start");
-
- /** An instance of the state when the parser found an attribute name */
- protected static final ParserState ATT_NAME = new ParserState("att_name");
-
- /** An instance of the state when the parser found an attribute value */
- protected static final ParserState ATT_VALUE = new ParserState("att_value");
-
- /** An instance of the state when the parser found a description */
- protected static final ParserState DESC_START = new ParserState("desc_start");
-
- /** An instance of the state when the parser found a description value */
- protected static final ParserState DESC_VALUE = new ParserState("desc_value");
-
- /** State's human-readable name */
- private String name;
-
- /**
- * Constructor
- * @param description - The states human readable name
- */
- private ParserState(String description)
- {
- this.name = description;
- }
-
- @Override
- public String toString()
- {
- return name;
- }
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/HtmlStreamTokenizer.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/HtmlStreamTokenizer.java
deleted file mode 100644
index e0a1e32b0..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/HtmlStreamTokenizer.java
+++ /dev/null
@@ -1,633 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.internal;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.Reader;
-import java.net.URL;
-import java.text.ParseException;
-import java.util.HashMap;
-
-public class HtmlStreamTokenizer {
-
- /** parser state */
- private State state;
- /** reader from which to parse the text */
- private BufferedReader in;
- /** base URL for resolving relative URLs */
- private URL base;
- /** buffer holding the text of the current token */
- private StringBuffer textBuffer;
- /** buffer holding whitespace preceding the current token */
- private StringBuffer whitespaceBuffer;
- /** holds a token that was read and then put back in the queue to be returned again on <code>nextToken</code> call */
- private Token pushbackToken;
- /** holds a character that was read and then determined not to be part of the current token */
- private int pushbackChar;
- /** current quote delimiter (single or double) */
- private int quoteChar;
-
- /**
- * Constructor.
- * @param in reader for the HTML document to tokenize
- * @param base URL for resolving relative URLs
- */
- public HtmlStreamTokenizer(Reader in, URL base) {
- textBuffer = new StringBuffer();
- whitespaceBuffer = new StringBuffer();
- pushbackChar = 0;
- state = State.TEXT;
- this.in = new BufferedReader(in);
- this.base = base;
- }
-
- /**
- * Returns the next token from the stream.
- */
- public Token nextToken() throws IOException, ParseException {
- if (pushbackToken != null) {
- Token token = pushbackToken;
- pushbackToken = null;
- return token;
- }
-
- int closingComment = 0;
-
- textBuffer.setLength(0);
- whitespaceBuffer.setLength(0);
- do {
- int ch;
- if (pushbackChar != 0) {
- ch = pushbackChar;
- pushbackChar = 0;
- }
- else {
- ch = in.read();
- }
- if (ch < 0) {
- State oldState = state;
- state = State.EOF;
- if (textBuffer.length() > 0 && oldState == State.TEXT) {
- return new Token(textBuffer, whitespaceBuffer, false);
- }
- else {
- return new Token();
- }
- }
- if (state == State.TEXT) {
- if (ch == '<') {
- state = State.TAG;
- if (textBuffer.length() > 0)
- return new Token(textBuffer, whitespaceBuffer, false);
- }
- else if (Character.isWhitespace((char)ch)) {
- pushbackChar = ch;
- state = State.WS;
- if (textBuffer.length() > 0)
- return new Token(textBuffer, whitespaceBuffer, false);
- }
- else {
- textBuffer.append((char) ch);
- }
- }
- else if (state == State.WS) {
- if (!Character.isWhitespace((char)ch)) {
- pushbackChar = ch;
- state = State.TEXT;
- }
- else {
- whitespaceBuffer.append((char) ch);
- }
- }
- else if (state == State.TAG) {
- if (ch == '>') {
- state = State.TEXT;
- HtmlTag tag = new HtmlTag(base);
- parseTag(textBuffer.toString(), tag);
- return new Token(tag, whitespaceBuffer);
- }
- if (ch == '<' && textBuffer.length() == 0) {
- textBuffer.append("<<");
- state = State.TEXT;
- }
- else if (ch == '-' && textBuffer.length() == 2 && textBuffer.charAt(1) == '-'
- && textBuffer.charAt(0) == '!') {
- textBuffer.setLength(0);
- state = State.COMMENT;
- }
- else if (ch == '\'' || ch == '"') {
- quoteChar = ch;
- textBuffer.append((char) ch);
- state = State.TAG_QUOTE;
- }
- else {
- textBuffer.append((char) ch);
- }
- }
- else if (state == State.TAG_QUOTE) {
- if (ch == '>') {
- pushbackChar = ch;
- state = State.TAG;
- }
- else {
- textBuffer.append((char) ch);
- if (ch == quoteChar)
- state = State.TAG;
- }
- }
- else if (state == State.COMMENT) {
- if (ch == '>' && closingComment >= 2) {
- textBuffer.setLength(textBuffer.length() - 2);
- closingComment = 0;
- state = State.TEXT;
- return new Token(textBuffer, whitespaceBuffer, true);
- }
- if (ch == '-') {
- closingComment++;
- }
- else {
- closingComment = 0;
- }
- textBuffer.append((char) ch);
- }
- } while (true);
- }
-
- /**
- * Pushes the token back into the queue, to be returned by the subsequent
- * call to <code>nextToken</code>
- */
- public void pushback(Token token) {
- pushbackToken = token;
- }
-
- /**
- * Parses an HTML tag out of a string of characters.
- */
- private static void parseTag(String s, HtmlTag tag) throws ParseException {
-
- int i = 0;
- for (; i < s.length() && Character.isWhitespace(s.charAt(i)); i++){
- // just move forward
- }
- if (i == s.length())
- throw new ParseException("parse empty tag", 0);
-
- int start = i;
- for (; i < s.length() && !Character.isWhitespace(s.charAt(i)); i++){
- // just move forward
- }
- tag.setTagName(s.substring(start, i));
-
- for (; i < s.length() && Character.isWhitespace(s.charAt(i)); i++){
- // just move forward
- }
- if (i == s.length()) {
- return;
- }
- else {
- parseAttributes(tag, s, i);
- return;
- }
- }
-
- /**
- * parses HTML tag attributes from a buffer and sets them in an HtmlTag
- */
- private static void parseAttributes(HtmlTag tag, String s, int i) throws ParseException {
- while (i < s.length()) {
- // skip whitespace
- while (i < s.length() && Character.isWhitespace(s.charAt(i)))
- i++;
-
- if (i == s.length())
- return;
-
- // read the attribute name -- the rule might be looser than the RFC specifies:
- // everything up to a space or an equal sign is included
- int start = i;
- for (; i < s.length() && !Character.isWhitespace(s.charAt(i)) && s.charAt(i) != '='; i++){
- // just move forward
- }
- String attributeName = s.substring(start, i).toLowerCase();
-
- for (; i < s.length() && Character.isWhitespace(s.charAt(i)); i++){
- // just move forward
- }
- if (i == s.length() || s.charAt(i) != '=') {
- // no attribute value
- tag.setAttribute(attributeName, "");
- continue;
- }
-
- // skip whitespace to the start of attribute value
- for (i = i+1; i < s.length() && Character.isWhitespace(s.charAt(i)); i++){
- // just move forward
- }
- if (i == s.length()) return;
-
- // read the attribute value -- the rule for unquoted attribute value is
- // looser than the one in Conolly's W3C 1996 lexical analyzer draft: everything
- // is included up to the next space
- String attributeValue;
- if (s.charAt(i) == '"') {
- start = ++i;
- for (; i < s.length() && s.charAt(i) != '"'; i++){
- // just move forward
- }
- if (i == s.length()) return; // shouldn't happen if input returned by nextToken
- attributeValue = unescape(s.substring(start, i));
- i++;
- }
- else if (s.charAt(i) == '\'') {
- start = ++i;
- for (; i < s.length() && s.charAt(i) != '\''; i++){
- // just move forward
- }
- if (i == s.length()) return; // shouldn't happen if input returned by nextToken
- attributeValue = unescape(s.substring(start, i));
- i++;
- }
- else {
- start = i;
- for (; i < s.length() && !Character.isWhitespace(s.charAt(i)); i++){
- // just move forward
- }
- attributeValue = s.substring(start, i);
- }
- tag.setAttribute(attributeName, attributeValue);
- }
- }
-
- /**
- * Returns a string with HTML escapes changed into their corresponding characters.
- */
- public static String unescape(String s) {
- if (s.indexOf('&') == -1) {
- return s;
- }
- else {
- StringBuffer sb = new StringBuffer(s);
- unescape(sb);
- return sb.toString();
- }
- }
-
- /**
- * Replaces (in-place) HTML escapes in a StringBuffer with their corresponding characters.
- */
- public static StringBuffer unescape(StringBuffer sb) {
- int i = 0; // index into the unprocessed section of the buffer
- int j = 0; // index into the processed section of the buffer
-
- while (i < sb.length()) {
- char ch = sb.charAt(i);
- if (ch == '&') {
- int start = i;
- String escape = null;
- for (i = i+1; i < sb.length(); i++) {
- ch = sb.charAt(i);
- if (!Character.isLetterOrDigit(ch) && !(ch == '#' && i == (start+1))) {
- escape = sb.substring(start+1, i);
- break;
- }
- }
- if (i == sb.length() && i != (start+1)) {
- escape = sb.substring(start + 1);
- }
- if (escape != null) {
- Character character = parseReference(escape);
- if (character != null) {
- ch = character.charValue();
- }
- else {
- // not an HTML escape; rewind
- i = start;
- ch = '&';
- }
- }
- }
- sb.setCharAt(j, ch);
- i++;
- j++;
- }
-
- sb.setLength(j);
- return sb;
- }
-
- /**
- * Parses HTML character and entity references and returns the
- * corresponding character.
- */
- private static Character parseReference(String s) {
- if (s.length() == 0)
- return null;
-
- if (s.charAt(0) == '#') {
- // character reference
- if (s.length() == 1)
- return null;
-
- try {
- int value;
- if (s.charAt(1) == 'x') {
- // Hex reference
- value = Integer.parseInt(s.substring(2), 16);
- }
- else {
- // Decimal reference
- value = Integer.parseInt(s.substring(1));
- }
- return new Character((char)value);
- } catch (NumberFormatException e) {
- return null;
- }
- }
- else {
- return entities.get(s);
- }
- }
-
- /**
- * Class for current token.
- */
- public static class Token {
- public static final Type EOF = new Type();
- public static final Type TEXT = new Type();
- public static final Type TAG = new Type();
- public static final Type COMMENT = new Type();
-
- /** token's type */
- private Type type;
- /** token's value */
- private Object value;
- /** whitespace preceding the token */
- private StringBuffer whitespace;
-
- /**
- * Constructor for the EOF token.
- */
- protected Token() {
- type = EOF;
- value = null;
- whitespace = null;
- }
-
- /**
- * Constructor for the HTML tag tokens.
- */
- protected Token(HtmlTag tag, StringBuffer whitespace) {
- type = TAG;
- value = tag;
- this.whitespace = whitespace;
- }
-
- /**
- * Constructor for regular text and comments.
- */
- protected Token(StringBuffer text, StringBuffer whitespace, boolean comment) {
- if (comment) {
- type = COMMENT;
- }
- else {
- type = TEXT;
- }
- this.value = text;
- this.whitespace = whitespace;
- }
-
- /**
- * Returns the token's type.
- */
- public Type getType() {
- return type;
- }
-
- /**
- * Returns the whitespace preceding the token.
- */
- public StringBuffer getWhitespace() {
- return whitespace;
- }
-
- /**
- * Returns the token's value. This is an HtmlTag for tokens of type <code>TAG</code>
- * and a StringBuffer for tokens of type <code>TEXT</code> and <code>COMMENT</code>.
- * For tokens of type <code>EOF</code>, the value is <code>null</code>.
- */
- public Object getValue() {
- return value;
- }
-
- /**
- * Returns the string representation of the token, including the preceding whitespace.
- */
- @Override
- public String toString() {
- StringBuffer sb = new StringBuffer();
- if (whitespace != null) {
- sb.append(whitespace);
- }
- if (value != null) {
- if (type == TAG) {
- sb.append('<');
- }
- else if (type == COMMENT) {
- sb.append("<!");
- }
- sb.append(value);
- if (type == TAG) {
- sb.append('>');
- }
- else if (type == COMMENT) {
- sb.append("-->");
- }
- }
- return sb.toString();
- }
-
- /**
- * Private enum class for token type.
- */
- private static class Type {
- private Type() {
- // don't need to do anything
- }
- }
- }
-
- /**
- * Enum class for parser state.
- */
- private static class State {
- static final State EOF = new State();
- static final State COMMENT = new State();
- static final State TEXT = new State();
- static final State TAG = new State();
- static final State WS = new State();
- static final State TAG_QUOTE = new State();
-
- private State() {
- // don't need to do anything
- }
- }
-
- /** names and values of HTML entity references */
- private static HashMap<String, Character> entities;
-
- /*
- * Based on ISO 8879.
- *
- * Portions © International Organization for Standardization 1986 Permission
- * to copy in any form is granted for use with conforming SGML systems and
- * applications as defined in ISO 8879, provided this notice is included in
- * all copies.
- *
- */
- static {
- entities = new HashMap<String, Character>();
- entities.put(new String("nbsp"), new Character('\240')); // no-break space = non-breaking space
- entities.put(new String("iexcl"), new Character('\241')); // inverted exclamation mark
- entities.put(new String("cent"), new Character('\242')); // cent sign
- entities.put(new String("pound"), new Character('\243')); // pound sign
- entities.put(new String("curren"), new Character('\244')); // currency sign
- entities.put(new String("yen"), new Character('\245')); // yen sign = yuan sign
- entities.put(new String("brvbar"), new Character('\246')); // broken bar = broken vertical bar
- entities.put(new String("sect"), new Character('\247')); // section sign
- entities.put(new String("uml"), new Character('\250')); // diaeresis = spacing diaeresis
- entities.put(new String("copy"), new Character('\251')); // copyright sign
- entities.put(new String("ordf"), new Character('\252')); // feminine ordinal indicator
- entities.put(new String("laquo"), new Character('\253')); // left-pointing double angle quotation mark = left pointing guillemet
- entities.put(new String("not"), new Character('\254')); // not sign
- entities.put(new String("shy"), new Character('\255')); // soft hyphen = discretionary hyphen
- entities.put(new String("reg"), new Character('\256')); // registered sign = registered trade mark sign
- entities.put(new String("macr"), new Character('\257')); // macron = spacing macron = overline = APL overbar
- entities.put(new String("deg"), new Character('\260')); // degree sign
- entities.put(new String("plusmn"), new Character('\261')); // plus-minus sign = plus-or-minus sign
- entities.put(new String("sup2"), new Character('\262')); // superscript two = superscript digit two = squared
- entities.put(new String("sup3"), new Character('\263')); // superscript three = superscript digit three = cubed
- entities.put(new String("acute"), new Character('\264')); // acute accent = spacing acute
- entities.put(new String("micro"), new Character('\265')); // micro sign
- entities.put(new String("para"), new Character('\266')); // pilcrow sign = paragraph sign
- entities.put(new String("middot"), new Character('\267')); // middle dot = Georgian comma = Greek middle dot
- entities.put(new String("cedil"), new Character('\270')); // cedilla = spacing cedilla
- entities.put(new String("sup1"), new Character('\271')); // superscript one = superscript digit one
- entities.put(new String("ordm"), new Character('\272')); // masculine ordinal indicator
- entities.put(new String("raquo"), new Character('\273')); // right-pointing double angle quotation mark = right pointing guillemet
- entities.put(new String("frac14"), new Character('\274')); // vulgar fraction one quarter = fraction one quarter
- entities.put(new String("frac12"), new Character('\275')); // vulgar fraction one half = fraction one half
- entities.put(new String("frac34"), new Character('\276')); // vulgar fraction three quarters = fraction three quarters
- entities.put(new String("iquest"), new Character('\277')); // inverted question mark = turned question mark
- entities.put(new String("Agrave"), new Character('\300')); // latin capital letter A with grave = latin capital letter A grave
- entities.put(new String("Aacute"), new Character('\301')); // latin capital letter A with acute
- entities.put(new String("Acirc"), new Character('\302')); // latin capital letter A with circumflex
- entities.put(new String("Atilde"), new Character('\303')); // latin capital letter A with tilde
- entities.put(new String("Auml"), new Character('\304')); // latin capital letter A with diaeresis
- entities.put(new String("Aring"), new Character('\305')); // latin capital letter A with ring above = latin capital letter A ring
- entities.put(new String("AElig"), new Character('\306')); // latin capital letter AE = latin capital ligature AE
- entities.put(new String("Ccedil"), new Character('\307')); // latin capital letter C with cedilla
- entities.put(new String("Egrave"), new Character('\310')); // latin capital letter E with grave
- entities.put(new String("Eacute"), new Character('\311')); // latin capital letter E with acute
- entities.put(new String("Ecirc"), new Character('\312')); // latin capital letter E with circumflex
- entities.put(new String("Euml"), new Character('\313')); // latin capital letter E with diaeresis
- entities.put(new String("Igrave"), new Character('\314')); // latin capital letter I with grave
- entities.put(new String("Iacute"), new Character('\315')); // latin capital letter I with acute
- entities.put(new String("Icirc"), new Character('\316')); // latin capital letter I with circumflex
- entities.put(new String("Iuml"), new Character('\317')); // latin capital letter I with diaeresis
- entities.put(new String("ETH"), new Character('\320')); // latin capital letter ETH
- entities.put(new String("Ntilde"), new Character('\321')); // latin capital letter N with tilde
- entities.put(new String("Ograve"), new Character('\322')); // latin capital letter O with grave
- entities.put(new String("Oacute"), new Character('\323')); // latin capital letter O with acute
- entities.put(new String("Ocirc"), new Character('\324')); // latin capital letter O with circumflex
- entities.put(new String("Otilde"), new Character('\325')); // latin capital letter O with tilde
- entities.put(new String("Ouml"), new Character('\326')); // latin capital letter O with diaeresis
- entities.put(new String("times"), new Character('\327')); // multiplication sign
- entities.put(new String("Oslash"), new Character('\330')); // latin capital letter O with stroke = latin capital letter O slash
- entities.put(new String("Ugrave"), new Character('\331')); // latin capital letter U with grave
- entities.put(new String("Uacute"), new Character('\332')); // latin capital letter U with acute
- entities.put(new String("Ucirc"), new Character('\333')); // latin capital letter U with circumflex
- entities.put(new String("Uuml"), new Character('\334')); // latin capital letter U with diaeresis
- entities.put(new String("Yacute"), new Character('\335')); // latin capital letter Y with acute
- entities.put(new String("THORN"), new Character('\336')); // latin capital letter THORN
- entities.put(new String("szlig"), new Character('\337')); // latin small letter sharp s = ess-zed
- entities.put(new String("agrave"), new Character('\340')); // latin small letter a with grave = latin small letter a grave
- entities.put(new String("aacute"), new Character('\341')); // latin small letter a with acute
- entities.put(new String("acirc"), new Character('\342')); // latin small letter a with circumflex
- entities.put(new String("atilde"), new Character('\343')); // latin small letter a with tilde
- entities.put(new String("auml"), new Character('\344')); // latin small letter a with diaeresis
- entities.put(new String("aring"), new Character('\345')); // latin small letter a with ring above = latin small letter a ring
- entities.put(new String("aelig"), new Character('\346')); // latin small letter ae = latin small ligature ae
- entities.put(new String("ccedil"), new Character('\347')); // latin small letter c with cedilla
- entities.put(new String("egrave"), new Character('\350')); // latin small letter e with grave
- entities.put(new String("eacute"), new Character('\351')); // latin small letter e with acute
- entities.put(new String("ecirc"), new Character('\352')); // latin small letter e with circumflex
- entities.put(new String("euml"), new Character('\353')); // latin small letter e with diaeresis
- entities.put(new String("igrave"), new Character('\354')); // latin small letter i with grave
- entities.put(new String("iacute"), new Character('\355')); // latin small letter i with acute
- entities.put(new String("icirc"), new Character('\356')); // latin small letter i with circumflex
- entities.put(new String("iuml"), new Character('\357')); // latin small letter i with diaeresis
- entities.put(new String("eth"), new Character('\360')); // latin small letter eth
- entities.put(new String("ntilde"), new Character('\361')); // latin small letter n with tilde
- entities.put(new String("ograve"), new Character('\362')); // latin small letter o with grave
- entities.put(new String("oacute"), new Character('\363')); // latin small letter o with acute
- entities.put(new String("ocirc"), new Character('\364')); // latin small letter o with circumflex
- entities.put(new String("otilde"), new Character('\365')); // latin small letter o with tilde
- entities.put(new String("ouml"), new Character('\366')); // latin small letter o with diaeresis
- entities.put(new String("divide"), new Character('\367')); // division sign
- entities.put(new String("oslash"), new Character('\370')); // latin small letter o with stroke = latin small letter o slash
- entities.put(new String("ugrave"), new Character('\371')); // latin small letter u with grave
- entities.put(new String("uacute"), new Character('\372')); // latin small letter u with acute
- entities.put(new String("ucirc"), new Character('\373')); // latin small letter u with circumflex
- entities.put(new String("uuml"), new Character('\374')); // latin small letter u with diaeresis
- entities.put(new String("yacute"), new Character('\375')); // latin small letter y with acute
- entities.put(new String("thorn"), new Character('\376')); // latin small letter thorn
- entities.put(new String("yuml"), new Character('\377')); // latin small letter y with diaeresis
-
- // Special characters
- entities.put(new String("quot"), new Character('\42')); // quotation mark = APL quote
- entities.put(new String("amp"), new Character('\46')); // ampersand
- entities.put(new String("lt"), new Character('\74')); // less-than sign
- entities.put(new String("gt"), new Character('\76')); // greater-than sign
- // Latin Extended-A
- entities.put(new String("OElig"), new Character('\u0152')); // latin capital ligature OE
- entities.put(new String("oelig"), new Character('\u0153')); // latin small ligature oe, ligature is a misnomer, this is a separate character in some languages
- entities.put(new String("Scaron"), new Character('\u0160')); // latin capital letter S with caron
- entities.put(new String("scaron"), new Character('\u0161')); // latin small letter s with caron
- entities.put(new String("Yuml"), new Character('\u0178')); // latin capital letter Y with diaeresis
- // Spacing Modifier Letters
- entities.put(new String("circ"), new Character('\u02c6')); // modifier letter circumflex accent
- entities.put(new String("tilde"), new Character('\u02dc')); // small tilde
- // General punctuation
- entities.put(new String("ensp"), new Character('\u2002')); // en space
- entities.put(new String("emsp"), new Character('\u2003')); // em space
- entities.put(new String("thinsp"), new Character('\u2009')); // thin space
- entities.put(new String("zwnj"), new Character('\u200c')); // zero width non-joiner
- entities.put(new String("zwj"), new Character('\u200d')); // zero width joiner
- entities.put(new String("lrm"), new Character('\u200e')); // left-to-right mark
- entities.put(new String("rlm"), new Character('\u200f')); // right-to-left mark
- entities.put(new String("ndash"), new Character('\u2013')); // en dash
- entities.put(new String("mdash"), new Character('\u2014')); // em dash
- entities.put(new String("lsquo"), new Character('\u2018')); // left single quotation mark
- entities.put(new String("rsquo"), new Character('\u2019')); // right single quotation mark
- entities.put(new String("sbquo"), new Character('\u201a')); // single low-9 quotation mark
- entities.put(new String("ldquo"), new Character('\u201c')); // left double quotation mark
- entities.put(new String("rdquo"), new Character('\u201d')); // right double quotation mark
- entities.put(new String("bdquo"), new Character('\u201e')); // double low-9 quotation mark
- entities.put(new String("dagger"), new Character('\u2020')); // dagger
- entities.put(new String("Dagger"), new Character('\u2021')); // double dagger
- entities.put(new String("permil"), new Character('\u2030')); // per mille sign
- entities.put(new String("lsaquo"), new Character('\u2039')); // single left-pointing angle quotation mark, not yet standardized
- entities.put(new String("rsaquo"), new Character('\u203a')); // single right-pointing angle quotation mark, not yet standardized
- entities.put(new String("euro"), new Character('\u20ac')); // euro sign
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/HtmlTag.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/HtmlTag.java
deleted file mode 100644
index 40e3586ea..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/HtmlTag.java
+++ /dev/null
@@ -1,340 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.internal;
-
-import java.net.URL;
-import java.text.ParseException;
-import java.util.HashMap;
-import java.util.Iterator;
-import javax.swing.text.html.HTML.Tag;
-
-/**
- * Class representing an HTML (3.2) tag and its attributes.
- */
-public class HtmlTag {
- /** tag's name */
- private String tagName;
- /** tag type enum */
- private Tag tagType;
- /** true if the tag is a closing tag */
- private boolean isEndTag;
- /** tag's attributes (keys are lowercase attribute names) */
- private HashMap<String, String> attributes;
- /** tag's base url */
- private URL baseUrl;
-
- /**
- * Basic constructor. The tag is uninitialized.
- */
- public HtmlTag() {
- tagName = null;
- tagType = Type.UNKNOWN;
- isEndTag = false;
- attributes = new HashMap<String, String>();
- baseUrl = null;
- }
-
- /**
- * Copy constructor.
- */
- @SuppressWarnings("unchecked")
- public HtmlTag(HtmlTag htmltag) {
- tagName = null;
- tagType = Type.UNKNOWN;
- isEndTag = false;
- attributes = new HashMap<String, String>();
- tagName = new String(htmltag.tagName);
- baseUrl = htmltag.baseUrl;
- tagType = htmltag.tagType;
- isEndTag = htmltag.isEndTag;
- attributes = (HashMap)htmltag.attributes.clone();
- }
-
- /**
- * Constructor.
- */
- public HtmlTag(String s) throws ParseException {
- attributes = new HashMap<String, String>();
- setTagName(s);
- baseUrl = null;
- }
-
- /**
- * Constructor creating an otherwise empty tag, but with a given base url.
- */
- public HtmlTag(URL url) {
- tagName = null;
- tagType = Type.UNKNOWN;
- isEndTag = false;
- attributes = new HashMap<String, String>();
- baseUrl = url;
- }
-
- /**
- * Returns the tag's type (linked to the tag's name).
- */
- public Tag getTagType() {
- return tagType;
- }
-
- /**
- * Returns the tag's name (e.g., "HEAD", "P", etc.).
- */
- public String getTagName() {
- return tagName;
- }
-
- /**
- * Sets the tag's name and type, if known.
- *
- * @throws IllegalArgumentException
- * if the argument is <code>null</code> or empty string
- */
- public void setTagName(String s) throws IllegalArgumentException {
- if (s == null || s.length() == 0) throw new IllegalArgumentException("Empty tag name");
- if (s.charAt(0) == '/') {
- isEndTag = true;
- s = s.substring(1);
- }
- if (s.length() == 0) throw new IllegalArgumentException("Empty tag name");
- tagName = s;
- tagType = tags.get(s.toUpperCase());
- if (tagType == null) {
- tagType = Type.UNKNOWN;
- }
- }
-
- /**
- * Returns <code>true</code> if the tag is a closing tag.
- */
- public boolean isEndTag() {
- return isEndTag;
- }
-
- /**
- * Returns the value of a tag's attribute as an integer.
- */
- public int getIntAttribute(String s) throws NumberFormatException {
- return Integer.parseInt(getAttribute(s));
- }
-
- /**
- * Returns the value of a tag's attribute, or NULL if it doesn't exist.
- */
- public String getAttribute(String s) {
- return attributes.get(s);
- }
-
- /**
- * Returns <code>true</code> if the tag contains attribute with the given name.
- */
- public boolean hasAttribute(String s) {
- return getAttribute(s) != null;
- }
-
- /**
- * Sets the value of a tag's attribute.
- */
- public void setAttribute(String name, String value) {
- attributes.put(name.toLowerCase(), value);
- }
-
- public StringBuffer getURLs() {
- StringBuffer sb = new StringBuffer();
-
- Iterator<String> attributeNames = attributes.keySet().iterator();
- Iterator<String> attributeValues = attributes.values().iterator();
- while (attributeNames.hasNext()) {
- String attributeName = attributeNames.next();
- if (attributeName.compareTo("href") == 0 || attributeName.compareTo("src") == 0) {
- String target = attributeValues.next();
- if (!target.endsWith(".jpg")
- && !target.endsWith(".gif")
- && !target.endsWith(".css")
- && !target.endsWith(".js")
- && !target.startsWith("mailto")
- && target.lastIndexOf("#") == -1
- && target.length() > 0) {
-
- for (int i = 0; i < target.length(); i++) {
- char ch = target.charAt(i);
- if (!Character.isWhitespace(ch)) {
- if (i > 0) target = target.substring(i+1);
- break;
- }
- }
- target = target.replace('\\', '/');
-
- if (target.startsWith("news:") || (target.indexOf("://") != -1 && target.length() >= 7)) {
- // Absolute URL
- if (target.substring(0, 7).compareToIgnoreCase("http://") == 0)
- sb.append(target);
- }
- else {
- // Relative URL
-
- String baseDir = baseUrl.getPath();
- int lastSep = -1;
- for (int i = 0; i < baseDir.length(); i++) {
- char ch = baseDir.charAt(i);
- if (ch == '/') lastSep = i;
- else if (ch == '?') break;
- }
- if (lastSep >= 0) baseDir = baseDir.substring(0, lastSep);
- while (baseDir.length() > 1 && baseDir.endsWith("/.")) {
- baseDir = baseDir.substring(0, baseDir.length()-2);
- }
-
- if (target.startsWith("//")) {
- sb.append(baseUrl.getProtocol() + ":" + target);
- }
- else if (target.startsWith("/")) {
- sb.append(baseUrl.getProtocol() + "://" + baseUrl.getHost() + target);
- }
- else {
- while (target.startsWith("../")) {
- if (baseDir.length() > 0) {
- // can't go above root
- baseDir = baseDir.substring(0, baseDir.lastIndexOf("/"));
- }
- target = target.substring(3);
- }
- sb.append(baseUrl.getProtocol() + "://" + baseUrl.getHost() + baseDir + "/" + target);
- }
- }
- }
- }
- else {
- attributeValues.next();
- }
- }
-
- return sb;
- }
-
- @Override
- public String toString() {
- StringBuffer sb = new StringBuffer();
- sb.append('<');
- if (isEndTag)
- sb.append('/');
- sb.append(tagName);
- Iterator<String> keys = attributes.keySet().iterator();
- Iterator<String> values = attributes.values().iterator();
- while (keys.hasNext()) {
- String name = keys.next();
- sb.append(' ');
- sb.append(name);
- String value = values.next();
- if (value.length() > 0) {
- sb.append("=\"");
- sb.append(value);
- sb.append('"');
- }
- }
- sb.append('>');
-
- return sb.toString();
- }
-
- /**
- * Enum class for tag types.
- */
- public static class Type extends Tag {
- public static final Tag UNKNOWN = new Tag();
- public static final Tag THEAD = new Type("THEAD");
- public static final Tag DOCTYPE = new Type("!DOCTYPE");
- public static final Tag LABEL = new Type("LABEL");
-
- private Type(String name) {
- super(name);
- }
- }
-
- private static HashMap<String, Tag> tags;
- static {
- tags = new HashMap<String, Tag>();
- tags.put(new String("A"), Tag.A);
- tags.put(new String("ADDRESS"), Tag.ADDRESS);
- tags.put(new String("APPLET"), Tag.APPLET);
- tags.put(new String("AREA"), Tag.AREA);
- tags.put(new String("B"), Tag.B);
- tags.put(new String("BASE"), Tag.BASE);
- tags.put(new String("BASEFONT"), Tag.BASEFONT);
- tags.put(new String("BIG"), Tag.BIG);
- tags.put(new String("BLOCKQUOTE"), Tag.BLOCKQUOTE);
- tags.put(new String("BODY"), Tag.BODY);
- tags.put(new String("BR"), Tag.BR);
- tags.put(new String("CAPTION"), Tag.CAPTION);
- tags.put(new String("CENTER"), Tag.CENTER);
- tags.put(new String("CITE"), Tag.CITE);
- tags.put(new String("CODE"), Tag.CODE);
- tags.put(new String("DD"), Tag.DD);
- tags.put(new String("DFN"), Tag.DFN);
- tags.put(new String("DIR"), Tag.DIR);
- tags.put(new String("DIV"), Tag.DIV);
- tags.put(new String("DL"), Tag.DL);
- tags.put(new String("!DOCTYPE"), Type.DOCTYPE);
- tags.put(new String("DT"), Tag.DT);
- tags.put(new String("EM"), Tag.EM);
- tags.put(new String("FONT"), Tag.FONT);
- tags.put(new String("FORM"), Tag.FORM);
- tags.put(new String("FRAME"), Tag.FRAME);
- tags.put(new String("FRAMESET"), Tag.FRAMESET);
- tags.put(new String("H1"), Tag.H1);
- tags.put(new String("H2"), Tag.H2);
- tags.put(new String("H3"), Tag.H3);
- tags.put(new String("H4"), Tag.H4);
- tags.put(new String("H5"), Tag.H5);
- tags.put(new String("H6"), Tag.H6);
- tags.put(new String("HEAD"), Tag.HEAD);
- tags.put(new String("HTML"), Tag.HTML);
- tags.put(new String("HR"), Tag.HR);
- tags.put(new String("I"), Tag.I);
- tags.put(new String("IMG"), Tag.IMG);
- tags.put(new String("INPUT"), Tag.INPUT);
- tags.put(new String("ISINDEX"), Tag.ISINDEX);
- tags.put(new String("KBD"), Tag.KBD);
- tags.put(new String("LI"), Tag.LI);
- tags.put(new String("LABEL"), Type.LABEL);
- tags.put(new String("LINK"), Tag.LINK);
- tags.put(new String("MAP"), Tag.MAP);
- tags.put(new String("MENU"), Tag.MENU);
- tags.put(new String("META"), Tag.META);
- tags.put(new String("NOFRAMES"), Tag.NOFRAMES);
- tags.put(new String("OBJECT"), Tag.OBJECT);
- tags.put(new String("OL"), Tag.OL);
- tags.put(new String("OPTION"), Tag.OPTION);
- tags.put(new String("P"), Tag.P);
- tags.put(new String("PARAM"), Tag.PARAM);
- tags.put(new String("PRE"), Tag.PRE);
- tags.put(new String("S"), Tag.S);
- tags.put(new String("SAMP"), Tag.SAMP);
- tags.put(new String("SCRIPT"), Tag.SCRIPT);
- tags.put(new String("SELECT"), Tag.SELECT);
- tags.put(new String("SMALL"), Tag.SMALL);
- tags.put(new String("STRONG"), Tag.STRONG);
- tags.put(new String("STYLE"), Tag.STYLE);
- tags.put(new String("SUB"), Tag.SUB);
- tags.put(new String("SUP"), Tag.SUP);
- tags.put(new String("TABLE"), Tag.TABLE);
- tags.put(new String("TD"), Tag.TD);
- tags.put(new String("TEXTAREA"), Tag.TEXTAREA);
- tags.put(new String("TH"), Tag.TH);
- tags.put(new String("THEAD"), Type.THEAD);
- tags.put(new String("TITLE"), Tag.TITLE);
- tags.put(new String("TR"), Tag.TR);
- tags.put(new String("TT"), Tag.TT);
- tags.put(new String("U"), Tag.U);
- tags.put(new String("UL"), Tag.UL);
- tags.put(new String("VAR"), Tag.VAR);
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/KeywordParser.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/KeywordParser.java
deleted file mode 100644
index 719d96ba0..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/KeywordParser.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.internal;
-
-import java.io.IOException;
-import java.io.Reader;
-import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.security.auth.login.LoginException;
-
-import org.eclipse.mylar.bugzilla.core.internal.HtmlStreamTokenizer.Token;
-
-
-/**
- * Parses Bugzilla keywords page to determine keywords valid in this installation
- *
- * @author Shawn Minto
- */
-public class KeywordParser
-{
- /** Tokenizer used on the stream */
- private static HtmlStreamTokenizer tokenizer;
-
- /**
- * Constructor.
- *
- * @param in
- * The input stream for the keywords page.
- */
- public KeywordParser(Reader in) {
- tokenizer = new HtmlStreamTokenizer(in, null);
- }
-
- /**
- * Parse the keyword page for the valid products that a bug can be logged for
- *
- * @return A list of the keywordds that we can enter bugs for
- * @throws IOException
- * @throws ParseException
- */
- public List<String> getKeywords() throws IOException, ParseException, LoginException {
- ArrayList<String> keywords = new ArrayList<String>();
-
- boolean isTitle = false;
- boolean possibleBadLogin = false;
- String title = "";
-
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
-
- // make sure that bugzilla doesn't want us to login
- if(token.getType() == Token.TAG && ((HtmlTag)(token.getValue())).getTagType() == HtmlTag.Type.TITLE && !((HtmlTag)(token.getValue())).isEndTag())
- {
- isTitle = true;
- continue;
- }
-
- if(isTitle)
- {
- // get all of the data from inside of the title tag
- if(token.getType() != Token.TAG)
- {
- title += ((StringBuffer)token.getValue()).toString().toLowerCase() + " ";
- continue;
- }
- else if(token.getType() == Token.TAG && ((HtmlTag)token.getValue()).getTagType() == HtmlTag.Type.TITLE && ((HtmlTag)token.getValue()).isEndTag())
- {
- // check if we may have a problem with login by looking at the title of the page
- if((title.indexOf("login") != -1 || (title.indexOf("invalid") != -1 && title.indexOf("password") != -1) || title.indexOf("check e-mail") != -1 || title.indexOf("error") != -1))
- possibleBadLogin = true;
- isTitle = false;
- title = "";
- }
- continue;
- }
-
- if (token.getType() == Token.TAG ) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == HtmlTag.Type.TR && !tag.isEndTag())
- {
- token = tokenizer.nextToken();
- if(token.getType() != Token.EOF && token.getType() == Token.TAG)
- {
- tag = (HtmlTag)token.getValue();
- if(tag.getTagType() != HtmlTag.Type.TH)
- continue;
- else
- {
- if(tag.getAttribute("align") == null || !"left".equalsIgnoreCase(tag.getAttribute("align")))
- parseKeywords(keywords);
-
- }
- }
- continue;
- }
- }
- }
-
- // if we don't have any keywords and suspect that there was a login problem, assume we had a login problem
- if(keywords == null && possibleBadLogin)
- throw new LoginException("Bugzilla login information incorrect");
- return keywords;
- }
-
- /**
- * Parse the keywords that we can enter bugs for
- * @param keywords The list of keywords to add this new product to
- * @return
- */
- private void parseKeywords(List<String> keywords) throws IOException, ParseException {
- StringBuffer sb = new StringBuffer();
-
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken())
- {
- if(token.getType() == Token.TAG)
- {
- HtmlTag tag = (HtmlTag)token.getValue();
- if(tag.getTagType() == HtmlTag.Type.TH && (tag.isEndTag() || !"left".equalsIgnoreCase(tag.getAttribute("align"))))
- break;
- }
- else if(token.getType() == Token.TEXT)
- sb.append(token.toString());
- }
-
- String prod = HtmlStreamTokenizer.unescape(sb).toString();
- if(prod.endsWith(":"))
- prod = prod.substring(0, prod.length() - 1);
- keywords.add(prod);
-
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken())
- {
- if(token.getType() == Token.TAG)
- {
- HtmlTag tag = (HtmlTag)token.getValue();
- if(tag.getTagType() == HtmlTag.Type.TR && tag.isEndTag())
- break;
-
- }
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/NewBugParser.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/NewBugParser.java
deleted file mode 100644
index 242ff4f82..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/NewBugParser.java
+++ /dev/null
@@ -1,409 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.internal;
-
-import java.io.IOException;
-import java.io.Reader;
-import java.text.ParseException;
-
-import javax.security.auth.login.LoginException;
-
-import org.eclipse.mylar.bugzilla.core.Attribute;
-import org.eclipse.mylar.bugzilla.core.NewBugModel;
-import org.eclipse.mylar.bugzilla.core.internal.HtmlStreamTokenizer.Token;
-
-
-/**
- * @author Shawn Minto
- *
- * This class parses the valid attribute values for a new bug
- */
-public class NewBugParser {
- /** Tokenizer used on the stream */
- private HtmlStreamTokenizer tokenizer;
-
- /** Flag for whether we need to try to get the product or not */
- private static boolean getProd = false;
-
- public NewBugParser(Reader in) {
- tokenizer = new HtmlStreamTokenizer(in, null);
- }
-
- /**
- * Parse the new bugs valid attributes
- * @param nbm A reference to a NewBugModel where all of the information is stored
- * @throws IOException
- * @throws ParseException
- * @throws LoginException
- */
- public void parseBugAttributes(NewBugModel nbm, boolean retrieveProducts) throws IOException, ParseException, LoginException
- {
- nbm.attributes.clear(); // clear any attriubtes in bug model from a previous product
-
- NewBugParser.getProd = retrieveProducts;
-
- // create a new bug report and set the parser state to the start state
- ParserState state = ParserState.START;
- String attribute = null;
-
- boolean isTitle = false;
- boolean possibleBadLogin = false;
- boolean isErrorState = false;
- String title = "";
- // Default error message
- String errorMsg = "Bugzilla could not get the needed bug attribute since your login name or password is incorrect. Please check your settings in the bugzilla preferences.";
-
- for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
- // make sure that bugzilla doesn't want us to login
- if(token.getType() == Token.TAG && ((HtmlTag)(token.getValue())).getTagType() == HtmlTag.Type.TITLE && !((HtmlTag)(token.getValue())).isEndTag()) {
- isTitle = true;
- continue;
- }
-
- if(isTitle) {
- // get all of the data in the title tag to compare with
- if(token.getType() != Token.TAG) {
- title += ((StringBuffer)token.getValue()).toString().toLowerCase() + " ";
- continue;
- }
- else if(token.getType() == Token.TAG && ((HtmlTag)token.getValue()).getTagType() == HtmlTag.Type.TITLE && ((HtmlTag)token.getValue()).isEndTag()) {
- // check if the title looks like we may have a problem with login
- if(title.indexOf("login") != -1) {
- possibleBadLogin = true; // generic / default msg passed to constructor re: bad login
- }
- if((title.indexOf("invalid") != -1 && title.indexOf("password") != -1) || title.indexOf("check e-mail") != -1 || title.indexOf("error") != -1) {
- possibleBadLogin = true;
- isErrorState = true; // set flag so appropriate msg is provide for the exception
- errorMsg = ""; // error message will be parsed from error page
- }
-
- isTitle = false;
- title = "";
- }
- continue;
- }
-
-
- // we have found the start of an attribute name
- if ((state == ParserState.ATT_NAME || state == ParserState.START) && token.getType() == Token.TAG ) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == HtmlTag.Type.TD && "right".equalsIgnoreCase(tag.getAttribute("align"))) {
- // parse the attribute's name
- attribute = parseAttributeName();
- if(attribute == null) continue;
- state = ParserState.ATT_VALUE;
- continue;
- }
-
- if (tag.getTagType() == HtmlTag.Type.TD && "#ff0000".equalsIgnoreCase(tag.getAttribute("bgcolor"))) {
- state = ParserState.ERROR;
- continue;
- }
- }
-
- // we have found the start of attribute values
- if (state == ParserState.ATT_VALUE && token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == HtmlTag.Type.TD) {
- // parse the attribute values
- parseAttributeValue(nbm, attribute);
-
- state = ParserState.ATT_NAME;
- attribute = null;
- continue;
- }
- }
- // page being parsed contains an Error message
- // parse error message so it can be given to the constructor of the exception
- // so an appropriate error message is displayed
- if(state == ParserState.ERROR && isErrorState){
- // tag should be text token, not a tag
- // get the error message
- if(token.getType() == Token.TEXT) {
- // get string value of next token to add to error messgage
- // unescape the string so any escape sequences parsed appear unescaped in the details pane
- errorMsg += HtmlStreamTokenizer.unescape( ((StringBuffer)token.getValue()).toString() ) + " ";
- }
- // expect </font> tag to indicate end of error end msg
- // set next state to continue parsing remainder of page
- else if(token.getType() == Token.TAG && ((HtmlTag)(token.getValue())).getTagType() == HtmlTag.Type.FONT && ((HtmlTag)(token.getValue())).isEndTag()) {
- state = ParserState.ATT_NAME;
- }
- continue;
- }
-
- if((state == ParserState.ATT_NAME || state == ParserState.START) && token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag)token.getValue();
- if(tag.getTagType() == HtmlTag.Type.INPUT && tag.getAttribute("type") != null &&"hidden".equalsIgnoreCase(tag.getAttribute("type").trim())) {
- Attribute a = new Attribute(tag.getAttribute("name"));
- a.setParameterName(tag.getAttribute("name"));
- a.setValue(tag.getAttribute("value"));
- a.setHidden(true);
- nbm.attributes.put(a.getName(), a);
- continue;
- }
- }
- }
-
- // if we have no attributes and we suspect a bad login, we assume that the login info was bad
- if(possibleBadLogin && (nbm.getAttributes() == null || nbm.getAttributes().size() == 0)) {
- throw new LoginException(errorMsg);
- }
- }
-
- /**
- * Parse the case where we have found an attribute name
- * @param tokenizer The tokenizer to use to find the name
- * @return The name of the attribute
- * @throws IOException
- * @throws ParseException
- */
- private String parseAttributeName()
- throws IOException, ParseException {
- StringBuffer sb = new StringBuffer();
-
- parseTableCell(sb);
- HtmlStreamTokenizer.unescape(sb);
- // remove the colon if there is one
- if(sb.length() == 0)
- return null;
- if (sb.charAt(sb.length() - 1) == ':') {
- sb.deleteCharAt(sb.length() - 1);
- }
- return sb.toString();
- }
-
- /**
- * Reads text into a StringBuffer until it encounters a close table cell tag (&lt;/TD&gt;) or start of another cell.
- * The text is appended to the existing value of the buffer. <b>NOTE:</b> Does not handle nested cells!
- * @param tokenizer
- * @param sb
- * @throws IOException
- * @throws ParseException
- */
- private void parseTableCell(StringBuffer sb)
- throws IOException, ParseException {
- boolean noWhitespace = false;
- for (HtmlStreamTokenizer.Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
- if (token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == HtmlTag.Type.TD) {
- if (!tag.isEndTag()) {
- tokenizer.pushback(token);
- }
- break;
- }
- noWhitespace = token.getWhitespace().length() == 0;
- }
- else if (token.getType() == Token.TEXT) {
- // if there was no whitespace between the tag and the
- // preceding text, don't insert whitespace before this text
- // unless it is there in the source
- if (!noWhitespace && token.getWhitespace().length() > 0 && sb.length() > 0) {
- sb.append(' ');
- }
- sb.append((StringBuffer)token.getValue());
- }
- }
- }
-
- /**
- * Parse the case where we have found attribute values
- * @param nbm The NewBugModel that is to contain information about a new bug
- * @param attributeName The name of the attribute that we are parsing
- * @param tokenizer The tokenizer to use for parsing
- * @throws IOException
- * @throws ParseException
- */
- private void parseAttributeValue(
- NewBugModel nbm,
- String attributeName)
- throws IOException, ParseException {
-
- HtmlStreamTokenizer.Token token = tokenizer.nextToken();
- if (token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == HtmlTag.Type.SELECT && !tag.isEndTag()) {
- String parameterName = tag.getAttribute("name");
- parseSelect(nbm, attributeName, parameterName);
- }
- else if (tag.getTagType() == HtmlTag.Type.INPUT && !tag.isEndTag()) {
- parseInput(nbm, attributeName, tag);
- }
- else if (!tag.isEndTag()) {
- parseAttributeValueCell(nbm, attributeName);
- }
- }
- else {
- StringBuffer sb = new StringBuffer();
- if (token.getType() == Token.TEXT) {
- sb.append((StringBuffer) token.getValue());
- parseAttributeValueCell(nbm, attributeName, sb);
- }
- }
- }
-
- /**
- * Parse the case where the attribute value is just text in a table cell
- * @param attributeName The name of the attribute we are parsing
- * @param tokenizer The tokenizer to use for parsing
- * @throws IOException
- * @throws ParseException
- */
- private void parseAttributeValueCell(NewBugModel nbm, String attributeName)
- throws IOException, ParseException {
- StringBuffer sb = new StringBuffer();
-
- parseAttributeValueCell(nbm, attributeName, sb);
- }
-
- private void parseAttributeValueCell(
- NewBugModel nbm,
- String attributeName,
- StringBuffer sb)
- throws IOException, ParseException {
-
- parseTableCell(sb);
- HtmlStreamTokenizer.unescape(sb);
-
- // if we need the product we will get it
- if(getProd && attributeName.equalsIgnoreCase("product")) {
- nbm.setProduct(sb.toString());
- }
- }
-
- /**
- * Parse the case where the attribute value is an input
- * @param nbm The new bug model to add information that we get to
- * @param attributeName The name of the attribute that we are parsing
- * @param tag The HTML tag that we are currently on
- * @throws IOException
- */
- private static void parseInput(
- NewBugModel nbm,
- String attributeName,
- HtmlTag tag)
- throws IOException {
-
- Attribute a = new Attribute(attributeName);
- a.setParameterName(tag.getAttribute("name"));
- String value = tag.getAttribute("value");
- if (value == null) value = "";
-
- // if we found the summary, add it to the bug report
- if (attributeName.equalsIgnoreCase("summary")) {
- nbm.setSummary(value);
- }
- else if (attributeName.equalsIgnoreCase("Attachments")) {
- // do nothing - not a problem after 2.14
- }
- else if (attributeName.equalsIgnoreCase("add cc")) {
- // do nothing
- }
- else if (attributeName.toLowerCase().startsWith("cc")) {
- // do nothing cc's are options not inputs
- }
- else {
- // otherwise just add the attribute
- a.setValue(value);
- nbm.attributes.put(attributeName, a);
- }
- }
-
- /**
- * Parse the case where the attribute value is an option
- * @param nbm The NewBugModel that we are storing information in
- * @param attributeName The name of the attribute that we are parsing
- * @param parameterName The SELECT tag's name
- * @param tokenizer The tokenizer that we are using for parsing
- * @throws IOException
- * @throws ParseException
- */
- private void parseSelect(
- NewBugModel nbm,
- String attributeName,
- String parameterName)
- throws IOException, ParseException {
-
- boolean first = false;
- Attribute a = new Attribute(attributeName);
- a.setParameterName(parameterName);
-
- HtmlStreamTokenizer.Token token = tokenizer.nextToken();
- while ( token.getType() != Token.EOF) {
- if (token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == HtmlTag.Type.SELECT && tag.isEndTag()) break;
- if (tag.getTagType() == HtmlTag.Type.OPTION && !tag.isEndTag()) {
- String optionName = tag.getAttribute("value");
- boolean selected = tag.hasAttribute("selected");
- StringBuffer optionText = new StringBuffer();
- for (token = tokenizer.nextToken(); token.getType() == Token.TEXT; token = tokenizer.nextToken()) {
- if (optionText.length() > 0) {
- optionText.append(' ');
- }
- optionText.append((StringBuffer) token.getValue());
- }
- a.addOptionValue(optionText.toString(), optionName);
-
- if (selected || first) {
- a.setValue(optionText.toString());
- first = false;
- }
- }
- else {
- token = tokenizer.nextToken();
- }
- }
- else {
- token = tokenizer.nextToken();
- }
- }
-
- if(!(nbm.attributes).containsKey(attributeName)) {
- (nbm.attributes).put(attributeName, a);
- }
- }
-
- /**
- * Enum class for describing current state of Bugzilla report parser.
- */
- private static class ParserState
- {
- /** An instance of the start state */
- protected static final ParserState START = new ParserState("start");
-
- /** An instance of the state when the parser found an attribute name */
- protected static final ParserState ATT_NAME = new ParserState("att_name");
-
- /** An instance of the state when the parser found an attribute value */
- protected static final ParserState ATT_VALUE = new ParserState("att_value");
- /** An instance of the state when an error page is found */
- protected static final ParserState ERROR = new ParserState("error");
- /** State's human-readable name */
- private String name;
-
- /**
- * Constructor
- * @param description - The states human readable name
- */
- private ParserState(String description)
- {
- this.name = description;
- }
-
- @Override
- public String toString()
- {
- return name;
- }
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/ProductConfiguration.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/ProductConfiguration.java
deleted file mode 100644
index 3e6542f69..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/ProductConfiguration.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.internal;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Class describing the configuration of products and components for a given
- * Bugzilla installation.
- */
-public class ProductConfiguration implements Serializable {
-
- /** Automatically generated serialVersionUID */
- private static final long serialVersionUID = 3257004354337519410L;
-
- private Map<String, ProductEntry> products = new HashMap<String, ProductEntry>();
-
- public ProductConfiguration() {
- super();
- }
-
- /**
- * Adds a product to the configuration.
- */
- public void addProduct(String name) {
- if (!products.containsKey(name)) {
- ProductEntry product = new ProductEntry(name);
- products.put(name, product);
- }
- }
-
- /**
- * Returns an array of names of current products.
- */
- public String[] getProducts() {
- return products.keySet().toArray(new String[0]);
- }
-
- /**
- * Returns an array of names of component that exist for a given product
- * or <code>null</code> if the product does not exist.
- */
- public String[] getComponents(String product) {
- ProductEntry entry = products.get(product);
- if (entry != null) {
- return entry.getComponents();
- }
- else return null;
- }
-
- /**
- * Returns an array of names of versions that exist for a given product
- * or <code>null</code> if the product does not exist.
- */
- public String[] getVersions(String product) {
- ProductEntry entry = products.get(product);
- if (entry != null) {
- return entry.getVersions();
- }
- else return null;
- }
-
- /**
- * Returns an array of names of valid severity values.
- */
- public String[] getSeverities() {
- return new String[] {"blocker", "critical", "major", "normal", "minor", "trivial", "enhancement"};
- }
-
- /**
- * Returns an array of names of valid OS values.
- */
- public String[] getOSs() {
- return new String[] {"All", "Windows XP", "Linux", "other"};
- }
-
- /**
- * Returns an array of names of valid platform values.
- */
- public String[] getPlatforms() {
- return new String[] {"All", "Macintosh", "PC"};
- }
-
- /**
- * Returns an array of names of valid platform values.
- */
- public String[] getPriorities() {
- return new String[] {"P1", "P2", "P3", "P4", "P5"};
- }
-
- /**
- * Adds a component to the given product.
- */
- public void addComponent(String product, String component) {
- ProductEntry entry = products.get(product);
- if (entry == null) {
- entry = new ProductEntry(product);
- products.put(product, entry);
- }
- entry.addComponent(component);
- }
-
- /**
- * Adds a list of components to the given product.
- */
- public void addComponents(String product, String[] components) {
- ProductEntry entry = products.get(product);
- if (entry == null) {
- entry = new ProductEntry(product);
- products.put(product, entry);
- }
- for (int i = 0; i < components.length; i++) {
- String component = components[i];
- entry.addComponent(component);
- }
- }
-
- /**
- * Adds a list of components to the given product.
- */
- public void addVersions(String product, String[] versions) {
- ProductEntry entry = products.get(product);
- if (entry == null) {
- entry = new ProductEntry(product);
- products.put(product, entry);
- }
- for (int i = 0; i < versions.length; i++) {
- String version = versions[i];
- entry.addVersion(version);
- }
- }
-
- /**
- * Container for product information: name, components.
- */
- private static class ProductEntry implements Serializable {
-
- /** Automatically generated serialVersionUID */
- private static final long serialVersionUID = 3977018465733391668L;
-
- String productName;
- List<String> components = new ArrayList<String>();
- List<String> versions = new ArrayList<String>();
-
- ProductEntry(String name) {
- this.productName = name;
- }
- String[] getComponents() {
- return components.toArray(new String[0]);
- }
- void addComponent(String componentName) {
- if (!components.contains(componentName)) {
- components.add(componentName);
- }
- }
- String[] getVersions() {
- return versions.toArray(new String[0]);
- }
- void addVersion(String name) {
- if (!versions.contains(name)) {
- versions.add(name);
- }
- }
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/ProductConfigurationFactory.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/ProductConfigurationFactory.java
deleted file mode 100644
index f773edff7..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/ProductConfigurationFactory.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.internal;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.ArrayList;
-
-import org.eclipse.mylar.bugzilla.core.BugzillaPlugin;
-
-
-/**
- * A factory for creating ProductConfiguration objects that encapsulate valid
- * combinations of products, components, and versions.
- */
-public class ProductConfigurationFactory {
- /** Singleton factory instance */
- private static ProductConfigurationFactory instance;
-
- /**
- * Private constructor to ensure singleton instances.
- */
- private ProductConfigurationFactory() {
- // no initial setup needed
- }
-
- /**
- * Returns the factory singletoninstance.
- */
- public static synchronized ProductConfigurationFactory getInstance() {
- if (instance == null) {
- instance = new ProductConfigurationFactory();
- }
- return instance;
- }
-
- /**
- * Builds a ProductConfiguration object by parsing the source of the
- * Bugzilla query page.
- */
- public ProductConfiguration getConfiguration(String server) throws IOException {
- URL serverURL = new URL(server + "/query.cgi");
- ProductConfiguration configuration = new ProductConfiguration();
- ArrayList<String []> componentsMatrix = new ArrayList<String []>();
- ArrayList<String []> versionsMatrix = new ArrayList<String []>();
- URLConnection c = serverURL.openConnection();
- BufferedReader in = new BufferedReader(new InputStreamReader(c.getInputStream()));
- String line;
- while ((line = in.readLine()) != null) {
- if (line.startsWith(" cpts[")) {
- String [] components = parseComponents(line);
- if (components.length > 0) componentsMatrix.add(components);
- }
- else if (line.startsWith(" vers[")) {
- String [] versions = parseComponents(line);
- if (versions.length > 0) versionsMatrix.add(versions);
- }
- else if (line.indexOf("<select name=\"product\"") != -1) {
- String [] products = parseProducts(in);
- for (int i = 0; i < products.length; i++) {
- String product = products[i];
- configuration.addProduct(product);
- // If components don't jibe with the products, just don't make them available.
- if (products.length == componentsMatrix.size()) {
- configuration.addComponents(product, componentsMatrix.get(i));
- }
-
- // If versions don't jibe with the products, just don't make them available
- if (products.length == versionsMatrix.size()) {
- configuration.addVersions(product, versionsMatrix.get(i));
- }
- }
- }
- }
- return configuration;
- }
-
- /**
- * Returns an array of valid components or versions by parsing the JavaScript
- * array in the Bugzilla query page.
- */
- protected String [] parseComponents(String line) {
- ArrayList<String> components = new ArrayList<String>();
- int start = line.indexOf('\'');
- if (start >= 0) {
- boolean inName = true;
- StringBuffer name = new StringBuffer();
- for (int i = start+1; i < line.length(); i++){
- char ch = line.charAt(i);
- if (inName) {
- if (ch == '\'') {
- components.add(name.toString());
- name.setLength(0);
- inName = false;
- }
- else name.append(ch);
- }
- else {
- if (ch == '\'') {
- inName = true;
- }
- }
- }
- }
- return components.toArray(new String[0]);
- }
-
- /**
- * Returns an array of valid product names by parsing the product selection list
- * in the Bugzilla query page.
- */
- protected String[] parseProducts(BufferedReader in) throws IOException {
- ArrayList<String> products = new ArrayList<String>();
- String line;
- while ((line = in.readLine()) != null) {
- if (line.indexOf("</select>") != -1) break;
- int optionIndex = line.indexOf("<option value=\"");
- if (optionIndex != -1) {
- boolean inName = false;
- StringBuffer name = new StringBuffer();
- for (int i = optionIndex; i< line.length(); i++) {
- char ch = line.charAt(i);
- if (inName) {
- if (ch == '<') {
- products.add(name.toString());
- break;
- }
- else name.append(ch);
- }
- else {
- if (ch == '>') {
- inName = true;
- }
- }
- }
- }
- }
- return products.toArray(new String[0]);
- }
-
- /**
- * Restores a ProductConfiguration from a file.
- */
- public ProductConfiguration readConfiguration(File file) throws IOException {
- if (!file.exists()) return null;
- FileInputStream fin = null;
- ProductConfiguration configuration = null;
- try {
- fin = new FileInputStream(file);
- ObjectInputStream in = new ObjectInputStream(fin);
- configuration = (ProductConfiguration) in.readObject();
- } catch (ClassNotFoundException e) {
- BugzillaPlugin.log(e);
- IOException ex = new IOException();
- ex.initCause(e);
- throw ex;
- } finally {
- if (fin != null)
- fin.close();
- }
- return configuration;
- }
-
- /**
- * Saves a ProductConfiguration to a file.
- */
- public void writeConfiguration(ProductConfiguration configuration, File file) throws IOException {
- FileOutputStream fout = null;
- try {
- fout = new FileOutputStream(file);
- ObjectOutputStream out = new ObjectOutputStream(fout);
- out.writeObject(configuration);
- } finally {
- if (fout != null)
- fout.close();
- }
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/ProductParser.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/ProductParser.java
deleted file mode 100644
index b33b7e706..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/internal/ProductParser.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.internal;
-
-import java.io.IOException;
-import java.io.Reader;
-import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.security.auth.login.LoginException;
-
-import org.eclipse.mylar.bugzilla.core.internal.HtmlStreamTokenizer.Token;
-
-
-
-/**
- * @author Shawn Minto
- *
- * This class is used to parse the available products to log a bug for
- */
-public class ProductParser
-{
- /** Tokenizer used on the stream */
- private HtmlStreamTokenizer tokenizer;
-
- public ProductParser(Reader in) {
- tokenizer = new HtmlStreamTokenizer(in, null);
- }
-
- /**
- * Parse the product page for the valid products that a bug can be logged for
- * @param in The input stream for the products page
- * @return A list of the products that we can enter bugs for
- * @throws IOException
- * @throws ParseException
- */
- public List<String> getProducts() throws IOException, ParseException, LoginException
- {
- ArrayList<String> products = null;
-
- boolean isTitle = false;
- boolean possibleBadLogin = false;
- String title = "";
-
- for (HtmlStreamTokenizer.Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
-
- // make sure that bugzilla doesn't want us to login
- if(token.getType() == Token.TAG && ((HtmlTag)(token.getValue())).getTagType() == HtmlTag.Type.TITLE && !((HtmlTag)(token.getValue())).isEndTag())
- {
- isTitle = true;
- continue;
- }
-
- if(isTitle)
- {
- // get all of the data in the title tag
- if(token.getType() != Token.TAG)
- {
- title += ((StringBuffer)token.getValue()).toString().toLowerCase() + " ";
- continue;
- }
- else if(token.getType() == Token.TAG && ((HtmlTag)token.getValue()).getTagType() == HtmlTag.Type.TITLE && ((HtmlTag)token.getValue()).isEndTag())
- {
- // compare the title to see if we think that there is a problem with login
- if((title.indexOf("login") != -1 || (title.indexOf("invalid") != -1 && title.indexOf("password") != -1) || title.indexOf("check e-mail") != -1 || title.indexOf("error") != -1))
- possibleBadLogin = true;
- isTitle = false;
- title = "";
- }
- continue;
- }
-
- if (token.getType() == Token.TAG ) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == HtmlTag.Type.TR)
- {
- token = tokenizer.nextToken();
- if(token.getType() != Token.EOF && token.getType() == Token.TAG)
- {
- tag = (HtmlTag)token.getValue();
- if(tag.getTagType() != HtmlTag.Type.TH)
- continue;
- else
- {
- if(products == null)
- products = new ArrayList<String>();
- parseProducts(products);
-
- }
- }
- continue;
- }
- }
- }
-
- // if we have no products and we suspect a login error, assume that it was a login error
- if(products == null && possibleBadLogin)
- throw new LoginException("Bugzilla login information incorrect");
- return products;
- }
-
- /**
- * Parse the products that we can enter bugs for
- * @param products The list of products to add this new product to
- * @return
- */
- private void parseProducts(List<String> products) throws IOException, ParseException
- {
- StringBuffer sb = new StringBuffer();
-
- for (HtmlStreamTokenizer.Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken())
- {
- if(token.getType() == Token.TAG)
- {
- HtmlTag tag = (HtmlTag)token.getValue();
- if(tag.getTagType() == HtmlTag.Type.TH && tag.isEndTag())
- break;
- }
- else if(token.getType() == Token.TEXT)
- sb.append(token.toString());
- }
-
- String prod = HtmlStreamTokenizer.unescape(sb).toString();
- if(prod.endsWith(":"))
- prod = prod.substring(0, prod.length() - 1);
- products.add(prod);
-
- for (HtmlStreamTokenizer.Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken())
- {
- if(token.getType() == Token.TAG)
- {
- HtmlTag tag = (HtmlTag)token.getValue();
- if(tag.getTagType() == HtmlTag.Type.TR && tag.isEndTag())
- break;
-
- }
- }
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/offline/OfflineReportsFile.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/offline/OfflineReportsFile.java
deleted file mode 100644
index 197090aec..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/offline/OfflineReportsFile.java
+++ /dev/null
@@ -1,333 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.offline;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.List;
-
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.mylar.bugzilla.core.BugzillaPlugin;
-import org.eclipse.mylar.bugzilla.core.IBugzillaBug;
-import org.eclipse.mylar.bugzilla.core.IBugzillaConstants;
-
-
-/**
- * Class to persist the data for the offline reports list
- */
-public class OfflineReportsFile
-{
- /** The file that the offline reports are written to */
- private File file;
-
- /** The directory to where the file is located */
- /** A list of offline reports */
- private ArrayList<IBugzillaBug> list = new ArrayList<IBugzillaBug>();
-
-
- /** Sort by bug ID */
- public static final int ID_SORT = 0;
-
- /** Sort by bug type (locally created or not) */
- public static final int TYPE_SORT = 4;
-
- /** Default sort by bug TYPE */
- public static int lastSel = TYPE_SORT;
-
- /** The bug id of the most recently created offline report. */
- protected int latestNewBugId = 0;
-
- /**
- * Constructor that reads the offline reports data persisted in the plugin's state
- * directory, if it exists.
- *
- * @param file
- * The file where the offline reports are persisted
- * @throws IOException
- * Error opening or closing the offline reports file
- * @throws ClassNotFoundException
- * Error deserializing objects from the offline reports file
- */
- public OfflineReportsFile(File file) throws IOException {
- this.file = file;
- if (file.exists()) {
- readFile();
- }
- }
-
- /**
- * Add an offline report to the offline reports list
- * @param entry The bug to add
- */
- public void add(IBugzillaBug entry) {
- // add the entry to the list and write the file to disk
- list.add(entry);
- writeFile();
- }
-
- /**
- * Updates the offline reports list.
- * Used when existing offline reports are modified and saved.
- */
- public void update() {
- writeFile();
- }
-
- /**
- * @return The id that a new offline bug should use. The value changes each
- * time this method is called.
- */
- public int getNextOfflineBugId() {
- latestNewBugId++;
- return latestNewBugId;
- }
-
- /**
- * Find a bug in the offline reports list.
- *
- * @param id
- * The bug id that we are looking for
- * @return The index of the bug in the array if it exists, else -1. Locally
- * created bugs are ignored.
- */
- public int find(int id) {
- for (int i = 0; i < list.size(); i++) {
- IBugzillaBug currBug = list.get(i);
- if (currBug != null && (currBug.getId() == id) && !currBug.isLocallyCreated())
- return i;
- }
- return -1;
- }
-
- /**
- * Get the list of offline reports
- * @return The list of offline reports
- */
- public ArrayList<IBugzillaBug> elements() {
- return list;
- }
-
- /**
- * Write the offline reports to disk
- */
- private void writeFile() {
- try {
- ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file));
-
- // Write the size of the list so that we can read it back in easier
- out.writeInt(list.size());
-
- out.writeInt(latestNewBugId);
-
- // write each element in the array list
- for (int i = 0; i < list.size(); i++) {
- IBugzillaBug item = list.get(i);
- try{
- out.writeObject(item);
- }catch (IOException e) {
- // put up a message and log the error if there is a problem writing to the file
- BugzillaPlugin.log(new Status(Status.WARNING, IBugzillaConstants.PLUGIN_ID, Status.WARNING, "Unable to write bug object: " + item.getId(), e));
- }
- }
- out.close();
- }
- catch (IOException e) {
- // put up a message and log the error if there is a problem writing to the file
- MessageDialog.openError(null,
- "I/O Error",
- "Bugzilla could not write to offline reports file.");
- BugzillaPlugin.log(e);
- }
- }
-
- /**
- * Read the offline reports in from the file on disk
- *
- * @throws IOException
- * Error opening or closing the offline reports file
- * @throws ClassNotFoundException
- * Error deserializing objects from the offline reports file
- */
- private void readFile() throws IOException {
- ObjectInputStream in = new ObjectInputStream(new FileInputStream(file));
-
- // get the number of offline reports in the file
- int size = in.readInt();
-
- // get the bug id of the most recently created offline report
- latestNewBugId = in.readInt();
-
- // read in each of the offline reports in the file
- for (int nX = 0; nX < size; nX++) {
- try {
- IBugzillaBug item = (IBugzillaBug) in.readObject();
- // add the offline report to the offlineReports list
- list.add(item);
- } catch (ClassNotFoundException e){
- // ignore this since we can't do anything
- BugzillaPlugin.log(new Status(Status.ERROR, IBugzillaConstants.PLUGIN_ID, Status.ERROR, "Unable to read bug object", e));
- }
- }
- in.close();
- }
-
- /**
- * Remove some bugs from the offline reports list
- * @param indicesToRemove An array of the indicies of the bugs to be removed
- */
- public void remove(List<IBugzillaBug> sel) {
- list.removeAll(sel);
-
- // rewrite the file so that the data is persistant
- writeFile();
- }
-
- /**
- * Remove all of the items in the offline reports menu
- */
- public void removeAll() {
- list.clear();
-
- // rewrite the file so that the data is persistant
- writeFile();
- }
-
- /**
- * Function to sort the offline reports list
- * @param sortOrder The way to sort the bugs in the offline reports list
- */
- public void sort(int sortOrder) {
- IBugzillaBug[] a = list.toArray(new IBugzillaBug[list.size()]);
-
- // decide which sorting method to use and sort the offline reports
- switch(sortOrder) {
- case ID_SORT:
- Arrays.sort(a, new SortID());
- lastSel = ID_SORT;
- break;
- case TYPE_SORT:
- Arrays.sort(a, new SortType());
- lastSel = TYPE_SORT;
- break;
- }
-
- // remove all of the elements from the list so that we can re-add
- // them in a sorted order
- list.clear();
-
- // add the sorted elements to the list and the table
- for (int j = 0; j < a.length; j++) {
- add(a[j]);
- }
- }
-
- /**
- * Inner class to sort by bug id
- */
- private class SortID implements Comparator<IBugzillaBug> {
- public int compare(IBugzillaBug f1, IBugzillaBug f2) {
- Integer id1 = f1.getId();
- Integer id2 = f2.getId();
-
- if(id1 != null && id2 != null)
- return id1.compareTo(id2);
- else if(id1 == null && id2 != null)
- return -1;
- else if(id1 != null && id2 == null)
- return 1;
- else
- return 0;
- }
- }
-
- /**
- * Inner class to sort by bug type (locally created or from the server)
- */
- private class SortType implements Comparator<IBugzillaBug> {
- public int compare(IBugzillaBug f1, IBugzillaBug f2) {
- boolean isLocal1 = f1.isLocallyCreated();
- boolean isLocal2 = f2.isLocallyCreated();
-
- if (isLocal1 && !isLocal2) {
- return -1;
- }
- else if (!isLocal1 && isLocal2) {
- return 1;
- }
-
- // If they are both the same type, sort by ID
- Integer id1 = f1.getId();
- Integer id2 = f2.getId();
-
- if(id1 != null && id2 != null)
- return id1.compareTo(id2);
- else if(id1 == null && id2 != null)
- return -1;
- else if(id1 != null && id2 == null)
- return 1;
- else
- return 0;
- }
- }
-
- /**
- * Saves the given report to the offlineReportsFile, or, if it already
- * exists in the file, updates it.
- *
- * @param bug
- * The bug to add/update.
- */
- public static void saveOffline(IBugzillaBug bug) {
- OfflineReportsFile file = BugzillaPlugin.getDefault().getOfflineReports();
- // If there is already an offline report for this bug, update the file.
- if (bug.isSavedOffline()) {
- file.update();
- }
- // If this bug has not been saved offline before, add it to the file.
- else {
- int index = -1;
- // If there is already an offline report with the same id, don't save this report.
- if ((index = file.find(bug.getId())) >= 0) {
- removeReport(getOfflineBugs().get(index));
-// MessageDialog.openInformation(null, "Bug's Id is already used.", "There is already a bug saved offline with an identical id.");
-// return;
- }
- file.add(bug);
- bug.setOfflineState(true);
- file.sort(OfflineReportsFile.lastSel);
- }
- }
-
- public static List<IBugzillaBug> getOfflineBugs(){
- OfflineReportsFile file = BugzillaPlugin.getDefault().getOfflineReports();
- return file.elements();
- }
-
- /**
- * Removes the given report from the offlineReportsFile.
- *
- * @param bug
- * The report to remove.
- */
- public static void removeReport(IBugzillaBug bug) {
- ArrayList<IBugzillaBug> bugList = new ArrayList<IBugzillaBug>();
- bugList.add(bug);
- BugzillaPlugin.getDefault().getOfflineReports().remove(bugList);
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaContentProvider.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaContentProvider.java
deleted file mode 100644
index 0fb2ae641..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaContentProvider.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.search;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.search.ui.text.AbstractTextSearchResult;
-
-/**
- * An abstract implementation of a content provider for a Bugzilla search.
- * @see org.eclipse.jface.viewers.IContentProvider
- */
-public abstract class BugzillaContentProvider implements IStructuredContentProvider {
-
- /** An empty array of objects */
- protected final Object[] EMPTY_ARR= new Object[0];
-
- /** The Bugzilla search result for this content provider */
- protected AbstractTextSearchResult bugResult;
-
- public void dispose() {
- // nothing to do
- }
-
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- if (newInput instanceof BugzillaSearchResult) {
- initialize((BugzillaSearchResult) newInput);
- }
- }
-
- /**
- * Initializes the content provider with the given search result.
- * @param result The search result to use with this content provider
- */
- protected void initialize(AbstractTextSearchResult result) {
- bugResult= result;
- }
-
- /**
- * This method is called whenever the set of matches for the given elements changes.
- * @param updatedElements The array of objects that has to be refreshed
- * @see @see org.eclipse.search.ui.text.AbstractTextSearchViewPage#elementsChanged(java.lang.Object[])
- */
- public abstract void elementsChanged(Object[] updatedElements);
-
- /**
- * Clears the viewer.
- */
- public abstract void clear();
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaIdSearchSorter.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaIdSearchSorter.java
deleted file mode 100644
index fcc3bb457..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaIdSearchSorter.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.search;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.mylar.bugzilla.core.IBugzillaConstants;
-
-
-/**
- * Sorts results of Bugzilla search by bug id.
- */
-public class BugzillaIdSearchSorter extends ViewerSorter {
-
- /**
- * Returns a negative, zero, or positive number depending on whether the
- * first bug's id is less than, equal to, or greater than the second bug's
- * id.
- * <p>
- *
- * @see org.eclipse.jface.viewers.ViewerSorter#compare(org.eclipse.jface.viewers.Viewer,
- * java.lang.Object, java.lang.Object)
- */
- @Override
- public int compare(Viewer viewer, Object e1, Object e2) {
- try {
- // cast the object and get its bug id
- IMarker entry1 = (IMarker) e1;
- Integer id1 = (Integer) entry1.getAttribute(
- IBugzillaConstants.HIT_MARKER_ATTR_ID);
-
- // cast the other object and get its bug id
- IMarker entry2 = (IMarker) e2;
- Integer id2 = (Integer) entry2.getAttribute(
- IBugzillaConstants.HIT_MARKER_ATTR_ID);
-
- // if neither is null, compare the bug id's
- if (id1 != null && id2 != null) {
- return id1.compareTo(id2);
- }
- }
- catch (Exception ignored) {
- // ignore if there is a problem
- }
-
- // if that didn't work, use the default compare method
- return super.compare(viewer, e1, e2);
- }
-
- /**
- * Returns the category of the given element. The category is a number used
- * to allocate elements to bins; the bins are arranged in ascending numeric
- * order. The elements within a bin are arranged via a second level sort
- * criterion.
- * <p>
- *
- * @see org.eclipse.jface.viewers.ViewerSorter#category(Object)
- */
- @Override
- public int category(Object element) {
- try {
- IMarker marker = (IMarker) element;
-
- // return the bugs id
- if (marker.getType().equals(IBugzillaConstants.HIT_MARKER_ID)) {
- return ((Integer)marker.getAttribute(IBugzillaConstants.HIT_MARKER_ATTR_ID)).intValue();
- }
- }
- catch (Exception ignored) {
- // ignore if there is a problem
- }
-
- // if that didn't work, use the default category method
- return super.category(element);
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaLabelProvider.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaLabelProvider.java
deleted file mode 100644
index 23fe8d0e8..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaLabelProvider.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.search;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.mylar.bugzilla.core.IBugzillaConstants;
-import org.eclipse.mylar.bugzilla.core.internal.HtmlStreamTokenizer;
-
-/**
- * Label provider for Bugzilla search items.
- */
-public class BugzillaLabelProvider extends LabelProvider
-{
- /** A list of the default severity labels */
- private static final String [] severityLabel = {"blocker", "critical", "major", "normal", "minor", "trivial", "enhancement"};
-
- /** A list of the default priority labels */
- private static final String [] priorityLabel = {"P1", "P2", "P3", "P4", "P5", "--"};
-
- /** A list of the default state labels */
- private static final String [] stateLabel = {"Unconfirmed", "New", "Assigned", "Reopened", "Resolved", "Verified", "Closed"};
-
- /** A list of the default result labels */
- private static final String [] resultLabel = {"", "fixed", "invalid", "wont fix", "later", "remind", "duplicate", "works for me"};
-
- /**
- * Returns the text for the label of the given element.
- *
- * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
- */
- @Override
- public String getText(Object element) {
- if (element instanceof IMarker) {
-
- try {
- IMarker marker = (IMarker) element;
-
- // get the severity of the bug
- String severity = severityLabel[((Integer) marker
- .getAttribute(IBugzillaConstants.HIT_MARKER_ATTR_SEVERITY))
- .intValue()];
-
- // get the priority of the bug
- String priority = priorityLabel[((Integer) marker
- .getAttribute(IBugzillaConstants.HIT_MARKER_ATTR_PRIORITY))
- .intValue()];
-
- // get the state of the bug
- String state = stateLabel[((Integer) marker
- .getAttribute(IBugzillaConstants.HIT_MARKER_ATTR_STATE))
- .intValue()];
-
- // get the resolution of the bug
- String result = resultLabel[((Integer) marker
- .getAttribute(IBugzillaConstants.HIT_MARKER_ATTR_RESULT))
- .intValue()];
-
- // return a string containing the information about the bug to
- // be displayed
- // in the searh window
- String assignedTo = HtmlStreamTokenizer.unescape(marker.getAttribute(IBugzillaConstants.HIT_MARKER_ATTR_OWNER).toString());
- String description = HtmlStreamTokenizer.unescape(marker.getAttribute(IBugzillaConstants.HIT_MARKER_ATTR_DESC).toString());
- return "Bug "
- + marker.getAttribute(IBugzillaConstants.HIT_MARKER_ATTR_ID)
- + " ("
- + severity
- + " - "
- + priority
- + " - "
- + state
- + (result.length() > 0 ? " " + result : "")
- + ") "
- + " - "
- + description
- + " ("
- + assignedTo
- + ") ";
- }
- catch (Exception ignored) {
- // ignore if there is a problem
- }
- }
-
- // return an empty string if there is a problem
- return "";
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaPrioritySearchSorter.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaPrioritySearchSorter.java
deleted file mode 100644
index c0e899b1a..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaPrioritySearchSorter.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.search;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.mylar.bugzilla.core.IBugzillaConstants;
-
-
-/**
- * Sorts results of Bugzilla search by bug priority.
- */
-public class BugzillaPrioritySearchSorter extends ViewerSorter {
-
- /**
- * Returns a negative, zero, or positive number depending on whether the
- * first bug's priority goes before, is the same as, or goes after the
- * second element's priority.
- * <p>
- *
- * @see org.eclipse.jface.viewers.ViewerSorter#compare(org.eclipse.jface.viewers.Viewer,
- * java.lang.Object, java.lang.Object)
- */
- @Override
- public int compare(Viewer viewer, Object e1, Object e2) {
- try {
- // cast the object and get the bugs priority
- IMarker entry1 = (IMarker) e1;
- Integer pr1 = (Integer) entry1.getAttribute(
- IBugzillaConstants.HIT_MARKER_ATTR_PRIORITY);
-
- // cast the other object and get the bugs priority
- IMarker entry2 = (IMarker) e2;
- Integer pr2 = (Integer) entry2.getAttribute(
- IBugzillaConstants.HIT_MARKER_ATTR_PRIORITY);
-
- // if neither is null, compare the bug priority
- if (pr1 != null && pr2 != null) {
- return pr1.compareTo(pr2);
- }
- }
- catch (Exception ignored) {
- // do nothing
- }
-
- // if that didn't work, use the default compare method
- return super.compare(viewer, e1, e2);
- }
-
- /**
- * Returns the category of the given element. The category is a number used
- * to allocate elements to bins; the bins are arranged in ascending numeric
- * order. The elements within a bin are arranged via a second level sort
- * criterion.
- * <p>
- *
- * @see org.eclipse.jface.viewers.ViewerSorter#category(Object)
- */
- @Override
- public int category(Object element) {
- try {
- IMarker marker = (IMarker) element;
-
- // return the bugs id
- if (marker.getType().equals(IBugzillaConstants.HIT_MARKER_ID)) {
- return ((Integer)marker.getAttribute(IBugzillaConstants.HIT_MARKER_ATTR_ID)).intValue();
- }
- }
- catch (Exception ignored) {
- // ignore if there is a problem
- }
-
- // if that didn't work, use the default category method
- return super.category(element);
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaQueryPageParser.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaQueryPageParser.java
deleted file mode 100644
index b788acaf5..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaQueryPageParser.java
+++ /dev/null
@@ -1,513 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.search;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.UnsupportedEncodingException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLConnection;
-import java.net.URLEncoder;
-import java.text.ParseException;
-import java.util.ArrayList;
-
-import javax.security.auth.login.LoginException;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.mylar.bugzilla.core.BugzillaPlugin;
-import org.eclipse.mylar.bugzilla.core.BugzillaPreferences;
-import org.eclipse.mylar.bugzilla.core.IBugzillaConstants;
-import org.eclipse.mylar.bugzilla.core.internal.HtmlStreamTokenizer;
-import org.eclipse.mylar.bugzilla.core.internal.HtmlTag;
-import org.eclipse.mylar.bugzilla.core.internal.HtmlStreamTokenizer.Token;
-
-
-/**
- * Class to parse the update data from the server
- *
- * author: kvesik
- *
- * created on: Feb 25, 2003
- *
- */
-public class BugzillaQueryPageParser
-{
- /** The name of the bugzilla server */
- private String urlString;
-
- /** The input stream */
- private BufferedReader in = null;
-
- /** True if the operation was successful */
- private boolean successful;
-
- /** Exception to be displayed if there was an error*/
- private Exception exception;
-
- /** The progress monitor for the update */
- private IProgressMonitor monitor;
-
- /** Selection lists as ArrayLists */
- private ArrayList<String> statusValues = new ArrayList<String>();
- private ArrayList<String> preselectedStatusValues = new ArrayList<String>();
- private ArrayList<String> resolutionValues = new ArrayList<String>();
- private ArrayList<String> severityValues = new ArrayList<String>();
- private ArrayList<String> priorityValues = new ArrayList<String>();
- private ArrayList<String> hardwareValues = new ArrayList<String>();
- private ArrayList<String> osValues = new ArrayList<String>();
- private ArrayList<String> productValues = new ArrayList<String>();
- private ArrayList<String> componentValues = new ArrayList<String>();
- private ArrayList<String> versionValues = new ArrayList<String>();
- private ArrayList<String> targetValues = new ArrayList<String>();
-
- /**
- * Constructor
- * @param monitor The progress monitor for the update
- */
- public BugzillaQueryPageParser(IProgressMonitor monitor) throws LoginException
- {
- this.monitor = monitor;
-
-
- // get the servers url
- urlString = BugzillaPlugin.getDefault().getServerName() + "/query.cgi";
-
- // if we are dealing with 2.18 we need to use the folowing in the
- // query string to get the right search page
- if(BugzillaPreferences.is218()){
- urlString += "?format=advanced";
- }
-
- // use the user name and password if we have it
- if(BugzillaPreferences.getUserName() != null && !BugzillaPreferences.getUserName().equals("") && BugzillaPreferences.getPassword() != null && !BugzillaPreferences.getPassword().equals(""))
- {
- try {
- // if we are dealing with 2.18 we already have the ? from before so we need
- // an & instead. If other version, still add ?
- if(BugzillaPreferences.is218())
- urlString+="&";
- else
- urlString+="?";
-
- urlString += "GoAheadAndLogIn=1&Bugzilla_login=" + URLEncoder.encode(BugzillaPreferences.getUserName(), "UTF-8") + "&Bugzilla_password=" + URLEncoder.encode(BugzillaPreferences.getPassword(), "UTF-8");
- }
- catch (UnsupportedEncodingException e) {
- /*
- * Do nothing. Every implementation of the Java platform is required
- * to support the standard charset "UTF-8"
- */
- }
- }
-
- successful = false;
-
- // try to get the new options from the page
- parseDocument();
- if (!successful) {
- if (exception instanceof MalformedURLException) {
- MessageDialog.openError(null, "Unsupported Protocol", "The server that was specified for Bugzilla is not supported by your JVM.\nPlease make sure that you are using a JDK that supports SSL.");
- }
- else {
- // if there was a problem with the operation, display an error message
- ErrorDialog.openError( null,
- "Incomplete operation",
- "Bugzilla could not complete the the update.",
- new Status( IStatus.ERROR,
- IBugzillaConstants.PLUGIN_ID,
- IStatus.OK,
- exception.getMessage(),
- exception));
- }
- }
- }
-
- /**
- * Get whether the update was successful
- * @return <code>true</code> if the update was successful
- */
- public boolean wasSuccessful()
- {
- return successful;
- }
-
- /**
- * Parse the data from the server for the query options
- */
- private void parseDocument() throws LoginException {
- try {
- // if the operation has been cancelled already, return
- if (monitor.isCanceled()) {
- monitor.done();
- return;
- }
-
- // try to connect to the server
- monitor.subTask("Connecting to server");
-
- URL url = new URL(this.urlString);
- URLConnection cntx = BugzillaPlugin.getDefault().getUrlConnection(url);
- if(cntx != null){
- InputStream input = cntx.getInputStream();
- if(input != null) {
-
- monitor.worked(1);
-
- // initialize the input stream
- in = new BufferedReader(new InputStreamReader(input));
-
- // increment the position of the status monitor
- monitor.worked(2);
-
- // check if the operation has been cancelled so we can end if it has been
- if (monitor.isCanceled())
- monitor.done();
- else
- monitor.subTask("Reading values from server");
-
- // parse the data from the server
- parseQueryPage(in);
-
- // set the operation to being successful
- successful = true;
- }
- }
-
- }
- catch (LoginException e) {
- throw e;
- }
- catch (Exception e) {
- // if we can't connect, log the problem and save the exception to handle later
- monitor.done();
- exception = e;
- BugzillaPlugin.log(new Status( IStatus.ERROR,
- IBugzillaConstants.PLUGIN_ID,
- IStatus.OK,
- "Failed to create URL and open input stream: " + urlString,
- e));
- return;
- }
- finally {
- try {
- if (in != null)
- in.close();
- } catch (IOException exitAnyway) {
- in = null;
- }
- }
- }
-
- /**
- * Check if all of the lists of options are empty
- * @return true if all of the options lists are empty
- */
- private boolean allListsEmpty() {
- return statusValues.isEmpty() && preselectedStatusValues.isEmpty()
- && resolutionValues.isEmpty() && severityValues.isEmpty()
- && priorityValues.isEmpty() && hardwareValues.isEmpty()
- && osValues.isEmpty() && productValues.isEmpty()
- && componentValues.isEmpty() && versionValues.isEmpty()
- && targetValues.isEmpty();
- }
-
- /**
- * Get the new status values
- * @return An array of the new status values
- */
- public String[] getStatusValues() {
- String[] array = new String[statusValues.size()];
-
- // create the array and return it
- for (int i = 0; i < statusValues.size(); i++)
- array[i] = statusValues.get(i);
- return array;
- }
-
- /**
- * Get the new preselected status values
- * @return An array of the new preselected status values
- */
- public String[] getPreselectedStatusValues() {
- String[] array = new String[preselectedStatusValues.size()];
-
- // create the array and return it
- for (int i = 0; i < preselectedStatusValues.size(); i++)
- array[i] = preselectedStatusValues.get(i);
- return array;
- }
-
- /**
- * Get the new resolution values
- * @return An array of the new resolution values
- */
- public String[] getResolutionValues() {
- String[] array = new String[resolutionValues.size()];
-
- // create the array and return it
- for (int i = 0; i < resolutionValues.size(); i++)
- array[i] = resolutionValues.get(i);
- return array;
- }
-
- /**
- * Get the new severity values
- * @return An array of the new severity values
- */
- public String[] getSeverityValues() {
- String[] array = new String[severityValues.size()];
-
- // create the array and return it
- for (int i = 0; i < severityValues.size(); i++)
- array[i] = severityValues.get(i);
- return array;
- }
-
- /**
- * Get the new priority values
- * @return An array of the new priority values
- */
- public String[] getPriorityValues() {
- String[] array = new String[priorityValues.size()];
-
- // create the array and return it
- for (int i = 0; i < priorityValues.size(); i++)
- array[i] = priorityValues.get(i);
- return array;
- }
-
- /**
- * Get the new hardware values
- * @return An array of the new hardware values
- */
- public String[] getHardwareValues() {
- String[] array = new String[hardwareValues.size()];
-
- // create the array and return it
- for (int i = 0; i < hardwareValues.size(); i++)
- array[i] = hardwareValues.get(i);
- return array;
- }
-
- /**
- * Get the new OS values
- * @return An array of the new OS values
- */
- public String[] getOSValues() {
- String[] array = new String[osValues.size()];
-
- // create the array and return it
- for (int i = 0; i < osValues.size(); i++)
- array[i] = osValues.get(i);
- return array;
- }
-
- /**
- * Get the new product values
- * @return An array of the new product values
- */
- public String[] getProductValues() {
- String[] array = new String[productValues.size()];
-
- // create the array and return it
- for (int i = 0; i < productValues.size(); i++)
- array[i] = productValues.get(i);
- return array;
- }
-
- /**
- * Get the new component values
- * @return An array of the new component values
- */
- public String[] getComponentValues() {
- String[] array = new String[componentValues.size()];
-
- // create the array and return it
- for (int i = 0; i < componentValues.size(); i++)
- array[i] = componentValues.get(i);
- return array;
- }
-
- /**
- * Get the new version values
- * @return An array of the new version values
- */
- public String[] getVersionValues() {
- String[] array = new String[versionValues.size()];
-
- // create the array and return it
- for (int i = 0; i < versionValues.size(); i++)
- array[i] = versionValues.get(i);
- return array;
- }
-
- /**
- * Get the new milestone values
- * @return An array of the new milestone values
- */
- public String[] getTargetValues() {
- String[] array = new String[targetValues.size()];
-
- // create the array and return it
- for (int i = 0; i < targetValues.size(); i++)
- array[i] = targetValues.get(i);
- return array;
- }
-
- /**
- * Parse the bugzilla query.cgi page for some seach options
- * @param inputReader The input stream for the page
- * @throws LoginException
- * @throws ParseException
- * @throws IOException
- */
- private void parseQueryPage(Reader inputReader) throws LoginException, ParseException, IOException
- {
- HtmlStreamTokenizer tokenizer = new HtmlStreamTokenizer(inputReader, null);
-
- boolean isTitle = false;
- boolean possibleBadLogin = false;
- String title = "";
-
- for (HtmlStreamTokenizer.Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) {
-
- // make sure that bugzilla doesn't want us to login
- if(token.getType() == Token.TAG && ((HtmlTag)(token.getValue())).getTagType() == HtmlTag.Type.TITLE && !((HtmlTag)(token.getValue())).isEndTag()) {
- isTitle = true;
- continue;
- }
-
- if (isTitle) {
- // get all of the data in the title tag to compare with
- if (token.getType() != Token.TAG) {
- title += ((StringBuffer)token.getValue()).toString().toLowerCase() + " ";
- continue;
- }
- else if (token.getType() == Token.TAG && ((HtmlTag)token.getValue()).getTagType() == HtmlTag.Type.TITLE && ((HtmlTag)token.getValue()).isEndTag()) {
- // check if the title looks like we may have a problem with login
- if ((title.indexOf("login") != -1 || (title.indexOf("invalid") != -1 && title.indexOf("password") != -1) || title.indexOf("check e-mail") != -1 || title.indexOf("error") != -1))
- possibleBadLogin = true;
- isTitle = false;
- title = "";
- }
- continue;
- }
-
- // we have found the start of attribute values
- if (token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == HtmlTag.Type.TD && "left".equalsIgnoreCase(tag.getAttribute("align"))) {
- // parse the attribute values
- parseAttributeValue(tokenizer);
- continue;
- }
- }
- }
-
- // if all of the lists are empty and we suspect bad login info, assume that it was a bad login
- if (possibleBadLogin && allListsEmpty())
- throw new LoginException("Bugzilla login information incorrect");
- }
-
- /**
- * Parse the case where the attribute value is an option
- * @param parameterName The name of the attribute value
- * @param tokenizer The tokenizer to get data from the stream
- * @throws IOException
- * @throws ParseException
- */
- private void parseSelect(
- String parameterName,
- HtmlStreamTokenizer tokenizer)
- throws IOException, ParseException {
-
- HtmlStreamTokenizer.Token token = tokenizer.nextToken();
- while (token.getType() != Token.EOF) {
- if (token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == HtmlTag.Type.SELECT && tag.isEndTag()) break;
- if (tag.getTagType() == HtmlTag.Type.OPTION && !tag.isEndTag()) {
- String optionName = tag.getAttribute("value");
- boolean selected = tag.hasAttribute("selected");
- StringBuffer optionText = new StringBuffer();
- for (token = tokenizer.nextToken(); token.getType() == Token.TEXT; token = tokenizer.nextToken()) {
- if (optionText.length() > 0) {
- optionText.append(' ');
- }
- optionText.append((StringBuffer) token.getValue());
- }
- // add the value to the appropriate list of attributes
- if (parameterName.equals("bug_status")) {
- statusValues.add(optionName);
-
- // check if the status is to be preselected or not
- if (selected)
- preselectedStatusValues.add(optionName);
- }
- else if (parameterName.equals("resolution"))
- resolutionValues.add(optionName);
- else if (parameterName.equals("bug_severity"))
- severityValues.add(optionName);
- else if (parameterName.equals("priority"))
- priorityValues.add(optionName);
- else if (parameterName.equals("rep_platform"))
- hardwareValues.add(optionName);
- else if (parameterName.equals("op_sys"))
- osValues.add(optionName);
- else if (parameterName.equals("product"))
- productValues.add(optionName);
- else if (parameterName.equals("component"))
- componentValues.add(optionName);
- else if (parameterName.equals("version"))
- versionValues.add(optionName);
- else if (parameterName.equals("target_milestone"))
- targetValues.add(optionName);
- }
- else {
- token = tokenizer.nextToken();
- }
- }
- else {
- token = tokenizer.nextToken();
- }
- }
- }
-
- /**
- * Parse the case where we think we found an attribute value
- * @param tokenizer The tokenizer to get the data from the stream
- * @throws IOException
- * @throws ParseException
- */
- private void parseAttributeValue(
- HtmlStreamTokenizer tokenizer)
- throws IOException, ParseException {
-
- HtmlStreamTokenizer.Token token = tokenizer.nextToken();
- if (token.getType() == Token.TAG) {
- HtmlTag tag = (HtmlTag) token.getValue();
- if (tag.getTagType() == HtmlTag.Type.SELECT && !tag.isEndTag()) {
- String parameterName = tag.getAttribute("name");
- parseSelect(parameterName, tokenizer);
- }
- else if (tag.getTagType() == HtmlTag.Type.LABEL && !tag.isEndTag()) {
- parseAttributeValue(tokenizer);
- }
- }
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaSearchEngine.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaSearchEngine.java
deleted file mode 100644
index ef4ab7d33..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaSearchEngine.java
+++ /dev/null
@@ -1,334 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.search;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.UnsupportedEncodingException;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.net.URLConnection;
-import java.net.URLEncoder;
-
-import javax.security.auth.login.LoginException;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.mylar.bugzilla.core.BugzillaException;
-import org.eclipse.mylar.bugzilla.core.BugzillaPlugin;
-import org.eclipse.mylar.bugzilla.core.BugzillaPreferences;
-import org.eclipse.mylar.bugzilla.core.IBugzillaConstants;
-import org.eclipse.search.ui.NewSearchUI;
-
-import com.sun.org.apache.xerces.internal.impl.xpath.regex.Match;
-import com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression;
-
-/**
- * Queries the Bugzilla server for the list of bugs matching search criteria.
- */
-public class BugzillaSearchEngine {
-
- protected static final String QUERYING_SERVER = "Querying Bugzilla Server...";
-
- /** regular expression matching Bugzilla query results format used in Eclipse.org Bugzilla */
- protected static final RegularExpression re = new RegularExpression("<a href=\"show_bug.cgi\\?id=(\\d+)\">", "i");
-
- /** regular expression matching values of query matches' attributes in Eclipse.org Bugzilla */
- protected static final RegularExpression reValue = new RegularExpression("<td><nobr>([^<]*)</nobr>");
-
- /** regular expression matching Bugzilla query results format used in v2.12 */
- protected static final RegularExpression reOld = new RegularExpression("<a href=\"show_bug.cgi\\?id=(\\d+)\">\\d+</a>\\s*<td class=severity><nobr>([^>]+)</nobr><td class=priority><nobr>([^>]+)</nobr><td class=platform><nobr>([^>]*)</nobr><td class=owner><nobr>([^>]*)</nobr><td class=status><nobr>([^>]*)</nobr><td class=resolution><nobr>([^>]*)</nobr><td class=summary>(.*)$", "i");
-
- private String urlString;
-
- private boolean maxReached = false;
-
- public BugzillaSearchEngine(String url) {
- this.urlString = url;
-
- // use the username and password if we have it to log into bugzilla
- if(BugzillaPreferences.getUserName() != null && !BugzillaPreferences.getUserName().equals("") && BugzillaPreferences.getPassword() != null && !BugzillaPreferences.getPassword().equals(""))
- {
- try {
- url += "&GoAheadAndLogIn=1&Bugzilla_login=" + URLEncoder.encode(BugzillaPreferences.getUserName(), "UTF-8") + "&Bugzilla_password=" + URLEncoder.encode(BugzillaPreferences.getPassword(), "UTF-8");
- } catch (UnsupportedEncodingException e) {
- /*
- * Do nothing. Every implementation of the Java platform is required
- * to support the standard charset "UTF-8"
- */
- }
- }
- }
-
- /**
- * Wrapper for search
- * @param collector - The collector for the results to go into
- */
- public IStatus search(IBugzillaSearchResultCollector collector) throws LoginException
- {
- return this.search(collector, 0, -1);
- }
-
- /**
- * Wrapper for search
- * @param collector - The collector for the results to go into
- * @param startMatches - The number of matches to start with for the progress monitor
- */
- public IStatus search(IBugzillaSearchResultCollector collector, int startMatches) throws LoginException
- {
- return this.search(collector, startMatches, BugzillaPlugin.getDefault().getMaxResults());
- }
-
- /**
- * Executes the query, parses the response, and adds hits to the search result collector.
- *
- * <p>
- * The output for a single match looks like this:
- * <pre>
- * <tr class="bz_enhancement bz_P5 ">
- *
- * <td>
- * <a href="show_bug.cgi?id=6747">6747</a>
- * </td>
- *
- * <td><nobr>enh</nobr>
- * </td>
- * <td><nobr>P5</nobr>
- * </td>
- * <td><nobr>All</nobr>
- * </td>
- * <td><nobr>Olivier_Thomann@oti.com</nobr>
- * </td>
- * <td><nobr>ASSI</nobr>
- * </td>
- * <td><nobr></nobr>
- * </td>
- * <td>Code Formatter exchange several blank lines w/ one
- * </td>
- *
- * </tr>
- * <pre>
- *
- * <p>Or in the older format:
- * <pre>
- * <A HREF="show_bug.cgi?id=8">8</A> <td class=severity><nobr>blo</nobr><td class=priority><nobr>P1</nobr><td class=platform><nobr>PC</nobr><td class=owner><nobr>cubranic@cs.ubc.ca</nobr><td class=status><nobr>CLOS</nobr><td class=resolution><nobr>DUPL</nobr><td class=summary>"Document root" missing when querying on files and revisions
- * </pre>
- * @param collector - The collector for the search results
- * @param startMatches - The number of matches to start with for the progress monitor
- * @param maxMatches - the maximum number of matches to return or -1 for unlimited
- */
- public IStatus search(IBugzillaSearchResultCollector collector, int startMatches, int maxMatches) throws LoginException {
- IProgressMonitor monitor = collector.getProgressMonitor();
-
- IStatus status = null;
-
- boolean possibleBadLogin = false;
- int numCollected = 0;
-
- BufferedReader in = null;
-
- try {
- monitor.beginTask(QUERYING_SERVER, IProgressMonitor.UNKNOWN);
- collector.aboutToStart(startMatches);
-
- URLConnection cntx = BugzillaPlugin.getDefault().getUrlConnection(new URL(urlString));
- if(cntx == null || !(cntx instanceof HttpURLConnection))
- return null;
-
- HttpURLConnection connect = (HttpURLConnection) cntx;
-
- connect.connect();
-
- int responseCode = connect.getResponseCode();
-
- if(responseCode != HttpURLConnection.HTTP_OK)
- {
- String msg;
- if(responseCode == -1 || responseCode == HttpURLConnection.HTTP_FORBIDDEN)
- msg = BugzillaPlugin.getDefault().getServerName() + " does not seem to be a valid Bugzilla server. Check Bugzilla preferences.";
- else
- msg = "HTTP Error " + responseCode + " (" + connect.getResponseMessage() + ") while querying Bugzilla Server. Check Bugzilla preferences.";
-
- throw new BugzillaException(msg);
- }
-
- if (monitor.isCanceled()) {
- throw new OperationCanceledException("Search cancelled");
- }
-
- in = new BufferedReader(new InputStreamReader(connect.getInputStream()));
-
- if (monitor.isCanceled()) {
- throw new OperationCanceledException("Search cancelled");
- }
-
- Match match = new Match();
- String line;
- while ((line = in.readLine()) != null) {
-
-
- if(maxMatches != -1 && numCollected >= maxMatches){
- maxReached = true;
- break;
- }
-
- if (monitor.isCanceled()) {
- throw new OperationCanceledException("Search cancelled");
- }
-
- // create regular expressions that can be mathced to check if we have
- // bad login information
- RegularExpression loginRe = new RegularExpression("<title>.*login.*</title>.*");
- RegularExpression invalidRe = new RegularExpression(".*<title>.*invalid.*password.*</title>.*");
- RegularExpression passwordRe = new RegularExpression(".*<title>.*password.*invalid.*</title>.*");
- RegularExpression emailRe = new RegularExpression(".*<title>.*check e-mail.*</title>.*");
- RegularExpression errorRe = new RegularExpression(".*<title>.*error.*</title>.*");
-
- String lowerLine = line.toLowerCase();
-
- // check if we have anything that suggests bad login info
- if(loginRe.matches(lowerLine) || invalidRe.matches(lowerLine) || passwordRe.matches(lowerLine) || emailRe.matches(lowerLine) || errorRe.matches(lowerLine))
- possibleBadLogin = true;
-
- if (reOld.matches(line, match)) {
- int id = Integer.parseInt(match.getCapturedText(1));
- String severity = match.getCapturedText(2);
- String priority = match.getCapturedText(3);
- String platform = match.getCapturedText(4);
- String owner = match.getCapturedText(5);
- String state = match.getCapturedText(6);
- String result = match.getCapturedText(7);
- String description = match.getCapturedText(8);
- String query = BugzillaPlugin.getMostRecentQuery();
- if (query == null)
- query = "";
-
- String server = BugzillaPlugin.getDefault().getServerName();
-
- BugzillaSearchHit hit = new BugzillaSearchHit(id, description, severity, priority, platform, state, result, owner, query, server);
- collector.accept(hit);
- numCollected++;
- }
- else if (re.matches(line, match)) {
- int id = Integer.parseInt(match.getCapturedText(1));
- String severity = null;
- String priority = null;
- String platform = null;
- String owner = null;
- String state = null;
- String result = null;
- for (int i = 0; i < 6; i++) {
- if (monitor.isCanceled()) {
- throw new OperationCanceledException("Search cancelled");
- }
- do {
- if (monitor.isCanceled()) {
- throw new OperationCanceledException("Search cancelled");
- }
- line = in.readLine().trim();
- if (line == null) break;
- line = line.trim();
- } while (!reValue.matches(line, match));
- switch (i) {
- case 0:
- severity = match.getCapturedText(1);
- break;
- case 1:
- priority = match.getCapturedText(1);
- break;
- case 2:
- platform = match.getCapturedText(1);
- break;
- case 3:
- owner = match.getCapturedText(1);
- break;
- case 4:
- state = match.getCapturedText(1);
- break;
- case 5:
- result = match.getCapturedText(1);
- break;
- }
- }
-
- // two more
- line = in.readLine();
- line = in.readLine();
-
- String description = line.substring(8);
- String query = BugzillaPlugin.getMostRecentQuery();
- if (query == null)
- query = "";
-
- String server = BugzillaPlugin.getDefault().getServerName();
-
- BugzillaSearchHit hit = new BugzillaSearchHit(id, description, severity, priority, platform, state, result, owner, query, server);
- collector.accept(hit);
- numCollected++;
- }
- if (monitor.isCanceled()) {
- throw new OperationCanceledException("Search cancelled");
- }
- }
- }catch (CoreException e) {
- status = new MultiStatus( IBugzillaConstants.PLUGIN_ID, IStatus.ERROR, "Core Exception occurred while querying Bugzilla Server " + BugzillaPlugin.getDefault().getServerName() + ".\n"
- + "\nClick Details for more information.", e);
- ((MultiStatus)status).add(e.getStatus());
-
- // write error to log
- BugzillaPlugin.log(status);
- }
- catch (OperationCanceledException e) {
- status = new Status(IStatus.CANCEL, IBugzillaConstants.PLUGIN_ID,
- IStatus.CANCEL, "", null);
- }catch (Exception e) {
- status = new MultiStatus( IBugzillaConstants.PLUGIN_ID, IStatus.ERROR, e.getClass().toString() + " occurred while querying Bugzilla Server " + BugzillaPlugin.getDefault().getServerName() + ".\n"
- + "\nClick Details or see log for more information.", e);
-
- IStatus s = new Status(IStatus.ERROR, IBugzillaConstants.PLUGIN_ID, IStatus.ERROR, e.getClass().toString() + ": ", e);
- ((MultiStatus)status).add(s);
- s = new Status (IStatus.ERROR, IBugzillaConstants.PLUGIN_ID, IStatus.ERROR, e.getMessage(), e);
- ((MultiStatus)status).add(s);
-
- // write error to log
- BugzillaPlugin.log(status);
-
- } finally {
- monitor.done();
- collector.done();
- try{
- if(in != null)
- in.close();
- }catch(IOException e)
- {
- BugzillaPlugin.log(new Status(IStatus.ERROR, IBugzillaConstants.PLUGIN_ID,IStatus.ERROR,"Problem closing the stream", e));
- }
- }
-
- // if we haven't collected any serach results and we suspect a bad login, we assume it was a bad login
- if(numCollected == 0 && possibleBadLogin)
- throw new LoginException("Bugzilla login information incorrect");
-
- if(status == null)
- return new Status(IStatus.OK, NewSearchUI.PLUGIN_ID, IStatus.OK, "", null);
- else
- return status;
- }
-
- public boolean isMaxReached() {
- return maxReached;
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaSearchHit.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaSearchHit.java
deleted file mode 100644
index 9f35d5c0d..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaSearchHit.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.search;
-
-
-
-/**
- * An item in the Bugzilla database matching the search criteria.
- */
-public class BugzillaSearchHit
-{
- /** The server that the result was from */
- private String server;
-
- /** The bug id */
- private int id;
-
- /** The description of the bug */
- private String description;
-
- /** The severity of the bug */
- private String severity;
-
- /** The priority of the bug */
- private String priority;
-
- /** The platform that the bug was found in */
- private String platform;
-
- /** The state of the bug */
- private String state;
-
- /** The resolution of the bug */
- private String result;
-
- /** The owner of the bug */
- private String owner;
-
- /** The query that the bug was a result of */
- private String query;
-
- /**
- * Constructor
- * @param id The id of the bug
- * @param description The description of the bug
- * @param severity The severity of the bug
- * @param priority The priority of the bug
- * @param platform The platform the bug was found in
- * @param state The state of the bug
- * @param result The resolution of the bug
- * @param owner The owner of the bug
- * @param query the query that the bug was a result of
- */
- public BugzillaSearchHit(int id, String description, String severity, String priority, String platform, String state, String result, String owner, String query, String server)
- {
- this.id = id;
- this.description = description;
- this.severity = severity;
- this.priority = priority;
- this.platform = platform;
- this.state = state;
- this.result = result;
- this.owner = owner;
- this.query = query;
- this.server = server;
- }
-
- /**
- * Get the bugs server
- * @return The server the bug resides on
- */
- public String getServer()
- {
- return server;
- }
-
- /**
- * Get the bugs id
- * @return The bugs id
- */
- public int getId()
- {
- return id;
- }
-
- /**
- * Get the bugs description
- * @return The description of the bug
- */
- public String getDescription()
- {
- return description;
- }
-
- /**
- * Get the bugs priority
- * @return The priority of the bug
- */
- public String getPriority()
- {
- return priority;
- }
-
- /**
- * Get the bugs severity
- * @return The severity of the bug
- */
- public String getSeverity()
- {
- return severity;
- }
-
- /**
- * Get the platform the bug occurred under
- * @return The platform that the bug occured under
- */
- public String getPlatform()
- {
- return platform;
- }
-
- /**
- * Get the bugs state
- * @return The state of the bug
- */
- public String getState()
- {
- return state;
- }
-
- /**
- * Get the bugs resolution
- * @return The resolution of the bug
- */
- public String getResult()
- {
- return result;
- }
-
- /**
- * Get the bugs owner
- * @return The owner of the bug
- */
- public String getOwner()
- {
- return owner;
- }
-
- /**
- * Get the query that the bug was a result of
- * @return The query that the bug was a result of
- */
- public String getQuery()
- {
- return query;
- }
-
- @Override
- public String toString()
- {
- return id + " " + description + "\n";
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaSearchOperation.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaSearchOperation.java
deleted file mode 100644
index 36f900ef5..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaSearchOperation.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.search;
-
-import javax.security.auth.login.LoginException;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-/**
- * An operation to perform Bugzilla search query.
- */
-public class BugzillaSearchOperation extends WorkspaceModifyOperation implements IBugzillaSearchOperation
-{
- /** The url of the bugzilla server */
- private String url;
-
- /** The bugzilla collector for the search */
- private IBugzillaSearchResultCollector collector;
-
- /** The bugzilla search query */
- private BugzillaSearchQuery query;
-
- /** The status of the search operation */
- private IStatus status;
-
- /** The LoginException that was thrown when trying to do the search */
- private LoginException loginException = null;
-
- private int maxHits;
-
- /**
- * Constructor
- * @param url The url of the bugzilla server
- * @param collector The bugzilla search collector to use for this search
- */
- public BugzillaSearchOperation(String url, IBugzillaSearchResultCollector collector, String maxHits)
- {
- this.url = url;
- this.collector = collector;
- collector.setOperation(this);
- try{
- this.maxHits = Integer.parseInt(maxHits);
- } catch (Exception e){
- this.maxHits = -1;
- }
- }
-
- @Override
- public void execute(IProgressMonitor monitor) {
- // set the progress monitor for the search collector and start the search
- collector.setProgressMonitor(monitor);
- BugzillaSearchEngine engine = new BugzillaSearchEngine(url);
- try
- {
- status = engine.search(collector, 0 , maxHits);
- }
- catch(LoginException e) {
- //save this exception to throw later
- this.loginException = e;
- }
- }
-
- /**
- * @see org.eclipse.mylar.bugzilla.core.search.IBugzillaSearchOperation#getImageDescriptor()
- */
- public ImageDescriptor getImageDescriptor() {
- return null;
- }
-
- /**
- * @see org.eclipse.mylar.bugzilla.core.search.IBugzillaSearchOperation#getStatus()
- */
- public IStatus getStatus() throws LoginException {
- // if a LoginException was thrown while trying to search, throw this
- if (loginException == null)
- return status;
- else
- throw loginException;
- }
-
- /**
- * @see org.eclipse.mylar.bugzilla.core.search.IBugzillaSearchOperation#getQuery()
- */
- public BugzillaSearchQuery getQuery() {
- return query;
- }
-
- /**
- * @see org.eclipse.mylar.bugzilla.core.search.IBugzillaSearchOperation#setQuery(org.eclipse.mylar.bugzilla.core.search.BugzillaSearchQuery)
- */
- public void setQuery(BugzillaSearchQuery newQuery) {
- this.query = newQuery;
- }
-
- public String getName() {
- return null;
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaSearchQuery.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaSearchQuery.java
deleted file mode 100644
index a332c4d41..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaSearchQuery.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.search;
-
-import javax.security.auth.login.LoginException;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.mylar.bugzilla.core.BugzillaPlugin;
-import org.eclipse.mylar.bugzilla.core.IBugzillaConstants;
-import org.eclipse.search.ui.ISearchQuery;
-import org.eclipse.search.ui.ISearchResult;
-import org.eclipse.search.ui.text.AbstractTextSearchResult;
-import org.eclipse.ui.PlatformUI;
-
-
-/**
- * This class performs a search query on Bugzilla bug reports.
- * @see org.eclipse.search.ui.ISearchQuery
- */
-public class BugzillaSearchQuery implements ISearchQuery {
-
- /** The collection of all the bugzilla matches. */
- private BugzillaSearchResult bugResult;
-
- /** The operation that performs the Bugzilla search query. */
- private IBugzillaSearchOperation operation;
-
- /**
- * Constructor
- * @param operation The operation that performs the Bugzilla search query.
- */
- public BugzillaSearchQuery(IBugzillaSearchOperation operation) {
- this.operation = operation;
- operation.setQuery(this);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.search.ui.ISearchQuery#run(org.eclipse.core.runtime.IProgressMonitor)
- */
- public IStatus run(IProgressMonitor monitor) throws OperationCanceledException {
- final IStatus[] status = new IStatus[1];
- final AbstractTextSearchResult textResult= (AbstractTextSearchResult) getSearchResult();
- textResult.removeAll(); // Remove any existing search results from the view.
-
- try {
- operation.execute(monitor);
- status[0] = operation.getStatus();
-
- if (status[0].getCode() == IStatus.CANCEL) {
- status[0] = Status.OK_STATUS;
- }
- else if (!status[0].isOK()) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable(){
- public void run(){
- ErrorDialog.openError(null, "Bugzilla Search Error", null, status[0]);
- }
- });
- status[0] = Status.OK_STATUS;
- }
- }
- catch(LoginException e) {
- // we had a problem while searching that seems like a login info problem
- // thrown in BugzillaSearchOperation
- MessageDialog.openError(null, "Login Error", "Bugzilla could not log you in to get the information you requested since login name or password is incorrect.\nPlease check your settings in the bugzilla preferences. ");
- BugzillaPlugin.log(new Status( IStatus.ERROR,
- IBugzillaConstants.PLUGIN_ID, IStatus.OK, "", e));
- }
- return status[0];
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.search.ui.ISearchQuery#getLabel()
- */
- public String getLabel() {
- return BugzillaSearchEngine.QUERYING_SERVER;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.search.ui.ISearchQuery#canRerun()
- */
- public boolean canRerun() {
- return true;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.search.ui.ISearchQuery#canRunInBackground()
- */
- public boolean canRunInBackground() {
- return true;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.search.ui.ISearchQuery#getSearchResult()
- */
- public ISearchResult getSearchResult() {
- if (bugResult == null) {
- bugResult= new BugzillaSearchResult(this);
- }
- return bugResult;
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaSearchResult.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaSearchResult.java
deleted file mode 100644
index df13f51db..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaSearchResult.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.search;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.mylar.bugzilla.core.BugzillaPlugin;
-import org.eclipse.search.internal.ui.SearchPluginImages;
-import org.eclipse.search.ui.ISearchQuery;
-import org.eclipse.search.ui.text.AbstractTextSearchResult;
-import org.eclipse.search.ui.text.IEditorMatchAdapter;
-import org.eclipse.search.ui.text.IFileMatchAdapter;
-
-
-
-/**
- * The collection of all the bugzilla matches.
- * @see org.eclipse.search.ui.text.AbstractTextSearchResult
- */
-public class BugzillaSearchResult extends AbstractTextSearchResult{
-
- /**
- * The query producing this result.
- */
- private BugzillaSearchQuery bugQuery;
-
- /**
- * Constructor for <code>BugzillaSearchResult</code> class.
- *
- * @param query <code>BugzillaSearchQuery</code> that is producing this result.
- */
- public BugzillaSearchResult(BugzillaSearchQuery query) {
- super();
- bugQuery = query;
- }
-
- @Override
- public IEditorMatchAdapter getEditorMatchAdapter() {
- IBugzillaResultEditorMatchAdapter adapter = BugzillaPlugin.getResultEditorMatchAdapter();
- if(adapter == null){
- return null;
- } else {
- adapter.setResult(this);
- return adapter;
- }
- }
-
- /**
- * This function always returns <code>null</code>, as the matches for this implementation of <code>AbstractTextSearchResult</code> never contain files.
- * @see org.eclipse.search.ui.text.AbstractTextSearchResult#getFileMatchAdapter()
- */
- @Override
- public IFileMatchAdapter getFileMatchAdapter() {
- return null;
- }
-
-
-
- /* (non-Javadoc)
- * @see org.eclipse.search.ui.ISearchResult#getLabel()
- */
- public String getLabel() {
- return getMatchCount() == 1 ? getSingularLabel() : getPluralLabel();
- }
-
- /**
- * Get the singular label for the number of results
- * @return The singular label
- */
- protected String getSingularLabel() {
- return "Bugzilla search - 1 match";
- }
-
- /**
- * Get the plural label for the number of results
- * @return The plural label
- */
- protected String getPluralLabel() {
- return "Bugzilla search - " + getMatchCount() + " matches";
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.search.ui.ISearchResult#getTooltip()
- */
- public String getTooltip() {
- return getLabel();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.search.ui.ISearchResult#getImageDescriptor()
- */
- public ImageDescriptor getImageDescriptor() {
- return SearchPluginImages.DESC_OBJ_TSEARCH_DPDN;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.search.ui.ISearchResult#getQuery()
- */
- public ISearchQuery getQuery() {
- return bugQuery;
- }
-
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaSearchResultCollector.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaSearchResultCollector.java
deleted file mode 100644
index aa70a722b..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaSearchResultCollector.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.search;
-
-import java.text.MessageFormat;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.mylar.bugzilla.core.BugReport;
-import org.eclipse.mylar.bugzilla.core.IBugzillaConstants;
-import org.eclipse.search.ui.NewSearchUI;
-import org.eclipse.search.ui.text.Match;
-
-
-/**
- * Collects results of a Bugzilla search and inserts them into the search results view.
- */
-public class BugzillaSearchResultCollector implements IBugzillaSearchResultCollector
-{
- /** The bugzilla search operation */
- private IBugzillaSearchOperation operation;
-
- /** The collection of all the bugzilla matches */
- private BugzillaSearchResult searchResult;
-
- /** The progress monitor for the search operation */
- private IProgressMonitor monitor;
-
- /** The number of matches found */
- private int matchCount;
-
- /** The string to display to the user while querying */
- private static final String STARTING = "querying the server";
-
- /** The string to display to the user when we have 1 match */
- private static final String MATCH = "1 match";
-
- /** The string to display to the user when we have multiple or no matches */
- private static final String MATCHES = "{0} matches";
-
- /** The string to display to the user when the query is done */
- private static final String DONE = "done";
-
- /** Resource used to create markers */
- private static final IResource resource = ResourcesPlugin.getWorkspace().getRoot();
-
- // TODO Find a better way to get the states and severity
-
- /** Array of severities for a bug */
- private static final String [] severity = {"blo", "cri", "maj", "nor", "min", "tri", "enh"};
-
- /** Array of priorities for a bug */
- private static final String [] priority = {"P1", "P2", "P3", "P4", "P5", "--"};
-
- /** Array of possible states of a bug */
- private static final String [] state = {"UNCO", "NEW", "ASSI", "REOP", "RESO", "VERI", "CLOS"};
-
- /** Array of the possible resolutions of the bug */
- private static final String [] result = {"", "FIXE", "INVA", "WONT", "LATE", "REMI", "DUPL", "WORK"};
-
-
- /**
- * @see org.eclipse.mylar.bugzilla.core.search.IBugzillaSearchResultCollector#aboutToStart(int)
- */
- public void aboutToStart(int startMatchCount) throws CoreException
- {
- NewSearchUI.activateSearchResultView();
- matchCount = startMatchCount;
- searchResult = (BugzillaSearchResult) getOperation().getQuery().getSearchResult();
-
- // set the progress monitor to say that we are querying the server
- monitor.setTaskName(STARTING);
- }
-
- /**
- * @see org.eclipse.mylar.bugzilla.core.search.IBugzillaSearchResultCollector#accept(org.eclipse.mylar.bugzilla.core.search.BugzillaSearchHit)
- */
- public void accept(BugzillaSearchHit hit) throws CoreException
- {
- // set the markers to have the bugs attributes
- IMarker marker = resource.createMarker(IBugzillaConstants.HIT_MARKER_ID);
- marker.setAttribute(IBugzillaConstants.HIT_MARKER_ATTR_ID, new Integer(hit.getId()));
- marker.setAttribute(IBugzillaConstants.HIT_MARKER_ATTR_DESC, hit.getDescription());
- marker.setAttribute(IBugzillaConstants.HIT_MARKER_ATTR_SEVERITY, mapValue(hit.getSeverity(), severity));
- marker.setAttribute(IBugzillaConstants.HIT_MARKER_ATTR_PRIORITY, mapValue(hit.getPriority(), priority));
- marker.setAttribute(IBugzillaConstants.HIT_MARKER_ATTR_PLATFORM, hit.getPlatform());
- marker.setAttribute(IBugzillaConstants.HIT_MARKER_ATTR_STATE, mapValue(hit.getState(), state));
- marker.setAttribute(IBugzillaConstants.HIT_MARKER_ATTR_RESULT, mapValue(hit.getResult(), result));
- marker.setAttribute(IBugzillaConstants.HIT_MARKER_ATTR_OWNER, hit.getOwner());
- marker.setAttribute(IBugzillaConstants.HIT_MARKER_ATTR_QUERY, hit.getQuery());
-
- // Add the match to the search results view.
- // The offset and length of the match are both 0, since the match is the
- // bug report itself, not a subset of it.
- searchResult.addMatch(new Match(marker, 0, 0));
-
- // increment the match count
- matchCount++;
-
- if (!getProgressMonitor().isCanceled())
- {
- // if the operation is cancelled finish with whatever data was already found
- getProgressMonitor().subTask(getFormattedMatchesString(matchCount));
- getProgressMonitor().worked(1);
- }
- }
-
- /**
- * Returns a map where BugReport's attributes are entered into a Map using the same
- * key/value pairs as those created on a search hit marker.
- */
- public static Map<String, Object> getAttributeMap(BugReport bug) {
- HashMap<String, Object> map = new HashMap<String, Object>();
- map.put(IBugzillaConstants.HIT_MARKER_ATTR_ID, new Integer(bug.getId()));
- map.put(IBugzillaConstants.HIT_MARKER_ATTR_DESC, bug.getDescription());
- map.put(IBugzillaConstants.HIT_MARKER_ATTR_SEVERITY, mapValue(bug.getAttribute("Severity").getValue(), severity));
- map.put(IBugzillaConstants.HIT_MARKER_ATTR_PRIORITY, mapValue(bug.getAttribute("Priority").getValue(), priority));
- map.put(IBugzillaConstants.HIT_MARKER_ATTR_PLATFORM, bug.getAttribute("Hardware").getValue());
- map.put(IBugzillaConstants.HIT_MARKER_ATTR_STATE, mapValue(bug.getStatus(), state));
- map.put(IBugzillaConstants.HIT_MARKER_ATTR_RESULT, mapValue(bug.getResolution(), result));
- map.put(IBugzillaConstants.HIT_MARKER_ATTR_OWNER, bug.getAssignedTo());
- map.put(IBugzillaConstants.HIT_MARKER_ATTR_QUERY, "");
- return map;
- }
-
- /**
- * Get the map value for the given <code>String</code> value
- * @param value The value that we are trying to map
- * @param map The map that we are using
- * @return The map value
- */
- private static Integer mapValue(String value, String [] map)
- {
- // go through each element in the map
- for (int i = 0; i < map.length; i++)
- {
- // if we found the value, return the position in the map
- if (map[i].equals(value))
- {
- return new Integer(i);
- }
- }
-
- // return null if we didn't find anything
- return null;
- }
-
- /**
- * @see org.eclipse.mylar.bugzilla.core.search.IBugzillaSearchResultCollector#done()
- */
- public void done()
- {
- if (!monitor.isCanceled())
- {
- // if the operation is cancelled, finish with the data that we already have
- String matchesString= getFormattedMatchesString(matchCount);
- monitor.setTaskName(MessageFormat.format(DONE, new Object[]{matchesString}));
- }
-
- // Cut no longer used references because the collector might be re-used
- monitor = null;
- searchResult = null;
- }
-
- /**
- * Get the string specifying the number of matches found
- * @param count The number of matches found
- * @return The <code>String</code> specifying the number of matches found
- */
- private String getFormattedMatchesString(int count)
- {
- // if only 1 match, return the singular match string
- if (count == 1)
- return MATCH;
-
- // format the matches string and return it
- Object[] messageFormatArgs = {new Integer(count)};
- return MessageFormat.format(MATCHES, messageFormatArgs);
- }
-
- /**
- * @see org.eclipse.mylar.bugzilla.core.search.IBugzillaSearchResultCollector#getProgressMonitor()
- */
- public IProgressMonitor getProgressMonitor()
- {
- return monitor;
- }
-
- /**
- * @see org.eclipse.mylar.bugzilla.core.search.IBugzillaSearchResultCollector#setProgressMonitor(org.eclipse.core.runtime.IProgressMonitor)
- */
- public void setProgressMonitor(IProgressMonitor monitor)
- {
- this.monitor = monitor;
- }
-
- /**
- * @see org.eclipse.mylar.bugzilla.core.search.IBugzillaSearchResultCollector#getOperation()
- */
- public IBugzillaSearchOperation getOperation()
- {
- return operation;
- }
-
- /**
- * @see org.eclipse.mylar.bugzilla.core.search.IBugzillaSearchResultCollector#setOperation(org.eclipse.mylar.bugzilla.core.search.IBugzillaSearchOperation)
- */
- public void setOperation(IBugzillaSearchOperation operation)
- {
- this.operation = operation;
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaSeveritySearchSorter.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaSeveritySearchSorter.java
deleted file mode 100644
index f652e764c..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaSeveritySearchSorter.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.search;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.mylar.bugzilla.core.IBugzillaConstants;
-
-
-/**
- * Sorts results of Bugzilla search by bug severity.
- */
-public class BugzillaSeveritySearchSorter extends ViewerSorter {
-
- /**
- * Returns a negative, zero, or positive number depending on whether the
- * first bug's severity goes before, is the same as, or goes after the
- * second element's severity.
- * <p>
- *
- * @see org.eclipse.jface.viewers.ViewerSorter#compare(org.eclipse.jface.viewers.Viewer,
- * java.lang.Object, java.lang.Object)
- */
- @Override
- public int compare(Viewer viewer, Object e1, Object e2)
- {
- try
- {
- // cast the object and get its severity
- IMarker entry1 = (IMarker) e1;
- Integer severity1 = (Integer) entry1.getAttribute(
- IBugzillaConstants.HIT_MARKER_ATTR_SEVERITY);
-
- // cast the other object and get its severity
- IMarker entry2 = (IMarker) e2;
- Integer severity2 = (Integer) entry2.getAttribute(
- IBugzillaConstants.HIT_MARKER_ATTR_SEVERITY);
-
- // if neither is null, compare the bugs severities
- if (severity1 != null && severity2 != null)
- {
- return severity1.compareTo(severity2);
- }
- }
- catch (Exception ignored) {
- // ignore if there is a problem
- }
-
- // if that didn't work, use the default compare method
- return super.compare(viewer, e1, e2);
- }
-
- /**
- * Returns the category of the given element. The category is a number used
- * to allocate elements to bins; the bins are arranged in ascending numeric
- * order. The elements within a bin are arranged via a second level sort
- * criterion.
- * <p>
- *
- * @see org.eclipse.jface.viewers.ViewerSorter#category(Object)
- */
- @Override
- public int category(Object element)
- {
- try
- {
- IMarker marker = (IMarker)element;
-
- // return the bugs id
- if (marker.getType().equals(IBugzillaConstants.HIT_MARKER_ID))
- {
- return ((Integer)marker.getAttribute(IBugzillaConstants.HIT_MARKER_ATTR_ID)).intValue();
- }
- }
- catch (Exception ignored) {
- // ignore if there is a problem
- }
-
- // if that didn't work, use the default category method
- return super.category(element);
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaStateSearchSorter.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaStateSearchSorter.java
deleted file mode 100644
index d0cbe726c..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/BugzillaStateSearchSorter.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.search;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.mylar.bugzilla.core.IBugzillaConstants;
-
-
-/**
- * Sorts results of Bugzilla search by bug state.
- */
-public class BugzillaStateSearchSorter extends ViewerSorter {
-
- /**
- * Returns a negative, zero, or positive number depending on whether the
- * first bug's state goes before, is the same as, or goes after the second
- * element's state.
- * <p>
- *
- * @see org.eclipse.jface.viewers.ViewerSorter#compare(org.eclipse.jface.viewers.Viewer,
- * java.lang.Object, java.lang.Object)
- */
- @Override
- public int compare(Viewer viewer, Object e1, Object e2)
- {
- try
- {
- // cast the object and get its state
- IMarker entry1 = (IMarker) e1;
- Integer state1 = (Integer) entry1.getAttribute(
- IBugzillaConstants.HIT_MARKER_ATTR_STATE);
-
- // cast the other object and get its state
- IMarker entry2 = (IMarker) e2;
- Integer state2 = (Integer) entry2.getAttribute(
- IBugzillaConstants.HIT_MARKER_ATTR_STATE);
-
- // if neither is null, compare the bugs states
- if (state1 != null && state2 != null)
- {
- // compare the states
- int rc = state1.compareTo(state2);
-
- // compare the resolution if the states are the same
- if (rc == 0)
- {
- // get the resolution of the bug
- Integer result1 = (Integer) entry1.getAttribute(
- IBugzillaConstants.HIT_MARKER_ATTR_RESULT);
-
- // get the resolution of the other bug
- Integer result2 = (Integer) entry2.getAttribute(
- IBugzillaConstants.HIT_MARKER_ATTR_RESULT);
-
- // if neither state is null, compare them
- if (result1 != null && result2 != null)
- {
- rc = result1.compareTo(result2);
- }
- }
- return rc;
- }
-
- }
- catch (Exception ignored) {
- // ignore if there is a problem
- }
-
- // if that didn't work, use the default compare method
- return super.compare(viewer, e1, e2);
- }
-
- /**
- * Returns the category of the given element. The category is a number used
- * to allocate elements to bins; the bins are arranged in ascending numeric
- * order. The elements within a bin are arranged via a second level sort
- * criterion.
- * <p>
- *
- * @see org.eclipse.jface.viewers.ViewerSorter#category(Object)
- */
- @Override
- public int category(Object element)
- {
- try
- {
- IMarker marker = (IMarker)element;
-
- // return the bugs id
- if (marker.getType().equals(IBugzillaConstants.HIT_MARKER_ID))
- {
- return ((Integer)marker.getAttribute(IBugzillaConstants.HIT_MARKER_ATTR_ID)).intValue();
- }
- }
- catch (Exception ignored) {
- // ignore if there is a problem
- }
-
- // if that didn't work, use the default category method
- return super.category(element);
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/IBugzillaResultEditorMatchAdapter.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/IBugzillaResultEditorMatchAdapter.java
deleted file mode 100644
index 4ba325eb1..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/IBugzillaResultEditorMatchAdapter.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.search;
-
-import org.eclipse.search.ui.text.AbstractTextSearchResult;
-import org.eclipse.search.ui.text.IEditorMatchAdapter;
-import org.eclipse.search.ui.text.Match;
-import org.eclipse.ui.IEditorPart;
-
-public interface IBugzillaResultEditorMatchAdapter extends IEditorMatchAdapter {
-
- public boolean isShownInEditor(Match match, IEditorPart editor);
-
- public Match[] computeContainedMatches(AbstractTextSearchResult result,
- IEditorPart editor);
-
- public void setResult(BugzillaSearchResult result);
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/IBugzillaSearchOperation.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/IBugzillaSearchOperation.java
deleted file mode 100644
index 136b81084..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/IBugzillaSearchOperation.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.search;
-
-import javax.security.auth.login.LoginException;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.resource.ImageDescriptor;
-
-/**
- * Interface for the bugzilla search operation
- * @author Shawn Minto
- */
-public interface IBugzillaSearchOperation extends IRunnableWithProgress
-{
- /**
- * Execute the search
- * @see org.eclipse.ui.actions.WorkspaceModifyOperation#execute(IProgressMonitor)
- */
- public void execute(IProgressMonitor monitor);
-
- /**
- * Get the status of the search operation
- * @return The status of the search operation
- * @throws LoginException
- */
- public IStatus getStatus() throws LoginException;
-
- /**
- * Get the image descriptor for the operation
- * @return <code>null</code>
- */
- public ImageDescriptor getImageDescriptor();
-
- /**
- * Get the bugzilla search query
- * @return The bugzilla search query
- */
- public BugzillaSearchQuery getQuery();
-
- /**
- * Sets the bugzilla search query
- * @param newQuery The bugzilla search query to be set
- */
- public void setQuery(BugzillaSearchQuery newQuery);
-
- public String getName();
-}
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/IBugzillaSearchResultCollector.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/IBugzillaSearchResultCollector.java
deleted file mode 100644
index 9411d88eb..000000000
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/bugzilla/core/search/IBugzillaSearchResultCollector.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.core.search;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * Interface for the bugzilla search result collector.
- * @author Shawn Minto
- */
-public interface IBugzillaSearchResultCollector
-{
-
- /**
- * Called before the actual search starts
- * @param startCount - The starting count for the number of matches
- * @throws CoreException
- */
- public void aboutToStart(int startCount) throws CoreException;
-
- /**
- * Accept a search hit and add it as a match and set the markers
- * @param hit The search hit that was a match
- * @throws CoreException
- */
- public void accept(BugzillaSearchHit hit) throws CoreException;
-
- /**
- * Called when the search has ended.
- */
- public void done();
-
- /**
- * Get the progress monitor for the search
- * @return The progress monitor
- */
- public IProgressMonitor getProgressMonitor();
-
- /**
- * Set the progress monitor
- * @param monitor The progress monitor the search should use
- */
- public void setProgressMonitor(IProgressMonitor monitor);
-
- /**
- * Set the current search operation
- * @param operation The operation to set the search to
- */
- public void setOperation(IBugzillaSearchOperation operation);
-
- /**
- * Get the current operation
- * @return The current search operation
- */
- public IBugzillaSearchOperation getOperation();
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/.classpath b/org.eclipse.mylyn.bugzilla.tests/.classpath
deleted file mode 100644
index 065ac06e1..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.mylyn.bugzilla.tests/.cvsignore b/org.eclipse.mylyn.bugzilla.tests/.cvsignore
deleted file mode 100644
index ba077a403..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/org.eclipse.mylyn.bugzilla.tests/.project b/org.eclipse.mylyn.bugzilla.tests/.project
deleted file mode 100644
index 9187a2826..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.mylar.bugzilla.test</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 4600f7389..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Thu Jun 30 08:32:16 PDT 2005
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.pde.prefs b/org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index b8871b684..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Wed Jul 20 11:41:41 EDT 2005
-compilers.p.deprecated=1
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/org.eclipse.mylyn.bugzilla.tests/META-INF/MANIFEST.MF b/org.eclipse.mylyn.bugzilla.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index 26d77be53..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,20 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Bugzilla Tests Plug-in
-Bundle-SymbolicName: org.eclipse.mylar.bugzilla.test
-Bundle-Version: 0.0.0
-Bundle-Activator: org.eclipse.mylar.bugzilla.test.BugzillaTestPlugin
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.junit,
- org.eclipse.ui.ide,
- org.eclipse.ui.views,
- org.eclipse.ui.editors,
- org.eclipse.ui.workbench.texteditor,
- org.eclipse.mylar.bugzilla.core,
- org.eclipse.mylar.bugzilla.ui
-Eclipse-AutoStart: true
-Bundle-Vendor: University of British Columbia
-Export-Package: org.eclipse.mylar.bugzilla.test
-Bundle-ClassPath: bugzilla-test.jar
diff --git a/org.eclipse.mylyn.bugzilla.tests/TestPages/bug-1-full.html b/org.eclipse.mylyn.bugzilla.tests/TestPages/bug-1-full.html
deleted file mode 100644
index 00fd1bcb7..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/TestPages/bug-1-full.html
+++ /dev/null
@@ -1,719 +0,0 @@
-<!-- 1.0@bugzilla.org -->
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
- <head>
- <title>Bug 1 - Usability issue with external editors (1GE6IRL)</title>
-
-
-
-
-
-
-
- </head>
-
-
-
- <body bgcolor="#FFFFFF" onload="">
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000" >
-<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" ><tr><td
-WIDTH="100%"><table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%"
-BGCOLOR="#006699" ><tr><td BGCOLOR="#000000" width="116" ><img
-src="images/EclipseBannerPic.jpg" width="115" height="50"></td><td
-WIDTH="637"><a href=http://www.eclipse.org><img SRC="images/gradient.jpg" BORDER=0 height=50
-width=282></a></td><td WIDTH="250"><img src="images/eproject-simple.gif"
-width="250" height="48"></td></tr></table></td></tr></table>
-
- <table border="0" cellspacing="0">
- <tr>
- <td valign="top" align="left">
- <table border="0" cellpadding="0" cellspacing="2">
- <tr>
- <td valign="top" align="left" nowrap="nowrap">
- <font size="+1"><b>Bugzilla Bug 1</b></font>
- </td>
- </tr>
- </table>
- </td>
- <td valign="middle">&nbsp;</td>
- <td valign="middle" align="left">Usability issue with external editors (1GE6IRL)</td>
- </tr>
- </table>
-<!-- 1.0@bugzilla.org -->
-
-
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="query.cgi">Query page</a>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="enter_bug.cgi">Enter new bug</a>
-
-<hr>
-
-<form name="changeform" method="post" action="process_bug.cgi">
-
- <input type="hidden" name="delta_ts" value="20011025104050">
- <input type="hidden" name="longdesclength" value="5">
- <input type="hidden" name="id" value="1">
-
-
-
- <table cellspacing="1" cellpadding="1" border="0">
- <tr>
- <td align="right">
- <b>Bug#:</b>
- </td>
- <td>
- <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1">1</a>
- </td>
-
- <td>&nbsp;</td>
-
- <td align="right">
- <b>Platform:</b>
- </td><td>
- <select name="rep_platform">
- <option value="All" selected>All
- </option>
- <option value="Macintosh">Macintosh
- </option>
- <option value="PC">PC
- </option>
- <option value="Power PC">Power PC
- </option>
- <option value="Sun">Sun
- </option>
- <option value="Other">Other
- </option>
- </select>
- </td>
- <td>&nbsp;</td>
-
- <td align="right">
- <b>Reporter:</b>
- </td>
- <td>andre_weinand@ch.ibm.com (Andre Weinand)
- </td>
- </tr>
-
- <tr>
- <td align="right">
- <b>Product:</b>
- </td><td>
- <select name="product">
- <option value="AJDT">AJDT
- </option>
- <option value="AspectJ">AspectJ
- </option>
- <option value="CDT">CDT
- </option>
- <option value="EMF">EMF
- </option>
- <option value="Equinox">Equinox
- </option>
- <option value="GEF">GEF
- </option>
- <option value="JDT">JDT
- </option>
- <option value="PDE">PDE
- </option>
- <option value="Platform" selected>Platform
- </option>
- <option value="Stellation">Stellation
- </option>
- <option value="XSD">XSD
- </option>
- </select>
- </td>
- <td>&nbsp;</td>
-
- <td align="right">
- <b>OS:</b>
- </td><td>
- <select name="op_sys">
- <option value="All" selected>All
- </option>
- <option value="AIX Motif">AIX Motif
- </option>
- <option value="Windows 95">Windows 95
- </option>
- <option value="Windows 98">Windows 98
- </option>
- <option value="Windows CE">Windows CE
- </option>
- <option value="Windows ME">Windows ME
- </option>
- <option value="Windows 2000">Windows 2000
- </option>
- <option value="Windows NT">Windows NT
- </option>
- <option value="Windows XP">Windows XP
- </option>
- <option value="Windows All">Windows All
- </option>
- <option value="MacOS X">MacOS X
- </option>
- <option value="Linux">Linux
- </option>
- <option value="Linux-GTK">Linux-GTK
- </option>
- <option value="Linux-Motif">Linux-Motif
- </option>
- <option value="HP-UX">HP-UX
- </option>
- <option value="Neutrino">Neutrino
- </option>
- <option value="QNX-Photon">QNX-Photon
- </option>
- <option value="Solaris">Solaris
- </option>
- <option value="Unix All">Unix All
- </option>
- <option value="other">other
- </option>
- </select>
- </td>
- <td>&nbsp;</td>
-
- <td align="right">
- <b>Add&nbsp;CC:</b>
- </td>
- <td>
- <input name="newcc" size="30" value="">
- </td>
- </tr>
-
-
-
- <tr>
- <td align="right">
- <b>
- <a href="describecomponents.cgi?product=Platform">
- Component</a>:
- </b>
- </td>
- <td>
- <select name="component">
- <option value="Ant">Ant
- </option>
- <option value="Compare">Compare
- </option>
- <option value="Core">Core
- </option>
- <option value="Debug">Debug
- </option>
- <option value="Doc">Doc
- </option>
- <option value="Help">Help
- </option>
- <option value="Releng">Releng
- </option>
- <option value="Scripting">Scripting
- </option>
- <option value="Search">Search
- </option>
- <option value="SWT">SWT
- </option>
- <option value="Text">Text
- </option>
- <option value="UI">UI
- </option>
- <option value="Update">Update
- </option>
- <option value="VCM" selected>VCM
- </option>
- <option value="WebDAV">WebDAV
- </option>
- </select>
- </td>
-
- <td>&nbsp;</td>
-
- <td align="right">
- <b>Version:</b>
- </td><td>
- <select name="version">
- <option value="1.0">1.0
- </option>
- <option value="2.0" selected>2.0
- </option>
- <option value="2.0.1">2.0.1
- </option>
- <option value="2.0.2">2.0.2
- </option>
- <option value="2.1">2.1
- </option>
- </select>
- </td>
- <td>&nbsp;</td>
-
- <td rowspan="4" align="right" valign="top">
- <b>CC:</b>
- </td>
- <td rowspan="4" valign="top">
- <select name="cc" multiple="multiple" size="5">
- <option value="Kevin_McGuire@oti.com">Kevin_McGuire@oti.com</option>
- </select>
- <br>
- <input type="checkbox" name="removecc">Remove selected CCs
- <br>
- </td>
- </tr>
-
- <tr>
- <td align="right">
- <b>
- <a href="bug_status.html">Status</a>:
- </b>
- </td>
- <td>VERIFIED</td>
- <td>&nbsp;</td>
-
- <td align="right">
- <b><a href="bug_status.html#priority">Priority</a>:</b>
- </td><td>
- <select name="priority">
- <option value="P1">P1
- </option>
- <option value="P2">P2
- </option>
- <option value="P3" selected>P3
- </option>
- <option value="P4">P4
- </option>
- <option value="P5">P5
- </option>
- </select>
- </td>
- <td>&nbsp;</td>
- </tr>
-
- <tr>
- <td align="right">
- <b>
- <a href="bug_status.html">Resolution</a>:
- </b>
- </td>
- <td>FIXED</td>
- <td>&nbsp;</td>
-
- <td align="right">
- <b><a href="bug_status.html#severity">Severity</a>:</b>
- </td><td>
- <select name="bug_severity">
- <option value="blocker">blocker
- </option>
- <option value="critical">critical
- </option>
- <option value="major">major
- </option>
- <option value="normal" selected>normal
- </option>
- <option value="minor">minor
- </option>
- <option value="trivial">trivial
- </option>
- <option value="enhancement">enhancement
- </option>
- </select>
- </td>
- <td>&nbsp;</td>
-
- </tr>
-
- <tr>
- <td align="right">
- <b>
- <a href="bug_status.html#assigned_to">Assigned&nbsp;To</a>:
- </b>
- </td>
- <td>James_Moody@ca.ibm.com (James Moody)</td>
- <td>&nbsp;</td>
-
- <td align="right">
- <b>
- <a href="notargetmilestone.html">Target Milestone</a>:
- </b>
- </td><td>
- <select name="target_milestone">
- <option value="2.0 M1">2.0 M1
- </option>
- <option value="2.0 M2">2.0 M2
- </option>
- <option value="2.0 M3">2.0 M3
- </option>
- <option value="2.0 M4">2.0 M4
- </option>
- <option value="2.0 M5">2.0 M5
- </option>
- <option value="2.0 M6">2.0 M6
- </option>
- <option value="2.0 F1">2.0 F1
- </option>
- <option value="2.0 F2">2.0 F2
- </option>
- <option value="2.0 F3">2.0 F3
- </option>
- <option value="2.0 F4">2.0 F4
- </option>
- <option value="2.0.1">2.0.1
- </option>
- <option value="2.0.2">2.0.2
- </option>
- <option value="2.1">2.1
- </option>
- <option value="2.1 M1">2.1 M1
- </option>
- <option value="2.1 M2">2.1 M2
- </option>
- <option value="2.1 M3">2.1 M3
- </option>
- <option value="2.1 M4">2.1 M4
- </option>
- <option value="2.1 M5">2.1 M5
- </option>
- <option value="2.1 RC1">2.1 RC1
- </option>
- <option value="2.1 RC2">2.1 RC2
- </option>
- <option value="2.1 RC3">2.1 RC3
- </option>
- <option value="2.1 RC4">2.1 RC4
- </option>
- <option value="2.1.1">2.1.1
- </option>
- <option value="2.2">2.2
- </option>
- <option value="---" selected>---
- </option>
- </select>
- </td>
- <td>&nbsp;</td>
- </tr>
-
-
-
-
- <tr>
- <td align="right">
- <b>
- URL:
- </b>
- </td>
- <td colspan="7">
- <input name="bug_file_loc"
- value="" size="60">
- </td>
- </tr>
-
- <tr>
- <td align="right">
- <b>Summary:</b>
- </td>
- <td colspan="7">
- <input name="short_desc"
- value="Usability issue with external editors (1GE6IRL)" size="60">
- </td>
- </tr>
-
-
- <tr>
- <td align="right">
- <b>
- <a href="describekeywords.cgi">Keywords</a>:
- </b>
- <td colspan="7">
- <input name="keywords"
- value="" size="60">
- </td>
- </tr>
- </table>
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-<br>
-<table cellspacing="0" cellpadding="4" border="1">
- <tr>
- <th bgcolor="#cccccc" align="left">Attachment</th>
- <th bgcolor="#cccccc" align="left">Type</th>
- <th bgcolor="#cccccc" align="left">Modified</th>
- <th bgcolor="#cccccc" align="left">Status</th>
- <th bgcolor="#cccccc" align="left">Actions</th>
- </tr>
-
-
- <tr>
- <td colspan="4">
- <a href="attachment.cgi?bugid=1&amp;action=enter">Create a New Attachment</a> (proposed patch, testcase, etc.)
- </td>
- <td colspan="1">
- <a href="attachment.cgi?bugid=1&amp;action=viewall">View All</a>
- </td>
- </tr>
-</table>
-<br>
-
-
-
- <table>
- <tr><th align="right">Bug 1 depends on:</th>
- <td>
- </td>
- <td>
- <input name="dependson"
- value="">
- </td>
- <td rowspan="2">
- <a href="showdependencytree.cgi?id=1">Show
- dependency tree</a>
-
- </td>
- </tr>
-
- <tr><th align="right">Bug 1 blocks:</th>
- <td>
- </td>
- <td>
- <input name="blocked"
- value="">
- </td>
- </tr>
- </table>
-
- <table>
- <tr>
- <th>
- <a href="votehelp.html">Votes</a>:
- </th>
- <td>0&nbsp;&nbsp;&nbsp;
- <a href="votes.cgi?action=show_bug&amp;bug_id=1">Show
- votes for this bug</a>&nbsp;&nbsp;&nbsp;
- <a href="votes.cgi?action=show_user&amp;bug_id=1">Vote
- for this bug</a>
- </td>
- </tr>
- </table>
-
-
-
- <br>
- <b>Additional Comments:</b>
- <br>
- <textarea wrap="hard" name="comment" rows="10" cols="80"
- accesskey="c"></textarea>
- <br>
-
-
-
-
- <br>
- <input type="radio" name="knob" value="none" checked="checked">
- Leave as <b>VERIFIED&nbsp;FIXED</b>
- <br>
-
-
-
- <input type="radio" name="knob" value="reopen"> Reopen bug
- <br>
- <input type="radio" name="knob" value="close">
- Mark bug as <b>CLOSED</b><br>
-
- <input type="submit" value="Commit">
- <input type="hidden" name="form_name" value="process_bug">
- <p>
- <font size="+1">
- <b>
- <a href="show_activity.cgi?id=1">View Bug Activity</a>
- &nbsp; | &nbsp;
- <a href="long_list.cgi?buglist=1">Format For Printing</a>
- </b>
- </font>
-
- </p>
-</form>
-
-
-
-<table>
- <tr>
- <td align="left">
- <b>
- <a name="c0" href="#c0">Description</a>:
- </b>
- </td>
- <td align="right" width="100%">
- Opened: 2001-10-10 21:34
- </td>
- </tr>
-</table>
-<hr>
-<!-- 1.0@bugzilla.org -->
-
-<pre>- Setup a project that contains a *.gif resource
- - release project to CVS
- - edit the *.gif resource with an external editor, e.g. PaintShop
- - save and close external editor
- - in Navigator open the icon resource and verify that your changes are there
- - release project
- -&gt; nothing to release!
- - in Navigator open the icon resource and verify that your changes are still there
-
- Problem: because I never &quot;Refreshed from local&quot;, the workspace hasn't changed so &quot;Release&quot; didn't find anything.
- However opening the resource with an external editor found the modified file on disk and showed the changes.
-
- The real problem occurs if &quot;Release&quot; actually finds something to release but you don't spot that some resources are missing.
- This is extremely error prone: one of my changes didn't made it into build 110 because of this!
-
-NOTES:
-EG (5/23/01 3:00:33 PM)
- Release should do a refresh from local before doing the release.
- Moving to VCM
-
-
-KM (05/27/01 5:10:19 PM)
- Comments from JM in related email:
-
- Should not do this for free. Could have a setting which made it optoinal but should nt be mandatory. Default setting could be to have it on.
- Consider the SWT team who keep their workspaces on network drives. This will be slow.
-
- Side effects will be that a build runs when the refresh is completed unless you somehow do it in a workspace runnable and don't end the
- runnable until after the release. This would be less than optimal as some builders may be responsible for maintaining some invariants and deriving resources which are releasable. If you don't run the builders before releasing, the invariants will not be maintained and you will release inconsistent state.
-
- Summary: Offer to &quot;ensure local consistency&quot; before releasing.
-
-KM (5/31/01 1:30:35 PM)
- See also 1GEAG1A: ITPVCM:WINNT - Internal error comparing with a document
- which failed with an error. Never got log from Tod though.</pre>
- <br>
- <i>------- Additional Comment
- <a name="c1" href="#c1">#1</a> From
- <a href="mailto:James_Moody@ca.ibm.com">James Moody</a>
- 2001-10-19 10:32 -------
- </i>
-
-
-<pre>*** <strike><a href="show_bug.cgi?id=183" title="RESOLVED DUPLICATE - readme: must refresh from local if using external editors (1GFBQNI)">Bug 183</a></strike> has been marked as a duplicate of this bug. ***</pre>
- <br>
- <i>------- Additional Comment
- <a name="c2" href="#c2">#2</a> From
- <a href="mailto:James_Moody@ca.ibm.com">James Moody</a>
- 2001-10-19 16:36 -------
- </i>
-
-
-<pre>Implemented 'auto refresh' option. Default value is off.</pre>
- <br>
- <i>------- Additional Comment
- <a name="c3" href="#c3">#3</a> From
- <a href="mailto:dj_houghton@ca.ibm.com">DJ Houghton</a>
- 2001-10-23 23:39 -------
- </i>
-
-
-<pre>PRODUCT VERSION:
- 109
-
-</pre>
- <br>
- <i>------- Additional Comment
- <a name="c4" href="#c4">#4</a> From
- <a href="mailto:James_Moody@ca.ibm.com">James Moody</a>
- 2001-10-25 10:19 -------
- </i>
-
-
-<pre>Fixed in v206</pre>
-
-<hr>
-<!-- 1.0@bugzilla.org -->
-
-
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="query.cgi">Query page</a>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="enter_bug.cgi">Enter new bug</a>
-
-<br>
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-
-
-<table border="0">
- <tr>
- <td bgcolor="#000000" valign="top">
- <table border="0" cellpadding="10" cellspacing="0" width="100%"
- bgcolor="lightyellow">
- <tr>
- <td>
-
-
-
- This is <b>Bugzilla</b>: the Mozilla bug system. For more
- information about what Bugzilla is and what it can do, see
- <a href="http://www.bugzilla.org/">bugzilla.org</a>.
-
-
-
- <br>
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-
-
-<form method="get" action="show_bug.cgi">
- <table width="100%">
- <tr>
- <td>
- Actions:
- </td>
-
- <td valign="middle" nowrap>
- <a href="enter_bug.cgi">New</a> |
- <a href="query.cgi">Query</a> |
-
- <input type="submit" value="Find"> bug #
- <input name="id" size="6"> |
-
- <a href="reports.cgi">Reports</a>
-
- </td>
-
- <td>&nbsp;</td>
-
- <td valign="middle" align="right">
- <a href="createaccount.cgi">New&nbsp;Account</a> |
- <a href="query.cgi?GoAheadAndLogIn=1">Log&nbsp;In</a>
- </td>
- </tr>
-
- </table>
-</form>
-
- </td>
- </tr>
- </table>
- </td>
- </tr>
-</table>
-
-</body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/TestPages/bug-not-found-eclipse.html b/org.eclipse.mylyn.bugzilla.tests/TestPages/bug-not-found-eclipse.html
deleted file mode 100644
index 156212e5e..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/TestPages/bug-not-found-eclipse.html
+++ /dev/null
@@ -1,158 +0,0 @@
-<!-- 1.0@bugzilla.org -->
-
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
- <head>
- <title>Error</title>
-
-
-
-
-
-
-
- </head>
-
-
-
- <body bgcolor="#FFFFFF" onload="">
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000" >
-<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" ><tr><td
-WIDTH="100%"><table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%"
-BGCOLOR="#006699" ><tr><td BGCOLOR="#000000" width="116" ><img
-src="images/EclipseBannerPic.jpg" width="115" height="50"></td><td
-WIDTH="637"><a href=http://www.eclipse.org><img SRC="images/gradient.jpg" BORDER=0 height=50
-width=282></a></td><td WIDTH="250"><img src="images/eproject-simple.gif"
-width="250" height="48"></td></tr></table></td></tr></table>
-
- <table border="0" cellspacing="0">
- <tr>
- <td valign="top" align="left">
- <table border="0" cellpadding="0" cellspacing="2">
- <tr>
- <td valign="top" align="left" nowrap="nowrap">
- <font size="+1"><b>Error</b></font>
- </td>
- </tr>
- </table>
- </td>
- <td valign="middle">&nbsp;</td>
- <td valign="middle" align="left"></td>
- </tr>
- </table>
-
-<table cellpadding="20">
- <tr>
- <td bgcolor="#ff0000">
- <font size="+2">Bug #666 does not exist.
- </font>
- </td>
- </tr>
-</table>
-
-<p>
- Please press <b>Back</b> and try again.
-</p>
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-
-
-<table border="0">
- <tr>
- <td bgcolor="#000000" valign="top">
- <table border="0" cellpadding="10" cellspacing="0" width="100%"
- bgcolor="lightyellow">
- <tr>
- <td>
-
-
-
- This is <b>Bugzilla</b>: the Mozilla bug system. For more
- information about what Bugzilla is and what it can do, see
- <a href="http://www.bugzilla.org/">bugzilla.org</a>.
-
-
-
- <br>
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-
-
-<form method="get" action="show_bug.cgi">
- <table width="100%">
- <tr>
- <td>
- Actions:
- </td>
-
- <td valign="middle" nowrap>
- <a href="enter_bug.cgi">New</a> |
- <a href="query.cgi">Query</a> |
-
- <input type="submit" value="Find"> bug #
- <input name="id" size="6"> |
-
- <a href="reports.cgi">Reports</a>
-
- | <a href="votes.cgi?action=show_user">My Votes</a>
- </td>
-
- <td>&nbsp;</td>
-
-
- <td valign="middle">
- Edit <a href="userprefs.cgi">prefs</a>
-
- | <a href="relogin.cgi">Log&nbsp;out</a>&nbsp;cubranic@cs.ubc.ca
- </td>
- </tr>
-
-
-
-
- <tr>
- <td>
- Preset&nbsp;Queries:
- </td>
-
- <td colspan="3">
- <a href="buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=cubranic%40cs.ubc.ca&emailtype1=exact&emailassigned_to1=1&emailreporter1=1">My&nbsp;Bugs</a>
-
- </td>
- </tr>
-
-
- </table>
-</form>
-
- </td>
- </tr>
- </table>
- </td>
- </tr>
-</table>
-
-</body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/TestPages/bug-not-found-hipikat.html b/org.eclipse.mylyn.bugzilla.tests/TestPages/bug-not-found-hipikat.html
deleted file mode 100644
index e6261be5d..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/TestPages/bug-not-found-hipikat.html
+++ /dev/null
@@ -1,142 +0,0 @@
-<!-- 1.0@bugzilla.org -->
-
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
- <head>
- <title>Error</title>
-
-
-
-
-
-
-
- </head>
-
-
-
- <body bgcolor="#FFFFFF" onload="">
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
- <table bgcolor="#000000" width="100%" border="0" cellpadding="0"
- cellspacing="0">
- <tr>
- <td>
- <font color="#FFFFFF" size="8"><center>
- Bugzilla Version 2.16.3
- </center></font>
- </td>
- </tr>
- </table>
-
- <table border="0" cellspacing="0">
- <tr>
- <td valign="top" align="left">
- <table border="0" cellpadding="0" cellspacing="2">
- <tr>
- <td valign="top" align="left" nowrap="nowrap">
- <font size="+1"><b>Error</b></font>
- </td>
- </tr>
- </table>
- </td>
- <td valign="middle">&nbsp;</td>
- <td valign="middle" align="left"></td>
- </tr>
- </table>
-
-<table cellpadding="20">
- <tr>
- <td bgcolor="#ff0000">
- <font size="+2">Bug #666 does not exist.
- </font>
- </td>
- </tr>
-</table>
-
-<p>
- Please press <b>Back</b> and try again.
-</p>
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-
-
-<table border="0">
- <tr>
- <td bgcolor="#000000" valign="top">
- <table border="0" cellpadding="10" cellspacing="0" width="100%"
- bgcolor="lightyellow">
- <tr>
- <td>
-
-
-
- This is <b>Bugzilla</b>: the Mozilla bug system. For more
- information about what Bugzilla is and what it can do, see
- <a href="http://www.bugzilla.org/">bugzilla.org</a>.
-
-
-
- <br>
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-
-
-<form method="get" action="show_bug.cgi">
- <table width="100%">
- <tr>
- <td>
- Actions:
- </td>
-
- <td valign="middle" nowrap>
- <a href="enter_bug.cgi">New</a> |
- <a href="query.cgi">Query</a> |
-
- <input type="submit" value="Find"> bug #
- <input name="id" size="6"> |
-
- <a href="reports.cgi">Reports</a>
-
- </td>
-
- <td>&nbsp;</td>
-
- <td valign="middle" align="right">
- <a href="createaccount.cgi">New&nbsp;Account</a> |
- <a href="query.cgi?GoAheadAndLogIn=1">Log&nbsp;In</a>
- </td>
- </tr>
-
- </table>
-</form>
-
- </td>
- </tr>
- </table>
- </td>
- </tr>
-</table>
-
-</body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/TestPages/cdt-page.html b/org.eclipse.mylyn.bugzilla.tests/TestPages/cdt-page.html
deleted file mode 100644
index 3a1d20fdb..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/TestPages/cdt-page.html
+++ /dev/null
@@ -1,184 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!-- saved from url=(0055)https://bugs.eclipse.org/bugs/enter_bug.cgi?product=CDT -->
-<!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><HTML><HEAD><TITLE>Enter Bug</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
-<BODY text=#000000 vLink=#551a8b aLink=#ff0000 link=#0000ee bgColor=#ffffff
-onload=""><!-- 1.0@bugzilla.org -->
-<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
- <TBODY>
- <TR>
- <TD width="100%">
- <TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#006699
- border=0><TBODY>
- <TR>
- <TD width=116 bgColor=#000000><IMG height=50
- src="Enter Bug_files/EclipseBannerPic.jpg" width=115></TD>
- <TD width=637><A href="http://www.eclipse.org/"><IMG height=50
- src="Enter Bug_files/gradient.jpg" width=282 border=0></A></TD>
- <TD width=250><IMG height=48
- src="Enter Bug_files/eproject-simple.gif"
- width=250></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
-<TABLE cellSpacing=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top align=left>
- <TABLE cellSpacing=2 cellPadding=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top noWrap align=left><FONT size=+1><B>Enter
- Bug</B></FONT> </TD></TR></TBODY></TABLE></TD>
- <TD vAlign=center>&nbsp;</TD>
- <TD vAlign=center align=left>This page lets you enter a new bug into
- Bugzilla.</TD></TR></TBODY></TABLE>
-<FORM action=post_bug.cgi method=post><INPUT type=hidden value=CDT name=product>
-
-<TABLE cellSpacing=2 cellPadding=0 border=0>
- <TBODY>
- <TR>
- <TD><BR></TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><!-- 1.0@bugzilla.org -->Before reporting a bug, please read
- the <A href="https://bugs.eclipse.org/bugs/bugwritinghelp.html">bug
- writing guidelines</A>, please look at the list of <A
- href="https://bugs.eclipse.org/bugs/duplicates.cgi">most frequently
- reported bugs</A>, and please <A
- href="https://bugs.eclipse.org/bugs/query.cgi">search</A> for the bug.
- </TD></TR>
- <TR>
- <TD><BR></TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Reporter:</STRONG></TD>
- <TD vAlign=top>tanya@cs.ubc.ca</TD>
- <TD vAlign=top align=right><STRONG>Product:</STRONG></TD>
- <TD vAlign=top>CDT</TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Version:</STRONG> </TD>
- <TD><SELECT size=5 name=version> <OPTION value=1.0>1.0</OPTION> <OPTION
- value=1.0.1>1.0.1</OPTION> <OPTION value=1.1>1.1</OPTION> <OPTION
- value=1.2>1.2</OPTION> <OPTION value=2.0 selected>2.0</OPTION></SELECT>
-</TD>
- <TD vAlign=top align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/describecomponents.cgi?product=CDT">Component</A>:
- </STRONG></TD>
- <TD><SELECT size=5 name=component> <OPTION
- value=CDT-parser>CDT-parser</OPTION> <OPTION value=Core>Core</OPTION>
- <OPTION value=Cpp-Extensions>Cpp-Extensions</OPTION> <OPTION
- value=Debug>Debug</OPTION> <OPTION value=Debug-MI>Debug-MI</OPTION>
- <OPTION value=Doc>Doc</OPTION> <OPTION
- value=Generic-Extensions>Generic-Extensions</OPTION> <OPTION
- value=Launcher>Launcher</OPTION> <OPTION value=UI>UI</OPTION></SELECT>
- </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#rep_platform">Platform</A>:
- </STRONG></TD>
- <TD><SELECT name=rep_platform> <OPTION value=All>All</OPTION> <OPTION
- value=Macintosh>Macintosh</OPTION> <OPTION value=PC selected>PC</OPTION>
- <OPTION value="Power PC">Power PC</OPTION> <OPTION
- value=Sun>Sun</OPTION> <OPTION value=Other>Other</OPTION></SELECT> </TD>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#op_sys">OS</A>:
- </STRONG></TD>
- <TD><SELECT name=op_sys> <OPTION value=All>All</OPTION> <OPTION
- value="AIX Motif">AIX Motif</OPTION> <OPTION value="Windows 95">Windows
- 95</OPTION> <OPTION value="Windows 98">Windows 98</OPTION> <OPTION
- value="Windows CE">Windows CE</OPTION> <OPTION
- value="Windows ME">Windows ME</OPTION> <OPTION
- value="Windows 2000">Windows 2000</OPTION> <OPTION
- value="Windows NT">Windows NT</OPTION> <OPTION value="Windows XP"
- selected>Windows XP</OPTION> <OPTION value="Windows All">Windows
- All</OPTION> <OPTION value="MacOS X">MacOS X</OPTION> <OPTION
- value=Linux>Linux</OPTION> <OPTION value=Linux-GTK>Linux-GTK</OPTION>
- <OPTION value=Linux-Motif>Linux-Motif</OPTION> <OPTION
- value=HP-UX>HP-UX</OPTION> <OPTION value=Neutrino>Neutrino</OPTION>
- <OPTION value=QNX-Photon>QNX-Photon</OPTION> <OPTION
- value=Solaris>Solaris</OPTION> <OPTION value="Unix All">Unix
- All</OPTION> <OPTION value=other>other</OPTION></SELECT> </TD></TR>
- <TR><INPUT type=hidden value=P3 name=priority>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#bug_severity">Severity</A>:
- </STRONG></TD>
- <TD><SELECT name=bug_severity> <OPTION value=blocker>blocker</OPTION>
- <OPTION value=critical>critical</OPTION> <OPTION
- value=major>major</OPTION> <OPTION value=normal selected>normal</OPTION>
- <OPTION value=minor>minor</OPTION> <OPTION
- value=trivial>trivial</OPTION> <OPTION
- value=enhancement>enhancement</OPTION></SELECT> </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR><INPUT type=hidden value=NEW name=bug_status>
- <TR>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Assigned
- To</A>: </STRONG></TD>
- <TD colSpan=3><INPUT size=32 name=assigned_to> (Leave blank to assign to
- default component owner) </TD></TR>
- <TR>
- <TD align=right><STRONG>Cc:</STRONG></TD>
- <TD colSpan=3><INPUT size=45 name=cc> </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD colSpan=3><INPUT type=hidden size=60 name=bug_file_loc input> </TD></TR>
- <TR>
- <TD align=right><STRONG>Summary:</STRONG></TD>
- <TD colSpan=3><INPUT size=60 name=short_desc> </TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Description:</STRONG></TD>
- <TD colSpan=3><TEXTAREA name=comment rows=10 wrap=hard cols=80></TEXTAREA>
- <BR></TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><INPUT onclick="if (this.form.short_desc.value == '') &#10; { alert('Please enter a summary sentence for this bug.'); &#10; return false; } return true;" type=submit value=" Commit ">
- &nbsp;&nbsp;&nbsp;&nbsp; <INPUT type=submit value="Remember values as bookmarkable template" name=maketemplate>
- </TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><BR>We've made a guess at your operating system and
- platform. Please check them and, if we got it wrong, email
- webmaster@eclipse.org. </TD></TR></TBODY></TABLE><INPUT type=hidden
-value=enter_bug name=form_name> </FORM><!-- 1.0@bugzilla.org -->
-<TABLE border=0>
- <TBODY>
- <TR>
- <TD vAlign=top bgColor=#000000>
- <TABLE cellSpacing=0 cellPadding=10 width="100%" bgColor=lightyellow
- border=0>
- <TBODY>
- <TR>
- <TD>This is <B>Bugzilla</B>: the Mozilla bug system. For more
- information about what Bugzilla is and what it can do, see <A
- href="http://www.bugzilla.org/">bugzilla.org</A>. <BR><!-- 1.0@bugzilla.org -->
- <FORM action=show_bug.cgi method=get>
- <TABLE width="100%">
- <TBODY>
- <TR>
- <TD>Actions: </TD>
- <TD vAlign=center noWrap><A
- href="https://bugs.eclipse.org/bugs/enter_bug.cgi">New</A> |
- <A href="https://bugs.eclipse.org/bugs/query.cgi">Query</A> | <INPUT type=submit value=Find> bug # <INPUT size=6 name=id> |
- <A
- href="https://bugs.eclipse.org/bugs/reports.cgi">Reports</A> |
- <A
- href="https://bugs.eclipse.org/bugs/votes.cgi?action=show_user">My
- Votes</A> </TD>
- <TD>&nbsp;</TD>
- <TD vAlign=center>Edit <A
- href="https://bugs.eclipse.org/bugs/userprefs.cgi">prefs</A> |
- <A
- href="https://bugs.eclipse.org/bugs/relogin.cgi">Log&nbsp;out</A>&nbsp;tanya@cs.ubc.ca
- </TD></TR>
- <TR>
- <TD>Preset&nbsp;Queries: </TD>
- <TD colSpan=3><A
- href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=tanya%40cs.ubc.ca&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;emailreporter1=1">My&nbsp;Bugs</A>
- </TD></TR></TBODY></TABLE></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>
diff --git a/org.eclipse.mylyn.bugzilla.tests/TestPages/equinox-page.html b/org.eclipse.mylyn.bugzilla.tests/TestPages/equinox-page.html
deleted file mode 100644
index 1c8fdf57d..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/TestPages/equinox-page.html
+++ /dev/null
@@ -1,177 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!-- saved from url=(0059)https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Equinox -->
-<!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><HTML><HEAD><TITLE>Enter Bug</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
-<BODY text=#000000 vLink=#551a8b aLink=#ff0000 link=#0000ee bgColor=#ffffff
-onload=""><!-- 1.0@bugzilla.org -->
-<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
- <TBODY>
- <TR>
- <TD width="100%">
- <TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#006699
- border=0><TBODY>
- <TR>
- <TD width=116 bgColor=#000000><IMG height=50
- src="Equinox_files/EclipseBannerPic.jpg" width=115></TD>
- <TD width=637><A href="http://www.eclipse.org/"><IMG height=50
- src="Equinox_files/gradient.jpg" width=282 border=0></A></TD>
- <TD width=250><IMG height=48 src="Equinox_files/eproject-simple.gif"
- width=250></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
-<TABLE cellSpacing=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top align=left>
- <TABLE cellSpacing=2 cellPadding=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top noWrap align=left><FONT size=+1><B>Enter
- Bug</B></FONT> </TD></TR></TBODY></TABLE></TD>
- <TD vAlign=center>&nbsp;</TD>
- <TD vAlign=center align=left>This page lets you enter a new bug into
- Bugzilla.</TD></TR></TBODY></TABLE>
-<FORM action=post_bug.cgi method=post><INPUT type=hidden value=Equinox
-name=product>
-<TABLE cellSpacing=2 cellPadding=0 border=0>
- <TBODY>
- <TR>
- <TD><BR></TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><!-- 1.0@bugzilla.org -->Before reporting a bug, please read
- the <A href="https://bugs.eclipse.org/bugs/bugwritinghelp.html">bug
- writing guidelines</A>, please look at the list of <A
- href="https://bugs.eclipse.org/bugs/duplicates.cgi">most frequently
- reported bugs</A>, and please <A
- href="https://bugs.eclipse.org/bugs/query.cgi">search</A> for the bug.
- </TD></TR>
- <TR>
- <TD><BR></TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Reporter:</STRONG></TD>
- <TD vAlign=top>tanya@cs.ubc.ca</TD>
- <TD vAlign=top align=right><STRONG>Product:</STRONG></TD>
- <TD vAlign=top>Equinox</TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Version:</STRONG> </TD>
- <TD><SELECT size=5 name=version> <OPTION value=unspecified
- selected>unspecified</OPTION></SELECT> </TD>
- <TD vAlign=top align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/describecomponents.cgi?product=Equinox">Component</A>:
- </STRONG></TD>
- <TD><SELECT size=5 name=component> <OPTION
- value="Dynamic Plugins">Dynamic Plugins</OPTION> <OPTION
- value=General>General</OPTION> <OPTION value=OSGi>OSGi</OPTION></SELECT>
- </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#rep_platform">Platform</A>:
- </STRONG></TD>
- <TD><SELECT name=rep_platform> <OPTION value=All>All</OPTION> <OPTION
- value=Macintosh>Macintosh</OPTION> <OPTION value=PC selected>PC</OPTION>
- <OPTION value="Power PC">Power PC</OPTION> <OPTION
- value=Sun>Sun</OPTION> <OPTION value=Other>Other</OPTION></SELECT> </TD>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#op_sys">OS</A>:
- </STRONG></TD>
- <TD><SELECT name=op_sys> <OPTION value=All>All</OPTION> <OPTION
- value="AIX Motif">AIX Motif</OPTION> <OPTION value="Windows 95">Windows
- 95</OPTION> <OPTION value="Windows 98">Windows 98</OPTION> <OPTION
- value="Windows CE">Windows CE</OPTION> <OPTION
- value="Windows ME">Windows ME</OPTION> <OPTION
- value="Windows 2000">Windows 2000</OPTION> <OPTION
- value="Windows NT">Windows NT</OPTION> <OPTION value="Windows XP"
- selected>Windows XP</OPTION> <OPTION value="Windows All">Windows
- All</OPTION> <OPTION value="MacOS X">MacOS X</OPTION> <OPTION
- value=Linux>Linux</OPTION> <OPTION value=Linux-GTK>Linux-GTK</OPTION>
- <OPTION value=Linux-Motif>Linux-Motif</OPTION> <OPTION
- value=HP-UX>HP-UX</OPTION> <OPTION value=Neutrino>Neutrino</OPTION>
- <OPTION value=QNX-Photon>QNX-Photon</OPTION> <OPTION
- value=Solaris>Solaris</OPTION> <OPTION value="Unix All">Unix
- All</OPTION> <OPTION value=other>other</OPTION></SELECT> </TD></TR>
- <TR><INPUT type=hidden value=P3 name=priority>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#bug_severity">Severity</A>:
- </STRONG></TD>
- <TD><SELECT name=bug_severity> <OPTION value=blocker>blocker</OPTION>
- <OPTION value=critical>critical</OPTION> <OPTION
- value=major>major</OPTION> <OPTION value=normal selected>normal</OPTION>
- <OPTION value=minor>minor</OPTION> <OPTION
- value=trivial>trivial</OPTION> <OPTION
- value=enhancement>enhancement</OPTION></SELECT> </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR><INPUT type=hidden value=NEW name=bug_status>
- <TR>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Assigned
- To</A>: </STRONG></TD>
- <TD colSpan=3><INPUT size=32 name=assigned_to> (Leave blank to assign to
- default component owner) </TD></TR>
- <TR>
- <TD align=right><STRONG>Cc:</STRONG></TD>
- <TD colSpan=3><INPUT size=45 name=cc> </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD colSpan=3><INPUT type=hidden size=60 name=bug_file_loc input> </TD></TR>
- <TR>
- <TD align=right><STRONG>Summary:</STRONG></TD>
- <TD colSpan=3><INPUT size=60 name=short_desc> </TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Description:</STRONG></TD>
- <TD colSpan=3><TEXTAREA name=comment rows=10 wrap=hard cols=80></TEXTAREA>
- <BR></TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><INPUT onclick="if (this.form.short_desc.value == '') &#10; { alert('Please enter a summary sentence for this bug.'); &#10; return false; } return true;" type=submit value=" Commit ">
- &nbsp;&nbsp;&nbsp;&nbsp; <INPUT type=submit value="Remember values as bookmarkable template" name=maketemplate>
- </TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><BR>We've made a guess at your operating system and
- platform. Please check them and, if we got it wrong, email
- webmaster@eclipse.org. </TD></TR></TBODY></TABLE><INPUT type=hidden
-value=enter_bug name=form_name> </FORM><!-- 1.0@bugzilla.org -->
-<TABLE border=0>
- <TBODY>
- <TR>
- <TD vAlign=top bgColor=#000000>
- <TABLE cellSpacing=0 cellPadding=10 width="100%" bgColor=lightyellow
- border=0>
- <TBODY>
- <TR>
- <TD>This is <B>Bugzilla</B>: the Mozilla bug system. For more
- information about what Bugzilla is and what it can do, see <A
- href="http://www.bugzilla.org/">bugzilla.org</A>. <BR><!-- 1.0@bugzilla.org -->
- <FORM action=show_bug.cgi method=get>
- <TABLE width="100%">
- <TBODY>
- <TR>
- <TD>Actions: </TD>
- <TD vAlign=center noWrap><A
- href="https://bugs.eclipse.org/bugs/enter_bug.cgi">New</A> |
- <A href="https://bugs.eclipse.org/bugs/query.cgi">Query</A> | <INPUT type=submit value=Find> bug # <INPUT size=6 name=id> |
- <A
- href="https://bugs.eclipse.org/bugs/reports.cgi">Reports</A> |
- <A
- href="https://bugs.eclipse.org/bugs/votes.cgi?action=show_user">My
- Votes</A> </TD>
- <TD>&nbsp;</TD>
- <TD vAlign=center>Edit <A
- href="https://bugs.eclipse.org/bugs/userprefs.cgi">prefs</A> |
- <A
- href="https://bugs.eclipse.org/bugs/relogin.cgi">Log&nbsp;out</A>&nbsp;tanya@cs.ubc.ca
- </TD></TR>
- <TR>
- <TD>Preset&nbsp;Queries: </TD>
- <TD colSpan=3><A
- href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=tanya%40cs.ubc.ca&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;emailreporter1=1">My&nbsp;Bugs</A>
- </TD></TR></TBODY></TABLE></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>
diff --git a/org.eclipse.mylyn.bugzilla.tests/TestPages/gmt-page.html b/org.eclipse.mylyn.bugzilla.tests/TestPages/gmt-page.html
deleted file mode 100644
index 951b86ccd..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/TestPages/gmt-page.html
+++ /dev/null
@@ -1,175 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!-- saved from url=(0055)https://bugs.eclipse.org/bugs/enter_bug.cgi?product=GMT -->
-<!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><HTML><HEAD><TITLE>Enter Bug</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
-<BODY text=#000000 vLink=#551a8b aLink=#ff0000 link=#0000ee bgColor=#ffffff
-onload=""><!-- 1.0@bugzilla.org -->
-<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
- <TBODY>
- <TR>
- <TD width="100%">
- <TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#006699
- border=0><TBODY>
- <TR>
- <TD width=116 bgColor=#000000><IMG height=50
- src="GMT_files/EclipseBannerPic.jpg" width=115></TD>
- <TD width=637><A href="http://www.eclipse.org/"><IMG height=50
- src="GMT_files/gradient.jpg" width=282 border=0></A></TD>
- <TD width=250><IMG height=48 src="GMT_files/eproject-simple.gif"
- width=250></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
-<TABLE cellSpacing=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top align=left>
- <TABLE cellSpacing=2 cellPadding=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top noWrap align=left><FONT size=+1><B>Enter
- Bug</B></FONT> </TD></TR></TBODY></TABLE></TD>
- <TD vAlign=center>&nbsp;</TD>
- <TD vAlign=center align=left>This page lets you enter a new bug into
- Bugzilla.</TD></TR></TBODY></TABLE>
-<FORM action=post_bug.cgi method=post><INPUT type=hidden value=GMT name=product>
-
-<TABLE cellSpacing=2 cellPadding=0 border=0>
- <TBODY>
- <TR>
- <TD><BR></TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><!-- 1.0@bugzilla.org -->Before reporting a bug, please read
- the <A href="https://bugs.eclipse.org/bugs/bugwritinghelp.html">bug
- writing guidelines</A>, please look at the list of <A
- href="https://bugs.eclipse.org/bugs/duplicates.cgi">most frequently
- reported bugs</A>, and please <A
- href="https://bugs.eclipse.org/bugs/query.cgi">search</A> for the bug.
- </TD></TR>
- <TR>
- <TD><BR></TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Reporter:</STRONG></TD>
- <TD vAlign=top>tanya@cs.ubc.ca</TD>
- <TD vAlign=top align=right><STRONG>Product:</STRONG></TD>
- <TD vAlign=top>GMT</TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Version:</STRONG> </TD>
- <TD><SELECT size=5 name=version> <OPTION value=unspecified
- selected>unspecified</OPTION></SELECT> </TD>
- <TD vAlign=top align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/describecomponents.cgi?product=GMT">Component</A>:
- </STRONG></TD>
- <TD><SELECT size=5 name=component> <OPTION value=Core
- selected>Core</OPTION></SELECT> </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#rep_platform">Platform</A>:
- </STRONG></TD>
- <TD><SELECT name=rep_platform> <OPTION value=All>All</OPTION> <OPTION
- value=Macintosh>Macintosh</OPTION> <OPTION value=PC selected>PC</OPTION>
- <OPTION value="Power PC">Power PC</OPTION> <OPTION
- value=Sun>Sun</OPTION> <OPTION value=Other>Other</OPTION></SELECT> </TD>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#op_sys">OS</A>:
- </STRONG></TD>
- <TD><SELECT name=op_sys> <OPTION value=All>All</OPTION> <OPTION
- value="AIX Motif">AIX Motif</OPTION> <OPTION value="Windows 95">Windows
- 95</OPTION> <OPTION value="Windows 98">Windows 98</OPTION> <OPTION
- value="Windows CE">Windows CE</OPTION> <OPTION
- value="Windows ME">Windows ME</OPTION> <OPTION
- value="Windows 2000">Windows 2000</OPTION> <OPTION
- value="Windows NT">Windows NT</OPTION> <OPTION value="Windows XP"
- selected>Windows XP</OPTION> <OPTION value="Windows All">Windows
- All</OPTION> <OPTION value="MacOS X">MacOS X</OPTION> <OPTION
- value=Linux>Linux</OPTION> <OPTION value=Linux-GTK>Linux-GTK</OPTION>
- <OPTION value=Linux-Motif>Linux-Motif</OPTION> <OPTION
- value=HP-UX>HP-UX</OPTION> <OPTION value=Neutrino>Neutrino</OPTION>
- <OPTION value=QNX-Photon>QNX-Photon</OPTION> <OPTION
- value=Solaris>Solaris</OPTION> <OPTION value="Unix All">Unix
- All</OPTION> <OPTION value=other>other</OPTION></SELECT> </TD></TR>
- <TR><INPUT type=hidden value=P3 name=priority>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#bug_severity">Severity</A>:
- </STRONG></TD>
- <TD><SELECT name=bug_severity> <OPTION value=blocker>blocker</OPTION>
- <OPTION value=critical>critical</OPTION> <OPTION
- value=major>major</OPTION> <OPTION value=normal selected>normal</OPTION>
- <OPTION value=minor>minor</OPTION> <OPTION
- value=trivial>trivial</OPTION> <OPTION
- value=enhancement>enhancement</OPTION></SELECT> </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR><INPUT type=hidden value=NEW name=bug_status>
- <TR>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Assigned
- To</A>: </STRONG></TD>
- <TD colSpan=3><INPUT size=32 name=assigned_to> (Leave blank to assign to
- default component owner) </TD></TR>
- <TR>
- <TD align=right><STRONG>Cc:</STRONG></TD>
- <TD colSpan=3><INPUT size=45 name=cc> </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD colSpan=3><INPUT type=hidden size=60 name=bug_file_loc input> </TD></TR>
- <TR>
- <TD align=right><STRONG>Summary:</STRONG></TD>
- <TD colSpan=3><INPUT size=60 name=short_desc> </TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Description:</STRONG></TD>
- <TD colSpan=3><TEXTAREA name=comment rows=10 wrap=hard cols=80></TEXTAREA>
- <BR></TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><INPUT onclick="if (this.form.short_desc.value == '') &#10; { alert('Please enter a summary sentence for this bug.'); &#10; return false; } return true;" type=submit value=" Commit ">
- &nbsp;&nbsp;&nbsp;&nbsp; <INPUT type=submit value="Remember values as bookmarkable template" name=maketemplate>
- </TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><BR>We've made a guess at your operating system and
- platform. Please check them and, if we got it wrong, email
- webmaster@eclipse.org. </TD></TR></TBODY></TABLE><INPUT type=hidden
-value=enter_bug name=form_name> </FORM><!-- 1.0@bugzilla.org -->
-<TABLE border=0>
- <TBODY>
- <TR>
- <TD vAlign=top bgColor=#000000>
- <TABLE cellSpacing=0 cellPadding=10 width="100%" bgColor=lightyellow
- border=0>
- <TBODY>
- <TR>
- <TD>This is <B>Bugzilla</B>: the Mozilla bug system. For more
- information about what Bugzilla is and what it can do, see <A
- href="http://www.bugzilla.org/">bugzilla.org</A>. <BR><!-- 1.0@bugzilla.org -->
- <FORM action=show_bug.cgi method=get>
- <TABLE width="100%">
- <TBODY>
- <TR>
- <TD>Actions: </TD>
- <TD vAlign=center noWrap><A
- href="https://bugs.eclipse.org/bugs/enter_bug.cgi">New</A> |
- <A href="https://bugs.eclipse.org/bugs/query.cgi">Query</A> | <INPUT type=submit value=Find> bug # <INPUT size=6 name=id> |
- <A
- href="https://bugs.eclipse.org/bugs/reports.cgi">Reports</A> |
- <A
- href="https://bugs.eclipse.org/bugs/votes.cgi?action=show_user">My
- Votes</A> </TD>
- <TD>&nbsp;</TD>
- <TD vAlign=center>Edit <A
- href="https://bugs.eclipse.org/bugs/userprefs.cgi">prefs</A> |
- <A
- href="https://bugs.eclipse.org/bugs/relogin.cgi">Log&nbsp;out</A>&nbsp;tanya@cs.ubc.ca
- </TD></TR>
- <TR>
- <TD>Preset&nbsp;Queries: </TD>
- <TD colSpan=3><A
- href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=tanya%40cs.ubc.ca&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;emailreporter1=1">My&nbsp;Bugs</A>
- </TD></TR></TBODY></TABLE></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>
diff --git a/org.eclipse.mylyn.bugzilla.tests/TestPages/hipikat-copy-bug-1-full.html b/org.eclipse.mylyn.bugzilla.tests/TestPages/hipikat-copy-bug-1-full.html
deleted file mode 100644
index 6390fcc9a..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/TestPages/hipikat-copy-bug-1-full.html
+++ /dev/null
@@ -1,157 +0,0 @@
-<HTML><HEAD>
-<TITLE>Bug 1 - Usability issue with external editors (1GE6IRL)</TITLE>
-
-
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000" >
-<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" ><tr><td
-WIDTH="100%"><table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%"
-BGCOLOR="#006699" ><tr><td BGCOLOR="#000000" width="116" ><img
-src="http://bugs.eclipse.org/bugs/images/EclipseBannerPic.jpg" width="115" height="50"></td><td
-WIDTH="637"><img SRC="http://bugs.eclipse.org/bugs/images/gradient.jpg" BORDER=0 height=50
-width=282></td><td WIDTH="250"><img src="http://bugs.eclipse.org/bugs/images/eproject-simple.gif"
-width="250" height="48"></td></tr></table></td></tr></table>
-
-<TABLE BORDER=0 CELLSPACING=0 WIDTH="100%">
- <TR>
- <TD WIDTH=10% VALIGN=TOP ALIGN=LEFT>
- <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=2>
- <TR><TD VALIGN=TOP ALIGN=LEFT NOWRAP>
- <FONT SIZE=+1><B>Bugzilla Bug 1</B></FONT> </TD></TR>
- </TABLE>
- </TD>
- <TD VALIGN=CENTER>&nbsp;</TD>
- <TD VALIGN=CENTER ALIGN=LEFT>
-Usability issue with external editors (1GE6IRL)
-</TD></TR></TABLE>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF=query.cgi>Query page</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF=enter_bug.cgi>Enter new bug</A>
-<HR>
-<FORM NAME="changeform" METHOD="POST" ACTION="process_bug.cgi">
-
-<INPUT TYPE=HIDDEN NAME="delta_ts" VALUE="20020427143827">
-<INPUT TYPE=HIDDEN NAME="longdesclength" VALUE="3022">
-<INPUT TYPE=HIDDEN NAME="id" VALUE=1>
- <TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0><TR>
- <TD ALIGN=RIGHT><B>Bug#:</B></TD><TD><A HREF="http://cvs-mirror.mozilla.org/webtools/bugzilla/show_bug.cgi?id=1">1</A></TD>
- <TD>&nbsp;</TD>
- <TD ALIGN=RIGHT><B><A HREF="bug_status.html#rep_platform">Platform:</A></B></TD>
- <TD><SELECT NAME=rep_platform><OPTION VALUE="All">All<OPTION VALUE="DEC">DEC<OPTION VALUE="HP">HP<OPTION VALUE="Macintosh">Macintosh<OPTION VALUE="PC">PC<OPTION VALUE="SGI">SGI<OPTION VALUE="Sun">Sun<OPTION VALUE="Other">Other</SELECT></TD>
- <TD>&nbsp;</TD>
- <TD ALIGN=RIGHT><B>Reporter:</B></TD><TD>Andre_Weinand@oti.com (Andre Weinand)</TD>
-</TR><TR>
- <TD ALIGN=RIGHT><B>Product:</B></TD>
- <TD><SELECT NAME=product><OPTION VALUE="TestProduct">TestProduct</SELECT></TD>
- <TD>&nbsp;</TD>
- <TD ALIGN=RIGHT><B>OS:</B></TD>
- <TD><SELECT NAME=op_sys><OPTION SELECTED VALUE="All">All<OPTION VALUE="Windows 3.1">Windows 3.1<OPTION VALUE="Windows 95">Windows 95<OPTION VALUE="Windows 98">Windows 98<OPTION VALUE="Windows ME">Windows ME<OPTION VALUE="Windows 2000">Windows 2000<OPTION VALUE="Windows NT">Windows NT<OPTION VALUE="Mac System 7">Mac System 7<OPTION VALUE="Mac System 7.5">Mac System 7.5<OPTION VALUE="Mac System 7.6.1">Mac System 7.6.1<OPTION VALUE="Mac System 8.0">Mac System 8.0<OPTION VALUE="Mac System 8.5">Mac System 8.5<OPTION VALUE="Mac System 8.6">Mac System 8.6<OPTION VALUE="Mac System 9.0">Mac System 9.0<OPTION VALUE="Linux">Linux<OPTION VALUE="BSDI">BSDI<OPTION VALUE="FreeBSD">FreeBSD<OPTION VALUE="NetBSD">NetBSD<OPTION VALUE="OpenBSD">OpenBSD<OPTION VALUE="AIX">AIX<OPTION VALUE="BeOS">BeOS<OPTION VALUE="HP-UX">HP-UX<OPTION VALUE="IRIX">IRIX<OPTION VALUE="Neutrino">Neutrino<OPTION VALUE="OpenVMS">OpenVMS<OPTION VALUE="OS/2">OS/2<OPTION VALUE="OSF/1">OSF/1<OPTION VALUE="Solaris">Solaris<OPTION VALUE="SunOS">SunOS<OPTION VALUE="other">other</SELECT></TD>
- <TD>&nbsp;</TD>
- <TD ALIGN=RIGHT NOWRAP><b>Add CC:</b></TD>
- <TD><INPUT NAME=newcc SIZE=30 VALUE=""></TD>
-</TR><TR>
- <TD ALIGN=RIGHT><B><A HREF="describecomponents.cgi?product=">Component:</A></B></TD>
- <TD><SELECT NAME=component></SELECT></TD>
- <TD>&nbsp;</TD>
- <TD ALIGN=RIGHT><B>Version:</B></TD>
- <TD><SELECT NAME=version></SELECT></TD>
- <TD>&nbsp;</TD>
- <TD ROWSPAN=4 ALIGN=RIGHT VALIGN=TOP><B>Cc:</B></TD>
- <TD ROWSPAN=4 VALIGN=TOP> <SELECT NAME=cc MULTIPLE SIZE=5>
-<OPTION VALUE="Kevin_McGuire@oti.com">Kevin_McGuire@oti.com
-</SELECT><BR>
-<INPUT TYPE=CHECKBOX NAME=removecc>Remove selected CCs<br>
- </TD>
-</TR><TR>
- <TD ALIGN=RIGHT><B><A HREF="bug_status.html">Status:</A></B></TD>
- <TD>VERIFIED</TD>
- <TD>&nbsp;</TD>
- <TD ALIGN=RIGHT><B><A HREF="bug_status.html#priority">Priority:</A></B></TD>
- <TD><SELECT NAME=priority><OPTION VALUE="P1">P1<OPTION VALUE="P2">P2<OPTION SELECTED VALUE="P3">P3<OPTION VALUE="P4">P4<OPTION VALUE="P5">P5</SELECT></TD>
- <TD>&nbsp;</TD>
-</TR><TR>
- <TD ALIGN=RIGHT><B><A HREF="bug_status.html">Resolution:</A></B></TD>
- <TD>FIXED</TD>
- <TD>&nbsp;</TD>
- <TD ALIGN=RIGHT><B><A HREF="bug_status.html#severity">Severity:</A></B></TD>
- <TD><SELECT NAME=bug_severity><OPTION VALUE="blocker">blocker<OPTION VALUE="critical">critical<OPTION VALUE="major">major<OPTION SELECTED VALUE="normal">normal<OPTION VALUE="minor">minor<OPTION VALUE="trivial">trivial<OPTION VALUE="enhancement">enhancement</SELECT></TD>
- <TD>&nbsp;</TD>
-</TR><TR>
- <TD ALIGN=RIGHT><B><A HREF="bug_status.html#assigned_to">Assigned&nbsp;To:
- </A></B></TD>
- <TD>James_Moody@oti.com (James Moody)</TD>
- <TD>&nbsp;</TD><TD></TD><TD></TD><TD>&nbsp;</TD>
-</TR>
- <TR>
- <TD ALIGN="RIGHT"><B>URL:</B>
- <TD COLSPAN=7>
- <INPUT NAME=bug_file_loc VALUE="" SIZE=60></TD>
- </TR><TR>
- <TD ALIGN="RIGHT"><B>Summary:</B>
- <TD COLSPAN=7>
- <INPUT NAME=short_desc VALUE="Usability issue with external editors (1GE6IRL)" SIZE=60></TD>
- </TR><tr><td align=right><B>Attachments:</b></td>
-<td colspan=7><a href="createattachment.cgi?id=1">Create a new attachment</a> (proposed patch, testcase, etc.)</td></tr></table>
-<table><tr>
-<th align=right>Bug 1 depends on:</th><td></td><td><input name=dependson value=""></td>
-
-<td rowspan=2><a href="showdependencytree.cgi?id=1">Show dependency tree</a>
-
-<br><a href="showdependencygraph.cgi?id=1">Show dependency graph</a>
-</td></tr><tr><th align=right>Bug 1 blocks:</th><td></td><td><input name=blocked value=""></td>
-</tr></table>
-
-<br>
-<B>Additional Comments:</B>
-<BR>
-<TEXTAREA WRAP=HARD NAME=comment ROWS=10 COLS=80></TEXTAREA><BR><br>
-<INPUT TYPE=radio NAME=knob VALUE=none CHECKED>
- Leave as <b>VERIFIED FIXED</b><br><INPUT TYPE=radio NAME=knob VALUE=reopen> Reopen bug<br>
-<INPUT TYPE=radio NAME=knob VALUE=close>
- Mark bug as <b>CLOSED</b><br>
-
-<INPUT TYPE="submit" VALUE="Commit">
-<INPUT TYPE="reset" VALUE="Reset">
-<INPUT TYPE="hidden" name="form_name" VALUE="process_bug">
-<P>
-<FONT size="+1"><B>
- <A HREF="show_activity.cgi?id=1">View Bug Activity</A>
- &nbsp; | &nbsp;
- <A HREF="long_list.cgi?buglist=1">Format For Printing</A>
-</B></FONT>
-<BR></FORM>
-<table><tr><td align=left><B>Description:</B></td>
-<td align=right width=100%>Opened: 2001-10-10 17:34</td></tr></table>
-<HR>
-<PRE>- Setup a project that contains a *.gif resource&#013; - release project to CVS&#013; - edit the *.gif resource with an external editor, e.g. PaintShop&#013; - save and close external editor&#013; - in Navigator open the icon resource and verify that your changes are there&#013; - release project&#013; -&gt; nothing to release!&#013; - in Navigator open the icon resource and verify that your changes are still there&#013;&#013; Problem: because I never &quot;Refreshed from local&quot;, the workspace hasn't changed so &quot;Release&quot; didn't find anything.&#013; However opening the resource with an external editor found the modified file on disk and showed the changes.&#013;&#013; The real problem occurs if &quot;Release&quot; actually finds something to release but you don't spot that some resources are missing.&#013; This is extremely error prone: one of my changes didn't made it into build 110 because of this!&#013;&#013;NOTES:&#013;EG (5/23/01 3:00:33 PM)&#013; Release should do a refresh from local before doing the release.&#013; Moving to VCM&#013;&#013;&#013;KM (05/27/01 5:10:19 PM)&#013; Comments from JM in related email:&#013;&#013; Should not do this for free. Could have a setting which made it optoinal but should nt be mandatory. Default setting could be to have it on.&#013; Consider the SWT team who keep their workspaces on network drives. This will be slow. &#013;&#013; Side effects will be that a build runs when the refresh is completed unless you somehow do it in a workspace runnable and don't end the&#013; runnable until after the release. This would be less than optimal as some builders may be responsible for maintaining some invariants and deriving resources which are releasable. If you don't run the builders before releasing, the invariants will not be maintained and you will release inconsistent state.&#013;&#013; Summary: Offer to &quot;ensure local consistency&quot; before releasing.&#013;&#013;KM (5/31/01 1:30:35 PM)&#013; See also 1GEAG1A: ITPVCM:WINNT - Internal error comparing with a document&#013; which failed with an error. Never got log from Tod though.</PRE>
-<BR><BR><I>------- Additional Comments From <A HREF="mailto:James_Moody@oti.com">James Moody</A> 2001-10-19 06:32 -------</I><BR>
-<PRE>*** <strike><a href="show_bug.cgi?id=183" title="RESOLVED DUPLICATE - readme: must refresh from local if using external editors (1GFBQNI)">Bug 183</a></strike> has been marked as a duplicate of this bug. ***</PRE>
-<BR><BR><I>------- Additional Comments From <A HREF="mailto:James_Moody@oti.com">James Moody</A> 2001-10-19 12:36 -------</I><BR>
-<PRE>Implemented 'auto refresh' option. Default value is off.</PRE>
-<BR><BR><I>------- Additional Comments From <A HREF="mailto:DJ_Houghton@oti.com">DJ Houghton</A> 2001-10-23 19:39 -------</I><BR>
-<PRE>PRODUCT VERSION:&#013; 109&#013;&#013;</PRE>
-<BR><BR><I>------- Additional Comments From <A HREF="mailto:James_Moody@oti.com">James Moody</A> 2001-10-25 06:19 -------</I><BR>
-<PRE>Fixed in v206</PRE>
-
-<HR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF=query.cgi>Query page</A>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF=enter_bug.cgi>Enter new bug</A>
-<hr>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a HREF=query.cgi>Query page</a>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a HREF=enter_bug.cgi>Enter new bug</a>
-<table BORDER="0"><tr><td BGCOLOR="#000000" VALIGN="TOP">
-<table BORDER="0" CELLPADDING="10" CELLSPACING="0" WIDTH="100%"
-BGCOLOR="lightyellow">
-<tr><td>
-<form METHOD=GET ACTION="show_bug.cgi">
-<table width="100%"><tr><td>
-Actions:
-</td><td VALIGN="middle" NOWRAP>
-<a href='enter_bug.cgi'>New</a> | <a href='query.cgi'>Query</a> |
- <input TYPE=SUBMIT VALUE="Find"> bug # <input NAME=id SIZE=6> | <a
-href='reports.cgi'>Reports</a></td><td>&nbsp;</td><td valign=middle align=right>
-
- <a href="createaccount.cgi"><nobr>New account</nobr></a>
- | <nobr><a href=query.cgi?GoAheadAndLogIn=1>Log in</a></nobr></td></tr></form>
-</table><br>
-<a HREF="index.html">Eclipse Bugs Home</a>
-</td></tr>
diff --git a/org.eclipse.mylyn.bugzilla.tests/TestPages/platform-page.html b/org.eclipse.mylyn.bugzilla.tests/TestPages/platform-page.html
deleted file mode 100644
index d41b5c84d..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/TestPages/platform-page.html
+++ /dev/null
@@ -1,299 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><title>Enter Bug</title></head>
-
-
-
-
-
-
-
-
- <body bgcolor="#ffffff" onload="" text="#000000" link="#0000ee" vlink="#551a8b" alink="#ff0000">
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-
-<table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td width="100%"><table border="0" cellspacing="0" cellpadding="0" width="100%" bgcolor="#006699"><tbody><tr><td bgcolor="#000000" width="116"><img src="main_data/EclipseBannerPic.jpg" width="115" height="50"></td><td width="637"><a href="http://www.eclipse.org/"><img src="main_data/gradient.jpg" border="0" height="50" width="282"></a></td><td width="250"><img src="main_data/eproject-simple.gif" width="250" height="48"></td></tr></tbody></table></td></tr></tbody></table>
-
- <table border="0" cellspacing="0">
- <tbody><tr>
- <td valign="top" align="left">
- <table border="0" cellpadding="0" cellspacing="2">
- <tbody><tr>
- <td valign="top" align="left" nowrap="nowrap">
- <font size="+1"><b>Enter Bug</b></font>
- </td>
- </tr>
- </tbody></table>
- </td>
- <td valign="middle">&nbsp;</td>
- <td valign="middle" align="left">This page lets you enter a new bug into Bugzilla.</td>
- </tr>
- </tbody></table>
-
-<form method="post" action="post_bug.cgi">
-<input type="hidden" name="product" value="Platform">
-
-<input type="hidden" name="priority" value="P3">
-<input type="hidden" name="bug_status" value="NEW">
-
- <table cellspacing="2" cellpadding="0" border="0">
-
- <tbody><tr>
- <td><br></td>
- </tr>
-
- <tr>
- <td></td>
- <td colspan="3">
- <!-- 1.0@bugzilla.org -->
-
-
-
-
-
-
-Before reporting a bug, please read the <a href="https://bugs.eclipse.org/bugs/bugwritinghelp.html">
-bug writing guidelines</a>, please look at the list of
-<a href="https://bugs.eclipse.org/bugs/duplicates.cgi">most frequently reported bugs</a>, and please
-<a href="https://bugs.eclipse.org/bugs/query.cgi">search</a> for the bug.
- </td>
- </tr>
-
- <tr>
- <td><br></td>
- </tr>
-
- <tr>
- <td align="right" valign="top"><strong>Reporter:</strong></td>
- <td valign="top">tanya@cs.ubc.ca</td>
-
- <td align="right" valign="top"><strong>Product:</strong></td>
- <td valign="top">Platform</td>
- </tr>
-
-
- <tr>
- <td align="right" valign="top">
- <strong>Version:</strong>
- </td>
- <td>
- <select name="version" size="5"><option value="1.0">1.0 </option><option value="2.0">2.0 </option><option value="2.0.1">2.0.1 </option><option value="2.0.2">2.0.2 </option><option value="2.1">2.1 </option><option value="2.1.1">2.1.1 </option><option value="2.1.2">2.1.2 </option><option value="3.0" selected="selected">3.0 </option></select>
- </td>
-
- <td align="right" valign="top">
- <strong>
- <a href="https://bugs.eclipse.org/bugs/describecomponents.cgi?product=Platform">
- Component</a>:
- </strong>
- </td>
- <td>
- <select name="component" size="5"><option value="Ant">Ant </option><option value="Compare">Compare </option><option value="Core">Core </option><option value="CVS">CVS </option><option value="Debug">Debug </option><option value="Doc">Doc </option><option value="Help">Help </option><option value="Releng">Releng </option><option value="Scripting">Scripting </option><option value="Search">Search </option><option value="SWT">SWT </option><option value="Team">Team </option><option value="Text">Text </option><option value="UI">UI </option><option value="Update">Update </option><option value="WebDAV">WebDAV </option></select>
- </td>
- </tr>
-
- <tr>
- <td>&nbsp;</td>
- <td colspan="3"></td>
- </tr>
-
- <tr><td align="right">
- <strong>
- <a href="https://bugs.eclipse.org/bugs/bug_status.html#rep_platform">Platform</a>:
- </strong>
- </td>
-
- <td>
- <select name="rep_platform"><option value="All">All </option><option value="Macintosh">Macintosh </option><option value="PC" selected="selected">PC </option><option value="Power PC">Power PC </option><option value="Sun">Sun </option><option value="Other">Other </option></select>
- </td>
- <td align="right">
- <strong>
- <a href="https://bugs.eclipse.org/bugs/bug_status.html#op_sys">OS</a>:
- </strong>
- </td>
-
- <td>
- <select name="op_sys"><option value="All">All </option><option value="AIX Motif">AIX Motif </option><option value="Windows 95">Windows 95 </option><option value="Windows 98">Windows 98 </option><option value="Windows CE">Windows CE </option><option value="Windows ME">Windows ME </option><option value="Windows 2000">Windows 2000 </option><option value="Windows NT">Windows NT </option><option value="Windows XP" selected="selected">Windows XP </option><option value="Windows All">Windows All </option><option value="MacOS X">MacOS X </option><option value="Linux">Linux </option><option value="Linux-GTK">Linux-GTK </option><option value="Linux-Motif">Linux-Motif </option><option value="HP-UX">HP-UX </option><option value="Neutrino">Neutrino </option><option value="QNX-Photon">QNX-Photon </option><option value="Solaris">Solaris </option><option value="Unix All">Unix All </option><option value="other">other </option></select>
- </td>
- </tr>
-
- <tr>
- <td align="right">
- <strong>
- <a href="https://bugs.eclipse.org/bugs/bug_status.html#bug_severity">Severity</a>:
- </strong>
- </td>
-
- <td>
- <select name="bug_severity"><option value="blocker">blocker </option><option value="critical">critical </option><option value="major">major </option><option value="normal" selected="selected">normal </option><option value="minor">minor </option><option value="trivial">trivial </option><option value="enhancement">enhancement </option></select>
- </td>
- </tr>
-
- <tr>
- <td>&nbsp;</td>
- <td colspan="3"></td>
- </tr>
-
- <tr>
- <td align="right">
- <strong>
- <a href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Assigned To</a>:
- </strong>
- </td>
- <td colspan="3">
- <input name="assigned_to" size="32" value="">
- (Leave blank to assign to default component owner)
- </td>
- </tr>
-
- <tr>
- <td align="right"><strong>Cc:</strong></td>
- <td colspan="3">
- <input name="cc" size="45" value="">
- </td>
- </tr>
-
- <tr>
- <td>&nbsp;</td>
- <td colspan="3"></td>
- </tr>
-
- <tr>
- <td colspan="3">
- <input type="hidden" input="" name="bug_file_loc" size="60" value="">
- </td>
- </tr>
-
- <tr>
- <td align="right"><strong>Summary:</strong></td>
- <td colspan="3">
- <input name="short_desc" size="60" value="">
- </td>
- </tr>
-
- <tr><td align="right" valign="top"><strong>Description:</strong></td>
- <td colspan="3">
- <textarea wrap="hard" name="comment" rows="10" cols="80"></textarea>
- <br>
- </td>
- </tr>
-
- <tr>
- <td></td>
- <td colspan="3">
- </td>
- </tr>
-
- <tr>
- <td></td>
- <td colspan="3">
- <input type="submit" value=" Commit " onclick="if (this.form.short_desc.value == '')
- { alert('Please enter a summary sentence for this bug.');
- return false; } return true;">
- &nbsp;&nbsp;&nbsp;&nbsp;
- <input type="submit" name="maketemplate" value="Remember values as bookmarkable template">
- </td>
- </tr>
-
- <tr>
- <td></td>
- <td colspan="3">
- <br>
- We've made a guess at your operating system and platform.
- Please check them and, if we got it wrong, email webmaster@eclipse.org.
- </td>
- </tr>
-
- </tbody></table>
- <input type="hidden" name="form_name" value="enter_bug">
-</form>
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-
-
-<table border="0">
- <tbody><tr>
- <td bgcolor="#000000" valign="top">
- <table border="0" cellpadding="10" cellspacing="0" width="100%" bgcolor="lightyellow">
- <tbody><tr>
- <td>
-
-
-
- This is <b>Bugzilla</b>: the Mozilla bug system. For more
- information about what Bugzilla is and what it can do, see
- <a href="http://www.bugzilla.org/">bugzilla.org</a>.
-
-
-
- <br>
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-
-
-<form method="get" action="show_bug.cgi">
- <table width="100%">
- <tbody><tr>
- <td>
- Actions:
- </td>
-
- <td valign="middle" nowrap="nowrap">
- <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi">New</a> |
- <a href="https://bugs.eclipse.org/bugs/query.cgi">Query</a> |
-
- <input type="submit" value="Find"> bug #
- <input name="id" size="6"> |
-
- <a href="https://bugs.eclipse.org/bugs/reports.cgi">Reports</a>
-
- | <a href="https://bugs.eclipse.org/bugs/votes.cgi?action=show_user">My Votes</a>
- </td>
-
- <td>&nbsp;</td>
-
-
- <td valign="middle">
- Edit <a href="https://bugs.eclipse.org/bugs/userprefs.cgi">prefs</a>
-
- | <a href="https://bugs.eclipse.org/bugs/relogin.cgi">Log&nbsp;out</a>&nbsp;tanya@cs.ubc.ca
- </td>
- </tr>
-
-
-
-
- <tr>
- <td>
- Preset&nbsp;Queries:
- </td>
-
- <td colspan="3">
- <a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=tanya%40cs.ubc.ca&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;emailreporter1=1">My&nbsp;Bugs</a>
-
- </td>
- </tr>
-
-
- </tbody></table>
-</form>
-
- </td>
- </tr>
- </tbody></table>
- </td>
- </tr>
-</tbody></table>
-
-</body></html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/TestPages/product-page-1-product-hipikat.html b/org.eclipse.mylyn.bugzilla.tests/TestPages/product-page-1-product-hipikat.html
deleted file mode 100644
index 53805b2d2..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/TestPages/product-page-1-product-hipikat.html
+++ /dev/null
@@ -1,256 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!-- saved from url=(0073)http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/enter_bug.cgi -->
-<!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><HTML><HEAD><TITLE>Enter Bug</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=windows-1252"><!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org -->
-<SCRIPT
-type=text/javascript>
- <!--
-
- function initHelp() {}
- // -->
- </SCRIPT>
-
-<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
-<BODY bgColor=#ffffff onload=set_assign_to();><!-- 1.0@bugzilla.org -->
-<TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#000000 border=0>
- <TBODY>
- <TR>
- <TD>
- <CENTER><FONT color=#ffffff size=8>This is Bugzilla
- </FONT></CENTER></TD></TR></TBODY></TABLE>
-<CENTER><FONT size=-1><A href="http://www.bugzilla.org/">Bugzilla</A> Version
-2.17.6 </FONT></CENTER>
-<TABLE cellSpacing=0 width="100%" border=0>
- <TBODY>
- <TR>
- <TD vAlign=top align=left>
- <TABLE cellSpacing=2 cellPadding=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top noWrap align=left><FONT size=+1><B>Enter
- Bug</B></FONT> </TD></TR></TBODY></TABLE></TD>
- <TD vAlign=center align=left>&nbsp;</TD>
- <TD vAlign=center align=left>This page lets you enter a new bug into
- Bugzilla.</TD></TR></TBODY></TABLE>
-<SCRIPT language=JavaScript type=text/javascript>
-<!--
-
-var default_owners = new Array(1);
-var components = new Array(1);
- components[0] = "TestComponent";
- default_owners[0] = "cubranic\x40cs.ubc.ca";
-var last_default_owner;
-function set_assign_to() {
- // Based on the selected component, fill the "Assign To:" field
- // with the default component owner.
- var form = document.Create;
- assigned_to = form.assigned_to.value
- var index = -1;
- if (form.component.type == 'select-one') {
- index = form.component.selectedIndex;
- } else if (form.component.type == 'hidden') {
- // Assume there is only one component in the list
- index = 0;
- }
- if (index != -1) {
- var owner = default_owners[index];
- var component = components[index];
- if (assigned_to == last_default_owner
- || assigned_to == owner
- || assigned_to == ''
- || confirm('Would you like to change\n\n' +
- ' "Assign To: ' + assigned_to + '"\n\n' +
- 'to the default "' + component + '" owner:\n\n' +
- ' ' + owner + "?")) {
- form.assigned_to.value = owner;
- last_default_owner = owner;
- }
- }
-}
--->
-</SCRIPT>
-
-<FORM id=Create name=Create action=post_bug.cgi method=post><INPUT type=hidden
-value=TestProduct name=product>
-<TABLE cellSpacing=2 cellPadding=0 border=0>
- <TBODY>
- <TR>
- <TD><BR></TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><!-- 1.0@bugzilla.org -->Before reporting a bug, please read
- the <A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/bugwritinghelp.html">bug
- writing guidelines</A>, please look at the list of <A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/duplicates.cgi">most
- frequently reported bugs</A>, and please <A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/query.cgi">search</A>
- for the bug. </TD></TR>
- <TR>
- <TD><BR></TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Reporter:</STRONG></TD>
- <TD vAlign=top>tanya@cs.ubc.ca</TD>
- <TD vAlign=top align=right><STRONG>Product:</STRONG></TD>
- <TD vAlign=top>TestProduct</TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Version:</STRONG> </TD>
- <TD><SELECT size=5 name=version> <OPTION value=other
- selected>other</OPTION></SELECT> </TD>
- <TD vAlign=top align=right><STRONG><A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/describecomponents.cgi?product=TestProduct">Component</A>:
- </STRONG></TD>
- <TD><SELECT onchange=set_assign_to(); size=5 name=component> <OPTION
- value=TestComponent selected>TestComponent</OPTION></SELECT> </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD align=right><STRONG><A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/bug_status.html#rep_platform">Platform</A>:
- </STRONG></TD>
- <TD><SELECT name=rep_platform> <OPTION value=All>All</OPTION> <OPTION
- value=DEC>DEC</OPTION> <OPTION value=HP>HP</OPTION> <OPTION
- value=Macintosh>Macintosh</OPTION> <OPTION value=PC selected>PC</OPTION>
- <OPTION value=SGI>SGI</OPTION> <OPTION value=Sun>Sun</OPTION> <OPTION
- value=Other>Other</OPTION></SELECT> </TD>
- <TD align=right><STRONG><A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/bug_status.html#op_sys">OS</A>:
- </STRONG></TD>
- <TD><SELECT name=op_sys> <OPTION value=All>All</OPTION> <OPTION
- value="Windows 3.1">Windows 3.1</OPTION> <OPTION
- value="Windows 95">Windows 95</OPTION> <OPTION
- value="Windows 98">Windows 98</OPTION> <OPTION
- value="Windows ME">Windows ME</OPTION> <OPTION
- value="Windows 2000">Windows 2000</OPTION> <OPTION
- value="Windows NT">Windows NT</OPTION> <OPTION value="Windows XP"
- selected>Windows XP</OPTION> <OPTION value="Windows Server 2003">Windows
- Server 2003</OPTION> <OPTION value="Mac System 7">Mac System 7</OPTION>
- <OPTION value="Mac System 7.5">Mac System 7.5</OPTION> <OPTION
- value="Mac System 7.6.1">Mac System 7.6.1</OPTION> <OPTION
- value="Mac System 8.0">Mac System 8.0</OPTION> <OPTION
- value="Mac System 8.5">Mac System 8.5</OPTION> <OPTION
- value="Mac System 8.6">Mac System 8.6</OPTION> <OPTION
- value="Mac System 9.x">Mac System 9.x</OPTION> <OPTION
- value="Mac OS X 10.0">Mac OS X 10.0</OPTION> <OPTION
- value="Mac OS X 10.1">Mac OS X 10.1</OPTION> <OPTION
- value="Mac OS X 10.2">Mac OS X 10.2</OPTION> <OPTION
- value=Linux>Linux</OPTION> <OPTION value=BSD/OS>BSD/OS</OPTION> <OPTION
- value=FreeBSD>FreeBSD</OPTION> <OPTION value=NetBSD>NetBSD</OPTION>
- <OPTION value=OpenBSD>OpenBSD</OPTION> <OPTION value=AIX>AIX</OPTION>
- <OPTION value=BeOS>BeOS</OPTION> <OPTION value=HP-UX>HP-UX</OPTION>
- <OPTION value=IRIX>IRIX</OPTION> <OPTION
- value=Neutrino>Neutrino</OPTION> <OPTION value=OpenVMS>OpenVMS</OPTION>
- <OPTION value=OS/2>OS/2</OPTION> <OPTION value=OSF/1>OSF/1</OPTION>
- <OPTION value=Solaris>Solaris</OPTION> <OPTION
- value=SunOS>SunOS</OPTION> <OPTION value=other>other</OPTION></SELECT>
- </TD></TR>
- <TR>
- <TD align=right><STRONG><A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/bug_status.html#priority">Priority</A>:
- </STRONG></TD>
- <TD><SELECT name=priority> <OPTION value=P1>P1</OPTION> <OPTION value=P2
- selected>P2</OPTION> <OPTION value=P3>P3</OPTION> <OPTION
- value=P4>P4</OPTION> <OPTION value=P5>P5</OPTION></SELECT> </TD>
- <TD align=right><STRONG><A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/bug_status.html#bug_severity">Severity</A>:
- </STRONG></TD>
- <TD><SELECT name=bug_severity> <OPTION value=blocker>blocker</OPTION>
- <OPTION value=critical>critical</OPTION> <OPTION
- value=major>major</OPTION> <OPTION value=normal selected>normal</OPTION>
- <OPTION value=minor>minor</OPTION> <OPTION
- value=trivial>trivial</OPTION> <OPTION
- value=enhancement>enhancement</OPTION></SELECT> </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR><INPUT type=hidden value=NEW name=bug_status>
- <TR>
- <TD align=right><STRONG><A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/bug_status.html#assigned_to">Assign
- To</A>: </STRONG></TD>
- <TD colSpan=3><INPUT size=32 name=assigned_to> <NOSCRIPT>(Leave blank to
- assign to default component owner)</NOSCRIPT> </TD></TR>
- <TR>
- <TD align=right><STRONG>Cc:</STRONG></TD>
- <TD colSpan=3><INPUT size=45 name=cc> </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD align=right><STRONG>URL:</STRONG></TD>
- <TD colSpan=3><INPUT size=60 value=http:// name=bug_file_loc> </TD></TR>
- <TR>
- <TD align=right><STRONG>Summary:</STRONG></TD>
- <TD colSpan=3><INPUT size=60 name=short_desc> </TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Description:</STRONG></TD>
- <TD colSpan=3><TEXTAREA name=comment rows=10 wrap=hard cols=80></TEXTAREA>
- <BR></TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG><A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/describekeywords.cgi">Keywords</A>:
- </STRONG></TD>
- <TD colSpan=3><INPUT size=60 name=keywords> (optional) </TD></TR>
- <TR>
- <TD align=right><STRONG>Depends on:</STRONG> </TD>
- <TD><INPUT accessKey=d name=dependson> </TD></TR>
- <TR>
- <TD align=right><STRONG>Blocks:</STRONG> </TD>
- <TD><INPUT accessKey=b name=blocked> </TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><INPUT onclick="if (this.form.short_desc.value == '')&#10; { alert('Please enter a summary sentence for this bug.');&#10; return false; } return true;" type=submit value=" Commit ">
- &nbsp;&nbsp;&nbsp;&nbsp; <INPUT type=submit value="Remember values as bookmarkable template" name=maketemplate>
- </TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><BR>We've made a guess at your operating system and
- platform. Please check them and, if we got it wrong, emailTHE MAINTAINER
- HAS NOT YET BEEN SET. </TD></TR></TBODY></TABLE><INPUT type=hidden
-value=enter_bug name=form_name> </FORM><!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org -->
-<TABLE border=0>
- <TBODY>
- <TR>
- <TD vAlign=top bgColor=#000000>
- <TABLE cellSpacing=0 cellPadding=10 width="100%" bgColor=lightyellow
- border=0>
- <TBODY>
- <TR>
- <TD><!-- 1.0@bugzilla.org -->
- <FORM action=show_bug.cgi method=get>
- <TABLE width="100%">
- <TBODY>
- <TR>
- <TD>Actions: </TD>
- <TD vAlign=center noWrap><A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/enter_bug.cgi">New</A>
- | <A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/query.cgi">Search</A>
- | <INPUT type=submit value=Find> bug # <INPUT size=6 name=id>
- | <A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/report.cgi">Reports</A>
- | <A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/request.cgi?requester=tanya%40cs.ubc.ca&amp;requestee=tanya%40cs.ubc.ca&amp;do_union=1&amp;group=type">My
- Requests</A> | <A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/votes.cgi?action=show_user">My
- Votes</A> </TD>
- <TD>&nbsp;</TD>
- <TD vAlign=center>Edit <A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/userprefs.cgi">prefs</A>,
- <A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/editproducts.cgi">products</A>,
- <A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/editflagtypes.cgi">flags</A>,
- <A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/editkeywords.cgi">keywords</A>
- | <A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/relogin.cgi">Log&nbsp;out</A>&nbsp;tanya@cs.ubc.ca
- </TD></TR>
- <TR>
- <TD>Saved&nbsp;Searches: </TD>
- <TD colSpan=3><A
- href="http://hipikat.cs.ubc.ca:8081/bugzilla-test/bugzilla-2.17.6/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=tanya%40cs.ubc.ca&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;emailreporter1=1">My&nbsp;Bugs</A>
- </TD></TR></TBODY></TABLE></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>
diff --git a/org.eclipse.mylyn.bugzilla.tests/TestPages/product-page.html b/org.eclipse.mylyn.bugzilla.tests/TestPages/product-page.html
deleted file mode 100644
index f45028d4b..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/TestPages/product-page.html
+++ /dev/null
@@ -1,237 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><title>Enter Bug</title></head>
-
-
-
-
-
-
-
-
-
-
- <body bgcolor="#ffffff" onload="" text="#000000" link="#0000ee" vlink="#551a8b" alink="#ff0000">
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-
-<table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td width="100%"><table border="0" cellspacing="0" cellpadding="0" width="100%" bgcolor="#006699"><tbody><tr><td bgcolor="#000000" width="116"><img src="main_data/EclipseBannerPic.jpg" width="115" height="50"></td><td width="637"><a href="http://www.eclipse.org/"><img src="main_data/gradient.jpg" border="0" height="50" width="282"></a></td><td width="250"><img src="main_data/eproject-simple.gif" width="250" height="48"></td></tr></tbody></table></td></tr></tbody></table>
-
- <table border="0" cellspacing="0">
- <tbody><tr>
- <td valign="top" align="left">
- <table border="0" cellpadding="0" cellspacing="2">
- <tbody><tr>
- <td valign="top" align="left" nowrap="nowrap">
- <font size="+1"><b>Enter Bug</b></font>
- </td>
- </tr>
- </tbody></table>
- </td>
- <td valign="middle">&nbsp;</td>
- <td valign="middle" align="left">First, you must pick a product on which to enter a bug.</td>
- </tr>
- </tbody></table>
-
-<table>
-
- <tbody><tr>
- <th align="right" valign="top">
- <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=AJDT">AJDT</a>:
- </th>
-
- <td valign="top">&nbsp;AJDT Development Tools</td>
- </tr>
- <tr>
- <th align="right" valign="top">
- <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=AspectJ">AspectJ</a>:
- </th>
-
- <td valign="top">&nbsp;AspectJ Development Tools</td>
- </tr>
- <tr>
- <th align="right" valign="top">
- <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=CDT">CDT</a>:
- </th>
-
- <td valign="top">&nbsp;C/C++ Development Toolkit</td>
- </tr>
- <tr>
- <th align="right" valign="top">
- <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=CME">CME</a>:
- </th>
-
- <td valign="top">&nbsp;CME Technology</td>
- </tr>
- <tr>
- <th align="right" valign="top">
- <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=ECESIS">ECESIS</a>:
- </th>
-
- <td valign="top">&nbsp;Eclipse Techology Open Courseware Project</td>
- </tr>
- <tr>
- <th align="right" valign="top">
- <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=EMF">EMF</a>:
- </th>
-
- <td valign="top">&nbsp;Eclipse Modelling Framework</td>
- </tr>
- <tr>
- <th align="right" valign="top">
- <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Equinox">Equinox</a>:
- </th>
-
- <td valign="top">&nbsp;Eclipse Runtime Exploration</td>
- </tr>
- <tr>
- <th align="right" valign="top">
- <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=GEF">GEF</a>:
- </th>
-
- <td valign="top">&nbsp;Graphical Editing Framework</td>
- </tr>
- <tr>
- <th align="right" valign="top">
- <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=GMT">GMT</a>:
- </th>
-
- <td valign="top">&nbsp;Generative Model Generator</td>
- </tr>
- <tr>
- <th align="right" valign="top">
- <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Hyades">Hyades</a>:
- </th>
-
- <td valign="top">&nbsp;Automated Software Quality Tools</td>
- </tr>
- <tr>
- <th align="right" valign="top">
- <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=JDT">JDT</a>:
- </th>
-
- <td valign="top">&nbsp;Java Development Toolkit</td>
- </tr>
- <tr>
- <th align="right" valign="top">
- <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=PDE">PDE</a>:
- </th>
-
- <td valign="top">&nbsp;Plugin Development Environment</td>
- </tr>
- <tr>
- <th align="right" valign="top">
- <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Platform">Platform</a>:
- </th>
-
- <td valign="top">&nbsp;Eclipse Platform</td>
- </tr>
- <tr>
- <th align="right" valign="top">
- <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Stellation">Stellation</a>:
- </th>
-
- <td valign="top">&nbsp;Stellation Project</td>
- </tr>
- <tr>
- <th align="right" valign="top">
- <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=UML2">UML2</a>:
- </th>
-
- <td valign="top">&nbsp;UML2 Tools</td>
- </tr>
- <tr>
- <th align="right" valign="top">
- <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=VE">VE</a>:
- </th>
-
- <td valign="top">&nbsp;Visual Editor Tools</td>
- </tr>
- <tr>
- <th align="right" valign="top">
- <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=WSVT">WSVT</a>:
- </th>
-
- <td valign="top">&nbsp;Web Service Validation Tools</td>
- </tr>
- <tr>
- <th align="right" valign="top">
- <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=XSD">XSD</a>:
- </th>
-
- <td valign="top">&nbsp;XML Schema Infoset Model</td>
- </tr>
-
-</tbody></table>
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-
-
-<table border="0">
- <tbody><tr>
- <td bgcolor="#000000" valign="top">
- <table border="0" cellpadding="10" cellspacing="0" width="100%" bgcolor="lightyellow">
- <tbody><tr>
- <td>
-
-
-
- This is <b>Bugzilla</b>: the Mozilla bug system. For more
- information about what Bugzilla is and what it can do, see
- <a href="http://www.bugzilla.org/">bugzilla.org</a>.
-
-
-
- <br>
-
-
-<!-- 1.0@bugzilla.org -->
-
-
-
-
-
-
-<form method="get" action="show_bug.cgi">
- <table width="100%">
- <tbody><tr>
- <td>
- Actions:
- </td>
-
- <td valign="middle" nowrap="nowrap">
- <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi">New</a> |
- <a href="https://bugs.eclipse.org/bugs/query.cgi">Query</a> |
-
- <input type="submit" value="Find"> bug #
- <input name="id" size="6"> |
-
- <a href="https://bugs.eclipse.org/bugs/reports.cgi">Reports</a>
-
- </td>
-
- <td>&nbsp;</td>
-
- <td valign="middle" align="right">
- <a href="https://bugs.eclipse.org/bugs/createaccount.cgi">New&nbsp;Account</a> |
- <a href="https://bugs.eclipse.org/bugs/query.cgi?GoAheadAndLogIn=1">Log&nbsp;In</a>
- </td>
- </tr>
-
- </tbody></table>
-</form>
-
- </td>
- </tr>
- </tbody></table>
- </td>
- </tr>
-</tbody></table>
-
-</body></html> \ No newline at end of file
diff --git a/org.eclipse.mylyn.bugzilla.tests/TestPages/ve-page.html b/org.eclipse.mylyn.bugzilla.tests/TestPages/ve-page.html
deleted file mode 100644
index e5423da71..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/TestPages/ve-page.html
+++ /dev/null
@@ -1,178 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!-- saved from url=(0054)https://bugs.eclipse.org/bugs/enter_bug.cgi?product=VE -->
-<!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><HTML><HEAD><TITLE>Enter Bug</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
-<BODY text=#000000 vLink=#551a8b aLink=#ff0000 link=#0000ee bgColor=#ffffff
-onload=""><!-- 1.0@bugzilla.org -->
-<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
- <TBODY>
- <TR>
- <TD width="100%">
- <TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#006699
- border=0><TBODY>
- <TR>
- <TD width=116 bgColor=#000000><IMG height=50
- src="VE_files/EclipseBannerPic.jpg" width=115></TD>
- <TD width=637><A href="http://www.eclipse.org/"><IMG height=50
- src="VE_files/gradient.jpg" width=282 border=0></A></TD>
- <TD width=250><IMG height=48 src="VE_files/eproject-simple.gif"
- width=250></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
-<TABLE cellSpacing=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top align=left>
- <TABLE cellSpacing=2 cellPadding=0 border=0>
- <TBODY>
- <TR>
- <TD vAlign=top noWrap align=left><FONT size=+1><B>Enter
- Bug</B></FONT> </TD></TR></TBODY></TABLE></TD>
- <TD vAlign=center>&nbsp;</TD>
- <TD vAlign=center align=left>This page lets you enter a new bug into
- Bugzilla.</TD></TR></TBODY></TABLE>
-<FORM action=post_bug.cgi method=post><INPUT type=hidden value=VE name=product>
-<TABLE cellSpacing=2 cellPadding=0 border=0>
- <TBODY>
- <TR>
- <TD><BR></TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><!-- 1.0@bugzilla.org -->Before reporting a bug, please read
- the <A href="https://bugs.eclipse.org/bugs/bugwritinghelp.html">bug
- writing guidelines</A>, please look at the list of <A
- href="https://bugs.eclipse.org/bugs/duplicates.cgi">most frequently
- reported bugs</A>, and please <A
- href="https://bugs.eclipse.org/bugs/query.cgi">search</A> for the bug.
- </TD></TR>
- <TR>
- <TD><BR></TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Reporter:</STRONG></TD>
- <TD vAlign=top>tanya@cs.ubc.ca</TD>
- <TD vAlign=top align=right><STRONG>Product:</STRONG></TD>
- <TD vAlign=top>VE</TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Version:</STRONG> </TD>
- <TD><SELECT size=5 name=version> <OPTION value=0.5.0>0.5.0</OPTION>
- <OPTION value=1.0.0>1.0.0</OPTION> <OPTION value=unspecified
- selected>unspecified</OPTION></SELECT> </TD>
- <TD vAlign=top align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/describecomponents.cgi?product=VE">Component</A>:
- </STRONG></TD>
- <TD><SELECT size=5 name=component> <OPTION value=CDE>CDE</OPTION>
- <OPTION value=Doc>Doc</OPTION> <OPTION value="Java Core">Java
- Core</OPTION> <OPTION value="Java Model (JEM)">Java Model (JEM)</OPTION>
- <OPTION value=JFC/Swing>JFC/Swing</OPTION> <OPTION
- value=SWT>SWT</OPTION></SELECT> </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#rep_platform">Platform</A>:
- </STRONG></TD>
- <TD><SELECT name=rep_platform> <OPTION value=All>All</OPTION> <OPTION
- value=Macintosh>Macintosh</OPTION> <OPTION value=PC selected>PC</OPTION>
- <OPTION value="Power PC">Power PC</OPTION> <OPTION
- value=Sun>Sun</OPTION> <OPTION value=Other>Other</OPTION></SELECT> </TD>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#op_sys">OS</A>:
- </STRONG></TD>
- <TD><SELECT name=op_sys> <OPTION value=All>All</OPTION> <OPTION
- value="AIX Motif">AIX Motif</OPTION> <OPTION value="Windows 95">Windows
- 95</OPTION> <OPTION value="Windows 98">Windows 98</OPTION> <OPTION
- value="Windows CE">Windows CE</OPTION> <OPTION
- value="Windows ME">Windows ME</OPTION> <OPTION
- value="Windows 2000">Windows 2000</OPTION> <OPTION
- value="Windows NT">Windows NT</OPTION> <OPTION value="Windows XP"
- selected>Windows XP</OPTION> <OPTION value="Windows All">Windows
- All</OPTION> <OPTION value="MacOS X">MacOS X</OPTION> <OPTION
- value=Linux>Linux</OPTION> <OPTION value=Linux-GTK>Linux-GTK</OPTION>
- <OPTION value=Linux-Motif>Linux-Motif</OPTION> <OPTION
- value=HP-UX>HP-UX</OPTION> <OPTION value=Neutrino>Neutrino</OPTION>
- <OPTION value=QNX-Photon>QNX-Photon</OPTION> <OPTION
- value=Solaris>Solaris</OPTION> <OPTION value="Unix All">Unix
- All</OPTION> <OPTION value=other>other</OPTION></SELECT> </TD></TR>
- <TR><INPUT type=hidden value=P3 name=priority>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#bug_severity">Severity</A>:
- </STRONG></TD>
- <TD><SELECT name=bug_severity> <OPTION value=blocker>blocker</OPTION>
- <OPTION value=critical>critical</OPTION> <OPTION
- value=major>major</OPTION> <OPTION value=normal selected>normal</OPTION>
- <OPTION value=minor>minor</OPTION> <OPTION
- value=trivial>trivial</OPTION> <OPTION
- value=enhancement>enhancement</OPTION></SELECT> </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR><INPUT type=hidden value=NEW name=bug_status>
- <TR>
- <TD align=right><STRONG><A
- href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Assigned
- To</A>: </STRONG></TD>
- <TD colSpan=3><INPUT size=32 name=assigned_to> (Leave blank to assign to
- default component owner) </TD></TR>
- <TR>
- <TD align=right><STRONG>Cc:</STRONG></TD>
- <TD colSpan=3><INPUT size=45 name=cc> </TD></TR>
- <TR>
- <TD>&nbsp;</TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD colSpan=3><INPUT type=hidden size=60 name=bug_file_loc input> </TD></TR>
- <TR>
- <TD align=right><STRONG>Summary:</STRONG></TD>
- <TD colSpan=3><INPUT size=60 name=short_desc> </TD></TR>
- <TR>
- <TD vAlign=top align=right><STRONG>Description:</STRONG></TD>
- <TD colSpan=3><TEXTAREA name=comment rows=10 wrap=hard cols=80></TEXTAREA>
- <BR></TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3></TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><INPUT onclick="if (this.form.short_desc.value == '') &#10; { alert('Please enter a summary sentence for this bug.'); &#10; return false; } return true;" type=submit value=" Commit ">
- &nbsp;&nbsp;&nbsp;&nbsp; <INPUT type=submit value="Remember values as bookmarkable template" name=maketemplate>
- </TD></TR>
- <TR>
- <TD></TD>
- <TD colSpan=3><BR>We've made a guess at your operating system and
- platform. Please check them and, if we got it wrong, email
- webmaster@eclipse.org. </TD></TR></TBODY></TABLE><INPUT type=hidden
-value=enter_bug name=form_name> </FORM><!-- 1.0@bugzilla.org -->
-<TABLE border=0>
- <TBODY>
- <TR>
- <TD vAlign=top bgColor=#000000>
- <TABLE cellSpacing=0 cellPadding=10 width="100%" bgColor=lightyellow
- border=0>
- <TBODY>
- <TR>
- <TD>This is <B>Bugzilla</B>: the Mozilla bug system. For more
- information about what Bugzilla is and what it can do, see <A
- href="http://www.bugzilla.org/">bugzilla.org</A>. <BR><!-- 1.0@bugzilla.org -->
- <FORM action=show_bug.cgi method=get>
- <TABLE width="100%">
- <TBODY>
- <TR>
- <TD>Actions: </TD>
- <TD vAlign=center noWrap><A
- href="https://bugs.eclipse.org/bugs/enter_bug.cgi">New</A> |
- <A href="https://bugs.eclipse.org/bugs/query.cgi">Query</A> | <INPUT type=submit value=Find> bug # <INPUT size=6 name=id> |
- <A
- href="https://bugs.eclipse.org/bugs/reports.cgi">Reports</A> |
- <A
- href="https://bugs.eclipse.org/bugs/votes.cgi?action=show_user">My
- Votes</A> </TD>
- <TD>&nbsp;</TD>
- <TD vAlign=center>Edit <A
- href="https://bugs.eclipse.org/bugs/userprefs.cgi">prefs</A> |
- <A
- href="https://bugs.eclipse.org/bugs/relogin.cgi">Log&nbsp;out</A>&nbsp;tanya@cs.ubc.ca
- </TD></TR>
- <TR>
- <TD>Preset&nbsp;Queries: </TD>
- <TD colSpan=3><A
- href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=tanya%40cs.ubc.ca&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;emailreporter1=1">My&nbsp;Bugs</A>
- </TD></TR></TBODY></TABLE></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>
diff --git a/org.eclipse.mylyn.bugzilla.tests/about.html b/org.eclipse.mylyn.bugzilla.tests/about.html
deleted file mode 100644
index 60ca57b4b..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/about.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
-<!-- saved from url=(0043)http://www.eclipse.org/legal/epl/about.html -->
-<HTML><HEAD><TITLE>About</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-<META content="MSHTML 6.00.2900.2627" name=GENERATOR></HEAD>
-<BODY lang=EN-US>
-<H2>About This Content</H2>
-<P>February 24, 2005</P>
-<H3>License</H3>
-<P>The Eclipse Foundation 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 Eclipse Public License Version 1.0
-("EPL"). A copy of the EPL is available at <A
-href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</A>.
-For purposes of the EPL, "Program" will mean the Content.</P>
-<P>If you did not receive this Content directly from the Eclipse Foundation, the
-Content is being redistributed by another party ("Redistributor") and different
-terms and conditions may apply to your use of any object code in the Content.
-Check the Redistributor's license that was provided with the Content. If no such
-license exists, contact the Redistributor. Unless otherwise indicated below, the
-terms and conditions of the EPL still apply to any source code in the
-Content.</P></BODY></HTML>
diff --git a/org.eclipse.mylyn.bugzilla.tests/build.properties b/org.eclipse.mylyn.bugzilla.tests/build.properties
deleted file mode 100644
index 579fd5261..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/build.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-###############################################################################
-# Copyright (c) 2004 - 2005 University Of British Columbia and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# University Of British Columbia - initial API and implementation
-###############################################################################
-bin.includes = plugin.xml,\
- bugzilla-test.jar,\
- META-INF/,\
- TestPages/,\
- about.html
-jars.compile.order = bugzilla-test.jar
-source.bugzilla-test.jar = src/
-output.bugzilla-test.jar = bin/
-src.includes = src/,\
- plugin.xml,\
- about.html,\
- TestPages/,\
- META-INF/
diff --git a/org.eclipse.mylyn.bugzilla.tests/plugin.xml b/org.eclipse.mylyn.bugzilla.tests/plugin.xml
deleted file mode 100644
index 80e8dd15c..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/plugin.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-</plugin>
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/AllTests.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/AllTests.java
deleted file mode 100644
index b880cd7ac..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/AllTests.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.test;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-//TODO add tests for 2.18 bugzilla
-
-/**
- * @author tanya
- *
- * To change the template for this generated type comment go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-public class AllTests {
-
- public static Test suite() {
- TestSuite suite = new TestSuite("Test for org.eclipse.mylar.bugzilla.test");
- //$JUnit-BEGIN$
- suite.addTest(new TestSuite(BugzillaNewBugParserTestCDT.class));
- suite.addTest(new TestSuite(BugzillaNewBugParserTestEquinox.class));
- suite.addTest(new TestSuite(BugzillaNewBugParserTestGMT.class));
- suite.addTest(new TestSuite(BugzillaNewBugParserTestPlatform.class));
- suite.addTest(new TestSuite(BugzillaNewBugParserTestVE.class));
- suite.addTest(new TestSuite(BugzillaParserTest.class));
- suite.addTest(new TestSuite(BugzillaParserTestNoBug.class));
- suite.addTest(new TestSuite(
- BugzillaProductParser1ProductHipikatTest.class));
- suite.addTest(new TestSuite(BugzillaProductParserTest.class));
- //$JUnit-END$
- return suite;
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestCDT.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestCDT.java
deleted file mode 100644
index 5b3cc9fee..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestCDT.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.test;
-
-import java.io.File;
-import java.io.FileReader;
-import java.io.Reader;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.Path;
-import org.eclipse.mylar.bugzilla.core.Attribute;
-import org.eclipse.mylar.bugzilla.core.NewBugModel;
-import org.eclipse.mylar.bugzilla.core.internal.NewBugParser;
-
-
-/**
- * Tests NewBugParser -- parses product attributes for new bug reports
- */
-public class BugzillaNewBugParserTestCDT extends TestCase {
-
- public BugzillaNewBugParserTestCDT() {
- super();
- }
-
- public BugzillaNewBugParserTestCDT(String arg0) {
- super(arg0);
- }
-
- public void testProductCDT() throws Exception {
-
- File f = FileTool.getFileInPlugin(BugzillaTestPlugin.getDefault(), new Path("TestPages/cdt-page.html"));
-
- Reader in = new FileReader(f);
-
- NewBugModel nbm = new NewBugModel();
- new NewBugParser(in).parseBugAttributes(nbm, true); // ** TRUE vs FALSE **
-
- // attributes for this bug model
- List<Attribute> attributes = nbm.getAttributes();
-// printList(attributes);
-
- Iterator<Attribute> itr = attributes.iterator();
- Attribute att = itr.next();
-
- // Attribute: Severity
- assertEquals("Attribute: Severity", "Severity", att.getName());
-
- Map<String, String> attOptions = att.getOptionValues(); // HashMap of
- // options for the
- // current
- // attribute
- Object[] options = attOptions.keySet().toArray(); // Array of keys for
- // the options of the
- // current attribute
- assertEquals("# Severity options", 7, options.length);
-
- int i = 0;
- while (i < options.length) {
- assertEquals("severity options", "blocker", options[i++]);
- assertEquals("severity options", "critical", options[i++]);
- assertEquals("severity options", "major", options[i++]);
- assertEquals("severity options", "normal", options[i++]);
- assertEquals("severity options", "minor", options[i++]);
- assertEquals("severity options", "trivial", options[i++]);
- assertEquals("severity options", "enhancement", options[i++]);
- }
-
- // Attribute: product
- att = itr.next();
- assertEquals("Attribute: product", "product", att.getName());
-
- attOptions = att.getOptionValues();
- options = attOptions.keySet().toArray();
- assertEquals("No product options", 0, options.length);
-
- // Attribute: AssignedTo
- att = itr.next();
- assertEquals("Attribute: AssignedTo", "AssignedTo", att.getName());
-
- attOptions = att.getOptionValues();
- options = attOptions.keySet().toArray();
- assertEquals("No AssignedTo options", 0, options.length);
-
- // Attribute: OS
- att = itr.next();
- assertEquals("Attribute: OS", "OS", att.getName());
-
- attOptions = att.getOptionValues();
- options = attOptions.keySet().toArray();
- assertEquals("# of options", 20, options.length);
-
- i = 0;
- while (i < options.length) {
- assertEquals("OS options", "All", options[i++]);
- assertEquals("OS options", "AIX Motif", options[i++]);
- assertEquals("OS options", "Windows 95", options[i++]);
- assertEquals("OS options", "Windows 98", options[i++]);
- assertEquals("OS options", "Windows CE", options[i++]);
- assertEquals("OS options", "Windows ME", options[i++]);
- assertEquals("OS options", "Windows 2000", options[i++]);
- assertEquals("OS options", "Windows NT", options[i++]);
- assertEquals("OS options", "Windows XP", options[i++]);
- assertEquals("OS options", "Windows All", options[i++]);
- assertEquals("OS options", "MacOS X", options[i++]);
- assertEquals("OS options", "Linux", options[i++]);
- assertEquals("OS options", "Linux-GTK", options[i++]);
- assertEquals("OS options", "Linux-Motif", options[i++]);
- assertEquals("OS options", "HP-UX", options[i++]);
- assertEquals("OS options", "Neutrino", options[i++]);
- assertEquals("OS options", "QNX-Photon", options[i++]);
- assertEquals("OS options", "Solaris", options[i++]);
- assertEquals("OS options", "Unix All", options[i++]);
- assertEquals("OS options", "other", options[i++]);
- }
-
- // Attribute: Version
- att = itr.next();
- assertEquals("Attribute: Version", "Version", att.getName());
-
- //attOptions = (HashMap) att.getOptionValues();
- options = att.getOptionValues().keySet().toArray();
- assertEquals("# Version options", 5, options.length);
-
- i = 0;
- while (i < options.length) {
- assertEquals("Version options", "1.0", options[i++]);
- assertEquals("Version options", "1.0.1", options[i++]);
- assertEquals("Version options", "1.1", options[i++]);
- assertEquals("Version options", "1.2", options[i++]);
- assertEquals("Version options", "2.0", options[i++]);
- }
-
- // Attribute: Platform
- att = itr.next();
- assertEquals("Attribute: Platform", "Platform", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("# Platform options", 6, options.length);
-
- i = 0;
- while (i < options.length) {
- assertEquals("Platform options", "All", options[i++]);
- assertEquals("Platform options", "Macintosh", options[i++]);
- assertEquals("Platform options", "PC", options[i++]);
- assertEquals("Platform options", "Power PC", options[i++]);
- assertEquals("Platform options", "Sun", options[i++]);
- assertEquals("Platform options", "Other", options[i++]);
- }
-
- // Attribute: Component
- att = itr.next();
- assertEquals("Attribute: Component", "Component", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("# Component options", 9, options.length);
-
- i = 0;
- while (i < options.length) {
- assertEquals("Component options", "CDT-parser", options[i++]);
- assertEquals("Component options", "Core", options[i++]);
- assertEquals("Component options", "Cpp-Extensions", options[i++]);
- assertEquals("Component options", "Debug", options[i++]);
- assertEquals("Component options", "Debug-MI", options[i++]);
- assertEquals("Component options", "Doc", options[i++]);
- assertEquals("Component options", "Generic-Extensions",
- options[i++]);
- assertEquals("Component options", "Launcher", options[i++]);
- assertEquals("Component options", "UI", options[i++]);
- }
-
- // Attribute: bug_status
- att = itr.next();
- assertEquals("Attribute: bug_status", "bug_status", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("# bug_status options [none]", 0, options.length);
-
- // Attribute: form_name
- att = itr.next();
- assertEquals("Attribute: form_name", "form_name", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("No form_name options", 0, options.length);
-
- // Attribute: bug_file_loc
- att = itr.next();
- assertEquals("Attribute: bug_file_loc", "bug_file_loc", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("No bug_file_loc options", 0, options.length);
-
- // Attribute: priority
- att = itr.next();
- assertEquals("Attribute: priority", "priority", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("No priority options", 0, options.length);
-
- }
-
-// private void printList(List<Attribute> attributes) {
-//
-// Iterator<Attribute> itr = attributes.iterator();
-// System.out.println("Attributes for this Product:");
-// System.out.println("============================");
-//
-// while (itr.hasNext()) {
-// Attribute attr = itr.next();
-// System.out.println();
-// System.out.println(attr.getName() + ": ");
-// System.out.println("-----------");
-//
-// Map<String, String> options = attr.getOptionValues();
-// Object[] it = options.keySet().toArray();
-// for (int i = 0; i < it.length; i++)
-// System.out.println((String) it[i]);
-// }
-// }
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestEquinox.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestEquinox.java
deleted file mode 100644
index 19242b085..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestEquinox.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.test;
-
-import java.io.File;
-import java.io.FileReader;
-import java.io.Reader;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.Path;
-import org.eclipse.mylar.bugzilla.core.Attribute;
-import org.eclipse.mylar.bugzilla.core.NewBugModel;
-import org.eclipse.mylar.bugzilla.core.internal.NewBugParser;
-
-
-/**
- * Tests NewBugParser -- parses product attributes
- */
-public class BugzillaNewBugParserTestEquinox extends TestCase {
-
- public BugzillaNewBugParserTestEquinox() {
- super();
- }
-
- public BugzillaNewBugParserTestEquinox(String arg0) {
- super(arg0);
- }
-
- public void testProductEquinox() throws Exception {
-
- File f = FileTool.getFileInPlugin(BugzillaTestPlugin.getDefault(), new Path("TestPages/equinox-page.html"));
-
- Reader in = new FileReader(f);
-
- NewBugModel nbm = new NewBugModel();
- new NewBugParser(in).parseBugAttributes(nbm, true); // ** TRUE vs FALSE **
-
- // attributes for this bug model
- List<Attribute> attributes = nbm.getAttributes();
-// printList(attributes);
-
- Iterator<Attribute> itr = attributes.iterator();
- Attribute att = itr.next();
-
- // Attribute: Severity
- assertEquals("Attribute: Severity", "Severity", att.getName());
-
- Map<String, String> attOptions = att.getOptionValues(); // HashMap of
- // options for the
- // current
- // attribute
- Object[] options = attOptions.keySet().toArray(); // Array of keys for
- // the options of the
- // current attribute
- assertEquals("# Severity options", 7, options.length);
-
- int i = 0;
- while (i < options.length) {
- assertEquals("severity options", "blocker", options[i++]);
- assertEquals("severity options", "critical", options[i++]);
- assertEquals("severity options", "major", options[i++]);
- assertEquals("severity options", "normal", options[i++]);
- assertEquals("severity options", "minor", options[i++]);
- assertEquals("severity options", "trivial", options[i++]);
- assertEquals("severity options", "enhancement", options[i++]);
- }
-
- // Attribute: product
- att = itr.next();
- assertEquals("Attribute: prodcut", "product", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("No product options", 0, options.length);
-
- // Attribute: AssignedTo
- att = itr.next();
- assertEquals("Attribute: AssignedTo", "AssignedTo", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("No AssignedTo options", 0, options.length);
-
- // Attribute: OS
- att = itr.next();
- assertEquals("Attribute: OS", "OS", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("# OS options", 20, options.length);
-
- i = 0;
- while (i < options.length) {
- assertEquals("OS options", "All", options[i++]);
- assertEquals("OS options", "AIX Motif", options[i++]);
- assertEquals("OS options", "Windows 95", options[i++]);
- assertEquals("OS options", "Windows 98", options[i++]);
- assertEquals("OS options", "Windows CE", options[i++]);
- assertEquals("OS options", "Windows ME", options[i++]);
- assertEquals("OS options", "Windows 2000", options[i++]);
- assertEquals("OS options", "Windows NT", options[i++]);
- assertEquals("OS options", "Windows XP", options[i++]);
- assertEquals("OS options", "Windows All", options[i++]);
- assertEquals("OS options", "MacOS X", options[i++]);
- assertEquals("OS options", "Linux", options[i++]);
- assertEquals("OS options", "Linux-GTK", options[i++]);
- assertEquals("OS options", "Linux-Motif", options[i++]);
- assertEquals("OS options", "HP-UX", options[i++]);
- assertEquals("OS options", "Neutrino", options[i++]);
- assertEquals("OS options", "QNX-Photon", options[i++]);
- assertEquals("OS options", "Solaris", options[i++]);
- assertEquals("OS options", "Unix All", options[i++]);
- assertEquals("OS options", "other", options[i++]);
- }
-
- // Attribute: Version
- att = itr.next();
- assertEquals("Attribute: Version", "Version", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("# Version options", 1, options.length);
-
- i = 0;
- while (i < options.length) {
- assertEquals("Version options", "unspecified", options[i++]);
- }
-
- // Attribute: Platform
- att = itr.next();
- assertEquals("Attribute: Platform", "Platform", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("# Platform options", 6, options.length);
-
- i = 0;
- while (i < options.length) {
- assertEquals("Platform options", "All", options[i++]);
- assertEquals("Platform options", "Macintosh", options[i++]);
- assertEquals("Platform options", "PC", options[i++]);
- assertEquals("Platform options", "Power PC", options[i++]);
- assertEquals("Platform options", "Sun", options[i++]);
- assertEquals("Platform options", "Other", options[i++]);
- }
-
- // Attribute: Component
- att = itr.next();
- assertEquals("Attribute: Component", "Component", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("# Component options", 3, options.length);
-
- i = 0;
- while (i < options.length) {
- assertEquals("Component options", "Dynamic Plugins", options[i++]);
- assertEquals("Component options", "General", options[i++]);
- assertEquals("Component options", "OSGi", options[i++]);
- }
-
- // Attribute: bug_status
- att = itr.next();
- assertEquals("Attribute: bug_status", "bug_status", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("No bug_status options", 0, options.length);
-
- // Attribute: form_name
- att = itr.next();
- assertEquals("Attribute: form_name", "form_name", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("No form_name options", 0, options.length);
-
- // Attribute: bug_file_loc
- att = itr.next();
- assertEquals("Attribute: bug_file_loc", "bug_file_loc", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("No bug_file_loc options", 0, options.length);
-
- // Attribute: priority
- att = itr.next();
- assertEquals("Attribute: priority", "priority", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("No priority options", 0, options.length);
-
- }
-
-// private void printList(List<Attribute> attributes) {
-//
-// Iterator<Attribute> itr = attributes.iterator();
-// System.out.println("Attributes for this Product:");
-// System.out.println("============================");
-//
-// while (itr.hasNext()) {
-// Attribute attr = itr.next();
-// System.out.println();
-// System.out.println(attr.getName() + ": ");
-// System.out.println("-----------");
-//
-// Map<String, String> options = attr.getOptionValues();
-// Object[] it = options.keySet().toArray();
-// for (int i = 0; i < it.length; i++)
-// System.out.println((String) it[i]);
-// }
-// }
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestGMT.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestGMT.java
deleted file mode 100644
index 493787200..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestGMT.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.test;
-
-import java.io.File;
-import java.io.FileReader;
-import java.io.Reader;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.Path;
-import org.eclipse.mylar.bugzilla.core.Attribute;
-import org.eclipse.mylar.bugzilla.core.NewBugModel;
-import org.eclipse.mylar.bugzilla.core.internal.NewBugParser;
-
-
-/**
- * Tests NewBugParser -- parses product attributes
- */
-public class BugzillaNewBugParserTestGMT extends TestCase {
-
- public BugzillaNewBugParserTestGMT() {
- super();
- }
-
- public BugzillaNewBugParserTestGMT(String arg0) {
- super(arg0);
- }
-
- public void testProductGMT() throws Exception {
-
- File f = FileTool.getFileInPlugin(BugzillaTestPlugin.getDefault(), new Path("TestPages/gmt-page.html"));
-
- Reader in = new FileReader(f);
-
- NewBugModel nbm = new NewBugModel();
- new NewBugParser(in).parseBugAttributes(nbm, true); // ** TRUE vs FALSE **
-
- // attributes for this bug model
- List<Attribute> attributes = nbm.getAttributes();
-// printList(attributes);
-
- Iterator<Attribute> itr = attributes.iterator();
- Attribute att = itr.next();
-
- // Attribute: Severity
- assertEquals("Attribute: Severity", "Severity", att.getName());
-
- Map<String, String> attOptions = att.getOptionValues(); // HashMap of
- // options for the
- // current
- // attribute
- Object[] options = attOptions.keySet().toArray(); // Array of keys for
- // the options of the
- // current attribute
- assertEquals("# Severity options", 7, options.length);
-
- int i = 0;
- while (i < options.length) {
- assertEquals("severity options", "blocker", options[i++]);
- assertEquals("severity options", "critical", options[i++]);
- assertEquals("severity options", "major", options[i++]);
- assertEquals("severity options", "normal", options[i++]);
- assertEquals("severity options", "minor", options[i++]);
- assertEquals("severity options", "trivial", options[i++]);
- assertEquals("severity options", "enhancement", options[i++]);
- }
-
- // Attribute: product
- att = itr.next();
- assertEquals("Attribute: product", "product", att.getName());
-
- attOptions = att.getOptionValues();
- options = attOptions.keySet().toArray();
- assertEquals("No product options", 0, options.length);
-
- // Attribute: AssignedTo
- att = itr.next();
- assertEquals("Attribute: AssignedTo", "AssignedTo", att.getName());
-
- attOptions = att.getOptionValues();
- options = attOptions.keySet().toArray();
- assertEquals("No AssignedTo options", 0, options.length);
-
- // Attribute: OS
- att = itr.next();
- assertEquals("Attribute: OS", "OS", att.getName());
-
- attOptions = att.getOptionValues();
- options = attOptions.keySet().toArray();
- assertEquals("# of options", 20, options.length);
-
- i = 0;
- while (i < options.length) {
- assertEquals("OS options", "All", options[i++]);
- assertEquals("OS options", "AIX Motif", options[i++]);
- assertEquals("OS options", "Windows 95", options[i++]);
- assertEquals("OS options", "Windows 98", options[i++]);
- assertEquals("OS options", "Windows CE", options[i++]);
- assertEquals("OS options", "Windows ME", options[i++]);
- assertEquals("OS options", "Windows 2000", options[i++]);
- assertEquals("OS options", "Windows NT", options[i++]);
- assertEquals("OS options", "Windows XP", options[i++]);
- assertEquals("OS options", "Windows All", options[i++]);
- assertEquals("OS options", "MacOS X", options[i++]);
- assertEquals("OS options", "Linux", options[i++]);
- assertEquals("OS options", "Linux-GTK", options[i++]);
- assertEquals("OS options", "Linux-Motif", options[i++]);
- assertEquals("OS options", "HP-UX", options[i++]);
- assertEquals("OS options", "Neutrino", options[i++]);
- assertEquals("OS options", "QNX-Photon", options[i++]);
- assertEquals("OS options", "Solaris", options[i++]);
- assertEquals("OS options", "Unix All", options[i++]);
- assertEquals("OS options", "other", options[i++]);
- }
-
- // Attribute: Version
- att = itr.next();
- assertEquals("Attribute: Version", "Version", att.getName());
-
- //attOptions = (HashMap) att.getOptionValues();
- options = att.getOptionValues().keySet().toArray();
- assertEquals("# Version options", 1, options.length);
-
- i = 0;
- while (i < options.length) {
- assertEquals("Version options", "unspecified", options[i++]);
- }
-
- // Attribute: Platform
- att = itr.next();
- assertEquals("Attribute: Platform", "Platform", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("# Platform options", 6, options.length);
-
- i = 0;
- while (i < options.length) {
- assertEquals("Platform options", "All", options[i++]);
- assertEquals("Platform options", "Macintosh", options[i++]);
- assertEquals("Platform options", "PC", options[i++]);
- assertEquals("Platform options", "Power PC", options[i++]);
- assertEquals("Platform options", "Sun", options[i++]);
- assertEquals("Platform options", "Other", options[i++]);
- }
-
- att = itr.next();
- assertEquals("Attribute: Component", "Component", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("# Component options", 1, options.length);
-
- i = 0;
- while (i < options.length) {
- assertEquals("Component options", "Core", options[i++]);
- }
-
- // Attribute: bug_status
- att = itr.next();
- assertEquals("Attribute: bug_status", "bug_status", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("No bug_status options", 0, options.length);
-
- // Attribute: form_name
- att = itr.next();
- assertEquals("Attribute: form_name", "form_name", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("No form_name options", 0, options.length);
-
- // Attribute: bug_file_loc
- att = itr.next();
- assertEquals("Attribute: bug_file_loc", "bug_file_loc", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("No bug_file_loc options", 0, options.length);
-
- // Attribute: priority
- att = itr.next();
- assertEquals("Attribute: priority", "priority", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("No priority options", 0, options.length);
-
- }
-
-// private void printList(List<Attribute> attributes) {
-//
-// Iterator<Attribute> itr = attributes.iterator();
-// System.out.println("Attributes for this Product:");
-// System.out.println("============================");
-//
-// while (itr.hasNext()) {
-// Attribute attr = itr.next();
-// System.out.println();
-// System.out.println(attr.getName() + ": ");
-// System.out.println("-----------");
-//
-// Map<String, String> options = attr.getOptionValues();
-// Object[] it = options.keySet().toArray();
-// for (int i = 0; i < it.length; i++)
-// System.out.println((String) it[i]);
-// }
-// }
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestPlatform.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestPlatform.java
deleted file mode 100644
index 0454b2878..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestPlatform.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.test;
-
-import java.io.File;
-import java.io.FileReader;
-import java.io.Reader;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.Path;
-import org.eclipse.mylar.bugzilla.core.Attribute;
-import org.eclipse.mylar.bugzilla.core.NewBugModel;
-import org.eclipse.mylar.bugzilla.core.internal.NewBugParser;
-
-
-/**
- * Tests NewBugParser -- parses product attributes
- */
-public class BugzillaNewBugParserTestPlatform extends TestCase {
-
- public BugzillaNewBugParserTestPlatform() {
- super();
- }
-
- public BugzillaNewBugParserTestPlatform(String arg0) {
- super(arg0);
- }
-
- public void testProductPlatform() throws Exception {
-
- File f = FileTool.getFileInPlugin(BugzillaTestPlugin.getDefault(), new Path("TestPages/platform-page.html"));
-
- Reader in = new FileReader(f);
-
- NewBugModel nbm = new NewBugModel();
- new NewBugParser(in).parseBugAttributes(nbm, true); // ** TRUE vs FALSE **
-
- // attributes for this bug model
- List<Attribute> attributes = nbm.getAttributes();
-// printList(attributes);
-
- // to iterator over the ArrayList of attributes
- Iterator<Attribute> itr = attributes.iterator();
-
- // Attribute: Severity
- Attribute att = itr.next(); // current attribute
-
- // Attribute: Severity
- assertEquals("Attribute: Severity", "Severity", att.getName());
-
- Map<String, String> attOptions = att.getOptionValues(); // HashMap of
- // options for the
- // current
- // attribute
- Object[] options = attOptions.keySet().toArray(); // Array of keys for
- // the options of the
- // current attribute
- assertEquals("# Severity options", 7, options.length);
-
- int i = 0;
- while (i < options.length) {
- assertEquals("severity options", "blocker", options[i++]);
- assertEquals("severity options", "critical", options[i++]);
- assertEquals("severity options", "major", options[i++]);
- assertEquals("severity options", "normal", options[i++]);
- assertEquals("severity options", "minor", options[i++]);
- assertEquals("severity options", "trivial", options[i++]);
- assertEquals("severity options", "enhancement", options[i++]);
- }
-
- // Attribute: product
- att = itr.next();
- assertEquals("Attribute: product", "product", att.getName());
-
- attOptions = att.getOptionValues();
- options = attOptions.keySet().toArray();
- assertEquals("No product optins", 0, options.length);
-
- // Attribute: AssignedTo
- att = itr.next();
- assertEquals("Attribute: Assigned To", "Assigned To", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("No AssingedTo options", 0, options.length);
-
- // Attribute: OS
- att = itr.next();
- assertEquals("Attribute: OS", "OS", att.getName());
-
- attOptions = att.getOptionValues();
- options = attOptions.keySet().toArray();
- assertEquals("# OS options", 20, options.length);
-
- i = 0;
- while (i < options.length) {
- assertEquals("OS options", "All", options[i++]);
- assertEquals("OS options", "AIX Motif", options[i++]);
- assertEquals("OS options", "Windows 95", options[i++]);
- assertEquals("OS options", "Windows 98", options[i++]);
- assertEquals("OS options", "Windows CE", options[i++]);
- assertEquals("OS options", "Windows ME", options[i++]);
- assertEquals("OS options", "Windows 2000", options[i++]);
- assertEquals("OS options", "Windows NT", options[i++]);
- assertEquals("OS options", "Windows XP", options[i++]);
- assertEquals("OS options", "Windows All", options[i++]);
- assertEquals("OS options", "MacOS X", options[i++]);
- assertEquals("OS options", "Linux", options[i++]);
- assertEquals("OS options", "Linux-GTK", options[i++]);
- assertEquals("OS options", "Linux-Motif", options[i++]);
- assertEquals("OS options", "HP-UX", options[i++]);
- assertEquals("OS options", "Neutrino", options[i++]);
- assertEquals("OS options", "QNX-Photon", options[i++]);
- assertEquals("OS options", "Solaris", options[i++]);
- assertEquals("OS options", "Unix All", options[i++]);
- assertEquals("OS options", "other", options[i++]);
- }
-
- // Attribute: Version
- att = itr.next();
- assertEquals("Attribute: Version", "Version", att.getName());
-
- attOptions = att.getOptionValues();
- options = attOptions.keySet().toArray();
- assertEquals("# Version options", 8, options.length);
-
- i = 0;
- while (i < options.length) {
- assertEquals("Version options", "1.0", options[i++]);
- assertEquals("Version options", "2.0", options[i++]);
- assertEquals("Version options", "2.0.1", options[i++]);
- assertEquals("Version options", "2.0.2", options[i++]);
- assertEquals("Version options", "2.1", options[i++]);
- assertEquals("Version options", "2.1.1", options[i++]);
- assertEquals("Version options", "2.1.2", options[i++]);
- assertEquals("Version options", "3.0", options[i++]);
- }
-
- // Attribute: Platform
- att = itr.next();
- assertEquals("Attribute: Platform", "Platform", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("# Platform options", 6, options.length);
-
- i = 0;
- while (i < options.length) {
- assertEquals("Platform options", "All", options[i++]);
- assertEquals("Platform options", "Macintosh", options[i++]);
- assertEquals("Platform options", "PC", options[i++]);
- assertEquals("Platform options", "Power PC", options[i++]);
- assertEquals("Platform options", "Sun", options[i++]);
- assertEquals("Platform options", "Other", options[i++]);
- }
-
- // Attribute: Component
- att = itr.next();
- assertEquals("Attribute: Component", "Component", att.getName());
-
- attOptions = att.getOptionValues();
- options = attOptions.keySet().toArray();
- assertEquals("# Component options", 16, options.length);
-
- i = 0;
- while (i < options.length) {
- assertEquals("Component options", "Ant", options[i++]);
- assertEquals("Component options", "Compare", options[i++]);
- assertEquals("Component options", "Core", options[i++]);
- assertEquals("Component options", "CVS", options[i++]);
- assertEquals("Component options", "Debug", options[i++]);
- assertEquals("Component options", "Doc", options[i++]);
- assertEquals("Component options", "Help", options[i++]);
- assertEquals("Component options", "Releng", options[i++]);
- assertEquals("Component options", "Scripting", options[i++]);
- assertEquals("Component options", "Search", options[i++]);
- assertEquals("Component options", "SWT", options[i++]);
- assertEquals("Component options", "Team", options[i++]);
- assertEquals("Component options", "Text", options[i++]);
- assertEquals("Component options", "UI", options[i++]);
- assertEquals("Component options", "Update", options[i++]);
- assertEquals("Component options", "WebDAV", options[i++]);
- }
-
- // Attribute: bug_status
- att = itr.next();
- assertEquals("Attribute: bug_status", "bug_status", att.getName());
-
- attOptions = att.getOptionValues();
- options = attOptions.keySet().toArray();
- assertEquals("No bug_status options", 0, options.length);
-
- // Attribute: form_name
- att = itr.next();
- assertEquals("Attribute: form_name", "form_name", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("No form_name options", 0, options.length);
-
- // Attribute: bug_file_loc
- att = itr.next();
- assertEquals("Attribute: bug_file_loc", "bug_file_loc", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("No bug_file_loc options", 0, options.length);
-
- // Attribute: priority
- att = itr.next();
- assertEquals("Attribute: priority", "priority", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("No priority options", 0, options.length);
- }
-
-// private void printList(List<Attribute> attributes) {
-//
-// Iterator<Attribute> itr = attributes.iterator();
-// System.out.println("Attributes for this Product:");
-// System.out.println("============================");
-//
-// while (itr.hasNext()) {
-// Attribute attr = itr.next();
-// System.out.println();
-// System.out.println(attr.getName() + ": ");
-// System.out.println("-----------");
-//
-// Map<String, String> options = attr.getOptionValues();
-// Object[] it = options.keySet().toArray();
-// for (int i = 0; i < it.length; i++)
-// System.out.println((String) it[i]);
-// }
-// }
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestVE.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestVE.java
deleted file mode 100644
index 2a01605a3..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaNewBugParserTestVE.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.test;
-
-import java.io.File;
-import java.io.FileReader;
-import java.io.Reader;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.Path;
-import org.eclipse.mylar.bugzilla.core.Attribute;
-import org.eclipse.mylar.bugzilla.core.NewBugModel;
-import org.eclipse.mylar.bugzilla.core.internal.NewBugParser;
-
-
-/**
- * Tests NewBugParser -- parses product attributes
- */
-public class BugzillaNewBugParserTestVE extends TestCase {
-
- public BugzillaNewBugParserTestVE() {
- super();
- }
-
- public BugzillaNewBugParserTestVE(String arg0) {
- super(arg0);
- }
-
- public void testProductVE() throws Exception {
- File f = FileTool.getFileInPlugin(BugzillaTestPlugin.getDefault(), new Path("TestPages/ve-page.html"));
-
- Reader in = new FileReader(f);
-
- NewBugModel nbm = new NewBugModel();
- new NewBugParser(in).parseBugAttributes(nbm, true); // ** TRUE vs FALSE **
-
- // attributes for this but model
- List<Attribute> attributes = nbm.getAttributes();
-// printList(attributes);
-
- Iterator<Attribute> itr = attributes.iterator();
- Attribute att = itr.next();
-
- // Attribute: Severity
- assertEquals("Attribute: Severity", "Severity", att.getName());
-
- Map<String, String> attOptions = att.getOptionValues(); // HashMap of
- // options for the
- // current
- // attribute
- Object[] options = attOptions.keySet().toArray(); // Array of keys for
- // the options of the
- // current attribute
- assertEquals("# Severity options", 7, options.length);
-
- int i = 0;
- while (i < options.length) {
- assertEquals("severity options", "blocker", options[i++]);
- assertEquals("severity options", "critical", options[i++]);
- assertEquals("severity options", "major", options[i++]);
- assertEquals("severity options", "normal", options[i++]);
- assertEquals("severity options", "minor", options[i++]);
- assertEquals("severity options", "trivial", options[i++]);
- assertEquals("severity options", "enhancement", options[i++]);
- }
-
- // Attribute: product
- att = itr.next();
- assertEquals("Attribute: product", "product", att.getName());
-
- attOptions = att.getOptionValues();
- options = attOptions.keySet().toArray();
- assertEquals("No product options", 0, options.length);
-
- // Attribute: AssignedTo
- att = itr.next();
- assertEquals("Attribute: AssignedTo", "AssignedTo", att.getName());
-
- attOptions = att.getOptionValues();
- options = attOptions.keySet().toArray();
- assertEquals("No AssignedTo options", 0, options.length);
-
- // Attribute: OS
- att = itr.next();
- assertEquals("Attribute: OS", "OS", att.getName());
-
- attOptions = att.getOptionValues();
- options = attOptions.keySet().toArray();
- assertEquals("# of options", 20, options.length);
-
- i = 0;
- while (i < options.length) {
- assertEquals("OS options", "All", options[i++]);
- assertEquals("OS options", "AIX Motif", options[i++]);
- assertEquals("OS options", "Windows 95", options[i++]);
- assertEquals("OS options", "Windows 98", options[i++]);
- assertEquals("OS options", "Windows CE", options[i++]);
- assertEquals("OS options", "Windows ME", options[i++]);
- assertEquals("OS options", "Windows 2000", options[i++]);
- assertEquals("OS options", "Windows NT", options[i++]);
- assertEquals("OS options", "Windows XP", options[i++]);
- assertEquals("OS options", "Windows All", options[i++]);
- assertEquals("OS options", "MacOS X", options[i++]);
- assertEquals("OS options", "Linux", options[i++]);
- assertEquals("OS options", "Linux-GTK", options[i++]);
- assertEquals("OS options", "Linux-Motif", options[i++]);
- assertEquals("OS options", "HP-UX", options[i++]);
- assertEquals("OS options", "Neutrino", options[i++]);
- assertEquals("OS options", "QNX-Photon", options[i++]);
- assertEquals("OS options", "Solaris", options[i++]);
- assertEquals("OS options", "Unix All", options[i++]);
- assertEquals("OS options", "other", options[i++]);
- }
-
- // Attribute: Version
- att = itr.next();
- assertEquals("Attribute: Version", "Version", att.getName());
-
- //attOptions = (HashMap) att.getOptionValues();
- options = att.getOptionValues().keySet().toArray();
- assertEquals("# Version options", 3, options.length);
-
- i = 0;
- while (i < options.length) {
- assertEquals("Version options", "0.5.0", options[i++]);
- assertEquals("Version options", "1.0.0", options[i++]);
- assertEquals("Version options", "unspecified", options[i++]);
- }
-
- // Attribute: Platform
- att = itr.next();
- assertEquals("Attribute: Platform", "Platform", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("# Platform options", 6, options.length);
-
- i = 0;
- while (i < options.length) {
- assertEquals("Platform options", "All", options[i++]);
- assertEquals("Platform options", "Macintosh", options[i++]);
- assertEquals("Platform options", "PC", options[i++]);
- assertEquals("Platform options", "Power PC", options[i++]);
- assertEquals("Platform options", "Sun", options[i++]);
- assertEquals("Platform options", "Other", options[i++]);
- }
-
- att = itr.next();
- assertEquals("Attribute: Component", "Component", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("# Component options", 6, options.length);
-
- i = 0;
- while (i < options.length) {
- assertEquals("Component options", "CDE", options[i++]);
- assertEquals("Component options", "Doc", options[i++]);
- assertEquals("Component options", "Java Core", options[i++]);
- assertEquals("Component options", "Java Model (JEM)", options[i++]);
- assertEquals("Component options", "JFC/Swing", options[i++]);
- assertEquals("Component options", "SWT", options[i++]);
- }
-
- // Attribute: bug_status
- att = itr.next();
- assertEquals("Attribute: bug_status", "bug_status", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("No bug_status options", 0, options.length);
-
- // Attribute: form_name
- att = itr.next();
- assertEquals("Attribute: form_name", "form_name", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("No form_name options", 0, options.length);
-
- // Attribute: bug_file_loc
- att = itr.next();
- assertEquals("Attribute: bug_file_loc", "bug_file_loc", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("No bug_file_loc options", 0, options.length);
-
- // Attribute: priority
- att = itr.next();
- assertEquals("Attribute: priority", "priority", att.getName());
-
- options = att.getOptionValues().keySet().toArray();
- assertEquals("No priority options", 0, options.length);
-
- }
-
-// private void printList(List<Attribute> attributes) {
-//
-// Iterator<Attribute> itr = attributes.iterator();
-// System.out.println("Attributes for this Product:");
-// System.out.println("============================");
-//
-// while (itr.hasNext()) {
-// Attribute attr = itr.next();
-// System.out.println();
-// System.out.println(attr.getName() + ": ");
-// System.out.println("-----------");
-//
-// Map<String, String> options = attr.getOptionValues();
-// Object[] it = options.keySet().toArray();
-// for (int i = 0; i < it.length; i++)
-// System.out.println((String) it[i]);
-// }
-// }
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaParserTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaParserTest.java
deleted file mode 100644
index 00a34463f..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaParserTest.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.test;
-
-import java.io.File;
-import java.io.FileReader;
-import java.io.Reader;
-import java.util.Iterator;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.Path;
-import org.eclipse.mylar.bugzilla.core.BugReport;
-import org.eclipse.mylar.bugzilla.core.Comment;
-import org.eclipse.mylar.bugzilla.core.internal.BugParser;
-
-
-/**
- * Tests for parsing Bugzilla reports
- */
-public class BugzillaParserTest extends TestCase {
-
- public BugzillaParserTest() {
- super();
- }
-
- public BugzillaParserTest(String arg0) {
- super(arg0);
- }
-
- public void testFullReportBug1() throws Exception {
-
- File f = FileTool.getFileInPlugin(BugzillaTestPlugin.getDefault(), new Path("TestPages/bug-1-full.html"));
-
- Reader in = new FileReader(f);
-
- BugReport bug = BugParser.parseBug(in, 1, "<server>", false, null, null);
-
-// displayBug(bug);
- assertEquals("Bug id", 1, bug.getId());
- assertEquals("Bug summary",
- "Usability issue with external editors (1GE6IRL)", bug
- .getSummary());
- assertEquals("Reporter", "andre_weinand@ch.ibm.com (Andre Weinand)",
- bug.getReporter());
- assertEquals("Reporter", "andre_weinand@ch.ibm.com (Andre Weinand)",
- bug.getAttribute("Reporter").getValue());
- assertEquals("Summary",
- "Usability issue with external editors (1GE6IRL)", bug
- .getSummary());
- assertEquals("Status", "VERIFIED", bug.getStatus());
- assertEquals("Resolution", "FIXED", bug.getResolution());
- assertEquals("Keywords", null, bug.getKeywords());
- assertEquals("Assigned To", "James_Moody@ca.ibm.com (James Moody)", bug
- .getAssignedTo());
- assertEquals("Priority", "P3", bug.getAttribute("Priority").getValue());
- assertEquals("OS", "All", bug.getAttribute("OS").getValue());
- assertEquals("Version", "2.0", bug.getAttribute("Version").getValue());
- assertEquals("Target Milestone", "---", bug.getAttribute(
- "Target Milestone").getValue());
- assertEquals("Keywords", "", bug.getAttribute("Keywords").getValue());
- assertEquals("Severity", "normal", bug.getAttribute("Severity")
- .getValue());
- assertEquals("Component", "VCM", bug.getAttribute("Component")
- .getValue());
- assertEquals("CC", "Kevin_McGuire@oti.com", bug.getCC()
- .iterator().next());
- assertEquals("Platform", "All", bug.getAttribute("Platform").getValue());
- assertEquals("Product", "Platform", bug.getAttribute("Product")
- .getValue());
- assertEquals("URL", "", bug.getAttribute("URL").getValue());
- assertEquals("Bug#", "1", bug.getAttribute("Bug#").getValue());
-
- // Description
- String description = "- Setup a project that contains a *.gif resource\n"
- + "\t- release project to CVS\n"
- + "\t- edit the *.gif resource with an external editor, e.g. PaintShop\n"
- + "\t- save and close external editor\n"
- + "\t- in Navigator open the icon resource and verify that your changes are there\n"
- + "\t- release project\n"
- + "\t\t-> nothing to release!\n"
- + "\t- in Navigator open the icon resource and verify that your changes are still there\n\n"
- +
-
- "\tProblem: because I never \"Refreshed from local\", the workspace hasn't changed so \"Release\" didn't find anything.\n"
- + "\tHowever opening the resource with an external editor found the modified file on disk and showed the changes.\n\n"
- +
-
- "\tThe real problem occurs if \"Release\" actually finds something to release but you don't spot that some resources are missing.\n"
- + "\tThis is extremely error prone: one of my changes didn't made it into build 110 because of this!\n\n"
- +
-
- "NOTES:\n"
- + "EG (5/23/01 3:00:33 PM)\n"
- + "\tRelease should do a refresh from local before doing the release.\n"
- + "\tMoving to VCM\n\n\n"
- +
-
- "KM (05/27/01 5:10:19 PM)\n"
- + "\tComments from JM in related email:\n\n"
- +
-
- "\tShould not do this for free. Could have a setting which made it optoinal but should nt be mandatory. Default setting could be to have it on.\n"
- + "\tConsider the SWT team who keep their workspaces on network drives. This will be slow. \n\n"
- +
-
- "\tSide effects will be that a build runs when the refresh is completed unless you somehow do it in a workspace runnable and don't end the\n"
- + "\trunnable until after the release. This would be less than optimal as some builders may be responsible for maintaining some invariants and deriving resources which are releasable. If you don't run the builders before releasing, the invariants will not be maintained and you will release inconsistent state.\n\n"
- +
-
- "\tSummary: Offer to \"ensure local consistency\" before releasing.\n\n"
- +
-
- "KM (5/31/01 1:30:35 PM)\n"
- + "\tSee also 1GEAG1A: ITPVCM:WINNT - Internal error comparing with a document\n"
- + "\twhich failed with an error. Never got log from Tod though.";
-
- assertTrue(description.length() == bug.getDescription().length());
- assertEquals("Description", description, bug.getDescription());
-
- // Comments:
- Iterator<Comment> it = bug.getComments().iterator();
- while (it.hasNext()) {
- // COMMENT #1
- Comment comment = it.next();
- assertEquals("Author1", "James_Moody@ca.ibm.com", comment
- .getAuthor());
- assertEquals("Name1", "James Moody", comment.getAuthorName());
- assertEquals(
- "Text1",
- "*** Bug 183 has been marked as a duplicate of this bug. ***",
- comment.getText());
-
- // COMMENT #2
- comment = it.next();
- assertEquals("Author2", "James_Moody@ca.ibm.com", comment
- .getAuthor());
- assertEquals("Name2", "James Moody", comment.getAuthorName());
- assertEquals("Text2",
- "Implemented 'auto refresh' option. Default value is off.",
- comment.getText());
-
- // COMMENT 3
- comment = it.next();
- assertEquals("Author3", "dj_houghton@ca.ibm.com", comment
- .getAuthor());
- assertEquals("Name3", "DJ Houghton", comment.getAuthorName());
- assertEquals("Text3", "PRODUCT VERSION:\n\t109\n\n", comment
- .getText());
-
- // COMMENT 4
- comment = it.next();
- assertEquals("Author4", "James_Moody@ca.ibm.com", comment
- .getAuthor());
- assertEquals("Name4", "James Moody", comment.getAuthorName());
- assertEquals("Text4", "Fixed in v206", comment.getText());
- }
- }
-
-// private static void displayBug(BugReport bug) {
-// System.out.println("Bug " + bug.getId() + ": " + bug.getSummary());
-// System.out.println("Opened: " + bug.getCreated());
-// for (Iterator<Attribute> it = bug.getAttributes().iterator(); it.hasNext();) {
-// Attribute attribute = it.next();
-// String key = attribute.getName();
-// System.out.println(key + ": " + attribute.getValue()
-// + (attribute.isEditable() ? " [OK]" : " %%"));
-// }
-//
-// System.out.print("CC: ");
-// for (Iterator<String> it = bug.getCC().iterator(); it.hasNext();) {
-// String email = it.next();
-// System.out.print(email + " ");
-// }
-// System.out.println();
-//
-// System.out.println(bug.getDescription());
-// for (Iterator<Comment> it = bug.getComments().iterator(); it.hasNext();) {
-// Comment comment = it.next();
-// System.out.println(comment.getAuthorName() + " <"
-// + comment.getAuthor() + "> (" + comment.getCreated() + ")");
-// System.out.print(comment.getText());
-// System.out.println();
-// }
-// }
-//
-// private static void printComments(BugReport bug) {
-// for (Iterator<Comment> it = bug.getComments().iterator(); it.hasNext();) {
-// Comment comment = it.next();
-// System.out.println("Author: " + comment.getAuthor());
-// System.out.println("Name: " + comment.getAuthorName());
-// System.out.println("Date: " + comment.getCreated());
-// System.out.println("Bug ID: " + comment.getBug().getId());
-// System.out.println("Comment: " + comment.getText());
-// System.out.println();
-// }
-// }
-//
-// /** prints names of attributes */
-// private static void printAttributes(BugReport bug) {
-// System.out.println("ATTRIBUTE KEYS:");
-// for (Iterator<Attribute> it = bug.getAttributes().iterator(); it.hasNext();) {
-// Attribute att = it.next();
-// System.out.println(att.getName());
-// }
-// }
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaParserTestNoBug.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaParserTestNoBug.java
deleted file mode 100644
index fe3f96746..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaParserTestNoBug.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.test;
-
-import java.io.File;
-import java.io.FileReader;
-import java.io.Reader;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.Path;
-import org.eclipse.mylar.bugzilla.core.BugReport;
-import org.eclipse.mylar.bugzilla.core.internal.BugParser;
-
-
-/**
- * Tests for parsing Bugzilla reports
- */
-public class BugzillaParserTestNoBug extends TestCase {
-
- public BugzillaParserTestNoBug() {
- super();
- }
-
- public BugzillaParserTestNoBug(String arg0) {
- super(arg0);
- }
-
- public void testBugNotFound() throws Exception {
-
- File f = FileTool.getFileInPlugin(BugzillaTestPlugin.getDefault(), new Path("TestPages/bug-not-found-eclipse.html"));
-
- Reader in = new FileReader(f);
-
- BugReport bug = BugParser.parseBug(in, 666, "<server>", false, null, null);
- assertNull(bug);
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaProductParser1ProductHipikatTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaProductParser1ProductHipikatTest.java
deleted file mode 100644
index b9d66e13b..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaProductParser1ProductHipikatTest.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.test;
-
-import java.io.File;
-import java.io.FileReader;
-import java.io.Reader;
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.Path;
-import org.eclipse.mylar.bugzilla.core.internal.ProductParser;
-
-
-/**
- * Tests for parsing Product Page for new Bugzilla reports
- */
-public class BugzillaProductParser1ProductHipikatTest extends TestCase {
-
- public BugzillaProductParser1ProductHipikatTest() {
- super();
- }
-
- public BugzillaProductParser1ProductHipikatTest(String arg0) {
- super(arg0);
- }
-
- public void testOneProduct() throws Exception {
-
- // If only one product, should skip product page (nothing in product
- // list
- // and display the attributes for that product
-
- File f = FileTool.getFileInPlugin(BugzillaTestPlugin.getDefault(), new Path("TestPages/product-page-1-product-hipikat.html"));
-
- Reader in = new FileReader(f);
-
- List<String> productList = new ArrayList<String>();
- productList = new ProductParser(in).getProducts();
-// printList(productList);
-
- assertNull("There were products parsed, and there shouldn't have been", productList);
- }
-
-// private void printList(List<String> productList) {
-//
-// if(productList == null){
-// System.out.println("No products");
-// return;
-// }
-// Iterator<String> itr = productList.iterator();
-// System.out.println("Product List:");
-// if (!itr.hasNext())
-// System.out.println("No products");
-// while (itr.hasNext())
-// System.out.println(itr.next());
-// }
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaProductParserTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaProductParserTest.java
deleted file mode 100644
index 704f49074..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaProductParserTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.test;
-
-import java.io.File;
-import java.io.FileReader;
-import java.io.Reader;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.Path;
-import org.eclipse.mylar.bugzilla.core.internal.ProductParser;
-
-
-/**
- * Tests for parsing Product Page for new Bugzilla reports
- */
-public class BugzillaProductParserTest extends TestCase {
-
- public BugzillaProductParserTest() {
- super();
- }
-
- public BugzillaProductParserTest(String arg0) {
- super(arg0);
- }
-
- public void testFullReportBugNoBug() throws Exception {
-
- File f = FileTool.getFileInPlugin(BugzillaTestPlugin.getDefault(), new Path("TestPages/product-page.html"));
-
- Reader in = new FileReader(f);
-
- List<String> productList = new ArrayList<String>();
- productList = new ProductParser(in).getProducts();
-// printList(productList);
-
- Iterator<String> itr = productList.iterator();
-
- while (itr.hasNext()) {
- assertEquals("AJDT", "AJDT", itr.next());
- assertEquals("AspectJ", "AspectJ", itr.next());
- assertEquals("CDT", "CDT", itr.next());
- assertEquals("CME", "CME", itr.next());
- assertEquals("ECESIS", "ECESIS", itr.next());
- assertEquals("EMF", "EMF", itr.next());
- assertEquals("Equinox", "Equinox", itr.next());
- assertEquals("GEF", "GEF", itr.next());
- assertEquals("GMT", "GMT", itr.next());
- assertEquals("Hyades", "Hyades", itr.next());
- assertEquals("JDT", "JDT", itr.next());
- assertEquals("PDE", "PDE", itr.next());
- assertEquals("Platform", "Platform", itr.next());
- assertEquals("Stellation", "Stellation", itr.next());
- assertEquals("UML2", "UML2", itr.next());
- assertEquals("VE", "VE", itr.next());
- assertEquals("WSVT", "WSVT", itr.next());
- assertEquals("XSD", "XSD", itr.next());
- }
- }
-
-// private void printList(List<String> productList) {
-//
-// Iterator<String> itr = productList.iterator();
-// System.out.println("Product List:");
-// while (itr.hasNext())
-// System.out.println(itr.next());
-// }
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaTestPlugin.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaTestPlugin.java
deleted file mode 100644
index 337945802..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/BugzillaTestPlugin.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugzilla.test;
-
-import org.eclipse.ui.plugin.*;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.osgi.framework.BundleContext;
-import java.util.*;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class BugzillaTestPlugin extends AbstractUIPlugin {
- //The shared instance.
- private static BugzillaTestPlugin plugin;
- //Resource bundle.
- private ResourceBundle resourceBundle;
-
- /**
- * The constructor.
- */
- public BugzillaTestPlugin() {
- super();
- plugin = this;
- }
-
- /**
- * This method is called upon plug-in activation
- */
- @Override
- public void start(BundleContext context) throws Exception {
- super.start(context);
- }
-
- /**
- * This method is called when the plug-in is stopped
- */
- @Override
- public void stop(BundleContext context) throws Exception {
- super.stop(context);
- plugin = null;
- resourceBundle = null;
- }
-
- /**
- * Returns the shared instance.
- */
- public static BugzillaTestPlugin getDefault() {
- return plugin;
- }
-
- /**
- * Returns the string from the plugin's resource bundle,
- * or 'key' if not found.
- */
- public static String getResourceString(String key) {
- ResourceBundle bundle = BugzillaTestPlugin.getDefault().getResourceBundle();
- try {
- return (bundle != null) ? bundle.getString(key) : key;
- } catch (MissingResourceException e) {
- return key;
- }
- }
-
- /**
- * Returns the plugin's resource bundle,
- */
- public ResourceBundle getResourceBundle() {
- try {
- if (resourceBundle == null)
- resourceBundle = ResourceBundle.getBundle("org.eclipse.mylar.bugzilla.tests.TestsPluginResources");
- } catch (MissingResourceException x) {
- resourceBundle = null;
- }
- return resourceBundle;
- }
-
- /**
- * Returns an image descriptor for the image file at the given
- * plug-in relative path.
- *
- * @param path the path
- * @return the image descriptor
- */
- public static ImageDescriptor getImageDescriptor(String path) {
- return AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.mylar.bugzilla.tests", path);
- }
-}
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/FileTool.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/FileTool.java
deleted file mode 100644
index 2f8c66c56..000000000
--- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/test/FileTool.java
+++ /dev/null
@@ -1,256 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylar.bugzilla.test;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.Reader;
-import java.io.Writer;
-import java.net.URL;
-import java.util.Enumeration;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Plugin;
-
-
-public class FileTool {
-
- private final static int MAX_RETRY= 5;
-
- /**
- * A buffer.
- */
- private static byte[] buffer = new byte[8192];
-
- /**
- * Unzips the given zip file to the given destination directory
- * extracting only those entries the pass through the given
- * filter.
- *
- * @param zipFile the zip file to unzip
- * @param dstDir the destination directory
- * @throws IOException in case of problem
- */
- public static void unzip(ZipFile zipFile, File dstDir) throws IOException {
- unzip(zipFile, dstDir, dstDir, 0);
- }
-
- private static void unzip(ZipFile zipFile, File rootDstDir, File dstDir, int depth) throws IOException {
-
- Enumeration<? extends ZipEntry> entries = zipFile.entries();
-
- try {
- while(entries.hasMoreElements()){
- ZipEntry entry = entries.nextElement();
- if(entry.isDirectory()){
- continue;
- }
- String entryName = entry.getName();
- File file = new File(dstDir, changeSeparator(entryName, '/', File.separatorChar));
- file.getParentFile().mkdirs();
- InputStream src = null;
- OutputStream dst = null;
- try {
- src = zipFile.getInputStream(entry);
- dst = new FileOutputStream(file);
- transferData(src, dst);
- } finally {
- if(dst != null){
- try {
- dst.close();
- } catch(IOException e){
- // don't worry in the finally
- }
- }
- if(src != null){
- try {
- src.close();
- } catch(IOException e){
- // don't worry in the finally
- }
- }
- }
- }
- } finally {
- try {
- zipFile.close();
- } catch(IOException e){
- // don't worry in the finally
- }
- }
- }
-
- /**
- * Returns the given file path with its separator
- * character changed from the given old separator to the
- * given new separator.
- *
- * @param path a file path
- * @param oldSeparator a path separator character
- * @param newSeparator a path separator character
- * @return the file path with its separator character
- * changed from the given old separator to the given new
- * separator
- */
- public static String changeSeparator(String path, char oldSeparator, char newSeparator){
- return path.replace(oldSeparator, newSeparator);
- }
-
- /**
- * Copies all bytes in the given source file to
- * the given destination file.
- *
- * @param source the given source file
- * @param destination the given destination file
- * @throws IOException in case of error
- */
- public static void transferData(File source, File destination) throws IOException {
- destination.getParentFile().mkdirs();
- InputStream is = null;
- OutputStream os = null;
- try {
- is = new FileInputStream(source);
- os = new FileOutputStream(destination);
- transferData(is, os);
- } finally {
- if(os != null){
- try {
- os.close();
- } catch(IOException e){
- // don't worry in the finally
- }
- }
- if(is != null){
- try {
- is.close();
- } catch(IOException e){
- // don't worry in the finally
- }
- }
- }
- }
-
- /**
- * Copies all bytes in the given source stream to
- * the given destination stream. Neither streams
- * are closed.
- *
- * @param source the given source stream
- * @param destination the given destination stream
- * @throws IOException in case of error
- */
- public static void transferData(InputStream source, OutputStream destination) throws IOException {
- int bytesRead = 0;
- while(bytesRead != -1){
- bytesRead = source.read(buffer, 0, buffer.length);
- if(bytesRead != -1){
- destination.write(buffer, 0, bytesRead);
- }
- }
- }
-
- /**
- * Copies the given source file to the given destination file.
- *
- * @param src the given source file
- * @param dst the given destination file
- * @throws IOException in case of error
- */
- public static void copy(File src, File dst) throws IOException {
- if(src.isDirectory()){
- String[] srcChildren = src.list();
- for(int i = 0; i < srcChildren.length; ++i){
- File srcChild= new File(src, srcChildren[i]);
- File dstChild= new File(dst, srcChildren[i]);
- copy(srcChild, dstChild);
- }
- } else
- transferData(src, dst);
- }
-
- public static File getFileInPlugin(Plugin plugin, IPath path) {
- try {
- URL installURL= plugin.getBundle().getEntry(path.toString());
- URL localURL= Platform.asLocalURL(installURL);
- return new File(localURL.getFile());
- } catch (IOException e) {
- return null;
- }
- }
-
- public static File createTempFileInPlugin(Plugin plugin, IPath path) {
- IPath stateLocation= plugin.getStateLocation();
- stateLocation= stateLocation.append(path);
- return stateLocation.toFile();
- }
-
- public static StringBuffer read(String fileName) throws IOException {
- return read(new FileReader(fileName));
- }
-
- public static StringBuffer read(Reader reader) throws IOException {
- StringBuffer s= new StringBuffer();
- try {
- char[] charBuffer= new char[8196];
- int chars= reader.read(charBuffer);
- while (chars != -1) {
- s.append(charBuffer, 0, chars);
- chars= reader.read(charBuffer);
- }
- } finally {
- try {
- reader.close();
- } catch (IOException e) {
- // don't worry in the finally
- }
- }
- return s;
- }
-
- public static void write(String fileName, StringBuffer content) throws IOException {
- Writer writer= new FileWriter(fileName);
- try {
- writer.write(content.toString());
- } finally {
- try {
- writer.close();
- } catch (IOException e) {
- // don't worry in the finally
- }
- }
- }
-
- public static void delete(File file) {
- if (file.exists()) {
- for (int i= 0; i < MAX_RETRY; i++) {
- if (file.delete())
- i= MAX_RETRY;
- else {
- try {
- Thread.sleep(1000); // sleep a second
- } catch (InterruptedException e) {
- // don't care if the sleep is interrupted
- }
- }
- }
- }
- }
-}
diff --git a/org.eclipse.mylyn.help.ui/.classpath b/org.eclipse.mylyn.help.ui/.classpath
deleted file mode 100644
index 1bdfad39c..000000000
--- a/org.eclipse.mylyn.help.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.mylyn.help.ui/.cvsignore b/org.eclipse.mylyn.help.ui/.cvsignore
deleted file mode 100644
index ba077a403..000000000
--- a/org.eclipse.mylyn.help.ui/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/org.eclipse.mylyn.help.ui/.project b/org.eclipse.mylyn.help.ui/.project
deleted file mode 100644
index cc9ad6c69..000000000
--- a/org.eclipse.mylyn.help.ui/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.mylar.doc</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.mylyn.help.ui/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.help.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 0635cc815..000000000
--- a/org.eclipse.mylyn.help.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Thu Jun 30 08:33:05 PDT 2005
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/org.eclipse.mylyn.help.ui/.settings/org.eclipse.pde.prefs b/org.eclipse.mylyn.help.ui/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 63b509b84..000000000
--- a/org.eclipse.mylyn.help.ui/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Wed Jul 20 11:42:00 EDT 2005
-compilers.p.deprecated=1
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/org.eclipse.mylyn.help.ui/META-INF/MANIFEST.MF b/org.eclipse.mylyn.help.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index 44f6f304b..000000000
--- a/org.eclipse.mylyn.help.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,9 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Mylar Documentation Plugin
-Bundle-SymbolicName: org.eclipse.mylar.doc; singleton:=true
-Bundle-Version: 0.3.5.1
-Bundle-Localization: plugin
-Eclipse-AutoStart: true
-Bundle-Vendor: University of British Columbia
-Bundle-ClassPath: mylar-doc.jar
diff --git a/org.eclipse.mylyn.help.ui/about.html b/org.eclipse.mylyn.help.ui/about.html
deleted file mode 100644
index 60ca57b4b..000000000
--- a/org.eclipse.mylyn.help.ui/about.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
-<!-- saved from url=(0043)http://www.eclipse.org/legal/epl/about.html -->
-<HTML><HEAD><TITLE>About</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-<META content="MSHTML 6.00.2900.2627" name=GENERATOR></HEAD>
-<BODY lang=EN-US>
-<H2>About This Content</H2>
-<P>February 24, 2005</P>
-<H3>License</H3>
-<P>The Eclipse Foundation 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 Eclipse Public License Version 1.0
-("EPL"). A copy of the EPL is available at <A
-href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</A>.
-For purposes of the EPL, "Program" will mean the Content.</P>
-<P>If you did not receive this Content directly from the Eclipse Foundation, the
-Content is being redistributed by another party ("Redistributor") and different
-terms and conditions may apply to your use of any object code in the Content.
-Check the Redistributor's license that was provided with the Content. If no such
-license exists, contact the Redistributor. Unless otherwise indicated below, the
-terms and conditions of the EPL still apply to any source code in the
-Content.</P></BODY></HTML>
diff --git a/org.eclipse.mylyn.help.ui/book.css b/org.eclipse.mylyn.help.ui/book.css
deleted file mode 100644
index 84d8880f2..000000000
--- a/org.eclipse.mylyn.help.ui/book.css
+++ /dev/null
@@ -1 +0,0 @@
-@import "../PRODUCT_PLUGIN/book.css";
diff --git a/org.eclipse.mylyn.help.ui/build.properties b/org.eclipse.mylyn.help.ui/build.properties
deleted file mode 100644
index 62bcb63d1..000000000
--- a/org.eclipse.mylyn.help.ui/build.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-###############################################################################
-# Copyright (c) 2004 - 2005 University Of British Columbia and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# University Of British Columbia - initial API and implementation
-###############################################################################
-source.mylar-doc.jar = src/
-output.mylar-doc.jar = bin/
-bin.includes = plugin.xml,\
- mylar-doc.jar,\
- META-INF/,\
- toc.xml,\
- about.html,\
- book.css,\
- developer/
-src.includes = META-INF/,\
- plugin.xml,\
- src/,\
- toc.xml,\
- about.html,\
- book.css,\
- developer/
diff --git a/org.eclipse.mylyn.help.ui/developer/dependencies.vsd b/org.eclipse.mylyn.help.ui/developer/dependencies.vsd
deleted file mode 100644
index 1ece91b2c..000000000
--- a/org.eclipse.mylyn.help.ui/developer/dependencies.vsd
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/developer/model.vsd b/org.eclipse.mylyn.help.ui/developer/model.vsd
deleted file mode 100644
index 168c5f186..000000000
--- a/org.eclipse.mylyn.help.ui/developer/model.vsd
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.help.ui/plugin.xml b/org.eclipse.mylyn.help.ui/plugin.xml
deleted file mode 100644
index 3d6a70d67..000000000
--- a/org.eclipse.mylyn.help.ui/plugin.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<?eclipse version="3.0"?>
-<plugin>
- <extension
- id="org.eclipse.mylar.helpDocs"
- name="Mylar Help"
- point="org.eclipse.help.toc">
- <toc
- file="toc.xml"
- primary="true">
- </toc>
- </extension>
-</plugin>
diff --git a/org.eclipse.mylyn.help.ui/src/empty.txt b/org.eclipse.mylyn.help.ui/src/empty.txt
deleted file mode 100644
index e69de29bb..000000000
--- a/org.eclipse.mylyn.help.ui/src/empty.txt
+++ /dev/null
diff --git a/org.eclipse.mylyn.help.ui/toc.xml b/org.eclipse.mylyn.help.ui/toc.xml
deleted file mode 100644
index f6c610141..000000000
--- a/org.eclipse.mylyn.help.ui/toc.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-
-<toc label="Mylar">
- <anchor id="javaUi"/>
- <anchor id="tasklist"/>
- <anchor id="moreTools"/>
-</toc>
-
-
diff --git a/org.eclipse.mylyn.tasks.core/.classpath b/org.eclipse.mylyn.tasks.core/.classpath
deleted file mode 100644
index cc69b552e..000000000
--- a/org.eclipse.mylyn.tasks.core/.classpath
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
- <accessrules>
- <accessrule kind="accessible" pattern="**/internal/**"/>
- </accessrules>
- </classpathentry>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.mylyn.tasks.core/.cvsignore b/org.eclipse.mylyn.tasks.core/.cvsignore
deleted file mode 100644
index ba077a403..000000000
--- a/org.eclipse.mylyn.tasks.core/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/org.eclipse.mylyn.tasks.core/.project b/org.eclipse.mylyn.tasks.core/.project
deleted file mode 100644
index d9ab28171..000000000
--- a/org.eclipse.mylyn.tasks.core/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.mylar.bugzilla</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.mylyn.tasks.core/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.tasks.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index f376966c0..000000000
--- a/org.eclipse.mylyn.tasks.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Mon Aug 22 20:32:13 PDT 2005
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/org.eclipse.mylyn.tasks.core/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.mylyn.tasks.core/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 72190d617..000000000
--- a/org.eclipse.mylyn.tasks.core/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Aug 22 20:32:13 PDT 2005
-eclipse.preferences.version=1
-internal.default.compliance=default
diff --git a/org.eclipse.mylyn.tasks.core/.settings/org.eclipse.pde.prefs b/org.eclipse.mylyn.tasks.core/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 5adccf083..000000000
--- a/org.eclipse.mylyn.tasks.core/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Wed Jul 20 11:41:31 EDT 2005
-compilers.p.deprecated=1
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/org.eclipse.mylyn.tasks.core/META-INF/MANIFEST.MF b/org.eclipse.mylyn.tasks.core/META-INF/MANIFEST.MF
deleted file mode 100644
index 959c2fba5..000000000
--- a/org.eclipse.mylyn.tasks.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,28 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Mylar Bugs Plug-in
-Bundle-SymbolicName: org.eclipse.mylar.bugs; singleton:=true
-Bundle-Version: 0.3.5.1
-Bundle-Activator: org.eclipse.mylar.bugs.MylarBugzillaPlugin
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.mylar.core,
- org.eclipse.mylar.ui,
- org.eclipse.mylar.bugzilla.ui,
- org.eclipse.mylar.bugzilla.core,
- org.eclipse.jdt.core,
- org.eclipse.ui.ide,
- org.eclipse.core.resources,
- org.eclipse.mylar.tasklist,
- org.eclipse.mylar.java,
- org.eclipse.ui.workbench.texteditor,
- org.eclipse.jface.text,
- org.eclipse.jdt.ui,
- org.eclipse.ui.editors
-Eclipse-AutoStart: true
-Export-Package: org.eclipse.mylar.bugs,
- org.eclipse.mylar.bugs.java,
- org.eclipse.mylar.bugs.search
-Bundle-ClassPath: mylar-bugs.jar
-Bundle-Vendor: University of British Columbia
diff --git a/org.eclipse.mylyn.tasks.core/build.properties b/org.eclipse.mylyn.tasks.core/build.properties
deleted file mode 100644
index e90142af2..000000000
--- a/org.eclipse.mylyn.tasks.core/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2004 - 2005 University Of British Columbia and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# University Of British Columbia - initial API and implementation
-###############################################################################
-bin.includes = META-INF/,\
- mylar-bugs.jar,\
- plugin.xml
-jars.compile.order = mylar-bugs.jar
-source.mylar-bugs.jar = src/
-output.mylar-bugs.jar = bin/
-src.includes = plugin.xml,\
- src/,\
- META-INF/
diff --git a/org.eclipse.mylyn.tasks.core/plugin.xml b/org.eclipse.mylyn.tasks.core/plugin.xml
deleted file mode 100644
index 115a2aa0c..000000000
--- a/org.eclipse.mylyn.tasks.core/plugin.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<?eclipse version="3.0"?>
-<plugin>
- <extension
- name="Mylar Bugzilla startup"
- point="org.eclipse.ui.startup">
- </extension>
- <extension
- point="org.eclipse.mylar.java.javaEditorContributor">
- <hyperlinkDetector class="org.eclipse.mylar.bugs.java.BugzillaHyperLinkDetector"/>
- </extension>
-</plugin>
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/BugzillaEditingMonitor.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/BugzillaEditingMonitor.java
deleted file mode 100644
index 8f4990b4c..000000000
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/BugzillaEditingMonitor.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-/*
- * Created on Apr 27, 2005
- */
-package org.eclipse.mylar.bugs;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.mylar.bugzilla.ui.editor.AbstractBugEditor;
-import org.eclipse.mylar.bugzilla.ui.outline.BugzillaReportSelection;
-import org.eclipse.mylar.bugzilla.ui.tasklist.BugzillaTaskEditor;
-import org.eclipse.mylar.core.AbstractSelectionMonitor;
-import org.eclipse.ui.IWorkbenchPart;
-
-
-/**
- * @author Mik Kersten
- */
-public class BugzillaEditingMonitor extends AbstractSelectionMonitor {
-
- public BugzillaEditingMonitor() {
- super();
- }
-
- @Override
- protected void handleWorkbenchPartSelection(IWorkbenchPart part, ISelection selection) {
- if(!(part instanceof AbstractBugEditor) && !(part instanceof BugzillaTaskEditor))
- return;
-
- if(selection instanceof StructuredSelection){
- StructuredSelection ss = (StructuredSelection)selection;
- Object object = ss.getFirstElement();
- if(object instanceof BugzillaReportSelection) super.handleElementSelection(part, object);
- }
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/BugzillaMylarBridge.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/BugzillaMylarBridge.java
deleted file mode 100644
index 6e09c0df4..000000000
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/BugzillaMylarBridge.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-/*
- * Created on Oct 1, 2004
- */
-package org.eclipse.mylar.bugs;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IMember;
-import org.eclipse.mylar.bugzilla.ui.tasklist.BugzillaReportNode;
-
-
-/**
- * Class to handle the bridge between mylar and bugzilla
- *
- * @author Shawn Minto
- */
-public class BugzillaMylarBridge {
-
- /** The hash of all of the landmarks and their related search hits */
- private Map<String, Map<Integer, List<BugzillaReportNode>>> landmarksHash;
- /**
- * The currently running search jobs so that we can cancel it if necessary <br> KEY: IMember VALUE: Job
- */
- static Map<String, Job> runningJobs = Collections.synchronizedMap(new HashMap<String, Job>());
-
- /**
- * Constructor
- */
- public BugzillaMylarBridge() {
- landmarksHash = Collections.synchronizedMap(new HashMap<String, Map<Integer, List<BugzillaReportNode>>>());
- }
-
-
- /**
- * Remove a landmark from the hash
- *
- * @param removed
- * This landmark to remove (IJavaElement)
- */
- public void removeFromLandmarksHash(IJavaElement removed) {
- landmarksHash.remove(removed.getHandleIdentifier());
- }
-
- /**
- * Remove all of the landmarks from the hash that are in the list
- *
- * @param removed
- * This list of landmarks to remove (IJavaElements)
- */
- public void removeFromLandmarksHash(List<IJavaElement> removed) {
-
- for(IJavaElement je : removed) {
- landmarksHash.remove(je.getHandleIdentifier());
- }
- }
-
- /**
- * Add data to the landmarks hash
- *
- * @param doiList
- * The list of BugzillaSearchHitDoiInfo
- * @param m
- * The member that this list is for
- */
- public void addToLandmarksHash(List<BugzillaReportNode> doiList, IMember m, int scope) {
- Map<Integer, List<BugzillaReportNode>> searches = landmarksHash.get(m.getHandleIdentifier());
-
- if(searches == null){
- searches = new HashMap<Integer, List<BugzillaReportNode>>();
- }
- searches.put(scope, doiList);
- landmarksHash.put(m.getHandleIdentifier(), searches);
- }
-
- /**
- * Get the doiList for the given IMember from the landmarks hash
- *
- * @param m
- * The member to get the doiList for
- * @return The doiList or null if it doesn't exist
- */
- public List<BugzillaReportNode> getFromLandmarksHash(IMember m, int scope) {
- Map<Integer, List<BugzillaReportNode>> scopes = landmarksHash.get(m.getHandleIdentifier());
- if(scopes == null)
- return null;
- else
- return scopes.get(scope);
- }
-
- /**
- * Determine whether the current element has a search job running for it
- *
- * @param e
- * The element that we want to know whether there is a search job
- * or not
- * @return <code>true</code> if it does else <code>false</code>
- */
- public static boolean doesJobExist(String handle) {
- return runningJobs.containsKey(handle);
- }
-
- /**
- * Remove search job for the given element
- *
- * @param m
- * The element that we want to make sure that the search is
- * canceled for
- */
- public static void removeSearchJob(String handle) {
-
- // make sure that there wasn't a previous search job that we know
- // of. If there was, cancel it
- if (doesJobExist(handle)) {
- // get the search job and wait until it is cancelled
- Job prevJob = runningJobs.get(handle);
- prevJob.cancel();
- runningJobs.remove(handle);
- }
- }
-
- /**
- * Add a search job to our list
- * @param handle The handle of the element that we are searching for
- * @param searchJob The job that represents the search
- */
- public static void addJob(String handle, Job searchJob) {
- runningJobs.put(handle, searchJob);
- }
-
- public static void cancelAllRunningJobs(){
- Collection<Job> jobs = runningJobs.values();
- for(Job j: jobs){
- j.cancel();
- }
- runningJobs.clear();
- }
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/BugzillaNodeLabelProvider.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/BugzillaNodeLabelProvider.java
deleted file mode 100644
index 415749274..000000000
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/BugzillaNodeLabelProvider.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-/*
- * Created on Apr 18, 2005
- */
-package org.eclipse.mylar.bugs;
-
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.mylar.bugzilla.core.BugReport;
-import org.eclipse.mylar.bugzilla.ui.tasklist.BugzillaReportNode;
-import org.eclipse.mylar.core.IMylarContextNode;
-import org.eclipse.mylar.ui.MylarImages;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * @author Mik Kersten
- */
-public class BugzillaNodeLabelProvider implements ILabelProvider {
-
- public Image getImage(Object element) {
- return MylarImages.getImage(MylarImages.BUG);
- }
-
- /**
- * TODO: slow?
- */
- public String getText(Object element) {
- IMylarContextNode node = (IMylarContextNode)element;
-
- // try to get from the cache before downloading
- Object report;
- BugzillaReportNode reportNode = MylarBugzillaPlugin.getReferenceProvider().getCached(node.getElementHandle());
- BugReport cachedReport = MylarBugzillaPlugin.getDefault().getStructureBridge().getCached(node.getElementHandle());
- if(reportNode != null && cachedReport == null){
- report = reportNode;
- } else{
- report = MylarBugzillaPlugin.getDefault().getStructureBridge().getObjectForHandle(node.getElementHandle());
- }
- return MylarBugzillaPlugin.getDefault().getStructureBridge().getName(report);
- }
-
- public void addListener(ILabelProviderListener listener) {
- // don't need to worry about listeners
- }
-
- public void dispose() {
- // don't care about dispose
- }
-
- public boolean isLabelProperty(Object element, String property) {
- return false;
- }
-
- public void removeListener(ILabelProviderListener listener) {
- // don't need to worry about listeners
- }
-}
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/BugzillaStructureBridge.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/BugzillaStructureBridge.java
deleted file mode 100644
index 6066e9c18..000000000
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/BugzillaStructureBridge.java
+++ /dev/null
@@ -1,310 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-/*
- * Created on May 2, 2005
- */
-package org.eclipse.mylar.bugs;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.mylar.bugzilla.core.BugReport;
-import org.eclipse.mylar.bugzilla.core.BugzillaRepository;
-import org.eclipse.mylar.bugzilla.core.BugzillaTools;
-import org.eclipse.mylar.bugzilla.core.IBugzillaBug;
-import org.eclipse.mylar.bugzilla.core.search.BugzillaSearchHit;
-import org.eclipse.mylar.bugzilla.ui.editor.AbstractBugEditor;
-import org.eclipse.mylar.bugzilla.ui.outline.BugzillaOutlineNode;
-import org.eclipse.mylar.bugzilla.ui.outline.BugzillaReportSelection;
-import org.eclipse.mylar.bugzilla.ui.tasklist.BugzillaCacheFile;
-import org.eclipse.mylar.bugzilla.ui.tasklist.BugzillaReportNode;
-import org.eclipse.mylar.core.AbstractRelationshipProvider;
-import org.eclipse.mylar.core.IDegreeOfSeparation;
-import org.eclipse.mylar.core.IMylarStructureBridge;
-import org.eclipse.mylar.core.MylarPlugin;
-import org.eclipse.mylar.core.internal.DegreeOfSeparation;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.progress.IProgressService;
-import org.eclipse.ui.views.markers.internal.ProblemMarker;
-
-
-public class BugzillaStructureBridge implements IMylarStructureBridge {
-
- public final static String EXTENSION = "bugzilla";
-
- public List<AbstractRelationshipProvider> providers;
-
- public String getResourceExtension() {
- return EXTENSION;
- }
-
- public BugzillaStructureBridge() {
- super();
- readCacheFile();
- providers = new ArrayList<AbstractRelationshipProvider>();
- providers.add(MylarBugzillaPlugin.getReferenceProvider());
- }
-
- /**
- * Handle format: <server-name:port>;<bug-id>;<comment#>
- *
- * Use: BugzillaTools ???
- */
- public String getHandleIdentifier(Object object) {
- if(object instanceof BugzillaOutlineNode){
- BugzillaOutlineNode n = (BugzillaOutlineNode)object;
- return BugzillaTools.getHandle(n);
- }
- else if(object instanceof BugzillaReportSelection){
- BugzillaReportSelection n = (BugzillaReportSelection)object;
- return BugzillaTools.getHandle(n);
- }
- return null;
- }
-
- private BugReport result;
-
- public Object getObjectForHandle(final String handle) {
- result = null;
-
- String [] parts = handle.split(";");
- if (parts.length >= 2){
- String server = parts[0];
- final int id = Integer.parseInt(parts[1]);
-
- String bugHandle = server + ";" + id;
-
- int commentNumber = -1;
- if(parts.length == 3){
- commentNumber = Integer.parseInt(parts[2]);
- }
-
- // get the bugzillaOutlineNode for the element
- IEditorPart editorPart = null;
- try{
- editorPart = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
- }catch(NullPointerException e){
- // do nothing, this just means that there is no active page
- }
- if(editorPart != null && editorPart instanceof AbstractBugEditor){
- AbstractBugEditor abe = ((AbstractBugEditor)editorPart);
- BugzillaOutlineNode node = abe.getModel();
- return findNode(node, commentNumber);
- }
-
- BugzillaReportNode reportNode = MylarBugzillaPlugin.getReferenceProvider().getCached(handle);
-
- // try to get from the cache, if it doesn't exist, startup an operation to get it
- result = getFromCache(bugHandle);
- if(result == null && reportNode != null){
- return reportNode;
- } else if(result == null && reportNode == null){
- WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
- protected void execute(IProgressMonitor monitor) throws CoreException {
- monitor.beginTask("Downloading Bug# " + id, IProgressMonitor.UNKNOWN);
- try {
- result = BugzillaRepository.getInstance().getCurrentBug(id);
- }catch(Exception e){
- result = null;
- }
- }};
-
- // Use the progess service to execute the runnable
- IProgressService service = PlatformUI.getWorkbench().getProgressService();
- try {
- service.run(false, false, op);
- } catch (InvocationTargetException e) {
- // Operation was canceled
- } catch (InterruptedException e) {
- // Handle the wrapped exception
- }
-
- if(result != null)
- cache(bugHandle, result);
- }
-
- BugzillaOutlineNode node = BugzillaOutlineNode.parseBugReport(result);
- return findNode(node, commentNumber);
- }
- else{
- return null;
- }
- }
-
- private BugzillaOutlineNode findNode(BugzillaOutlineNode startNode, int commentNumber){
-
- if(commentNumber == -1){
- return startNode;
- }else if(startNode.getComment() != null && startNode.getComment().getNumber() == commentNumber -1){
- return startNode;
- } else if(startNode.isCommentHeader() && commentNumber == 1){
- return startNode;
- }else if(startNode.isDescription() && commentNumber == 0){
- return startNode;
- }
-
- BugzillaOutlineNode[] children = startNode.getChildren();
- for(int i = 0; i < children.length; i++){
- BugzillaOutlineNode n = findNode(children[i], commentNumber);
- if(n != null)
- return n;
- }
- return null;
- }
-
- public String getParentHandle(String handle) {
-
- //check so that we don't need to try to get the parent if we are already at the bug report
- if(!handle.matches(".*;.*;.*"))
- return null;
-
- BugzillaOutlineNode bon = (BugzillaOutlineNode)getObjectForHandle(handle);
- if(bon != null && bon.getParent() != null)
- return BugzillaTools.getHandle(bon.getParent());
- else
- return null;
-// String [] parts = handle.split(";");
-// if (parts.length == 1){
-// return null;
-// }else if (parts.length > 2) {
-// String newHandle = "";
-// for(int i = 0; i < parts.length - 1; i++)
-// newHandle += parts[i] + ";";
-// return newHandle.substring(0, newHandle.length() - 1);
-//// return handle.substring(0, handle.lastIndexOf(";"));
-// }
-// return null;
- }
-
- public String getName(Object object) {
- if(object instanceof BugzillaOutlineNode){
- BugzillaOutlineNode b = (BugzillaOutlineNode)object;
- return BugzillaTools.getName(b);
- } else if (object instanceof BugzillaReportNode){
- BugzillaSearchHit hit = ((BugzillaReportNode)object).getHit();
- return hit.getServer() + ": Bug#: " + hit.getId() + ": " + hit.getDescription();
- }
- return "";
- }
-
- public boolean canBeLandmark(String handle) {
- return false;
- }
-
- public boolean acceptsObject(Object object) {
- return object instanceof BugzillaOutlineNode || object instanceof BugzillaReportSelection;
- }
-
- public boolean canFilter(Object element) {
- return true;
- }
-
- public boolean isDocument(String handle) {
- return (handle.indexOf(';') == handle.lastIndexOf(';') && handle.indexOf(";") != -1);
- }
-
- public String getHandleForMarker(ProblemMarker marker) {
- return null;
- }
-
- public IProject getProjectForObject(Object object) {
- // bugzilla objects do not yet sit in a project
- return null;
- }
-
- public String getResourceExtension(String elementHandle) {
- return getResourceExtension();
- }
-
- /*
- *
- * STUFF FOR CACHING BUG REPORTS
- *
- */
-
- // bug report cache
- private Map<String, BugReport> cache = new HashMap<String, BugReport>();
-
- public void cache(String handle, BugReport report) {
- cache.put(handle, report);
- cacheFile.add(report);
- }
-
- public void clearCache(){
- cache.clear();
- cacheFile.removeAll();
- }
-
- private BugReport getFromCache(String bugHandle) {
- return cache.get(bugHandle);
- }
-
- public Set<String> getCachedHandles(){
- return cache.keySet();
- }
-
- private BugzillaCacheFile cacheFile;
-
- private IPath getCacheFile() {
- IPath stateLocation = Platform.getPluginStateLocation(MylarBugzillaPlugin.getDefault());
- IPath configFile = stateLocation.append("offlineReports");
- return configFile;
- }
-
- private void readCacheFile() {
- IPath cachPath = getCacheFile();
-
- try {
- cacheFile = new BugzillaCacheFile(cachPath.toFile());
- ArrayList<IBugzillaBug> cached = cacheFile.elements();
- for(IBugzillaBug bug: cached){
- if(bug instanceof BugReport)
- cache.put(BugzillaTools.getHandle(bug), (BugReport)bug);
- }
- } catch (Exception e) {
- MylarPlugin.log(e, "occurred while restoring saved offline Bugzilla reports.");
- }
- }
-
- public BugReport getCached(String handle) {
- return cache.get(handle);
- }
-
- public List<AbstractRelationshipProvider> getProviders() {
- return providers;
- }
-
- public List<IDegreeOfSeparation> getDegreesOfSeparation() {
- List <IDegreeOfSeparation> separations = new ArrayList<IDegreeOfSeparation>();
- separations.add(new DegreeOfSeparation("disabled", 0));
- separations.add(new DegreeOfSeparation("local, fully qualified matches", 1));
- separations.add(new DegreeOfSeparation("local, unqualified matches", 2));
- separations.add(new DegreeOfSeparation("server, fully quaified matches", 3));
- separations.add(new DegreeOfSeparation("server, unqualified matches", 4));
-
- return separations;
- }
-
- public String getHandleForOffsetInObject(Object resource, int offset) {
- return null;
- }
-}
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/BugzillaUiBridge.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/BugzillaUiBridge.java
deleted file mode 100644
index f558a686e..000000000
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/BugzillaUiBridge.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-/*
- * Created on Apr 6, 2005
- */
-package org.eclipse.mylar.bugs;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.mylar.bugs.search.BugzillaReferencesProvider;
-import org.eclipse.mylar.bugzilla.ui.BugzillaOpenStructure;
-import org.eclipse.mylar.bugzilla.ui.ViewBugzillaAction;
-import org.eclipse.mylar.bugzilla.ui.editor.AbstractBugEditor;
-import org.eclipse.mylar.bugzilla.ui.outline.BugzillaOutlinePage;
-import org.eclipse.mylar.bugzilla.ui.tasklist.BugzillaTaskEditor;
-import org.eclipse.mylar.core.IMylarContextNode;
-import org.eclipse.mylar.ui.IMylarUiBridge;
-import org.eclipse.mylar.ui.MylarImages;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.Workbench;
-
-public class BugzillaUiBridge implements IMylarUiBridge {
-
- protected BugzillaNodeLabelProvider labelProvider = new BugzillaNodeLabelProvider();
-
- public void open(IMylarContextNode node) {
- String handle = node.getElementHandle();
- String bugHandle = handle;
- String server =handle.substring(0, handle.indexOf(";"));
-
- handle = handle.substring(handle.indexOf(";") + 1);
- int next = handle.indexOf(";");
-
- int bugId;
- int commentNumer = -1;
- if(next == -1){
- bugId = Integer.parseInt(handle);
- }
- else{
- bugId = Integer.parseInt(handle.substring(0, handle.indexOf(";")));
- commentNumer = Integer.parseInt(handle.substring(handle.indexOf(";") + 1));
- bugHandle = bugHandle.substring(0, next);
- }
-
- List<BugzillaOpenStructure> l = new ArrayList<BugzillaOpenStructure>(1);
- l.add(new BugzillaOpenStructure(server, bugId, commentNumer));
-
-// ITask task= MylarTasklistPlugin.getTaskListManager().getTaskForHandle(bugHandle);
-// if (task != null && task instanceof BugzillaTask) {
-// BugzillaTask bugzillaTask = (BugzillaTask)task;
-// bugzillaTask.openTask(commentNumer);
-// } else {
- // open the bug in the editor
- ViewBugzillaAction viewBugs = new ViewBugzillaAction("Display bugs in editor", l);
- viewBugs.schedule();
-// }
- }
-
- public ILabelProvider getLabelProvider() {
- return labelProvider;
- }
-
- public void close(IMylarContextNode node) {
- IWorkbenchPage page = Workbench.getInstance().getActiveWorkbenchWindow().getActivePage();
- if (page != null) {
- IEditorReference[] references = page.getEditorReferences();
- for (int i = 0; i < references.length; i++) {
- IEditorPart part = references[i].getEditor(false);
- if (part != null) {
- if (part instanceof AbstractBugEditor) {
- ((AbstractBugEditor)part).close();
- } else if(part instanceof BugzillaTaskEditor){
- ((BugzillaTaskEditor)part).close();
- }
- }
- }
- }
- }
-
- public boolean acceptsEditor(IEditorPart editorPart) {
- return editorPart instanceof AbstractBugEditor;
- }
-
- public List<TreeViewer> getTreeViewers(IEditorPart editor) {
- ArrayList<TreeViewer> outlines = new ArrayList<TreeViewer>(1);
- TreeViewer outline = getOutlineTreeViewer(editor);
- if (outline != null) {
- outlines.add(outline);
- return outlines;
- } else {
- return Collections.emptyList();
- }
- }
-
- protected TreeViewer getOutlineTreeViewer(IEditorPart editor) {
- if(editor instanceof AbstractBugEditor){
- AbstractBugEditor abe = (AbstractBugEditor)editor;
- BugzillaOutlinePage outline = abe.getOutline();
- if(outline != null) return outline.getOutlineTreeViewer();
- }
- return null;
- }
-
- public void refreshOutline(Object element, boolean updateLabels) {
- IEditorPart editorPart = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
- TreeViewer treeViewer = getOutlineTreeViewer(editorPart);
- if (treeViewer != null) {
- treeViewer.refresh(true);
-
- treeViewer.expandAll();
- }
- }
-
- public ImageDescriptor getIconForRelationship(String relationshipHandle) {
- return MylarImages.EDGE_REF_BUGZILLA;
-
- }
-
- public String getNameForRelationship(String relationshipHandle) {
- return BugzillaReferencesProvider.NAME;
- }
-}
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/MylarBugzillaPlugin.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/MylarBugzillaPlugin.java
deleted file mode 100644
index c98b50c48..000000000
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/MylarBugzillaPlugin.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugs;
-
-import java.util.List;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.mylar.bugs.search.BugzillaReferencesProvider;
-import org.eclipse.mylar.core.AbstractRelationshipProvider;
-import org.eclipse.mylar.core.MylarPlugin;
-import org.eclipse.mylar.ui.MylarUiPlugin;
-import org.eclipse.ui.IStartup;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class MylarBugzillaPlugin extends AbstractUIPlugin implements IStartup {
-
- private static BugzillaMylarBridge bridge = null;
- private BugzillaStructureBridge structureBridge;
- private static BugzillaReferencesProvider referencesProvider = new BugzillaReferencesProvider();
- private static MylarBugzillaPlugin plugin;
-
- public MylarBugzillaPlugin() {
- plugin = this;
- }
-
- public void earlyStartup() {
- final IWorkbench workbench = PlatformUI.getWorkbench();
- workbench.getDisplay().asyncExec(new Runnable() {
- public void run() {
- structureBridge = new BugzillaStructureBridge();
-
- MylarPlugin.getDefault().addBridge(structureBridge);
- MylarUiPlugin.getDefault().addAdapter(BugzillaStructureBridge.EXTENSION, new BugzillaUiBridge());
- MylarPlugin.getDefault().getSelectionMonitors().add(new BugzillaEditingMonitor());
-
- IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
- if (window != null) {
- // create a new bridge and initialize it
- bridge = new BugzillaMylarBridge();
- }
- }
- });
- }
-
- /**
- * This method is called upon plug-in activation
- */
- public void start(BundleContext context) throws Exception {
- super.start(context);
- }
-
- /**
- * This method is called when the plug-in is stopped
- */
- public void stop(BundleContext context) throws Exception {
- super.stop(context);
- plugin = null;
-
- List<AbstractRelationshipProvider> providers = structureBridge.getProviders();
- if(providers != null){
- for(AbstractRelationshipProvider provider: providers){
- provider.stopAllRunningJobs();
- }
- }
- }
-
- /**
- * Returns the shared instance.
- */
- public static MylarBugzillaPlugin getDefault() {
- return plugin;
- }
-
- /**
- * Returns an image descriptor for the image file at the given
- * plug-in relative path.
- *
- * @param path the path
- * @return the image descriptor
- */
- public static ImageDescriptor getImageDescriptor(String path) {
- return AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.mylar.bugs.bridge", path);
- }
-
- public static BugzillaMylarBridge getBridge() {
- // make sure that the bridge initialized, if not, make a new one
- if (bridge == null) {
- bridge = new BugzillaMylarBridge();
- }
- return bridge;
- }
-
-
- public BugzillaStructureBridge getStructureBridge() {
- return structureBridge;
- }
-
- public static BugzillaReferencesProvider getReferenceProvider() {
- return referencesProvider;
-
- }
-}
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/java/BugzillaHyperLink.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/java/BugzillaHyperLink.java
deleted file mode 100644
index 7b5e0135b..000000000
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/java/BugzillaHyperLink.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugs.java;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.mylar.bugzilla.core.BugzillaPlugin;
-import org.eclipse.mylar.bugzilla.ui.BugzillaOpenStructure;
-import org.eclipse.mylar.bugzilla.ui.ViewBugzillaAction;
-
-public class BugzillaHyperLink implements IHyperlink {
-
- private IRegion region;
-
- private int id;
-
- public BugzillaHyperLink(IRegion nlsKeyRegion, int id) {
- this.region = nlsKeyRegion;
- this.id = id;
- }
-
- public IRegion getHyperlinkRegion() {
- return region;
- }
-
- public String getTypeLabel() {
- return null;
- }
-
- public String getHyperlinkText() {
- return null;
- }
-
- public void open() {
- List<BugzillaOpenStructure> l = new ArrayList<BugzillaOpenStructure>(1);
- l.add(new BugzillaOpenStructure(BugzillaPlugin.getDefault().getServerName(),id, -1));
- new ViewBugzillaAction("Open Bug " + id, l).run(new NullProgressMonitor());
- }
-
-}
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/java/BugzillaHyperLinkDetector.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/java/BugzillaHyperLinkDetector.java
deleted file mode 100644
index 05c1b936a..000000000
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/java/BugzillaHyperLinkDetector.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylar.bugs.java;
-
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.dom.ASTNode;
-import org.eclipse.jdt.core.dom.Block;
-import org.eclipse.jdt.core.dom.Comment;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jdt.core.dom.TextElement;
-import org.eclipse.jdt.internal.corext.dom.NodeFinder;
-import org.eclipse.jdt.internal.ui.JavaPlugin;
-import org.eclipse.jdt.internal.ui.javaeditor.ASTProvider;
-import org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor;
-import org.eclipse.jdt.internal.ui.javaeditor.IClassFileEditorInput;
-import org.eclipse.jdt.internal.ui.javaeditor.JavaEditor;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.mylar.core.MylarPlugin;
-import org.eclipse.mylar.java.ui.editor.AbstractMylarHyperlinkDetector;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.texteditor.ITextEditor;
-/**
- * @author Shawn Minto
- *
- */
-public class BugzillaHyperLinkDetector extends AbstractMylarHyperlinkDetector {
-
-
- public BugzillaHyperLinkDetector() {
- super();
- }
-
- @SuppressWarnings("unchecked")
- public IHyperlink[] detectHyperlinks(ITextViewer textViewer, IRegion region, boolean canShowMultipleHyperlinks) {
- ITextEditor textEditor = getEditor();
- if (region == null || textEditor == null || canShowMultipleHyperlinks || !(textEditor instanceof JavaEditor))
- return null;
-
- IEditorSite site= textEditor.getEditorSite();
- if (site == null)
- return null;
-
- IJavaElement javaElement= getInputJavaElement(textEditor);
- if (javaElement == null)
- return null;
-
- CompilationUnit ast= JavaPlugin.getDefault().getASTProvider().getAST(javaElement, ASTProvider.WAIT_NO, null);
- if (ast == null)
- return null;
-
- ASTNode node= NodeFinder.perform(ast, region.getOffset(), 1);
-
- if (node == null || !(node instanceof TextElement || node instanceof Block))
- return null;
-
- String comment = null;
- int commentStart = -1;
-
- if(node instanceof TextElement){
- TextElement element = (TextElement)node;
- comment = element.getText();
- commentStart = element.getStartPosition();
- } else if(node instanceof Block){
- Comment c = findComment(ast.getCommentList(), region.getOffset(), 1);
- if(c != null){
- try{
- IDocument document= textEditor.getDocumentProvider().getDocument(textEditor.getEditorInput());
- String commentString = document.get(c.getStartPosition(), c.getLength());
- comment = getStringFromComment(c, region.getOffset(), commentString);
- commentStart = getLocationFromComment(c, comment, commentString) + c.getStartPosition();
- } catch (BadLocationException e){
- MylarPlugin.log(e, "Failed to get text for comment");
- }
- }
- }
-
- if(comment == null)
- return null;
-
- int startOffset= region.getOffset();
- int endOffset= startOffset + region.getLength();
-
- Pattern p = Pattern.compile("^.*bug\\s+\\d+.*");
- Matcher m = p.matcher(comment.toLowerCase().trim());
- boolean b = m.matches();
-
- p = Pattern.compile("^.*bug#\\s+\\d+.*");
- m = p.matcher(comment.toLowerCase().trim());
- boolean b2 = m.matches();
-
- p = Pattern.compile("^.*bug\\s#\\d+.*");
- m = p.matcher(comment.toLowerCase().trim());
- boolean b3 = m.matches();
-
- p = Pattern.compile("^.*bug#\\d+.*");
- m = p.matcher(comment.toLowerCase().trim());
- boolean b4 = m.matches();
-
- // XXX walk forward from where we are
- if(b || b2 || b3 || b4){
-
- int start = comment.toLowerCase().indexOf("bug");
- int ahead = 4;
- if(b2 || b3 || b4){
- int pound = comment.toLowerCase().indexOf("#", start);
- ahead = pound - start + 1;
- }
- String endComment = comment.substring(start+ahead, comment.length());
- endComment = endComment.trim();
- int endCommentStart = comment.indexOf(endComment);
-
- int end = comment.indexOf(" ", endCommentStart);
- int end2 = comment.indexOf(":", endCommentStart);
-
- if((end2 < end && end2 != -1) || (end == -1 && end2 != -1)){
- end = end2;
- }
-
- if(end == -1)
- end = comment.length();
-
- try{
- int bugId = Integer.parseInt(comment.substring(endCommentStart, end).trim());
-
-
- start += commentStart;
- end += commentStart;
-
- if(startOffset >= start && endOffset <= end){
- IRegion sregion= new Region(start, end-start);
- return new IHyperlink[] {new BugzillaHyperLink(sregion, bugId)};
- }
- } catch (NumberFormatException e){
- return null;
- }
- }
- return null;
- }
-
- private int getLocationFromComment(Comment c, String commentLine, String commentString) {
- if(commentLine == null){
- return -1;
- } else {
- return commentString.indexOf(commentLine);
- }
- }
-
- private String getStringFromComment(Comment comment, int desiredOffset, String commentString) {
- String [] parts = commentString.split("\n");
- if(parts.length > 1){
- int offset = comment.getStartPosition();
- for(String part: parts){
- int newOffset = offset + part.length() + 1;
- if(desiredOffset >= offset && desiredOffset <= newOffset){
- return part;
- }
-
- }
- } else {
- return commentString;
- }
-
- return null;
- }
-
- private Comment findComment(List<Comment> commentList, int offset, int i) {
- for(Comment comment: commentList){
- if(comment.getStartPosition() <= offset && (comment.getStartPosition() + comment.getLength() >= offset + i)){
- return comment;
- }
- }
- return null;
- }
-
- private IJavaElement getInputJavaElement(ITextEditor editor) {
- IEditorInput editorInput= editor.getEditorInput();
- if (editorInput instanceof IClassFileEditorInput)
- return ((IClassFileEditorInput)editorInput).getClassFile();
-
- if (editor instanceof CompilationUnitEditor)
- return JavaPlugin.getDefault().getWorkingCopyManager().getWorkingCopy(editorInput);
-
- return null;
- }
-}
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/search/BugzillaMylarSearch.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/search/BugzillaMylarSearch.java
deleted file mode 100644
index f167a9b1b..000000000
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/search/BugzillaMylarSearch.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-/*
- * Created on Oct 13, 2004
- */
-package org.eclipse.mylar.bugs.search;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IMember;
-import org.eclipse.mylar.bugs.BugzillaMylarBridge;
-import org.eclipse.mylar.bugzilla.ui.tasklist.BugzillaReportNode;
-import org.eclipse.mylar.core.InterestComparator;
-import org.eclipse.mylar.core.search.IActiveSearchListener;
-import org.eclipse.mylar.core.search.IMylarSearchOperation;
-
-
-/**
- * Used to facilitate bugzilla searches based on IJavaElements
- *
- * @author Shawn Minto
- */
-public class BugzillaMylarSearch implements IMylarSearchOperation {
-
- // scope identifiers
- public static final int LOCAL_QUAL = 1; // local implies a bugzilla task, not just an offline report
- public static final int LOCAL_UNQUAL = 2;
- public static final int FULLY_QUAL = 3;
- public static final int UNQUAL = 4;
-
- private int scope;
-
- private IJavaElement element;
-
- private String handle = "";
-
- /**
- * Constructor
- * @param scope The scope of this search
- */
- public BugzillaMylarSearch(int scope, IJavaElement element) {
- this.scope = scope;
- this.element = element;
- }
-
- public IStatus run(IProgressMonitor monitor) {
- handle = element.getHandleIdentifier() + " " + scope;
- List<IJavaElement> landmarks = new ArrayList<IJavaElement>();
- landmarks.add(element);
-
- if (!BugzillaMylarBridge.doesJobExist(handle)) {
-
- // perform the bugzilla search
- // get only the useful landmarks (IMember)
- List<IMember> members = getMemberLandmarks(landmarks);
-
- // go through all of the landmarks that we are given and perform a
- // search on them
- for(IMember m : members){
-
- // FIXME: decide whether to do leave the caching of searches in for now or not
- // check if we have the info cached
-// List<BugzillaReportNode> landmarkDoi = MylarTasklistPlugin.getBridge()
-// .getFromLandmarksHash(m, scope);
-
-// if (landmarkDoi != null) {
-// //TODO decide when to queue up and do a refresh search
-// notifySearchCompleted(landmarkDoi);
-// continue;
-// }
-
- // create a search operation so that we can search
- BugzillaMylarSearchOperation op = new BugzillaMylarSearchOperation(
- this, m, scope);
-
- // create a new search job so that it can be scheduled and
- // run as a background thread
- Job searchJob = new BugzillaMylarSearchJob(
- "Querying Bugzilla Server - Mylar - "
- + op.getSearchMemberName(), op);
-
- // schedule the new search job
- searchJob.schedule();
-
- // save this searchJobs handle so that we can cancel it if need be
- BugzillaMylarBridge.addJob(handle, searchJob);
- }
- }
- return Status.OK_STATUS;
- }
-
- /** List of listeners wanting to know about the searches */
- private List<IActiveSearchListener> listeners = new ArrayList<IActiveSearchListener>();
-
- /**
- * Add a listener for when the bugzilla search is completed
- *
- * @param l
- * The listener to add
- */
- public void addListener(IActiveSearchListener l) {
- // add the listener to the list
- listeners.add(l);
- }
-
- /**
- * Remove a listener for when the bugzilla search is completed
- *
- * @param l
- * The listener to remove
- */
- public void removeListener(IActiveSearchListener l) {
- // remove the listener from the list
- listeners.remove(l);
- }
-
- /**
- * Notify all of the listeners that the bugzilla search is completed
- *
- * @param doiList
- * A list of BugzillaSearchHitDoiInfo
- * @param member
- * The IMember that the search was performed on
- */
- public void notifySearchCompleted(List<BugzillaReportNode> doiList) {
- // go through all of the listeners and call searchCompleted(colelctor,
- // member)
- BugzillaMylarBridge.removeSearchJob(handle);
- for (IActiveSearchListener listener : listeners) {
- listener.searchCompleted(doiList);
- }
- }
-
- /**
- * Get only the landmarks that are IMember and sort them according to their
- * DOI value (highest to lowest)
- *
- * @param landmarks
- * The landmarks to check
- * @return List of IMember landmarks sorted by DOI value
- */
- public static List<IMember> getMemberLandmarks(List<IJavaElement> landmarks) {
- List<IMember> memberLandmarks = new ArrayList<IMember>();
-
- for(IJavaElement je : landmarks) {
-
- // keep only the IMember landmarks
- if (je instanceof IMember) {
- memberLandmarks.add((IMember)je);
- }
- }
-
- // sort the landmarks
- Collections.sort(memberLandmarks, new InterestComparator<IMember>());
-
- return memberLandmarks;
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/search/BugzillaMylarSearchJob.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/search/BugzillaMylarSearchJob.java
deleted file mode 100644
index 5c80db9bf..000000000
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/search/BugzillaMylarSearchJob.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-/*
- * Created on Oct 6, 2004
- */
-package org.eclipse.mylar.bugs.search;
-
-import javax.security.auth.login.LoginException;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.mylar.bugs.BugzillaMylarBridge;
-import org.eclipse.mylar.bugzilla.core.BugzillaPlugin;
-import org.eclipse.mylar.bugzilla.core.IBugzillaConstants;
-import org.eclipse.ui.PlatformUI;
-
-
-/**
- * The bugzilla search job used to search a bugzilla site
- *
- * @author Shawn Minto
- */
-public class BugzillaMylarSearchJob extends Job {
-
- /** The search operation used to perform the query */
- private BugzillaMylarSearchOperation operation;
-
- /**
- * Constructor
- *
- * @param name
- * Job name
- * @param operation
- * The operation to perform the search query
- */
- public BugzillaMylarSearchJob(String name,
- BugzillaMylarSearchOperation operation) {
- super(name);
- this.operation = operation;
- }
-
- @Override
- protected IStatus run(IProgressMonitor monitor) {
- // create a new status
- final IStatus[] status = new IStatus[1];
-
- try {
- // execute the search operation
- operation.execute(monitor);
-
- // get the status of the search operation
- status[0] = operation.getStatus();
-
- // determine if there was an error, if it was cancelled, or if it is
- // ok
- if ( status[0].getCode() == IStatus.CANCEL) {
- // it was cancelled, so just return
- status[0] = Status.OK_STATUS;
-
- // make sure that we know this job is not running anymore
- BugzillaMylarBridge.removeSearchJob(operation.getSearchMember().getHandleIdentifier()+" "+operation.getScope());//runningJobs.remove(operation.getSearchMember());
- return status[0];
- } else if (!status[0].isOK()) {
- // there was an error, so display an error message
- PlatformUI.getWorkbench().getDisplay().asyncExec(
- new Runnable() {
- public void run() {
- ErrorDialog.openError(null,
- "Bugzilla Search Error", null,
- status[0]);
- }
- });
- status[0] = Status.OK_STATUS;
-
- // make sure we know that this job is not running anymore
- BugzillaMylarBridge.removeSearchJob(operation.getSearchMember().getHandleIdentifier()+" "+operation.getScope());//runningJobs.remove(operation.getSearchMember());
- return status[0];
- }
- } catch (LoginException e) {
- // we had a problem while searching that seems like a login info
- // problem
- // thrown in BugzillaSearchOperation
- MessageDialog
- .openError(
- null,
- "Login Error",
- "Bugzilla could not log you in to get the information you requested since login name or password is incorrect.\nPlease check your settings in the bugzilla preferences. ");
- BugzillaPlugin.log(new Status(IStatus.ERROR,
- IBugzillaConstants.PLUGIN_ID, IStatus.OK, "", e));
- } finally {
- // make sure that we know that this job is not running anymore
- BugzillaMylarBridge.removeSearchJob(operation.getSearchMember().getHandleIdentifier()+" "+operation.getScope());//.runningJobs.remove(operation.getSearchMember());
- }
-
- return status[0];
- }
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/search/BugzillaMylarSearchOperation.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/search/BugzillaMylarSearchOperation.java
deleted file mode 100644
index 108d6f069..000000000
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/search/BugzillaMylarSearchOperation.java
+++ /dev/null
@@ -1,526 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-/*
- * Created on Oct 14, 2004
- */
-package org.eclipse.mylar.bugs.search;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.security.auth.login.LoginException;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IMember;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.mylar.bugs.MylarBugzillaPlugin;
-import org.eclipse.mylar.bugzilla.core.BugReport;
-import org.eclipse.mylar.bugzilla.core.Comment;
-import org.eclipse.mylar.bugzilla.core.search.BugzillaSearchEngine;
-import org.eclipse.mylar.bugzilla.core.search.BugzillaSearchHit;
-import org.eclipse.mylar.bugzilla.core.search.BugzillaSearchQuery;
-import org.eclipse.mylar.bugzilla.core.search.IBugzillaSearchOperation;
-import org.eclipse.mylar.bugzilla.ui.search.BugzillaResultCollector;
-import org.eclipse.mylar.bugzilla.ui.tasklist.BugzillaReportNode;
-import org.eclipse.mylar.bugzilla.ui.tasklist.BugzillaTask;
-import org.eclipse.mylar.bugzilla.ui.tasklist.StackTrace;
-import org.eclipse.mylar.core.MylarPlugin;
-import org.eclipse.mylar.tasklist.ITask;
-import org.eclipse.mylar.tasklist.MylarTasklistPlugin;
-import org.eclipse.mylar.tasklist.internal.TaskCategory;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-
-/**
- * Bugzilla search operation for Mylar
- *
- * @author Shawn Minto
- */
-public class BugzillaMylarSearchOperation extends WorkspaceModifyOperation
- implements IBugzillaSearchOperation {
-
- /** The IMember we are doing the search for */
- private IMember javaElement;
-
- /** The bugzilla collector for the search */
- private BugzillaResultCollector collector = null;
-
- /** The status of the search operation */
- private IStatus status;
-
- /** The LoginException that was thrown when trying to do the search */
- private LoginException loginException = null;
-
- /** The fully qualified name of the member we are searching for */
- private String name;
-
- /** The bugzilla search query */
- private BugzillaSearchQuery query;
-
- private BugzillaMylarSearch search;
-
- private int scope;
-
- /**
- * Constructor
- *
- * @param m
- * The member that we are doing the search for
- */
- public BugzillaMylarSearchOperation(BugzillaMylarSearch search, IMember m, int scope) {
- this.javaElement = m;
- this.search = search;
- this.scope = scope;
- name = getFullyQualifiedName(m);
- }
-
- /**
- * Get the fully qualified name of a IMember
- * TODO: move to a more central location so that others can use this, but don't want to add unecessary coupling
- *
- * @return String representing the fully qualified name
- */
- public static String getFullyQualifiedName(IJavaElement je) {
- if(!(je instanceof IMember)) return null;
-
- IMember m = (IMember)je;
- if (m.getDeclaringType() == null)
- return ((IType) m).getFullyQualifiedName();
- else
- return m.getDeclaringType().getFullyQualifiedName() + "."
- + m.getElementName();
- }
-
- @Override
- public void execute(IProgressMonitor monitor) {
-
- BugzillaResultCollector searchCollector = null;
-
- if(scope == BugzillaMylarSearch.FULLY_QUAL){
- searchCollector = searchQualified(monitor);
- }else if(scope == BugzillaMylarSearch.UNQUAL){
- searchCollector = searchUnqualified(monitor);
- }else if(scope == BugzillaMylarSearch.LOCAL_QUAL){
- searchCollector = searchLocalQual(monitor);
- }else if(scope == BugzillaMylarSearch.LOCAL_UNQUAL){
- searchCollector = searchLocalUnQual(monitor);
- }else{
- return;
- }
-
- if(searchCollector == null){
- search.notifySearchCompleted(
- new ArrayList<BugzillaReportNode>());
- return;
- }
-
- List<BugzillaSearchHit> l = searchCollector.getResults();
-
- // get the list of doi elements
- List<BugzillaReportNode> doiList = getDoiList(l);
-
- // we completed the search, so notify all of the listeners
- // that the search has been completed
- MylarBugzillaPlugin.getBridge().addToLandmarksHash(doiList, javaElement, scope);
- search.notifySearchCompleted(
- doiList);
- // MIK: commmented out logging
-// MonitorPlugin.log(this, "There were " + doiList.size() + " items found");
- }
-
- /**
- * Search the local bugs for the member using the qualified name
- * @param monitor The progress monitor to search with
- * @return The BugzillaResultCollector with the results of the search
- */
- private BugzillaResultCollector searchLocalQual(IProgressMonitor monitor) {
-
- //get the fully qualified name for searching
- String elementName = getFullyQualifiedName(javaElement);
-
- // setup the search result collector
- collector = new BugzillaResultCollector();
- collector.setOperation(this);
- collector.setProgressMonitor(monitor);
-
- // get all of the root tasks and start the search
- List<ITask> tasks = MylarTasklistPlugin.getTaskListManager().getTaskList().getRootTasks();
- searchLocal(tasks, collector, elementName, monitor);
- for (TaskCategory cat : MylarTasklistPlugin.getTaskListManager().getTaskList().getTaskCategories()) {
- searchLocal(cat.getChildren(), collector, elementName, monitor);
- }
-
- // return the collector
- return collector;
- }
-
- /**
- * Search the local bugs for the member using the unqualified name
- * @param monitor The progress monitor to search with
- * @return The BugzillaResultCollector with the results of the search
- */
- private BugzillaResultCollector searchLocalUnQual(IProgressMonitor monitor) {
-
- // get the element name for searching
- String elementName = javaElement.getElementName();
-
- // setup the search result collector
- collector = new BugzillaResultCollector();
- collector.setOperation(this);
- collector.setProgressMonitor(monitor);
-
- // get all of the root tasks and start the search
- List<ITask> tasks = MylarTasklistPlugin.getTaskListManager().getTaskList().getRootTasks();
- searchLocal(tasks, collector, elementName, monitor);
- for (TaskCategory cat : MylarTasklistPlugin.getTaskListManager().getTaskList().getTaskCategories()) {
- searchLocal(cat.getChildren(), collector, elementName, monitor);
- }
- // return the collector
- return collector;
- }
-
- /**
- * Search the local bugs for the member
- * @param tasks The tasks to search
- * @param searchCollector The collector to add the results to
- * @param elementName The name of the element that we are looking for
- * @param monitor The progress monitor
- */
- private void searchLocal(List<ITask> tasks, BugzillaResultCollector searchCollector, String elementName, IProgressMonitor monitor) {
- if(tasks == null) return;
-
- // go through all of the tasks
- for(ITask task : tasks){
- monitor.worked(1);
-
- // check what kind of task it is
- if(task instanceof BugzillaTask){
-
- // we have a bugzilla task, so get the bug report
- BugzillaTask bugTask = (BugzillaTask)task;
- BugReport bug = bugTask.getBugReport();
-
- // parse the bug report for the element that we are searching for
- boolean isHit = search(elementName, bug);
-
- // determine if we have a hit or not
- if(isHit){
-
- // make a search hit from the bug and then add it to the collector
- BugzillaSearchHit hit = new BugzillaSearchHit(bug.getId(), bug.getDescription(), "","","","","","","", bug.getServer());
- try{
- searchCollector.accept(hit);
- }catch(CoreException e){
- MylarPlugin.log(e, "bug search failed");
- }
- }
- }
- }
- status = Status.OK_STATUS;
- }
-
- /**
- * Search the bug for the given element name
- * @param elementName The name of the element to search for
- * @param bug The bug to search in
- */
- private boolean search(String elementName, BugReport bug) {
-
- if (bug == null) return false; // MIK: added null check here
- String description = bug.getDescription();
- String summary = bug.getSummary();
- List<Comment> comments = bug.getComments();
-
- // search the description and the summary
- if(Util.hasElementName(elementName, summary))
- return true;
-
- if(Util.hasElementName(elementName, description))
- return true;
-
- Iterator<Comment> comItr = comments.iterator();
- while (comItr.hasNext()) {
- Comment comment = comItr.next();
- String commentText = comment.getText();
- // search the text for a reference to the element
- if(Util.hasElementName(elementName, commentText))
- return true;
- }
- return false;
- }
-
- /**
- * Perform the actual search on the Bugzilla server
- * @param url The url to use for the search
- * @param searchCollector The collector to put the search results into
- * @param monitor The progress monitor to use for the search
- * @return The BugzillaResultCollector with the search results
- */
- private BugzillaResultCollector search(String url, BugzillaResultCollector searchCollector, IProgressMonitor monitor){
-
- // set the initial number of matches to 0
- int matches = 0;
- // setup the progress monitor and start the search
- searchCollector.setProgressMonitor(monitor);
- BugzillaSearchEngine engine = new BugzillaSearchEngine(url);
- try {
-
- // perform the search
- status = engine.search(searchCollector, matches);
-
- // check the status so that we don't keep searching if there
- // is a problem
- if (status.getCode() == IStatus.CANCEL) {
- return null;
- } else if (!status.isOK()) {
- MylarPlugin.log("search error", this);
- MylarPlugin.log(status);
- return null;
- }
- return searchCollector;
- } catch (LoginException e) {
- //save this exception to throw later
- this.loginException = e;
- }
- return null;
- }
-
- /**
- * Perform a search for qualified instances of the member
- * @param monitor The progress monitor to use
- * @return The BugzillaResultCollector with the search results
- */
- private BugzillaResultCollector searchQualified(IProgressMonitor monitor)
- {
- // create a new collector for the results
- collector = new BugzillaResultCollector();
- collector.setOperation(this);
- collector.setProgressMonitor(monitor);
-
- // get the search url
- String url = Util.getExactSearchURL(javaElement);
-
- // log the url that we are searching with
- // MIK: commmented out logging
-// MonitorPlugin.log(this, url);
-
- return search(url, collector, monitor);
- }
-
- /**
- * Perform a search for unqualified instances of the member
- * @param monitor The progress monitor to use
- * @return The BugzillaResultCollector with the search results
- */
- private BugzillaResultCollector searchUnqualified(IProgressMonitor monitor)
- {
- // create a new collector for the results
- collector = new BugzillaResultCollector();
- collector.setOperation(this);
- collector.setProgressMonitor(monitor);
-
- // get the search url
- String url = Util.getInexactSearchURL(javaElement);
-
- // log the url that we are searching with
- // MIK: commmented out logging
-// MonitorPlugin.log(this, url);
-
- return search(url, collector, monitor);
- }
-
-// /**
-// * Remove all of the duplicates
-// * @param compare The List of BugzillaSearchHits to compare with
-// * @param base The List of BugzillaSearchHits to remove the duplicates from
-// */
-// private void removeDuplicates(List<BugzillaSearchHit> compare, List<BugzillaSearchHit> base){
-//
-// for(BugzillaSearchHit h1 : compare){
-// Iterator itr2 = base.iterator();
-// while(itr2.hasNext()){
-// BugzillaSearchHit h2 = (BugzillaSearchHit)itr2.next();
-// if(h2.getId() == h1.getId()){
-// // we found a duplicate so remove it
-// itr2.remove();
-// break;
-// }
-// }
-// }
-// }
-//
- /**
- * Perform a second pass parse to determine if there are any stack traces in
- * the bug - currently only used for the exact search results
- *
- * @param doiList -
- * the list of BugzillaSearchHitDOI elements to parse
- */
- public static void secondPassBugzillaParser(List<BugzillaReportNode> doiList) {
-
- // go through each of the items in the doiList
- for(BugzillaReportNode info : doiList) {
-
- // get the bug report so that we have all of the data
- // - descriptions, comments, etc
- BugReport b = null;
- try{
- b = info.getBug();
- }catch(Exception e){
- // don't care since null will be caught
- }
-
- // if the report could not be downloaded, try the next one
- if (b == null)
- continue;
-
- // see if the description has a stack trace in it
- StackTrace[] stackTrace = StackTrace.getStackTrace(b.getDescription(), b.getDescription());
- if (stackTrace != null) {
-
- // add the stack trace to the doi info
- info.setExact(true);
- info.addStackTraces(stackTrace);
- }
-
- // go through all of the comments for the bug
- Iterator<Comment> comItr = b.getComments().iterator();
- while (comItr.hasNext()) {
- Comment comment = comItr.next();
- String commentText = comment.getText();
-
- // see if the comment has a stack trace in it
- stackTrace = StackTrace.getStackTrace(commentText, comment);
- if (stackTrace != null) {
-
- // add the stack trace to the doi info
- info.setExact(true);
- info.addStackTraces(stackTrace);
- }
- }
- }
- }
-
- /**
- * Add the results returned to the Hash of landmarks
- *
- * @param results
- * The list of results
- * @param isExact
- * whether the search was exact or not
- */
- private List<BugzillaReportNode> getDoiList(List<BugzillaSearchHit> results) {
- List<BugzillaReportNode> doiList = new ArrayList<BugzillaReportNode>();
-
- boolean isExact = (scope==BugzillaMylarSearch.FULLY_QUAL || scope==BugzillaMylarSearch.LOCAL_QUAL)?true:false;
-
- BugzillaReportNode info = null;
- // go through all of the results and create a DoiInfo list
- for(BugzillaSearchHit hit : results){
-
- try {
- float value = 0;
- info = new BugzillaReportNode(
- value, hit, isExact);
-
- // only download the bug for the exact matches
- //downloading bugs kills the time - can we do this elsewhere? - different thread? persistant?
-// if(isExact){
-// // get the bug report for the doi info item
-// BugReport b = BugzillaRepository.getInstance().getBug(
-// hit.getId());
-// // add the bug to the doi info for future use
-// info.setBug(b);
-// }
-
- } catch (Exception e) {
- MylarPlugin.log(e, "search failed");
- }
- finally{
- doiList.add(info);
- }
- }
- return doiList;
- }
-
- /**
- * @see org.eclipse.mylar.bugs.core.search.IBugzillaSearchOperation#getStatus()
- */
- public IStatus getStatus() throws LoginException {
- // if a LoginException was thrown while trying to search, throw this
- if (loginException == null)
- return status;
- else
- throw loginException;
- }
-
- /**
- * @see org.eclipse.mylar.bugs.core.search.IBugzillaSearchOperation#getImageDescriptor()
- */
- public ImageDescriptor getImageDescriptor() {
- return null;
- }
-
- /**
- * Get the member that we are performing the search for
- *
- * @return The member this search is being performed for
- */
- public IMember getSearchMember() {
- return javaElement;
- }
-
- /**
- * Get the name of the member that we are searching for
- *
- * @return The fully qualified name of the member
- */
- public String getSearchMemberName() {
- return name;
- }
-
- /**
- * @see org.eclipse.mylar.bugs.core.search.IBugzillaSearchOperation#getQuery()
- */
- public BugzillaSearchQuery getQuery() {
- return query;
- }
-
- /**
- * @see org.eclipse.mylar.bugs.core.search.IBugzillaSearchOperation#setQuery(org.eclipse.mylar.bugs.core.search.BugzillaSearchQuery)
- */
- public void setQuery(BugzillaSearchQuery newQuery) {
- this.query = newQuery;
- }
-
- /**
- * Get the name of the element that we are searching for
- *
- * @return The name of the element
- */
- public String getName(){
- return name;
- }
-
- /**
- * Get the scope of the search operation
- * @return The scope - defined in BugzillaMylarSearch
- */
- public int getScope() {
- return scope;
- }
-} \ No newline at end of file
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/search/BugzillaReferencesProvider.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/search/BugzillaReferencesProvider.java
deleted file mode 100644
index 261c172a7..000000000
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/search/BugzillaReferencesProvider.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-/*
- * Created on Feb 2, 2005
- */
-package org.eclipse.mylar.bugs.search;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IMember;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.mylar.bugs.BugzillaMylarBridge;
-import org.eclipse.mylar.bugs.BugzillaStructureBridge;
-import org.eclipse.mylar.bugs.MylarBugzillaPlugin;
-import org.eclipse.mylar.bugzilla.ui.tasklist.BugzillaReportNode;
-import org.eclipse.mylar.core.AbstractRelationshipProvider;
-import org.eclipse.mylar.core.IMylarContextNode;
-import org.eclipse.mylar.core.search.IActiveSearchListener;
-import org.eclipse.mylar.core.search.IMylarSearchOperation;
-import org.eclipse.ui.PlatformUI;
-
-
-/**
- * @author Shawn Minto
- */
-public class BugzillaReferencesProvider extends AbstractRelationshipProvider {
-
- public static final String ID = "org.eclipse.mylar.bugs.search.references";
- public static final String NAME = "Bugilla report references";
-
- public BugzillaReferencesProvider() {
- super(BugzillaStructureBridge.EXTENSION, ID);
- }
-
- protected boolean acceptElement(IJavaElement javaElement) {
- return javaElement != null
- && (javaElement instanceof IMember || javaElement instanceof IType) && javaElement.exists();
- }
-
- /**
- * HACK: checking kind as string - don't want the dependancy to mylar.java
- */
- @Override
- protected void findRelated(final IMylarContextNode node, int degreeOfSeparation) {
- if (!node.getStructureKind().equals("java")) return;
- IJavaElement javaElement = JavaCore.create(node.getElementHandle());
- if (!acceptElement(javaElement)) {
- return;
- }
- runJob(node, degreeOfSeparation);
- }
-
- @Override
- public IMylarSearchOperation getSearchOperation(IMylarContextNode node, int limitTo, int degreeOfSepatation) {
- IJavaElement javaElement = JavaCore.create(node.getElementHandle());
- return new BugzillaMylarSearch(degreeOfSepatation, javaElement);
- }
-
- private void runJob(final IMylarContextNode node, final int degreeOfSeparation) {
- BugzillaMylarSearch search = (BugzillaMylarSearch)getSearchOperation(node, 0, degreeOfSeparation);
-
- search.addListener(new IActiveSearchListener(){
-
- private boolean gathered = false;
-
- public void searchCompleted(List<?> nodes) {
- Iterator<?> itr = nodes.iterator();
-
- if(MylarBugzillaPlugin.getDefault() == null)
- return;
-
- BugzillaStructureBridge bridge = MylarBugzillaPlugin.getDefault().getStructureBridge();
-
- while(itr.hasNext()) {
- Object o = itr.next();
- if(o instanceof BugzillaReportNode){
- BugzillaReportNode bugzillaNode = (BugzillaReportNode)o;
- final String handle = bugzillaNode.getElementHandle();
- if(bridge.getCached(handle) == null)
- cache(handle, bugzillaNode);
-
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable(){
- public void run() {
- incrementInterest(node, BugzillaStructureBridge.EXTENSION, handle, degreeOfSeparation);
- }
- });
- }
- }
- gathered = true;
- }
-
- public boolean resultsGathered() {
- return gathered;
- }
-
- });
- search.run(new NullProgressMonitor());
- }
-
- @Override
- public String getGenericId() {
- return ID;
- }
-
- @Override
- protected String getSourceId() {
- return ID;
- }
-
- @Override
- public String getName() {
- return NAME;
- }
-
- /*
- *
- * STUFF FOR TEMPORARILY CACHING A PROXY REPORT
- *
- * TODO remove the proxys and update the BugzillaStructureBridge cache so that on restart,
- * we dont have to get all of the bugs
- *
- */
- private static final Map<String, BugzillaReportNode> reports = new HashMap<String, BugzillaReportNode>();
-
- public BugzillaReportNode getCached(String handle){
- return reports.get(handle);
- }
-
- protected void cache(String handle, BugzillaReportNode bugzillaNode) {
- reports.put(handle, bugzillaNode);
- }
-
- public void clearCachedReports(){
- reports.clear();
- }
-
- public Collection<? extends String> getCachedHandles() {
- return reports.keySet();
- }
-
- @Override
- public void stopAllRunningJobs() {
- BugzillaMylarBridge.cancelAllRunningJobs();
-
- }
-}
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/search/Util.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/search/Util.java
deleted file mode 100644
index 47d5821f8..000000000
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/bugs/search/Util.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 - 2005 University Of British Columbia and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-/*
- * Created on Nov 19, 2004
- */
-package org.eclipse.mylar.bugs.search;
-
-import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
-import java.nio.charset.Charset;
-
-import org.eclipse.jdt.core.IMember;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.mylar.bugzilla.core.BugzillaPlugin;
-import org.eclipse.mylar.bugzilla.core.BugzillaPreferences;
-import org.eclipse.mylar.bugzilla.core.IBugzillaConstants;
-
-
-/**
- * Utilities methods for the BugzillaMylarBridge
- *
- * @author Shawn Minto
- */
-public class Util {
-
- /**
- * List of all of the search operations that can be done <br> all words, any words, regex
- */
- private static final String[] patternOperationValues = { "allwordssubstr", "anywordssubstr", "regexp" };
- /**
- * Sugzilla preferences so that we can get the search params
- */
- private static IPreferenceStore prefs = BugzillaPlugin.getDefault().getPreferenceStore();
- /**
- * List of all of the resolutions that we can have <br> FIXED, INVALID, WONTFIX, LATER, REMIND, DUPLICATE, WORKSFORME, MOVED, ---
- */
- private static String[] resolutionValues = BugzillaPreferences.queryOptionsToArray(prefs.getString(IBugzillaConstants.RESOLUTION_VALUES));
- /**
- * List of all of the statuses that we can have <br> UNCONFIRMED, NEW, ASSIGNED, REOPENED, RESOLVED, VERIFIED, CLOSED
- */
- private static String[] statusValues = BugzillaPreferences.queryOptionsToArray(prefs.getString(IBugzillaConstants.STATUS_VALUES));
-
- /**
- * Get the bugzilla url used for searching for exact matches
- *
- * @param je
- * The IMember to create the query string for
- * @return A url string for the search
- */
- public static String getExactSearchURL(IMember je) {
- StringBuffer sb = getQueryURLStart();
-
- String long_desc = "";
-
- // get the fully qualified name of the element
- long_desc += BugzillaMylarSearchOperation.getFullyQualifiedName(je);
-
- try{
- // encode the string to be used as a url
- sb.append(URLEncoder.encode(long_desc, Charset.defaultCharset().toString()));
- } catch (UnsupportedEncodingException e)
- {
- // should never get here since we are using the default encoding
- }
- sb.append(getQueryURLEnd());
-
- return sb.toString();
- }
-
- /**
- * Get the bugzilla url used for searching for inexact matches
- *
- * @param je
- * The IMember to create the query string for
- * @return A url string for the search
- */
- public static String getInexactSearchURL(IMember je) {
- StringBuffer sb = getQueryURLStart();
-
-
- String long_desc = "";
-
- // add the member, qualified with just its parents name
- if (!(je instanceof IType))
- long_desc += je.getParent().getElementName()+".";
- long_desc += je.getElementName();
-
- try{
- // encode the string to be used as a url
- sb.append(URLEncoder.encode(long_desc, Charset.defaultCharset().toString()));
- } catch (UnsupportedEncodingException e)
- {
- // should never get here since we are using the default encoding
- }
- sb.append(getQueryURLEnd());
-
- return sb.toString();
- }
-
- /**
- * Create the end of the bugzilla query URL with all of the status' and resolutions that we want
- * @return StringBuffer with the end of the query URL in it
- */
- public static StringBuffer getQueryURLEnd(){
-
- StringBuffer sb = new StringBuffer();
-
- // add the status and resolutions that we care about
- sb.append("&bug_status=" + statusValues[0]); // UNCONFIRMED
- sb.append("&bug_status=" + statusValues[1]); // NEW
- sb.append("&bug_status=" + statusValues[2]); // ASSIGNED
- sb.append("&bug_status=" + statusValues[3]); // REOPENED
- sb.append("&bug_status=" + statusValues[4]); // RESOLVED
- sb.append("&bug_status=" + statusValues[5]); // VERIFIED
- sb.append("&bug_status=" + statusValues[6]); // CLOSED
-
- sb.append("&resolution=" + resolutionValues[0]); // FIXED
- sb.append("&resolution=" + resolutionValues[3]); // LATER
- sb.append("&resolution=" + "---"); // ---
- return sb;
- }
-
- /**
- * Create the bugzilla query URL start.
- *
- * @return The start of the query url as a StringBuffer <br>
- * Example: https://bugs.eclipse.org/bugs/buglist.cgi?long_desc_type=allwordssubstr&long_desc=
- */
- public static StringBuffer getQueryURLStart() {
- StringBuffer sb = new StringBuffer(BugzillaPlugin.getDefault()
- .getServerName());
-
- if (sb.charAt(sb.length() - 1) != '/') {
- sb.append('/');
- }
- sb.append("buglist.cgi?");
-
- // use the username and password if we have it
- if (BugzillaPreferences.getUserName() != null
- && !BugzillaPreferences.getUserName().equals("")
- && BugzillaPreferences.getPassword() != null
- && !BugzillaPreferences.getPassword().equals("")) {
- try{
- sb.append("GoAheadAndLogIn=1&Bugzilla_login="
- + URLEncoder.encode(BugzillaPreferences.getUserName(), Charset.defaultCharset().toString())
- + "&Bugzilla_password="
- + URLEncoder.encode(BugzillaPreferences.getPassword(), Charset.defaultCharset().toString())
- + "&");
- } catch (UnsupportedEncodingException e)
- {
- // should never get here since we are using the default encoding
- }
- }
-
- // add the description search type
- sb.append("long_desc_type=");
- sb.append(patternOperationValues[0]); // search for all words
- sb.append("&long_desc=");
-
- return sb;
- }
-
- /**
- * Search the given string for another string
- * @param elementName The name of the element that we are looking for
- * @param comment The text to search for this element name
- * @return <code>true</code> if the element is found in the text else <code>false</code>
- */
- public static boolean hasElementName(String elementName, String comment) {
-
- // setup a regex for the element name
- String regexElement = ".*"+elementName+".*";
-
- // get all of the individual lines for the string
- String[] lines = comment.split("\n");
-
- // go through each of the lines of the string
- for (int i = 0; i < lines.length; i++) {
-
- if (lines[i].matches(regexElement)){
- return true;
- }
- }
- return false;
- }
-} \ No newline at end of file

Back to the top